Skip to content

Commit 2362427

Browse files
committed
Merge pull request #24 from rainers/master
Visual D 0.3.39beta1
2 parents ae35ed9 + e299cde commit 2362427

30 files changed

+518
-165
lines changed

CHANGES

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -631,7 +631,7 @@ Version history
631631
- bugzilla 12353: option "Show Type In Tooltip" not saved and restored across restart
632632

633633
* miscellanea
634-
- update SDK conversion for VS2013 and Windws SDK 8.1
634+
- update SDK conversion for VS2013 and Windows SDK 8.1
635635
- bugzilla 11786: change some default colors when using dark theme in VS 2012+ (restart required)
636636
- bugzilla 12187: disguise functionality of pipedmd.exe and filemonitor.dll to let it pass
637637
most anti-virus checks
@@ -640,3 +640,17 @@ Version history
640640

641641
* build mago with static C runtime to avoid dependencies on msvcrt120.dll
642642

643+
2014-07-20 Version 0.3.39
644+
645+
* added editor margin to display coverage counters and percentage
646+
* support tab/indentation settings set by .editorconfig plugin
647+
* optlink now always called with /DELEXE to avoid keeping broken binary
648+
* added workaround for bad import library being passed by C/C++ projects
649+
* tweaked "Compile & Run" to distinguish between compile and execution errors
650+
* added "Compile & Debug" command
651+
* new mago version 1.0
652+
- now supports debugging x64 executables
653+
- displays static members of classes and structs
654+
- fixed not closing executable file causing linker to fail when rebuilding
655+
- fixed breakpoints not set in all instances of a template
656+
* new dparser version: 78a007c9aaee915e2824f30c5c7293e8853343c4

Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,12 @@ vdserver:
145145
dparser:
146146
cd vdc\abothe && $(MSBUILD) vdserver.sln /p:Configuration=Release /t:Rebuild
147147

148+
vdextension:
149+
cd vdextensions && $(MSBUILD) vdextensions.csproj /p:Configuration=Release;Platform=x86 /t:Rebuild
150+
148151
mago:
149152
cd ..\..\mago && devenv /Build "Release|Win32" /Project "MagoNatDE" magodbg_2010.sln
153+
cd ..\..\mago && devenv /Build "Release|x64" /Project "MagoRemote" magodbg_2010.sln
150154

151155
cv2pdb:
152156
cd ..\..\cv2pdb\trunk && devenv /Project "cv2pdb" /Build "Release|Win32" src\cv2pdb_vs12.sln
@@ -160,7 +164,7 @@ install: all cpp2d_exe idl2d_exe
160164
"$(ZIP)" -j ..\downloads\visuald_pdb.zip bin\release\visuald.pdb bin\release\vdserver.pdb
161165

162166
#prerequisites
163-
install_vs: visuald_vs vdserver cv2pdb dparser mago install_only
167+
install_vs: visuald_vs vdserver cv2pdb dparser vdextension mago install_only
164168

165169
install_only:
166170
cd nsis && "$(NSIS)\makensis" /V1 visuald.nsi

TODO

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,20 @@ Unsorted
145145
- goto definition fallback to JSON
146146
- highlight compiler-magic identifiers
147147

148-
- compile from selection/buffer (through rdmd)
149-
- save file before "Compile & run"
150-
- coverage line highlight after "Compile & run" doesn't update
151-
- better keeping track of line changes
152-
148+
+ compile from selection/buffer (through rdmd)
149+
+ save file before "Compile & run"
150+
+ coverage line highlight after "Compile & run" doesn't update
151+
+ better keeping track of line changes
152+
153+
+ compile & debug
154+
+ margin for profiler
155+
156+
+ formatting does not work with .editorConfig
157+
+ do not report build failure when run returns non-zero result
158+
- custom file props: switch and apply changes next file
159+
160+
- compile and run : set VCInstallDir for -m64
161+
+ mago keeps image locked when terminating debugger
162+
- -gc/-g depending on debug engine
163+
- dub upport
164+
- dustmite support

VERSION

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#define VERSION_MAJOR 0
22
#define VERSION_MINOR 3
3-
#define VERSION_REVISION 38
4-
#define VERSION_BETA -
3+
#define VERSION_REVISION 39
4+
#define VERSION_BETA -beta
55
#define VERSION_BUILD 1

