Luke Gorrie writes:
Raymond Wiker Raymond.Wiker@fast.no writes:
FreeBSD 4.9 Stable, SBCL 0.8.6.21, current SLIME. Hi. I have a Lisp file that has some large forms (a defconst
for a vector holding 1024 integers, for instance).
If I hit C-c C-e over this form, it is evaluated in the
*inferior-lisp* buffer.
If I hit C-c C-c, I get a "broken pipe" error. I've tried
reducing the size of the vector, and I see this problem down to (about) 480 characters. This is just below the "pipesize" limit on my box, which is 512.
Are you running SLIME in any exotic way? Who reports the broken pipe, Emacs or Lisp?
With SBCL "0.8.5.50" from CVS a ways back on Linux I can't reproduce this, even with e.g. (defconstant foo #(42 ... 42)) with 25KB of 42's. I think I can get SBCL onto a FreeBSD box around here though.
Here's the first few items from the "Lossage" buffer in XEmacs:
Recent minibuffer messages (most recent first):
Operation not allowed or error during operation: "SIGPIPE raised on process; closed it", "SLIME Lisp" Connected to Swank server on port 2261. Let the hacking commence! Connecting to Swank on port 2261.. Polling "/tmp/raw/slime.254".. (Abort with `M-x slime-disconnect'.)
And the output from SBCL:
* ;; Connection to Emacs lost. ;; [couldn't read from #<FILE-STREAM for "a constant string" {48E50039}>: Resource temporarily unavailable]
debugger invoked on a SIMPLE-ERROR in thread 89722: (#<SB-IMPL::HANDLER INPUT on BOGUS descriptor 6: #>) has a bad file descriptor.
You can type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name): 0: [REMOVE-THEM] Remove bogus handlers. 1: [RETRY-THEM ] Retry bogus handlers. 2: [CONTINUE ] Go on, leaving handlers marked as bogus. 3: [ABORT ] Reduce debugger level (leaving debugger, returning to toplevel). 4: [TOPLEVEL ] Restart at toplevel READ/EVAL/PRINT loop. (SB-IMPL::HANDLER-DESCRIPTORS-ERROR 0)[:EXTERNAL] 0]
Hum... this might also be an XEmacs issue? My XEmacs is
XEmacs 21.4 (patch 12) "Portable Code" [Lucid] (i386--freebsd) of Sun Aug 10 2003 on raw.grenland.fast.no
The sequence seems to be that SBCL gets error code EAGAIN ("Resource temporarily unavailable" is a dead giveaway :-), and closes the socket. Then, XEmacs gets a sigpipe, and closes its end of the pipe.
Soooo, this looks like an SBCL issue, but why does this not happen with C-c C-e? Are characters sent in different ways to SBCL with C-c C-e and C-c C-c?