Skip to content

Commit 31f3e28

Browse files
authored
Support old Nim 0.18 (#33)
* support nim 0.18 * put checks back * fix checks
1 parent ec62d56 commit 31f3e28

File tree

4 files changed

+18
-6
lines changed

4 files changed

+18
-6
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
services:
22
- docker
33
env:
4+
- NIM=0.18.0
45
- NIM=0.19.0
56
before_install:
67
- docker pull nimlang/nim:$NIM

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
v0.9.0
1+
v0.10.0 (unreleased)
2+
==================
3+
4+
* Add Nim 0.18 support back
5+
6+
v0.9.0 (unreleased)
27
==================
38

49
* Drop Nim 0.18 support

regex.nimble

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# Package
22

3-
version = "0.9.1"
3+
version = "0.10.0"
44
author = "Esteban Castro Borsani (@nitely)"
55
description = "Linear time regex matching"
66
license = "MIT"
77
srcDir = "src"
88
skipDirs = @["tests"]
99

10-
requires "nim >= 0.19.0"
10+
requires "nim >= 0.18.0"
1111
requires "unicodedb >= 0.6.0 & < 0.7"
1212
requires "unicodeplus >= 0.4.0 & < 0.5"
1313

src/regex.nim

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2182,7 +2182,10 @@ proc populateCaptures(
21822182
# then calculate slices for each match
21832183
# (a group can have multiple matches).
21842184
# Note the given `capture` is in reverse order (leaf to root)
2185-
result.groups.setLen(gc)
2185+
if result.groups.len == 0: # todo: remove in Nim 0.18.1
2186+
result.groups = newSeq[Slice[int]](gc)
2187+
else:
2188+
result.groups.setLen(gc)
21862189
var
21872190
curr = cIdx
21882191
ci = 0
@@ -2200,7 +2203,10 @@ proc populateCaptures(
22002203
else:
22012204
g.b = -1 # 0 .. -1
22022205
assert ci mod 2 == 0
2203-
result.captures.setLen(ci div 2)
2206+
if result.captures.len == 0: # todo: remove in Nim 0.18.1
2207+
result.captures = newSeq[Slice[int]](ci div 2)
2208+
else:
2209+
result.captures.setLen(ci div 2)
22042210
curr = cIdx
22052211
while curr != 0:
22062212
let
@@ -2853,7 +2859,7 @@ when defined(forceRegexAtRuntime):
28532859
proc re*(s: string): Regex {.inline.} =
28542860
toPattern(s)
28552861
else:
2856-
proc re*(s: static string): Regex {.inline.} =
2862+
proc re*(s: static[string]): Regex {.inline.} =
28572863
## Parse and compile a regular expression at compile-time
28582864
const pattern = toPattern(s)
28592865
pattern

0 commit comments

Comments
 (0)