README: document limitations (tryEval, lost messages, seed stability, floats) #15

Closed
opened 2026-09-13 21:24:24 +09:00 by natsukium · 1 comment
Owner

Missing

A "Limitations" section in the README.

What to state

  • runTest uses builtins.tryEval, which catches throw / assert / type errors but not abort, stack overflow or infinite recursion; those abort the whole check.
  • The error message is lost: tryEval only reports success = false, so a report says which input failed, never why. Reproduce with the value (or the replay info once that lands) to see the message.
  • Seeds are not stable across versions: changing any combinator changes the random stream.
  • -0.0 collapses to 0, 1.0 / 0.0 is an error, inf / nan only arise from overflow (relevant once gen.float exists, #3).
## Missing A "Limitations" section in the README. ## What to state - `runTest` uses `builtins.tryEval`, which catches `throw` / `assert` / type errors but not `abort`, stack overflow or infinite recursion; those abort the whole `check`. - The error message is lost: `tryEval` only reports `success = false`, so a report says *which input* failed, never *why*. Reproduce with the value (or the replay info once that lands) to see the message. - Seeds are not stable across versions: changing any combinator changes the random stream. - `-0.0` collapses to `0`, `1.0 / 0.0` is an error, `inf` / `nan` only arise from overflow (relevant once `gen.float` exists, #3).
Author
Owner

Implemented in 75f8c9c, pushed to main.

Implemented in 75f8c9c, pushed to main.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
natsukium/nixcheck#15
No description provided.