Opened 4 weeks ago

Last modified 4 weeks ago

#1467 new enhancement

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
Keywords: read syntax, history references, scripts, errors Cc:
Estimated difficulty: easy

Description (last modified by sjamaan)

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 (2)

comment:1 Changed 4 weeks ago by sjamaan

  • Description modified (diff)
  • Priority changed from major to minor
  • Summary changed from Hash-prefixed numbers cause confusing error message in scripts to Bare hashes cause confusing error message in scripts

comment:2 Changed 4 weeks ago by sjamaan

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.

Note: See TracTickets for help on using tickets.