Commit graph

241 commits

Author SHA1 Message Date
Walter Bright
727fc4d6aa Merge pull request #2234 from DmitryOlshansky/regex-reuse-sets
std.regex - reuse codepoint sets for identical character classes
2014-06-08 17:09:56 -07:00
Dmitry Olshansky
d743a67aaa Reuse codepoint sets for identical character classes
These are very common and blowup memory usage at CTFE (that has no TLS
cache for that).
In any case it makes for slightly more compact memory footprint,
so a net gain regardless.
2014-06-07 15:23:32 +04:00
monarch dodra
d1dc1abb4e Merge pull request #2170 from DmitryOlshansky/issue-12747
Fix issue 12747 std.regex bug in the parser allows reference to open gro...
2014-05-22 10:36:57 +02:00
monarchdodra
001fad4558 Remove trailing whitespaces 2014-05-17 15:35:25 +02:00
Dmitry Olshansky
a7aab32ba7 [CLEANUP] Remove old hack, CTFE is better these days 2014-05-17 01:43:42 +04:00
Dmitry Olshansky
f4a37ae7d6 Fix issue 12747 std.regex bug in the parser allows reference to open groups.
Check the stack of opened constructs for groups when emit back-refs.
2014-05-16 17:34:05 +04:00
Dmitry Olshansky
44445cfb9e Fix issue 12366 Range violation in compile-time regex
Back-references are not a part of "quick-test" in R-T version,
neither should they be in C-T.
2014-05-15 16:07:47 +04:00
Dmitry Olshansky
0507fd70e8 Fix issue 12713 std.regex.regex crashes with SEGV, illegal instruction resp. assertion failure with certain bad input 2014-05-14 00:23:07 +04:00
Dmitry Olshansky
520438d9ef Fix issue 12691 std.regex.bmatch bug in empty OR operator inside of ()*
Must save variables that track advancement inside of infinite loops
on per-thread basis. Apparently no amount of trickery would let us avoid it.
2014-05-12 19:34:13 +04:00
Dmitry Olshansky
5baa7ca53c fix issue 10798 ctRegex unicode set ops unimplemented 2014-04-23 20:20:16 +04:00
Dmitry Olshansky
d9e8adacaa Re-adjust test cases for C-T version
Cover even more, but in 5 separate compiler runs.
Few cases still hit CTFE bugs
2014-04-23 20:19:53 +04:00
Dmitry Olshansky
cef454d432 Workaround curious CTFE bug 2014-04-23 20:19:53 +04:00
Dmitry Olshansky
1a4d897587 Enable again linear scans for small sets in std.regex 2014-04-23 20:19:51 +04:00
Dmitry Olshansky
20f3e6d890 Eanble kickstart engine for Thompson as well 2014-04-23 20:19:51 +04:00
Dmitry Olshansky
1fa74e5d89 fix issue 11784
Actually add a test case, the issue was fixed as part of the set
of commits that precede this one.
2014-04-23 20:19:50 +04:00
Dmitry Olshansky
be961d35aa fix 64bit bitrot 2014-04-23 20:10:21 +04:00
Dmitry Olshansky
a091d96e8d reanble kickstarter engine in std.regex 2014-04-23 20:10:21 +04:00
Dmitry Olshansky
2bb2afab43 get our case-insensitive regex back 2014-04-23 20:10:20 +04:00
Dmitry Olshansky
f33ba75ebf Kickstart not quite ready, casefolding too. Otherwise looks fine 2014-04-23 20:10:19 +04:00
Dmitry Olshansky
6ad8de8e6a hack our way to make ctRegex work, some tests disabled 2014-04-23 20:10:18 +04:00
Dmitry Olshansky
4692a8a15c another minor tweak, always use tries not sets for now 2014-04-23 20:10:18 +04:00
Dmitry Olshansky
4c9e63b9ec adjust Tries back to 2-level 2014-04-23 20:10:18 +04:00
Dmitry Olshansky
421fbfae3f workaround internal error 2014-04-23 20:10:17 +04:00
Dmitry Olshansky
e713d7bf75 hacks on the way to integrate new uni into std.regex 2014-04-23 20:10:17 +04:00
Dmitry Olshansky
56a47fd276 a start on std.regex conversion
few steps more
2014-04-23 20:10:16 +04:00
Daniel Murphy
63e1836adc Merge pull request #2106 from DmitryOlshansky/issue-12582
fix issue 12582 Non-existant named capture groups cause runtime range vi...
2014-04-24 02:03:16 +10:00
Dmitry Olshansky
85ba4748eb fix issue 12582 Non-existant named capture groups cause runtime range violation or segmentation fault in regex 2014-04-23 14:53:58 +04:00
Dmitry Olshansky
1931aedb3d Merge pull request #2097 from AndrejMitrovic/Fix12609
[Trivial] Fix12609 - Remove dead code assignment.
2014-04-22 17:29:31 +04:00
Walter Bright
a6cb0315a5 fix Issue 12394 - Regression: std.regex unittests take agonizingly long to run - like hours on OSX 2014-04-21 22:15:28 -07:00
Andrej Mitrovic
70d965879a Fix12609 - Remove dead code assignment. 2014-04-22 01:13:52 +02:00
Per Nordlöw
d701f90275 Issue 3882: Use cast(void) instead of value capture 2014-03-18 23:50:18 +01:00
Yazan S. Dabain
a81f6200cf [Trivial] Fix documentation typos 2014-02-28 21:08:19 +02:00
Dmitry Olshansky
01e0acddd6 fix issue 12076
Lookaround in ctRegex used wrong number of total captures thus missing
both a bit of optimization AND a special case of 0 matches.
The latter is the reason of range violation in issue 12076.
2014-02-24 02:02:06 +04:00
Dmitry Olshansky
873a440fd4 std.regex - fix issue 12105
Handle the case where a lazy quantified loop will have
pessimistic empty "quick test", for example
in front of a lookaround.
2014-02-23 01:24:53 +04:00
Vladimir Panteleev
0cc1d70178 fix Issue 12156 - static import of std.ascii in std.regex causes conflict 2014-02-14 05:39:06 +00:00
k-hara
b391b2ec9f Convert to new alias syntax 2014-02-11 15:27:05 +09:00
Walter Bright
908908164c Merge pull request #1906 from blackwhale/issue-12069
Fix issue 12069
2014-02-03 13:49:54 -08:00
Dmitry Olshansky
b64c091916 fix issue 12069
On Win32 allocating large blocks (>512K) is forwarded to
VirtualAlloc/VirtualFree. Doing these calls is expensive especially in a
loop. As a temporary solution a block size of a segmented stack is
decreased to ~1/8 of critical size.

