all repos — min @ 4b7ca5c1b3f7a5cd0ef188dc5c860ca0c5ff35c0

A small but practical concatenative programming language.

Ensured calls are gcsafe.
h3rald h3rald@h3rald.com
Mon, 25 May 2026 10:09:38 +0200
commit

4b7ca5c1b3f7a5cd0ef188dc5c860ca0c5ff35c0

parent

7ecbca3d2174ce3c6ccf4db36925746c0b98118d

1 files changed, 14 insertions(+), 13 deletions(-)

jump to
M minpkg/lib/min_global.nimminpkg/lib/min_global.nim

@@ -1772,19 +1772,20 @@ let q = vals[0]

let reg = re(vals[1].strVal) let s_find = vals[2].strVal var i2 = i.copy(i.filename) - let repFn = proc(match: RegexMatch): string {.closure, gcsafe.} = - var ss = newSeq[MinValue](0) - ss.add match.match.newVal - for s in match.captures: - if s.isNone: - ss.add "".newVal - else: - ss.add s.get.newVal - i2.push ss.newVal - i2.push q - i2.pushSym "dequote" - return i2.pop.getString - i.push s_find.replace(reg, repFn).newVal + {.cast(gcsafe).}: + let repFn = proc(match: RegexMatch): string {.closure, gcsafe.} = + var ss = newSeq[MinValue](0) + ss.add match.match.newVal + for s in match.captures: + if s.isNone: + ss.add "".newVal + else: + ss.add s.get.newVal + i2.push ss.newVal + i2.push q + i2.pushSym "dequote" + return i2.pop.getString + i.push s_find.replace(reg, repFn).newVal def.symbol("replace") do (i: In): let vals = i.expect("str", "str", "str")