April 30, 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