emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/sly 613f597: Fix #394: Revert "Don't force mREPL to use ch


From: ELPA Syncer
Subject: [nongnu] elpa/sly 613f597: Fix #394: Revert "Don't force mREPL to use channel thread for everything"
Date: Fri, 18 Dec 2020 17:33:19 -0500 (EST)

branch: elpa/sly
commit 613f597ecf72eb5719d4e13a4bfdbeb91373bf09
Author: João Távora <joaotavora@gmail.com>
Commit: João Távora <joaotavora@gmail.com>

    Fix #394: Revert "Don't force mREPL to use channel thread for everything"
    
    This reverts commit ae4bbcaadc2b65d4f64c99b956c739372eeba1cc, which
    was a total thinko.
    
    Although what was written in that commit message is true for most
    requests -- that :emacs-rex requests issued from the REPL can normally
    be spawned in a new worker thread -- it (1) isn't true of some
    slynk-mrepl SLYFUNs which check if the worker thread really is the
    thread of the object representing the REPL, and (2) it most certainly
    isn't true of the :emacs-interupt message.
    
    The restriction of (1) is probably artificial, since these SLYFUNs
    (which modify REPL history, for example) are "seeing" local REPL
    bindings anyway via WITH-LISTENER-BINDINGS, and it probably wouldn't
    hurt a ton to lift it.  But the restriction of (2) is imperative: the
    purpose of that message is to interrupt a specific thread.
    
    In the end, that commit was done to get a better experience in Clasp,
    who seems to have a hard problem hanging on to thread IDs because of a
    garbage collecting issue.  Let's rather have that fixed in Clasp.
---
 contrib/sly-mrepl.el | 1 +
 sly.el               | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/contrib/sly-mrepl.el b/contrib/sly-mrepl.el
index 9c412bf..90c1397 100644
--- a/contrib/sly-mrepl.el
+++ b/contrib/sly-mrepl.el
@@ -1013,6 +1013,7 @@ handle to distinguish the new buffer from the existing."
             (with-current-buffer buffer
               (sly-mrepl--read-input-ring)
               (setq header-line-format nil)
+              (setq sly-current-thread thread-id)
               (set (make-local-variable 'sly-mrepl--remote-channel) remote)
               (unwind-protect
                   (run-hooks 'sly-mrepl-hook 'sly-mrepl-runonce-hook)
diff --git a/sly.el b/sly.el
index 4135f36..1b96528 100644
--- a/sly.el
+++ b/sly.el
@@ -1,6 +1,6 @@
 ;;; sly.el --- Sylvester the Cat's Common Lisp IDE  -*- lexical-binding: t; -*-
 
-;; Version: 1.0.42
+;; Version: 1.0.43
 ;; URL: https://github.com/joaotavora/sly
 ;; Package-Requires: ((emacs "24.3"))
 ;; Keywords: languages, lisp, sly



reply via email to

[Prev in Thread] Current Thread [Next in Thread]