CTFE C compiler

John Colvin via Digitalmars-d digitalmars-d at puremagic.com
Mon Nov 21 04:59:26 PST 2016


On Monday, 21 November 2016 at 10:41:27 UTC, Johan Engelen wrote:
> In LLVMweekly [1], I read the following:
> "You may be be interested, amazed, and/or horrified to learn of 
> constexpr-8cc [2]. It provides a compile-time C compiler 
> implemented as C++14 constant expressions."
>
> The constexpr compiler is generated using ELVM [3], a C 
> compiler that targets a bunch of other languages (instead of 
> targeting machine code). The constexpr compiler was built by 
> adding a C++14-constexpr target to ELVM. [4]
>
> A fun project: add a D CTFE backend? ;)
>
> cheers,
>   Johan
>
>
> [1] http://llvmweekly.org/issue/151
> [2] https://github.com/kw-udon/constexpr-8cc
> [3] https://github.com/shinh/elvm
> [4] 
> https://github.com/shinh/elvm/commit/b6e2fed3326d57d05f1a354938bd3b9545ab701b

mixin(import("myCode.d"));

Even better because it doesn't have to output the program at 
runtime, the generated executable *is* the compiled code ;). I 
guess that's just the same as #include though....

If you want to compile to other languages, just use the above 
with ldc --output-ll or --output-bc, then get an llvm decompiler 
to get that to your target language :)

A C compiler using ctfe, now that would take some more work.


More information about the Digitalmars-d mailing list