From: Edi Weitz

Subject: reader errors in REPL

Date: 2003-10-17 6:49

Hi!

If a reader error occurs in the REPL the only available restart is
"Abort entirely from this process." Is that expected behaviour? The
other implementations I tried all offer one or more ways to recover
cleanly - at least you're not forced to completely quit the Lisp
image.

[AllegroCL 6.2 trial on Linux x86]

Thanks,
Edi.


<bird:~ at edi> > alisp
WARNING: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
WARNING: Allegro CL will expire in 23 days.
WARNING: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;   Fast loading /usr/local/lisp/defsystem.acl.fasl
;   Fast loading /usr/local/lisp/asdf.acl.fasl
International Allegro CL Trial Edition
6.2 [Linux (x86)] (Sep 12, 2003 1:39)
Copyright (C) 1985-2002, Franz Inc., Berkeley, CA, USA.  All Rights Reserved.

This development copy of Allegro CL is licensed to:
   Dr. Edmund Weitz, self-employed

;; Optimization settings: safety 1, space 1, speed 1, debug 2.
;; For a complete description of all compiler switches given the
;; current optimization settings evaluate (EXPLAIN-COMPILER-SETTINGS).
CL-USER(1): (* #.(/ 3 0) 4)

Error: Attempt to divide 3 by zero.
  [condition type: DIVISION-BY-ZERO]

Restart actions (select using :continue):
 0: Abort entirely from this process.
[1] CL-USER(2): :continue 0
<bird:~ at edi> > lw
LispWorks(R): The Common Lisp Programming Environment
Copyright (C) 1987-2002 Xanalys LLC.  All rights reserved.
Version 4.2.7
Saved by edi as lw-ilisp-capi, at 04 Oct 2002 0:52
User edi on bird.agharta.de
; Loading text file /usr/local/lib/LispWorks/lib/4-2-0-0/config/siteinit.lisp
;  Loading text file /usr/local/lib/LispWorks/lib/4-2-0-0/private-patches/load.lisp
; Loading text file /home/edi/.lispworks
;  Loading fasl file /usr/local/lib/LispWorks/defsystem.ufsl
;  Loading text file /usr/local/lisp/asdf.lisp
; Loading /usr/local/lib/LispWorks/lib/4-2-0-0/modules/concat/xp-fancyformat.ufsl on demand...

CL-USER 1 > (* #.(/ 3 0) 4)

Error: Division-by-zero caused by / of (3 0).
  1 (continue) Return a value to use.
  2 Supply new arguments to use.
  3 (abort) Return to level 0.
  4 Return to top-level loop.
  5 Return from multiprocessing.

Type :b for backtrace, :c <option number> to proceed,  or :? for other options

CL-USER 1 : 1 > :c

Supply a form to be evaluated and used: 2
8