My abject apologies if this is a feature, not a bug.
This probably also happens with other errors, but I used division by zero as a handy surrogate.
If I divide by zero and *print-right-margin* is #x3FFFFF, the error message appears as one would expect. But if I divide by zero and *print-right-margin* is #x400000, then I get several thousand lines of aborted error message, followed by notification of Lisp stack overflow.
Linux tiger 2.6.32-5-686 #1 SMP Tue Mar 8 21:36:00 UTC 2011 i686 GNU/Linux
=== glibc version:
GNU C Library (Debian EGLIBC 2.11.2-10) stable release version 2.11.2, by Roland
McGrath et al.
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
Compiled by GNU CC version 4.4.5.
Compiled on a Linux 2.6.32 system on 2011-01-23.
crypt add-on version 2.1 by Michael Glad and others
GNU Libidn by Simon Josefsson
Native POSIX Threads Library by Ulrich Drepper et al
For bug reporting instructions, please see:
=== clisp version:
GNU CLISP 2.49 (2010-07-07) (built 3543975151) (memory 3543975454)
Software: GNU C 4.4.5
gcc -g -O2 -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wmissing-declarations -Wno-sign-compare -Wno-format-nonliteral -O2 -fexpensive-optimizations -falign-functions=4 -DENABLE_UNICODE -DDYNAMIC_MODULES -I. -lreadline -lncurses -ldl libgnu_cl.a
SAFETY=0 HEAPCODES LINUX_NOEXEC_HEAPCODES SPVW_BLOCKS SPVW_MIXED TRIVIALMAP_MEMORY
(REGEXP SYSCALLS I18N LOOP COMPILER CLOS MOP CLISP ANSI-CL COMMON-LISP LISP=CL
INTERPRETER SOCKETS GENERIC-STREAMS LOGICAL-PATHNAMES SCREEN GETTEXT UNICODE
BASE-CHAR=CHARACTER PC386 UNIX)
C Modules: (clisp i18n syscalls regexp)
Installation directory: /u/home/clisp/bug5/home/lib/clisp-2.49/
User language: ENGLISH
Machine: I686 (I686) tiger.x441afea5.org [10.0.0.1]
=== build details:
I downloaded the currently released version of clisp today (12 Apr 2012) from http://ftp.gnu.org/pub/gnu/clisp/latest.
I built it the normal way, as shown in the attached script. Placed into its own empty directory, that script downloads the source, builds and installs clisp, and runs the program twice, first using the higher value of *print-right-margin* (the one that misbehaves), then using the lower value.