Commit graph

221 commits

Author SHA1 Message Date
Hiroki Noda
03f19cf3d2 regex/internal/parser.d: remove unreachable statement 2019-05-15 10:41:19 +09:00
Martin Kinkelin
5cc7fc5fb2 std.regex: Fix reassignment of ctRegex wrapper structs
Previously, reassigning such a wrapper resulted in the static immutable
Regex!Char global for that pattern (`staticRe`) to be overwritten by the
global for the new pattern (!). Made possible via alias this and the
logical-const hack.

Proposed fix: keep on allowing reassignments (people are already using
them), but just point to another pattern's global. So use a common
Wrapper struct type wrapping a pointer instead of an empty struct type
per pattern.

Bug reported in https://github.com/ldc-developers/ldc/issues/2961.
2019-02-02 23:03:02 +01:00
Nathan Sashihara
725278b2ce Fix Issue 19331 - std.regex.internal.ir.SmallFixedArray.toHash is ignored because it's non-const 2018-10-25 03:22:04 -04:00
Iain Buclaw
fd5facfe04 posix.mak: Enforce whitespace before opening parenthesis for version conditions 2018-09-22 16:57:24 +02:00
aG0aep6G
b9fe8b9ed0
Ddoc: fix unescaped dollar sign 2018-09-13 19:22:55 +02:00
Nick Treleaven
02d0104c57 popFront is not a property 2018-06-08 17:33:55 +01:00
Sebastian Wilzbach
c324714fde Remove a few cases of underscore escaping 2018-06-04 13:05:01 +02:00
Martin Nowak
9fdcf660dd Merge remote-tracking branch 'upstream/stable' into merge_stable
# Conflicts:
#	std/bitmanip.d
2018-04-06 19:39:58 +02:00
Sebastian Wilzbach
42894784dd Markdownify Phobos
$(D word) -> `word`
2018-04-02 22:32:47 +02:00
Dmitry Olshansky
b602b5a3f4 Fix issue 18691 - memory errors in std.regex.Captures
Instead of a messy code that ended up with refcount at the wrong place
provide a clean fixed-size array with required semantics and
build on top of that.
2018-03-29 19:49:51 +03:00
carblue
5fb1fe7639 std.regex.internal.tests: Fix a -dip1000 compilable issue 2018-03-26 13:59:18 +02:00
Sebastian Wilzbach
8f86a0d734 Fix if constraints indentation 2018-03-24 13:17:53 +01:00
The Dlang Bot
02aebb2920
Merge pull request #6268 from DmitryOlshansky/regex-cacheing
Cache and reuse std.regex engine to speed repeated matching
merged-on-behalf-of: David Nadlinger <code@klickverbot.at>
2018-03-22 02:21:27 +01:00
Dmitry Olshansky
4318073f40 Fix issue 18600 Revamp std.regex caching for matchFirst case 2018-03-21 14:53:34 +03:00
WebFreak001
0b9ca7107c Fix Issue 18565 - std.regex Captures opAssign returns void 2018-03-11 19:47:38 +01:00
Martin Nowak
7283f680f3 add back logical const workaround
- needed for compatibility with existing ctRegex users (e.g. Higgs)
- cast reference instead of value to avoid copying
2018-02-22 17:35:08 +01:00
Martin Nowak
59520969ef fix Issue 18114 - regex performance regression
- reduce copying of fat structs
- optimize layouts and opAssign of Captures
2018-02-22 16:59:09 +01:00
Martin Nowak
2e9a9db772 Revert "fix broken Jenkins CI"
This reverts commit 7bf26afced.
2018-02-22 16:59:09 +01:00
Martin
3db3dd8899 std.regex: Alignment hotfix
This fixes the unittests for LDC on ARM (with enabled optimizations).

