[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

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)))
  # (condition-case ... . error)
  # (condition-case ... . error)
  # (catch top-level ...)

[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

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