slime-repl.el and slime-presentations.el contrib fixes

João Távora joaotavora at gmail.com
Fri Jan 31 09:51:46 UTC 2014


Hi,

If noone opposes, I'd like to push the commits in postscript to slime
master. They target the slime-repl.el and slime-presentations.el
contribs only, but the topmost one might be worthy of some more
analysis, since it now makes every interactive REPL request two packets
heavier.

The fixes and functionality added target returning objects from the
debugger to the slime-repl.el REPL, with or without the
slime-presentations.el contrib (which according to my analysis never
actually worked and/or has been broken for at least some years).

João

commit 41cc9eba408a28c02e46f80d40b8dea5d3c34b34
Author: Joao Tavora <joaotavora at gmail.com>
Date:   Thu Jan 30 21:23:51 2014 +0000

    Allow "copy-to-repl" from *sldb* buffers from other threads.
    
    The previous change didn't deal with the edge case where the *sldb*
    buffer is associated with a thread different from the REPL's. In these
    cases the *, / and + variables weren't being set in the REPL where
    they're useful. This change fixes that by setting these variables in
    from correct REPL buffer.
    
    * contrib/slime-repl.el (slime-repl-eval-string): slime-eval
    SWANK:SET-REPL-VARIABLES when SWANK acknowledges with OK.
    
    * contrib/swank-repl.lisp (*last-repl-form*, *last-repl-values*): new
    variables.
    (*repl-set-variables-function*): new variable.
    (set-repl-variables): new function, extracted from REPL-EVAL,
    switches to *REPL-SET-VARIABLES-FUNCTION* if that is non-nil.
    (repl-eval): don't set auto variables here, defer that for later.

commit a89789b6e7d78f65de71642fc675261657791421
Author: Joao Tavora <joaotavora at gmail.com>
Date:   Thu Jan 30 16:10:23 2014 +0000

    Unbreak "copy-to-repl" functionality in slime-presentations.el
    
    The `slime-copy-presentation-to-repl' function simply copied a
    presentations text to the REPL, which made these objects
    ephemeral. For *inspector* the presentation was mispointing as soon as
    the user navigated away*. For *sldb* the presentation it just didn't
    work.
    
    For this functionality, slime-presentation.el uses the same strategy
    as slime-repl.el. A new `sldb-copy-down-to-repl' is also offered in
    slime-repl.el.
    
    * contrib/slime-presentations.el (slime-copy-presentation-to-repl):
    Unbreak. Use same `slime-repl-send-string' strategy as
    slime-repl.el.
    
    * contrib/slime-repl.el (sldb-mode-map): Bind M-RET to
    `sldb-copy-down-to-repl' in `sldb-mode-map'.
    (sldb-copy-down-to-repl): New function, much like
    `slime-inspector-copy-down-to-repl'
    
    * contrib/slime-repl.el (slime-inspector-copy-down-to-repl): Use only
    first return value of SWANK:INSPECTOR-NTH-PART.




More information about the slime-devel mailing list