Ticket #500 (closed defect: fixed)

Opened 6 months ago

Last modified 6 months ago

infinite loop in repl after lexical error

Reported by: will Owned by:
Priority: major Milestone: Larceny 0.96
Component: library Version: all
Keywords: Cc:

Description

This bug was reported by Jed Davis.

If a control character (other than the usual CR/LF/HT/&c.) is entered into the REPL, for example because I accidentally hit an arrow key or control-P or some such, the result is an infinite loop of this:

  Error: get-datum: Lexical Error: Incomplete or illegal token: INPUT PORT *console-input*>
  Computation is not continuable.
  debug> 
  Error: get-datum: Lexical Error: Incomplete or illegal token: INPUT PORT *console-input*>
  Computation is not continuable.
  debug> 
  Error: get-datum: Lexical Error: Incomplete or illegal token: INPUT PORT *console-input*>
  Computation is not continuable.
  debug> 

which needs a SIGQUIT to terminate (i.e., SIGINT does nothing).

It would be more helpful to consume the offending character before complaining of it, to ensure a finite number of errors on finite input.

Change History

Changed 6 months ago by will

  • status changed from new to closed
  • resolution set to fixed

Fixed by changeset:5112.

Note: See TracTickets for help on using tickets.