build/sdk.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ if "%VSISDKINC%" == "" if not "%VSSDK90Install%" == "" set VSISDKINC=%VSSDK90Ins
2828
if "%VSISDKINC%" == "" if not "%VSSDK80Install%" == "" set VSISDKINC=%VSSDK80Install%
2929
if "%VSISDKINC%" == "" (echo could not detect the Visual Studio SDK && exit /B 1)
3030

31-
if not exist "%VSISDKINC%\VisualStudioIntegration\Common\Inc\textmgr.h" (echo unexpected Visual Studio SDK installation at %VSISDKINC% && exit /B 1)
31+
if not exist "%VSISDKINC%\VisualStudioIntegration\Common\Inc\textmgr.h" (echo unexpected Visual Studio SDK installation at "%VSISDKINC%" && exit /B 1)
3232

3333
echo Translating Windows SDK and Visual Studio SDK to D, this can take several minutes. Please be patient.
3434
echo %VSI2D% --vsi="%VSISDKINC:\=/%" --win="%WINSDKINC:\=/%" --dte="%DTE_IDL_PATH%" --sdk=..\sdk

doc/KnownIssues.dd

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,17 @@ $(P As a result, Windows Defender can harm performance of Visual D. To avoid thi
5757
add the Visual Studio process devenv.exe to the list of Excluded Processes in the
5858
settings of Windows Defender.)
5959

60+
$(H2 Import libraries from C/C++ projects )
61+
62+
$(P A Visual C/C++ DLL project reports two outputs to dependent projects: the DLL and the import library.)
63+
64+
$(P Unfortunately, the import library reported still contains unexpanded macros and the current working directory prepended
65+
instead of the project directory. The actual replacements are not accessible to Visual D, so it assumes the
66+
the import library to be placed along-side the DLL.)
67+
68+
$(P If the C++ DLL project is converted to a static library project, the import library setting is kept, though
69+
unaccessible from the configuration page. The import library is falsely reported as an output. To mitigate
70+
this problem, Visual D ignores the import library if the main output is also a library.)
71+
6072
Macros:
6173
TITLE=Known Issues

nsis/Extensions/extension.vsixmanifest

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
<Version>0.3</Version>
1010
<Description>Extension to provide support for the D programming language.</Description>
1111
<Locale>1033</Locale>
12-
<MoreInfoUrl>http://www.dsource.org/projects/visuald</MoreInfoUrl>
13-
<GettingStartedGuide>http://www.dsource.org/projects/visuald</GettingStartedGuide>
12+
<MoreInfoUrl>http://rainers.github.io/visuald/visuald/StartPage.html</MoreInfoUrl>
13+
<GettingStartedGuide>http://rainers.github.io/visuald/visuald/StartPage.html</GettingStartedGuide>
1414
<InstalledByMsi>true</InstalledByMsi>
1515
<Icon>vdlogo.ico</Icon>
1616
<PreviewImage>vdlogo.ico</PreviewImage>
@@ -37,5 +37,6 @@
3737
<References />
3838
<Content>
3939
<VsPackage>visuald.pkgdef</VsPackage>
40+
<MefComponent>VDINSTALLPATH\vdextensions.dll</MefComponent>
4041
</Content>
4142
</Vsix>

nsis/visuald.nsi

Lines changed: 45 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
; define DPARSER to include DParser COM server installation (expected at ../bin/Release/DParserCOMServer)
1313
!define DPARSER
1414

15+
; define VDEXTENSIONS to include C# extensions (expected at ../bin/Release/vdextensions)
16+
!define VDEXTENSIONS
17+
1518
;--------------------------------
1619
;Include Modern UI
1720

@@ -87,10 +90,11 @@
8790
!define MAGO_ENGINE_KEY AD7Metrics\Engine\${MAGO_CLSID}
8891
!define MAGO_EXCEPTION_KEY AD7Metrics\Exception\${MAGO_CLSID}
8992
!define MAGO_ABOUT "A debug engine dedicated to debugging applications written in the D programming language. See the project website at http://www.dsource.org/projects/mago_debugger for more information. Copyright (c) 2010-2013 Aldo J. Nunez"
93+
!define MAGO_SOURCE ..\..\..\mago
9094

