[slime-devel] SLIME crashes XEmacs lately
Tim Howe
vsync at quadium.net
Wed Dec 22 21:26:50 UTC 2010
Hi all, I've been using SLIME in XEmacs for years now and am very happy
with it. Recently, however, I updated from CVS and XEmacs started
unrecoverably[1] freezing up from time to time. I didn't connect the
two until more recently because it didn't seem to be related to doing
anything in particular.
Based on the stack trace I get when I am eventually forced to kill it,
I'm guessing it's related to the following set of changes:
2010-08-22 Stas Boukarev <stassats at gmail.com>
* slime.el (slime-xemacs-recompute-modelines): Add
`slime-xemacs-recompute-modelines' to `pre-idle-hook', this solves
the problem of synchronization of modelines.
Thanks to Aidan Kehoe.
2010-08-21 Stas Boukarev <stassats at gmail.com>
* slime.el (slime-recompute-modelines): Recompute modelines only
for visible buffers. Kludge: modeline can be out of sync if the buffer
becomes visible and no slime/lisp interaction took place yet.
Patch by Raymond Toy.
(slime-search-buffer-package): Revert, with the above
change caching shouldn't be necessary.
I took a glance at the relevant functions in slime.el but nothing jumped
out at me. Then again, I'm only moderately proficient in (X)Emacs Lisp.
Gentoo app-editors/xemacs-21.4.22-r1
XEmacs 21.4 (patch 22) "Instant Classic" [Lucid] (i686-pc-linux, Mule)
SLIME 2010-12-10 (although it started when I updated to 2010-11-13 and
that's when I saved the backtrace)
Any help tracking down what could be going on or how to fix it would be
greatly appreciated. With some pointers I'm happy to help code/test a
fix.
Lisp backtrace follows:
# (unwind-protect ...)
(when (or (symbol-value-in-buffer ... object) (symbol-value-in-buffer ... object)) (with-current-buffer object (setq redraw-modeline ...)))
# bind (object)
(lambda (object) (setq object (window-buffer object)) (when (or ... ...) (with-current-buffer object ...)))(#<window on "science-rumors.org" 0x38b5c>)
# bind (walk-windows-current walk-windows-start which-devices which-frames minibuf function)
walk-windows((lambda (object) (setq object (window-buffer object)) (when (or ... ...) (with-current-buffer object ...))) never visible)
# bind (redraw-modeline)
(let (redraw-modeline) (walk-windows (lambda ... ... ...) (quote never) (quote visible)) (and redraw-modeline (redraw-modeline t)))
slime-xemacs-recompute-modelines()
# (condition-case ... . error)
# (condition-case ... . error)
# (catch top-level ...)
Footnotes:
[1] Sometimes it does actually come back if I keep hitting C-g,
sometimes I only get the scrollbars and similar widgets to reappear,
sometimes it doesn't help at all.
--
Tim Howe
http://quadium.net/~vsync/
A certain woman entered a neighbour's house to bake bread there,
and a dog suddenly barked at her, but the owner of the house said
to her: "Do not be afraid of the dog as its teeth are gone." She,
however, said to him: "Take thy kindness and throw it on the
thorns, for the embryo has already been moved from its place."
More information about the slime-devel
mailing list