Skip to content

Commit 1580f11

Browse files
yuhan0bbatsov
authored andcommitted
Remove eval-register from printing handlers
Results are already output to a buffer where they can be easily copied. Avoids storing huge results in memory and triggering the GC
1 parent 33271f1 commit 1580f11

File tree

1 file changed

+16
-17
lines changed

1 file changed

+16
-17
lines changed

cider-eval.el

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -788,23 +788,20 @@ Optional argument DONE-HANDLER lambda will be run once load is complete."
788788

789789
(defun cider-eval-print-handler (&optional buffer)
790790
"Make a handler for evaluating and printing result in BUFFER."
791-
(let ((res ""))
792-
(nrepl-make-response-handler (or buffer (current-buffer))
793-
(lambda (buffer value)
794-
(with-current-buffer buffer
795-
(insert
796-
(if (derived-mode-p 'cider-clojure-interaction-mode)
797-
(format "\n%s\n" value)
798-
value)))
799-
(when cider-eval-register
800-
(setq res (concat res value))))
801-
(lambda (_buffer out)
802-
(cider-emit-interactive-eval-output out))
803-
(lambda (_buffer err)
804-
(cider-emit-interactive-eval-err-output err))
805-
(lambda (_buffer)
806-
(when cider-eval-register
807-
(set-register cider-eval-register res))))))
791+
;; NOTE: cider-eval-register behavior is not implemented here for performance reasons.
792+
;; See https://github.com/clojure-emacs/cider/pull/3162
793+
(nrepl-make-response-handler (or buffer (current-buffer))
794+
(lambda (buffer value)
795+
(with-current-buffer buffer
796+
(insert
797+
(if (derived-mode-p 'cider-clojure-interaction-mode)
798+
(format "\n%s\n" value)
799+
value))))
800+
(lambda (_buffer out)
801+
(cider-emit-interactive-eval-output out))
802+
(lambda (_buffer err)
803+
(cider-emit-interactive-eval-err-output err))
804+
()))
808805

809806
(defun cider-eval-print-with-comment-handler (buffer location comment-prefix)
810807
"Make a handler for evaluating and printing commented results in BUFFER.
@@ -871,6 +868,8 @@ COMMENT-POSTFIX is the text to output after the last line."
871868
(defun cider-popup-eval-handler (&optional buffer)
872869
"Make a handler for printing evaluation results in popup BUFFER.
873870
This is used by pretty-printing commands."
871+
;; NOTE: cider-eval-register behavior is not implemented here for performance reasons.
872+
;; See https://github.com/clojure-emacs/cider/pull/3162
874873
(nrepl-make-response-handler
875874
(or buffer (current-buffer))
876875
(lambda (buffer value)

0 commit comments

Comments
 (0)