Opened 7 years ago
Closed 7 years ago
#1467 closed enhancement (fixed)
Bare hashes cause confusing error message in scripts
| Reported by: | sjamaan | Owned by: | sjamaan |
|---|---|---|---|
| Priority: | minor | Milestone: | 5.1 |
| Component: | core libraries | Version: | 5.0.0 |
| Keywords: | read syntax, history references, scripts, errors | Cc: | |
| Estimated difficulty: | easy |
Description (last modified by )
As pointed out by erkin on IRC, when you run a script with -ss which contains something like #, the error message you get is confusing, especially if you don't know about csi's history references (especially given that this is a script, not manual input).
The error is:
Error: history entry index out of range: 0
If this is the result of running a long script that somewhere contains # (or just #0), this doesn't point to the location of the issue either.
Proposed possible improvements:
- Add the
#to the error message so it's clear that this syntax is causing it, even if you don't know what a "history index" is. But note that just adding it is not going to be enough, since just#also triggers this error. - Give a better/different error when reading a bare
# - Include the line number (part of a larger issue in evaluated script code, and the hardest to implement)
- Disable history syntax when running with
-sor-ss.
Change History (3)
comment:1 Changed 7 years ago by
| Description: | modified (diff) |
|---|---|
| Priority: | major → minor |
| Summary: | Hash-prefixed numbers cause confusing error message in scripts → Bare hashes cause confusing error message in scripts |
comment:2 Changed 7 years ago by
comment:3 Changed 7 years ago by
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
Fixed in 42f3ff1bd63f563d3fd9c3329f0c5f9fc4f5b749
Note: See
TracTickets for help on using
tickets.

For reference, Chibi gives a better error:
ERROR on line 57 of file op.scm: invalid char following '#': #\spaceSome other Schemes have shitty error messages too, but that shouldn't stop us from improving ours ;)
erkin actually had
(# . foo)in a quoted alist, not remembering that#is special syntax.