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
