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
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
Dmitry Olshansky
4318073f40
Fix issue 18600 Revamp std.regex caching for matchFirst case
2018-03-21 14:53:34 +03: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
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
Dmitry Olshansky
881658eabc
Faster to import std.regex, by lazy eval of wordMatcher
2017-12-18 17:50:53 +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
Dmitry Olshansky
8bfa66c50a
Fix CI complaints
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
Dmitry Olshansky
905788a65a
Move unicode set parser out of std.regex
...
This only does the move without adapting
the interface to the commonly accepted ranges.
2017-08-23 19:17:55 +03:00
Sebastian Wilzbach
2070d867dd
Sort multiple packages within one line
2017-06-12 08:18:25 +02:00
Sebastian Wilzbach
61717ecc7d
Sort imports
2017-06-12 07:54:38 +02:00
Sebastian Wilzbach
203755d296
Automatically add spaces to binary operators (>>)
...
command:
sed -E "s/([[:alnum:]]) >> ([[:alnum:]])/\1 >> \2/g" -i **/*.d
sed -E "s/([[:alnum:]])>> ([[:alnum:]])/\1 >> \2/g" -i **/*.d
sed -E "s/([[:alnum:]]) >>([[:alnum:]])/\1 >> \2/g" -i **/*.d
2017-02-23 00:57:47 +01:00
Sebastian Wilzbach
ef7be4b60d
Automatically add spaces to binary operators (<<)
...
command:
sed -E "s/([[:alnum:]]) << ([[:alnum:]])/\1 << \2/g" -i **/*.d
sed -E "s/([[:alnum:]])<< ([[:alnum:]])/\1 << \2/g" -i **/*.d
sed -E "s/([[:alnum:]]) <<([[:alnum:]])/\1 << \2/g" -i **/*.d
2017-02-23 00:57:47 +01:00
Sebastian Wilzbach
425ab667a3
Automatically set the range style from a..b -> a .. b
...
Commands:
sed -E "s/([[:alnum:]])[.][.]([[:alnum:]])/\1 .. \2/g" -i **/*.d
sed -E "s/([[:alnum:]])[.][.] ([[:alnum:]])/\1 .. \2/g" -i **/*.d
sed -E "s/([[:alnum:]]) [.][.]([[:alnum:]])/\1 .. \2/g" -i **/*.d
2017-02-22 05:37:31 +01:00
Sebastian Wilzbach
805c720595
Unify Phobos by ensuring there's always a space after cast(...)
...
Command:
sed -E 's/([^"])cast\(([^)]*?)\)([[:alnum:]])/\1cast(\2) \3/g' -i **/*.d
2017-02-21 16:40:20 +01:00
Sebastian Wilzbach
5521541032
Unify assert style to have no spaces between the first brace
...
Application of:
sed -E "s/assert +\(/assert(/" -i **/*.d
2017-02-21 15:27:15 +01:00
Sebastian Wilzbach
87dec58a41
DStyle: Constraints on declarations should have the same indentation level
2017-02-17 07:36:23 +01:00
Jack Stouffer
5a2491a847
Fix Issue 17161 - Revert all changes to std.regex from 2.072.2 onwards
2017-02-12 12:30:40 -05:00
Sebastian Wilzbach
64217c8965
Style fix: specify/remove local imports
2016-12-08 01:46:47 +01:00
Dmitry Olshansky
f8b3eea065
[std.regex] Addressing review comments
2016-10-09 15:35:32 +03:00
Dmitry Olshansky
e98fa4ad5a
[std.regex] Fix issue 9391 - const regex, ctRegex is immutable
2016-10-07 01:40:41 +03:00
Dmitry Olshansky
b94a203b0b
[std.regex] Re-style pass
2016-10-01 20:59:12 +03:00
Dmitry Olshansky
ecd33f148c
[std.regex] Get Bit-NFA working on the testsuite
2016-10-01 20:59:12 +03:00
Dmitry Olshansky
99095eebfc
ASCII-only version of Bit-NFA
2016-10-01 20:59:12 +03:00
Dmitry Olshansky
66048ae334
[Refactor] Generalize kickstart engines, in preparation for more to come
2016-10-01 20:59:12 +03:00
Jack Stouffer
399b4fa842
Fixed package wide std.algorithm imports in std.regex.internal.ir
2016-07-05 00:13:24 -04:00
Jack Stouffer
f9001ae545
Removed package wide std.range import from std.regex.internal.ir
2016-07-04 15:37:30 -04:00
Jack Stouffer
5698ca33cf
Fixed local imports in std.regex.internal.ir
2016-07-01 12:27:33 -04:00
Sebastian Wilzbach
1d34a121e9
apply all-man braces in Phobos
...
// find common cases
sed -E "s/^(\s*)((if|static if|for|foreach|foreach_reverse|while|unittest|switch|else|version).*)\s*\{$/\1\2\n\1{/" -i **/*.d
// catch else-if
sed -E "s/^(\s*)} (else static if| if|else if|else)(.*)\s*\{$/\1}\n\1\2\3\n\1{/" -i **/*.d
// remove created trailing whitespace
sed -i 's/[ \t]*$//' **/*.d
2016-05-31 13:07:53 +02:00
Mathias Lang
7f53fdfec0
Do not rely on the result of a comma expression
...
Also add `pragma(inline, true)` to ensure this function stays inlined.
2016-05-27 15:54:26 +02:00
Dmitry Olshansky
680f690939
[std.regex] Inline regex flags
2016-04-30 11:39:05 +03:00
Dmitry Olshansky
c1027f1970
Merge pull request #4246 from wilzbach/sed_spaces_part_2
...
style fix: add space after 'for' operator
2016-04-27 16:17:18 +04:00
Sebastian Wilzbach
d1714c9afb
minor style fixes
2016-04-27 04:18:22 +03:00
Sebastian Wilzbach
5a8988c149
style fix: add space after for operator
2016-04-27 02:04:02 +03:00
Sebastian Wilzbach
3d67cd228c
style fix: space between operators
2016-04-26 22:26:20 +03:00
Dmitry Olshansky
e6c3320b1f
Fix issue 12227 - Allow matching multiple patterns in one go with std.regex
2016-04-15 16:17:36 +03:00
Dmitry Olshansky
cf6152c13f
Fix issue 2104 - escape function for regular expressions
2016-04-14 16:54:36 +03:00
Dmitry Olshansky
19778b1c7a
address review comments
2016-03-28 12:54:59 +03:00
Dmitry Olshansky
df07aa7dea
Special case ASCII to use bit tables insted of 2-level tries
2016-03-27 20:26:49 +03:00
Dmitry Olshansky
0e55583fed
Start small - direct dispatch tables
2016-03-27 16:49:44 +03:00
Daniel Murphy
77b06e8c93
Merge pull request #4103 from DmitryOlshansky/bloom-filter
...
[std.regex] Introduce filtered loops with bloom filters
2016-03-27 05:30:53 +11:00
Dmitry Olshansky
56b90e7f5a
Drop "quick" test that never was quick anyway
2016-03-24 18:21:28 +03:00
Dmitry Olshansky
0736e907a4
Allow nextChar to be inlined by DMD
...
Healthy 2-3% of speedup.
2016-03-23 21:42:08 +03:00