diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml
index 58384d33..25f4e670 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -10,6 +10,8 @@ env:
BUILD_CONFIGURATION: Release
BUILD_PLATFORM: x64
BUILD_PLATFORM_TOOLSET: v142
+ DMD_VER: 2.111.0
+ VISUALD_VER: 1.4.1
jobs:
build:
@@ -35,7 +37,7 @@ jobs:
- name: Prepare D compiler
uses: dlang-community/setup-dlang@v1
with:
- compiler: dmd-2.098.1
+ compiler: dmd-${{ env.DMD_VER }}
- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v1.0.2
- name: Setup VS environment
@@ -43,17 +45,17 @@ jobs:
- name: Download Visual D
uses: supplypike/setup-bin@v1
with:
- uri: 'https://github.com/dlang/visuald/releases/download/v1.3.0/VisualD-v1.3.0.exe'
- name: 'VisualD-v1.3.0.exe'
- version: '1.3.0'
- command: ./VisualD-v1.3.0.exe /S
+ uri: 'https://github.com/dlang/visuald/releases/download/v${{ env.VISUALD_VER }}/VisualD-v${{ env.VISUALD_VER }}.exe'
+ name: 'VisualD-v${{ env.VISUALD_VER }}.exe'
+ version: '${{ env.VISUALD_VER }}'
+ command: ./VisualD-v${{ env.VISUALD_VER }}.exe /S
- name: Register visuald
run: |
- reg add "HKLM\SOFTWARE\DMD" /v "InstallationDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-2.098.1\x64" /reg:32 /f
- reg add "HKLM\SOFTWARE\VisualD" /v "DMDInstallDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-2.098.1\x64\dmd2" /reg:32 /f
+ reg add "HKLM\SOFTWARE\DMD" /v "InstallationDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-${{ env.DMD_VER }}\x64" /reg:32 /f
+ reg add "HKLM\SOFTWARE\VisualD" /v "DMDInstallDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-${{ env.DMD_VER }}\x64\dmd2" /reg:32 /f
- name: Build visuald
working-directory: visuald/trunk
- run: nmake d_modules
+ run: nmake d_modules dmdserver_test
- name: Upload binaries
uses: actions/upload-artifact@v4
if: failure()
diff --git a/CHANGES b/CHANGES
index e3f3a105..e3b87613 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1474,3 +1474,18 @@ Version history
- fix always skipping debug statements
- fix some crashes in the frontend
* exclude \\.\C: from dependencies generated by LDC v1.40+
+
+2026-04-xx version 1.5.0-rc1
+ * full installer now bundled with DMD 2.112.0 and LDC 1.41.0
+ * dmdserver:
+ - updated to dmd 2.112 (current master)
+ - dmdserver executable selected by installed dmd version (2.110, 2.111, 2.112)
+ * mago-mi executable added
+ * mago native debug engine now also works in VS2022 (mago concord extension for
+ VS engine still recommended)
+ * visuald projects: fixed library dependencies if different project configurations
+ used in a solution configuration
+ * dbuild: added support for VS 2026 18.1, 18.3 and 18.6
+ * dbuild: fixed building if source files are compiled with different settings
+ * improved msbuild integration with the "Fast Up To Date Check" of VS
+ * installer: can now also add mago as an extension for cppvsdbg in VSCode
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 2386ccf5..41bdf59f 100644
--- a/Makefile
+++ b/Makefile
@@ -59,16 +59,16 @@ prerequisites:
devenv /Project "build" /Build "$(CONFIG)|Win32" visuald_vs10.sln
visuald_vs:
- devenv /Project "visuald" /Build "$(CONFIG)|Win32" visuald_vs10.sln
+ devenv /Project "VisualD" /Build "$(CONFIG)|Win32" visuald_vs10.sln
visuald_vs_x64:
- devenv /Project "visuald" /Build "$(CONFIG_X64)|x64" visuald_vs10.sln
+ devenv /Project "VisualD" /Build "$(CONFIG_X64)|x64" visuald_vs10.sln
visuald_vs_arm64:
- devenv /Project "visuald" /Build "$(CONFIG_ARM64)|x64" visuald_vs10.sln
+ devenv /Project "VisualD" /Build "$(CONFIG_ARM64)|x64" visuald_vs10.sln
visuald_test:
- devenv /Project "visuald" /Build "TestDebug|Win32" visuald_vs10.sln
+ devenv /Project "VisualD" /Build "TestDebug|Win32" visuald_vs10.sln
bin\TestDebug\VisualD\VisualD.exe
vdserver:
@@ -79,6 +79,7 @@ dmdserver:
dmdserver_test:
devenv /Project "dmdserver" /Build "TestDebug|x64" visuald_vs10.sln
+ bin\TestDebug\x64\dmdserver.exe
dparser:
cd vdc\abothe && $(MSBUILD15) vdserver.sln /p:Configuration=Release;Platform="Any CPU" /p:TargetFrameworkVersion=4.5.2 /p:DefineConstants=NET40 $(MSBUILD_REBUILD)
@@ -194,7 +195,16 @@ dbuild17_all: dbuild17_0 dbuild17_1 dbuild17_2 dbuild17_3 dbuild17_4 dbuild17_5
dbuild18_0:
cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v18_0;Platform=AnyCPU $(MSBUILD_REBUILD)
-dbuild18_all: dbuild18_0
+dbuild18_1:
+ cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v18_1;Platform=AnyCPU $(MSBUILD_REBUILD)
+
+dbuild18_3:
+ cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v18_3;Platform=AnyCPU $(MSBUILD_REBUILD)
+
+dbuild18_6:
+ cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v18_6;Platform=AnyCPU $(MSBUILD_REBUILD)
+
+dbuild18_all: dbuild18_0 dbuild18_1 dbuild18_3 dbuild18_6
mago:
cd ..\..\mago && devenv /Build "Release|Win32" /Project "MagoNatDE" magodbg_2010.sln
@@ -202,25 +212,29 @@ mago:
cd ..\..\mago && devenv /Build "Release StaticDE|Win32" /Project "MagoNatCC" magodbg_2010.sln
mago_vs15:
- cd ..\..\mago && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 /target:DebugEngine\MagoNatDE MagoDbg_2010.sln
- cd ..\..\mago && msbuild /p:Configuration=Release;Platform=x64;PlatformToolset=v141 /target:DebugEngine\MagoRemote MagoDbg_2010.sln
- cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=Win32;PlatformToolset=v141" /target:Expression\MagoNatCC MagoDbg_2010.sln
+ cd ..\..\mago && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 /target:DebugEngine\MagoNatDE /verbosity:quiet MagoDbg_2010.sln
+ cd ..\..\mago && msbuild /p:Configuration=Release;Platform=x64;PlatformToolset=v141 /target:DebugEngine\MagoRemote /verbosity:quiet MagoDbg_2010.sln
+ cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=Win32;PlatformToolset=v141" /target:Expression\MagoNatCC /verbosity:quiet MagoDbg_2010.sln
mago_vs16:
- cd ..\..\mago && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 /target:DebugEngine\MagoNatDE MagoDbg_2010.sln
- cd ..\..\mago && msbuild /p:Configuration=Release;Platform=x64;PlatformToolset=v142 /target:DebugEngine\MagoRemote MagoDbg_2010.sln
- cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=Win32;PlatformToolset=v142" /target:Expression\MagoNatCC MagoDbg_2010.sln
+ cd ..\..\mago && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 /target:DebugEngine\MagoNatDE /verbosity:quiet MagoDbg_2010.sln
+ cd ..\..\mago && msbuild /p:Configuration=Release;Platform=x64;PlatformToolset=v142 /target:DebugEngine\MagoRemote /verbosity:quiet MagoDbg_2010.sln
+ cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=Win32;PlatformToolset=v142" /target:Expression\MagoNatCC /verbosity:quiet MagoDbg_2010.sln
mago_vs17:
- cd ..\..\mago && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 /target:DebugEngine\MagoNatDE MagoDbg_2010.sln
- cd ..\..\mago && msbuild /p:Configuration=Release;Platform=x64;PlatformToolset=v143 /target:DebugEngine\MagoRemote MagoDbg_2010.sln
- cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=Win32;PlatformToolset=v143" /target:Expression\MagoNatCC MagoDbg_2010.sln
+ cd ..\..\mago && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 /target:DebugEngine\MagoNatDE /verbosity:quiet MagoDbg_2010.sln
+ cd ..\..\mago && msbuild /p:Configuration=Release;Platform=x64;PlatformToolset=v143 /target:DebugEngine\MagoNatDE /verbosity:quiet MagoDbg_2010.sln
+ cd ..\..\mago && msbuild /p:Configuration=Release;Platform=x64;PlatformToolset=v143 /target:DebugEngine\MagoRemote /verbosity:quiet MagoDbg_2010.sln
+ cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=Win32;PlatformToolset=v143" /target:Expression\MagoNatCC /verbosity:quiet MagoDbg_2010.sln
magocc_x64:
- cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=x64;PlatformToolset=v143" /target:Expression\MagoNatCC MagoDbg_2010.sln
+ cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=x64;PlatformToolset=v143" /target:Expression\MagoNatCC /verbosity:quiet MagoDbg_2010.sln
magocc_arm64:
- cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=ARM64;PlatformToolset=v143" /target:Expression\MagoNatCC MagoDbg_2010.sln
+ cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=ARM64;PlatformToolset=v143" /target:Expression\MagoNatCC /verbosity:quiet MagoDbg_2010.sln
+
+mago_mi:
+ cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=x64;PlatformToolset=v143" /target:MagoMI\mago-mi /verbosity:quiet MagoDbg_2010.sln
magogc:
cd ..\..\mago && devenv /Build "Release|Win32" /Project "MagoGC" magodbg_2010.sln
@@ -236,19 +250,19 @@ cv2pdb:
cd ..\..\cv2pdb\trunk && devenv /Project "dumplines" /Build "Release|Win32" src\cv2pdb_vs12.sln
cv2pdb_vs15:
- cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 src\cv2pdb.vcxproj
- cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 src\dviewhelper\dviewhelper.vcxproj
- cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 src\dumplines.vcxproj
+ cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 /verbosity:quiet src\cv2pdb.vcxproj
+ cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 /verbosity:quiet src\dviewhelper\dviewhelper.vcxproj
+ cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 /verbosity:quiet src\dumplines.vcxproj
cv2pdb_vs16:
- cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 src\cv2pdb.vcxproj
- cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 src\dviewhelper\dviewhelper.vcxproj
- cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 src\dumplines.vcxproj
+ cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 /verbosity:quiet src\cv2pdb.vcxproj
+ cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 /verbosity:quiet src\dviewhelper\dviewhelper.vcxproj
+ cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 /verbosity:quiet src\dumplines.vcxproj
cv2pdb_vs17:
- cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 src\cv2pdb.vcxproj
- cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 src\dviewhelper\dviewhelper.vcxproj
- cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 src\dumplines.vcxproj
+ cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 /verbosity:quiet src\cv2pdb.vcxproj
+ cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 /verbosity:quiet src\dviewhelper\dviewhelper.vcxproj
+ cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 /verbosity:quiet src\dumplines.vcxproj
dcxxfilt: $(DCXXFILT_EXE)
$(DCXXFILT_EXE): tools\dcxxfilt.d
@@ -259,7 +273,7 @@ $(DCXXFILT_EXE): tools\dcxxfilt.d
# create installer
install_release_modules: install_modules visuald_vs_arm64 fake_dparser cv2pdb_vs17 \
- mago_vs17 magocc_x64 magocc_arm64 magogc magogc_ldc \
+ mago_vs17 magocc_x64 magocc_arm64 magogc magogc_ldc mago_mi \
dbuild12 dbuild14 dbuild15
install_vs: install_release_modules install_only
diff --git a/VERSION b/VERSION
index 201d6cef..80317bf7 100644
--- a/VERSION
+++ b/VERSION
@@ -1,5 +1,5 @@
#define VERSION_MAJOR 1
#define VERSION_MINOR 5
#define VERSION_REVISION 0
-#define VERSION_BETA -beta
-#define VERSION_BUILD 2
+#define VERSION_BETA -rc
+#define VERSION_BUILD 1
diff --git a/appveyor.yml b/appveyor.yml
index 1939b1dd..ecdd62b6 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -30,9 +30,9 @@ environment:
# cache relative to C:\projects\visuald
cache:
- - C:\projects\cache\dmd2109_1.7z
+ - C:\projects\cache\dmd2111_0.7z
- C:\projects\cache\cd851.zip
- - C:\projects\cache\VisualD-v0.50.1.exe
+ - C:\projects\cache\VisualD-v1.4.1.exe
- C:\projects\cache\binutils-2.25.tar.gz
#matrix:
@@ -55,10 +55,10 @@ install:
# Download & extract D compiler
- ps: |
If ($Env:D_COMPILER -eq 'dmd') {
- If (-not (Test-Path 'cache\dmd2109_1.7z')) {
- Start-FileDownload 'http://downloads.dlang.org/releases/2.x/2.109.1/dmd.2.109.1.windows.7z' -FileName 'cache\dmd2109_1.7z'
+ If (-not (Test-Path 'cache\dmd2111_0.7z')) {
+ Start-FileDownload 'http://downloads.dlang.org/releases/2.x/2.111.0/dmd.2.111.0.windows.7z' -FileName 'cache\dmd2111_0.7z'
}
- 7z x cache\dmd2109_1.7z > $null
+ 7z x cache\dmd2111_0.7z > $null
Set-Item -path env:DMD -value c:\projects\dmd2\windows\bin\dmd.exe
} ElseIf ($Env:D_COMPILER -eq 'dmd-nightly') {
Start-FileDownload 'http://nightlies.dlang.org/dmd-nightly/dmd.master.windows.7z' -FileName 'dmd2.7z'
@@ -79,10 +79,10 @@ install:
copy c:\projects\dm\bin\coffimplib.exe c:\projects\dmd2\windows\bin
# Download & install Visual D
- ps: |
- If (-not (Test-Path 'cache\VisualD-v1.3.1.exe')) {
- Start-FileDownload 'https://github.com/dlang/visuald/releases/download/v1.3.1/VisualD-v1.3.1.exe' -FileName 'cache\VisualD-v1.3.1.exe'
+ If (-not (Test-Path 'cache\VisualD-v1.4.1.exe')) {
+ Start-FileDownload 'https://github.com/dlang/visuald/releases/download/v1.4.1/VisualD-v1.4.1.exe' -FileName 'cache\VisualD-v1.4.1.exe'
}
- - cache\VisualD-v1.3.1.exe /S
+ - cache\VisualD-v1.4.1.exe /S
# configure DMD path
- reg add "HKLM\SOFTWARE\DMD" /v InstallationFolder /t REG_SZ /d c:\projects /reg:32 /f
# disable link dependencies monitoring, fails on AppVeyor server
diff --git a/build/build.visualdproj b/build/build.visualdproj
index 50d73ce9..310ead91 100644
--- a/build/build.visualdproj
+++ b/build/build.visualdproj
@@ -860,7 +860,7 @@ echo Success >"$(TargetPath)"
$(DMDInstallDir)windows\bin\dmd.exe
- ..\bin\$(ConfigurationName)
+ ..\bin\$(ConfigurationName)\x64
$(OutDir)\$(ProjectName)
@@ -991,7 +991,7 @@ echo Success >"$(TargetPath)"
$(DMDInstallDir)windows\bin\dmd.exe
- ..\bin\$(ConfigurationName)
+ ..\bin\$(ConfigurationName)\x64
$(OutDir)\$(ProjectName)
@@ -1122,7 +1122,7 @@ echo Success >"$(TargetPath)"
$(DMDInstallDir)windows\bin\dmd.exe
- ..\bin\$(ConfigurationName)\$(PlatformName)
+ ..\bin\$(ConfigurationName)\x64
$(OutDir)\$(ProjectName)
@@ -1253,7 +1253,7 @@ echo Success >"$(TargetPath)"
$(DMDInstallDir)windows\bin\dmd.exe
- ..\bin\$(ConfigurationName)\$(PlatformName)
+ ..\bin\$(ConfigurationName)\x64
$(OutDir)\$(ProjectName)
@@ -1384,7 +1384,7 @@ echo Success >"$(TargetPath)"
$(DMDInstallDir)windows\bin\dmd.exe
- ..\bin\$(ConfigurationName)
+ ..\bin\$(ConfigurationName)\x64
$(OutDir)\$(ProjectName)
@@ -1515,7 +1515,7 @@ echo Success >"$(TargetPath)"
$(DMDInstallDir)windows\bin\dmd.exe
- ..\bin\$(ConfigurationName)\$(PlatformName)
+ ..\bin\$(ConfigurationName)\x64
$(OutDir)\$(ProjectName)
@@ -1777,7 +1777,7 @@ echo Success >"$(TargetPath)"
$(DMDInstallDir)windows\bin\dmd.exe
- ..\bin\$(ConfigurationName)
+ ..\bin\$(ConfigurationName)\x64
$(OutDir)\$(ProjectName)
@@ -2039,7 +2039,7 @@ echo Success >"$(TargetPath)"
$(DMDInstallDir)windows\bin\dmd.exe
- ..\bin\$(ConfigurationName)\$(PlatformName)
+ ..\bin\$(ConfigurationName)\x64
$(OutDir)\$(ProjectName)
@@ -2108,17 +2108,21 @@ if errorlevel 1 goto reportError
$(DMDInstallDir)\windows\bin\dmd -g -map "$(IntDir)\$(InputName).map" "-of$(OutDir)\$(InputName).dll" "-od$(IntDir)" -defaultlib=user32.lib -m32mscoff -L/SUBSYSTEM:CONSOLE -L/ENTRY:DllMain@12 $(InputPath) kernel32.lib user32.lib" outfile="$(OutDir)\$(InputName).dll" path="..\tools\filemonitor.d" tool="Custom" />
+"%ldmd%" -m32 -i=std "-of$(OutDir)\$(InputName).exe" $(InputPath) ..\tools\nostacktrace.d ..\tools\nodebugger.d ..\tools\noregistry.d ..\tools\nodll.d user32.lib -L/SUBSYSTEM:CONSOLE,5.01" dependencies="..\tools\nostacktrace.d ..\tools\nodebugger.d ..\tools\noregistry.d ..\tools\nodll.d" outfile="$(OutDir)\$(InputName).exe" path="..\tools\mb2utf16.d" tool="Custom" />
+"%ldmd%" -m32 -i=std "-of$(OutDir)\$(InputName).exe" $(InputPath) ..\tools\nostacktrace.d ..\tools\nodebugger.d ..\tools\nodll.d ..\tools\noregistry.d ..\stdext\string.d user32.lib oleaut32.lib ole32.lib -L/SUBSYSTEM:CONSOLE,5.01" dependencies="..\tools\nostacktrace.d ..\tools\nodebugger.d ..\tools\noregistry.d ..\tools\nodll.d" outfile="$(OutDir)\$(InputName).exe" path="..\tools\pipedmd.d" tool="Custom" />
+"$(DMDInstallDir)\windows\bin\dmd" -d -m32mscoff -map "$(IntDir)\$(InputName).map" "-of$(OutDir)\$(InputName).exe" "-od$(IntDir)" $(InputPath) user32.lib oleaut32.lib uuid.lib" outfile="$(OutDir)\$(InputName).exe" path="..\tools\tlb2idl.d" tool="Custom" />
diff --git a/build/sdk.bat b/build/sdk.bat
index db4be5fa..1e437c59 100644
--- a/build/sdk.bat
+++ b/build/sdk.bat
@@ -2,6 +2,7 @@
rem expecting
rem - vsi2d.exe with path as the first argument
rem - output file as second arg to remember build success
+rem - output folder as optional third argument
rem - WindowsSdkDir to be set
set VSI2D=%~1
@@ -12,6 +13,9 @@ set OUT=%~2
if "%OUT%" == "" (echo Error: please specify the output path to remember succesful builds as second argument && exit /B 1)
if exist "%OUT%" del "%OUT%"
+set SDK=%~3
+if "%SDK%" == "" set SDK=..\sdk
+
if "%WindowsSdkDir%" == "" (echo Error: environment variable WindowsSdkDir not set && exit /B 1)
set DTE_IDL_PATH=..\sdk\vsi\idl
@@ -38,9 +42,13 @@ if "%VSISDKINC%" == "" (echo Error: could not detect the Visual Studio SDK && ex
if not exist "%VSISDKINC%\VisualStudioIntegration\Common\Inc\textmgr.h" (echo unexpected Visual Studio SDK installation at "%VSISDKINC%" && exit /B 1)
+if not exist "%SDK%" md "%SDK%"
+if not exist "%SDK%\win32" md "%SDK%\win32"
+if not exist "%SDK%\vsi" md "%SDK%\vsi"
+
echo Translating Windows SDK and Visual Studio SDK to D, this can take several minutes. Please be patient.
-echo "%VSI2D%" --vsi="%VSISDKINC:\=/%" --win="%WINSDKINC:\=/%" --dte="%DTE_IDL_PATH%" --sdk=..\sdk
-"%VSI2D%" --vsi="%VSISDKINC:\=/%" --win="%WINSDKINC:\=/%" --dte="%DTE_IDL_PATH%" --sdk=..\sdk
+echo "%VSI2D%" --vsi="%VSISDKINC:\=/%" --win="%WINSDKINC:\=/%" --dte="%DTE_IDL_PATH%" --sdk="%SDK%"
+"%VSI2D%" --vsi="%VSISDKINC:\=/%" --win="%WINSDKINC:\=/%" --dte="%DTE_IDL_PATH%" --sdk="%SDK%"
if errorlevel 1 exit /B 1
echo Translation successful!
diff --git a/c2d/c2d.visualdproj b/c2d/c2d.visualdproj
index 366242d6..909ca063 100644
--- a/c2d/c2d.visualdproj
+++ b/c2d/c2d.visualdproj
@@ -538,7 +538,7 @@
0
0
0
- 1
+ 0
0
0
0
@@ -916,7 +916,7 @@
0
0
0
- 1
+ 0
0
0
0
@@ -1420,7 +1420,7 @@
0
0
0
- 1
+ 0
0
0
0
@@ -2176,7 +2176,7 @@
0
0
0
- 1
+ 0
0
0
0
diff --git a/c2d/idl2d.d b/c2d/idl2d.d
index 853496a1..d6fa6f8d 100644
--- a/c2d/idl2d.d
+++ b/c2d/idl2d.d
@@ -643,6 +643,10 @@ class idl2d
case "WriteULongPtrRaw":
return 1;
+ // SDK 10.0.26100.0
+ // case "WINVER":
+ // return 1;
+
default:
break;
}
@@ -1435,6 +1439,11 @@ version(all)
replaceTokenSequence(tokens, "#ifdef UNICODE\nreturn $_identW(\n#else\nreturn $_identA(\n#endif\n",
" return $_identW(", false);
+ if(currentModule == "winuser") // SDK 10.0.26100.0
+ {
+ replaceTokenSequence(tokens, "#if defined(__cplusplus) && !defined(SORTPP_PASS)\n$ifcode\n#else\n$elsecode TOUCHPAD_PARAMETERS_V1;\n#endif",
+ "$elsecode TOUCHPAD_PARAMETERS_V1 v1;", false);
+ }
replaceTokenSequence(tokens, "#ifdef __cplusplus\nextern \"C\" {\n#endif\n", "extern \"C\" {\n", false);
replaceTokenSequence(tokens, "#ifdef defined(__cplusplus)\nextern \"C\" {\n#endif\n", "extern \"C\" {\n", false);
replaceTokenSequence(tokens, "#ifdef defined __cplusplus\nextern \"C\" {\n#endif\n", "extern \"C\" {\n", false);
@@ -3103,3 +3112,43 @@ unittest
testConvert(txt, exp);
}
+
+unittest
+{
+ string txt = `
+#include
+
+#ifndef _WINUSER_
+#define _WINUSER_
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#include
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* !_WINUSER_ */
+`;
+string exp = "
+public import sdk.port.winapifamily;
+
+version(all) /* #ifndef _WINUSER_ */ {
+// #define _WINUSER_
+
+extern(C) {
+
+
+public import sdk.port.string;
+
+}}
+ /* !_WINUSER_ */
+";
+
+// testConvert(txt, exp, "winuser");
+}
diff --git a/c2d/vsi2d.visualdproj b/c2d/vsi2d.visualdproj
index afda470b..7ec5e340 100644
--- a/c2d/vsi2d.visualdproj
+++ b/c2d/vsi2d.visualdproj
@@ -34,7 +34,7 @@
0
0
0
- 1
+ 0
0
0
0
@@ -286,7 +286,7 @@
0
0
0
- 1
+ 0
0
0
0
@@ -790,7 +790,7 @@
0
0
0
- 1
+ 0
0
0
0
@@ -2050,7 +2050,7 @@
0
0
0
- 1
+ 0
0
0
0
@@ -2269,6 +2269,15 @@
*.obj
+
+
+
+
+
+
+
+
+
diff --git a/msbuild/dbuild/CompileD.cs b/msbuild/dbuild/CompileD.cs
index 0c9902f0..69299bcb 100644
--- a/msbuild/dbuild/CompileD.cs
+++ b/msbuild/dbuild/CompileD.cs
@@ -186,6 +186,7 @@ protected override ArrayList SwitchOrderList
private string TLogPrefix
{
+ // get { return Compiler == "LDC" ? "ldmd2-ldc2" : "dmd"; }
get { return Compiler == "LDC" ? "ldmd2-ldc2" : "dmd"; }
}
@@ -193,8 +194,8 @@ protected override string[] ReadTLogNames
{
get {
return new string[2] {
- TLogPrefix + ".read.1.tlog",
- TLogPrefix + "-cl.read.1.tlog",
+ TLogPrefix + ".read.*.tlog",
+ TLogPrefix + "-*.read.*.tlog",
};
}
}
@@ -203,15 +204,27 @@ protected override string[] WriteTLogNames
{
get {
return new string[2] {
- TLogPrefix + ".write.1.tlog",
- TLogPrefix + "-cl.write.1.tlog",
+ TLogPrefix + ".write.*.tlog",
+ TLogPrefix + "-*.write.*.tlog",
};
}
}
+#if TOOLS_V17
+ protected override string[] DeleteTLogNames
+ {
+ get
+ {
+ return new string[2] {
+ TLogPrefix + ".delete.*.tlog",
+ TLogPrefix + "-*.delete.*.tlog",
+ };
+ }
+ }
+#endif
protected override string CommandTLogName
{
- get { return "dcompile.command.1.tlog"; }
+ get { return TLogPrefix + ".command.1.tlog"; }
}
protected override string TrackerIntermediateDirectory
diff --git a/msbuild/dbuild/CompileDOpt.cs b/msbuild/dbuild/CompileDOpt.cs
index eac42492..af989678 100644
--- a/msbuild/dbuild/CompileDOpt.cs
+++ b/msbuild/dbuild/CompileDOpt.cs
@@ -972,7 +972,7 @@ public string Compiler
public string ToolName
{
- get { return _compiler + ".exe"; }
+ get { return "CompileD"; }
}
public string TrackerLogDirectory
diff --git a/msbuild/dbuild/dbuild.csproj b/msbuild/dbuild/dbuild.csproj
index 980bec73..4b12d931 100644
--- a/msbuild/dbuild/dbuild.csproj
+++ b/msbuild/dbuild/dbuild.csproj
@@ -467,6 +467,72 @@
MinimumRecommendedRules.ruleset
18.0
+
+ bin\Release-v18_1\
+ TRACE;TOOLS_V17
+ true
+ true
+ pdbonly
+ AnyCPU
+ prompt
+ MinimumRecommendedRules.ruleset
+ 18.1
+
+
+ bin\Debug-v18_1\
+ TRACE;DEBUG;TOOLS_V17
+ true
+ false
+ pdbonly
+ AnyCPU
+ prompt
+ MinimumRecommendedRules.ruleset
+ 18.1
+
+
+ bin\Release-v18_3\
+ TRACE;TOOLS_V17
+ true
+ true
+ pdbonly
+ AnyCPU
+ prompt
+ MinimumRecommendedRules.ruleset
+ 18.3
+
+
+ bin\Debug-v18_3\
+ TRACE;DEBUG;TOOLS_V17
+ true
+ false
+ pdbonly
+ AnyCPU
+ prompt
+ MinimumRecommendedRules.ruleset
+ 18.3
+
+
+ bin\Release-v18_6\
+ TRACE;TOOLS_V17
+ true
+ true
+ pdbonly
+ AnyCPU
+ prompt
+ MinimumRecommendedRules.ruleset
+ 18.6
+
+
+ bin\Debug-v18_6\
+ TRACE;DEBUG;TOOLS_V17
+ true
+ false
+ pdbonly
+ AnyCPU
+ prompt
+ MinimumRecommendedRules.ruleset
+ 18.6
+
true
full
@@ -519,7 +585,8 @@
or '$(TargetVer)' == '17.4' or '$(TargetVer)' == '17.5' or '$(TargetVer)' == '17.6'
or '$(TargetVer)' == '17.7' or '$(TargetVer)' == '17.8' or '$(TargetVer)' == '17.9'
or '$(TargetVer)' == '17.10' or '$(TargetVer)' == '17.11' or '$(TargetVer)' == '17.12'
- or '$(TargetVer)' == '17.13' or '$(TargetVer)' == '17.14' or '$(TargetVer)' == '18.0'">v4.7.2
+ or '$(TargetVer)' == '17.13' or '$(TargetVer)' == '17.14' or '$(TargetVer)' == '18.0'
+ or '$(TargetVer)' == '18.1' or '$(TargetVer)' == '18.3' or '$(TargetVer)' == '18.6'">v4.7.2
false
false
false
@@ -922,7 +989,7 @@
-
+
assemblies\v18\Microsoft.Build.dll
False
@@ -958,6 +1025,24 @@
False
+
+
+ assemblies\v18_1\Microsoft.Build.CPPTasks.Common.dll
+ False
+
+
+
+
+ assemblies\v18_3\Microsoft.Build.CPPTasks.Common.dll
+ False
+
+
+
+
+ assemblies\v18_6\Microsoft.Build.CPPTasks.Common.dll
+ False
+
+
Designer
diff --git a/msbuild/dcompile.targets b/msbuild/dcompile.targets
index 763ebf64..1cdaa2d2 100644
--- a/msbuild/dcompile.targets
+++ b/msbuild/dcompile.targets
@@ -15,6 +15,7 @@
$(MSBuildThisFileDirectory)dbuild.$(DBuildVersion).dll
$(_VCTargetsPathForToolset)\Microsoft.Build.CPPTasks.Common.dll
+ false
@@ -68,7 +69,7 @@
-
+
$([System.String]::Copy('%(RelativeDir)|').Replace('\|','').Replace('|','').Replace('..','__').Replace(':','_').Replace('\','.'))
@@ -126,46 +127,216 @@
+
+
+ $([System.IO.Path]::GetFileNameWithoutExtension('%(ObjectFileName)'))
+
+
+
+
+
+
+ <_DebugFull Condition="'$(DCompiler)' == 'LDC'">false
+ <_DebugFull Condition="'$(DCompiler)' != 'LDC'">
+
+
+ <_DebugFull>false
+
+
+ <_DebugFull>%(DebugFull)
+
+
+ <_DebugFull>false
+
+
+
+
+ <_clLanguage>%(ClCompile->Metadata('LanguageStandard')->Distinct())
+
+
+
+
+ <_CppStandard>%(CppStandard)
+
+
+ <_CppStandard Condition="'$(_clLanguage)' == 'stdcpp14'">cpp14
+ <_CppStandard Condition="'$(_clLanguage)' == 'stdcpp17'">cpp17
+ <_CppStandard Condition="'$(_clLanguage)' == 'stdcpplatest'">cpp17
+ <_CppStandard Condition="'$(_clLanguage)' == 'Default'">cpp17
+ <_CppStandard Condition="'$(_clLanguage)' == ''">default
+
+
+
+
+
+ <_AllOptions>
+ %(DCompile.ImportPaths);
+ %(DCompile.ImportCPaths);
+ %(DCompile.ImportCDefines);
+ %(DCompile.StringImportPaths);
+ %(DCompile.VersionIdentifiers);
+ %(DCompile.DebugIdentifiers);
+ %(DCompile.ObjectFileName);
+ %(DCompile.PreserveSourcePath);
+ %(DCompile.DRuntimeLibrary);
+ %(DCompile.CRuntimeLibrary);
+
+ %(DCompile.Profile)
+ %(DCompile.ProfileGC)
+ %(DCompile.Coverage)
+ %(DCompile.MinCoverage)
+ %(DCompile.Unittest)
+ %(DCompile.Optimizer)
+ %(DCompile.Inliner)
+ %(DCompile.StackFrame)
+ %(DCompile.StackStomp)
+ %(DCompile.AllInst)
+ %(DCompile.Main)
+ %(DCompile.CPUArchitecture)
+ %(DCompile.DebugCode)
+ %(DCompile.DebugInfo)
+ %(DCompile._DebugFull)
+ %(DCompile.DebugMixin)
+ %(DCompile.BoundsCheck)
+ %(DCompile.PerformSyntaxCheckOnly)
+
+ %(DCompile.BetterC)
+ %(DCompile._CppStandard)
+ %(DCompile.DIP25)
+ %(DCompile.DIP1000)
+ %(DCompile.DIP1008)
+ %(DCompile.DIP1021)
+ %(DCompile.RevertImport)
+ %(DCompile.PreviewDtorFields)
+ %(DCompile.PreviewIntPromote)
+ %(DCompile.PreviewFixAliasThis)
+ %(DCompile.PreviewRvalueRefParam)
+ %(DCompile.PreviewNoSharedAccess)
+ %(DCompile.PreviewMarkdown)
+ %(DCompile.PreviewIn)
+ %(DCompile.PreviewInclusiveInContracts)
+ %(DCompile.TransitionVMarkdown)
+ %(DCompile.TransitionField)
+ %(DCompile.TransitionCheckImports)
+ %(DCompile.TransitionComplex)
+ %(DCompile.Warnings)
+ %(DCompile.Deprecations)
+ %(DCompile.Verbose)
+ %(DCompile.ShowTLS)
+ %(DCompile.ShowGC)
+ %(DCompile.IgnorePragma)
+ %(DCompile.ShowDependencies)
+ %(DCompile.LowMem)
+ %(DCompile.DocDir)
+ %(DCompile.DocFile)
+ %(DCompile.DepFile)
+ %(DCompile.HeaderDir)
+ %(DCompile.HeaderFile)
+ %(DCompile.CppHeaderFile)
+ %(DCompile.JSONFile)
+
+
+
+ <_OptionsHash>$([System.Math]::Abs($([System.String]::Concat('%(DCompile._AllOptions)').GetHashCode())))
+
+
+
+
+ <_Objs Include="@(DCompile)">
+ %(ObjectFileName)
+ %(_OptionsHash)
+
+
+
+ <_Conflicting Include="@(_Objs)" Condition="@(_Objs->'%(Hash)'->Distinct()->Count()) > 1" />
+
+
+
+
+ %(CompileUnit)_%(_OptionsHash)
+
+
+
+
+ $([System.IO.Path]::GetDirectoryName('%(ObjectFileName)'))\%(CompileUnit)$([System.IO.Path]::GetExtension('%(ObjectFileName)'))
+
+
+
+
+
+
+
+
+ $([System.IO.Path]::GetDirectoryName('%(DCompile.ObjectFileName)'))\%(DCompile.CompileUnit)$([System.IO.Path]::GetExtension('%(DCompile.ObjectFileName)'))
+
+
+
+
+
+
+
+
+
+ true
+ $(TLogLocation)\%(CompileUnit).tlog
+ $(TLogLocation)\%(CompileUnit).tlog\dmd.read.1.tlog
+ $(TLogLocation)\%(CompileUnit).tlog\dmd.write.1.tlog
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(CompileUnit.Identity)
+
+
+ $(TLogLocation)\%(CompileUnit)_%(Filename)%(Extension)
+
+
+
+
+
+
+
+
-
+ DependsOnTargets="_collectDFiles;_replacePackageName;_sanitizeOptions;_setTracking">
+
+
+
+
+
+
+
-
+
<_ToolExe Condition="'$(DCompiler)' == 'LDC'">$(LDCBinDir)ldmd2.exe
<_ToolExe Condition="'$(DCompiler)' != 'LDC'">$(DMDBinDir)dmd.exe
- <_DebugFull Condition="'$(DCompiler)' == 'LDC'">false
- <_DebugFull Condition="'$(_DebugFull)' == '' and '@(DCompile->Metadata('DebugInfo')->Distinct())' == 'None'">false
- <_DebugFull Condition="'$(_DebugFull)' == ''">@(DCompile->Metadata('DebugFull')->Distinct())
- <_DebugFull Condition="'$(_DebugFull)' != 'true' and '$(_DebugFull)' != 'false'">false
-
-
-
- <_CppStandard Condition="'$(_CppStandard)' == ''">@(DCompile->Metadata('CppStandard')->Distinct())
- <_clLanguage Condition="'$(_CppStandard)' == 'fromCpp'">@(ClCompile->Metadata('LanguageStandard')->Distinct())
- <_CppStandard Condition="'$(_CppStandard)' == 'fromCpp' and '$(_clLanguage)' == 'stdcpp14'">cpp14
- <_CppStandard Condition="'$(_CppStandard)' == 'fromCpp' and '$(_clLanguage)' == 'stdcpp17'">cpp17
- <_CppStandard Condition="'$(_CppStandard)' == 'fromCpp' and '$(_clLanguage)' == 'stdcpplatest'">cpp17
- <_CppStandard Condition="'$(_CppStandard)' == 'fromCpp' and '$(_clLanguage)' == 'Default'">cpp17
- <_CppStandard Condition="'$(_CppStandard)' == 'fromCpp'">default
-
-
-
true
false
$(CL_MPCount)
@@ -190,12 +361,13 @@
+ DependsOnTargets="_collectDFiles;_sanitizeOptions">
-
-
+
+
diff --git a/msbuild/dcompile_defaults.props b/msbuild/dcompile_defaults.props
index e16adef1..5293ccc2 100644
--- a/msbuild/dcompile_defaults.props
+++ b/msbuild/dcompile_defaults.props
@@ -44,11 +44,10 @@
$([System.String]::Copy('$(MSBuildVersion)').Split(['.'])[0])
$([System.String]::Copy('$(MSBuildVersion)').Split(['.'])[1])
$([System.String]::Copy('$(MSBuildVersion)').Split(['.'])[2])
- $(MSBuildVersion_Major).0
+ $(MSBuildVersion_Major).0
16.0
16.1
- 17.$(MSBuildVersion_Minor)
- 18.0
+ $(MSBuildVersion_Major).$(MSBuildVersion_Minor)
@@ -137,8 +136,6 @@
ARM64
echo DMD not supported on this platform
exit 1
-
-
-
+
diff --git a/nsis/visuald.nsi b/nsis/visuald.nsi
index e1407349..bf9af42b 100644
--- a/nsis/visuald.nsi
+++ b/nsis/visuald.nsi
@@ -29,7 +29,7 @@
; define DMD source path to include dmd installation
; !define DMD
-!define DMD_VERSION "2.111.0"
+!define DMD_VERSION "2.112.0"
!define DMD_SRC c:\d\dmd-${DMD_VERSION}
; define LDC to include ldc installation
@@ -61,6 +61,7 @@
!include "StrFunc.nsh"
!include "TextFunc.nsh"
!include "InstallOptions.nsh"
+ !include "x64.nsh"
!include "uninstall_helper.nsh"
!include "replaceinfile.nsh"
@@ -303,15 +304,18 @@ Section "Visual Studio package" SecPackage
${File} "..\bin\${CONFIG}\" vdserver.exe
!endif
-!ifdef DMDSERVER
- ${File} "..\bin\${CONFIG_DMDSERVER}\x64\" dmdserver.exe
-!endif
-
!ifdef VDEXTENSIONS
${File} ..\bin\Release\vdextensions\obj\ vdextensions.dll
${File} ..\bin\Release\vdext15\obj\ vdext15.dll
!endif
+!ifdef DMDSERVER
+ ${File} "..\bin\${CONFIG_DMDSERVER}\x64\" dmdserver.exe
+ ${SetOutPath} "$INSTDIR\dmdserver"
+ ${File} "..\..\binaries\" dmdserver-2.110.exe
+ ${File} "..\..\binaries\" dmdserver-2.111.exe
+!endif
+
!ifdef DPARSER
${SetOutPath} "$INSTDIR\DParser"
${File} ..\bin\Release\DParserCOMServer\ DParserCOMServer.exe
@@ -384,6 +388,9 @@ Section "Visual Studio package" SecPackage
!endif
!ifdef VS2026
${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.0.dll
+ ${File} ..\bin\dbuild\release-v18_1\obj\ dbuild.18.1.dll
+ ${File} ..\bin\dbuild\release-v18_3\obj\ dbuild.18.3.dll
+ ${File} ..\bin\dbuild\release-v18_6\obj\ dbuild.18.6.dll
!endif
WriteRegStr HKLM "Software\${APPNAME}" "msbuild" $INSTDIR\msbuild
!endif
@@ -1111,9 +1118,7 @@ ${MementoSection} "mago" SecMago
${SetOutPath} "$INSTDIR\Mago"
${File} ${MAGO_SOURCE}\bin\Win32\Release\ MagoNatDE.dll
-;; ${File} ${MAGO_SOURCE}\bin\Win32\Release\ MagoNatEE.dll
${File} ${MAGO_SOURCE}\bin\Win32\Release\ udis86.dll
-;; ${File} ${MAGO_SOURCE}\bin\Win32\Release\ CVSTI.dll
${File} ${MAGO_SOURCE}\bin\x64\Release\ MagoRemote.exe
${File} ${MAGO_SOURCE}\bin\x64\Release\ MagoGC64.dll
${File} ${MAGO_SOURCE}\bin\Win32\Release\ MagoGC32.dll
@@ -1122,7 +1127,23 @@ ${MementoSection} "mago" SecMago
${File} ${MAGO_SOURCE}\ LICENSE.TXT
${File} ${MAGO_SOURCE}\ NOTICE.TXT
+ ${SetOutPath} "$INSTDIR\vscode"
+ ${File} ${MAGO_SOURCE}\bin\Win32\Release\ MagoNatCC.dll
+ ${File} ${MAGO_SOURCE}\bin\Win32\Release\ MagoNatCC.vsdconfig
+ ${File} ${MAGO_SOURCE}\EED\MagoNatCC\ .vsdbg-config.json
+
+ ${SetOutPath} "$INSTDIR\Mago\x64"
+ ${File} ${MAGO_SOURCE}\bin\x64\Release\ mago-mi.exe
+ ${File} ${MAGO_SOURCE}\bin\x64\Release\ udis86.dll
+ ${File} ${MAGO_SOURCE}\bin\x64\Release\ MagoNatDE.dll
+ ${File} "$%VSINSTALLDIR%\DIA SDK\bin\amd64\" msdia140.dll
+
ExecWait 'regsvr32 /s "$INSTDIR\Mago\MagoNatDE.dll"'
+ ${If} ${RunningX64}
+ ${DisableX64FSRedirection}
+ ExecWait '"$SYSDIR\regsvr32.exe" /s "$INSTDIR\Mago\x64\MagoNatDE.dll"'
+ ${EnableX64FSRedirection}
+ ${EndIf}
!ifdef VS_NET
Push ${SecVS_NET}
@@ -1163,6 +1184,27 @@ ${MementoSection} "mago" SecMago
WriteRegStr HKLM "SOFTWARE\Wow6432Node\MagoDebugger" "MagoGC64.dll" "$INSTDIR\Mago\MagoGC64.dll"
${MementoSectionEnd}
+
+;--------------------------------
+${MementoSection} "add mago as VSCode debug extension" SecMagoVSCode
+
+ SectionGetFlags ${SecMago} $2
+ IntOp $2 $2 & ${SF_SELECTED}
+ IntCmp $2 ${SF_SELECTED} 0 NoVSCode
+
+ Push 1
+ Call DetectVSCodeCPPExtension
+ StrCmp $0 "0" NoVSCode
+
+ CreateDirectory "$PROFILE\.cppvsdbg\extensions"
+ FileOpen $0 "$PROFILE\.cppvsdbg\extensions\mago.link" "w"
+ FileWrite $0 "$INSTDIR\mago\vscode$\r$\n"
+ FileClose $0
+
+ NoVSCode:
+
+${MementoSectionEnd}
+
!endif
SectionGroupEnd ; Components
@@ -1212,6 +1254,7 @@ SectionEnd
!ifdef MAGO
LangString DESC_SecMago ${LANG_ENGLISH} "Mago is a debug engine especially designed for the D-Language."
LangString DESC_SecMago2 ${LANG_ENGLISH} "$\r$\nMago is written by Aldo Nunez. Distributed under the Apache License Version 2.0. See www.dsource.org/projects/mago_debugger"
+ LangString DESC_SecMagoVSCode ${LANG_ENGLISH} "Intergrate Mago with the VSCode Microsoft cpptool debug engine."
!endif
!ifdef MSBUILD
LangString DESC_SecMSBuild ${LANG_ENGLISH} "MSBuild integration into VC++ projects in VS 2013/15/17/19/22"
@@ -1254,6 +1297,7 @@ SectionEnd
!endif
!ifdef MAGO
!insertmacro MUI_DESCRIPTION_TEXT ${SecMago} $(DESC_SecMago)$(DESC_SecMago2)
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecMagoVSCode} $(DESC_SecMagoVSCode)
!endif
!ifdef MSBUILD
!insertmacro MUI_DESCRIPTION_TEXT ${SecMSBuild} $(DESC_SecMSBuild)
@@ -1442,6 +1486,10 @@ Section "Uninstall"
; Push ${VS2017_REGISTRY_KEY}
; Call un.RegisterMago
+ Delete "$PROFILE\.cppvsdbg\extensions\mago.link"
+ RMDir "$PROFILE\.cppvsdbg\extensions"
+ RMDir "$PROFILE\.cppvsdbg"
+
!endif
Call un.RegisterIVDServer
@@ -1641,6 +1689,13 @@ Function .onInit
Done_VS2026:
!endif
+!ifdef MAGO
+ Call DetectVSCodeCPPExtension
+ StrCmp $0 "0" 0 Installed_VSCode
+ SectionSetFlags ${SecMagoVSCode} ${SF_RO}
+ Installed_VSCode:
+!endif
+
!ifdef EXPRESS
; detect VCExpress 2008
ClearErrors
@@ -2406,7 +2461,7 @@ Function DetectVS
StrCmp $0 0 0 no_vswhere
StrCmp $1 "" no_vswhere
StrCpy $VSVersion "VS2017+" ; value not used, but only checked if empty
- no_vswhere:
+ no_vswhere:
FunctionEnd
@@ -2491,3 +2546,32 @@ Function DetectVC
done:
FunctionEnd
+
+Function DetectVSCodeCPPExtension
+ Push $1
+ Push $2
+
+ ; VS Code extensions directory
+ StrCpy $1 "$PROFILE\.vscode\extensions"
+
+ ; Default return value = 0 (not found)
+ StrCpy $0 "0"
+
+ ; Check if directory exists
+ IfFileExists "$1\*.*" 0 done
+
+ FindFirst $2 $R0 "$1\ms-vscode.cpptools*"
+ ${If} $2 == ""
+ ; Nothing found yet
+ ${Else}
+ ; Found at least one extension
+ StrCpy $0 "1"
+ FindClose $2
+ Goto done
+ ${EndIf}
+
+done:
+ Pop $2
+ Pop $1
+ ; Return value in $0
+FunctionEnd
diff --git a/tools/nodebugger.d b/tools/nodebugger.d
new file mode 100644
index 00000000..13d1dde3
--- /dev/null
+++ b/tools/nodebugger.d
@@ -0,0 +1,19 @@
+module nodebugger;
+
+import core.sys.windows.windows;
+
+extern (Windows) nothrow @nogc
+{
+ BOOL IsDebuggerPresent()
+ {
+ return FALSE;
+ }
+ version (Win64)
+ __gshared void* __imp_IsDebuggerPresent = &IsDebuggerPresent;
+ else version(LDC)
+ pragma(mangle, "_imp__IsDebuggerPresent@0") // LDC prepends another '_'
+ __gshared void* __imp__IsDebuggerPresent = &IsDebuggerPresent;
+ else
+ pragma(mangle, "__imp__IsDebuggerPresent@0")
+ __gshared void* __imp__IsDebuggerPresent = &IsDebuggerPresent;
+}
diff --git a/tools/nodll.d b/tools/nodll.d
new file mode 100644
index 00000000..94e46712
--- /dev/null
+++ b/tools/nodll.d
@@ -0,0 +1,12 @@
+// replacement module to disable stack traces and avoid the dll code
+// to be linked in
+
+module core.sys.windows.dll;
+version (Windows):
+
+import core.sys.windows.windows;
+
+int dll_getRefCount( HINSTANCE hInstance ) nothrow @nogc
+{
+ return 1;
+}
diff --git a/tools/nogc.d b/tools/nogc.d
new file mode 100644
index 00000000..773cfaf3
--- /dev/null
+++ b/tools/nogc.d
@@ -0,0 +1,16 @@
+module nogc;
+
+extern (C)
+{
+ void _d_register_manual_gc();
+
+ // replace during link to not use the conservative GC, so no memory freed automatically
+ void* register_default_gcs()
+ {
+ pragma(inline, false);
+ // do not call, they register implicitly through pragma(crt_constructor)
+ // avoid being optimized away
+ auto reg2 = &_d_register_manual_gc;
+ return reg2;
+ }
+}
diff --git a/tools/noregistry.d b/tools/noregistry.d
new file mode 100644
index 00000000..206f08bd
--- /dev/null
+++ b/tools/noregistry.d
@@ -0,0 +1,89 @@
+// replacement module to disable registry write operations
+
+module std.noregistry;
+
+import core.sys.windows.windows;
+
+extern (Windows) nothrow @nogc
+{
+ alias /+_Return_type_success_(return==ERROR_SUCCESS)+/ LONG LSTATUS;
+ LSTATUS RegSetValueW (
+ /*__in*/ HKEY hKey,
+ /*__in_opt*/ LPCWSTR lpSubKey,
+ /*__in*/ DWORD dwType,
+ /+_In_reads_bytes_opt_(cbData)+/ LPCWSTR lpData,
+ /*__in*/ DWORD cbData
+ )
+ {
+ return -1;
+ }
+ LSTATUS RegSetValueExW (
+ /*__in*/ HKEY hKey,
+ /*__in_opt*/ LPCWSTR lpSubKey,
+ /*_Reserved_*/ DWORD Reserved,
+ /*__in*/ DWORD dwType,
+ /+_In_reads_bytes_opt_(cbData)+/ LPCWSTR lpData,
+ /*__in*/ DWORD cbData
+ )
+ {
+ return -1;
+ }
+ LSTATUS RegDeleteKeyW(
+ /*__in*/ HKEY hKey,
+ /*__in_opt*/ LPCWSTR lpSubKey
+ )
+ {
+ return -1;
+ }
+ LSTATUS RegDeleteValueW(
+ /*__in*/ HKEY hKey,
+ /*__in_opt*/ LPCWSTR lpValue
+ )
+ {
+ return -1;
+ }
+ LSTATUS RegDeleteKeyValueW(
+ /*__in*/ HKEY hKey,
+ /*__in_opt*/ LPCWSTR lpSubKey,
+ /*__in_opt*/ LPCWSTR lpValueName
+ )
+ {
+ return -1;
+ }
+
+ version (Win64)
+ {
+ __gshared void* __imp_RegSetValueW = &RegSetValueW;
+ __gshared void* __imp_RegSetValueExW = &RegSetValueExW;
+ __gshared void* __imp_RegDeleteKeyW = &RegDeleteKeyW;
+ __gshared void* __imp_RegDeleteValueW = &RegDeleteValueW;
+ __gshared void* __imp_RegDeleteKeyValueW = &RegDeleteKeyValueW;
+ }
+ else version(LDC)
+ {
+ // LDC prepends another '_'
+ pragma(mangle, "_imp__RegSetValueW@20")
+ __gshared void* __imp__RegSetValueW = &RegSetValueW;
+ pragma(mangle, "_imp__RegSetValueExW@24")
+ __gshared void* __imp__RegSetValueExW = &RegSetValueExW;
+ pragma(mangle, "_imp__RegDeleteKeyW@8")
+ __gshared void* __imp__RegDeleteKeyW = &RegDeleteKeyW;
+ pragma(mangle, "_imp__RegDeleteValueW@8")
+ __gshared void* __imp__RegDeleteValueW = &RegDeleteValueW;
+ pragma(mangle, "_imp__RegDeleteKeyValueW@12")
+ __gshared void* __imp__RegDeleteKeyValueW = &RegDeleteKeyValueW;
+ }
+ else
+ {
+ pragma(mangle, "__imp__RegSetValueW@20")
+ __gshared void* __imp__RegSetValueW = &RegSetValueW;
+ pragma(mangle, "__imp__RegSetValueExW@24")
+ __gshared void* __imp__RegSetValueExW = &RegSetValueExW;
+ pragma(mangle, "__imp__RegDeleteKeyW@8")
+ __gshared void* __imp__RegDeleteKeyW = &RegDeleteKeyW;
+ pragma(mangle, "__imp__RegDeleteValueW@8")
+ __gshared void* __imp__RegDeleteValueW = &RegDeleteValueW;
+ pragma(mangle, "__imp__RegDeleteKeyValueW@20")
+ __gshared void* __imp__RegDeleteKeyValueW = &RegDeleteKeyValueW;
+ }
+}
diff --git a/vdc/dmdserver/dmd b/vdc/dmdserver/dmd
index 3e73a0a9..a10efa76 160000
--- a/vdc/dmdserver/dmd
+++ b/vdc/dmdserver/dmd
@@ -1 +1 @@
-Subproject commit 3e73a0a9d3e3bd13caf906f5d55ed5924040369c
+Subproject commit a10efa76fc529997f894b2ad3517682bc4712c3b
diff --git a/vdc/dmdserver/dmdinit.d b/vdc/dmdserver/dmdinit.d
index 86bc6892..6602e736 100644
--- a/vdc/dmdserver/dmdinit.d
+++ b/vdc/dmdserver/dmdinit.d
@@ -24,6 +24,7 @@ import dmd.dmodule;
import dmd.dstruct;
import dmd.dsymbol;
import dmd.dtemplate;
+import dmd.errors;
import dmd.escape;
import dmd.expression;
import dmd.func;
@@ -32,6 +33,8 @@ import dmd.id;
import dmd.identifier;
import dmd.location;
import dmd.mtype;
+import dmd.templatesem;
+import dmd.typesem;
import dmd.objc;
import dmd.rootobject;
import dmd.target;
@@ -55,18 +58,25 @@ enum string[2][] dmdStatics =
["_D3dmd5clone12buildXtoHashFCQBa7dstruct17StructDeclarationPSQCg6dscope5ScopeZ8tftohashCQDh5mtype12TypeFunction", "TypeFunction"],
// < 2.110
// ["_D3dmd7dstruct15search_toStringRCQBfQBe17StructDeclarationZ10tftostringCQCs5mtype12TypeFunction", "TypeFunction"],
- // 2.110
- ["_D3dmd7dstruct15search_toStringFCQBfQBe17StructDeclarationZ10tftostringCQCs5mtype12TypeFunction", "TypeFunction"],
- // 2.103
- ["_D3dmd7dmodule6Module11loadStdMathFZ8std_mathCQBsQBrQBm", "Module"],
- ["_D3dmd7dmodule6Module14loadCoreAtomicFZ11core_atomicCQBzQByQBt", "Module"],
-
+ // 2.110 to 2.111
+ // ["_D3dmd7dstruct15search_toStringFCQBfQBe17StructDeclarationZ10tftostringCQCs5mtype12TypeFunction", "TypeFunction"],
+ // 2.112
+ ["_D3dmd9semantic315search_toStringFCQBh7dstruct17StructDeclarationZ10tftostringCQCz5mtype12TypeFunction", "TypeFunction"],
+ // 2.103 to 2.111
+ // ["_D3dmd7dmodule6Module11loadStdMathFZ8std_mathCQBsQBrQBm", "Module"],
+ // ["_D3dmd7dmodule6Module14loadCoreAtomicFZ11core_atomicCQBzQByQBt", "Module"],
+ // 2.112
+ ["_D3dmd10dsymbolsem11loadStdMathFZ8std_mathCQBp7dmodule6Module", "Module"],
+ ["_D3dmd10dsymbolsem14loadCoreAtomicFZ11core_atomicCQBw7dmodule6Module", "Module"],
+
// up to 2.110
// ["_D3dmd4func15FuncDeclaration8genCfuncRPSQBm4root5array__T5ArrayTCQCl5mtype9ParameterZQBcCQDjQy4TypeCQDu10identifier10IdentifiermZ2stCQFb7dsymbol12DsymbolTable", "DsymbolTable"],
// 2.111
// ["_D3dmd4func15FuncDeclaration8genCfuncRPSQBm4root5array__T5ArrayTCQCl5mtype9ParameterZQBcCQDjQy4TypeCQDu10identifier10IdentifierEQEw8astenums3STCZ2stCQFr7dsymbol12DsymbolTable", "DsymbolTable"],
// 2.111.1
- ["_D3dmd4func15FuncDeclaration8genCfuncFPSQBm4root5array__T5ArrayTCQCl5mtype9ParameterZQBcCQDjQy4TypeCQDu10identifier10IdentifierEQEw8astenums3STCZ2stCQFr7dsymbol12DsymbolTable", "DsymbolTable"],
+// ["_D3dmd4func15FuncDeclaration8genCfuncFPSQBm4root5array__T5ArrayTCQCl5mtype9ParameterZQBcCQDjQy4TypeCQDu10identifier10IdentifierEQEw8astenums3STCZ2stCQFr7dsymbol12DsymbolTable", "DsymbolTable"],
+ // 2.112.0
+ ["_D3dmd7funcsem8genCfuncFPSQy4root5array__T5ArrayTCQBw5mtype9ParameterZQBcCQCuQy4TypeCQDf10identifier10IdentifierEQEh8astenums3STCZ2stCQFc7dsymbol12DsymbolTable", "DsymbolTable"],
// 2.091
// ["_D3dmd7typesem12typeSemanticRCQBc5mtype4TypeSQBr7globals3LocPSQCi6dscope5ScopeZ11visitAArrayMFCQDpQCn10TypeAArrayZ3feqCQEn4func15FuncDeclaration", "FuncDeclaration"],
@@ -91,13 +101,26 @@ enum string[2][] dmdStatics =
["_D3dmd7typesem12typeSemanticFCQBc5mtype4TypeSQBr8location3LocPSQCj6dscope5ScopeZ11visitAArrayMFCQDqQCo10TypeAArrayZ4fcmpCQEp4func15FuncDeclaration", "FuncDeclaration"],
["_D3dmd7typesem12typeSemanticFCQBc5mtype4TypeSQBr8location3LocPSQCj6dscope5ScopeZ11visitAArrayMFCQDqQCo10TypeAArrayZ5fhashCQEq4func15FuncDeclaration", "FuncDeclaration"],
- ["_D3dmd7typesem6dotExpFCQv5mtype4TypePSQBk6dscope5ScopeCQCb10expression10ExpressionCQDdQBc8DotIdExpEQDtQCz10DotExpFlagZ11visitAArrayMFCQFcQEi10TypeAArrayZ8fd_aaLenCQGf4func15FuncDeclaration", "FuncDeclaration"],
+ // <= 2.111
+ // ["_D3dmd7typesem6dotExpFCQv5mtype4TypePSQBk6dscope5ScopeCQCb10expression10ExpressionCQDdQBc8DotIdExpEQDtQCz10DotExpFlagZ11visitAArrayMFCQFcQEi10TypeAArrayZ8fd_aaLenCQGf4func15FuncDeclaration", "FuncDeclaration"],
+
["_D3dmd7typesem6dotExpFCQv5mtype4TypePSQBk6dscope5ScopeCQCb10expression10ExpressionCQDdQBc8DotIdExpEQDtQCz10DotExpFlagZ8noMemberMFQEdQDsQDdCQFh10identifier10IdentifieriZ4nesti", "int"],
//["_D3dmd6dmacro10MacroTable6expandMFKSQBi6common9outbuffer9OutBufferkKkAxaZ4nesti", "int"], // x86
- ["_D3dmd7dmodule6Module19runDeferredSemanticRZ6nestedi", "int"],
+
+ // <= 2.111
+ // ["_D3dmd7dmodule6Module19runDeferredSemanticRZ6nestedi", "int"],
+ // 2.112
+ ["_D3dmd10dsymbolsem19runDeferredSemanticFZ6nestedi", "int"],
+
["_D3dmd10dsymbolsem22DsymbolSemanticVisitor5visitMRCQBx9dtemplate13TemplateMixinZ4nesti", "int"],
- ["_D3dmd9dtemplate16TemplateInstance16tryExpandMembersMFPSQCc6dscope5ScopeZ4nesti", "int"],
- ["_D3dmd9dtemplate16TemplateInstance12trySemantic3MFPSQBy6dscope5ScopeZ4nesti", "int"],
+
+ // <= 2.111
+ // ["_D3dmd9dtemplate16TemplateInstance16tryExpandMembersMFPSQCc6dscope5ScopeZ4nesti", "int"],
+ // ["_D3dmd9dtemplate16TemplateInstance12trySemantic3MFPSQBy6dscope5ScopeZ4nesti", "int"],
+ // 2.112
+ ["_D3dmd11templatesem16tryExpandMembersFCQBl9dtemplate16TemplateInstancePSQCs6dscope5ScopeZ4nesti", "int"],
+ ["_D3dmd11templatesem12trySemantic3FCQBh9dtemplate16TemplateInstancePSQCo6dscope5ScopeZ4nesti", "int"],
+
["_D3dmd13expressionsem25ExpressionSemanticVisitor5visitMRCQCd10expression7CallExpZ4nesti", "int"],
["_D3dmd5lexer5Lexer12stringbufferSQBf6common9outbuffer9OutBuffer", "OutBuffer"],
//["_D3dmd10expression10IntegerExp__T7literalVii0ZQnRZ11theConstantCQCkQCjQCa", "IntegerExp"],
@@ -109,19 +132,28 @@ enum string[2][] dmdStatics =
// ["_D3dmd10identifier10Identifier17generateIdWithLocFNbAyaKxSQCe8location3LocZ8countersHSQDgQDfQCwQCnFNbQBxKxQBxZ3Keyk", "countersType"],
["_D3dmd10identifier10Identifier9newSuffixFNbZ1ik", "size_t"],
// 2.111
- ["_D3dmd10identifier10Identifier17generateIdWithLocFNbAyaSQCc8location3LocQuZ8countersHSQDgQDfQCwQCnFNbQBxQBxQCdZ3Keyk", "countersType"],
+ // ["_D3dmd10identifier10Identifier17generateIdWithLocFNbAyaSQCc8location3LocQuZ8countersHSQDgQDfQCwQCnFNbQBxQBxQCdZ3Keyk", "countersType"],
// 2.106
["_D3dmd7arrayop7arrayOpFCQw10expression6BinExpPSQBt6dscope5ScopeZQByCQCo9dtemplate19TemplateDeclaration", "TemplateDeclaration"],
["_D3dmd6errors18colorHighlightCodeFNbKSQBk6common9outbuffer9OutBufferZ6nestedi", "int"],
- ["_D3dmd7dmodule6Module18loadCoreStdcConfigFZ16core_stdc_configCQCiQChQCc", "Module"],
+ // to 2.111
+ // ["_D3dmd7dmodule6Module18loadCoreStdcConfigFZ16core_stdc_configCQCiQChQCc", "Module"],
+ // 2.112
+ ["_D3dmd10dsymbolsem18loadCoreStdcConfigFZ16core_stdc_configCQCf7dmodule6Module", "Module"],
+
// EscapeState.reset not accessible in package dmd
- ["_D3dmd6escape11EscapeState17scopeInferFailureHiCQBu10rootobject10RootObject", "EscapeInfer" ],
+ // to 2.111
+ // ["_D3dmd6escape11EscapeState17scopeInferFailureHiCQBu10rootobject10RootObject", "EscapeInfer" ],
+ // 2.112
+ ["_D3dmd6escape11EscapeState16scopeInferReasonHiCQBt10rootobject10RootObject", "EscapeInfer" ],
// 2.10x
["_D3dmd7typesem21getComplexLibraryTypeFSQBl8location3LocPSQCd6dscope5ScopeEQCu8astenums2TYZ13complex_floatCQEa5mtype4Type", "Type" ],
["_D3dmd7typesem21getComplexLibraryTypeFSQBl8location3LocPSQCd6dscope5ScopeEQCu8astenums2TYZ14complex_doubleCQEb5mtype4Type", "Type" ],
["_D3dmd7typesem21getComplexLibraryTypeFSQBl8location3LocPSQCd6dscope5ScopeEQCu8astenums2TYZ12complex_realCQDz5mtype4Type", "Type" ],
+
+ ["_D3dmd11templatesem17emptyArrayElementCQBl10expression10Expression", "Expression"],
];
string cmangled(string s)
@@ -159,6 +191,12 @@ extern __gshared FuncDeclaration* statementsem_fdapply;
pragma(mangle, "_D3dmd12statementsem15applyAssocArrayFCQBl9statement16ForeachStatementCQCr10expression10ExpressionCQDt5mtype4TypeZ6fldeTyPCQErQy12TypeDelegate")
extern __gshared TypeDelegate* statementsem_fldeTy;
+bool vdFatalErrorHandler() nothrow
+{
+ import core.exception;
+ onAssertErrorMsg(__FILE__, __LINE__, "fatal error");
+ return true;
+}
void clearSemanticStatics()
{
@@ -172,11 +210,11 @@ void clearSemanticStatics()
// statementsem
// static __gshared FuncDeclaration* fdapply = [null, null];
// static __gshared TypeDelegate* fldeTy = [null, null];
- statementsem_fdapply[0] = statementsem_fdapply[1] = null;
- statementsem_fldeTy[0] = statementsem_fldeTy[1] = null;
+ // <= 2.111
+ // statementsem_fdapply[0] = statementsem_fdapply[1] = null;
+ // statementsem_fldeTy[0] = statementsem_fldeTy[1] = null;
// dmd.dtemplate
- emptyArrayElement = null;
TemplateValueParameter.edummies = null;
TemplateTypeParameter.tdummy = null;
TemplateAliasParameter.sdummy = null;
@@ -205,6 +243,8 @@ void dmdInit()
version(CRuntime_Microsoft)
initFPU();
+ import std.functional;
+ fatalErrorHandler = toDelegate(&vdFatalErrorHandler);
setTargetBuildDefaults(target);
global._init();
//Token._init();
@@ -213,7 +253,7 @@ void dmdInit()
location_init();
target._init(global.params); // needed by Type._init
- Type._init();
+ Type_init();
Module._init();
CTFloat.initialize();
}
@@ -239,7 +279,7 @@ struct Options
bool mixinAnalysis;
bool UFCSExpansions;
- bool predefineDefaultVersions;
+ bool predefineDefaultVersions = true;
int versionLevel;
string[] versionIds;
int debugLevel;
@@ -395,7 +435,6 @@ void dmdSetupParams(const ref Options opts)
// Add in command line versions
foreach (charz; *versionids)
{
- global.versionids.push(new Identifier(charz));
auto ident = charz[0 .. strlen(charz)];
if (VersionCondition.isReserved(ident))
VersionCondition.addPredefinedGlobalIdent(ident);
@@ -405,7 +444,13 @@ void dmdSetupParams(const ref Options opts)
if (opts.predefineDefaultVersions)
addDefaultVersionIdentifiers(global.params, target);
-
+ if (opts.ldcCompiler || opts.gdcCompiler)
+ {
+ size_t idx = global.versionids.find(Identifier.idPool("DigitalMars"));
+ if (idx != size_t.max)
+ global.versionids.remove(idx);
+ VersionCondition.addPredefinedGlobalIdent(opts.ldcCompiler ? "LDC" : "GNU");
+ }
// always enable for tooltips
global.params.ddoc.doOutput = true;
@@ -499,7 +544,7 @@ void dmdReinit()
target.deinitialize();
setTargetBuildDefaults(target);
target._init(global.params); // needed by Type._init
- Type._reinit();
+ Type_reinit();
// assume object.d unmodified otherwis
Module.moduleinfo = null;
diff --git a/vdc/dmdserver/dmdserver.d b/vdc/dmdserver/dmdserver.d
index 43f949c4..fcb8cae6 100644
--- a/vdc/dmdserver/dmdserver.d
+++ b/vdc/dmdserver/dmdserver.d
@@ -353,7 +353,7 @@ class DMDServer : ComObject, IVDServer
try
{
import core.exception;
- debug assertHandler(function(string file, ulong line, string msg){
+ debug assertHandler(function(string file, size_t line, string msg){
throw new AssertError(msg, file, line);
});
dg();
@@ -1281,20 +1281,20 @@ unittest
version(traceGC)
dumpGC();
+ string stdio = hasPhobos ? "std.stdio" : "source";
for (int i = 0; i < 2; i++)
{
srv.mModules = null;
//clearDmdStatics ();
- source = q{
- import std.stdio;
+ source = "\n" ~ import_stdio ~ q{
int main(string[] args)
{
int xyz = 7;
writeln(1, 2, 3);
return xyz;
}
- };
+ } ~ def_writeln;
checkErrors(source, "");
version(traceGC)
@@ -1307,7 +1307,7 @@ unittest
}
checkTip(5, 9, "(local variable) `int xyz`");
- checkTip(6, 9, "`void std.stdio.writeln!(int, int, int)(int __param_0, int __param_1, int __param_2) @safe`...");
+ checkTip(6, 9, "`void " ~ stdio ~ ".writeln!(int, int, int)(int __param_0, int __param_1, int __param_2) @safe`...");
checkTip(7, 12, "(local variable) `int xyz`");
version(traceGC)
diff --git a/vdc/dmdserver/dmdserver.visualdproj b/vdc/dmdserver/dmdserver.visualdproj
index 0d4404b2..c9ff93da 100644
--- a/vdc/dmdserver/dmdserver.visualdproj
+++ b/vdc/dmdserver/dmdserver.visualdproj
@@ -2279,6 +2279,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2368,8 +2385,6 @@
-
-
@@ -2382,12 +2397,7 @@
-
-
-
-
-
@@ -2402,11 +2412,6 @@
-
-
-
-
-
@@ -2424,13 +2429,8 @@
-
-
-
-
-
@@ -2440,15 +2440,11 @@
+
-
-
-
-
-
+
-
@@ -2476,7 +2472,6 @@ if exist "%WindowsSdkDir%\bin\%WindowsSDKVersion%x86\rc.exe" set rc=&q
-
diff --git a/vdc/dmdserver/semanalysis.d b/vdc/dmdserver/semanalysis.d
index a9532f82..09f930fc 100644
--- a/vdc/dmdserver/semanalysis.d
+++ b/vdc/dmdserver/semanalysis.d
@@ -403,11 +403,11 @@ Module analyzeModule(Module parsedModule, const ref Options opts)
void semantic(Module m)
{
m.dsymbolSemantic(null);
- Module.runDeferredSemantic();
+ runDeferredSemantic();
m.semantic2(null);
- Module.runDeferredSemantic2();
+ runDeferredSemantic2();
m.semantic3(null);
- Module.runDeferredSemantic3();
+ runDeferredSemantic3();
}
if (needsReinit)
@@ -528,13 +528,17 @@ extern(C) int _CrtDumpMemoryLeaks();
extern(C) void dumpGC();
extern(Windows) void OutputDebugStringA(const(char)* lpOutputString);
+bool hasPhobos;
+
string[] guessImportPaths()
{
import std.file;
string druntime = std.path.dirName(__FILE_FULL_PATH__) ~ r"\dmd\druntime\src";
assert(std.file.exists(druntime ~ r"\object.d"));
- return [ druntime, r"c:\s\d\dlang\phobos" ]; // must have version matching compiler and runtime
+ string phobos = r"c:\s\d\dlang\phobos"; // must have version matching compiler and runtime
+ hasPhobos = std.file.exists(phobos ~ r"\std\stdio.d");
+ return [ druntime, phobos ];
foreach(patch; '0'..'3')
{
@@ -555,6 +559,18 @@ string[] guessImportPaths()
return [ r"c:\d\dmd2\src\druntime\import", r"c:\s\d\rainers\src\phobos" ];
}
+string import_stdio() { return hasPhobos ? "import std.stdio;" : ""; }
+string def_writeln() { return hasPhobos ? "" : q{
+ void writeln(T...)(T args)
+ {
+ // infer same attributes
+ static bool x;
+ x = true;
+ if (x) throw new Exception(null);
+ }
+};
+}
+
unittest
{
version(traceGC)
@@ -727,26 +743,39 @@ void do_unittests()
};
m = checkErrors(source, "4,10,4,11:Error: undefined identifier `abc`\n");
- source = q{
- import std.stdio;
+ bool hasPhobos = false;
+ string import_stdio = hasPhobos ? "import std.stdio;" : "";
+ string def_writeln = hasPhobos ? "" : q{
+ void writeln(T...)(T args)
+ {
+ // infer same attributes
+ static bool x;
+ x = true;
+ if (x) throw new Exception(null);
+ };
+ };
+
+ source = "\n" ~ import_stdio ~ q{
int main(string[] args)
{
int xyz = 7; // Line 5
writeln(1, 2, 3);
return xyz;
}
- };
+ } ~ def_writeln;
m = checkErrors(source, "");
+ string stdio = hasPhobos ? "std.stdio" : "source";
checkTip(m, 5, 8, "(local variable) `int xyz`");
checkTip(m, 5, 10, "(local variable) `int xyz`");
- checkTip(m, 6, 4, "`void std.stdio.writeln!(int, int, int)(int __param_0, int __param_1, int __param_2) @safe`\n...");
+ checkTip(m, 6, 4, "`void " ~ stdio ~ ".writeln!(int, int, int)(int __param_0, int __param_1, int __param_2) @safe`...");
checkTip(m, 5, 11, "");
- checkTip(m, 6, 8, "`void std.stdio.writeln!(int, int, int)(int __param_0, int __param_1, int __param_2) @safe`\n...");
+ checkTip(m, 6, 8, "`void " ~ stdio ~ ".writeln!(int, int, int)(int __param_0, int __param_1, int __param_2) @safe`...");
checkTip(m, 7, 11, "(local variable) `int xyz`");
checkDefinition(m, 7, 11, "source.d", 5, 8); // xyz
- checkDefinition(m, 2, 14, opts.importDirs[1] ~ r"\std\stdio.d", 0, 1); // std.stdio
+ if (hasPhobos)
+ checkDefinition(m, 2, 14, opts.importDirs[1] ~ r"\std\stdio.d", 0, 1); // std.stdio
//checkTypeIdentifiers(source);
@@ -1370,12 +1399,15 @@ void do_unittests()
return sum;
}
};
- m = checkErrors(source, "");
- //dumpAST(m);
+ if (hasPhobos)
+ {
+ m = checkErrors(source, "");
+ //dumpAST(m);
- checkTip(m, 6, 12, "(local variable) `int i`");
- checkTip(m, 7, 5, "(local variable) `int sum`");
- checkTip(m, 7, 12, "(local variable) `int i`");
+ checkTip(m, 6, 12, "(local variable) `int i`");
+ checkTip(m, 7, 5, "(local variable) `int sum`");
+ checkTip(m, 7, 12, "(local variable) `int i`");
+ }
source = q{
import std.array;
@@ -1385,10 +1417,13 @@ void do_unittests()
auto t = split(
}
};
- m = checkErrors(source, "");
- // todo: deal with "ditto"
- checkTip(m, 5, 13, "`string[] std.array.split!(string, string)(string range, string sep) pure nothrow @safe`\n\nditto");
- checkTip(m, 6, 13, "(template function) `std.array.split(S)(S s) if (isSomeString!S)`");
+ if (hasPhobos)
+ {
+ m = checkErrors(source, "");
+ // todo: deal with "ditto"
+ checkTip(m, 5, 13, "`string[] std.array.split!(string, string)(string range, string sep) pure nothrow @safe`\n\nditto");
+ checkTip(m, 6, 13, "(template function) `std.array.split(S)(S s) if (isSomeString!S)`");
+ }
source = q{ // Line 1
enum TOK : ubyte
@@ -1497,9 +1532,12 @@ void do_unittests()
cast(void)readln(); // Line 5
}
};
- m = checkErrors(source, "");
- checkTip(m, 5, 14, "`string std.stdio.readln!string(dchar terminator = '\\n') @system`"
- ~ "\n\nRead line from `stdin`...");
+ if (hasPhobos)
+ {
+ m = checkErrors(source, "");
+ checkTip(m, 5, 14, "`string std.stdio.readln!string(dchar terminator = '\\n') @system`"
+ ~ "\n\nRead line from `stdin`...");
+ }
// string expressions with concat
source = q{
@@ -2030,7 +2068,7 @@ void do_unittests()
"6,13,6,14:Error: found `)` instead of statement\n" ~
"9,2,9,3:Error: unmatched closing brace\n" ~
"5,3,5,4:Error: undefined identifier `a`\n" ~
- "6,6,6,7:Error: undefined identifier `a`\n");
+ "6,7,6,8:Error: undefined identifier `a`\n");
exp2 = [
"abc": [ IdTypePos(TypeReferenceKind.TLSVariable) ],
@@ -2389,9 +2427,9 @@ unittest
// "4:21:FUNC:test()",
"1:26:31:TMPL:tmpl(T)",
"2:28:28:STRU:helper",
- "2:29:29:CLSS:tmpl(T)",
+ "2:29:29:CLSS:tmpl",
"2:30:30:ENUM:E",
- "1:32:32:FUNC:tmplfun(T)(T x)",
+ "1:32:32:FUNC:tmplfun(T x)",
];
checkOutline(source, 3, expected);
}
@@ -2504,7 +2542,7 @@ void test_ana_dmd()
{
filename = __FILE_FULL_PATH__;
source = cast(string)std.file.read(filename);
- if (i & 1)
+ if (!hasPhobos || i & 1)
{
import std.array;
source = replace(source, "std", "stdx");
@@ -2586,7 +2624,8 @@ void test_ana_dmd()
};
Module m = checkErrors(source, "");
}
- test_std();
+ if (hasPhobos)
+ test_std();
}
unittest
diff --git a/vdc/dmdserver/semvisitor.d b/vdc/dmdserver/semvisitor.d
index 97c161a0..f7ae5206 100644
--- a/vdc/dmdserver/semvisitor.d
+++ b/vdc/dmdserver/semvisitor.d
@@ -31,8 +31,10 @@ import dmd.dstruct;
import dmd.dsymbol;
import dmd.dsymbolsem;
import dmd.dtemplate;
+import dmd.templatesem;
import dmd.errors;
import dmd.expression;
+import dmd.expressionsem;
import dmd.func;
import dmd.globals;
import dmd.hdrgen;
@@ -902,7 +904,8 @@ extern(C++) class FindASTVisitor : ASTVisitor
if (matchIdentifier(td.loc, td.ident))
foundNode(td);
- foreach(ti; td.instances)
+ auto instances = cast(TemplateInstance[TemplateInstanceBox])td.instances;
+ foreach(ti; instances)
if (!stop)
visit(ti);
@@ -2875,7 +2878,7 @@ Expression isAALenCall(Expression expr)
// unpack first argument of _aaLen(aa)
if (auto ce = expr.isCallExp())
if (auto ve = ce.e1.isVarExp())
- if (ve.var.ident is Id.aaLen)
+ if (ve.var.ident is Id._d_aaLen)
if (ce.arguments && ce.arguments.dim > 0)
return (*ce.arguments)[0];
return null;
diff --git a/visuald/config.d b/visuald/config.d
index ab416ab0..1d6a6398 100644
--- a/visuald/config.d
+++ b/visuald/config.d
@@ -3963,7 +3963,26 @@ class Config : DisposingComObject,
cp.QueryInterface(&IVsCfgProvider2.iid, cast(void**)&cp2);
if(cp2)
{
- cp2.GetCfgOfName(_toUTF16z(mName), _toUTF16z(mPlatform), &cfg);
+ string cfgname = mName;
+ string platform = mPlatform;
+ if(auto sbm5 = qi_cast!IVsSolutionBuildManager5(solutionBuildManager))
+ {
+ GUID uid;
+ pHier[i].GetGuidProperty(VSITEMID_ROOT, VSHPROPID_ProjectIDGuid, &uid);
+ ScopedBSTR cfgCanonicalName;
+ if (sbm5.FindActiveProjectCfgName(&uid, &cfgCanonicalName.bstr) == S_OK)
+ {
+ string name = cfgCanonicalName.detach();
+ auto names = name.split('|');
+ if (names.length == 2)
+ {
+ cfgname = names[0];
+ platform = names[1];
+ }
+ }
+ release(sbm5);
+ }
+ cp2.GetCfgOfName(_toUTF16z(cfgname), _toUTF16z(platform), &cfg);
if(!cfg)
cp2.GetCfgs(1, &cfg, null, null); // TODO: find a "similar" config?
if(cfg)
diff --git a/visuald/vdserverclient.d b/visuald/vdserverclient.d
index 1bb4b721..dd5ee29e 100644
--- a/visuald/vdserverclient.d
+++ b/visuald/vdserverclient.d
@@ -31,7 +31,9 @@ import std.concurrency;
import std.datetime;
import std.string;
import std.conv;
+import std.file;
import std.path;
+import std.process : spawnProcess, ExecConfig = Config;
import std.windows.charset;
import core.atomic;
import core.thread;
@@ -115,6 +117,54 @@ void checkGCStats()
}
+///////////////////////////////////////////////////////////////////////
+string[] findDmdServerVersions()
+{
+ string[] versions;
+ string dir = buildPath(Package.GetGlobalOptions().VisualDInstallDir, "dmdserver");
+ foreach (exe; dirEntries(dir, SpanMode.shallow))
+ {
+ string base = baseName(exe);
+ if (globMatch(base, "dmdserver*.exe"))
+ if (base.length > 14 && base[9] == '-')
+ versions ~= base[10..$-4];
+ }
+ return versions;
+}
+
+// return path to dmdserver with smallest version higher than installed DMD
+string findDmdServer()
+{
+ import visuald.updates;
+
+ float installedver = Package.s_instance.getInstalledVersionFloat(CheckProduct.DMD);
+ if (installedver <= 0)
+ return null;
+ string[] dmdservers = findDmdServerVersions();
+ string bestdmdver;
+ float bestver = 9999;
+ foreach(dmdver; dmdservers)
+ {
+ try
+ {
+ string ver = dmdver; // gets consumed by parse
+ float v = parse!float(ver) + 0.0009; // include all .-releases
+ if (v >= installedver && v < bestver)
+ {
+ bestver = v;
+ bestdmdver = dmdver;
+ }
+ }
+ catch(Exception)
+ {
+ }
+ }
+ if (bestdmdver.empty)
+ return null;
+ string dir = buildPath(Package.GetGlobalOptions().VisualDInstallDir, "dmdserver");
+ return buildPath(dir, "dmdserver-" ~ bestdmdver ~ ".exe");
+}
+
///////////////////////////////////////////////////////////////////////
// can be changed through registry entry
// debug version = DebugServer;
@@ -146,6 +196,19 @@ bool startVDServer()
gVDServer = addref(newCom!VDServer);
else
{
+ if (gServerClassFactory_iid == DMDServerClassFactory_iid)
+ {
+ string dmdserver = findDmdServer();
+ if (!dmdserver.empty)
+ {
+ auto pid = spawnProcess([dmdserver], null, ExecConfig.suppressConsole);
+ if (pid)
+ {
+ Sleep(100); // wait for process ready
+ }
+ }
+ }
+
GUID factory_iid = IID_IClassFactory;
HRESULT hr = CoGetClassObject(gServerClassFactory_iid, CLSCTX_LOCAL_SERVER|CLSCTX_INPROC_SERVER, null, factory_iid, cast(void**)&gVDClassFactory);
if(FAILED(hr))
diff --git a/visuald_vs10.sln b/visuald_vs10.sln
index e5e7f6b3..73687912 100644
--- a/visuald_vs10.sln
+++ b/visuald_vs10.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.13.35507.96
+# Visual Studio Version 18
+VisualStudioVersion = 18.3.11429.125 d18.3
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2BD51E62-6604-48AE-9E01-C940C0CA1C68}"
ProjectSection(SolutionItems) = preProject
@@ -16,11 +16,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "VisualD", "visuald\visuald.visualdproj", "{7610F45A-69D9-4B68-BE63-0E055B51D447}"
ProjectSection(ProjectDependencies) = postProject
- {CD26A145-F663-473D-8908-0254FE377D48} = {CD26A145-F663-473D-8908-0254FE377D48}
+ {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} = {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}
{32872753-4812-40DA-9B24-1C2114621E78} = {32872753-4812-40DA-9B24-1C2114621E78}
- {E2073B79-635A-48FA-A5A3-6E760D3A5DD8} = {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}
{8EC6179A-7BBA-4555-B384-3B19D3BB7028} = {8EC6179A-7BBA-4555-B384-3B19D3BB7028}
- {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} = {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}
+ {CD26A145-F663-473D-8908-0254FE377D48} = {CD26A145-F663-473D-8908-0254FE377D48}
+ {E2073B79-635A-48FA-A5A3-6E760D3A5DD8} = {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}
EndProjectSection
EndProject
Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "vsi", "sdk\vsi.visualdproj", "{32872753-4812-40DA-9B24-1C2114621E78}"
@@ -29,9 +29,6 @@ Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "vsi", "sdk\vsi.visualdproj"
EndProjectSection
EndProject
Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "vsi2d", "c2d\vsi2d.visualdproj", "{8760F45A-69D9-4B68-BE63-0E055B51D447}"
- ProjectSection(ProjectDependencies) = postProject
- {E2073B79-635A-48FA-A5A3-6E760D3A5DD8} = {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}
- EndProjectSection
EndProject
Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "parser", "vdc\parser.visualdproj", "{FE3A959D-6CFA-43BF-8637-62125B571770}"
EndProject
@@ -44,15 +41,15 @@ Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "c2d", "c2d\c2d.visualdproj"
EndProject
Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "cpp2d", "c2d\cpp2d.visualdproj", "{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}"
ProjectSection(ProjectDependencies) = postProject
+ {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} = {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}
{32872753-4812-40DA-9B24-1C2114621E78} = {32872753-4812-40DA-9B24-1C2114621E78}
{E2073B79-635A-48FA-A5A3-6E760D3A5DD8} = {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}
- {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} = {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}
EndProjectSection
EndProject
Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "vdserver", "vdc\vdserver.visualdproj", "{2F75431E-B8DB-4231-AAC1-EA68D06A22E6}"
ProjectSection(ProjectDependencies) = postProject
- {32872753-4812-40DA-9B24-1C2114621E78} = {32872753-4812-40DA-9B24-1C2114621E78}
{2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} = {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}
+ {32872753-4812-40DA-9B24-1C2114621E78} = {32872753-4812-40DA-9B24-1C2114621E78}
{FE3A959D-6CFA-43BF-8637-62125B571770} = {FE3A959D-6CFA-43BF-8637-62125B571770}
EndProjectSection
EndProject
@@ -140,8 +137,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Extensions", "Extensions",
EndProject
Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "dmdserver", "vdc\dmdserver\dmdserver.visualdproj", "{34289BD7-AB7E-4264-B146-8139DDE9F0BF}"
ProjectSection(ProjectDependencies) = postProject
- {32872753-4812-40DA-9B24-1C2114621E78} = {32872753-4812-40DA-9B24-1C2114621E78}
{2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} = {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}
+ {32872753-4812-40DA-9B24-1C2114621E78} = {32872753-4812-40DA-9B24-1C2114621E78}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Templates", "Templates", "{AC054091-8D8F-4393-B3C5-AB67980B80EE}"
@@ -322,8 +319,6 @@ Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug COFF32|Win32 = Debug COFF32|Win32
Debug COFF32|x64 = Debug COFF32|x64
- Debug GDC|Win32 = Debug GDC|Win32
- Debug GDC|x64 = Debug GDC|x64
Debug LDC ARM|Win32 = Debug LDC ARM|Win32
Debug LDC ARM|x64 = Debug LDC ARM|x64
Debug LDC|Win32 = Debug LDC|Win32
@@ -352,9 +347,6 @@ Global
{7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32
{7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64
{7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.Build.0 = Debug COFF32|x64
- {7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug GDC|Win32.ActiveCfg = Debug|Win32
- {7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug GDC|Win32.Build.0 = Debug|Win32
- {7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug GDC|x64.ActiveCfg = Debug|Win32
{7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32
{7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32
{7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64
@@ -397,10 +389,6 @@ Global
{32872753-4812-40DA-9B24-1C2114621E78}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32
{32872753-4812-40DA-9B24-1C2114621E78}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64
{32872753-4812-40DA-9B24-1C2114621E78}.Debug COFF32|x64.Build.0 = Debug COFF32|x64
- {32872753-4812-40DA-9B24-1C2114621E78}.Debug GDC|Win32.ActiveCfg = Debug GDC|Win32
- {32872753-4812-40DA-9B24-1C2114621E78}.Debug GDC|Win32.Build.0 = Debug GDC|Win32
- {32872753-4812-40DA-9B24-1C2114621E78}.Debug GDC|x64.ActiveCfg = Debug GDC|x64
- {32872753-4812-40DA-9B24-1C2114621E78}.Debug GDC|x64.Build.0 = Debug GDC|x64
{32872753-4812-40DA-9B24-1C2114621E78}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32
{32872753-4812-40DA-9B24-1C2114621E78}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32
{32872753-4812-40DA-9B24-1C2114621E78}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64
@@ -439,71 +427,63 @@ Global
{32872753-4812-40DA-9B24-1C2114621E78}.Release|x64.Build.0 = Release|x64
{32872753-4812-40DA-9B24-1C2114621E78}.Test|Win32.ActiveCfg = Release|Win32
{32872753-4812-40DA-9B24-1C2114621E78}.Test|Win32.Build.0 = Release|Win32
- {32872753-4812-40DA-9B24-1C2114621E78}.Test|x64.ActiveCfg = TestDebug|x64
- {32872753-4812-40DA-9B24-1C2114621E78}.Test|x64.Build.0 = TestDebug|x64
+ {32872753-4812-40DA-9B24-1C2114621E78}.Test|x64.ActiveCfg = Debug|x64
+ {32872753-4812-40DA-9B24-1C2114621E78}.Test|x64.Build.0 = Debug|x64
{32872753-4812-40DA-9B24-1C2114621E78}.TestDebug|Win32.ActiveCfg = TestDebug|Win32
{32872753-4812-40DA-9B24-1C2114621E78}.TestDebug|Win32.Build.0 = TestDebug|Win32
{32872753-4812-40DA-9B24-1C2114621E78}.TestDebug|x64.ActiveCfg = TestDebug|x64
{32872753-4812-40DA-9B24-1C2114621E78}.TestDebug|x64.Build.0 = TestDebug|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|Win32.ActiveCfg = Debug COFF32|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.Build.0 = Debug COFF32|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug GDC|Win32.ActiveCfg = Debug GDC|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug GDC|Win32.Build.0 = Debug GDC|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug GDC|x64.ActiveCfg = Debug GDC|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug GDC|x64.Build.0 = Debug GDC|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.Build.0 = Debug LDC|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|x64.ActiveCfg = Debug LDC|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|x64.Build.0 = Debug LDC|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|Win32.ActiveCfg = Debug LDC|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|Win32.Build.0 = Debug LDC|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|x64.ActiveCfg = Debug LDC|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|x64.Build.0 = Debug LDC|x64
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|Win32.ActiveCfg = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|Win32.Build.0 = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.ActiveCfg = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.Build.0 = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.ActiveCfg = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.Build.0 = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|x64.ActiveCfg = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|x64.Build.0 = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|Win32.ActiveCfg = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|Win32.Build.0 = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|x64.ActiveCfg = Release COFF32|x64
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|x64.Build.0 = Release COFF32|x64
{8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug OMF|Win32.ActiveCfg = Debug|Win32
{8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug OMF|Win32.Build.0 = Debug|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug OMF|x64.ActiveCfg = Debug|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug OMF|x64.Build.0 = Debug|x64
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug OMF|x64.ActiveCfg = Debug|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug OMF|x64.Build.0 = Debug|Win32
{8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug|Win32.ActiveCfg = Debug|Win32
{8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug|Win32.Build.0 = Debug|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug|x64.ActiveCfg = Debug|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug|x64.Build.0 = Debug|x64
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug|x64.ActiveCfg = Debug COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug|x64.Build.0 = Debug COFF32|Win32
{8760F45A-69D9-4B68-BE63-0E055B51D447}.Release COFF32|Win32.ActiveCfg = Release COFF32|Win32
{8760F45A-69D9-4B68-BE63-0E055B51D447}.Release COFF32|Win32.Build.0 = Release COFF32|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release COFF32|x64.ActiveCfg = Release COFF32|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release COFF32|x64.Build.0 = Release COFF32|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|Win32.ActiveCfg = Debug LDC|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|Win32.Build.0 = Debug LDC|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|x64.ActiveCfg = Release LDC|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|x64.Build.0 = Release LDC|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|Win32.ActiveCfg = Release LDC|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|Win32.Build.0 = Release LDC|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|x64.ActiveCfg = Release LDC|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|x64.Build.0 = Release LDC|x64
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release COFF32|x64.ActiveCfg = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release COFF32|x64.Build.0 = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|Win32.ActiveCfg = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|Win32.Build.0 = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|x64.ActiveCfg = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|x64.Build.0 = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|Win32.ActiveCfg = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|Win32.Build.0 = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|x64.ActiveCfg = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|x64.Build.0 = Release COFF32|Win32
{8760F45A-69D9-4B68-BE63-0E055B51D447}.Release OMF|Win32.ActiveCfg = Release|Win32
{8760F45A-69D9-4B68-BE63-0E055B51D447}.Release OMF|Win32.Build.0 = Release|Win32
{8760F45A-69D9-4B68-BE63-0E055B51D447}.Release OMF|x64.ActiveCfg = Release|x64
{8760F45A-69D9-4B68-BE63-0E055B51D447}.Release OMF|x64.Build.0 = Release|x64
{8760F45A-69D9-4B68-BE63-0E055B51D447}.Release|Win32.ActiveCfg = Release|Win32
{8760F45A-69D9-4B68-BE63-0E055B51D447}.Release|Win32.Build.0 = Release|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release|x64.ActiveCfg = Release|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release|x64.Build.0 = Release|x64
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release|x64.ActiveCfg = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release|x64.Build.0 = Release COFF32|Win32
{8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|Win32.ActiveCfg = Release|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|x64.ActiveCfg = Debug GDC|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|x64.Build.0 = Debug GDC|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|Win32.ActiveCfg = TestDebug|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|Win32.Build.0 = TestDebug|Win32
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|x64.ActiveCfg = TestDebug|x64
- {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|x64.Build.0 = TestDebug|x64
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|x64.ActiveCfg = Debug|x64
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|x64.Build.0 = Debug|x64
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|Win32.ActiveCfg = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|Win32.Build.0 = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|x64.ActiveCfg = Release COFF32|Win32
+ {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|x64.Build.0 = Release COFF32|Win32
{FE3A959D-6CFA-43BF-8637-62125B571770}.Debug COFF32|Win32.ActiveCfg = Debug COFF32|Win32
{FE3A959D-6CFA-43BF-8637-62125B571770}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32
{FE3A959D-6CFA-43BF-8637-62125B571770}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64
{FE3A959D-6CFA-43BF-8637-62125B571770}.Debug COFF32|x64.Build.0 = Debug COFF32|x64
- {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug GDC|Win32.ActiveCfg = Debug GDC|Win32
- {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug GDC|Win32.Build.0 = Debug GDC|Win32
- {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug GDC|x64.ActiveCfg = Debug GDC|x64
- {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug GDC|x64.Build.0 = Debug GDC|x64
{FE3A959D-6CFA-43BF-8637-62125B571770}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32
{FE3A959D-6CFA-43BF-8637-62125B571770}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32
{FE3A959D-6CFA-43BF-8637-62125B571770}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64
@@ -551,10 +531,6 @@ Global
{2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32
{2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64
{2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug COFF32|x64.Build.0 = Debug COFF32|x64
- {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug GDC|Win32.ActiveCfg = Debug GDC|Win32
- {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug GDC|Win32.Build.0 = Debug GDC|Win32
- {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug GDC|x64.ActiveCfg = Debug GDC|x64
- {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug GDC|x64.Build.0 = Debug GDC|x64
{2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32
{2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32
{2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64
@@ -603,10 +579,6 @@ Global
{E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32
{E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64
{E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug COFF32|x64.Build.0 = Debug COFF32|x64
- {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug GDC|Win32.ActiveCfg = Debug GDC|Win32
- {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug GDC|Win32.Build.0 = Debug GDC|Win32
- {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug GDC|x64.ActiveCfg = Debug GDC|x64
- {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug GDC|x64.Build.0 = Debug GDC|x64
{E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32
{E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32
{E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64
@@ -643,8 +615,8 @@ Global
{E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Release|x64.ActiveCfg = Release|x64
{E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Release|x64.Build.0 = Release|x64
{E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Test|Win32.ActiveCfg = Release|Win32
- {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Test|x64.ActiveCfg = TestDebug|x64
- {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Test|x64.Build.0 = TestDebug|x64
+ {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Test|x64.ActiveCfg = Debug|x64
+ {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Test|x64.Build.0 = Debug|x64
{E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.TestDebug|Win32.ActiveCfg = TestDebug|Win32
{E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.TestDebug|Win32.Build.0 = TestDebug|Win32
{E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.TestDebug|x64.ActiveCfg = TestDebug|x64
@@ -653,12 +625,8 @@ Global
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug COFF32|x64.Build.0 = Debug COFF32|x64
- {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug GDC|Win32.ActiveCfg = Debug GDC|Win32
- {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug GDC|Win32.Build.0 = Debug GDC|Win32
- {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug GDC|x64.ActiveCfg = Debug GDC|x64
- {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug GDC|x64.Build.0 = Debug GDC|x64
- {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC|Win32
- {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug LDC ARM|Win32.Build.0 = Debug LDC|Win32
+ {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32
+ {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug LDC ARM|x64.Build.0 = Debug LDC ARM|x64
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug LDC|Win32.ActiveCfg = Debug LDC|Win32
@@ -677,8 +645,8 @@ Global
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release COFF32|Win32.Build.0 = Release COFF32|Win32
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release COFF32|x64.ActiveCfg = Release COFF32|x64
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release COFF32|x64.Build.0 = Release COFF32|x64
- {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release LDC ARM|Win32.ActiveCfg = Debug LDC|Win32
- {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release LDC ARM|Win32.Build.0 = Debug LDC|Win32
+ {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32
+ {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release LDC ARM|x64.ActiveCfg = Release LDC ARM|x64
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release LDC ARM|x64.Build.0 = Release LDC ARM|x64
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release LDC|Win32.ActiveCfg = Release LDC|Win32
@@ -693,7 +661,7 @@ Global
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release|x64.ActiveCfg = Release|x64
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release|x64.Build.0 = Release|x64
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Test|Win32.ActiveCfg = Release|Win32
- {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Test|x64.ActiveCfg = Debug GDC|Win32
+ {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Test|x64.ActiveCfg = Debug|x64
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.TestDebug|Win32.ActiveCfg = TestDebug|Win32
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.TestDebug|Win32.Build.0 = TestDebug|Win32
{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.TestDebug|x64.ActiveCfg = TestDebug|x64
@@ -701,10 +669,6 @@ Global
{2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32
{2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64
{2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug COFF32|x64.Build.0 = Debug COFF32|x64
- {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug GDC|Win32.ActiveCfg = Debug GDC|Win32
- {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug GDC|Win32.Build.0 = Debug GDC|Win32
- {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug GDC|x64.ActiveCfg = Debug GDC|x64
- {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug GDC|x64.Build.0 = Debug GDC|x64
{2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32
{2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32
{2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64
@@ -747,65 +711,59 @@ Global
{2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.TestDebug|Win32.ActiveCfg = Debug|Win32
{2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.TestDebug|x64.ActiveCfg = Debug|x64
{2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.TestDebug|x64.Build.0 = Debug|x64
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|Win32.ActiveCfg = Debug COFF32|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|x64.Build.0 = Debug COFF32|x64
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug GDC|Win32.ActiveCfg = Debug|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug GDC|Win32.Build.0 = Debug|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug GDC|x64.ActiveCfg = Debug|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|x64.ActiveCfg = Debug LDC|x64
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|x64.Build.0 = Debug LDC|x64
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|Win32.ActiveCfg = Debug|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|Win32.Build.0 = Debug|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|x64.ActiveCfg = Debug LDC|x64
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|x64.Build.0 = Debug LDC|x64
+ {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|Win32.ActiveCfg = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|Win32.Build.0 = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|x64.ActiveCfg = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|x64.Build.0 = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|Win32.ActiveCfg = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|Win32.Build.0 = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|x64.ActiveCfg = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|x64.Build.0 = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|Win32.ActiveCfg = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|Win32.Build.0 = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|x64.ActiveCfg = Release COFF32|x64
+ {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|x64.Build.0 = Release COFF32|x64
{CD26A145-F663-473D-8908-0254FE377D48}.Debug OMF|Win32.ActiveCfg = Debug|Win32
{CD26A145-F663-473D-8908-0254FE377D48}.Debug OMF|Win32.Build.0 = Debug|Win32
{CD26A145-F663-473D-8908-0254FE377D48}.Debug OMF|x64.ActiveCfg = Debug|Win32
{CD26A145-F663-473D-8908-0254FE377D48}.Debug|Win32.ActiveCfg = Debug|Win32
{CD26A145-F663-473D-8908-0254FE377D48}.Debug|Win32.Build.0 = Debug|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Debug|x64.ActiveCfg = Debug|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Debug|x64.ActiveCfg = Debug COFF32|Win32
{CD26A145-F663-473D-8908-0254FE377D48}.Release COFF32|Win32.ActiveCfg = Release COFF32|Win32
{CD26A145-F663-473D-8908-0254FE377D48}.Release COFF32|Win32.Build.0 = Release COFF32|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Release COFF32|x64.ActiveCfg = Release COFF32|x64
- {CD26A145-F663-473D-8908-0254FE377D48}.Release COFF32|x64.Build.0 = Release COFF32|x64
- {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|x64.ActiveCfg = Release LDC|x64
- {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|x64.Build.0 = Release LDC|x64
- {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|Win32.ActiveCfg = Release LDC|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|Win32.Build.0 = Release LDC|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|x64.ActiveCfg = Release COFF32|x64
- {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|x64.Build.0 = Release COFF32|x64
+ {CD26A145-F663-473D-8908-0254FE377D48}.Release COFF32|x64.ActiveCfg = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Release COFF32|x64.Build.0 = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|Win32.ActiveCfg = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|Win32.Build.0 = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|x64.ActiveCfg = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|x64.Build.0 = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|Win32.ActiveCfg = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|Win32.Build.0 = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|x64.ActiveCfg = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|x64.Build.0 = Release COFF32|Win32
{CD26A145-F663-473D-8908-0254FE377D48}.Release OMF|Win32.ActiveCfg = Release|Win32
{CD26A145-F663-473D-8908-0254FE377D48}.Release OMF|Win32.Build.0 = Release|Win32
{CD26A145-F663-473D-8908-0254FE377D48}.Release OMF|x64.ActiveCfg = Release|Win32
{CD26A145-F663-473D-8908-0254FE377D48}.Release|Win32.ActiveCfg = Release|Win32
{CD26A145-F663-473D-8908-0254FE377D48}.Release|Win32.Build.0 = Release|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.Release|x64.ActiveCfg = Release|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.Release|x64.ActiveCfg = Release COFF32|Win32
{CD26A145-F663-473D-8908-0254FE377D48}.Test|Win32.ActiveCfg = Release|Win32
{CD26A145-F663-473D-8908-0254FE377D48}.Test|Win32.Build.0 = Release|Win32
{CD26A145-F663-473D-8908-0254FE377D48}.Test|x64.ActiveCfg = Release|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.TestDebug|Win32.ActiveCfg = TestDebug|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.TestDebug|Win32.Build.0 = TestDebug|Win32
- {CD26A145-F663-473D-8908-0254FE377D48}.TestDebug|x64.ActiveCfg = Debug|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.TestDebug|Win32.ActiveCfg = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.TestDebug|Win32.Build.0 = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.TestDebug|x64.ActiveCfg = Release COFF32|Win32
+ {CD26A145-F663-473D-8908-0254FE377D48}.TestDebug|x64.Build.0 = Release COFF32|Win32
{34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug COFF32|Win32.ActiveCfg = Debug COFF32|Win32
{34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32
{34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64
{34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug COFF32|x64.Build.0 = Debug COFF32|x64
- {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug GDC|Win32.ActiveCfg = Debug|Win32
- {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug GDC|Win32.Build.0 = Debug|Win32
- {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug GDC|x64.ActiveCfg = Debug|x64
- {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug GDC|x64.Build.0 = Debug|x64
{34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32
{34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32
{34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64
{34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC ARM|x64.Build.0 = Debug LDC ARM|x64
- {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC|Win32.ActiveCfg = Debug|Win32
- {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC|Win32.Build.0 = Debug|Win32
+ {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC|Win32.ActiveCfg = Debug LDC|Win32
+ {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC|Win32.Build.0 = Debug LDC|Win32
{34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC|x64.ActiveCfg = Debug LDC|x64
{34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC|x64.Build.0 = Debug LDC|x64
{34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug OMF|Win32.ActiveCfg = Debug|Win32
@@ -848,16 +806,12 @@ Global
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug COFF32|x64.Build.0 = Debug COFF32|x64
- {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug GDC|Win32.ActiveCfg = Debug|Win32
- {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug GDC|Win32.Build.0 = Debug|Win32
- {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug GDC|x64.ActiveCfg = Debug|x64
- {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug GDC|x64.Build.0 = Debug|x64
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC ARM|x64.Build.0 = Debug LDC ARM|x64
- {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC|Win32.ActiveCfg = Debug|Win32
- {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC|Win32.Build.0 = Debug|Win32
+ {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC|Win32.ActiveCfg = Debug LDC|Win32
+ {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC|Win32.Build.0 = Debug LDC|Win32
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC|x64.ActiveCfg = Debug LDC|x64
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC|x64.Build.0 = Debug LDC|x64
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug OMF|Win32.ActiveCfg = Debug|Win32
@@ -876,8 +830,8 @@ Global
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC ARM|x64.ActiveCfg = Release LDC ARM|x64
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC ARM|x64.Build.0 = Release LDC ARM|x64
- {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC|Win32.ActiveCfg = Release|Win32
- {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC|Win32.Build.0 = Release|Win32
+ {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC|Win32.ActiveCfg = Release LDC|Win32
+ {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC|Win32.Build.0 = Release LDC|Win32
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC|x64.ActiveCfg = Release LDC|x64
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC|x64.Build.0 = Release LDC|x64
{8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release OMF|Win32.ActiveCfg = Release|Win32