Set *package* from #'QT-EVAL.
Fri Jun 5 09:50:38 CEST 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
* Set *package* from #'QT-EVAL.
diff -rN -u old-repl/src/repl.lisp new-repl/src/repl.lisp
--- old-repl/src/repl.lisp 2014-10-30 07:04:37.000000000 +0100
+++ new-repl/src/repl.lisp 2014-10-30 07:04:37.000000000 +0100
@@ -2,18 +2,18 @@
(defvar *qt-eval*)
-(defvar *result*)
-
(defclass qt-eval (qt:object)
((eval-slot :initform (qt:make-slot
#'(lambda (form)
- (setf *result*
- (multiple-value-list (eval form))))
+ (setf (result *qt-eval*) (multiple-value-list (eval form))
+ (new-package *qt-eval*) *package*))
'(t))
:reader eval-slot)
(eval-signal :initform (qt:make-signal t)
:reader eval-signal
- :documentation "Send an form to evaluate."))
+ :documentation "Send an form to evaluate.")
+ (result :accessor result)
+ (package :accessor new-package))
(:metaclass cxx:class))
(defmethod initialize-instance :after ((qt-eval qt-eval) &key &allow-other-keys)
@@ -22,7 +22,8 @@
(defun qt-eval (form)
"Returns the result of FORM evaluated in the event loop thread."
(funcall (eval-signal *qt-eval*) form)
- (values-list *result*))
+ (setf *package* (new-package *qt-eval*))
+ (values-list (result *qt-eval*)))
(defun end-event-loop ()
(setf (fdefinition 'swank::eval-region)