On Friday, 3 April 2015 at 03:58:33 UTC, ketmar wrote:
On Thu, 02 Apr 2015 17:14:24 +0000, Pierre Krafft wrote:

What can replace malloc that can run on compile time and won't make it
slower at run time?

this is actually two questions, so i'll answer to two questions.

1. What can replace malloc that can run on compile time?
new ubyte[](size)

2. ...and won't make it slower at run time?
but we can still use malloc in runtime! `if (_ctfe)` allows us to select
the necessary code branch.

p.s. i don't think that this is the only problem, though. but i never read "std.regexp" source. it's bad, 'cause i want to make it work with any range, not only with strings. this will allow to run regexp on
anything -- and open way to my rbtree-based document system.

It seems like I have treaded into something which is outside my knowledge domain. The malloc is indeed one of the least problems with that code. The code makes use of completely unsafe code with pointer casts that are disallowed in CTFE code. If someone knows how to replace the pointer casts that would probably be everything needed. Otherwise I think it would need a rewrite to make it use safe D. The new code would probably be slower so for most people it would be a step back. A solution would be to have different code for CTFE and runtime but that seems unmaintainable and subpar.

Reply via email to