Hello cl-unification-devel,
The MATCH macro is currently broken with respect to `#T' templates:
CL-USER> (unify::match (#T(list ?x &rest ?rest) '(1 2 3 4)) ?x) NIL
Attached is a patch that fixes this problem.
Thanks
I will apply it asap.
Cheers
Marco
On Oct 19, 2006, at 4:44 PM, Vladimir V. Korablin wrote:
Hello cl-unification-devel,
The MATCH macro is currently broken with respect to `#T' templates:
CL-USER> (unify::match (#T(list ?x &rest ?rest) '(1 2 3 4)) ?x) NIL
Attached is a patch that fixes this problem.
-- Best regards, Vladimir mailto:vkorablin@lemial.net<cl- unification.patch>_______________________________________________ cl-unification-devel site list cl-unification-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cl-unification-devel
Marco Antoniotti
The following test case still fails (with this patch),
(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)))
Any ideas on how to fix it?
John
On Oct 19, 2006, at 4:44 PM, Vladimir V. Korablin wrote:
Hello cl-unification-devel,
The MATCH macro is currently broken with respect to `#T' templates:
CL-USER> (unify::match (#T(list ?x &rest ?rest) '(1 2 3 4)) ?x) NIL
Attached is a patch that fixes this problem.
-- Best regards, Vladimir mailto:vkorablin@lemial.net<cl- unification.patch>_______________________________________________ cl-unification-devel site list cl-unification-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cl-unification-devel
Marco Antoniotti
cl-unification-devel site list cl-unification-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cl-unification-devel
This is because of the wrong patch that was put in in order to circumvent SBCL (convincingly right) fascist attitude toward in-line objects. TRTTD is to define a proper MAKE-LOAD form for #T macros. I have it working in my codebase, but I have not put it in the repository yet. It will be done ASAP (promise!)
Cheers
Marco
On Oct 24, 2006, at 8:02 AM, John Leuner wrote:
The following test case still fails (with this patch),
(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)))
Any ideas on how to fix it?
John
On Oct 19, 2006, at 4:44 PM, Vladimir V. Korablin wrote:
Hello cl-unification-devel,
The MATCH macro is currently broken with respect to `#T' templates:
CL-USER> (unify::match (#T(list ?x &rest ?rest) '(1 2 3 4)) ?x) NIL
Attached is a patch that fixes this problem.
-- Best regards, Vladimir mailto:vkorablin@lemial.net<cl- unification.patch>_______________________________________________ cl-unification-devel site list cl-unification-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cl-unification-devel
Marco Antoniotti
cl-unification-devel site list cl-unification-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cl-unification-devel
cl-unification-devel site list cl-unification-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cl-unification-devel
Marco Antoniotti
cl-unification-devel@common-lisp.net