Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 14 additions & 3 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -1475,10 +1475,10 @@ Version history
- fix some crashes in the frontend
* exclude \\.\C: from dependencies generated by LDC v1.40+

2026-04-xx version 1.5.0-rc1
2026-04-27 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
Expand All @@ -1488,4 +1488,15 @@ 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
* installer: can now also add mago as an extension for cppvsdbg in VSCode

2026-07-26 version 1.5.0-rc2
* full installer now bundled with LDC 1.42.0
* dmdserver:
- updated to dmd 2.113 (stable @ 2026/04/28)
- now works slighly more incremental
- fixed a couple of false pointer memory leaks
* mago:
- add "Step Over Foreach" command
* dbuild: generic support for VS 2026 18.1-18.15
* added command "Step Over Foreach"
75 changes: 50 additions & 25 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -56,29 +56,29 @@ all: install_vs
# compile visuald components

prerequisites:
devenv /Project "build" /Build "$(CONFIG)|Win32" visuald_vs10.sln
devenv visuald_vs10.sln /Project "build" /Build "$(CONFIG)|Win32"

visuald_vs:
devenv /Project "VisualD" /Build "$(CONFIG)|Win32" visuald_vs10.sln
devenv visuald_vs10.sln /Project "VisualD" /Build "$(CONFIG)|Win32"

visuald_vs_x64:
devenv /Project "VisualD" /Build "$(CONFIG_X64)|x64" visuald_vs10.sln
devenv visuald_vs10.sln /Project "VisualD" /Build "$(CONFIG_X64)|x64"

visuald_vs_arm64:
devenv /Project "VisualD" /Build "$(CONFIG_ARM64)|x64" visuald_vs10.sln
devenv visuald_vs10.sln /Project "VisualD" /Build "$(CONFIG_ARM64)|x64"

visuald_test:
devenv /Project "VisualD" /Build "TestDebug|Win32" visuald_vs10.sln
devenv visuald_vs10.sln /Project "VisualD" /Build "TestDebug|Win32"
bin\TestDebug\VisualD\VisualD.exe

vdserver:
devenv /Project "vdserver" /Build "$(CONFIG)|Win32" visuald_vs10.sln
devenv visuald_vs10.sln /Project "vdserver" /Build "$(CONFIG)|Win32"

dmdserver:
devenv /Project "dmdserver" /Build "$(CONFIG_DMDSERVER)|x64" visuald_vs10.sln
devenv visuald_vs10.sln /Project "dmdserver" /Build "$(CONFIG_DMDSERVER)|x64"

dmdserver_test:
devenv /Project "dmdserver" /Build "TestDebug|x64" visuald_vs10.sln
devenv visuald_vs10.sln /Project "dmdserver" /Build "TestDebug|x64"
bin\TestDebug\x64\dmdserver.exe

dparser:
Expand Down Expand Up @@ -195,21 +195,46 @@ 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_all: dbuild18_0 $(ASSEMBLYPATCHER)
for %f in (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) do \
$(ASSEMBLYPATCHER) $(DBUILD18_BIN)\dbuild.18.0.dll Microsoft.Build.CPPTasks.Common 18.%f.0.0 $(DBUILD18_BIN)\dbuild.18.%f.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_allx: 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
cd ..\..\mago && devenv /Build "Release|x64" /Project "MagoRemote" magodbg_2010.sln
cd ..\..\mago && devenv /Build "Release StaticDE|Win32" /Project "MagoNatCC" magodbg_2010.sln
cd ..\..\mago && devenv magodbg_2010.sln /Build "Release|Win32" /Project "MagoNatDE"
cd ..\..\mago && devenv magodbg_2010.sln /Build "Release|x64" /Project "MagoRemote"
cd ..\..\mago && devenv magodbg_2010.sln /Build "Release StaticDE|Win32" /Project "MagoNatCC"