91-
!searchparse /file ../../../mago/include/magoversion.h "#define MAGO_VERSION_MAJOR " MAGO_VERSION_MAJOR
92-
!searchparse /file ../../../mago/include/magoversion.h "#define MAGO_VERSION_MINOR " MAGO_VERSION_MINOR
93-
!searchparse /file ../../../mago/include/magoversion.h "#define MAGO_VERSION_BUILD " MAGO_VERSION_BUILD
95+
!searchparse /file ${MAGO_SOURCE}/include/magoversion.h "#define MAGO_VERSION_MAJOR " MAGO_VERSION_MAJOR
96+
!searchparse /file ${MAGO_SOURCE}/include/magoversion.h "#define MAGO_VERSION_MINOR " MAGO_VERSION_MINOR
97+
!searchparse /file ${MAGO_SOURCE}/include/magoversion.h "#define MAGO_VERSION_BUILD " MAGO_VERSION_BUILD
9498

9599
!searchreplace MAGO_VERSION_MAJOR ${MAGO_VERSION_MAJOR} " " ""
96100
!searchreplace MAGO_VERSION_MINOR ${MAGO_VERSION_MINOR} " " ""
@@ -184,7 +188,11 @@ Section "Visual Studio package" SecPackage
184188
${File} ..\ README.md
185189
${File} ..\ LICENSE_1_0.txt
186190
${File} ..\ CHANGES
187-
191+
192+
!ifdef VDEXTENSIONS
193+
${File} ..\bin\${CONFIG}\vdextensions\ vdextensions.dll
194+
!endif
195+
188196
${SetOutPath} "$INSTDIR\Templates"
189197
${SetOutPath} "$INSTDIR\Templates\Items"
190198
${File} ..\visuald\Templates\Items\ empty.d
@@ -284,10 +292,16 @@ ${MementoSection} "Register with VS 2010" SecVS2010
284292

285293
ReadRegStr $1 ${VS_REGISTRY_ROOT} "${VS2010_REGISTRY_KEY}" InstallDir
286294
ExecWait 'rundll32 "$INSTDIR\${DLLNAME}" WritePackageDef ${VS2010_REGISTRY_KEY} $1${EXTENSION_DIR}\visuald.pkgdef'
295+
287296
${SetOutPath} "$1${EXTENSION_DIR}"
288297
${File} ..\nsis\Extensions\ extension.vsixmanifest
289298
${File} ..\nsis\Extensions\ vdlogo.ico
290299

300+
!ifdef VDEXTENSIONS
301+
GetFullPathName /SHORT $0 $INSTDIR
302+
!insertmacro ReplaceInFile "$1${EXTENSION_DIR}\extension.vsixmanifest" "VDINSTALLPATH" "$0" NoBackup
303+
!endif
304+
291305
${MementoSectionEnd}
292306

293307
;--------------------------------
@@ -299,10 +313,16 @@ ${MementoSection} "Register with VS 2012" SecVS2012
299313

300314
ReadRegStr $1 ${VS_REGISTRY_ROOT} "${VS2012_REGISTRY_KEY}" InstallDir
301315
ExecWait 'rundll32 "$INSTDIR\${DLLNAME}" WritePackageDef ${VS2012_REGISTRY_KEY} $1${EXTENSION_DIR}\visuald.pkgdef'
316+
302317
${SetOutPath} "$1${EXTENSION_DIR}"
303318
${File} ..\nsis\Extensions\ extension.vsixmanifest
304319
${File} ..\nsis\Extensions\ vdlogo.ico
305320

321+
!ifdef VDEXTENSIONS
322+
GetFullPathName /SHORT $0 $INSTDIR
323+
!insertmacro ReplaceInFile "$1${EXTENSION_DIR}\extension.vsixmanifest" "VDINSTALLPATH" "$0" NoBackup
324+
!endif
325+
306326
${MementoSectionEnd}
307327

308328
;--------------------------------
@@ -314,10 +334,16 @@ ${MementoSection} "Register with VS 2013" SecVS2013
314334

315335
ReadRegStr $1 ${VS_REGISTRY_ROOT} "${VS2013_REGISTRY_KEY}" InstallDir
316336
ExecWait 'rundll32 "$INSTDIR\${DLLNAME}" WritePackageDef ${VS2013_REGISTRY_KEY} $1${EXTENSION_DIR}\visuald.pkgdef'
337+
317338
${SetOutPath} "$1${EXTENSION_DIR}"
318339
${File} ..\nsis\Extensions\ extension.vsixmanifest
319340
${File} ..\nsis\Extensions\ vdlogo.ico
320-
341+
342+
!ifdef VDEXTENSIONS
343+
GetFullPathName /SHORT $0 $INSTDIR
344+
!insertmacro ReplaceInFile "$1${EXTENSION_DIR}\extension.vsixmanifest" "VDINSTALLPATH" "$0" NoBackup
345+
!endif
346+
321347
${MementoSectionEnd}
322348

