The attached code fails in SBCL with:
Cannot unify a BIT and a SYMBOL: 1 CL.EXT.DACF.UNIFICATION:MAKE-TEMPLATE. [Condition of type CL.EXT.DACF.UNIFICATION::UNIFICATION-FAILURE]
Restarts: 0: [ABORT-REQUEST] Abort handling SLIME request. 1: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" {C74F071}>)
Backtrace: 0: ((SB-PCL::FAST-METHOD CL.EXT.DACF.UNIFICATION:UNIFY (T T)) #<unavailable argument> #<unavailable argument> 1 CL.EXT.DACF.UNIFICATION:MAKE-TEMPLATE (#<EMPTY UNIFY E$ 1: ((SB-PCL::FAST-METHOD CL.EXT.DACF.UNIFICATION:UNIFY (LIST LIST)) #<unavailable argument> #<unavailable argument> (1 2 3) (CL.EXT.DACF.UNIFICATION:MAKE-TEMPLATE (QU$ 2: ((SB-PCL::FAST-METHOD CL.EXT.DACF.UNIFICATION:UNIFY (STANDARD-OBJECT CL.EXT.DACF.UNIFICATION::STANDARD-OBJECT-TEMPLATE)) #<unavailable argument> #<unavailable argu$ 3: (TEST)
John
Hi
this is a consequence of the change that was introduced in the last round the "inner" template is not evaluated.
Let me see if there is an easy fix for this.
Marco
John Leuner wrote:
The attached code fails in SBCL with:
Cannot unify a BIT and a SYMBOL: 1 CL.EXT.DACF.UNIFICATION:MAKE-TEMPLATE. [Condition of type CL.EXT.DACF.UNIFICATION::UNIFICATION-FAILURE]
Restarts: 0: [ABORT-REQUEST] Abort handling SLIME request. 1: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" {C74F071}>)
Backtrace: 0: ((SB-PCL::FAST-METHOD CL.EXT.DACF.UNIFICATION:UNIFY (T T)) #<unavailable argument> #<unavailable argument> 1 CL.EXT.DACF.UNIFICATION:MAKE-TEMPLATE (#<EMPTY UNIFY E$ 1: ((SB-PCL::FAST-METHOD CL.EXT.DACF.UNIFICATION:UNIFY (LIST LIST)) #<unavailable argument> #<unavailable argument> (1 2 3) (CL.EXT.DACF.UNIFICATION:MAKE-TEMPLATE (QU$ 2: ((SB-PCL::FAST-METHOD CL.EXT.DACF.UNIFICATION:UNIFY (STANDARD-OBJECT CL.EXT.DACF.UNIFICATION::STANDARD-OBJECT-TEMPLATE)) #<unavailable argument> #<unavailable argu$ 3: (TEST)
John
(defclass test1 () ((a :initarg :a :accessor a) (b :initarg :b :accessor b)))
(defun test () (let ((env (unify:unify #T(test1 a #T(list 1 ?x 3 &rest) b "woot") (make-instance 'test1 :a '(1 2 3) :b "woot")))) (unify:find-variable-value '?x env)))
cl-unification-devel site list cl-unification-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cl-unification-devel
cl-unification-devel@common-lisp.net