From 0a0e4d2d34a1ac83ceadd8063b7dcf0a0f34f00e Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Tue, 28 Apr 2026 08:37:43 +0200 Subject: [PATCH 01/10] adapt error message after merge --- vdc/dmdserver/dmd | 2 +- vdc/dmdserver/semanalysis.d | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/vdc/dmdserver/dmd b/vdc/dmdserver/dmd index a10efa76..51b7f13b 160000 --- a/vdc/dmdserver/dmd +++ b/vdc/dmdserver/dmd @@ -1 +1 @@ -Subproject commit a10efa76fc529997f894b2ad3517682bc4712c3b +Subproject commit 51b7f13b2c812a5c76ea504953b8a141e77305f9 diff --git a/vdc/dmdserver/semanalysis.d b/vdc/dmdserver/semanalysis.d index 09f930fc..c68c9571 100644 --- a/vdc/dmdserver/semanalysis.d +++ b/vdc/dmdserver/semanalysis.d @@ -735,6 +735,11 @@ void do_unittests() string source; Module m; + source = q{ + __VERSION__ + }; + m = checkErrors(source, "2,2,2,3:Error: declaration expected, not `2113L`\n"); + source = q{ int main() { @@ -2026,9 +2031,12 @@ void do_unittests() } }; m = checkErrors(source, - "5,3,5,4:Deprecation: function `source.dep` is deprecated\n" ~ - "6,10,6,11:Deprecation: function `source.dep` is deprecated\n" ~ - "6,10,6,11:Deprecation: function `source.dep` is deprecated\n"); + "5,3,5,4:Deprecation: function `source.dep` is deprecated" ~ + "\asource.d(2): `dep` is declared here\n" ~ + "6,10,6,11:Deprecation: function `source.dep` is deprecated" ~ + "\asource.d(2): `dep` is declared here\n" ~ + "6,10,6,11:Deprecation: function `source.dep` is deprecated" ~ + "\asource.d(2): `dep` is declared here\n"); //dumpAST(m); // type references From 395e68d807ae98b85d74bd0668ff4ead99213c6a Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Sun, 7 Jun 2026 10:22:44 +0200 Subject: [PATCH 02/10] v1.5.0-rc2: generic dbuild support for VS 2026 18.1-18.9 --- CHANGES | 10 ++++- Makefile | 38 +++++++++++++++---- VERSION | 2 +- .../AssemblyPatcher/AssemblyPatcher.csproj | 16 ++++++++ msbuild/dbuild/AssemblyPatcher/Program.cs | 27 +++++++++++++ msbuild/dbuild/dbuild.csproj | 33 +++++++++++++++- nsis/visuald.nsi | 14 +++++-- 7 files changed, 124 insertions(+), 16 deletions(-) create mode 100644 msbuild/dbuild/AssemblyPatcher/AssemblyPatcher.csproj create mode 100644 msbuild/dbuild/AssemblyPatcher/Program.cs diff --git a/CHANGES b/CHANGES index e3b87613..c0f9ac6c 100644 --- a/CHANGES +++ b/CHANGES @@ -1478,7 +1478,7 @@ Version history 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) + - updated to dmd 2.112 (master @ 2026/01/09) - 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 @@ -1488,4 +1488,10 @@ Version history * 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 + * installer: can now also add mago as an extension for cppvsdbg in VSCode + +2026-06-xx version 1.5.0-rc2 + * full installer now bundled with LDC 1.42.0 + * dmdserver: + - updated to dmd 2.113 (stable @ 2026/04/28) + * dbuild: generic support for VS 2026 18.1-18.9 diff --git a/Makefile b/Makefile index 41bdf59f..16935576 100644 --- a/Makefile +++ b/Makefile @@ -195,16 +195,40 @@ 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_1: - cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v18_1;Platform=AnyCPU $(MSBUILD_REBUILD) +ASSEMBLYPATCHER = bin\AssemblyPatcher\Release\net10.0\AssemblyPatcher.exe +DBUILD18_BIN = bin\dbuild\Release-v18_0\obj -dbuild18_3: - cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v18_3;Platform=AnyCPU $(MSBUILD_REBUILD) +$(ASSEMBLYPATCHER): + cd msbuild\dbuild\AssemblyPatcher && dotnet build -c Release -dbuild18_6: - cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v18_6;Platform=AnyCPU $(MSBUILD_REBUILD) +dbuild18_1: dbuild18_0 $(ASSEMBLYPATCHER) + $(ASSEMBLYPATCHER) $(DBUILD18_BIN)\dbuild.18.0.dll Microsoft.Build.CPPTasks.Common 18.1.0.0 $(DBUILD18_BIN)\dbuild.18.1.dll -dbuild18_all: dbuild18_0 dbuild18_1 dbuild18_3 dbuild18_6 +dbuild18_2: dbuild18_0 $(ASSEMBLYPATCHER) + $(ASSEMBLYPATCHER) $(DBUILD18_BIN)\dbuild.18.0.dll Microsoft.Build.CPPTasks.Common 18.2.0.0 $(DBUILD18_BIN)\dbuild.18.2.dll + +dbuild18_3: dbuild18_0 $(ASSEMBLYPATCHER) + $(ASSEMBLYPATCHER) $(DBUILD18_BIN)\dbuild.18.0.dll Microsoft.Build.CPPTasks.Common 18.3.0.0 $(DBUILD18_BIN)\dbuild.18.3.dll + +dbuild18_4: dbuild18_0 $(ASSEMBLYPATCHER) + $(ASSEMBLYPATCHER) $(DBUILD18_BIN)\dbuild.18.0.dll Microsoft.Build.CPPTasks.Common 18.4.0.0 $(DBUILD18_BIN)\dbuild.18.4.dll + +dbuild18_5: dbuild18_0 $(ASSEMBLYPATCHER) + $(ASSEMBLYPATCHER) $(DBUILD18_BIN)\dbuild.18.0.dll Microsoft.Build.CPPTasks.Common 18.5.0.0 $(DBUILD18_BIN)\dbuild.18.5.dll + +dbuild18_6: dbuild18_0 $(ASSEMBLYPATCHER) + $(ASSEMBLYPATCHER) $(DBUILD18_BIN)\dbuild.18.0.dll Microsoft.Build.CPPTasks.Common 18.6.0.0 $(DBUILD18_BIN)\dbuild.18.6.dll + +dbuild18_7: dbuild18_0 $(ASSEMBLYPATCHER) + $(ASSEMBLYPATCHER) $(DBUILD18_BIN)\dbuild.18.0.dll Microsoft.Build.CPPTasks.Common 18.7.0.0 $(DBUILD18_BIN)\dbuild.18.7.dll + +dbuild18_8: dbuild18_0 $(ASSEMBLYPATCHER) + $(ASSEMBLYPATCHER) $(DBUILD18_BIN)\dbuild.18.0.dll Microsoft.Build.CPPTasks.Common 18.8.0.0 $(DBUILD18_BIN)\dbuild.18.8.dll + +dbuild18_9: dbuild18_0 $(ASSEMBLYPATCHER) + $(ASSEMBLYPATCHER) $(DBUILD18_BIN)\dbuild.18.0.dll Microsoft.Build.CPPTasks.Common 18.9.0.0 $(DBUILD18_BIN)\dbuild.18.9.dll + +dbuild18_all: dbuild18_0 dbuild18_1 dbuild18_2 dbuild18_3 dbuild18_4 dbuild18_5 dbuild18_6 dbuild18_7 dbuild18_8 dbuild18_9 mago: cd ..\..\mago && devenv /Build "Release|Win32" /Project "MagoNatDE" magodbg_2010.sln diff --git a/VERSION b/VERSION index 80317bf7..c5680d67 100644 --- a/VERSION +++ b/VERSION @@ -2,4 +2,4 @@ #define VERSION_MINOR 5 #define VERSION_REVISION 0 #define VERSION_BETA -rc -#define VERSION_BUILD 1 +#define VERSION_BUILD 2 diff --git a/msbuild/dbuild/AssemblyPatcher/AssemblyPatcher.csproj b/msbuild/dbuild/AssemblyPatcher/AssemblyPatcher.csproj new file mode 100644 index 00000000..48d16e5c --- /dev/null +++ b/msbuild/dbuild/AssemblyPatcher/AssemblyPatcher.csproj @@ -0,0 +1,16 @@ + + + + Exe + net10.0 + enable + enable + ..\..\..\bin\AssemblyPatcher + + + + + + + + diff --git a/msbuild/dbuild/AssemblyPatcher/Program.cs b/msbuild/dbuild/AssemblyPatcher/Program.cs new file mode 100644 index 00000000..77363844 --- /dev/null +++ b/msbuild/dbuild/AssemblyPatcher/Program.cs @@ -0,0 +1,27 @@ +using dnlib.DotNet; +using System; + +if (args.Length != 4) +{ + Console.WriteLine("Usage: AssemblyPatcher "); + return; +} + +var inputPath = args[0]; +var refname = args[1]; +var version = args[2]; +var outputPath = args[3]; + +var module = ModuleDefMD.Load(inputPath); + +foreach (var asmRef in module.GetAssemblyRefs()) +{ + if (asmRef.Name == refname) + { + Console.WriteLine("Patching reference to " + refname + " to " + version + "..."); + asmRef.Version = Version.Parse(version); + } +} + +module.Write(outputPath); + diff --git a/msbuild/dbuild/dbuild.csproj b/msbuild/dbuild/dbuild.csproj index 4b12d931..704cc295 100644 --- a/msbuild/dbuild/dbuild.csproj +++ b/msbuild/dbuild/dbuild.csproj @@ -522,6 +522,28 @@ MinimumRecommendedRules.ruleset 18.6 + + bin\Debug-v18_5\ + TRACE;DEBUG;TOOLS_V17 + true + false + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + 18.5 + + + bin\Release-v18_5\ + TRACE;TOOLS_V17 + true + true + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + 18.5 + bin\Debug-v18_6\ TRACE;DEBUG;TOOLS_V17 @@ -586,7 +608,8 @@ 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' - or '$(TargetVer)' == '18.1' or '$(TargetVer)' == '18.3' or '$(TargetVer)' == '18.6'">v4.7.2 + or '$(TargetVer)' == '18.1' or '$(TargetVer)' == '18.3' or '$(TargetVer)' == '18.5' + or '$(TargetVer)' == '18.6'">v4.7.2 false false false @@ -989,7 +1012,7 @@ - + assemblies\v18\Microsoft.Build.dll False @@ -1037,6 +1060,12 @@ False + + + assemblies\v18_5\Microsoft.Build.CPPTasks.Common.dll + False + + assemblies\v18_6\Microsoft.Build.CPPTasks.Common.dll diff --git a/nsis/visuald.nsi b/nsis/visuald.nsi index bf9af42b..45d1ad2f 100644 --- a/nsis/visuald.nsi +++ b/nsis/visuald.nsi @@ -34,7 +34,7 @@ ; define LDC to include ldc installation ; !define LDC -!define LDC_VERSION "1.41.0" +!define LDC_VERSION "1.42.0" !define LDC_SRC c:\d\ldc2-${LDC_VERSION}-windows-multilib ; define VS2019 to include VS2019 support @@ -388,9 +388,15 @@ 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 + ${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.1.dll + ${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.2.dll + ${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.3.dll + ${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.4.dll + ${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.5.dll + ${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.6.dll + ${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.7.dll + ${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.8.dll + ${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.9.dll !endif WriteRegStr HKLM "Software\${APPNAME}" "msbuild" $INSTDIR\msbuild !endif From cdd31467c9d290b408b14a6b4fc07fb1d52843f3 Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Sat, 13 Jun 2026 11:20:55 +0200 Subject: [PATCH 03/10] fix building against SDK of VS2026 --- c2d/idl2d.d | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/c2d/idl2d.d b/c2d/idl2d.d index d6fa6f8d..693e32b4 100644 --- a/c2d/idl2d.d +++ b/c2d/idl2d.d @@ -18,6 +18,8 @@ import c2d.tokenizer; import c2d.tokutil; import c2d.dgutil; +import stdext.file; + import std.string; import std.file; import std.path; @@ -2754,7 +2756,7 @@ version(remove_pp) {} else { Source src = new Source; src.filename = file; - src.text = fromMBSz (cast(immutable(char)*)(cast(char[]) read(file) ~ "\0").ptr); + src.text = fromMBSz (cast(immutable(char)*)(cast(char[]) readUtf8(file) ~ "\0").ptr); try { // bad qquoting in VS2019 SDK From 9ff0b5f5bbea0fa57663adf58774b0639f1ae3f3 Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Sat, 13 Jun 2026 11:22:21 +0200 Subject: [PATCH 04/10] add "Step Over Foreach" command --- visuald/Resources/pkgcmd.vsct | 24 +++-- visuald/Resources/resources.h | 1 + visuald/dlangsvc.d | 181 ++++++++++++++++++++++++++++++++-- visuald/dpackage.d | 5 + 4 files changed, 193 insertions(+), 18 deletions(-) diff --git a/visuald/Resources/pkgcmd.vsct b/visuald/Resources/pkgcmd.vsct index d070fc68..7f645073 100644 --- a/visuald/Resources/pkgcmd.vsct +++ b/visuald/Resources/pkgcmd.vsct @@ -46,6 +46,9 @@ + + + @@ -214,16 +217,6 @@ DeleteCoverageFiles - +