323349
!ifdef EXPRESS
@@ -392,12 +418,13 @@ ${MementoSectionEnd}
392418
${MementoSection} "mago" SecMago
393419

394420
${SetOutPath} "$INSTDIR\Mago"
395-
${File} ..\..\..\mago\Release\ MagoNatDE.dll
396-
${File} ..\..\..\mago\Release\ MagoNatEE.dll
397-
${File} ..\..\..\mago\Release\ udis86.dll
398-
${File} ..\..\..\mago\Release\ CVSTI.dll
399-
${File} ..\..\..\mago\ LICENSE.TXT
400-
${File} ..\..\..\mago\ NOTICE.TXT
421+
${File} ${MAGO_SOURCE}\bin\Win32\Release\ MagoNatDE.dll
422+
;; ${File} ${MAGO_SOURCE}\bin\Win32\Release\ MagoNatEE.dll
423+
${File} ${MAGO_SOURCE}\bin\Win32\Release\ udis86.dll
424+
;; ${File} ${MAGO_SOURCE}\bin\Win32\Release\ CVSTI.dll
425+
${File} ${MAGO_SOURCE}\bin\x64\Release\ MagoRemote.exe
426+
${File} ${MAGO_SOURCE}\ LICENSE.TXT
427+
${File} ${MAGO_SOURCE}\ NOTICE.TXT
401428

402429
ExecWait 'regsvr32 /s "$INSTDIR\Mago\MagoNatDE.dll"'
403430

@@ -427,6 +454,8 @@ ${MementoSection} "mago" SecMago
427454
Push ${VS2013_REGISTRY_KEY}
428455
Call RegisterMago
429456

457+
WriteRegStr HKLM "SOFTWARE\Wow6432Node\MagoDebugger" "Remote_x64" "$INSTDIR\Mago\MagoRemote.exe"
458+
430459
${MementoSectionEnd}
431460
!endif
432461

@@ -710,9 +739,12 @@ Function DMDInstallPage
710739
IfErrors DMDInstallDirEmpty
711740
StrCmp "$DMDInstallDir" "" DMDInstallDirEmpty HasDMDInstallDir
712741
DMDInstallDirEmpty:
742+
ReadRegStr $DInstallDir HKLM "SOFTWARE\DMD" "InstallationFolder"
743+
IfErrors 0 HasDInstallationFolder
713744
ReadRegStr $DInstallDir HKLM "SOFTWARE\D" "Install_Dir"
714745
IfErrors HasDmdInstallDir
715-
StrCpy $DmdInstallDir $DInstallDir\dmd2
746+
HasDInstallationFolder:
747+
StrCpy $DmdInstallDir $DInstallDir\dmd2
716748
HasDMDInstallDir:
717749

718750
WriteINIStr "$PLUGINSDIR\dmdinstall.ini" "Field 1" "State" $DMDInstallDir
@@ -809,6 +841,7 @@ enabled:
809841
WriteRegDWORD ${VS_REGISTRY_ROOT} "$1\${MAGO_ENGINE_KEY}" "ENC" 0
810842
WriteRegDWORD ${VS_REGISTRY_ROOT} "$1\${MAGO_ENGINE_KEY}" "Disassembly" 1
811843
WriteRegDWORD ${VS_REGISTRY_ROOT} "$1\${MAGO_ENGINE_KEY}" "Exceptions" 1
844+
WriteRegDWORD ${VS_REGISTRY_ROOT} "$1\${MAGO_ENGINE_KEY}" "AlwaysLoadLocal" 1
812845

813846
${RegisterException} $1 "D Exceptions"
814847
${RegisterException} $1 "D Exceptions\core.exception.AssertError"

stdext/httpget.d

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
// Distributed under the Boost Software License, Version 1.0.
77
// See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
88

9-
module httpget;
9+
module stdext.httpget;
1010

1111
import std.string, std.conv, std.stream, std.stdio;
1212
import std.socket, std.socketstream;

