newCTFE Status June 2020

Stefan Koch uplink.coder at googlemail.com
Sun Jun 7 11:58:09 UTC 2020


Hi Guys,

Because of my recent efforts to move type-list manipulation and 
type based computation from templates into CTFE, and because the 
debugging features I added to DMD are working again.

I ported newCTFE to the latest "stable" release of DMD 2.092.0.

While trying to test newCTFE on some std.regex code to see if it 
would make a difference there, I noticed that default 
construction of classes is broken.

This is because dmd is a little funky and does not generate a 
default construction-function for you.
Rather it leaves you to build your own.
(As far as I can see anyways.)

Which I then documented on a new wiki page were all of my more 
surprising discoveries about dmd will land.

[https://wiki.dlang.org/Random_DMD_Facts]

This promoted me to clean up my assignment-to-field code which 
was duplicated for structs and classes.

More such cleanup passes will happen and hopefully bring the 
code-size of newCTFE down considerably.

I will try to stay in sync with stable as far as possible.
So newCTFE will never fall 18 versions behind again.

I was going to rant about what exactly caused me to fall so far 
behind.
But since this is a public forum and I do not want to point at 
particular people,
(who are hopefully aware of their misguided actions)
I am going to skip that part and hope that in the future, 
discussion and exchange of opinions, as well as seeking peer 
approval; will prevent breaking the internal API in a major 
undesirable way.

With that I wish all of you a good day,

Stefan


More information about the Digitalmars-d mailing list