mago_vs15:
cd ..\..\mago && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 /target:DebugEngine\MagoNatDE /verbosity:quiet MagoDbg_2010.sln
Expand Down Expand Up @@ -237,17 +262,17 @@ 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
cd ..\..\mago && devenv /Build "Release|x64" /Project "MagoGC" magodbg_2010.sln
cd ..\..\mago && devenv magodbg_2010.sln /Build "Release|Win32" /Project "MagoGC"
cd ..\..\mago && devenv magodbg_2010.sln /Build "Release|x64" /Project "MagoGC"

magogc_ldc:
cd ..\..\mago && devenv /Build "Release|Win32"/Project "MagoGC" /projectconfig "Release LDC|Win32" magodbg_2010.sln
cd ..\..\mago && devenv /Build "Release|x64" /Project "MagoGC" /projectconfig "Release LDC|x64" magodbg_2010.sln
cd ..\..\mago && devenv magodbg_2010.sln /Build "Release|Win32"/Project "MagoGC" /projectconfig "Release LDC|Win32"
cd ..\..\mago && devenv magodbg_2010.sln /Build "Release|x64" /Project "MagoGC" /projectconfig "Release LDC|x64"

cv2pdb:
cd ..\..\cv2pdb\trunk && devenv /Project "cv2pdb" /Build "Release|Win32" src\cv2pdb_vs12.sln
cd ..\..\cv2pdb\trunk && devenv /Project "dviewhelper" /Build "Release|Win32" src\cv2pdb_vs12.sln
cd ..\..\cv2pdb\trunk && devenv /Project "dumplines" /Build "Release|Win32" src\cv2pdb_vs12.sln
cd ..\..\cv2pdb\trunk && devenv src\cv2pdb_vs12.sln /Project "cv2pdb" /Build "Release|Win32"
cd ..\..\cv2pdb\trunk && devenv src\cv2pdb_vs12.sln /Project "dviewhelper" /Build "Release|Win32"
cd ..\..\cv2pdb\trunk && devenv src\cv2pdb_vs12.sln /Project "dumplines" /Build "Release|Win32"

cv2pdb_vs15:
cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 /verbosity:quiet src\cv2pdb.vcxproj
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
#define VERSION_MINOR 5
#define VERSION_REVISION 0
#define VERSION_BETA -rc
#define VERSION_BUILD 1
#define VERSION_BUILD 2
4 changes: 3 additions & 1 deletion c2d/idl2d.d
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down
16 changes: 16 additions & 0 deletions msbuild/dbuild/AssemblyPatcher/AssemblyPatcher.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<BaseOutputPath>..\..\..\bin\AssemblyPatcher</BaseOutputPath>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="dnlib" Version="4.5.0" />
<PackageReference Include="Mono.Cecil" Version="0.11.6" />
</ItemGroup>

</Project>
27 changes: 27 additions & 0 deletions msbuild/dbuild/AssemblyPatcher/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using dnlib.DotNet;
using System;

if (args.Length != 4)
{
Console.WriteLine("Usage: AssemblyPatcher <in.dll> <reference> <version> <out.dll>");
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);

