Historic background of std.regex and BacktrackingMatcher

user1234 user1234 at 12.de
Thu Oct 5 19:45:29 UTC 2023


On Thursday, 5 October 2023 at 13:36:10 UTC, Mai Lapyst wrote:
> I'm currently working through the dmd (and phobos for that 
> matter), and come across it's regex implementation. Here I 
> found out it makes rather heavy usage of malloc / pureMalloc; 
> on one side to allocate the Matcher implementation inside 
> `GenericFactory`; on the other side in `BacktrackingMatcher` 
> for memory of it's stack.
>
> Is there any historic reason why it dosnt uses more D-like 
> features like `new` or dynamic arrays? It would certainly be 
> safer to do so than using an untyped region of memory as 
> stack-space.
>
> Also: if it needs "plain" memory; would this code be a good 
> candidate to utilize `std.experimental.allocator` once released?
>
> Cheers,
> Mai

Not a formal answers but two clues:

   1. when malloc is used in Phobos it's generally to bypass the GC
   2. std.experimental.allocator was created way after std.regex

Maybe std.regex will see your question and answer more 
accurately. He was active a few weeks ago, coincidentally to 
annouce he had started working on a better design
for a D regex engine 
(https://forum.dlang.org/post/ctdkmvzttmpxwixkmvno@forum.dlang.org)


More information about the Digitalmars-d mailing list