Skip to content

Does require failure halt the program? (run_file continues to next top-level line) #29

@rmichaelthomas

Description

@rmichaelthomas

Severity: low/medium (unclear intended semantics)

The vocabulary docs describe require as "Halt with REQUIREMENT_NOT_MET if a condition fails." But in run_file, a failed require reports its error and execution continues to the next top-level statement.

Reproducer

remember a number called x with 1
require x is above 100
show "after plain require"
Error: Requirement not met: x is above 100. x is 1.
after plain require                         # <- still runs

Where

cli.run_file's main loop runs each top-level line via session.run_line(line), displays the result, and unconditionally advances (i += 1) — there is no halt on a REQUIREMENT_NOT_MET status. (Within a single statement/sequence — require X then do-Y — the failure does stop the rest of that line.)

The question

Is this intended? Two reasonable readings:

  • Halt the program: "halt" means stop sequential execution entirely on a failed requirement; run_file should stop after the error.
  • Per-line resilience (current): run_file reports the failure and keeps going, so the user sees all errors in one pass (REPL-like).

Both are defensible; the docs say "halt," the implementation continues. Worth a decision + a doc clarification either way. If "halt" is intended, run_file should stop on REQUIREMENT_NOT_MET (and expect, which is explicitly non-halting, would remain the continue-on-failure verb).

Observed while testing #19.

Metadata

Metadata

Assignees

No one assigned

    Labels

    language-designChanges to Liminate language design or specificationquestionFurther information is requested

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions