v1.4.0 #31
minirang
announced in
Announcements
v1.4.0
#31
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Description
tests/,bash tests/run.sh):tests/cases/(exact output diff),
tests/errors/(must fail with a specific error code), plus theexisting
examples//examples/error_cases/are now checked the same way instead of onlyby hand. Wired into CI (
.github/workflows/build-and-test.yaml).(e.g.
[any]+against a ~20k+ character string) overflowed the real C++ stack before thematcher's own recursion-depth guard could throw its safety exception — the guard's limit
(20,000) was measured, empirically, to be higher than where the actual crash occurs on an
8MB stack (~19,500). Lowered the default depth limit to 3,000 (a large margin below the
observed crash point) and verified no crash from 100 to 1,000,000 characters. Found by the
new test suite.
add,count,find,split,replace,match,in,by,not,global, etc. — can't be used asvariable or function names anywhere (
set number add to 5fails to parse). Same root causeas the
DLC:listimport-parsing bug fixed earlier, but spread across every place anidentifier is declared. See
docs/IMPLEMENTATION_NOTES.mdsection 16.examples/06_error_recovery.cuff, which incorrectly demonstratedor_else"catching"a
findthat simply returnsemptyon no match (not an exception) — added the correctis emptycheck alongside a genuine or_else-recoverable example (out-of-range index).This discussion was created from the release v1.4.0.
All reactions