Thu Jan 21 01:56:47 UTC 2010 pix@kepibu.org
* Rather than a new UNIFY** function, make UNIFY* work that way
Let errors which are not UNIFICATION-FAILUREs find their way out of UNIFY*.
diff -rN -u old-cl-unification-1/match-block.lisp new-cl-unification-1/match-block.lisp
--- old-cl-unification-1/match-block.lisp 2013-07-21 19:26:03.000000000 +0000
+++ new-cl-unification-1/match-block.lisp 2013-07-21 19:26:03.000000000 +0000
@@ -167,7 +167,7 @@
(let ((template (%template-for-match template))
)
`((setf ,clause-var
- (unify** ,template ,object ,substitution))
+ (unify* ,template ,object ,substitution))
,(%wrap-var-bindings template clause-var forms))
))
diff -rN -u old-cl-unification-1/unifier.lisp new-cl-unification-1/unifier.lisp
--- old-cl-unification-1/unifier.lisp 2013-07-21 19:26:03.000000000 +0000
+++ new-cl-unification-1/unifier.lisp 2013-07-21 19:26:03.000000000 +0000
@@ -857,9 +857,6 @@
;;; Utilities.
(defun unify* (a b &optional (env (make-empty-environment)))
- (ignore-errors (unify a b env)))
-
-(defun unify** (a b &optional (env (make-empty-environment)))
(handler-case
(unify a b env)
(unification-failure (c) (values nil c))))