[dmd-beta] dmd 2.053 beta (Stack Overflow)

Nick Sabalausky semitwist at gmail.com
Sat May 7 01:59:40 PDT 2011


I'm getting a stack overflow with the 2.053 beta (Windows). This one's 
probably going to be a PITA to narrow down, if even possible, but here's 
what I know so far before trying to narrow anything:

On the current trunk on SemiTwist D Tool (revision 220):
http://www.dsource.org/projects/semitwist/browser/trunk
svn co -r 220 http://svn.dsource.org/projects/semitwist/trunk 
SemiTwistDTools

Building the unittest app will cause DMD to get a Stack Overflow in this new 
beta (works fine in 2.052). The cmd line sent to DMD is this:

dmd -debug -g -unittest -wi -debug=SemiTwistDLib_unittest -Isrc -of"bin\semitwist-unittests-debug.exe" 
 -I"src\semitwist\apps\tests\unittests" 
"src\semitwist\apps\tests\unittests\main.d" "src\semitwist\util\text.d" 
"src\semitwist\cmdlineparser.d" "src\semitwist\util\unittests.d" 
"src\semitwist\treeout.d" "src\semitwist\cmd\all.d" 
"src\semitwist\util\io.d" "src\semitwist\cmd\plain.d" 
"src\semitwist\util\os.d" "src\semitwist\util\ver.d" 
"src\semitwist\util\all.d" "D:\DevTool\dmd\bin\..\src\phobos\crc32.d" 
"src\semitwist\util\mixins.d" "src\semitwist\util\array.d" 
"src\semitwist\util\functional.d" "src\semitwist\util\ctfe.d" 
"src\semitwist\util\process.d" "src\semitwist\refbox.d" 
"src\semitwist\util\container.d" "src\semitwist\util\reflect.d"

If I add the -v switch, here's the verbose output:

