DCD 0.3.0-beta1 and DScanner 0.1.0-beta1

Jussi Jumppanen jussij at zeusedit.com
Wed Jan 29 16:26:46 PST 2014


On Tuesday, 28 January 2014 at 09:58:27 UTC, Brian Schott wrote:
> New DCD and DScanner betas are ready for testing.

I'm no D expert so I'm not really sure if this is a bug with DCD
or
with the DMD compiler itself? I suspect it might be the later?

I was testing your latest DCD against the Zeus IDE but came across
the following issue when trying to build DCD.

I tried doing the build using the zip files as follows:

1) Download the dmd.2.064.2.zip from here:

http://dlang.org/download.html

2) Download the DCD, DScanner and msgpack source zip files from
these pages:

https://github.com/Hackerpilot/DCD/tree/0.3.0-beta1
https://github.com/Hackerpilot/Dscanner/tree/0.1.0-beta1
https://github.com/msgpack/msgpack-d

When I run the BUILD.BAT the client exe builds just fine but
the build of the server exe hangs.

So I played around with the BUILD.BAT and found the build was
hanging on this file:

dscanner/stdx/d/lexer.d

I then ran this command to just build that one file:

      dmd -v -wi dscanner/stdx/d/lexer.d -Imsgpack-d/src -Idscanner
-O -release -noboundscheck -inline -ofdcd-server.exe

That command gives the compiler trace output shown below.

It appears that the dmd.exe hang on this file with this as the
last
line of trace output:

      TTY_FUNCTION__", "__TIME__", "__TIMESTAMP__", "__traits",
"__vector", "__VENDOR__", "__VERSION__"]).advance

The task manager shows the dmd.exe running but just continually
consuming more and more memory.

Compiler Trace Output
---------------------

NOTE: Some excessive trace output trimmed with ... characters.

D:\projects\dcd\DCD-0.3.0-beta2>dmd -v -wi
dscanner/stdx/d/lexer.d -Imsgpack-d/src -Idscanner -O -release
-noboundscheck
   -inline -ofdcd-server.exe
