Why is 64-bit dmd not built as part of the Windows release?

Dlang User dlang.user at gmx.com
Wed May 23 20:17:04 UTC 2018


On 5/23/2018 12:42 PM, Vladimir Panteleev wrote:
> On Wednesday, 23 May 2018 at 17:35:28 UTC, Dlang User wrote:
>> I too am looking for 64-bit on Windows 10.  Not just DMD but ideally 
>> everything.
>>
>> When I try the command exactly as above, or a slightly modified 
>> version (on a second run show after this run), I hit an error on my 
>> machine:
>>
>> Internal error: dmd\backend\cod3.c 6830
> 
> Hmm, that looks like a DMD bug/regression. I think that should have been 
> caught by the auto-tester. In any case, try adding --model=64 to your 
> command to also build a 64-bit Phobos, as that seems to be what you're 
> after anyway. You could also try specifying a different (newer?) host 
> DMD version with e.g. `-c build.components.dmd.bootstrap.ver=v2.075.0`.
> 

Thanks for looking at this, I actually did try adding --model=64, in the 
second run that I was referring to in my original post, but that 
resulted in the same error.

Some additional things I realized when trying to use digger on my machine:

Digger is only failing when trying to use the 
build.components.dmd.dmdModel=64 switch, so when trying to build 64 bit 
DMD.

digger -c build.components.dmd.dmdModel=64 build --model=64 v2.080.0

The first time the error is this (so this is probably the real error):

FLunde  Internal error: dmd\backend\cod3.c 5488

The second time, the error is (this is probably due to the previous 
failed run):

Internal error: dmd\backend\cod3.c 6830


I tried adding bootstrap option for 32 bit, and that worked fine:

digger -c build.components.dmd.dmdModel=32 -c 
build.components.dmd.bootstrap.ver=v2.075.0 build --model=32 v2.080.0

I tried adding bootstrap option for 64 bit:

digger -c build.components.dmd.dmdModel=64 -c 
build.components.dmd.bootstrap.ver=v2.075.0 build --model=64 v2.080.0

Which didn't work (totally different error):

C:\DProj\digger\work\dl\dmd-2.075.0\dmd2/windows/bin\dmd.exe 
-of..\generated\windows\release\64\dmd.exe -vtls 
-J..\generated\windows\release\64 -J../res -L/STACK:8388608 -O -release 
-inline -m64  -wi -version=MARS -L/delexe/la dmd/access.d 
dmd/aggregate.d dmd/aliasthis.d dmd/apply.d dmd/argtypes.d dmd/arrayop.d 
     dmd/arraytypes.d dmd/astcodegen.d dmd/attrib.d dmd/builtin.d 
