Luke Gorrie luke@synap.se writes:
I'm tempted to accuse your Emacs of having a broken throw/catch, but that's dangerous talk.
Maybe not. Macroexpanding catch/throw reveals that the trow tag is (symbol-value tag). It seems that by the time that throw gets invoked, tag has no symbol-value, so an error is thrown (silently) and gets trapped somewhere.
I've tried all sorts of ways of printing out the tag's value at various points inside the slime-rex expression. Any attempt to print the tag's value works, but printing its symbol-value fails.
I have to call it quits on the investigation for tonight, and maybe I'm barking up the wrong tree, but my best guess right now is that the throw expression turns out to be a no-op because the destination tag does not exist. Actually, it's simpler than that: The callback function fails (again, silently) before throw even executes, because looking up the tag's symbol-value fails first. Maybe.
Thanks for your help so far.