The code used to store a class instance (whose size isn't padded) right
before some buffer, without any padding inbetween. The buffer is thus
susceptible to misalignment; e.g., `BacktrackingMatcher.dupTo()` casts
the buffer from `void[]` to `size_t[]` (in `initExternalMemory()`),
simply assuming an alignment >= `size_t.alignof`, which only holds if
the prepended class instance size is a multiple of that (as `malloc()`
returns a sufficiently aligned block already in this case).
2018-02-15 20:41:59 +01:00
Sebastian Wilzbach
d9830b739e Fix DScanner warnings 2018-02-10 22:46:32 +01:00
Sebastian Wilzbach
a60fd0c1a5 Splitup regex tests to please auto-tester 2018-01-24 17:59:40 +01:00
The Dlang Bot
52042cf2f4
Merge pull request #6052 from wilzbach/static_iota_std_regex_internal_backtracking
Remove staticIota: std_regex_internal_backtracking
merged-on-behalf-of: Jack Stouffer <jack@jackstouffer.com>
2018-01-23 02:47:37 +01:00
Sebastian Wilzbach
3ad744d351 Remove staticIota: std_regex_internal_tests 2018-01-22 17:19:06 +01:00
Sebastian Wilzbach
252a322315 Remove staticIota: std_regex_internal_backtracking 2018-01-22 17:18:59 +01:00
RazvanN7
281fe177ac Fix erroneous imports 2018-01-22 16:37:22 +02:00
The Dlang Bot
f3189822ab
Merge pull request #5989 from wilzbach/static-foreach
Use static foreach in Phobos
merged-on-behalf-of: Andrei Alexandrescu <andralex@users.noreply.github.com>
2018-01-03 19:05:07 +01:00
Sebastian Wilzbach
7de3787876 Use static foreach in Phobos 2018-01-03 17:30:11 +01:00
Steven Schveighoffer
fdc3e994cd Explicitly type RegexMatch.front (and add inout because captures has
inout as well). Fixes issue 18124
2017-12-31 09:24:47 -05:00
Martin Nowak
b221120735 fix Issue 18135 - can't join RegexMatch anymore
- fix copying of structs with RegexMatch fields by making
  const interface reference rebindable
2017-12-29 13:52:35 +01:00
Dmitry Olshansky
881658eabc Faster to import std.regex, by lazy eval of wordMatcher 2017-12-18 17:50:53 +03:00
The Dlang Bot
ad489989ec Merge pull request #5722 from DmitryOlshansky/regex-matcher-interfaces
std.regex: major internal redesign, also fixes issue 13532
merged-on-behalf-of: Andrei Alexandrescu <andralex@users.noreply.github.com>
2017-10-16 20:16:33 +02:00
Dmitry Olshansky
f4c963b5e9 Silence the circleCI style check? 2017-10-16 19:14:42 +03:00
Dmitry Olshansky
13ea5f9aea Drop another level of templatizations in backtracking 2017-10-11 18:18:12 +03:00
Dmitry Olshansky
41c229647d Need to propagate subCounters
Disable "benchmark" in unittest, it's too volatile
with different compiler flags
Also use GC.addRange/GC.removeRange
2017-10-06 11:20:55 +03:00
Matthew Strawbridge
3f9d421aac Include 's' in the list of valid regex flags 2017-10-01 20:54:00 +01:00
Dmitry Olshansky
7bf26afced fix broken Jenkins CI 2017-09-28 11:55:43 +03:00
Dmitry Olshansky
c49ea4f8c7 Another attempt to even the odds of enum/static speed 2017-09-28 11:55:43 +03:00
Dmitry Olshansky
09491f96e6 Another try to fix ratio of static/enum 2017-09-28 11:55:43 +03:00
Dmitry Olshansky
ee1f69a570 Initialize subCounters 2017-09-28 11:55:43 +03:00
Dmitry Olshansky
dc9b60c1f3 Trying to narrow down flakiness of timing 2017-09-28 11:55:43 +03:00
Dmitry Olshansky
eaa62a83db Fix latent bug due to emplacing over uninitialized memory 2017-09-28 11:55:43 +03:00
Dmitry Olshansky
8bfa66c50a Fix CI complaints 2017-09-28 11:55:43 +03:00
Dmitry Olshansky
a877469f07 Fix issue 13532 - std.regex performance (enums; regex vs ctRegex) 2017-09-28 11:55:43 +03:00
Dmitry Olshansky
c7bdfbe51b std.regex finish the loose ends in the great refactoring 2017-09-28 11:55:43 +03:00
Dmitry Olshansky
639dd3dd6f The new std.regex design is concluded, going through the unitests 2017-09-28 11:55:43 +03:00
Dmitry Olshansky
33d7ecc84c Finalized matcher factory abstraction, with compile-time regex support 2017-09-28 11:55:43 +03:00
Dmitry Olshansky
6e684343d7 WIP - refactoring towards sane std.regex code 2017-09-28 11:55:43 +03:00
Martin Nowak
8667632115 Merge remote-tracking branch 'upstream/stable' into merge_stable 2017-08-25 17:30:26 +02:00
Dmitry Olshansky
5fbab17c47 Fix issue 17673 - wrong whichPattern in multi-regex with alteration 2017-08-24 14:22:53 +03:00
Dmitry Olshansky
bc14c02e45 Rangify std.regex codepoint set parser 2017-08-24 11:22:51 +03:00