How does Circle's CTFE compare to D?
Ola Fosheim Grøstad
ola.fosheim.grostad at gmail.com
Sat Dec 4 15:44:07 UTC 2021
On Saturday, 4 December 2021 at 13:53:27 UTC, Johannes Riecken
wrote:
> Interesting point. Do you have an example for that? Going top
> to bottom seems like a good choice.
Depends on what you want to do. If the compilation of one
source-file creates a file that another source-file wants to
read, how do you know what the order should be? A key point of
C++ is that you can have concurrent builds.
> For functions without side effects that interface specification
> would be equivalent to adding something like `static assert
> f(3) == 9` to a compile-time function f in D?
In D you can test if a function is executed on compile time, but
in C++ it is part of the function type (signature).
The key difference is that in C++ the compiler checks that a
compile-time function is limited to a reasonable subset when it
is defined even if it isn't used. Which is useful for library
authors. Within an application there is no practical difference,
really.
> My understanding from the talk is that Circle can compile C++,
> too, so if Sean Baxter adds a few well-specified and easily
> understandable features in a bug-free way, then I don't see the
> lack of traction being a major issue.
It is a C++-family compiler, so you are right, it could pick up
some interest for that reason alone! I guess some would use it if
it was open source. I personally wouldn't as C++ does not need
more complexity and features that does not match the rest of the
language. (What was Sutter thinking when he came up with the
syntax for "inspect"/"is"/"as"?)
This is something D needs to take advantage of. KISS! (Keep It
Simple Stupid ;^)
More information about the Digitalmars-d
mailing list