CTFE Status

Stefan Koch via Digitalmars-d digitalmars-d at puremagic.com
Fri Nov 4 18:21:48 PDT 2016


On Friday, 4 November 2016 at 10:59:25 UTC, Marc Schütz wrote:
> 
> In this case better make sure to remove the resulting dead code 
> from the old interpreter, otherwise it will become and 
> unmaintainable mess in the long run.

If you ask me the old interpreter is already an unmaintainble 
mess.
It will not be possible to remove code since the old interpreter 
and the new one do not share any common state or code-paths.
Therefore all evaluation-capabilty the old interpreter has must 
be retained otherwise it would not be useful anymore.

I thought about it some more, and decided that I will replace the 
old interpreter completely in the long run.
However in order to get something release before 2017, I have to 
rely on it being there.

I recently lost 3 days of work because of my git-skills.
Now I am working on simplyfing the cases the interpreter can get 
into.
Before I would do some optimisation to avoid temporaries and the 
like.
Since I now have the llvm-backend to verify the code is correct 
it's no longer crucial in order to be able to debug.
This simplification will (hopefully) finally enable me to proper 
handling of boolean-expressions.
I suspect that most of the invalid code I generated came from a 
bug in the "temporaries-avoidance optimisation"

Also I will put some effort into documenting the new engine 
better.
However code-gen bugs take priority over documentation.



More information about the Digitalmars-d mailing list