2012-08-09 6 views
6

Hintergrund Ich oft finde ich selbst einige lang laufenden Prozess von der REPL starten und dann wünschte, ich könnte weiterhin die REPL für andere Aufgaben, während es ausgeführt wurde. Kann ich Schleim zum Hintergrund des aktuellen Threads verwenden oder einen neuen REPL-Kontroll-Thread starten? Starten eines zusätzlichen REPL-Puffer wäre auch in Ordnung.Kann ich einen laufenden Thread in den Slime (Swank Emacs)

Antwort

2

Edit:

Hm, ich schaffte es irgendwie, die Clojure-Tag auf Ihre Frage zu verpassen. Ich wäre sehr überrascht, wenn die untenstehende Lösung für Clojure funktioniert hätte, da, wie Sie wahrscheinlich wissen, die Clojure-Community leider (zumindest für diejenigen unter uns, die Clojure verwenden) eine eigene Version von Slime unterhält. Ich werde die Antwort nicht löschen, da sie für CL-Programmierer, die nach dieser Funktionalität suchen, hilfreich sein kann.

Es sei denn, es eine ähnliche Lösung für Clojure ist, die über eine einzige Buchse Multiplex mehrere REPLs erlaubt, könnten Sie vielleicht starten Sie einfach einen zweiten Swank Server von Hand (aus dem *inferior-lisp* Puffer) und es über slime-connect als Behelfslösung verbinden. (Kann diese ATM nicht testen, da ich vor einer Weile mit Schleim mit Clojure gestoppt.)


Haben Sie versucht, die slime-mrepl contrib? M-x slime, geben Sie (sleep 10) in der REPL, Wechselpuffer, M-x slime-new-mrepl: Ich habe es nicht wirklich selbst, aber ein schneller Test funktionierte für mich unter CCL/Win/Emacs 24.

Getestet habe ich es wie folgt verwendet.

2

Bitte verzeihen Sie mir für eine etwas triste und nicht Schleim spezifische Antwort; Auf der Oberseite wird es mit jedem Clojure REPL funktionieren.

Wenn ich im Voraus weiß, beginne ich eine lange laufende Aufgabe von der REPL dann starte ich die Berechnung mit future und überprüfe mit future-done?, bevor ich es definiere.

+0

immer noch nützlich, auch wenn es nicht direkt die Antwort auf diese Frage ist, danke –

1

Dies könnte Ihre Frage nicht beantworten, aber es könnte hilfreich sein, zu erkennen, dass, solange (slime-communication-style):spawn ist, getan Auswertungen mit C-x C-e immer ihren eigenen Thread erzeugen und parallel laufen kann, was auch immer in dem REPL Thread geschieht. Die Ausgabe (von println usw.) erscheint im REPL-Puffer.

Verwandte Themen