This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home. For a version of this page that may be more recent, see HashBangEof in WG2's repo for R7RS-large.

Hash­Bang­Eof

cowan
2016-04-27 02:42:00
2history
source

I tested the REPLs of the usual Schemes to determine which ones terminated when they read #!eof from standard input.

Terminated: Chicken, SISC, Detroit, Chez, Vicare, KSi

Lexical syntax error: Racket, Gauche, Scheme48/scsh, Guile, Larceny, NexJ, SigScheme, MiniScheme, S7, Unlikely, SIOD, Rep, SXM, Sizzle, Foment, Chibi

Self-quoting object: MIT, Gambit, Kawa

Special object: Llava, Owl Lisp

Unknown identifier: SigScheme, Shoe, BDC, XLisp, Schemik, UMB, Inlab

Attempts to evaluate an eof-object: Mosh

Apparently ignores it: Bigloo, SCM, Ypsilon, IronScheme, JScheme, STklos, TinyScheme, Scheme 9, RScheme, Elk, FemtoLisp, Dfsch, Sagittarius, Picrin

I also tried evaluating (eof-object? #!eof) in the REPL for a subset of the above. Schemes that report a lexical syntax error or treat #!eof as an identifier were not retested. Schemes that ignore #!eof usually ignored the closing ) as well; when one was supplied, they reported a missing argument to eof-object?.

Reports premature EOF: MIT, Detroit, KSi, S7

Attempts to evaluate an EOF object: Vicare (will return #t to (eof-object? '#!eof))

Lexical syntax error: Mosh

Does not have eof-object?: Owl Lisp

Returns #t: Gambit, Chicken, Kawa, SISC, Chez

Returns #f: Llava