(in-package :contextl)
-
+(defmethod contextl:layer-name :around (layer)
+ (or (call-next-method) layer))
;;; HACK:
;;; Since i'm not using deflayer, ensure-layer etc,
(call-next-method)))
-;;; HACK: We are ending up with classes named NIL in the superclass list.
+;;; HACK: There are classes named NIL (partial classes) in the superclass list.
;;; These cannot be given the special object superclass when re-initializing
;;; is it will be in the subclasses superclasses AFTER this class, causing
;;; a confict.
(in-package :lisp-on-lines-ucw)
+(defmacro dlambda ((&rest args) &body body)
+ (let ((env (gensym)))
+ `(let ((,env (capture-dynamic-environment)))
+ (lambda (,@args)
+ (with-dynamic-environment (,env)
+ ,@body)))))
+
+(export '(dlambda) :lisp-on-lines-ucw)
+
(defclass contextl-application (standard-application)
()
(:default-initargs
(with-dynamic-environment ((action-dynamic-environment action))
(call-next-method)))
-(defmethod ucw-core:call-callbacks ((action contextl-action) frame request)
+(defmethod ucw-core:call-callbacks :around ((action contextl-action) frame request)
(with-dynamic-environment ((action-dynamic-environment action))
(call-next-method)))
+
(defclass contextl-component (standard-component)
((component-dynamic-environment :accessor component-dynamic-environment
:initform nil))
()
(:default-initargs :action-class 'lisp-on-lines-action))
-(defclass lisp-on-lines-action (contextl-action)
+(defclass lisp-on-lines-action (action-with-isolation-support contextl-action )
()
(:metaclass closer-mop:funcallable-standard-class))