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
-s
or-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 '#': #\space
Some 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.