comparison tests/automated/lisp-tests.el @ 5374:d967d96ca043

Conditionalise the old-* functions and byte codes at compile time. src/ChangeLog addition: 2011-03-15 Aidan Kehoe <kehoea@parhasard.net> * config.h.in (SUPPORT_CONFOUNDING_FUNCTIONS): New #define, equivalent NEED_TO_HANDLE_21_4_CODE by default, describing whether this XEmacs should support the old-eq, old-equal and related functions and byte codes. * bytecode.c (UNUSED): Only interpret old-eq, old-equal, old-memq if SUPPORT_CONFOUNDING_FUNCTIONS is defined. * data.c: Move Fold_eq to fns.c with the rest of the Fold_* functions. * fns.c: * fns.c (Fmemq): * fns.c (memq_no_quit): * fns.c (assoc_no_quit): * fns.c (Frassq): * fns.c (Fequal): * fns.c (Fold_equal): * fns.c (syms_of_fns): Group old-eq, old-equal, old-memq etc together, surround them with #ifdef SUPPORT_CONFOUNDING_FUNCTIONS. lisp/ChangeLog addition: 2011-03-15 Aidan Kehoe <kehoea@parhasard.net> * bytecomp.el: Don't generate the old-eq, old-memq, old-equal bytecodes any more, but keep the information about them around for the sake of the disassembler. man/ChangeLog addition: 2011-03-15 Aidan Kehoe <kehoea@parhasard.net> * lispref/objects.texi (Character Type): * lispref/objects.texi (Equality Predicates): No longer document `old-eq', `old-equal', they haven't been used in years. tests/ChangeLog addition: 2011-03-17 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-tests.el: Only test the various old-* function if old-eq is bound and a subr.
author Aidan Kehoe <kehoea@parhasard.net>
date Thu, 17 Mar 2011 20:13:00 +0000
parents 4c4b96b13f70
children 97ac18bd1fa3 ac37a5f7e5be
comparison
equal deleted inserted replaced
5372:6c3a695f54f5 5374:d967d96ca043
794 (Check-Error wrong-number-of-arguments (,fun)) 794 (Check-Error wrong-number-of-arguments (,fun))
795 (Check-Error wrong-number-of-arguments (,fun nil)) 795 (Check-Error wrong-number-of-arguments (,fun nil))
796 (Check-Error (malformed-list wrong-type-argument) (,fun nil 1)) 796 (Check-Error (malformed-list wrong-type-argument) (,fun nil 1))
797 ,@(loop for n in '(1 2 2000) 797 ,@(loop for n in '(1 2 2000)
798 collect `(Check-Error circular-list (,fun 1 (make-circular-list ,n)))))) 798 collect `(Check-Error circular-list (,fun 1 (make-circular-list ,n))))))
799 (test-funs (&rest funs) `(progn ,@(loop for fun in funs collect `(test-fun ,fun))))) 799 (test-funs (&rest funs) `(progn ,@(loop for fun in funs collect `(test-fun ,fun))))
800 800 (test-old-funs (&rest funs)
801 `(when (and (fboundp 'old-eq) (subrp (symbol-function 'old-eq)))
802 ,@(loop for fun in funs collect `(test-fun ,fun)))))
801 (test-funs member* member memq 803 (test-funs member* member memq
802 assoc* assoc assq 804 assoc* assoc assq
803 rassoc* rassoc rassq 805 rassoc* rassoc rassq
804 delete* delete delq 806 delete* delete delq
805 remove* remove remq 807 remove* remove remq
806 old-member old-memq 808 remassoc remassq remrassoc remrassq)
807 old-assoc old-assq 809 (test-old-funs old-member old-memq old-assoc old-assq old-rassoc old-rassq
808 old-rassoc old-rassq 810 old-delete old-delq))
809 old-delete old-delq
810 remassoc remassq remrassoc remrassq))
811 811
812 (let ((x '((1 . 2) 3 (4 . 5)))) 812 (let ((x '((1 . 2) 3 (4 . 5))))
813 (Assert (eq (assoc 1 x) (car x))) 813 (Assert (eq (assoc 1 x) (car x)))
814 (Assert (eq (assq 1 x) (car x))) 814 (Assert (eq (assq 1 x) (car x)))
815 (Assert (eq (rassoc 1 x) nil)) 815 (Assert (eq (rassoc 1 x) nil))
889 889
890 (Assert (let* ((x (a)) (y (remassoc 6 x))) (and (eq x y) (equal y (a))))) 890 (Assert (let* ((x (a)) (y (remassoc 6 x))) (and (eq x y) (equal y (a)))))
891 (Assert (let* ((x (a)) (y (remassq 6 x))) (and (eq x y) (equal y (a))))) 891 (Assert (let* ((x (a)) (y (remassq 6 x))) (and (eq x y) (equal y (a)))))
892 (Assert (let* ((x (a)) (y (remrassoc 6 x))) (and (eq x y) (equal y (a))))) 892 (Assert (let* ((x (a)) (y (remrassoc 6 x))) (and (eq x y) (equal y (a)))))
893 (Assert (let* ((x (a)) (y (remrassq 6 x))) (and (eq x y) (equal y (a))))) 893 (Assert (let* ((x (a)) (y (remrassq 6 x))) (and (eq x y) (equal y (a)))))
894
895 (Assert (let* ((x (a)) (y (delete 3 x))) (and (eq x y) (equal y '((1 . 2) (4 . 5)))))) 894 (Assert (let* ((x (a)) (y (delete 3 x))) (and (eq x y) (equal y '((1 . 2) (4 . 5))))))
896 (Assert (let* ((x (a)) (y (delq 3 x))) (and (eq x y) (equal y '((1 . 2) (4 . 5)))))) 895 (Assert (let* ((x (a)) (y (delq 3 x))) (and (eq x y) (equal y '((1 . 2) (4 . 5))))))
897 (Assert (let* ((x (a)) (y (old-delete 3 x))) (and (eq x y) (equal y '((1 . 2) (4 . 5))))))
898 (Assert (let* ((x (a)) (y (old-delq 3 x))) (and (eq x y) (equal y '((1 . 2) (4 . 5))))))
899
900 (Assert (let* ((x (a)) (y (delete '(1 . 2) x))) (and (not (eq x y)) (equal y '(3 (4 . 5)))))) 896 (Assert (let* ((x (a)) (y (delete '(1 . 2) x))) (and (not (eq x y)) (equal y '(3 (4 . 5))))))
901 (Assert (let* ((x (a)) (y (delq '(1 . 2) x))) (and (eq x y) (equal y (a))))) 897 (Assert (let* ((x (a)) (y (delq '(1 . 2) x))) (and (eq x y) (equal y (a)))))
902 (Assert (let* ((x (a)) (y (old-delete '(1 . 2) x))) (and (not (eq x y)) (equal y '(3 (4 . 5)))))) 898 (when (and (fboundp 'old-eq) (subrp (symbol-function 'old-eq)))
903 (Assert (let* ((x (a)) (y (old-delq '(1 . 2) x))) (and (eq x y) (equal y (a))))) 899 (Assert (let* ((x (a)) (y (old-delete '(1 . 2) x))) (and (not (eq x y)) (equal y '(3 (4 . 5))))))
904 ) 900 (Assert (let* ((x (a)) (y (old-delq '(1 . 2) x))) (and (eq x y) (equal y (a)))))
905 901 (Assert (let* ((x (a)) (y (old-delete 3 x))) (and (eq x y) (equal y '((1 . 2) (4 . 5))))))
906 902 (Assert (let* ((x (a)) (y (old-delq 3 x))) (and (eq x y) (equal y '((1 . 2) (4 . 5))))))))
907 903
908 (flet ((a () (list '("1" . "2") "3" '("4" . "5")))) 904 (flet ((a () (list '("1" . "2") "3" '("4" . "5"))))
909 (Assert (let* ((x (a)) (y (remassoc "1" x))) (and (not (eq x y)) (equal y '("3" ("4" . "5")))))) 905 (Assert (let* ((x (a)) (y (remassoc "1" x))) (and (not (eq x y)) (equal y '("3" ("4" . "5"))))))
910 (Assert (let* ((x (a)) (y (remassq "1" x))) (and (eq x y) (equal y (a))))) 906 (Assert (let* ((x (a)) (y (remassq "1" x))) (and (eq x y) (equal y (a)))))
911 (Assert (let* ((x (a)) (y (remrassoc "1" x))) (and (eq x y) (equal y (a))))) 907 (Assert (let* ((x (a)) (y (remrassoc "1" x))) (and (eq x y) (equal y (a)))))