Remove deprecated io.read-line+ builtin #455

Closed
opened 2026-05-05 17:37:07 +00:00 by navicore · 0 comments
Owner

Why

io.read-line+ is already marked deprecated in crates/compiler/src/builtins/io.rs (both the builtin! registration line and the docs string say "DEPRECATED: use io.read-line instead"). The friendly Bool variant io.read-line ( ( -- String Bool ) ) covers the same use cases and feeds directly into if. The Int-status variant has no clear remaining purpose — surveying both this repo and the seqlings curriculum found zero real call sites in user code; only the wiring entries in this repo.

Scope of removal

Delete the io.read-line+ surface end-to-end:

  • crates/runtime/src/io.rspatch_seq_read_line_plus function and its pub use re-export.
  • crates/runtime/src/lib.rs — any re-export pulling it in.
  • crates/compiler/src/builtins/io.rsbuiltin! registration and the docs.insert entry.
  • crates/compiler/src/codegen/runtime/stdio.rs — the declare ptr @patch_seq_read_line_plus(ptr) decl and the ("io.read-line+", "patch_seq_read_line_plus") name-map entry.
  • crates/compiler/src/ast/program.rs — the "io.read-line+" registration entry.

Any tests that reference it should also be removed.

Risk

Low. No examples, tests, or docs in this repo reference io.read-line+, and the seqlings curriculum has separately stopped teaching it. The deprecation note has been there long enough to act on.

Note

The corresponding seqlings-side cleanup (removing the two lingering teaching mentions in CURRICULUM.md and hints/19-io/03-read-status.md) is being done in the seqlings repo independently of this issue.

## Why `io.read-line+` is already marked deprecated in `crates/compiler/src/builtins/io.rs` (both the `builtin!` registration line and the docs string say "DEPRECATED: use io.read-line instead"). The friendly Bool variant `io.read-line` ( `( -- String Bool )` ) covers the same use cases and feeds directly into `if`. The Int-status variant has no clear remaining purpose — surveying both this repo and the seqlings curriculum found zero real call sites in user code; only the wiring entries in this repo. ## Scope of removal Delete the `io.read-line+` surface end-to-end: - `crates/runtime/src/io.rs` — `patch_seq_read_line_plus` function and its `pub use` re-export. - `crates/runtime/src/lib.rs` — any re-export pulling it in. - `crates/compiler/src/builtins/io.rs` — `builtin!` registration and the `docs.insert` entry. - `crates/compiler/src/codegen/runtime/stdio.rs` — the `declare ptr @patch_seq_read_line_plus(ptr)` decl and the `("io.read-line+", "patch_seq_read_line_plus")` name-map entry. - `crates/compiler/src/ast/program.rs` — the `"io.read-line+"` registration entry. Any tests that reference it should also be removed. ## Risk Low. No examples, tests, or docs in this repo reference `io.read-line+`, and the seqlings curriculum has separately stopped teaching it. The deprecation note has been there long enough to act on. ## Note The corresponding seqlings-side cleanup (removing the two lingering teaching mentions in `CURRICULUM.md` and `hints/19-io/03-read-status.md`) is being done in the seqlings repo independently of this issue.
Sign in to join this conversation.
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
navicore/patch-seq#455
No description provided.