CTFE in .di files

Jonathan M Davis newsgroup.d at jmdavisprog.com
Wed Apr 18 08:12:43 UTC 2018


On Wednesday, April 18, 2018 07:25:17 Diego Lago via Digitalmars-d wrote:
> Could this issue be related?
>
> https://issues.dlang.org/show_bug.cgi?id=18485
>
> It is about *.di files but it isn't related with CTFE.

Without digging through the compiler internals, I couldn't say with 100%
certainty that they arent related, but what Manu is hitting isn't a
segfault, and I doubt that they're particularly related. Maybe the problems
come from similar sections of code, but the results are quite different.

In Manu's case, it's seems to be that when you import a module that uses
CTFE to generate code within that module, but you don't actually compile the
module into your program, then at least some of the time, some of the
symbols that were used during CTFE are referenced in the object file but
don't exist, so the linker gives an error. So, it seems like some symbol
references are getting into the object file when they shouldn't, and that's
very different from segfaulting.

Curiously, I can't reproduce the problem on my FreeBSD system, so I wonder
if it's Windows-specific (or at least that the linker on FreeBSD doesn't
choke in the same way - the object files may or may not have a similar
problem). I don't know if it's happening on Linux or OS X or not. If I
understand correctly, Manu has been hitting the problem with 64-bit Windows.

- Jonathan M Davis



More information about the Digitalmars-d mailing list