(union, member-if, mapcon, last): Remove compiler macros.
authoryamaoka <yamaoka>
Tue, 25 Apr 2000 03:30:12 +0000 (03:30 +0000)
committeryamaoka <yamaoka>
Tue, 25 Apr 2000 03:30:12 +0000 (03:30 +0000)
lisp/dgnushack.el

index 496935d..7e1fdb1 100644 (file)
 
 (push "/usr/share/emacs/site-lisp" load-path)
 
-(unless (featurep 'xemacs)
-  (define-compiler-macro last (&whole form x &optional n)
-    (if (and (fboundp 'last)
-            (subrp (symbol-function 'last)))
-       form
-      (if n
-         `(let* ((x ,x)
-                 (n ,n)
-                 (m 0)
-                 (p x))
-            (while (consp p)
-              (incf m)
-              (pop p))
-            (if (<= n 0)
-                p
-              (if (< n m)
-                  (nthcdr (- m n) x)
-                x)))
-       `(let ((x ,x))
-          (while (consp (cdr x))
-            (pop x))
-          x))))
-
-  (define-compiler-macro mapcon (&whole form fn seq &rest rest)
-    (if (and (fboundp 'mapcon)
-            (subrp (symbol-function 'mapcon)))
-       form
-      (if rest
-         `(let (res
-                (args (list ,seq ,@rest))
-                p)
-            (while (not (memq nil args))
-              (push (apply ,fn args) res)
-              (setq p args)
-              (while p
-                (setcar p (cdr (pop p)))
-                ))
-            (apply (function nconc) (nreverse res)))
-       `(let (res
-              (arg ,seq))
-          (while arg
-            (push (funcall ,fn arg) res)
-            (setq arg (cdr arg)))
-          (apply (function nconc) (nreverse res))))))
-
-  (define-compiler-macro member-if (&whole form pred list)
-    (if (and (fboundp 'member-if)
-            (subrp (symbol-function 'member-if)))
-       form
-      `(let ((fn ,pred)
-            (seq ,list))
-        (while (and seq
-                    (not (funcall fn (car seq))))
-          (pop seq))
-        seq)))
-
-  (define-compiler-macro union (&whole form list1 list2)
-    (if (and (fboundp 'union)
-            (subrp (symbol-function 'union)))
-       form
-      `(let ((a ,list1)
-            (b ,list2))
-        (cond ((null a) b)
-              ((null b) a)
-              ((equal a b) a)
-              (t
-               (or (>= (length a) (length b))
-                   (setq a (prog1 b (setq b a))))
-               (while b
-                 (or (memq (car b) a)
-                     (push (car b) a))
-                 (pop b))
-               a)))))
-  )
-
 ;; If we are building w3 in a different directory than the source
 ;; directory, we must read *.el from source directory and write *.elc
 ;; into the building directory.  For that, we define this function