vdc/parser.visualdproj

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<lib>1</lib>
77
<subsystem>0</subsystem>
88
<multiobj>0</multiobj>
9-
<singleFileCompilation>2</singleFileCompilation>
9+
<singleFileCompilation>0</singleFileCompilation>
1010
<oneobj>0</oneobj>
1111
<trace>0</trace>
1212
<quiet>0</quiet>
@@ -89,6 +89,7 @@
8989
<resfile />
9090
<exefile>$(OutDir)\$(ProjectName).lib</exefile>
9191
<useStdLibPath>1</useStdLibPath>
92+
<cRuntime>2</cRuntime>
9293
<additionalOptions />
9394
<preBuildCommand />
9495
<postBuildCommand />
@@ -183,6 +184,7 @@
183184
<resfile />
184185
<exefile>$(OutDir)\$(ProjectName).lib</exefile>
185186
<useStdLibPath>1</useStdLibPath>
187+
<cRuntime>1</cRuntime>
186188
<additionalOptions />
187189
<preBuildCommand />
188190
<postBuildCommand />
@@ -277,6 +279,7 @@
277279
<resfile />
278280
<exefile>$(OutDir)\$(ProjectName).lib</exefile>
279281
<useStdLibPath>1</useStdLibPath>
282+
<cRuntime>1</cRuntime>
280283
<additionalOptions>-gx</additionalOptions>
281284
<preBuildCommand />
282285
<postBuildCommand />
@@ -371,6 +374,7 @@
371374
<resfile />
372375
<exefile>$(OutDir)\$(ProjectName).lib</exefile>
373376
<useStdLibPath>1</useStdLibPath>
377+
<cRuntime>2</cRuntime>
374378
<additionalOptions />
375379
<preBuildCommand />
376380
<postBuildCommand />
@@ -465,6 +469,7 @@
465469
<resfile />
466470
<exefile>$(OutDir)\$(ProjectName).lib</exefile>
467471
<useStdLibPath>1</useStdLibPath>
472+
<cRuntime>1</cRuntime>
468473
<additionalOptions />
469474
<preBuildCommand />
470475
<postBuildCommand />
@@ -559,6 +564,7 @@
559564
<resfile />
560565
<exefile>$(OutDir)\$(ProjectName).exe</exefile>
561566
<useStdLibPath>1</useStdLibPath>
567+
<cRuntime>1</cRuntime>
562568
<additionalOptions>-debuglib=phobos64_d</additionalOptions>
563569
<preBuildCommand />
564570
<postBuildCommand />
@@ -653,6 +659,7 @@
653659
<resfile />
654660
<exefile>$(OutDir)\$(ProjectName).a</exefile>
655661
<useStdLibPath>1</useStdLibPath>
662+
<cRuntime>1</cRuntime>
656663
<additionalOptions />
657664
<preBuildCommand />
658665
<postBuildCommand />
@@ -747,6 +754,7 @@
747754
<resfile />
748755
<exefile>$(OutDir)\$(ProjectName).lib</exefile>
749756
<useStdLibPath>1</useStdLibPath>
757+
<cRuntime>1</cRuntime>
750758
<additionalOptions />
751759
<preBuildCommand />
752760
<postBuildCommand />
@@ -841,6 +849,7 @@
841849
<resfile />
842850
<exefile>$(OutDir)\$(ProjectName).lib</exefile>
843851
<useStdLibPath>1</useStdLibPath>
852+
<cRuntime>1</cRuntime>
844853
<additionalOptions />
845854
<preBuildCommand />
846855
<postBuildCommand />
@@ -935,6 +944,7 @@
935944
<resfile />
936945
<exefile>$(OutDir)\$(ProjectName).lib</exefile>
937946
<useStdLibPath>1</useStdLibPath>
947+
<cRuntime>1</cRuntime>
938948
<additionalOptions />
939949
<preBuildCommand />
940950
<postBuildCommand />
@@ -1029,6 +1039,7 @@
10291039
<resfile />
10301040
<exefile>$(OutDir)\$(ProjectName).lib</exefile>
10311041
<useStdLibPath>1</useStdLibPath>
1042+
<cRuntime>1</cRuntime>
10321043
<additionalOptions>-m32ms</additionalOptions>
10331044
<preBuildCommand />
10341045
<postBuildCommand />
@@ -1123,6 +1134,7 @@
11231134
<resfile />
11241135
<exefile>$(OutDir)\$(ProjectName).lib</exefile>
11251136
<useStdLibPath>1</useStdLibPath>
1137+
<cRuntime>1</cRuntime>
11261138
<additionalOptions />
11271139
<preBuildCommand />
11281140
<postBuildCommand />

0 commit comments

Comments
 (0)