Commit graph

241 commits

Author SHA1 Message Date
MoonlightSentinel
ff934f9332 Remove duplicate assumePureFunction from std.regex
It's redundant and has the same invalid constraint that was
fixed for the other implementation
2021-05-10 13:17:42 +02:00
MoonlightSentinel
5b6507df1f Fix template constraint of assumePureFunction
The constraint was actually a runtime `if`, leaving `assumePureFunction`
without a `return` at the end of the function.
2021-04-26 14:55:11 +02:00
Jon Degenhardt
34e58ec857 Fix issue 21716: std.regex performance regression. 2021-04-25 20:43:24 +08:00
berni44
b2019ebab0 Narrow imports of std.math in the rest of phobos. 2021-04-21 03:00:57 +02:00
berni44
6f2a0934a7 Adapt imports of std.format to new structure of std.format. 2021-03-19 13:22:00 +01:00
Martin Kinkelin
1a459c5996 Get rid of std.conv.emplace[Ref](), use core[.internal].lifetime
The emplace() stuff was moved to druntime; for some reason, it's still
in Phobos.

I've diffed the two versions, and they are still almost identical (incl.
unittests); the druntime version appears to have seen some improvements
(e.g., forwarding r/lvalueness of the arguments) in the meantime.
2021-01-17 16:02:25 +01:00
Tobias Pankrath
06dbaa1ed5 review comments 2020-12-12 14:53:29 +01:00
Panke
b5438373ca
Update package.d 2020-12-12 14:01:53 +01:00
Panke
7746e007d2
] in character classes must be escaped.
see https://forum.dlang.org/post/vosqqfhrvddeekjopjjp@forum.dlang.org
2020-12-12 13:59:20 +01:00
Luís Ferreira
d97b65a697
regex: partially make regex pure
Signed-off-by: Luís Ferreira <contact@lsferreira.net>
2020-10-26 18:05:46 +00:00
Luís Ferreira
35e2ac7a60
regex: use pure/enforce version of malloc/free functions
Signed-off-by: Luís Ferreira <contact@lsferreira.net>
2020-10-26 17:17:39 +00:00
Nathan Sashihara
453faadf5b Replace is(Unqual!T == Unqual!U) with is(immutable T == immutable U) for speed & memory usage 2020-08-03 15:07:32 +02:00
Geod24
04f3979317 Replace 'Issue XXX' with Bugzilla links
Make the links clickable, as was done in the DMD repository.
Also avoids any ambiguity w.r.t. where the issue is stored.
2020-04-13 16:28:09 +09:00
Adam D. Ruppe
ae93f5317c Use consistent quickindex wrapper around hand-written list-of-links tables 2020-02-21 21:04:05 -05:00
ZombineDev
b923f740f6 Fix Issue 20301 - Support const array of patterns in std.regex.regex 2019-10-16 14:33:49 +03:00
Nathan Sashihara
e226022680 Fix Issue 20098 - Improve result of printing std.regex compiled pattern 2019-08-02 15:53:21 -07:00
David Gileadi
775bcdee51 Turn on -preview=markdown 2019-07-04 10:28:30 -07:00
Vladimir Panteleev
3c472274f1
std.regex.package: Documented null values of captures 2019-06-18 11:25:43 +00:00
Vladimir Panteleev
6c5d7230bc
Fix Issue 19979 - std.regex should return null for non-matched captures 2019-06-17 21:11:06 +00:00
Sebastian Wilzbach
8bc39461aa Use selective top-level module imports in std.{path,range,regex} 2019-05-23 10:25:16 +02:00
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