33 changes: 31 additions & 2 deletions msbuild/dbuild/dbuild.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -522,6 +522,28 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<TargetVer>18.6</TargetVer>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug-v18_5|AnyCPU'">
<OutputPath>bin\Debug-v18_5\</OutputPath>
<DefineConstants>TRACE;DEBUG;TOOLS_V17</DefineConstants>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Optimize>false</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<TargetVer>18.5</TargetVer>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release-v18_5|AnyCPU'">
<OutputPath>bin\Release-v18_5\</OutputPath>
<DefineConstants>TRACE;TOOLS_V17</DefineConstants>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<TargetVer>18.5</TargetVer>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug-v18_6|AnyCPU'">
<OutputPath>bin\Debug-v18_6\</OutputPath>
<DefineConstants>TRACE;DEBUG;TOOLS_V17</DefineConstants>
Expand Down Expand Up @@ -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</TargetFrameworkVersion>
or '$(TargetVer)' == '18.1' or '$(TargetVer)' == '18.3' or '$(TargetVer)' == '18.5'
or '$(TargetVer)' == '18.6'">v4.7.2</TargetFrameworkVersion>
<GeneratePkgDefFile>false</GeneratePkgDefFile>
<IncludeAssemblyInVSIXContainer>false</IncludeAssemblyInVSIXContainer>
<IncludeDebugSymbolsInVSIXContainer>false</IncludeDebugSymbolsInVSIXContainer>
Expand Down Expand Up @@ -989,7 +1012,7 @@
</Reference>
</ItemGroup>
<!-- VS2026 -->
<ItemGroup Condition="'$(TargetVer)' == '18.0' or '$(TargetVer)' == '18.1' or '$(TargetVer)' == '18.3' or '$(TargetVer)' == '18.6'">
<ItemGroup Condition="'$(TargetVer)' == '18.0' or '$(TargetVer)' == '18.1' or '$(TargetVer)' == '18.3' or '$(TargetVer)' == '18.5' or '$(TargetVer)' == '18.6'">
<Reference Include="Microsoft.Build">
<HintPath>assemblies\v18\Microsoft.Build.dll</HintPath>
<Private>False</Private>
Expand Down Expand Up @@ -1037,6 +1060,12 @@
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup Condition="'$(TargetVer)' == '18.5'">
<Reference Include="Microsoft.Build.CPPTasks.Common">
<HintPath>assemblies\v18_5\Microsoft.Build.CPPTasks.Common.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup Condition="'$(TargetVer)' == '18.6'">
<Reference Include="Microsoft.Build.CPPTasks.Common">
<HintPath>assemblies\v18_6\Microsoft.Build.CPPTasks.Common.dll</HintPath>
Expand Down
21 changes: 17 additions & 4 deletions nsis/visuald.nsi
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -314,6 +314,7 @@ Section "Visual Studio package" SecPackage
${SetOutPath} "$INSTDIR\dmdserver"
${File} "..\..\binaries\" dmdserver-2.110.exe
${File} "..\..\binaries\" dmdserver-2.111.exe
${File} "..\..\binaries\" dmdserver-2.112.exe
!endif

!ifdef DPARSER
Expand Down Expand Up @@ -388,9 +389,21 @@ 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
${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.10.dll
${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.11.dll
${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.12.dll
${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.13.dll
${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.14.dll
${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.15.dll
!endif
WriteRegStr HKLM "Software\${APPNAME}" "msbuild" $INSTDIR\msbuild
!endif
Expand Down
3 changes: 2 additions & 1 deletion sdk/vsi.visualdproj
Original file line number Diff line number Diff line change
Expand Up @@ -2758,6 +2758,7 @@
<File path="vsi\msdbg177.d" />
<File path="vsi\msdbg178.d" />
<File path="vsi\msdbg179.d" />
<File path="vsi\msdbg1800.d" />
<File path="vsi\msdbg90.d" />
<File path="vsi\objext.d" />
<File path="vsi\ocdesign.d" />
Expand All @@ -2784,7 +2785,6 @@
<File path="vsi\textmgr90.d" />
<File path="vsi\textmgr91.d" />
<File path="vsi\uilocale.d" />
<File path="vsi\undoredo.d" />
<File path="vsi\vapiemp.d" />
<File path="vsi\vbapkg.d" />
<File path="vsi\vsbrowse.d" />
Expand Down Expand Up @@ -2847,6 +2847,7 @@
<File path="vsi\vsshell177.d" />
<File path="vsi\vsshell178.d" />
<File path="vsi\vsshell179.d" />
<File path="vsi\vsshell180.d" />
<File path="vsi\vsshell2.d" />
<File path="vsi\vsshell80.d" />
<File path="vsi\vsshell90.d" />
Expand Down
Loading
Loading