On Monday, 9 May 2016 at 16:57:39 UTC, Stefan Koch wrote:
My Plan is as follows.
I think you guys talked about it at the conference, but be sure
to coordinate with Timon Gehr. You'll want to steal all the best
ideas from the various implementations anyway. ;)
Do Dataflow analysis on the code that is to be ctfe'd so we can
tell beforehand if we need to store state in the ctfe stack or
Or baring proper data-flow analysis: RefCouting the variables
on the ctfe-stack could also be a solution.
I presume by "store state" you mean persisting objects beyond the
bounds of a single CTFE invocation? My first inclination here
would simply be to make all allocations from a new arena each
time CTFE is entered (can also re-use memory from prior runs for
that), do a deep-copy of the result (converting it to full AST
nodes, etc.), and then drop the entire arena. But probably you
have thought of (and discarded) this already.