On Wednesday, 5 October 2016 at 02:45:53 UTC, Stefan Koch wrote:
On Tuesday, 4 October 2016 at 01:59:11 UTC, Stefan Koch wrote:
On Tuesday, 4 October 2016 at 01:20:01 UTC, Manu wrote:
On 4 October 2016 at 04:21, Stefan Koch via Digitalmars-d
<[email protected]> wrote:
On Monday, 3 October 2016 at 15:23:40 UTC, Jonathan Marler
wrote:
Yes, having the mixins expanded without the surrounding
code would make it difficult to debug in some cases. Maybe
generating the entire source with the expanded mixins is
another option?
mycode.d
obj/mycode_processed.d
That was my intention.
Maybe this idea could also be expanded to template
instantiation?
Oh yes. it is not that more much work :)
A small update on this.
The POC works rather well ...
Except for cases of massive template recursion. (binderoo and
most of std.traits)
In such cases a stack overflow occurs inside the prettyPrinter.
I am trying to find a work-around.
The simplest workaround is to run recursion heavy code in a fiber
with large stack size (e.g. 64MB).
// before
auto newExpr = expr.ctfeInterpret(); // some recursion heavy code
// after
Expression newExpr;
import core.thread : Fiber;
new Fiber(
{
newExpr = expr.ctfeInterpret(); // some recursion heavy code
}, 64 * 1024 * 1024).call();