[Issue 7442] ctRegex!`\p{Letter}` uses a lot memory in compilation

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Apr 29 05:52:31 PDT 2012


http://d.puremagic.com/issues/show_bug.cgi?id=7442



--- Comment #11 from Dmitry Olshansky <dmitry.olsh at gmail.com> 2012-04-29 05:53:34 PDT ---
> 
> No, that was true a year or so ago, but not any more. One case which still
> causing array dups is comparing slices of arrays (eg, if (x[0..5] == y). I've
> put the machinery in place to get rid of that now (it's not gone yet, I need
> another simple pull request for that). That _might_ help a little bit.
> 
> Slicing also causes array dups with ~, eg z = x[0..5] ~ y; creates a temporary
> array with x[0..5]. But those are the only two that I know of.
> 

Ok does a ~= b; *always* reallocate a ? If not I'm fine.

> Clearly in this case, it's slow because it does 1.3 million assignments. It's a
> duplicate of bug 6498, unless you can find some way of drastically reducing the
> work it has to do.

Well take a look at "benchmark" for CTFE. It does a lot of bit-setting on array
of bytes. Posiibly a source of asigments since it does 1 bit-set per codepoint. 
That's unavoidable I'm afraid. 

I may special case things somewhat so that it checks if fullword write of zeros
or ones is possible.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list