dmd/canthrow.d dmd/cli.d dmd/clone.d dmd/compiler.d dmd/complex.d 
dmd/cond.d dmd/constfold.d dmd/cppmangle.d dmd/cppmanglewin.d 
dmd/ctfeexpr.d dmd/ctorflow.d dmd/dcast.d dmd/dclass.d 
dmd/declaration.d dmd/delegatize.d dmd/denum.d dmd/dimport.d 
dmd/dinifile.d dmd/dinterpret.d    dmd/dmacro.d dmd/dmangle.d 
dmd/dmodule.d dmd/doc.d dmd/dscope.d dmd/dstruct.d dmd/dsymbol.d 
dmd/dsymbolsem.d                 dmd/lambdacomp.d dmd/dtemplate.d 
dmd/dversion.d dmd/escape.d                    dmd/expression.d 
dmd/expressionsem.d dmd/func.d dmd/hdrgen.d dmd/id.d dmd/imphint.d 
dmd/impcnvtab.d dmd/init.d dmd/initsem.d dmd/inline.d dmd/inlinecost.d 
dmd/intrange.d dmd/json.d dmd/lib.d dmd/link.d   dmd/mars.d dmd/mtype.d 
dmd/nogc.d dmd/nspace.d dmd/objc.d dmd/opover.d dmd/optimize.d 
dmd/parse.d    dmd/sapply.d dmd/sideeffect.d dmd/statement.d 
dmd/staticassert.d dmd/target.d   dmd/safe.d dmd/blockexit.d 
dmd/permissivevisitor.d dmd/transitivevisitor.d dmd/parsetimevisitor.d 
dmd/printast.d dmd/typesem.d  dmd/traits.d dmd/utils.d dmd/visitor.d 
dmd/libomf.d dmd/scanomf.d dmd/templateparamsem.d dmd/typinf.d 
dmd/libmscoff.d dmd/scanmscoff.d dmd/statement_rewrite_walker.d 
dmd/statementsem.d dmd/staticcond.d  dmd/semantic2.d dmd/semantic3.d 
dmd/irstate.d dmd/toctype.d dmd/glue.d dmd/gluelayer.d dmd/todt.d 
dmd/tocsym.d dmd/toir.d dmd/dmsc.d  dmd/tocvdebug.d dmd/s2ir.d 
dmd/toobj.d dmd/e2ir.d dmd/objc_glue.d dmd/eh.d dmd/iasm.d 
dmd\backend/bcomplex.d dmd\backend/cc.d dmd\backend/cdef.d 
dmd\backend/cgcv.d dmd\backend/code.d dmd\backend/cv4.d dmd\backend/dt.d 
dmd\backend/el.d dmd\backend/global.d  dmd\backend/obj.d 
dmd\backend/oper.d dmd\backend/outbuf.d dmd\backend/rtlsym.d 
dmd\backend/code_x86.d dmd\backend/iasm.d  dmd\backend/ty.d 
dmd\backend/type.d dmd\backend/exh.d dmd\backend/mach.d 
dmd\backend/md5.d dmd\backend/mscoff.d dmd\backend/dwarf.d 
dmd\backend/dwarf2.d dmd\backend/xmm.d dmd\tk/dlist.d dmd\root/aav.d 
dmd\root/array.d dmd\root/ctfloat.d dmd\root/file.d  dmd\root/filename.d 
dmd\root/man.d dmd\root/outbuffer.d dmd\root/port.d  dmd\root/response.d 
dmd\root/rmem.d dmd\root/rootobject.d  dmd\root/speller.d 
dmd\root/stringtable.d dmd\root/hash.d 
..\generated\windows\release\64\newdelete.obj 
..\generated\windows\release\64\backend.lib 
..\generated\windows\release\64\lexer.lib

object.Error@(0): Access Violation
----------------
0x004CF5B7
0x004987C7
0x77B716B7 in RtlAllocateHeap
0x00441CCD
0x0064DE30
0x0044E40A
0x00405B42

--- errorlevel 1

--- errorlevel 1

--- errorlevel 1
digger: Saving to cache.
digger: Clearing temporary cache

