April 30, 2011 [dmd-internals] CTFE still broken | ||||
---|---|---|---|---|
| ||||
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 |
Copyright © 1999-2021 by the D Language Foundation