The code needs to be adapted once allocators are in std.
2014-02-03 23:48:34 +04:00
Daniel Murphy
918abc92d2 Fix wrong test 2014-01-20 04:13:31 +11:00
Daniel Murphy
a656f26e9e Remove use of automatic adjacent string literal concatenation from phobos 2014-01-20 03:42:21 +11:00
Brad Anderson
5662eb90f6 Update comments to match new std.regex examples
Example was switched to matchAll and 'g' was removed but the comment got left in. Another comment about match wasn't switched to matchAll.
2014-01-16 13:49:43 -07:00
Brad Anderson
3979b483e9 Use documented unittest rather than code dup 2014-01-14 12:40:15 -07:00
Brad Anderson
9dcc377d55 Switch to matchFirst/matchAll for examples 2014-01-14 12:40:02 -07:00
monarchdodra
44fe3d88f7 Remove tabs 2014-01-08 08:37:52 +01:00
monarchdodra
fd8540072d Remove trailing white 2014-01-08 08:30:28 +01:00
monarch dodra
2648a68e9a Merge pull request #1838 from blackwhale/issue-11839
Fix issue 11839
2014-01-07 10:43:35 -08:00
Dmitry Olshansky
8eb57d628b fix issue 8203, similar issue with lookaround
When using a temporary engine as closure its generation counter
should be tracked separately for each lookaround.

For now just use built-in AA, later we could find better places
to store this counter in.
2014-01-07 19:54:49 +04:00
Dmitry Olshansky
d60c60ec44 add _ to allowed characters in regex identifier 2014-01-07 03:29:21 +04:00
Dmitry Olshansky
a673d01ee9 fix issue 11839 2014-01-06 19:50:21 +04:00
Ilya
960c401b6c std.regex: double 'l' in Cyrillic 2014-01-04 23:01:26 +03:00