larcenists / larceny

Larceny Scheme implementation
Other
202 stars 32 forks source link

Larceny with -r6rs flag hangs #737

Closed MiloDavis closed 9 years ago

MiloDavis commented 9 years ago

Larceny hangs while trying to load with -r6rs command line flag. Keyboard interrupt is necessary to stop process.

Terminal output:

Milos-Computer:~ milodavis$ larceny -r6rs ^CKeyboard interrupt. Entering debugger; type "?" for help. debug> q Error while loading src/Build/iasn-larceny-heap.sch larceny.heap, built on Sat Mar 7 01:25:38 EST 2015

Version info:

Larceny v0.98 "General Ripper" (Mar 7 2015 01:24:18, precise:Posix:unified) larceny.heap, built on Sat Mar 7 01:25:38 EST 2015

Platform: OSX 10.10.3 Yosemite

WillClinger commented 9 years ago

You are reporting the documented behavior.

Larceny's -help option explains the -r6rs option thusly:

% larceny --help
Usage: larceny [options][-- arg-to-scheme ...]

Options:
  -r7r6
     Execute in Larceny's R7RS mode (a superset of both R7RS and R6RS)
     after importing all of the standard R7RS/R6RS libraries.
     Enters a read/eval/print loop (REPL) unless -program is specified.
  -r7rs
     Same as -r7r6 but imports only the (scheme base) library.
  -r6rs
     Execute the R6RS program specified by the -program option.
     (An "absolute requirement" of the R6RS forbids REPLs.)

Larceny's user manual explains what will happen if the -r6rs option is not accompanied by the -program option:

The -program option can be omitted, in which case Larceny will read the top-level program from standard input:

larceny -r6rs < pgm

If you omit the -program option and do not redirect standard input, then Larceny will wait patiently for you to type a complete top-level program into standard input, terminating it with an end-of-file.

You probably don't want to do that. Had you wanted to type R6RS code at Larceny, you'd be using Larceny's R7RS read/eval/print loop instead.