From jewel at subvert-the-dominant-paradigm.net Thu Aug 31 05:50:45 2006 From: jewel at subvert-the-dominant-paradigm.net (John Leuner) Date: Thu, 31 Aug 2006 11:20:45 +0530 Subject: [cl-unification-devel] Problems unifying with a list Message-ID: <1157003445.26867.4.camel@localhost.localdomain> 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 (#) Backtrace: 0: ((SB-PCL::FAST-METHOD CL.EXT.DACF.UNIFICATION:UNIFY (T T)) # # 1 CL.EXT.DACF.UNIFICATION:MAKE-TEMPLATE (# # (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)) # # References: <1157003445.26867.4.camel@localhost.localdomain> Message-ID: <44F70371.4020509@cs.nyu.edu> 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 (# "repl-thread" {C74F071}>) > > Backtrace: > 0: ((SB-PCL::FAST-METHOD CL.EXT.DACF.UNIFICATION:UNIFY (T T)) > # # 1 > CL.EXT.DACF.UNIFICATION:MAKE-TEMPLATE (# 1: ((SB-PCL::FAST-METHOD CL.EXT.DACF.UNIFICATION:UNIFY (LIST LIST)) > # # (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)) > # # 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 at common-lisp.net > http://common-lisp.net/mailman/listinfo/cl-unification-devel