Explicit TCE

Dmitry Olshansky dmitry.olsh at gmail.com
Fri Oct 12 11:59:02 PDT 2012


On 12-Oct-12 22:49, Tyler Jameson Little wrote:
>
> That would work too. If scope() is disallowed, it doesn't matter where
> the stack comes from. It's only slightly cheaper to reuse the current
> stack (CPU), but making a new one would be lighter on memory.
>
>> I see nice staff. My use case is optimizing virtual machine, the one
>> inside std.regex primarily.
>
> Yeah, that is a great example! I've read some bug reports about
> std.regex using a ton of memory, especially with CTFE.

Hey, that's dmd (compiler) using a ton of memory,  not std.regex :(
It actually flies with only a modest set of ram after CTFE (or rather 
'if') succeeds that is :)

Since regex is by
> definition a state machine, this would be a particularly elegant fit
> (granted, backreferences et al break that model, but it's still a nice
> metaphor).

Yeah, without backreferences it's a state machine. Still it's NFA 
(non-deterministic) as no DFA would do if you want to get things like 
captures of sub matches etc. Either way the remarkable giant switch is 
present ;)

>
> The main problem I see is working with other compilers like GCC/LLVM. If
> this can be done on those compilers, I don't see any major hurdle to
> getting this implemented.

Perhaps the biggest one would be convincing GCC/LLVM devs to accept 
patches :)

-- 
Dmitry Olshansky


More information about the Digitalmars-d mailing list