binary    D:\DevTool\dmd\bin\dmd.exe
version   v2.053
config    D:\DevTool\dmd\bin\sc.ini
parse     main
parse     text
parse     cmdlineparser
parse     unittests
parse     treeout
parse     all
parse     io
parse     plain
parse     os
parse     ver
parse     all
parse     crc32
parse     mixins
parse     array
parse     functional
parse     ctfe
parse     process
parse     refbox
parse     container
parse     reflect
importall main
import    object (D:\DevTool\dmd\bin\..\src\druntime\import\object.di)
import    std.stdio (D:\DevTool\dmd\bin\..\src\phobos\std\stdio.d)
import    core.stdc.stdio 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\stdc\stdio.di)
import    core.stdc.config 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\stdc\config.di)
import    core.stdc.stddef 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\stdc\stddef.di)
import    core.stdc.stdarg 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\stdc\stdarg.di)
import    std.stdiobase (D:\DevTool\dmd\bin\..\src\phobos\std\stdiobase.d)
import    core.memory 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\memory.di)
import    core.stdc.errno 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\stdc\errno.di)
import    core.stdc.stdlib 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\stdc\stdlib.di)
import    core.stdc.string 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\stdc\string.di)
import    core.stdc.wchar_ 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\stdc\wchar_.di)
import    core.stdc.time 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\stdc\time.di)
import    core.stdc.stdint 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\stdc\stdint.di)
import    core.stdc.signal 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\stdc\signal.di)
import    std.algorithm (D:\DevTool\dmd\bin\..\src\phobos\std\algorithm.d)
import    std.c.string (D:\DevTool\dmd\bin\..\src\phobos\std\c\string.d)
import    std.array (D:\DevTool\dmd\bin\..\src\phobos\std\array.d)
import    core.bitop 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\bitop.di)
import    std.conv (D:\DevTool\dmd\bin\..\src\phobos\std\conv.d)
import    core.stdc.math 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\stdc\math.di)
import    std.ctype (D:\DevTool\dmd\bin\..\src\phobos\std\ctype.d)
import    std.exception (D:\DevTool\dmd\bin\..\src\phobos\std\exception.d)
import    std.range (D:\DevTool\dmd\bin\..\src\phobos\std\range.d)
import    std.functional (D:\DevTool\dmd\bin\..\src\phobos\std\functional.d)
import    std.metastrings 
(D:\DevTool\dmd\bin\..\src\phobos\std\metastrings.d)
import    std.traits (D:\DevTool\dmd\bin\..\src\phobos\std\traits.d)
import    std.typetuple (D:\DevTool\dmd\bin\..\src\phobos\std\typetuple.d)
import    std.typecons (D:\DevTool\dmd\bin\..\src\phobos\std\typecons.d)
import    std.format (D:\DevTool\dmd\bin\..\src\phobos\std\format.d)
import    core.vararg 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\vararg.di)
import    std.bitmanip (D:\DevTool\dmd\bin\..\src\phobos\std\bitmanip.d)
import    std.math (D:\DevTool\dmd\bin\..\src\phobos\std\math.d)
import    std.string (D:\DevTool\dmd\bin\..\src\phobos\std\string.d)
import    core.exception 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\exception.di)
import    std.encoding (D:\DevTool\dmd\bin\..\src\phobos\std\encoding.d)
import    std.regex (D:\DevTool\dmd\bin\..\src\phobos\std\regex.d)
import    std.outbuffer (D:\DevTool\dmd\bin\..\src\phobos\std\outbuffer.d)
import    std.c.stdio (D:\DevTool\dmd\bin\..\src\phobos\std\c\stdio.d)
import    std.c.stdlib (D:\DevTool\dmd\bin\..\src\phobos\std\c\stdlib.d)
import    std.c.stdarg (D:\DevTool\dmd\bin\..\src\phobos\std\c\stdarg.d)
import    std.utf (D:\DevTool\dmd\bin\..\src\phobos\std\utf.d)
import    std.uni (D:\DevTool\dmd\bin\..\src\phobos\std\uni.d)
import    std.system (D:\DevTool\dmd\bin\..\src\phobos\std\system.d)
import    std.random (D:\DevTool\dmd\bin\..\src\phobos\std\random.d)
import    std.c.time (D:\DevTool\dmd\bin\..\src\phobos\std\c\time.d)
import    std.datetime (D:\DevTool\dmd\bin\..\src\phobos\std\datetime.d)
import    core.time (D:\DevTool\dmd\bin\..\src\druntime\import\core\time.di)
import    core.sys.windows.windows 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\sys\windows\windows.di)
import    std.file (D:\DevTool\dmd\bin\..\src\phobos\std\file.d)
import    std.path (D:\DevTool\dmd\bin\..\src\phobos\std\path.d)
import    std.process (D:\DevTool\dmd\bin\..\src\phobos\std\process.d)
import    std.c.process (D:\DevTool\dmd\bin\..\src\phobos\std\c\process.d)
import    std.c.stddef (D:\DevTool\dmd\bin\..\src\phobos\std\c\stddef.d)
import    std.windows.syserror 
(D:\DevTool\dmd\bin\..\src\phobos\std\windows\syserror.d)
import    std.windows.charset 
(D:\DevTool\dmd\bin\..\src\phobos\std\windows\charset.d)
import    std.c.windows.windows 
(D:\DevTool\dmd\bin\..\src\phobos\std\c\windows\windows.d)
import    std.regexp (D:\DevTool\dmd\bin\..\src\phobos\std\regexp.d)
import    std.__fileinit (D:\DevTool\dmd\bin\..\src\phobos\std\__fileinit.d)
import    core.thread 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\thread.di)
import    core.sync.mutex 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\sync\mutex.di)
import    core.sync.exception 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\sync\exception.di)
import    core.sys.windows.threadaux 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\sys\windows\threadaux.di)
import    std.c.windows.winsock 
(D:\DevTool\dmd\bin\..\src\phobos\std\c\windows\winsock.d)
import    std.stdint (D:\DevTool\dmd\bin\..\src\phobos\std\stdint.d)
import    std.numeric (D:\DevTool\dmd\bin\..\src\phobos\std\numeric.d)
import    std.complex (D:\DevTool\dmd\bin\..\src\phobos\std\complex.d)
import    std.container (D:\DevTool\dmd\bin\..\src\phobos\std\container.d)
import    std.iterator (D:\DevTool\dmd\bin\..\src\phobos\std\iterator.d)
import    std.stream (D:\DevTool\dmd\bin\..\src\phobos\std\stream.d)
import    std.mmfile (D:\DevTool\dmd\bin\..\src\phobos\std\mmfile.d)
import    std.demangle (D:\DevTool\dmd\bin\..\src\phobos\std\demangle.d)
import    core.demangle 
(D:\DevTool\dmd\bin\..\src\druntime\import\core\demangle.di)
import    std.md5 (D:\DevTool\dmd\bin\..\src\phobos\std\md5.d)
importall text
importall cmdlineparser
importall unittests
importall treeout
importall all
importall io
importall plain
importall os
importall ver
importall all
importall crc32
importall mixins
importall array
importall functional
importall ctfe
importall process
importall refbox
importall container
importall reflect
semantic  main
library   advapi32.lib
semantic  text
semantic  cmdlineparser
semantic  unittests
semantic  treeout
semantic  all
semantic  io
semantic  plain
semantic  os
semantic  ver
semantic  all
semantic  crc32
semantic  mixins
semantic  array
semantic  functional
semantic  ctfe
semantic  process
semantic  refbox
semantic  container
semantic  reflect
semantic2 main
semantic2 text
semantic2 cmdlineparser
semantic2 unittests
semantic2 treeout
semantic2 all
semantic2 io
semantic2 plain
semantic2 os
semantic2 ver
semantic2 all
semantic2 crc32
semantic2 mixins
semantic2 array
semantic2 functional
semantic2 ctfe
semantic2 process
semantic2 refbox
semantic2 container
semantic2 reflect
semantic3 main
semantic3 text
Stack overflow

Don't know if that helps. Probably not. I'll see if I can narrow it down, 
but being a stack overflow, I don't know: Maybe it's infinite recursion 
somewhere, or maybe the stack just isn't big enough.



More information about the dmd-beta mailing list