binary    c:\dmd2\windows\bin\dmd.exe
version   v2.064
config    c:\dmd2\windows\bin\sc.ini
parse     lexer
importall lexer
import    std.uni
(c:\dmd2\windows\bin\..\..\src\phobos\std\uni.d)
...
import    core.sys.windows.windows
(c:\dmd2\windows\bin\..\..\src\druntime\import\core\sys\windows\windows.d)
import    stdx.lexer    (dscanner\stdx\lexer.d)
semantic  lexer
semantic2 lexer
semantic3 lexer
import    std.stdio
(c:\dmd2\windows\bin\..\..\src\phobos\std\stdio.d)
...
import    std.internal.uni_tab
(c:\dmd2\windows\bin\..\..\src\phobos\std\internal\uni_tab.d)
semantic3 lexer
...
semantic3 utf
semantic3 uni
import    std.internal.unicode_comp
(c:\dmd2\windows\bin\..\..\src\phobos\std\internal\unicode_comp.d)
...
import    std.internal.unicode_decomp
(c:\dmd2\windows\bin\..\..\src\phobos\std\internal\unicode_decomp.d)
semantic3 unicode_tables
...
inline scan lexer
code      lexer
function  stdx.d.lexer.LexerConfig.__xopEquals
...
function  stdx.d.lexer.DLexer.Lexer!(ubyte,
TokenStructure!(ubyte, "\x0a\x09string comment;\x0a\x0a\x09int
opCmp(size_t
i) const pure nothrow @safe {\x0a\x09\x09if (index < i) return
-1;\x0a\x09\x09if (index > i) return 1;\x0a\x09\x09return
...
"with", "__DATE__", "__EOF__", "__FILE__", "__FUNCTION__",
"__gshared", "__LINE__", "__MODULE__", "__parameters", "__PRE
TTY_FUNCTION__", "__TIME__", "__TIMESTAMP__", "__traits",
"__vector", "__VENDOR__", "__VERSION__"]).generateMask
function  stdx.d.lexer.DLexer.Lexer!(ubyte,
TokenStructure!(ubyte, "\x0a\x09string comment;\x0a\x0a\x09int
opCmp(size_t
i) const pure nothrow @safe {\x0a\x09\x09if (index < i) return
-1;\x0a\x09\x09if (index > i) return 1;\x0a\x09\x09return
...
"with", "__DATE__", "__EOF__", "__FILE__", "__FUNCTION__",
"__gshared", "__LINE__", "__MODULE__", "__parameters", "__PRE
TTY_FUNCTION__", "__TIME__", "__TIMESTAMP__", "__traits",
"__vector", "__VENDOR__", "__VERSION__"]).generateByteMask
function  stdx.d.lexer.DLexer.Lexer!(ubyte,
TokenStructure!(ubyte, "\x0a\x09string comment;\x0a\x0a\x09int
opCmp(size_t
i) const pure nothrow @safe {\x0a\x09\x09if (index < i) return
-1;\x0a\x09\x09if (index > i) return 1;\x0a\x09\x09return
...
of", "ubyte", "ucent", "uint", "ulong", "union", "unittest",
"ushort", "version", "void", "volatile", "wchar", "while",
"with", "__DATE__", "__EOF__", "__FILE__", "__FUNCTION__",
"__gshared", "__LINE__", "__MODULE__", "__parameters", "__PRE
TTY_FUNCTION__", "__TIME__", "__TIMESTAMP__", "__traits",
"__vector", "__VENDOR__", "__VERSION__"]).generateCaseStatemen
ts
function  stdx.d.lexer.DLexer.Lexer!(ubyte,
TokenStructure!(ubyte, "\x0a\x09string comment;\x0a\x0a\x09int
opCmp(size_t
i) const pure nothrow @safe {\x0a\x09\x09if (index < i) return
-1;\x0a\x09\x09if (index > i) return 1;\x0a\x09\x09return
...
"with", "__DATE__", "__EOF__", "__FILE__", "__FUNCTION__",
"__gshared", "__LINE__", "__MODULE__", "__parameters", "__PRE
TTY_FUNCTION__", "__TIME__", "__TIMESTAMP__", "__traits",
"__vector", "__VENDOR__", "__VERSION__"]).printCase
function  stdx.d.lexer.DLexer.Lexer!(ubyte,
TokenStructure!(ubyte, "\x0a\x09string comment;\x0a\x0a\x09int
opCmp(size_t
i) const pure nothrow @safe {\x0a\x09\x09if (index < i) return
-1;\x0a\x09\x09if (index > i) return 1;\x0a\x09\x09return
...
"with", "__DATE__", "__EOF__", "__FILE__", "__FUNCTION__",
"__gshared", "__LINE__", "__MODULE__", "__parameters", "__PRE
TTY_FUNCTION__", "__TIME__", "__TIMESTAMP__", "__traits",
"__vector", "__VENDOR__", "__VERSION__"]).front
function  stdx.d.lexer.DLexer.Lexer!(ubyte,
TokenStructure!(ubyte, "\x0a\x09string comment;\x0a\x0a\x09int
opCmp(size_t
i) const pure nothrow @safe {\x0a\x09\x09if (index < i) return
-1;\x0a\x09\x09if (index > i) return 1;\x0a\x09\x09return
...
"with", "__DATE__", "__EOF__", "__FILE__", "__FUNCTION__",
"__gshared", "__LINE__", "__MODULE__", "__parameters", "__PRE
TTY_FUNCTION__", "__TIME__", "__TIMESTAMP__", "__traits",
"__vector", "__VENDOR__", "__VERSION__"])._popFront
function  stdx.d.lexer.DLexer.Lexer!(ubyte,
TokenStructure!(ubyte, "\x0a\x09string comment;\x0a\x0a\x09int
opCmp(size_t
i) const pure nothrow @safe {\x0a\x09\x09if (index < i) return
-1;\x0a\x09\x09if (index > i) return 1;\x0a\x09\x09return
...
"with", "__DATE__", "__EOF__", "__FILE__", "__FUNCTION__",
"__gshared", "__LINE__", "__MODULE__", "__parameters", "__PRE
TTY_FUNCTION__", "__TIME__", "__TIMESTAMP__", "__traits",
"__vector", "__VENDOR__", "__VERSION__"]).empty
function  stdx.d.lexer.DLexer.Lexer!(ubyte,
TokenStructure!(ubyte, "\x0a\x09string comment;\x0a\x0a\x09int
opCmp(size_t
i) const pure nothrow @safe {\x0a\x09\x09if (index < i) return
-1;\x0a\x09\x09if (index > i) return 1;\x0a\x09\x09return
...
"with", "__DATE__", "__EOF__", "__FILE__", "__FUNCTION__",
"__gshared", "__LINE__", "__MODULE__", "__parameters", "__PRE
TTY_FUNCTION__", "__TIME__", "__TIMESTAMP__", "__traits",
"__vector", "__VENDOR__", "__VERSION__"]).escape
function  stdx.d.lexer.DLexer.Lexer!(ubyte,
TokenStructure!(ubyte, "\x0a\x09string comment;\x0a\x0a\x09int
opCmp(size_t
...
"with", "__DATE__", "__EOF__", "__FILE__", "__FUNCTION__",
"__gshared", "__LINE__", "__MODULE__", "__parameters", "__PRE
TTY_FUNCTION__", "__TIME__", "__TIMESTAMP__", "__traits",
"__vector", "__VENDOR__", "__VERSION__"]).getFront
function  stdx.d.lexer.DLexer.Lexer!(ubyte,
TokenStructure!(ubyte, "\x0a\x09string comment;\x0a\x0a\x09int
opCmp(size_t
i) const pure nothrow @safe {\x0a\x09\x09if (index < i) return
-1;\x0a\x09\x09if (index > i) return 1;\x0a\x09\x09return
...
"with", "__DATE__", "__EOF__", "__FILE__", "__FUNCTION__",
"__gshared", "__LINE__", "__MODULE__", "__parameters", "__PRE
TTY_FUNCTION__", "__TIME__", "__TIMESTAMP__", "__traits",
"__vector", "__VENDOR__", "__VERSION__"]).advance


More information about the Digitalmars-d-announce mailing list