object.Exception at C:\Users\dlang.user\AppData\Local\dub\packages\ae-0.0.2177\ae\sys\d\manager.d(850): 
Command ["make", "-f", "win64.mak", "MODEL=64", 
"HOST_DC=C:\\DProj\\digger\\work\\dl\\dmd-2.075.0\\dmd2/windows/bin\\dmd.exe", 
"DMODEL=-m64", "dmd"] failed with status 1
----------------
0x0040AEF7 in pure @safe void 
std.exception.bailOut!(Exception).bailOut(immutable(char)[], uint, 
const(char[])) at 
C:\D\dmd2\windows\bin\..\..\src\phobos\std\exception.d(526)
0x0040AE9E in pure @safe bool 
std.exception.enforce!().enforce!(bool).enforce(bool, lazy 
const(char)[], immutable(char)[], uint) at 
C:\D\dmd2\windows\bin\..\..\src\phobos\std\exception.d(437)
0x004E6641 in void 
ae.sys.d.manager.DManager.Component.run(const(immutable(char)[])[], 
const(immutable(char)[][immutable(char)[]]), immutable(char)[])
0x004E7A60 in void ae.sys.d.manager.DManager.DMD.performBuild() at 
C:\Users\dlang.user\AppData\Local\dub\packages\ae-0.0.2177\ae\sys\d\manager.d(1116)
0x004E4F81 in void ae.sys.d.manager.DManager.Component.needBuild() at 
C:\Users\dlang.user\AppData\Local\dub\packages\ae-0.0.2177\ae\sys\d\manager.d(516)
0x004E54C2 in void ae.sys.d.manager.DManager.Component.needInstalled() 
at 
C:\Users\dlang.user\AppData\Local\dub\packages\ae-0.0.2177\ae\sys\d\manager.d(666)
0x004ECAE2 in void 
ae.sys.d.manager.DManager.build(ae.sys.d.manager.DManager.SubmoduleState, 
bool) at 
C:\Users\dlang.user\AppData\Local\dub\packages\ae-0.0.2177\ae\sys\d\manager.d(2094)
0x004AE7CD in void custom.runBuild(immutable(char)[], 
ae.sys.d.manager.DManager.SubmoduleState) at 
C:\Users\dlang.user\AppData\Local\dub\packages\digger-3.0.0-alpha-7\digger\custom.d(57)
0x004AFD20 in void custom.buildCustom(immutable(char)[]) at 
C:\Users\dlang.user\AppData\Local\dub\packages\digger-3.0.0-alpha-7\digger\custom.d(271)
0x004B0020 in 
_D6digger6Digger5buildFS2ae5utils6funopt__T10OptionImplVEQBhQBhQBe10OptionTypei0TbVAyaa12_686964DE52318C4D543263EB4945A7EE370BC1 
at 
C:\Users\dlang.user\AppData\Local\dub\packages\digger-3.0.0-alpha-7\digger\digger.d(69)
0x005298E6 in 
_D2ae5utils6funopt__TQkS_D6digger6Digger5buildFSQBuQBuQBr__T10OptionImplVEQCuQCuQCr10OptionTypeiE1CE98D83FDBAF71356FA2F08DBB1929 
at 
C:\Users\dlang.user\AppData\Local\dub\packages\ae-0.0.2177\ae\utils\funopt.d(304)
0x00528874 in int ae.utils.funopt.funoptDispatch!(digger.Digger, 
ae.utils.funopt.FunOptConfig(null), 
digger.digger().usageFun(immutable(char)[])).funoptDispatch(immutable(char)[][]).fun(immutable(char)[], 
immutable(char)[][]) at 
C:\Users\dlang.user\AppData\Local\dub\packages\ae-0.0.2177\ae\utils\funopt.d(585)
0x00539E4C in 
_D2ae5utils6funopt__TQkS_DQyQxQt__T14funoptDispatchTS6digger6DiggerVSQCpQCpQCm12FunOptConfigS1nS51AF7AA587E767457D346232F97407B4 
at 
C:\Users\dlang.user\AppData\Local\dub\packages\ae-0.0.2177\ae\utils\funopt.d(304)
0x00528740 in int ae.utils.funopt.funoptDispatch!(digger.Digger, 
ae.utils.funopt.FunOptConfig(null), 
digger.digger().usageFun(immutable(char)[])).funoptDispatch(immutable(char)[][]) 
at 
C:\Users\dlang.user\AppData\Local\dub\packages\ae-0.0.2177\ae\utils\funopt.d(599)
0x004B0622 in int digger.digger() at 
C:\Users\dlang.user\AppData\Local\dub\packages\digger-3.0.0-alpha-7\digger\digger.d(249)
0x004B0A40 in int digger.__mixin21.run(immutable(char)[][]) at 
C:\Users\dlang.user\AppData\Local\dub\packages\ae-0.0.2177\ae\utils\main.d(40)
0x004B0A52 in _Dmain at 
C:\Users\dlang.user\AppData\Local\dub\packages\ae-0.0.2177\ae\utils\main.d(69)
0x005AC003 in void rt.dmain2._d_run_main(int, char**, extern (C) int 
function(char[][])*).runAll().__lambda1()
0x005ABF85 in void rt.dmain2._d_run_main(int, char**, extern (C) int 
function(char[][])*).runAll()
0x005ABE20 in _d_run_main
0x004B12AC in main at 
C:\Users\dlang.user\AppData\Local\dub\packages\digger-3.0.0-alpha-7\digger\bisect.d(7)
0x0060D101 in mainCRTStartup
0x778F8654 in BaseThreadInitThunk
0x77B94A77 in RtlGetAppContainerNamedObjectPath
0x77B94A47 in RtlGetAppContainerNamedObjectPath







More information about the Digitalmars-d mailing list