[dmd-internals] CTFE still broken
Jonathan M Davis
jmdavisProg at gmx.com
Sat Apr 30 00:38:59 PDT 2011
From the looks of it, all of Don's pull requests for D2 have been merged in
now, so I thought I should point out that CTFE is still broken. Building the
unit tests on Linux currently works for what's in master, but I have changes
for std.datetime ready to merge in ( https://github.com/D-Programming-
Language/phobos/pull/31 ), and while the code compiles just fine with dmd
2.052, if I build with the unit tests on Linux with the version of dmd in git,
the build fails with this CTFE-related error:
=============================
make --no-print-directory -f posix.mak OS=linux MODEL=32 BUILD=debug unittest
dmd -I../druntime/import -w -d -m32 -g -debug -lib -
ofgenerated/linux/debug/32/libphobos2.a ../druntime/lib/libdruntime.a crc32.d
std/algorithm.d std/array.d std/base64.d std/bigint.d std/bitmanip.d
std/compiler.d std/complex.d std/concurrency.d std/container.d std/contracts.d
std/conv.d std/cpuid.d std/cstream.d std/ctype.d std/date.d std/datetime.d
std/datebase.d std/dateparse.d std/demangle.d std/encoding.d std/exception.d
std/file.d std/format.d std/functional.d std/getopt.d std/gregorian.d
std/intrinsic.d std/json.d std/loader.d std/math.d std/mathspecial.d std/md5.d
std/metastrings.d std/mmfile.d std/numeric.d std/outbuffer.d std/parallelism.d
std/path.d std/perf.d std/process.d std/random.d std/range.d std/regex.d
std/regexp.d std/signals.d std/socket.d std/socketstream.d std/stdint.d
std/stdio.d std/stdiobase.d std/stream.d std/string.d std/syserror.d
std/system.d std/traits.d std/typecons.d std/typetuple.d std/uni.d std/uri.d
std/utf.d std/variant.d std/xml.d std/zip.d std/zlib.d std/c/stdarg.d
std/c/stdio.d etc/c/zlib.d std/internal/math/biguintcore.d
std/internal/math/biguintnoasm.d std/internal/math/biguintx86.d
std/internal/math/gammafunction.d std/internal/math/errorfunction.d
etc/c/curl.d std/c/linux/linux.d std/c/linux/socket.d std/net/isemail.d
generated/linux/debug/32/etc/c/zlib/adler32.o
generated/linux/debug/32/etc/c/zlib/compress.o
generated/linux/debug/32/etc/c/zlib/crc32.o
generated/linux/debug/32/etc/c/zlib/deflate.o
generated/linux/debug/32/etc/c/zlib/gzclose.o
generated/linux/debug/32/etc/c/zlib/gzlib.o
generated/linux/debug/32/etc/c/zlib/gzread.o
generated/linux/debug/32/etc/c/zlib/gzwrite.o
generated/linux/debug/32/etc/c/zlib/infback.o
generated/linux/debug/32/etc/c/zlib/inffast.o
generated/linux/debug/32/etc/c/zlib/inflate.o
generated/linux/debug/32/etc/c/zlib/inftrees.o
generated/linux/debug/32/etc/c/zlib/trees.o
generated/linux/debug/32/etc/c/zlib/uncompr.o
generated/linux/debug/32/etc/c/zlib/zutil.o
std.contracts has been scheduled for deprecation. Please use std.exception
instead.
std.date and std.dateparse have been scheduled for deprecation. Please use
std.datetime instead.
std.gregorian has been scheduled for deprecation. Please use std.datetime
instead.
std.perf has been scheduled for deprecation. Please use std.datetime instead.
Testing generated/linux/debug/32/unittest/crc32
Testing generated/linux/debug/32/unittest/std/algorithm
Error: CTFE internal error: illegal stack value this
dmd: interpret.c:4080: void VarDeclaration::createStackValue(Expression*):
Assertion `isStackValueValid(newval)' failed.
make[1]: *** [generated/linux/debug/32/unittest/std/algorithm] Aborted
make: *** [unittest] Error 2
=============================
So, clearly, CTFE is still broken, and more work needs to be done to fix
regressions with it.
- Jonathan M Davis
More information about the dmd-internals
mailing list