Advertisement
logicmoo

Untitled

Sep 2nd, 2014
516
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;;Saved into a file called common_lisp.lisp <?
  2.  
  3.  
  4. ;; ussually CYC
  5. (defvar *cl-importing-package* *package*)
  6.  
  7. ;;(in-package "SUBLISP")
  8. (defmacro prog1 (body1 &body body) (ret `(clet ((prog1res ,body1)) ,@body prog1res)))
  9.  
  10.  
  11. (sl:defmacro defun (symbolp args sl:&body body)
  12.              (ret `(progn  
  13.                      ;; (sl::export '(,symbolp))
  14.                      (format t ";; ~A cl-defun \"~A\" ~S " ,(package-name  *package* )',symbolp ',args) (terpri)(force-output)
  15.  
  16.                      (sl::define ,symbolp ,args (ret (progn ,@body))))))
  17.  
  18. (sl:defmacro cl-defun (symbolp args sl:&body body)
  19.              (ret `(progn  
  20.                      ;; (sl::export '(,symbolp))
  21.                      (format t ";; ~A cl-defun \"~A\" ~S " ,(package-name  *package* )',symbolp ',args) (terpri)(force-output)
  22.                      (sl::define ,symbolp ,args (ret (progn ,@body))))))
  23.  
  24. ;;(sl::in-package "CL")
  25. ;;(sl::import '(defun defmacro) *cl-package*)
  26. (defmacro cl-defmacro (symbolp args sl:&body body)
  27.   (ret `(progn  
  28.           ;; (sl::export '(,symbolp))
  29.           (format t ";; ~A defmacro-like-cl \"~A\" ~S " ,(package-name *package* )',symbolp ',args) (terpri)(force-output)
  30.           ( sl::defmacro ,symbolp ,args (ret (progn ,@body))))))
  31.  
  32. ;;(sl::export '(cl::defmacro-like-cl) *cl-package*)
  33.  
  34.  
  35. (cl-defmacro memq (item my-list)
  36.              `(member ,item ,my-list :test #'eq))
  37.  
  38. (defun cons-when (cond f)
  39.     (if (and cond f) (cons cond f ) nil))
  40.  
  41.  
  42. (defun ele (num obj)
  43.   (cond
  44.     ((vectorp obj)(aref obj num))
  45.     ((listp obj)(nth num obj))
  46.     ((iterator-p obj)(ele num (ITERATOR-VALUE-LIST  (COPY-ITERATOR obj))))
  47.     ((SET-P obj)(ele num (SET-ELEMENT-LIST obj)))
  48.     ((SET-CONTENTS-P obj)(ele num (SET-CONTENTS-ELEMENT-LIST obj)))
  49.     ))
  50.  
  51. #|
  52. ;; (cl-rewrite-function 'set-dispatch-macro-character)
  53.  
  54. (cl-defmacro psetq (&rest pairs)
  55.              ;; not use reverse for build order consistency
  56.              (do* ((pairs pairs (cddr pairs))
  57.                    (tmp (gensym) (gensym))
  58.                    (inits (list nil))
  59.                    (inits-splice inits)
  60.                    (setqs (list nil))
  61.                    (setqs-splice setqs))
  62.                   ((null pairs) (when (cdr inits)
  63.                                   `(let ,(cdr inits)
  64.                                      (setq ,@(cdr setqs))
  65.                                      nil)))
  66.                (setq inits-splice
  67.                      (cdr (rplacd inits-splice (list (list tmp (cadr pairs)))))
  68.                    setqs-splice
  69.                      (cddr (rplacd setqs-splice (list (car pairs) tmp))))))
  70.  
  71.  
  72. (cl-defmacro return (&optional result)
  73.              `(return-from nil ,result))
  74.  
  75. (defun equal (x y)
  76.   (cond
  77.    ((eql x y) t)
  78.    ((consp x) (and (consp y) (equal (car x) (car y)) (equal (cdr x) (cdr y))))
  79.    ((stringp x) (and (stringp y) (string= x y)))
  80.    ((bit-vector-p x) (and (bit-vector-p y) (= (length x) (length y))
  81.                           (dotimes (i (length x) t)
  82.                             (unless (eql (aref x i) (aref y i))
  83.                               (return nil)))))
  84.    ((pathnamep x) (and (pathnamep y)
  85.                        (equal (pathname-host x) (pathname-host y))
  86.                        (equal (pathname-device x) (pathname-device y))
  87.                        (equal (pathname-directory x) (pathname-directory y))
  88.                        (equal (pathname-name x) (pathname-name y))
  89.                        (equal (pathname-type x) (pathname-type y))
  90.                        (equal (pathname-version x) (pathname-version y))))
  91.    (t nil)))
  92. |#
  93. #|
  94. (defun identity (object)
  95.   object)
  96.  
  97. (defun complement (function)
  98.   #'(lambda (&rest arguments) (not (apply function arguments))))
  99.  
  100. (defun constantly (object)
  101.   #'(lambda (&rest arguments)
  102.       (declare (ignore arguments))
  103.       object))
  104.  
  105. (cl-defmacro and (&rest forms)
  106.              (cond
  107.               ((null forms) t)
  108.               ((null (cdr forms)) (car forms))
  109.               (t `(when ,(car forms)
  110.                     (and ,@(cdr forms))))))
  111.  
  112. (cl-defmacro or (&rest forms)
  113.              (cond
  114.               ((null forms) nil)
  115.               ((null (cdr forms)) (car forms))
  116.               (t (let ((tmp (gensym)))
  117.                    `(let ((,tmp ,(car forms)))
  118.                       (if ,tmp
  119.                           ,tmp
  120.                         (or ,@(cdr forms))))))))
  121.  
  122. (cl-defmacro cond (&rest clauses)
  123.              (when clauses
  124.                (let ((test1 (caar clauses))
  125.                      (forms1 (cdar clauses)))
  126.                  (if forms1
  127.                      `(if ,test1
  128.                           (progn ,@forms1)
  129.                         (cond ,@(cdr clauses)))
  130.                    (let ((tmp (gensym)))
  131.                      `(let ((,tmp ,test1))
  132.                         (if ,tmp
  133.                             ,tmp
  134.                           (cond ,@(cdr clauses)))))))))
  135.  
  136. (cl-defmacro when (test-form &rest forms)
  137.              `(if ,test-form
  138.                   (progn ,@forms)
  139.                 nil))
  140.  
  141. (cl-defmacro unless (test-form &rest forms)
  142.              `(if ,test-form
  143.                   nil
  144.                 (progn ,@forms)))
  145.  
  146. ;;(defmacro block-to-tagname (bname) (ret `(gensym ',bname)))
  147. (defmacro block-to-tagname (bname) (print (ret `',bname)))
  148.  
  149. (cl-defmacro case (keyform &rest clauses)(expand-case keyform clauses))
  150.  
  151. (cl-defmacro ccase (keyplace &rest clauses)
  152.              (let* ((clauses (mapcar #'(lambda (clause)
  153.                                          (let ((key (first clause))
  154.                                                (forms (rest clause)))
  155.                                            `(,(%list key) ,@forms)))
  156.                                clauses))
  157.                     (expected-type `(member ,@(apply #'append (mapcar #'car clauses))))
  158.                     (block-name (gensym))
  159.                     (tag (gensym)))
  160.                `(block ,block-name
  161.                   (tagbody
  162.                     ,tag
  163.                     (return-from ,block-name
  164.                       (case ,keyplace
  165.                         ,@clauses
  166.                         (t (restart-case (error 'type-error :datum ,keyplace
  167.                                            :expected-type ',expected-type)
  168.                              (store-value (value)
  169.                                           :report (lambda (stream)
  170.                                                     (store-value-report stream ',keyplace))
  171.                                           :interactive store-value-interactive
  172.                                           (setf ,keyplace value)
  173.                                           (go ,tag))))))))))
  174.  
  175.  
  176. (cl-defmacro ecase (keyform &rest clauses)
  177.              (let* ((clauses (mapcar #'(lambda (clause)
  178.                                          (let ((key (first clause))
  179.                                                (forms (rest clause)))
  180.                                            `(,(%list key) ,@forms)))
  181.                                clauses))
  182.                     (expected-type `(member ,@(apply #'append (mapcar #'car clauses)))))
  183.                `(case ,keyform
  184.                   ,@clauses
  185.                   (t (error 'type-error :datum ,keyform :expected-type ',expected-type)))))
  186.  
  187. (cl-defmacro typecase (keyform &rest clauses)
  188.              (let* ((last (car (last clauses)))
  189.                     (clauses (mapcar #'(lambda (clause)
  190.                                          (let ((type (first clause))
  191.                                                (forms (rest clause)))
  192.                                            (if (and (eq clause last)
  193.                                                     (member type '(otherwise t)))
  194.                                                clause
  195.                                              `((,type) ,@forms))))
  196.                                clauses)))
  197.                (expand-case keyform clauses :test #'typep)))
  198.  
  199. (cl-defmacro ctypecase (keyplace &rest clauses)
  200.              (let ((expected-type `(or ,@(mapcar #'car clauses)))
  201.                    (block-name (gensym))
  202.                    (tag (gensym)))
  203.                `(block ,block-name
  204.                   (tagbody
  205.                     ,tag
  206.                     (return-from ,block-name
  207.                       (typecase ,keyplace
  208.                         ,@clauses
  209.                         (t (restart-case (error 'type-error
  210.                                            :datum ,keyplace
  211.                                            :expected-type ',expected-type)
  212.                              (store-value (value)
  213.                                           :report (lambda (stream)
  214.                                                     (store-value-report stream ',keyplace))
  215.                                           :interactive store-value-interactive
  216.                                           (setf ,keyplace value)
  217.                                           (go ,tag))))))))))
  218.  
  219.  
  220.  
  221. (cl-defmacro etypecase (keyform &rest clauses)
  222.              `(typecase ,keyform
  223.                 ,@clauses
  224.                 (t (error 'type-error
  225.                      :datum ',keyform :expected-type '(or ,@(mapcar #'car clauses))))))
  226. |#
  227. #|
  228. (cl-defmacro multiple-value-bind (vars values-form &body body)
  229.              (cond
  230.               ((null vars)
  231.                `(progn ,@body))
  232.               ((null (cdr vars))
  233.                `(let ((,(car vars) ,values-form))
  234.                   ,@body))
  235.               (t
  236.                (let ((rest (gensym)))
  237.                  `(multiple-value-call #'(lambda (&optional ,@vars &rest ,rest)
  238.                                            (declare (ignore ,rest))
  239.                                            ,@body)
  240.                     ,values-form)))))
  241.  
  242.  
  243.  
  244. (cl-defmacro multiple-value-list (form)
  245.              `(multiple-value-call #'list ,form))
  246.  
  247.  
  248. (cl-defmacro multiple-value-setq (vars form)
  249.              `(values (setf (values ,@vars) ,form)))
  250. ;;  (let ((temps (mapcar #'(lambda (x) (declare (ignore x)) (gensym)) vars)))
  251. ;;    `(multiple-value-bind ,temps ,form
  252. ;;       (setq ,@(mapcan #'(lambda (var temp) (list var temp)) vars temps))
  253. ;;       ,(car temps))))
  254.  
  255. (defun values-list (list)
  256.   (check-type list proper-list)
  257.   (apply #'values list))
  258.  
  259. (cl-defmacro nth-value (n form)
  260.              `(nth ,n (multiple-value-list ,form)))
  261.  
  262. (define-setf-expander values (&rest places &environment env)
  263.   (let (all-temps all-vars 1st-newvals rest-newvals all-setters all-getters)
  264.     (dolist (place places)
  265.       (multiple-value-bind (temps vars newvals setter getter)
  266.           (get-setf-expansion place env)
  267.         (setq all-temps    (cons temps all-temps)
  268.             all-vars     (cons vars all-vars)
  269.             1st-newvals  (cons (car newvals) 1st-newvals)
  270.             rest-newvals (cons (cdr newvals) rest-newvals)
  271.             all-setters  (cons setter all-setters)
  272.             all-getters  (cons getter all-getters))))
  273.     (values (apply #'append (reverse (append rest-newvals all-temps)))
  274.             (append (apply #'append (reverse all-vars))
  275.                     (make-list (reduce #'+ rest-newvals :key #'length)))
  276.             (reverse 1st-newvals)
  277.             `(values ,@(reverse all-setters))
  278.             `(values ,@(reverse all-getters)))))
  279. ;;(define-setf-expander apply (function &rest args)
  280. ;;  (assert (and (listp function)
  281. ;;               (= (list-length function) 2)
  282. ;;               (eq (first function) 'function)
  283. ;;               (symbolp (second function))))
  284. ;;  (let ((function (cadr function))
  285. ;;        (newvals (list (gensym)))
  286. ;;        (temps (mapcar #'(lambda (arg) (gensym)) args)))
  287. ;;    (values temps
  288. ;;            args
  289. ;;            newvals
  290. ;;            `(apply #'(setf ,function) ,(car newvals) ,@vars)
  291. ;;            `(apply #',function ,@temps))))
  292.  
  293. (cl-defmacro prog (vars &body body)
  294.              (flet ((declare-p (expr)
  295.                                (and (consp expr) (eq (car expr) 'declare))))
  296.                (do ((decls nil)
  297.                     (forms body (cdr forms)))
  298.                    ((not (declare-p (car forms))) `(block nil
  299.                                                      (let ,vars
  300.                                                        ,@(reverse decls)
  301.                                                        (tagbody ,@forms))))
  302.                  (push (car forms) decls))))
  303.  
  304. (cl-defmacro prog* (vars &body body)
  305.              (multiple-value-bind (decls forms) (split-into-declarations-and-forms body)
  306.                `(block nil
  307.                   (let* ,vars
  308.                     ,@(reverse decls)
  309.                     (tagbody ,@forms)))))
  310.  
  311. (cl-defmacro prog1 (first-form &rest more-forms)
  312.              (let ((result (gensym)))
  313.                `(let ((,result ,first-form))
  314.                   ,@more-forms
  315.                   ,result)))
  316.  
  317. (cl-defmacro prog2 (first-form second-form &rest more-forms)
  318.              `(prog1 (progn ,first-form ,second-form) ,@more-forms))
  319.  
  320.  
  321. (cl-defmacro setf (&rest pairs &environment env)
  322.              (let ((nargs (length pairs)))
  323.                (assert (evenp nargs))
  324.                (cond
  325.                 ((zerop nargs) nil)
  326.                 ((= nargs 2)
  327.                  (let ((place (car pairs))
  328.                        (value-form (cadr pairs)))
  329.                    (cond
  330.                     ((symbolp place)
  331.                      `(setq ,place ,value-form))
  332.                     ((consp place)
  333.                      (if (eq (car place) 'the)
  334.                          `(setf ,(caddr place) (the ,(cadr place) ,value-form))
  335.                        (multiple-value-bind (temps vars newvals setter getter)
  336.                            (get-setf-expansion place env)
  337.                          (declare (ignore getter))
  338.                          `(let (,@(mapcar #'list temps vars))
  339.                             (multiple-value-bind ,newvals ,value-form
  340.                               ,setter))))))))
  341.                 (t
  342.                  (do* ((pairs pairs (cddr pairs))
  343.                        (setfs (list 'progn))
  344.                        (splice setfs))
  345.                       ((endp pairs) setfs)
  346.                    (setq splice (cdr (rplacd splice
  347.                                              `((setf ,(car pairs) ,(cadr pairs)))))))))))
  348.  
  349. (cl-defmacro psetf (&rest pairs &environment env)
  350.              (let ((nargs (length pairs)))
  351.                (assert (evenp nargs))
  352.                (if (< nargs 4)
  353.                    `(progn (setf ,@pairs) nil)
  354.                  (let ((setters nil))
  355.                    (labels ((expand (pairs)
  356.                                     (if pairs
  357.                                         (multiple-value-bind (temps vars newvals setter getter)
  358.                                             (get-setf-expansion (car pairs) env)
  359.                                           (declare (ignore getter))
  360.                                           (setq setters (cons setter setters))
  361.                                           `(let (,@(mapcar #'list temps vars))
  362.                                              (multiple-value-bind ,newvals ,(cadr pairs)
  363.                                                ,(expand (cddr pairs)))))
  364.                                       `(progn ,@setters nil))))
  365.                      (expand pairs))))))
  366.  
  367. (cl-defmacro shiftf (&rest places-and-newvalue &environment env)
  368.              (let ((nargs (length places-and-newvalue)))
  369.                (assert (>= nargs 2))
  370.                (let ((place (car places-and-newvalue)))
  371.                  (multiple-value-bind (temps vars newvals setter getter)
  372.                      (get-setf-expansion place env)
  373.                    `(let (,@(mapcar #'list temps vars))
  374.                       (multiple-value-prog1 ,getter
  375.                         (multiple-value-bind ,newvals
  376.                             ,(if (= nargs 2)
  377.                                  (cadr places-and-newvalue)
  378.                                `(shiftf ,@(cdr places-and-newvalue)))
  379.                           ,setter)))))))
  380.  
  381. (cl-defmacro rotatef (&rest places &environment env)
  382.              (if (< (length places) 2)
  383.                  nil
  384.                (multiple-value-bind (temps vars newvals setter getter)
  385.                    (get-setf-expansion (car places) env)
  386.                  `(let (,@(mapcar #'list temps vars))
  387.                     (multiple-value-bind ,newvals (shiftf ,@(cdr places) ,getter)
  388.                       ,setter)
  389.                     nil))))
  390. |#
  391.  
  392. (defvar *eval-mode* (list :load-toplevel :execute) )
  393. (defmacro eval-when (when &body body) (ret `(if (intersection ',when *eval-mode*) (progn ,@body))))
  394.  
  395.  
  396. ;; transliterations
  397. (defmacro let (&body body) (ret `( clet ,@body)))
  398. (defmacro let* (&body body) (ret `( clet ,@body)))
  399. (defmacro dotimes (&body body) (ret `(cdotimes ,@body)))
  400. (defmacro case (&body body) (ret `( pcase ,@body)))
  401. (defmacro if (&body body) (ret `(fif ,@body)))
  402. (defmacro do (&body body) (ret `( cdo ,@body)))
  403. (defmacro not (&body body) (ret `(cnot ,@body)))
  404. (defmacro or (&body body) (ret `(cor ,@body)))
  405. (defmacro cond (&body body) (ret `( pcond ,@body)))
  406. (defmacro and (&body body) (ret `(cand ,@body)))
  407. (defmacro unless (&body body) (ret `(funless ,@body)))
  408. (defmacro when (&body body) (ret `(pwhen ,@body)))
  409. (defmacro setq (&body body) (ret `( csetq ,@body)))
  410. (defmacro setf (&body body) (ret `(csetf ,@body)))
  411. (defmacro pushnew (item place) (ret `(progn (cpushnew ,item ,place) ,place)))
  412. (defmacro push (&body body) (ret `(cpush ,@body)))
  413. (defmacro pop (place)
  414.   (ret `(let ((f1rst (elt ,place 0))) (CPOP) f1rst)))
  415. (defmacro concatenate (cltype &body args) (ret `(coerce (cconcatenate ,@args) ,cltype)))
  416.  
  417. ;;(defmacro until (test &body body)"Repeatedly evaluate BODY until TEST is true."(ret `(do ()(,test) ,@body)))
  418. (defmacro make-array (size &key initial-element ) (ret `(make-vector ,size  ,initial-element)))
  419.  
  420. (defmacro svref (array idx) (ret `(aref ,array ,idx)))
  421. ;;(defmacro incf (arg1 &body body) (ret `(fif (null body) (cincf arg1) (progn (cincf ,@body) ,@body)))
  422. (defmacro incf (&body body) (ret `(cinc ,@body)))
  423. (defmacro decf (&body body) (ret `(cdec ,@body)))
  424.  
  425. (defmacro unwind-protect (protected-form &body body) (ret `(cunwind-protect ,protected-form ,@body)))
  426. (defmacro destructuring-bind (args datum &body body) (ret `(cdestructuring-bind ,args ,datum  ,@body)))
  427. (defmacro multiple-value-bind (args datum &body body) (ret `(cmultiple-value-bind  ,args ,datum  ,@body)))
  428. (defmacro cmultiple-value-list (value &rest ignore) (ret `(multiple-value-list ,value)))
  429.  
  430. (defmacro debug-print (&body stuff)
  431.   (print stuff)(terpri)(force-output)
  432.   (pcond
  433.    ;; ((cdr stuff) (ret `(print (cons 'progn ,stuff))))
  434.    ;;  ((consp stuff) (ret `(print (cons 'prog1 ,stuff))))
  435.    (t (ret `(print (eval ',@stuff))))))
  436.  
  437. ;;(defmacro concat (&rest body) (ret `(progn (mapcar #'(lambda (x) (if (not (stringp x)) (debug-print (cons 'concat ',body)))) ,body)(apply #'cconcatenate (cons "" ,body)))))
  438. (define concat (&rest list) (ret (apply #'cconcatenate (cons "" (mapcar #'(lambda (x) (ret (if (stringp x) x (coerce x 'string) ))) list)))))
  439.  
  440.  
  441. (defmacro catch (tag &body body)
  442.   (ret
  443.    `(apply #'values  
  444.            (let ((*thrown* :UNTHROWN) (*result* :UNEVALED))
  445.              ;;(print (list 'eval (cons 'catch (cons ',tag  ',body))))(terpri)
  446.              (ccatch ,tag *thrown* (setq *result* (multiple-value-list (progn ,@body))))
  447.              (cond
  448.               ((equal *result* :UNEVALED) (list *thrown*))
  449.               (t *result*))))))
  450.  
  451. (define map-sequences (function sequences)
  452.   (ret (fif (member () sequences) () (cons (apply function (mapcar #'car sequences)) (map-sequences function (mapcar #'cdr sequences))))))
  453.  
  454. (define map (result-type function &body sequences)
  455.   (ret (fif result-type (coerce (map-sequences function sequences) result-type) (progn (map-sequences function sequences) nil))))
  456.  
  457. (define cl-make-string (&rest rest)
  458.   (ret (make-string (find 'numberp rest #'funcall)(find #'characterp rest 'funcall))))
  459.  
  460. ;;(define coerce (value result-type) (ret value))
  461. ;;are hashtables supposed ot be coercable back and forth from alists?
  462. (define coerce (value result-type)
  463.   (clet ((len value)(vtype (type-of value))(cltype result-type))
  464.         (pwhen (equal result-type vtype) (ret value))
  465.         (unless (cand (consp cltype) (setq len (second cltype)) (setq cltype (car cltype)))
  466.           (if (consp value) (setq len (length value))))
  467.         ;;     (print (list 'coerce value result-type cltype len))
  468.         (case cltype
  469.           ('t (ret value))
  470.           ('sequence
  471.            (if (sequencep value) (ret (copy-seq value)) (setq value (write-to-string value)))
  472.            (setq cltype (make-vector len))
  473.            (do ((idx 0 (+ 1 idx))) ((= idx len) (ret  cltype )) (set-aref cltype idx (elt value idx))))
  474.           ('character
  475.            (cond
  476.             ((characterp value) (ret value))
  477.             ((numberp value) (ret (code-char value)))
  478.             ((stringp value) (ret (char value 0)))
  479.             (t (ret (char (coerce value 'string ) 0)))))
  480.           ('number
  481.            (cond
  482.             ((numberp value) (ret value))
  483.             ((characterp value) (ret (char-code value)))
  484.             ((stringp value) (ret (string-to-number value)))
  485.             ;; not like CL
  486.             (t (ret (string-to-number (write-to-string value))))))
  487.           ('integer
  488.            (ret (round (coerce value 'number))))
  489.           ('fixnum
  490.            (ret (round (coerce value 'number))))
  491.           ('float
  492.            (ret (float (coerce value 'number))))
  493.           ('real
  494.            (ret (float (coerce value 'number))))
  495.           ('flonum
  496.            (ret (float (coerce value 'number))))
  497.           ('string
  498.            (cond
  499.             ((stringp value) (ret value))
  500.             ((characterp value) (ret (make-string 1 value)))
  501.             ((sequencep value) (setq cltype (make-string len))
  502.              (do ((idx 0 (+ 1 idx))) ((= idx len) (ret cltype )) (set-aref cltype idx (coerce (elt value idx) 'character))))
  503.             (t (ret (write-to-string value)))))
  504.           ('list
  505.            (cond
  506.             ((listp value) (ret list))
  507.             ((sequencep value)
  508.              (setq cltype nil)
  509.              (do ((idx len (- idx 1))) ((= idx 0) (ret  cltype )) (setq cltype (cons (elt value idx) cltype))))
  510.             (t
  511.              (setq cltype nil)
  512.              (setq value (write-to-string value))
  513.              (do ((idx len (- idx 1))) ((= idx 0) (ret  cltype )) (setq cltype (cons (elt value idx) cltype))))))
  514.           ('cons
  515.            (cond
  516.             ((listp value) (ret list))
  517.             ((sequencep value)
  518.              (setq cltype nil)
  519.              (do ((idx len (- idx 1))) ((= idx 0) (ret  cltype )) (setq cltype (cons (elt value idx) cltype))))
  520.             (t
  521.              (setq cltype nil)
  522.              (setq value (write-to-string value))
  523.              (do ((idx len (- idx 1))) ((= idx 0) (ret  cltype )) (setq cltype (cons (elt value idx) cltype))))))
  524.           ;; not finished
  525.           ('keypair
  526.            (cond
  527.             ((atom value) (ret list value))
  528.             (t (ret (coerce value 'cons)))))
  529.           ;; not finished
  530.           ('alist
  531.            ;;(if (hash-table-p value) (ret value))
  532.            (setq cltype (setq cltype nil))
  533.            (if (sequencep value) t (setq value (coerce value 'sequence)))
  534.            (do ((idx 0 (+ 1 idx))) ((= idx len) (ret cltype))
  535.              (setq result-type (coerce (elt value idx) 'cons))
  536.              (setq cltype (acons (car result-type) (cdr result-type) cltype)))
  537.            (ret cltype))
  538.           ;; not finished
  539.           ('hash-table
  540.            (if (hash-table-p value) (ret value))
  541.            (setq cltype (make-hash-table len))
  542.            (if (sequencep value) t (setq value (coerce value 'sequence)))
  543.            (do ((idx 0 (+ 1 idx))) ((= idx len) (ret cltype))
  544.              (print (list 'coerce value result-type cltype len (elt value idx)))
  545.              (setq result-type (coerce (elt value idx) 'keypair))
  546.              (sethash (car result-type) cltype (cdr result-type))))
  547.           ;; not like CL
  548.           (otherwise (ret value)))
  549.         (throw :coerce (list value result-type)))
  550.   (ret value))
  551.  
  552.  
  553.  
  554.  
  555.  
  556. ;;;;(load "sublisp-cl.lisp")
  557. #|
  558.  
  559. (define FIND-ALL-SYMBOLS (stringp &optional (packagelist (list-all-packages)) (status '(:inherited :external :internal)))
  560.   (ret (if packagelist
  561.            (clet ((package (car packagelist))(res (multiple-values-list (find-symbol stringp package))))
  562.                  (if  
  563.                      (member (cdr res) status)
  564.                      (cons (car res) (FIND-ALL-SYMBOLS stringp (cdr packagelist) status ))
  565.                    (FIND-ALL-SYMBOLS stringp (cdr packagelist) status ))))))
  566.  
  567. (defun eval-remote (server &rest remote)  (print remote))
  568.  
  569. ;;
  570. ;;  (load "common_lisp.lisp")(macroexpand '(defstub :COMMON-LISP DEFPACKAGE))
  571. (define defstub (pack symb &rest body)
  572.   ;;  (clet ((symb `,symbn))
  573.   (let ((sname (if (symbolp symb) (symbol-name symb) (if (stringp symb) symb "")))
  574.         (fpack (if (packagep pack) pack (find-package pack)))
  575.         (fsym  (if fpack (find-symbol sname fpack) (find-symbol sname))))
  576.     (when (and(symbolp symb)(fboundp symb)) (ret `(symbol-function ',symb)))
  577.     (when (and(symbolp fsym)(fboundp fsym)) (ret `(symbol-function ',fsym)))
  578.     (when (and(symbolp fsym)(fboundp fsym)(member fpack *packages-local*)) (ret `(symbol-function ',fsym)))
  579.     (unless (symbolp fsym)(setq fsym symb))
  580.     (unless (symbolp fsym)(setq fsym (intern sname)))
  581.     (unless fpack (setq fpack (symbol-package fsym)))
  582.     (setq sname (concat (package-name fpack) "::" sname))
  583.     (ret
  584.      (print `(eval
  585.               ',(print (if body
  586.                            ;;(list 'defmacro fsym (list 'quote (car body))(list 'ret (list 'BQ-LIST* (cons '(quote eval-remote) (cons (list 'quote sname) (cdr body))))))
  587.                            `(defmacro ,fsym ,(car body) (ret `(eval-remote ,,sname ,,@(cdr body))))
  588.                          
  589.                          (list 'defmacro fsym '(&rest args)(list 'ret (list 'BQ-LIST* '(quote eval-remote) (list 'quote sname) 'args))))))))))
  590.  
  591.  
  592. ;;(define do-server4005 (in-stream out-stream)(print (read in-stream) out-stream))
  593.  
  594. (defstub :common-lisp 'defpackage)
  595.  
  596.  
  597. ;; We will show that only one of the three non-local exit mechanisms block/return-from, tagbody/go, catch/throw is required to be primitive, by showing how to emulate any two in terms of the third.[4] We first emulate block/return-from in terms of catch/throw. We map the block name into the name of a lexical variable which will hold the unique tag which distinguishes this dynamical block from any other. If trivial return-from's are optimized away, then this emulation can be quite efficient.
  598. (cl-defmacro return-from-no (bname exp)
  599.              "BLOCK/RETURN-FROM EMULATED BY CATCH/THROW"
  600.              (let ((tagname (block-to-tagname bname)))
  601.                `(throw ,tagname ,exp)))
  602.  
  603. (cl-defmacro block-no (bname &body forms)
  604.              "BLOCK/RETURN-FROM EMULATED BY CATCH/THROW"
  605.              (let ((tagname (block-to-tagname bname)))
  606.                `(let ((,tagname (list nil))) ; Unique cons cell used as catch tag.
  607.                   (catch ,tagname (progn ,@forms)))))
  608.  
  609. ;; dont know if this is correct
  610.  
  611. (defmacro return (body) (ret `(ret ,body)))
  612.  
  613.  
  614.  
  615.  
  616. (defconstant *unbound-value* (list nil))
  617.  
  618. (defun msymbol-value (var)
  619.   (if (boundp var) (symbol-value var) *unbound-value*))
  620.  
  621. (defun mset (var val)
  622.   (if (eq val *unbound-value*) (makunbound var) (set var val)))
  623.  
  624. (defmacro progv (syms vals &body forms)
  625.   (let* ((vsyms (gensym)) (vvals (gensym)) (vovals (gensym)))
  626.     `(let* ((,vsyms ,syms)
  627.             (,vvals ,vals)
  628.             (,vovals ,(mapcar #'msymbol-value ,vsyms)))
  629.        (unwind-protect
  630.            (progn (mapc #'mset ,vsyms ,vvals)
  631.              (mapc #'makunbound (subseq ,vsyms (min (length ,vsyms) (length ,vvals))))
  632.              ,@forms )
  633.          (mapc #'mset ,vsyms ,vovals)))))
  634.  
  635. ;;EMULATE "THE" USING "LET" AND "DECLARE"
  636. ;;The emulation of the the special form emphasizes the fact that there is a run-time type test which must be passed in order for the program to proceed. Of course, a clever compiler can eliminate the run-time test if it can prove that it will always succeed--e.g., the gcd function always returns an integer if it returns at all.
  637.  
  638. (defmacro the (typ exp)
  639.   (if (and (consp typ) (eq (car typ) 'values))
  640.       (let ((vals (gensym)))
  641.         `(let ((,vals (multiple-value-list ,exp)))
  642.            (assert (= (length ,vals) ,(length (cdr typ))))
  643.            ,@(mapcar #'(lambda (typ i) `(assert (typep (elt ,vals ,i) ',typ)))
  644.                (cdr typ) (iota-list (length (cdr typ))))
  645.            (values-list ,vals)))
  646.     (let ((val (gensym)))
  647.       `(let ((,val ,exp))
  648.          (assert (typep ,val ',typ))
  649.          (let ((,val ,val)) (declare (type ,typ ,val))
  650.            ,val)))))
  651.  
  652.  
  653.  
  654. (cl-defmacro go (label)
  655.              "TAGBODY/GO EMULATED BY CATCH/THROW"
  656.              (let ((name (label-to-functionname label)))
  657.                `(throw ,name #',name)))
  658.  
  659. (cl-defmacro tagbody-no (&body body)
  660.              "TAGBODY/GO EMULATED BY CATCH/THROW"
  661.              (let* ((init-tag (gensym)) (go-tag (gensym)) (return-tag (gensym))
  662.                    
  663.                     (functions
  664.                      (mapcon
  665.                          #'(lambda (seq &aux (label (car seq) (s (cdr seq)))
  666.                                         (when (atom label)
  667.                                           (let ((p (position-if #'atom s)))
  668.                                             `((,(label-to-functionname label) ()
  669.                                                  ,@(subseq s 0 (or p (length s)))
  670.                                                  ,(if p `(,(label-to-functionname (elt s p)))
  671.                                                     `(throw ,return-tag 'nil)))))))
  672.                              `(,init-tag ,@body))))
  673.                     `(let* ((,go-tag (list nil)) (,return-tag (list nil))
  674.                                                  ,@(mapcar #'(lambda (f) `(,(car f) ,go-tag)) functions))
  675.                        (catch ,return-tag
  676.                               (labels ,functions
  677.                                 (let ((nxt-label #',(caar functions)))
  678.                                   (loop (setq nxt-label (catch ,go-tag (funcall nxt-label)))))))))))
  679.  
  680. (print "The emulation of tagbody/go by catch/throw is considerably less obvious than the emulation of block/return-from.
  681. This is because tagbody defines a number of different labels rather than a single block name, and because the parsing of the
  682. tagbody body is considerably more complicated. The various segments of the tagbody are emulated by a labels nest of mutually
  683. recursive functions, which are forced to all execute at the correct dynamic depth by means of a
  684. 'trampoline. If the implementation implements the 'tail recursion' optimization for functions
  685. which have no arguments and return no values, and if the simpler cases of go's are optimized away, then this emulation can be quite efficient."
  686.        )
  687.  
  688.  
  689. (cl-defmacro labels (fns &body forms)
  690.              "CIRCULAR ENVIRONMENTS OF 'LABELS EMULATED BY 'FLET AND 'SETQ: It is generally believed that the circular environments of labels cannot be
  691.    obtained by means of flet. This is incorrect, as the following emulation (reminiscent of Scheme) shows.
  692.    With a more sophisticated macro-expansion, this emulation can be optimized into production-quality code."
  693.              (let* ((fnames (mapcar #'car fns))
  694.                     (nfnames (mapcar #'(lambda (ignore) (gensym)) fnames))
  695.                     (nfbodies (mapcar #'(lambda (f) `#'(lambda ,@(cdr f))) fns)))
  696.                `(let ,(mapcar #'(lambda (nf) `(,nf #'(lambda () ()))) nfnames)
  697.                   (flet ,(mapcar #'(lambda (f nf) `(,f (&rest a) (apply ,nf a)))
  698.                            fnames nfnames)
  699.                     (flet ,fns
  700.                       (progn ,@(mapcar #'(lambda (f nf) `(setq ,nf #',f))
  701.                                  fnames nfnames))
  702.                       ,@forms)))))
  703.  
  704. ;;(* + - / /= < <= = > > >= ABS ACONS ACOS ADJOIN ALPHA-CHAR-P ALPHANUMERICP APPEND AREF ASH ASIN ASSOC ASSOC-IF ATAN ATOM
  705. ;; BOOLE BOOLEAN BOTH-CASE-P BQ-CONS BQ-VECTOR BUTLAST BYTE CAAR CADR CAR CCONCATENATE CDAR CDDR CDR CEILING CERROR CHAR CHAR-CODE CHAR-DOWNCASE CHAR-EQUAL CHAR-GREATERP CHAR-LESSP CHAR-NOT-EQUAL CHAR-NOT-GREATERP CHAR-NOT-LESSP CHAR-UPCASE CHAR/= CHAR< CHAR<= CHAR= CHAR> CHAR>= CHARACTERP CLRHASH
  706. ;; CMERGE CODE-CHAR CONS CONSP CONSTANTP CONSTRUCT-FILENAME COPY-ALIST COPY-LIST COPY-SEQ COPY-TREE COS COUNT COUNT-IF CREDUCE CURRENT-PROCESS DATE-RELATIVE-GUID-P DECODE-FLOAT DECODE-UNIVERSAL-TIME DELETE DELETE-DUPLICATES DELETE-IF DIGIT-CHAR DIGIT-CHAR-P DISASSEMBLE-INTEGER-TO-FIXNUMS DPB EIGHTH ELT ENCODE-UNIVERSAL-TIME ENDP EQ EQL EQUAL EQUALP EVENP EXIT EXP EXPT FALSE FIFTH FILL FIND FIND-IF FIND-PACKAGE FIND-SYMBOL FIRST FIXNUMP FLOAT FLOAT-DIGITS FLOAT-RADIX FLOAT-SIGN FLOATP FLOOR FORCE-OUTPUT FORMAT FOURTH FRESH-LINE FUNCTION-SPEC-P FUNCTIONP GC GC-DYNAMIC GC-EPHEMERAL GC-FULL GENSYM GENTEMP GET GET-DECODED-TIME GET-INTERNAL-REAL-TIME GET-INTERNAL-REAL-TIME GET-INTERNAL-RUN-TIME GET-UNIVERSAL-TIME GET-UNIVERSAL-TIME GETF GETHASH GETHASH-WITHOUT-VALUES GUID-P GUID-STRING-P GUID-TO-STRING GUID/= GUID< GUID<= GUID= GUID> GUID>= HASH-TABLE-COUNT HASH-TABLE-P HASH-TABLE-SIZE HASH-TABLE-TEST IDENTITY IGNORE INFINITY-P INT/ INTEGER-DECODE-FLOAT INTEGER-LENGTH INTEGERP INTERN INTERRUPT-PROCESS INTERSECTION ISQRT KEYWORDP KILL-PROCESS LAST LDB LDIFF LENGTH LISP-IMPLEMENTATION-TYPE LISP-IMPLEMENTATION-VERSION LIST LIST* LIST-ALL-PACKAGES LIST-LENGTH LISTP LISTP LOCK-IDLE-P LOCK-P LOG LOGAND LOGANDC1 LOGANDC2 LOGBITP LOGCOUNT LOGEQV LOGIOR LOGNAND LOGNOR LOGNOT LOGORC1 LOGORC2 LOGTEST LOGXOR LOWER-CASE-P MAKE-HASH-TABLE MAKE-LOCK MAKE-LOCK MAKE-STRING MAKUNBOUND MAX MEMBER MEMBER-IF MIN MINUSP MISMATCH MOD NBUTLAST NCONC NEW-GUID NINTERSECTION NINTH NOT-A-NUMBER-P NOTE-PERCENT-PROGRESS NOTIFY NRECONC NREVERSE NSET-DIFFERENCE NSET-EXCLUSIVE-OR NSTRING-CAPITALIZE NSTRING-DOWNCASE NSTRING-UPCASE NSUBLIS NSUBST NSUBST-IF NSUBSTITUTE NSUBSTITUTE-IF NTH NTHCDR NULL NUMBERP NUMBERP NUNION ODDP PAIRLIS PEEK-CHAR PLUSP POSITION POSITION-IF PRIN1 PRIN1-TO-STRING PRINC PRINC-TO-STRING PRINT PROCESS-ACTIVE-P PROCESS-BLOCK PROCESS-NAME PROCESS-STATE PROCESS-UNBLOCK PROCESS-WAIT PROCESS-WAIT-WITH-TIMEOUT PROCESS-WHOSTATE PROCESSP RANDOM RASSOC RASSOC-IF READ-FROM-STRING READ-FROM-STRING-IGNORING-ERRORS REM REMF REMHASH REMOVE REMOVE-DUPLICATES REMOVE-IF REPLACE REST REVAPPEND REVERSE REVERSE ROOM ROUND RPLACA RPLACD SCALE-FLOAT SEARCH SECOND SEED-RANDOM SEQUENCEP SET-AREF SET-CONSING-STATE SET-DIFFERENCE SET-NTH SEVENTH SHOW-PROCESSES SIN SIXTH QUIT SLEEP SORT SQRT STABLE-SORT STRING STRING-CAPITALIZE STRING-DOWNCASE STRING-EQUAL STRING-GREATERP STRING-LEFT-TRIM STRING-LESSP STRING-NOT-EQUAL STRING-NOT-GREATERP STRING-NOT-LESSP STRING-RIGHT-TRIM STRING-TO-GUID STRING-TRIM STRING-UPCASE STRING/= STRING< STRING<= STRING= STRING> STRING>= STRINGP SUBLIS SUBLISP::PROPERTY-LIST-MEMBER SUBSEQ SUBSETP SUBST SUBST-IF SUBSTITUTE SUBSTITUTE-IF SXHASH SYMBOL-FUNCTION SYMBOL-NAME SYMBOLP SYMBOLP TAILP TAN TENTH TERPRI THIRD TREE-EQUAL TRUE TRUNCATE TYPE-OF UNINTERN UNION UPPER-CASE-P VALID-PROCESS-P VALUES VECTOR VECTORP WARN WRITE-IMAGE Y-OR-N-P YES-OR-NO-P ZEROP)
  707.  
  708.  
  709.  
  710. (DEFMACRO HANDLER-CASE-CAD (FORM &REST CASES)
  711.   (ret (LET ((NO-ERROR-CLAUSE (ASSOC ':NO-ERROR CASES)))
  712.          (IF NO-ERROR-CLAUSE
  713.              (LET ((NORMAL-RETURN (MAKE-SYMBOL "NORMAL-RETURN"))
  714.                    (ERROR-RETURN  (MAKE-SYMBOL "ERROR-RETURN")))
  715.                `(BLOCK ,ERROR-RETURN
  716.                   (MULTIPLE-VALUE-CALL #'(LAMBDA ,@(CDR NO-ERROR-CLAUSE))
  717.                     (BLOCK ,NORMAL-RETURN
  718.                       (RETURN-FROM ,ERROR-RETURN
  719.                         (HANDLER-CASE (RETURN-FROM ,NORMAL-RETURN ,FORM)
  720.                           ,@(REMOVE NO-ERROR-CLAUSE CASES)))))))
  721.            (LET ((TAG (GENSYM))
  722.                  (VAR (GENSYM))
  723.                  (ANNOTATED-CASES (MAPCAR #'(LAMBDA (CASE) (CONS (GENSYM) CASE))
  724.                                     CASES)))
  725.              `(BLOCK ,TAG
  726.                 (LET ((,VAR NIL))
  727.                   ,VAR              ;ignorable
  728.                   (TAGBODY
  729.                     (HANDLER-BIND ,(MAPCAR #'(LAMBDA (ANNOTATED-CASE)
  730.                                                (LIST (CADR ANNOTATED-CASE)
  731.                                                      `#'(LAMBDA (TEMP)
  732.                                                           ,@(IF (CADDR ANNOTATED-CASE)
  733.                                                                 `((SETQ ,VAR TEMP)))
  734.                                                           (GO ,(CAR ANNOTATED-CASE)))))
  735.                                      ANNOTATED-CASES)
  736.                       (RETURN-FROM ,TAG ,FORM))
  737.                     ,@(MAPCAN #'(LAMBDA (ANNOTATED-CASE)
  738.                                   (LIST (CAR ANNOTATED-CASE)
  739.                                         (LET ((BODY (CDDDR ANNOTATED-CASE)))
  740.                                           `(RETURN-FROM ,TAG
  741.                                              ,(COND ((CADDR ANNOTATED-CASE)
  742.                                                      `(LET ((,(CAADDR ANNOTATED-CASE)
  743.                                                                ,VAR))
  744.                                                         ,@BODY))
  745.                                                     ((NOT (CDR BODY))
  746.                                                      (CAR BODY))
  747.                                                     (T
  748.                                                      `(PROGN ,@BODY)))))))
  749.                         ANNOTATED-CASES)))))))))
  750. |#
  751.  
  752.  
  753.  
  754. (define clisp-symbol (pack name &rest ignore))
  755.  
  756. (clisp-symbol :COMMON-LISP "&ALLOW-OTHER-KEYS" "NIL") ;;&ALLOW-OTHER-KEYS;;
  757. (clisp-symbol :COMMON-LISP "&AUX" "NIL") ;;&AUX;;
  758. (clisp-symbol :COMMON-LISP "&BODY" "NIL") ;;&BODY;;
  759. (clisp-symbol :COMMON-LISP "&ENVIRONMENT" "NIL") ;;&ENVIRONMENT;;
  760. (clisp-symbol :COMMON-LISP "&KEY" "NIL") ;;&KEY;;
  761. (clisp-symbol :COMMON-LISP "&OPTIONAL" "NIL") ;;&OPTIONAL;;
  762. (clisp-symbol :COMMON-LISP "&REST" "NIL") ;;&REST;;
  763. (clisp-symbol :COMMON-LISP "&WHOLE" "NIL") ;;&WHOLE;;
  764. (clisp-symbol :COMMON-LISP "(SETF COMMON-LISP:COMPILER-MACRO-FUNCTION)" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/cmacros.fas\" 51 55)))") ;;COMMON-LISP::|(SETF COMMON-LISP:COMPILER-MACRO-FUNCTION)|;;
  765. (clisp-symbol :COMMON-LISP "(SETF COMMON-LISP:RESTART-NAME)" "(SYSTEM::INLINE-EXPANSION ((SYSTEM::VALUE SYSTEM::OBJECT) (DECLARE (SYSTEM::IN-DEFUN (SETF RESTART-NAME))) (BLOCK RESTART-NAME (SYSTEM::%STRUCTURE-STORE 'RESTART SYSTEM::OBJECT 1 SYSTEM::VALUE))) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 714 729)) SYSTEM::INLINABLE INLINE)") ;;COMMON-LISP::|(SETF COMMON-LISP:RESTART-NAME)|;;
  766. (clisp-symbol :COMMON-LISP "(SETF COMMON-LISP:STREAM-ELEMENT-TYPE)" "NIL") ;;COMMON-LISP::|(SETF COMMON-LISP:STREAM-ELEMENT-TYPE)|;;
  767. (clisp-symbol :COMMON-LISP "*" "NIL") ;;*;;
  768. (clisp-symbol :COMMON-LISP "**" "NIL") ;;**;;
  769. (clisp-symbol :COMMON-LISP "***" "NIL") ;;***;;
  770. (clisp-symbol :COMMON-LISP "*BREAK-ON-SIGNALS*" "NIL") ;;*BREAK-ON-SIGNALS*;;
  771. (clisp-symbol :COMMON-LISP "*COMPILE-FILE-PATHNAME*" "NIL") ;;*COMPILE-FILE-PATHNAME*;;
  772. (clisp-symbol :COMMON-LISP "*COMPILE-FILE-TRUENAME*" "NIL") ;;*COMPILE-FILE-TRUENAME*;;
  773. (clisp-symbol :COMMON-LISP "*COMPILE-PRINT*" "NIL") ;;*COMPILE-PRINT*;;
  774. (clisp-symbol :COMMON-LISP "*COMPILE-VERBOSE*" "NIL") ;;*COMPILE-VERBOSE*;;
  775. (clisp-symbol :COMMON-LISP "*DEBUG-IO*" "NIL") ;;*DEBUG-IO*;;
  776. (clisp-symbol :COMMON-LISP "*DEBUGGER-HOOK*" "NIL") ;;*DEBUGGER-HOOK*;;
  777. (clisp-symbol :COMMON-LISP "*DEFAULT-PATHNAME-DEFAULTS*" "NIL") ;;*DEFAULT-PATHNAME-DEFAULTS*;;
  778. (clisp-symbol :COMMON-LISP "*ERROR-OUTPUT*" "NIL") ;;*ERROR-OUTPUT*;;
  779. (clisp-symbol :COMMON-LISP "*FEATURES*" "NIL") ;;*FEATURES*;;
  780. (clisp-symbol :COMMON-LISP "*GENSYM-COUNTER*" "NIL") ;;*GENSYM-COUNTER*;;
  781. (clisp-symbol :COMMON-LISP "*LOAD-PATHNAME*" "NIL") ;;*LOAD-PATHNAME*;;
  782. (clisp-symbol :COMMON-LISP "*LOAD-PRINT*" "NIL") ;;*LOAD-PRINT*;;
  783. (clisp-symbol :COMMON-LISP "*LOAD-TRUENAME*" "NIL") ;;*LOAD-TRUENAME*;;
  784. (clisp-symbol :COMMON-LISP "*LOAD-VERBOSE*" "NIL") ;;*LOAD-VERBOSE*;;
  785. (clisp-symbol :COMMON-LISP "*MACROEXPAND-HOOK*" "NIL") ;;*MACROEXPAND-HOOK*;;
  786. (clisp-symbol :COMMON-LISP "*MODULES*" "NIL") ;;*MODULES*;;
  787. (clisp-symbol :COMMON-LISP "*PACKAGE*" "NIL") ;;*PACKAGE*;;
  788. (clisp-symbol :COMMON-LISP "*PRINT-ARRAY*" "NIL") ;;*PRINT-ARRAY*;;
  789. (clisp-symbol :COMMON-LISP "*PRINT-BASE*" "NIL") ;;*PRINT-BASE*;;
  790. (clisp-symbol :COMMON-LISP "*PRINT-CASE*" "NIL") ;;*PRINT-CASE*;;
  791. (clisp-symbol :COMMON-LISP "*PRINT-CIRCLE*" "NIL") ;;*PRINT-CIRCLE*;;
  792. (clisp-symbol :COMMON-LISP "*PRINT-ESCAPE*" "NIL") ;;*PRINT-ESCAPE*;;
  793. (clisp-symbol :COMMON-LISP "*PRINT-GENSYM*" "NIL") ;;*PRINT-GENSYM*;;
  794. (clisp-symbol :COMMON-LISP "*PRINT-LENGTH*" "NIL") ;;*PRINT-LENGTH*;;
  795. (clisp-symbol :COMMON-LISP "*PRINT-LEVEL*" "NIL") ;;*PRINT-LEVEL*;;
  796. (clisp-symbol :COMMON-LISP "*PRINT-LINES*" "NIL") ;;*PRINT-LINES*;;
  797. (clisp-symbol :COMMON-LISP "*PRINT-MISER-WIDTH*" "NIL") ;;*PRINT-MISER-WIDTH*;;
  798. (clisp-symbol :COMMON-LISP "*PRINT-PPRINT-DISPATCH*" "NIL") ;;*PRINT-PPRINT-DISPATCH*;;
  799. (clisp-symbol :COMMON-LISP "*PRINT-PRETTY*" "NIL") ;;*PRINT-PRETTY*;;
  800. (clisp-symbol :COMMON-LISP "*PRINT-RADIX*" "NIL") ;;*PRINT-RADIX*;;
  801. (clisp-symbol :COMMON-LISP "*PRINT-READABLY*" "NIL") ;;*PRINT-READABLY*;;
  802. (clisp-symbol :COMMON-LISP "*PRINT-RIGHT-MARGIN*" "NIL") ;;*PRINT-RIGHT-MARGIN*;;
  803. (clisp-symbol :COMMON-LISP "*QUERY-IO*" "NIL") ;;*QUERY-IO*;;
  804. (clisp-symbol :COMMON-LISP "*RANDOM-STATE*" "NIL") ;;*RANDOM-STATE*;;
  805. (clisp-symbol :COMMON-LISP "*READ-BASE*" "NIL") ;;*READ-BASE*;;
  806. (clisp-symbol :COMMON-LISP "*READ-DEFAULT-FLOAT-FORMAT*" "NIL") ;;*READ-DEFAULT-FLOAT-FORMAT*;;
  807. (clisp-symbol :COMMON-LISP "*READ-EVAL*" "NIL") ;;*READ-EVAL*;;
  808. (clisp-symbol :COMMON-LISP "*READ-SUPPRESS*" "NIL") ;;*READ-SUPPRESS*;;
  809. (clisp-symbol :COMMON-LISP "*READTABLE*" "NIL") ;;*READTABLE*;;
  810. (clisp-symbol :COMMON-LISP "*STANDARD-INPUT*" "NIL") ;;*STANDARD-INPUT*;;
  811. (clisp-symbol :COMMON-LISP "*STANDARD-OUTPUT*" "NIL") ;;*STANDARD-OUTPUT*;;
  812. (clisp-symbol :COMMON-LISP "*TERMINAL-IO*" "NIL") ;;*TERMINAL-IO*;;
  813. (clisp-symbol :COMMON-LISP "*TRACE-OUTPUT*" "NIL") ;;*TRACE-OUTPUT*;;
  814. (clisp-symbol :COMMON-LISP "+" "(CLOS::%METHOD-COMBINATION #<METHOD-COMBINATION + #x209F48E6>)") ;;+;;
  815. (clisp-symbol :COMMON-LISP "++" "NIL") ;;++;;
  816. (clisp-symbol :COMMON-LISP "+++" "NIL") ;;+++;;
  817. (clisp-symbol :COMMON-LISP "-" "NIL") ;;-;;
  818. (clisp-symbol :COMMON-LISP "/" "NIL") ;;/;;
  819. (clisp-symbol :COMMON-LISP "//" "NIL") ;;//;;
  820. (clisp-symbol :COMMON-LISP "///" "NIL") ;;///;;
  821. (clisp-symbol :COMMON-LISP "/=" "NIL") ;;/=;;
  822. (clisp-symbol :COMMON-LISP "1+" "NIL") ;;1+;;
  823. (clisp-symbol :COMMON-LISP "1-" "NIL") ;;1-;;
  824. (clisp-symbol :COMMON-LISP "<" "NIL") ;;<;;
  825. (clisp-symbol :COMMON-LISP "<=" "NIL") ;;<=;;
  826. (clisp-symbol :COMMON-LISP "=" "NIL") ;;=;;
  827. (clisp-symbol :COMMON-LISP ">" "NIL") ;;>;;
  828. (clisp-symbol :COMMON-LISP ">=" "NIL") ;;>=;;
  829. (clisp-symbol :COMMON-LISP "ABORT" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1145 1152)))") ;;ABORT;;
  830. (clisp-symbol :COMMON-LISP "ABS" "NIL") ;;ABS;;
  831. (clisp-symbol :COMMON-LISP "ACONS" "NIL") ;;ACONS;;
  832. (clisp-symbol :COMMON-LISP "ACOS" "NIL") ;;ACOS;;
  833. (clisp-symbol :COMMON-LISP "ACOSH" "NIL") ;;ACOSH;;
  834. (clisp-symbol :COMMON-LISP "ADJOIN" "NIL") ;;ADJOIN;;
  835. (clisp-symbol :COMMON-LISP "ADJUST-ARRAY" "NIL") ;;ADJUST-ARRAY;;
  836. (clisp-symbol :COMMON-LISP "ADJUSTABLE-ARRAY-P" "NIL") ;;ADJUSTABLE-ARRAY-P;;
  837. (clisp-symbol :COMMON-LISP "ALPHA-CHAR-P" "NIL") ;;ALPHA-CHAR-P;;
  838. (clisp-symbol :COMMON-LISP "ALPHANUMERICP" "NIL") ;;ALPHANUMERICP;;
  839. (clisp-symbol :COMMON-LISP "AND" "(CLOS::%METHOD-COMBINATION #<METHOD-COMBINATION AND #x209F4956> SYSTEM::MACRO #<COMPILED-FUNCTION AND>)") ;;AND;;
  840. (clisp-symbol :COMMON-LISP "APPEND" "(CLOS::%METHOD-COMBINATION #<METHOD-COMBINATION APPEND #x209F49C6>)") ;;APPEND;;
  841. (clisp-symbol :COMMON-LISP "APPLY" "(SYSTEM::INSTRUCTION 55 SYSTEM::SETF-EXPANDER (-5 . #<COMPILED-FUNCTION #:SETF-APPLY>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 1062 1124)))") ;;APPLY;;
  842. (clisp-symbol :COMMON-LISP "APROPOS" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/describe.fas\" 45 73)))") ;;APROPOS;;
  843. (clisp-symbol :COMMON-LISP "APROPOS-1" "NIL") ;;COMMON-LISP::APROPOS-1;;
  844. (clisp-symbol :COMMON-LISP "APROPOS-2" "NIL") ;;COMMON-LISP::APROPOS-2;;
  845. (clisp-symbol :COMMON-LISP "APROPOS-3" "NIL") ;;COMMON-LISP::APROPOS-3;;
  846. (clisp-symbol :COMMON-LISP "APROPOS-4" "NIL") ;;COMMON-LISP::APROPOS-4;;
  847. (clisp-symbol :COMMON-LISP "APROPOS-5" "NIL") ;;COMMON-LISP::APROPOS-5;;
  848. (clisp-symbol :COMMON-LISP "APROPOS-LIST" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/describe.fas\" 19 35)))") ;;APROPOS-LIST;;
  849. (clisp-symbol :COMMON-LISP "APROPOS-LIST-1" "NIL") ;;COMMON-LISP::APROPOS-LIST-1;;
  850. (clisp-symbol :COMMON-LISP "APROPOS-LIST-2" "NIL") ;;COMMON-LISP::APROPOS-LIST-2;;
  851. (clisp-symbol :COMMON-LISP "AREF" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-AREF>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 521 523)))") ;;AREF;;
  852. (clisp-symbol :COMMON-LISP "ARITHMETIC-ERROR" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS ARITHMETIC-ERROR> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 342 345)))") ;;ARITHMETIC-ERROR;;
  853. (clisp-symbol :COMMON-LISP "ARITHMETIC-ERROR-OPERANDS" "NIL") ;;ARITHMETIC-ERROR-OPERANDS;;
  854. (clisp-symbol :COMMON-LISP "ARITHMETIC-ERROR-OPERATION" "NIL") ;;ARITHMETIC-ERROR-OPERATION;;
  855. (clisp-symbol :COMMON-LISP "ARRAY" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS ARRAY> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::SUBTYPEP-DECIDE SYSTEM::SUBTYPEP-ARRAY SYSTEM::SUBTYPEP-SIMPLIFY-OR SYSTEM::SIMPLIFY-OR-ARRAY SYSTEM::SUBTYPEP-SIMPLIFY-AND SYSTEM::SIMPLIFY-AND-ARRAY SYSTEM::SUBTYPEP-LIST (ARRAY SIMPLE-ARRAY) SYSTEM::SUBTYPEP-ATOM (ARRAY SIMPLE-ARRAY) SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-ARRAY> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION ARRAYP>)") ;;ARRAY;;
  856. (clisp-symbol :COMMON-LISP "ARRAY-DIMENSION" "NIL") ;;ARRAY-DIMENSION;;
  857. (clisp-symbol :COMMON-LISP "ARRAY-DIMENSION-LIMIT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;ARRAY-DIMENSION-LIMIT;;
  858. (clisp-symbol :COMMON-LISP "ARRAY-DIMENSIONS" "NIL") ;;ARRAY-DIMENSIONS;;
  859. (clisp-symbol :COMMON-LISP "ARRAY-DISPLACEMENT" "NIL") ;;ARRAY-DISPLACEMENT;;
  860. (clisp-symbol :COMMON-LISP "ARRAY-ELEMENT-TYPE" "NIL") ;;ARRAY-ELEMENT-TYPE;;
  861. (clisp-symbol :COMMON-LISP "ARRAY-HAS-FILL-POINTER-P" "NIL") ;;ARRAY-HAS-FILL-POINTER-P;;
  862. (clisp-symbol :COMMON-LISP "ARRAY-IN-BOUNDS-P" "NIL") ;;ARRAY-IN-BOUNDS-P;;
  863. (clisp-symbol :COMMON-LISP "ARRAY-RANK" "NIL") ;;ARRAY-RANK;;
  864. (clisp-symbol :COMMON-LISP "ARRAY-RANK-LIMIT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;ARRAY-RANK-LIMIT;;
  865. (clisp-symbol :COMMON-LISP "ARRAY-ROW-MAJOR-INDEX" "NIL") ;;ARRAY-ROW-MAJOR-INDEX;;
  866. (clisp-symbol :COMMON-LISP "ARRAY-TOTAL-SIZE" "NIL") ;;ARRAY-TOTAL-SIZE;;
  867. (clisp-symbol :COMMON-LISP "ARRAY-TOTAL-SIZE-LIMIT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;ARRAY-TOTAL-SIZE-LIMIT;;
  868. (clisp-symbol :COMMON-LISP "ARRAYP" "NIL") ;;ARRAYP;;
  869. (clisp-symbol :COMMON-LISP "ASH" "NIL") ;;ASH;;
  870. (clisp-symbol :COMMON-LISP "ASIN" "NIL") ;;ASIN;;
  871. (clisp-symbol :COMMON-LISP "ASINH" "NIL") ;;ASINH;;
  872. (clisp-symbol :COMMON-LISP "ASSERT" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1229 1261)))") ;;ASSERT;;
  873. (clisp-symbol :COMMON-LISP "ASSOC" "NIL") ;;ASSOC;;
  874. (clisp-symbol :COMMON-LISP "ASSOC-IF" "NIL") ;;ASSOC-IF;;
  875. (clisp-symbol :COMMON-LISP "ASSOC-IF-NOT" "NIL") ;;ASSOC-IF-NOT;;
  876. (clisp-symbol :COMMON-LISP "ATAN" "NIL") ;;ATAN;;
  877. (clisp-symbol :COMMON-LISP "ATANH" "NIL") ;;ATANH;;
  878. (clisp-symbol :COMMON-LISP "ATOM" "(SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION ATOM>)") ;;ATOM;;
  879. (clisp-symbol :COMMON-LISP "BASE-CHAR" "(SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION CHARACTERP>)") ;;BASE-CHAR;;
  880. (clisp-symbol :COMMON-LISP "BASE-STRING" "(SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-BASE-STRING> SYSTEM::TYPE-SYMBOL #<COMPILED-FUNCTION SYSTEM::TYPE-SYMBOL-BASE-STRING>)") ;;BASE-STRING;;
  881. (clisp-symbol :COMMON-LISP "BIGNUM" "(SYSTEM::TYPE-SYMBOL #<COMPILED-FUNCTION SYSTEM::TYPE-SYMBOL-BIGNUM>)") ;;BIGNUM;;
  882. (clisp-symbol :COMMON-LISP "BIT" "(SYSTEM::TYPE-SYMBOL #<COMPILED-FUNCTION SYSTEM::TYPE-SYMBOL-BIT> SYSTEM::SETF-EXPANDER SYSTEM::STORE SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 995 995)))") ;;BIT;;
  883. (clisp-symbol :COMMON-LISP "BIT-AND" "NIL") ;;BIT-AND;;
  884. (clisp-symbol :COMMON-LISP "BIT-ANDC1" "NIL") ;;BIT-ANDC1;;
  885. (clisp-symbol :COMMON-LISP "BIT-ANDC2" "NIL") ;;BIT-ANDC2;;
  886. (clisp-symbol :COMMON-LISP "BIT-EQV" "NIL") ;;BIT-EQV;;
  887. (clisp-symbol :COMMON-LISP "BIT-IOR" "NIL") ;;BIT-IOR;;
  888. (clisp-symbol :COMMON-LISP "BIT-NAND" "NIL") ;;BIT-NAND;;
  889. (clisp-symbol :COMMON-LISP "BIT-NOR" "NIL") ;;BIT-NOR;;
  890. (clisp-symbol :COMMON-LISP "BIT-NOT" "NIL") ;;BIT-NOT;;
  891. (clisp-symbol :COMMON-LISP "BIT-ORC1" "NIL") ;;BIT-ORC1;;
  892. (clisp-symbol :COMMON-LISP "BIT-ORC2" "NIL") ;;BIT-ORC2;;
  893. (clisp-symbol :COMMON-LISP "BIT-VECTOR" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS BIT-VECTOR> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-BIT-VECTOR> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION BIT-VECTOR-P>)") ;;BIT-VECTOR;;
  894. (clisp-symbol :COMMON-LISP "BIT-VECTOR-P" "NIL") ;;BIT-VECTOR-P;;
  895. (clisp-symbol :COMMON-LISP "BIT-XOR" "NIL") ;;BIT-XOR;;
  896. (clisp-symbol :COMMON-LISP "BLOCK" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/compiler.fas\" 1008 1022)))") ;;BLOCK;;
  897. (clisp-symbol :COMMON-LISP "BOOLE" "NIL") ;;BOOLE;;
  898. (clisp-symbol :COMMON-LISP "BOOLE-1" "NIL") ;;BOOLE-1;;
  899. (clisp-symbol :COMMON-LISP "BOOLE-2" "NIL") ;;BOOLE-2;;
  900. (clisp-symbol :COMMON-LISP "BOOLE-AND" "NIL") ;;BOOLE-AND;;
  901. (clisp-symbol :COMMON-LISP "BOOLE-ANDC1" "NIL") ;;BOOLE-ANDC1;;
  902. (clisp-symbol :COMMON-LISP "BOOLE-ANDC2" "NIL") ;;BOOLE-ANDC2;;
  903. (clisp-symbol :COMMON-LISP "BOOLE-C1" "NIL") ;;BOOLE-C1;;
  904. (clisp-symbol :COMMON-LISP "BOOLE-C2" "NIL") ;;BOOLE-C2;;
  905. (clisp-symbol :COMMON-LISP "BOOLE-CLR" "NIL") ;;BOOLE-CLR;;
  906. (clisp-symbol :COMMON-LISP "BOOLE-EQV" "NIL") ;;BOOLE-EQV;;
  907. (clisp-symbol :COMMON-LISP "BOOLE-IOR" "NIL") ;;BOOLE-IOR;;
  908. (clisp-symbol :COMMON-LISP "BOOLE-NAND" "NIL") ;;BOOLE-NAND;;
  909. (clisp-symbol :COMMON-LISP "BOOLE-NOR" "NIL") ;;BOOLE-NOR;;
  910. (clisp-symbol :COMMON-LISP "BOOLE-ORC1" "NIL") ;;BOOLE-ORC1;;
  911. (clisp-symbol :COMMON-LISP "BOOLE-ORC2" "NIL") ;;BOOLE-ORC2;;
  912. (clisp-symbol :COMMON-LISP "BOOLE-SET" "NIL") ;;BOOLE-SET;;
  913. (clisp-symbol :COMMON-LISP "BOOLE-XOR" "NIL") ;;BOOLE-XOR;;
  914. (clisp-symbol :COMMON-LISP "BOOLEAN" "(SYSTEM::TYPE-SYMBOL #<COMPILED-FUNCTION SYSTEM::TYPE-SYMBOL-BOOLEAN>)") ;;BOOLEAN;;
  915. (clisp-symbol :COMMON-LISP "BOTH-CASE-P" "NIL") ;;BOTH-CASE-P;;
  916. (clisp-symbol :COMMON-LISP "BOUNDP" "(SYSTEM::INSTRUCTION 60)") ;;BOUNDP;;
  917. (clisp-symbol :COMMON-LISP "BREAK" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1501 1529)))") ;;BREAK;;
  918. (clisp-symbol :COMMON-LISP "BREAK-1" "NIL") ;;COMMON-LISP::BREAK-1;;
  919. (clisp-symbol :COMMON-LISP "BREAK-2" "NIL") ;;COMMON-LISP::BREAK-2;;
  920. (clisp-symbol :COMMON-LISP "BROADCAST-STREAM" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS BROADCAST-STREAM> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYSTEM::BROADCAST-STREAM-P>)") ;;BROADCAST-STREAM;;
  921. (clisp-symbol :COMMON-LISP "BROADCAST-STREAM-STREAMS" "NIL") ;;BROADCAST-STREAM-STREAMS;;
  922. (clisp-symbol :COMMON-LISP "BUTLAST" "NIL") ;;BUTLAST;;
  923. (clisp-symbol :COMMON-LISP "BYTE" "(SYSTEM::SUBTYPEP-DECIDE SYSTEM::SUBTYPEP-MISC SYSTEM::SUBTYPEP-SIMPLIFY-OR SYSTEM::SIMPLIFY-OR-MISC SYSTEM::SUBTYPEP-SIMPLIFY-AND SYSTEM::SIMPLIFY-AND-MISC SYSTEM::SUBTYPEP-LIST NIL SYSTEM::SUBTYPEP-ATOM (BYTE))") ;;BYTE;;
  924. (clisp-symbol :COMMON-LISP "BYTE-POSITION" "NIL") ;;BYTE-POSITION;;
  925. (clisp-symbol :COMMON-LISP "BYTE-SIZE" "NIL") ;;BYTE-SIZE;;
  926. (clisp-symbol :COMMON-LISP "CAAAAR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CAAAAR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 565 565)))") ;;CAAAAR;;
  927. (clisp-symbol :COMMON-LISP "CAAADR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CAAADR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 566 566)))") ;;CAAADR;;
  928. (clisp-symbol :COMMON-LISP "CAAAR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CAAAR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 557 557)))") ;;CAAAR;;
  929. (clisp-symbol :COMMON-LISP "CAADAR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CAADAR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 567 567)))") ;;CAADAR;;
  930. (clisp-symbol :COMMON-LISP "CAADDR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CAADDR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 568 568)))") ;;CAADDR;;
  931. (clisp-symbol :COMMON-LISP "CAADR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CAADR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 558 558)))") ;;CAADR;;
  932. (clisp-symbol :COMMON-LISP "CAAR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CAAR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 553 553)))") ;;CAAR;;
  933. (clisp-symbol :COMMON-LISP "CADAAR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CADAAR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 569 569)))") ;;CADAAR;;
  934. (clisp-symbol :COMMON-LISP "CADADR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CADADR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 570 570)))") ;;CADADR;;
  935. (clisp-symbol :COMMON-LISP "CADAR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CADAR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 559 559)))") ;;CADAR;;
  936. (clisp-symbol :COMMON-LISP "CADDAR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CADDAR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 571 571)))") ;;CADDAR;;
  937. (clisp-symbol :COMMON-LISP "CADDDR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CADDDR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 572 572)))") ;;CADDDR;;
  938. (clisp-symbol :COMMON-LISP "CADDR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CADDR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 560 560)))") ;;CADDR;;
  939. (clisp-symbol :COMMON-LISP "CADR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CADR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 554 554)))") ;;CADR;;
  940. (clisp-symbol :COMMON-LISP "CALL-ARGUMENTS-LIMIT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;CALL-ARGUMENTS-LIMIT;;
  941. (clisp-symbol :COMMON-LISP "CAR" "(SYSTEM::INSTRUCTION 91 SYSTEM::SETF-EXPANDER SYSTEM::%RPLACA SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 551 551)))") ;;CAR;;
  942. (clisp-symbol :COMMON-LISP "CASE" "(SYSTEM::MACRO #<COMPILED-FUNCTION CASE>)") ;;CASE;;
  943. (clisp-symbol :COMMON-LISP "CATCH" "NIL") ;;CATCH;;
  944. (clisp-symbol :COMMON-LISP "CCASE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1396 1475)))") ;;CCASE;;
  945. (clisp-symbol :COMMON-LISP "CDAAAR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CDAAAR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 573 573)))") ;;CDAAAR;;
  946. (clisp-symbol :COMMON-LISP "CDAADR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CDAADR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 574 574)))") ;;CDAADR;;
  947. (clisp-symbol :COMMON-LISP "CDAAR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CDAAR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 561 561)))") ;;CDAAR;;
  948. (clisp-symbol :COMMON-LISP "CDADAR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CDADAR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 575 575)))") ;;CDADAR;;
  949. (clisp-symbol :COMMON-LISP "CDADDR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CDADDR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 576 576)))") ;;CDADDR;;
  950. (clisp-symbol :COMMON-LISP "CDADR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CDADR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 562 562)))") ;;CDADR;;
  951. (clisp-symbol :COMMON-LISP "CDAR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CDAR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 555 555)))") ;;CDAR;;
  952. (clisp-symbol :COMMON-LISP "CDDAAR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CDDAAR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 577 577)))") ;;CDDAAR;;
  953. (clisp-symbol :COMMON-LISP "CDDADR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CDDADR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 578 578)))") ;;CDDADR;;
  954. (clisp-symbol :COMMON-LISP "CDDAR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CDDAR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 563 563)))") ;;CDDAR;;
  955. (clisp-symbol :COMMON-LISP "CDDDAR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CDDDAR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 579 579)))") ;;CDDDAR;;
  956. (clisp-symbol :COMMON-LISP "CDDDDR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CDDDDR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 580 580)))") ;;CDDDDR;;
  957. (clisp-symbol :COMMON-LISP "CDDDR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CDDDR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 564 564)))") ;;CDDDR;;
  958. (clisp-symbol :COMMON-LISP "CDDR" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-CDDR>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 556 556)))") ;;CDDR;;
  959. (clisp-symbol :COMMON-LISP "CDR" "(SYSTEM::INSTRUCTION 92 SYSTEM::SETF-EXPANDER SYSTEM::%RPLACD SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 552 552)))") ;;CDR;;
  960. (clisp-symbol :COMMON-LISP "CEILING" "NIL") ;;CEILING;;
  961. (clisp-symbol :COMMON-LISP "CELL-ERROR" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS CELL-ERROR> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 360 362)))") ;;CELL-ERROR;;
  962. (clisp-symbol :COMMON-LISP "CELL-ERROR-NAME" "NIL") ;;CELL-ERROR-NAME;;
  963. (clisp-symbol :COMMON-LISP "CERROR" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1531 1585)))") ;;CERROR;;
  964. (clisp-symbol :COMMON-LISP "CERROR-1" "NIL") ;;COMMON-LISP::CERROR-1;;
  965. (clisp-symbol :COMMON-LISP "CERROR-2" "NIL") ;;COMMON-LISP::CERROR-2;;
  966. (clisp-symbol :COMMON-LISP "CHAR" "(SYSTEM::SETF-EXPANDER SYSTEM::STORE-CHAR SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 992 993)))") ;;CHAR;;
  967. (clisp-symbol :COMMON-LISP "CHAR-CODE" "NIL") ;;CHAR-CODE;;
  968. (clisp-symbol :COMMON-LISP "CHAR-CODE-LIMIT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;CHAR-CODE-LIMIT;;
  969. (clisp-symbol :COMMON-LISP "CHAR-DOWNCASE" "NIL") ;;CHAR-DOWNCASE;;
  970. (clisp-symbol :COMMON-LISP "CHAR-EQUAL" "NIL") ;;CHAR-EQUAL;;
  971. (clisp-symbol :COMMON-LISP "CHAR-GREATERP" "NIL") ;;CHAR-GREATERP;;
  972. (clisp-symbol :COMMON-LISP "CHAR-INT" "NIL") ;;CHAR-INT;;
  973. (clisp-symbol :COMMON-LISP "CHAR-LESSP" "NIL") ;;CHAR-LESSP;;
  974. (clisp-symbol :COMMON-LISP "CHAR-NAME" "NIL") ;;CHAR-NAME;;
  975. (clisp-symbol :COMMON-LISP "CHAR-NOT-EQUAL" "NIL") ;;CHAR-NOT-EQUAL;;
  976. (clisp-symbol :COMMON-LISP "CHAR-NOT-GREATERP" "NIL") ;;CHAR-NOT-GREATERP;;
  977. (clisp-symbol :COMMON-LISP "CHAR-NOT-LESSP" "NIL") ;;CHAR-NOT-LESSP;;
  978. (clisp-symbol :COMMON-LISP "CHAR-UPCASE" "NIL") ;;CHAR-UPCASE;;
  979. (clisp-symbol :COMMON-LISP "CHAR/=" "NIL") ;;CHAR/=;;
  980. (clisp-symbol :COMMON-LISP "CHAR<" "NIL") ;;CHAR<;;
  981. (clisp-symbol :COMMON-LISP "CHAR<=" "NIL") ;;CHAR<=;;
  982. (clisp-symbol :COMMON-LISP "CHAR=" "NIL") ;;CHAR=;;
  983. (clisp-symbol :COMMON-LISP "CHAR>" "NIL") ;;CHAR>;;
  984. (clisp-symbol :COMMON-LISP "CHAR>=" "NIL") ;;CHAR>=;;
  985. (clisp-symbol :COMMON-LISP "CHARACTER" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS CHARACTER> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::SUBTYPEP-DECIDE SYSTEM::SUBTYPEP-CHARACTER SYSTEM::SUBTYPEP-SIMPLIFY-OR SYSTEM::SIMPLIFY-OR-CHARACTER SYSTEM::SUBTYPEP-SIMPLIFY-AND SYSTEM::SIMPLIFY-AND-CHARACTER SYSTEM::SUBTYPEP-LIST (SYSTEM::CHARACTER-INTERVALS) SYSTEM::SUBTYPEP-ATOM (CHARACTER) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION CHARACTERP>)") ;;CHARACTER;;
  986. (clisp-symbol :COMMON-LISP "CHARACTERP" "NIL") ;;CHARACTERP;;
  987. (clisp-symbol :COMMON-LISP "CHECK-TYPE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1199 1213)))") ;;CHECK-TYPE;;
  988. (clisp-symbol :COMMON-LISP "CIS" "NIL") ;;CIS;;
  989. (clisp-symbol :COMMON-LISP "CLEAR-INPUT" "NIL") ;;CLEAR-INPUT;;
  990. (clisp-symbol :COMMON-LISP "CLEAR-OUTPUT" "NIL") ;;CLEAR-OUTPUT;;
  991. (clisp-symbol :COMMON-LISP "CLOSE" "NIL") ;;CLOSE;;
  992. (clisp-symbol :COMMON-LISP "CLRHASH" "NIL") ;;CLRHASH;;
  993. (clisp-symbol :COMMON-LISP "CODE-CHAR" "NIL") ;;CODE-CHAR;;
  994. (clisp-symbol :COMMON-LISP "COERCE" "NIL") ;;COERCE;;
  995. (clisp-symbol :COMMON-LISP "COMPILATION-SPEED" "NIL") ;;COMPILATION-SPEED;;
  996. (clisp-symbol :COMMON-LISP "COMPILE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/compiler.fas\" 10761 10852)))") ;;COMPILE;;
  997. (clisp-symbol :COMMON-LISP "COMPILE-CLOSURE-SLOT" "NIL") ;;COMMON-LISP::COMPILE-CLOSURE-SLOT;;
  998. (clisp-symbol :COMMON-LISP "COMPILE-FILE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/compiler.fas\" 11105 11289)))") ;;COMPILE-FILE;;
  999. (clisp-symbol :COMMON-LISP "COMPILE-FILE-1" "NIL") ;;COMMON-LISP::COMPILE-FILE-1;;
  1000. (clisp-symbol :COMMON-LISP "COMPILE-FILE-PATHNAME" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/compiler.fas\" 11291 11293)))") ;;COMPILE-FILE-PATHNAME;;
  1001. (clisp-symbol :COMMON-LISP "COMPILE-FILE-SET-UTF-8" "NIL") ;;COMMON-LISP::COMPILE-FILE-SET-UTF-8;;
  1002. (clisp-symbol :COMMON-LISP "COMPILE-FILE-SET-UTF-8-1" "NIL") ;;COMMON-LISP::COMPILE-FILE-SET-UTF-8-1;;
  1003. (clisp-symbol :COMMON-LISP "COMPILED-FUNCTION" "(SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION COMPILED-FUNCTION-P>)") ;;COMPILED-FUNCTION;;
  1004. (clisp-symbol :COMMON-LISP "COMPILED-FUNCTION-P" "NIL") ;;COMPILED-FUNCTION-P;;
  1005. (clisp-symbol :COMMON-LISP "COMPILER-MACRO" "NIL") ;;COMPILER-MACRO;;
  1006. (clisp-symbol :COMMON-LISP "COMPILER-MACRO-FUNCTION" "(SYSTEM::SETF-FUNCTION COMMON-LISP::|(SETF COMMON-LISP:COMPILER-MACRO-FUNCTION)| SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/cmacros.fas\" 8 49)))") ;;COMPILER-MACRO-FUNCTION;;
  1007. (clisp-symbol :COMMON-LISP "COMPLEMENT" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs2.fas\" 68 74)))") ;;COMPLEMENT;;
  1008. (clisp-symbol :COMMON-LISP "COMPLEMENT-1" "NIL") ;;COMMON-LISP::COMPLEMENT-1;;
  1009. (clisp-symbol :COMMON-LISP "COMPLEX" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS COMPLEX> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::SUBTYPEP-DECIDE SYSTEM::SUBTYPEP-COMPLEX SYSTEM::SUBTYPEP-SIMPLIFY-OR SYSTEM::SIMPLIFY-OR-COMPLEX SYSTEM::SUBTYPEP-SIMPLIFY-AND SYSTEM::SIMPLIFY-AND-COMPLEX SYSTEM::SUBTYPEP-LIST (COMPLEX) SYSTEM::SUBTYPEP-ATOM (COMPLEX) SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-COMPLEX> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION COMPLEXP>)") ;;COMPLEX;;
  1010. (clisp-symbol :COMMON-LISP "COMPLEXP" "NIL") ;;COMPLEXP;;
  1011. (clisp-symbol :COMMON-LISP "COMPUTE-RESTARTS" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 811 814)))") ;;COMPUTE-RESTARTS;;
  1012. (clisp-symbol :COMMON-LISP "COMPUTE-RESTARTS-1" "NIL") ;;COMMON-LISP::COMPUTE-RESTARTS-1;;
  1013. (clisp-symbol :COMMON-LISP "CONCATENATE" "NIL") ;;CONCATENATE;;
  1014. (clisp-symbol :COMMON-LISP "CONCATENATED-STREAM" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS CONCATENATED-STREAM> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYSTEM::CONCATENATED-STREAM-P>)") ;;CONCATENATED-STREAM;;
  1015. (clisp-symbol :COMMON-LISP "CONCATENATED-STREAM-STREAMS" "NIL") ;;CONCATENATED-STREAM-STREAMS;;
  1016. (clisp-symbol :COMMON-LISP "COND" "(SYSTEM::MACRO #<COMPILED-FUNCTION COND>)") ;;COND;;
  1017. (clisp-symbol :COMMON-LISP "CONDITION" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS CONDITION> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 49 61)))") ;;CONDITION;;
  1018. (clisp-symbol :COMMON-LISP "CONJUGATE" "NIL") ;;CONJUGATE;;
  1019. (clisp-symbol :COMMON-LISP "CONS" "(SYSTEM::INSTRUCTION 93 CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS CONS> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::SUBTYPEP-DECIDE SYSTEM::SUBTYPEP-CONS SYSTEM::SUBTYPEP-SIMPLIFY-OR SYSTEM::SIMPLIFY-OR-CONS SYSTEM::SUBTYPEP-SIMPLIFY-AND SYSTEM::SIMPLIFY-AND-CONS SYSTEM::SUBTYPEP-LIST (CONS) SYSTEM::SUBTYPEP-ATOM (CONS) SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-CONS> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION CONSP>)") ;;CONS;;
  1020. (clisp-symbol :COMMON-LISP "CONSP" "NIL") ;;CONSP;;
  1021. (clisp-symbol :COMMON-LISP "CONSTANTLY" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs2.fas\" 76 80)))") ;;CONSTANTLY;;
  1022. (clisp-symbol :COMMON-LISP "CONSTANTLY-1" "NIL") ;;COMMON-LISP::CONSTANTLY-1;;
  1023. (clisp-symbol :COMMON-LISP "CONSTANTP" "NIL") ;;CONSTANTP;;
  1024. (clisp-symbol :COMMON-LISP "CONTINUE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1154 1156)))") ;;CONTINUE;;
  1025. (clisp-symbol :COMMON-LISP "CONTROL-ERROR" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS CONTROL-ERROR> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 337 340)))") ;;CONTROL-ERROR;;
  1026. (clisp-symbol :COMMON-LISP "COPY-ALIST" "NIL") ;;COPY-ALIST;;
  1027. (clisp-symbol :COMMON-LISP "COPY-LIST" "NIL") ;;COPY-LIST;;
  1028. (clisp-symbol :COMMON-LISP "COPY-PPRINT-DISPATCH" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/pprint.fas\" 60 71)))") ;;COPY-PPRINT-DISPATCH;;
  1029. (clisp-symbol :COMMON-LISP "COPY-READTABLE" "NIL") ;;COPY-READTABLE;;
  1030. (clisp-symbol :COMMON-LISP "COPY-SEQ" "NIL") ;;COPY-SEQ;;
  1031. (clisp-symbol :COMMON-LISP "COPY-STRUCTURE" "NIL") ;;COPY-STRUCTURE;;
  1032. (clisp-symbol :COMMON-LISP "COPY-SYMBOL" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 14 29)))") ;;COPY-SYMBOL;;
  1033. (clisp-symbol :COMMON-LISP "COPY-TREE" "NIL") ;;COPY-TREE;;
  1034. (clisp-symbol :COMMON-LISP "COS" "NIL") ;;COS;;
  1035. (clisp-symbol :COMMON-LISP "COSH" "NIL") ;;COSH;;
  1036. (clisp-symbol :COMMON-LISP "COUNT" "NIL") ;;COUNT;;
  1037. (clisp-symbol :COMMON-LISP "COUNT-IF" "NIL") ;;COUNT-IF;;
  1038. (clisp-symbol :COMMON-LISP "COUNT-IF-NOT" "NIL") ;;COUNT-IF-NOT;;
  1039. (clisp-symbol :COMMON-LISP "CTYPECASE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1396 1475)))") ;;CTYPECASE;;
  1040. (clisp-symbol :COMMON-LISP "DEBUG" "NIL") ;;DEBUG;;
  1041. (clisp-symbol :COMMON-LISP "DECF" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 789 790)))") ;;DECF;;
  1042. (clisp-symbol :COMMON-LISP "DECLAIM" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs2.fas\" 13 21)))") ;;DECLAIM;;
  1043. (clisp-symbol :COMMON-LISP "DECLARATION" "NIL") ;;DECLARATION;;
  1044. (clisp-symbol :COMMON-LISP "DECLARE" "(SYSTEM::MACRO #<COMPILED-FUNCTION DECLARE>)") ;;DECLARE;;
  1045. (clisp-symbol :COMMON-LISP "DECODE-FLOAT" "NIL") ;;DECODE-FLOAT;;
  1046. (clisp-symbol :COMMON-LISP "DECODE-UNIVERSAL-TIME" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 651 791)))") ;;DECODE-UNIVERSAL-TIME;;
  1047. (clisp-symbol :COMMON-LISP "DEFCONSTANT" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros1.fas\" 62 82)))") ;;DEFCONSTANT;;
  1048. (clisp-symbol :COMMON-LISP "DEFINE-COMPILER-MACRO" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/cmacros.fas\" 74 88)))") ;;DEFINE-COMPILER-MACRO;;
  1049. (clisp-symbol :COMMON-LISP "DEFINE-CONDITION" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 85 152)))") ;;DEFINE-CONDITION;;
  1050. (clisp-symbol :COMMON-LISP "DEFINE-MODIFY-MACRO" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 743 788)))") ;;DEFINE-MODIFY-MACRO;;
  1051. (clisp-symbol :COMMON-LISP "DEFINE-MODIFY-MACRO-1" "NIL") ;;COMMON-LISP::DEFINE-MODIFY-MACRO-1;;
  1052. (clisp-symbol :COMMON-LISP "DEFINE-SETF-EXPANDER" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 354 414)))") ;;DEFINE-SETF-EXPANDER;;
  1053. (clisp-symbol :COMMON-LISP "DEFINE-SYMBOL-MACRO" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros2.fas\" 213 229)))") ;;DEFINE-SYMBOL-MACRO;;
  1054. (clisp-symbol :COMMON-LISP "DEFMACRO" "NIL") ;;DEFMACRO;;
  1055. (clisp-symbol :COMMON-LISP "DEFPACKAGE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defpackage.fas\" 11 202)))") ;;DEFPACKAGE;;
  1056. (clisp-symbol :COMMON-LISP "DEFPACKAGE-MODERNIZE" "NIL") ;;COMMON-LISP::DEFPACKAGE-MODERNIZE;;
  1057. (clisp-symbol :COMMON-LISP "DEFPACKAGE-RECORD-SYMNAME" "NIL") ;;COMMON-LISP::DEFPACKAGE-RECORD-SYMNAME;;
  1058. (clisp-symbol :COMMON-LISP "DEFPARAMETER" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros1.fas\" 42 60)))") ;;DEFPARAMETER;;
  1059. (clisp-symbol :COMMON-LISP "DEFSETF" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 415 500)))") ;;DEFSETF;;
  1060. (clisp-symbol :COMMON-LISP "DEFSETF-1" "NIL") ;;COMMON-LISP::DEFSETF-1;;
  1061. (clisp-symbol :COMMON-LISP "DEFSTRUCT" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defstruct.fas\" 586 1134)))") ;;DEFSTRUCT;;
  1062. (clisp-symbol :COMMON-LISP "DEFSTRUCT-1" "NIL") ;;COMMON-LISP::DEFSTRUCT-1;;
  1063. (clisp-symbol :COMMON-LISP "DEFSTRUCT-2" "NIL") ;;COMMON-LISP::DEFSTRUCT-2;;
  1064. (clisp-symbol :COMMON-LISP "DEFTYPE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros2.fas\" 169 208)))") ;;DEFTYPE;;
  1065. (clisp-symbol :COMMON-LISP "DEFUN" "NIL") ;;DEFUN;;
  1066. (clisp-symbol :COMMON-LISP "DEFVAR" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros1.fas\" 19 40)))") ;;DEFVAR;;
  1067. (clisp-symbol :COMMON-LISP "DELETE" "NIL") ;;DELETE;;
  1068. (clisp-symbol :COMMON-LISP "DELETE-DUPLICATES" "NIL") ;;DELETE-DUPLICATES;;
  1069. (clisp-symbol :COMMON-LISP "DELETE-FILE" "NIL") ;;DELETE-FILE;;
  1070. (clisp-symbol :COMMON-LISP "DELETE-IF" "NIL") ;;DELETE-IF;;
  1071. (clisp-symbol :COMMON-LISP "DELETE-IF-NOT" "NIL") ;;DELETE-IF-NOT;;
  1072. (clisp-symbol :COMMON-LISP "DELETE-PACKAGE" "NIL") ;;DELETE-PACKAGE;;
  1073. (clisp-symbol :COMMON-LISP "DENOMINATOR" "NIL") ;;DENOMINATOR;;
  1074. (clisp-symbol :COMMON-LISP "DEPOSIT-FIELD" "NIL") ;;DEPOSIT-FIELD;;
  1075. (clisp-symbol :COMMON-LISP "DESCRIBE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/describe.fas\" 582 601)))") ;;DESCRIBE;;
  1076. (clisp-symbol :COMMON-LISP "DESTRUCTURING-BIND" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs2.fas\" 23 51)))") ;;DESTRUCTURING-BIND;;
  1077. (clisp-symbol :COMMON-LISP "DIGIT-CHAR" "NIL") ;;DIGIT-CHAR;;
  1078. (clisp-symbol :COMMON-LISP "DIGIT-CHAR-P" "NIL") ;;DIGIT-CHAR-P;;
  1079. (clisp-symbol :COMMON-LISP "DIRECTORY" "NIL") ;;DIRECTORY;;
  1080. (clisp-symbol :COMMON-LISP "DIRECTORY-NAMESTRING" "NIL") ;;DIRECTORY-NAMESTRING;;
  1081. (clisp-symbol :COMMON-LISP "DISASSEMBLE" "NIL") ;;DISASSEMBLE;;
  1082. (clisp-symbol :COMMON-LISP "DIVISION-BY-ZERO" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS DIVISION-BY-ZERO> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 347 348)))") ;;DIVISION-BY-ZERO;;
  1083. (clisp-symbol :COMMON-LISP "DO" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros1.fas\" 196 198)))") ;;DO;;
  1084. (clisp-symbol :COMMON-LISP "DO*" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros1.fas\" 200 202)))") ;;DO*;;
  1085. (clisp-symbol :COMMON-LISP "DO-ALL-SYMBOLS" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 75 84)))") ;;DO-ALL-SYMBOLS;;
  1086. (clisp-symbol :COMMON-LISP "DO-EXTERNAL-SYMBOLS" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 59 73)))") ;;DO-EXTERNAL-SYMBOLS;;
  1087. (clisp-symbol :COMMON-LISP "DO-SYMBOLS" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 43 57)))") ;;DO-SYMBOLS;;
  1088. (clisp-symbol :COMMON-LISP "DOLIST" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros1.fas\" 204 219)))") ;;DOLIST;;
  1089. (clisp-symbol :COMMON-LISP "DOTIMES" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros1.fas\" 222 236)))") ;;DOTIMES;;
  1090. (clisp-symbol :COMMON-LISP "DOUBLE-FLOAT" "(SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-DOUBLE-FLOAT> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYSTEM::DOUBLE-FLOAT-P>)") ;;DOUBLE-FLOAT;;
  1091. (clisp-symbol :COMMON-LISP "DOUBLE-FLOAT-EPSILON" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;DOUBLE-FLOAT-EPSILON;;
  1092. (clisp-symbol :COMMON-LISP "DOUBLE-FLOAT-NEGATIVE-EPSILON" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;DOUBLE-FLOAT-NEGATIVE-EPSILON;;
  1093. (clisp-symbol :COMMON-LISP "DPB" "NIL") ;;DPB;;
  1094. (clisp-symbol :COMMON-LISP "DRIBBLE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/dribble.fas\" 66 71)))") ;;DRIBBLE;;
  1095. (clisp-symbol :COMMON-LISP "DYNAMIC-EXTENT" "NIL") ;;DYNAMIC-EXTENT;;
  1096. (clisp-symbol :COMMON-LISP "ECASE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1396 1475)))") ;;ECASE;;
  1097. (clisp-symbol :COMMON-LISP "ECHO-STREAM" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS ECHO-STREAM> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYSTEM::ECHO-STREAM-P>)") ;;ECHO-STREAM;;
  1098. (clisp-symbol :COMMON-LISP "ECHO-STREAM-INPUT-STREAM" "NIL") ;;ECHO-STREAM-INPUT-STREAM;;
  1099. (clisp-symbol :COMMON-LISP "ECHO-STREAM-OUTPUT-STREAM" "NIL") ;;ECHO-STREAM-OUTPUT-STREAM;;
  1100. (clisp-symbol :COMMON-LISP "ED" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/edit.fas\" 43 84)))") ;;ED;;
  1101. (clisp-symbol :COMMON-LISP "EIGHTH" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-EIGHTH>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 547 547)))") ;;EIGHTH;;
  1102. (clisp-symbol :COMMON-LISP "ELT" "(SYSTEM::SETF-FUNCTION SYSTEM::|(SETF ELT)|)") ;;ELT;;
  1103. (clisp-symbol :COMMON-LISP "ENCODE-UNIVERSAL-TIME" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 651 791)))") ;;ENCODE-UNIVERSAL-TIME;;
  1104. (clisp-symbol :COMMON-LISP "END-OF-FILE" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS END-OF-FILE> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 410 411)))") ;;END-OF-FILE;;
  1105. (clisp-symbol :COMMON-LISP "ENDP" "NIL") ;;ENDP;;
  1106. (clisp-symbol :COMMON-LISP "ENOUGH-NAMESTRING" "NIL") ;;ENOUGH-NAMESTRING;;
  1107. (clisp-symbol :COMMON-LISP "ENSURE-DIRECTORIES-EXIST" "NIL") ;;ENSURE-DIRECTORIES-EXIST;;
  1108. (clisp-symbol :COMMON-LISP "EQ" "(SYSTEM::INSTRUCTION 90)") ;;EQ;;
  1109. (clisp-symbol :COMMON-LISP "EQL" "NIL") ;;EQL;;
  1110. (clisp-symbol :COMMON-LISP "EQUAL" "NIL") ;;EQUAL;;
  1111. (clisp-symbol :COMMON-LISP "EQUALP" "NIL") ;;EQUALP;;
  1112. (clisp-symbol :COMMON-LISP "ERROR" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS ERROR> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 322 323)))") ;;ERROR;;
  1113. (clisp-symbol :COMMON-LISP "ETYPECASE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1396 1475)))") ;;ETYPECASE;;
  1114. (clisp-symbol :COMMON-LISP "EVAL" "NIL") ;;EVAL;;
  1115. (clisp-symbol :COMMON-LISP "EVAL-WHEN" "NIL") ;;EVAL-WHEN;;
  1116. (clisp-symbol :COMMON-LISP "EVENP" "NIL") ;;EVENP;;
  1117. (clisp-symbol :COMMON-LISP "EVERY" "NIL") ;;EVERY;;
  1118. (clisp-symbol :COMMON-LISP "EXP" "NIL") ;;EXP;;
  1119. (clisp-symbol :COMMON-LISP "EXPORT" "NIL") ;;EXPORT;;
  1120. (clisp-symbol :COMMON-LISP "EXPT" "NIL") ;;EXPT;;
  1121. (clisp-symbol :COMMON-LISP "EXTENDED-CHAR" "(SYSTEM::TYPE-SYMBOL #<COMPILED-FUNCTION SYSTEM::TYPE-SYMBOL-EXTENDED-CHAR>)") ;;EXTENDED-CHAR;;
  1122. (clisp-symbol :COMMON-LISP "FBOUNDP" "NIL") ;;FBOUNDP;;
  1123. (clisp-symbol :COMMON-LISP "FCEILING" "NIL") ;;FCEILING;;
  1124. (clisp-symbol :COMMON-LISP "FDEFINITION" "(SYSTEM::SETF-EXPANDER SYSTEM::SET-FDEFINITION SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 982 982)))") ;;FDEFINITION;;
  1125. (clisp-symbol :COMMON-LISP "FFLOOR" "NIL") ;;FFLOOR;;
  1126. (clisp-symbol :COMMON-LISP "FIFTH" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-FIFTH>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 544 544)))") ;;FIFTH;;
  1127. (clisp-symbol :COMMON-LISP "FILE-AUTHOR" "NIL") ;;FILE-AUTHOR;;
  1128. (clisp-symbol :COMMON-LISP "FILE-ERROR" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS FILE-ERROR> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 416 418)))") ;;FILE-ERROR;;
  1129. (clisp-symbol :COMMON-LISP "FILE-ERROR-PATHNAME" "NIL") ;;FILE-ERROR-PATHNAME;;
  1130. (clisp-symbol :COMMON-LISP "FILE-LENGTH" "NIL") ;;FILE-LENGTH;;
  1131. (clisp-symbol :COMMON-LISP "FILE-NAMESTRING" "NIL") ;;FILE-NAMESTRING;;
  1132. (clisp-symbol :COMMON-LISP "FILE-POSITION" "NIL") ;;FILE-POSITION;;
  1133. (clisp-symbol :COMMON-LISP "FILE-STREAM" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS FILE-STREAM> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYSTEM::FILE-STREAM-P>)") ;;FILE-STREAM;;
  1134. (clisp-symbol :COMMON-LISP "FILE-STRING-LENGTH" "NIL") ;;FILE-STRING-LENGTH;;
  1135. (clisp-symbol :COMMON-LISP "FILE-WRITE-DATE" "NIL") ;;FILE-WRITE-DATE;;
  1136. (clisp-symbol :COMMON-LISP "FILL" "NIL") ;;FILL;;
  1137. (clisp-symbol :COMMON-LISP "FILL-POINTER" "(SYSTEM::SETF-EXPANDER SYSTEM::SET-FILL-POINTER SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 967 968)))") ;;FILL-POINTER;;
  1138. (clisp-symbol :COMMON-LISP "FIND" "NIL") ;;FIND;;
  1139. (clisp-symbol :COMMON-LISP "FIND-ALL-SYMBOLS" "NIL") ;;FIND-ALL-SYMBOLS;;
  1140. (clisp-symbol :COMMON-LISP "FIND-IF" "NIL") ;;FIND-IF;;
  1141. (clisp-symbol :COMMON-LISP "FIND-IF-NOT" "NIL") ;;FIND-IF-NOT;;
  1142. (clisp-symbol :COMMON-LISP "FIND-PACKAGE" "NIL") ;;FIND-PACKAGE;;
  1143. (clisp-symbol :COMMON-LISP "FIND-RESTART" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 816 845)))") ;;FIND-RESTART;;
  1144. (clisp-symbol :COMMON-LISP "FIND-SYMBOL" "NIL") ;;FIND-SYMBOL;;
  1145. (clisp-symbol :COMMON-LISP "FINISH-OUTPUT" "NIL") ;;FINISH-OUTPUT;;
  1146. (clisp-symbol :COMMON-LISP "FIRST" "(SYSTEM::SETF-EXPANDER SYSTEM::%RPLACA SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 540 540)))") ;;FIRST;;
  1147. (clisp-symbol :COMMON-LISP "FIXNUM" "(SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYSTEM::FIXNUMP>)") ;;FIXNUM;;
  1148. (clisp-symbol :COMMON-LISP "FLET" "NIL") ;;FLET;;
  1149. (clisp-symbol :COMMON-LISP "FLOAT" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS FLOAT> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-FLOAT> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION FLOATP>)") ;;FLOAT;;
  1150. (clisp-symbol :COMMON-LISP "FLOAT-DIGITS" "NIL") ;;FLOAT-DIGITS;;
  1151. (clisp-symbol :COMMON-LISP "FLOAT-PRECISION" "NIL") ;;FLOAT-PRECISION;;
  1152. (clisp-symbol :COMMON-LISP "FLOAT-RADIX" "NIL") ;;FLOAT-RADIX;;
  1153. (clisp-symbol :COMMON-LISP "FLOAT-SIGN" "NIL") ;;FLOAT-SIGN;;
  1154. (clisp-symbol :COMMON-LISP "FLOATING-POINT-INEXACT" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS FLOATING-POINT-INEXACT> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 356 356)))") ;;FLOATING-POINT-INEXACT;;
  1155. (clisp-symbol :COMMON-LISP "FLOATING-POINT-INVALID-OPERATION" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS FLOATING-POINT-INVALID-OPERATION> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 358 358)))") ;;FLOATING-POINT-INVALID-OPERATION;;
  1156. (clisp-symbol :COMMON-LISP "FLOATING-POINT-OVERFLOW" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS FLOATING-POINT-OVERFLOW> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 350 351)))") ;;FLOATING-POINT-OVERFLOW;;
  1157. (clisp-symbol :COMMON-LISP "FLOATING-POINT-UNDERFLOW" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS FLOATING-POINT-UNDERFLOW> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 353 354)))") ;;FLOATING-POINT-UNDERFLOW;;
  1158. (clisp-symbol :COMMON-LISP "FLOATP" "NIL") ;;FLOATP;;
  1159. (clisp-symbol :COMMON-LISP "FLOOR" "NIL") ;;FLOOR;;
  1160. (clisp-symbol :COMMON-LISP "FMAKUNBOUND" "NIL") ;;FMAKUNBOUND;;
  1161. (clisp-symbol :COMMON-LISP "FORCE-OUTPUT" "NIL") ;;FORCE-OUTPUT;;
  1162. (clisp-symbol :COMMON-LISP "FORMAT" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/format.fas\" 337 363)))") ;;FORMAT;;
  1163. (clisp-symbol :COMMON-LISP "FORMATTER" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/format.fas\" 2570 2596)))") ;;FORMATTER;;
  1164. (clisp-symbol :COMMON-LISP "FOURTH" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-FOURTH>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 543 543)))") ;;FOURTH;;
  1165. (clisp-symbol :COMMON-LISP "FRESH-LINE" "NIL") ;;FRESH-LINE;;
  1166. (clisp-symbol :COMMON-LISP "FROUND" "NIL") ;;FROUND;;
  1167. (clisp-symbol :COMMON-LISP "FTRUNCATE" "NIL") ;;FTRUNCATE;;
  1168. (clisp-symbol :COMMON-LISP "FTYPE" "NIL") ;;FTYPE;;
  1169. (clisp-symbol :COMMON-LISP "FUNCALL" "(SYSTEM::INSTRUCTION 54 SYSTEM::SETF-EXPANDER (-5 . #<COMPILED-FUNCTION #:SETF-FUNCALL>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 1125 1144)))") ;;FUNCALL;;
  1170. (clisp-symbol :COMMON-LISP "FUNCTION" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS FUNCTION> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION FUNCTIONP>)") ;;FUNCTION;;
  1171. (clisp-symbol :COMMON-LISP "FUNCTION-LAMBDA-EXPRESSION" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/functions.fas\" 19 42)))") ;;FUNCTION-LAMBDA-EXPRESSION;;
  1172. (clisp-symbol :COMMON-LISP "FUNCTIONP" "NIL") ;;FUNCTIONP;;
  1173. (clisp-symbol :COMMON-LISP "GCD" "NIL") ;;GCD;;
  1174. (clisp-symbol :COMMON-LISP "GENSYM" "NIL") ;;GENSYM;;
  1175. (clisp-symbol :COMMON-LISP "GENTEMP" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 31 40)))") ;;GENTEMP;;
  1176. (clisp-symbol :COMMON-LISP "GET" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-GET>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 929 937)))") ;;GET;;
  1177. (clisp-symbol :COMMON-LISP "GET-DECODED-TIME" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 791 795)))") ;;GET-DECODED-TIME;;
  1178. (clisp-symbol :COMMON-LISP "GET-DISPATCH-MACRO-CHARACTER" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-GET-DISPATCH-MACRO-CHARACTER>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 1206 1210)))") ;;GET-DISPATCH-MACRO-CHARACTER;;
  1179. (clisp-symbol :COMMON-LISP "GET-INTERNAL-REAL-TIME" "NIL") ;;GET-INTERNAL-REAL-TIME;;
  1180. (clisp-symbol :COMMON-LISP "GET-INTERNAL-RUN-TIME" "NIL") ;;GET-INTERNAL-RUN-TIME;;
  1181. (clisp-symbol :COMMON-LISP "GET-MACRO-CHARACTER" "NIL") ;;GET-MACRO-CHARACTER;;
  1182. (clisp-symbol :COMMON-LISP "GET-OUTPUT-STREAM-STRING" "NIL") ;;GET-OUTPUT-STREAM-STRING;;
  1183. (clisp-symbol :COMMON-LISP "GET-PROPERTIES" "NIL") ;;GET-PROPERTIES;;
  1184. (clisp-symbol :COMMON-LISP "GET-SETF-EXPANSION" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 27 138)))") ;;GET-SETF-EXPANSION;;
  1185. (clisp-symbol :COMMON-LISP "GET-UNIVERSAL-TIME" "NIL") ;;GET-UNIVERSAL-TIME;;
  1186. (clisp-symbol :COMMON-LISP "GETF" "(SYSTEM::SETF-EXPANDER (-5 . #<COMPILED-FUNCTION #:SETF-GETF>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 938 959)))") ;;GETF;;
  1187. (clisp-symbol :COMMON-LISP "GETHASH" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-GETHASH>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 960 966)))") ;;GETHASH;;
  1188. (clisp-symbol :COMMON-LISP "GO" "(SYSTEM::INSTRUCTION 78)") ;;GO;;
  1189. (clisp-symbol :COMMON-LISP "GRAPHIC-CHAR-P" "NIL") ;;GRAPHIC-CHAR-P;;
  1190. (clisp-symbol :COMMON-LISP "HANDLER-BIND" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 550 614)))") ;;HANDLER-BIND;;
  1191. (clisp-symbol :COMMON-LISP "HANDLER-CASE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 631 697)))") ;;HANDLER-CASE;;
  1192. (clisp-symbol :COMMON-LISP "HASH-TABLE" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS HASH-TABLE> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::SUBTYPEP-DECIDE SYSTEM::SUBTYPEP-MISC SYSTEM::SUBTYPEP-SIMPLIFY-OR SYSTEM::SIMPLIFY-OR-MISC SYSTEM::SUBTYPEP-SIMPLIFY-AND SYSTEM::SIMPLIFY-AND-MISC SYSTEM::SUBTYPEP-LIST NIL SYSTEM::SUBTYPEP-ATOM (HASH-TABLE) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION HASH-TABLE-P>)") ;;HASH-TABLE;;
  1193. (clisp-symbol :COMMON-LISP "HASH-TABLE-COUNT" "NIL") ;;HASH-TABLE-COUNT;;
  1194. (clisp-symbol :COMMON-LISP "HASH-TABLE-P" "NIL") ;;HASH-TABLE-P;;
  1195. (clisp-symbol :COMMON-LISP "HASH-TABLE-REHASH-SIZE" "NIL") ;;HASH-TABLE-REHASH-SIZE;;
  1196. (clisp-symbol :COMMON-LISP "HASH-TABLE-REHASH-THRESHOLD" "NIL") ;;HASH-TABLE-REHASH-THRESHOLD;;
  1197. (clisp-symbol :COMMON-LISP "HASH-TABLE-SIZE" "NIL") ;;HASH-TABLE-SIZE;;
  1198. (clisp-symbol :COMMON-LISP "HASH-TABLE-TEST" "NIL") ;;HASH-TABLE-TEST;;
  1199. (clisp-symbol :COMMON-LISP "HOST-NAMESTRING" "NIL") ;;HOST-NAMESTRING;;
  1200. (clisp-symbol :COMMON-LISP "IDENTITY" "NIL") ;;IDENTITY;;
  1201. (clisp-symbol :COMMON-LISP "IF" "(SYSTEM::SETF-EXPANDER (-5 . #<COMPILED-FUNCTION #:SETF-IF>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 1179 1205)))") ;;IF;;
  1202. (clisp-symbol :COMMON-LISP "IGNORABLE" "NIL") ;;IGNORABLE;;
  1203. (clisp-symbol :COMMON-LISP "IGNORE" "NIL") ;;IGNORE;;
  1204. (clisp-symbol :COMMON-LISP "IGNORE-ERRORS" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 616 629)))") ;;IGNORE-ERRORS;;
  1205. (clisp-symbol :COMMON-LISP "IMAGPART" "NIL") ;;IMAGPART;;
  1206. (clisp-symbol :COMMON-LISP "IMPORT" "NIL") ;;IMPORT;;
  1207. (clisp-symbol :COMMON-LISP "IN-PACKAGE" "NIL") ;;IN-PACKAGE;;
  1208. (clisp-symbol :COMMON-LISP "INCF" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 791 792)))") ;;INCF;;
  1209. (clisp-symbol :COMMON-LISP "INLINE" "NIL") ;;INLINE;;
  1210. (clisp-symbol :COMMON-LISP "INPUT-STREAM-P" "NIL") ;;INPUT-STREAM-P;;
  1211. (clisp-symbol :COMMON-LISP "INSPECT" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/inspect.fas\" 642 662)))") ;;INSPECT;;
  1212. (clisp-symbol :COMMON-LISP "INTEGER" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS INTEGER> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-INTEGER> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION INTEGERP>)") ;;INTEGER;;
  1213. (clisp-symbol :COMMON-LISP "INTEGER-DECODE-FLOAT" "NIL") ;;INTEGER-DECODE-FLOAT;;
  1214. (clisp-symbol :COMMON-LISP "INTEGER-LENGTH" "NIL") ;;INTEGER-LENGTH;;
  1215. (clisp-symbol :COMMON-LISP "INTEGERP" "NIL") ;;INTEGERP;;
  1216. (clisp-symbol :COMMON-LISP "INTERACTIVE-STREAM-P" "NIL") ;;INTERACTIVE-STREAM-P;;
  1217. (clisp-symbol :COMMON-LISP "INTERN" "NIL") ;;INTERN;;
  1218. (clisp-symbol :COMMON-LISP "INTERNAL-TIME-UNITS-PER-SECOND" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;INTERNAL-TIME-UNITS-PER-SECOND;;
  1219. (clisp-symbol :COMMON-LISP "INTERSECTION" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 262 403)))") ;;INTERSECTION;;
  1220. (clisp-symbol :COMMON-LISP "INVOKE-DEBUGGER" "NIL") ;;INVOKE-DEBUGGER;;
  1221. (clisp-symbol :COMMON-LISP "INVOKE-RESTART" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 860 864)))") ;;INVOKE-RESTART;;
  1222. (clisp-symbol :COMMON-LISP "INVOKE-RESTART-INTERACTIVELY" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 876 881)))") ;;INVOKE-RESTART-INTERACTIVELY;;
  1223. (clisp-symbol :COMMON-LISP "ISQRT" "NIL") ;;ISQRT;;
  1224. (clisp-symbol :COMMON-LISP "KEYWORD" "(SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION KEYWORDP>)") ;;KEYWORD;;
  1225. (clisp-symbol :COMMON-LISP "KEYWORDP" "NIL") ;;KEYWORDP;;
  1226. (clisp-symbol :COMMON-LISP "LABELS" "NIL") ;;LABELS;;
  1227. (clisp-symbol :COMMON-LISP "LAMBDA" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs2.fas\" 141 147)))") ;;LAMBDA;;
  1228. (clisp-symbol :COMMON-LISP "LAMBDA-LIST-KEYWORDS" "NIL") ;;LAMBDA-LIST-KEYWORDS;;
  1229. (clisp-symbol :COMMON-LISP "LAMBDA-PARAMETERS-LIMIT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;LAMBDA-PARAMETERS-LIMIT;;
  1230. (clisp-symbol :COMMON-LISP "LAST" "NIL") ;;LAST;;
  1231. (clisp-symbol :COMMON-LISP "LCM" "NIL") ;;LCM;;
  1232. (clisp-symbol :COMMON-LISP "LDB" "(SYSTEM::SETF-EXPANDER (-5 . #<COMPILED-FUNCTION #:SETF-LDB>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 1015 1029)))") ;;LDB;;
  1233. (clisp-symbol :COMMON-LISP "LDB-TEST" "NIL") ;;LDB-TEST;;
  1234. (clisp-symbol :COMMON-LISP "LDIFF" "NIL") ;;LDIFF;;
  1235. (clisp-symbol :COMMON-LISP "LEAST-NEGATIVE-DOUBLE-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;LEAST-NEGATIVE-DOUBLE-FLOAT;;
  1236. (clisp-symbol :COMMON-LISP "LEAST-NEGATIVE-LONG-FLOAT" "NIL") ;;LEAST-NEGATIVE-LONG-FLOAT;;
  1237. (clisp-symbol :COMMON-LISP "LEAST-NEGATIVE-NORMALIZED-DOUBLE-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;LEAST-NEGATIVE-NORMALIZED-DOUBLE-FLOAT;;
  1238. (clisp-symbol :COMMON-LISP "LEAST-NEGATIVE-NORMALIZED-LONG-FLOAT" "NIL") ;;LEAST-NEGATIVE-NORMALIZED-LONG-FLOAT;;
  1239. (clisp-symbol :COMMON-LISP "LEAST-NEGATIVE-NORMALIZED-SHORT-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;LEAST-NEGATIVE-NORMALIZED-SHORT-FLOAT;;
  1240. (clisp-symbol :COMMON-LISP "LEAST-NEGATIVE-NORMALIZED-SINGLE-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;LEAST-NEGATIVE-NORMALIZED-SINGLE-FLOAT;;
  1241. (clisp-symbol :COMMON-LISP "LEAST-NEGATIVE-SHORT-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;LEAST-NEGATIVE-SHORT-FLOAT;;
  1242. (clisp-symbol :COMMON-LISP "LEAST-NEGATIVE-SINGLE-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;LEAST-NEGATIVE-SINGLE-FLOAT;;
  1243. (clisp-symbol :COMMON-LISP "LEAST-POSITIVE-DOUBLE-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;LEAST-POSITIVE-DOUBLE-FLOAT;;
  1244. (clisp-symbol :COMMON-LISP "LEAST-POSITIVE-LONG-FLOAT" "NIL") ;;LEAST-POSITIVE-LONG-FLOAT;;
  1245. (clisp-symbol :COMMON-LISP "LEAST-POSITIVE-NORMALIZED-DOUBLE-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;LEAST-POSITIVE-NORMALIZED-DOUBLE-FLOAT;;
  1246. (clisp-symbol :COMMON-LISP "LEAST-POSITIVE-NORMALIZED-LONG-FLOAT" "NIL") ;;LEAST-POSITIVE-NORMALIZED-LONG-FLOAT;;
  1247. (clisp-symbol :COMMON-LISP "LEAST-POSITIVE-NORMALIZED-SHORT-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;LEAST-POSITIVE-NORMALIZED-SHORT-FLOAT;;
  1248. (clisp-symbol :COMMON-LISP "LEAST-POSITIVE-NORMALIZED-SINGLE-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;LEAST-POSITIVE-NORMALIZED-SINGLE-FLOAT;;
  1249. (clisp-symbol :COMMON-LISP "LEAST-POSITIVE-SHORT-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;LEAST-POSITIVE-SHORT-FLOAT;;
  1250. (clisp-symbol :COMMON-LISP "LEAST-POSITIVE-SINGLE-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;LEAST-POSITIVE-SINGLE-FLOAT;;
  1251. (clisp-symbol :COMMON-LISP "LENGTH" "NIL") ;;LENGTH;;
  1252. (clisp-symbol :COMMON-LISP "LET" "NIL") ;;LET;;
  1253. (clisp-symbol :COMMON-LISP "LET*" "NIL") ;;LET*;;
  1254. (clisp-symbol :COMMON-LISP "LISP-IMPLEMENTATION-TYPE" "NIL") ;;LISP-IMPLEMENTATION-TYPE;;
  1255. (clisp-symbol :COMMON-LISP "LISP-IMPLEMENTATION-VERSION" "NIL") ;;LISP-IMPLEMENTATION-VERSION;;
  1256. (clisp-symbol :COMMON-LISP "LIST" "(CLOS::%METHOD-COMBINATION #<METHOD-COMBINATION LIST #x209F4A36> SYSTEM::INSTRUCTION 97 CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS LIST> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION LISTP>)") ;;LIST;;
  1257. (clisp-symbol :COMMON-LISP "LIST*" "(SYSTEM::INSTRUCTION 98)") ;;LIST*;;
  1258. (clisp-symbol :COMMON-LISP "LIST-ALL-PACKAGES" "NIL") ;;LIST-ALL-PACKAGES;;
  1259. (clisp-symbol :COMMON-LISP "LIST-LENGTH" "NIL") ;;LIST-LENGTH;;
  1260. (clisp-symbol :COMMON-LISP "LISTEN" "NIL") ;;LISTEN;;
  1261. (clisp-symbol :COMMON-LISP "LISTP" "NIL") ;;LISTP;;
  1262. (clisp-symbol :COMMON-LISP "LOAD" "(SYSTEM::INSTRUCTION 4)") ;;LOAD;;
  1263. (clisp-symbol :COMMON-LISP "LOAD-LOGICAL-PATHNAME-TRANSLATIONS" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 469 536)))") ;;LOAD-LOGICAL-PATHNAME-TRANSLATIONS;;
  1264. (clisp-symbol :COMMON-LISP "LOAD-TIME-VALUE" "NIL") ;;LOAD-TIME-VALUE;;
  1265. (clisp-symbol :COMMON-LISP "LOCALLY" "(SYSTEM::SETF-EXPANDER (-5 . #<COMPILED-FUNCTION #:SETF-LOCALLY>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 1163 1178)) SYSTEM::MACRO #<COMPILED-FUNCTION LOCALLY>)") ;;LOCALLY;;
  1266. (clisp-symbol :COMMON-LISP "LOG" "NIL") ;;LOG;;
  1267. (clisp-symbol :COMMON-LISP "LOGAND" "NIL") ;;LOGAND;;
  1268. (clisp-symbol :COMMON-LISP "LOGANDC1" "NIL") ;;LOGANDC1;;
  1269. (clisp-symbol :COMMON-LISP "LOGANDC2" "NIL") ;;LOGANDC2;;
  1270. (clisp-symbol :COMMON-LISP "LOGBITP" "NIL") ;;LOGBITP;;
  1271. (clisp-symbol :COMMON-LISP "LOGCOUNT" "NIL") ;;LOGCOUNT;;
  1272. (clisp-symbol :COMMON-LISP "LOGEQV" "NIL") ;;LOGEQV;;
  1273. (clisp-symbol :COMMON-LISP "LOGICAL-PATHNAME" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS LOGICAL-PATHNAME> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYSTEM::LOGICAL-PATHNAME-P>)") ;;LOGICAL-PATHNAME;;
  1274. (clisp-symbol :COMMON-LISP "LOGICAL-PATHNAME-TRANSLATIONS" "(SYSTEM::SETF-EXPANDER SYSTEM::SET-LOGICAL-PATHNAME-TRANSLATIONS SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 1221 1223)))") ;;LOGICAL-PATHNAME-TRANSLATIONS;;
  1275. (clisp-symbol :COMMON-LISP "LOGIOR" "NIL") ;;LOGIOR;;
  1276. (clisp-symbol :COMMON-LISP "LOGNAND" "NIL") ;;LOGNAND;;
  1277. (clisp-symbol :COMMON-LISP "LOGNOR" "NIL") ;;LOGNOR;;
  1278. (clisp-symbol :COMMON-LISP "LOGNOT" "NIL") ;;LOGNOT;;
  1279. (clisp-symbol :COMMON-LISP "LOGORC1" "NIL") ;;LOGORC1;;
  1280. (clisp-symbol :COMMON-LISP "LOGORC2" "NIL") ;;LOGORC2;;
  1281. (clisp-symbol :COMMON-LISP "LOGTEST" "NIL") ;;LOGTEST;;
  1282. (clisp-symbol :COMMON-LISP "LOGXOR" "NIL") ;;LOGXOR;;
  1283. (clisp-symbol :COMMON-LISP "LONG-FLOAT" "(SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-LONG-FLOAT> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYSTEM::LONG-FLOAT-P>)") ;;LONG-FLOAT;;
  1284. (clisp-symbol :COMMON-LISP "LONG-FLOAT-EPSILON" "NIL") ;;LONG-FLOAT-EPSILON;;
  1285. (clisp-symbol :COMMON-LISP "LONG-FLOAT-NEGATIVE-EPSILON" "NIL") ;;LONG-FLOAT-NEGATIVE-EPSILON;;
  1286. (clisp-symbol :COMMON-LISP "LONG-SITE-NAME" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/config.fas\" 16 22)))") ;;LONG-SITE-NAME;;
  1287. (clisp-symbol :COMMON-LISP "LOOP" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/loop.fas\" 1118 1125)))") ;;LOOP;;
  1288. (clisp-symbol :COMMON-LISP "LOOP-FINISH" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/loop.fas\" 1126 1128)))") ;;LOOP-FINISH;;
  1289. (clisp-symbol :COMMON-LISP "LOWER-CASE-P" "NIL") ;;LOWER-CASE-P;;
  1290. (clisp-symbol :COMMON-LISP "MACHINE-INSTANCE" "NIL") ;;MACHINE-INSTANCE;;
  1291. (clisp-symbol :COMMON-LISP "MACHINE-TYPE" "NIL") ;;MACHINE-TYPE;;
  1292. (clisp-symbol :COMMON-LISP "MACHINE-VERSION" "NIL") ;;MACHINE-VERSION;;
  1293. (clisp-symbol :COMMON-LISP "MACRO-FUNCTION" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-MACRO-FUNCTION>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 983 991)))") ;;MACRO-FUNCTION;;
  1294. (clisp-symbol :COMMON-LISP "MACROEXPAND" "NIL") ;;MACROEXPAND;;
  1295. (clisp-symbol :COMMON-LISP "MACROEXPAND-1" "NIL") ;;MACROEXPAND-1;;
  1296. (clisp-symbol :COMMON-LISP "MACROLET" "NIL") ;;MACROLET;;
  1297. (clisp-symbol :COMMON-LISP "MAKE-ARRAY" "NIL") ;;MAKE-ARRAY;;
  1298. (clisp-symbol :COMMON-LISP "MAKE-BROADCAST-STREAM" "NIL") ;;MAKE-BROADCAST-STREAM;;
  1299. (clisp-symbol :COMMON-LISP "MAKE-CONCATENATED-STREAM" "NIL") ;;MAKE-CONCATENATED-STREAM;;
  1300. (clisp-symbol :COMMON-LISP "MAKE-CONDITION" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 164 191)))") ;;MAKE-CONDITION;;
  1301. (clisp-symbol :COMMON-LISP "MAKE-DISPATCH-MACRO-CHARACTER" "NIL") ;;MAKE-DISPATCH-MACRO-CHARACTER;;
  1302. (clisp-symbol :COMMON-LISP "MAKE-ECHO-STREAM" "NIL") ;;MAKE-ECHO-STREAM;;
  1303. (clisp-symbol :COMMON-LISP "MAKE-HASH-TABLE" "NIL") ;;MAKE-HASH-TABLE;;
  1304. (clisp-symbol :COMMON-LISP "MAKE-LIST" "NIL") ;;MAKE-LIST;;
  1305. (clisp-symbol :COMMON-LISP "MAKE-PACKAGE" "NIL") ;;MAKE-PACKAGE;;
  1306. (clisp-symbol :COMMON-LISP "MAKE-PATHNAME" "NIL") ;;MAKE-PATHNAME;;
  1307. (clisp-symbol :COMMON-LISP "MAKE-RANDOM-STATE" "NIL") ;;MAKE-RANDOM-STATE;;
  1308. (clisp-symbol :COMMON-LISP "MAKE-SEQUENCE" "NIL") ;;MAKE-SEQUENCE;;
  1309. (clisp-symbol :COMMON-LISP "MAKE-STRING" "NIL") ;;MAKE-STRING;;
  1310. (clisp-symbol :COMMON-LISP "MAKE-STRING-INPUT-STREAM" "NIL") ;;MAKE-STRING-INPUT-STREAM;;
  1311. (clisp-symbol :COMMON-LISP "MAKE-STRING-OUTPUT-STREAM" "NIL") ;;MAKE-STRING-OUTPUT-STREAM;;
  1312. (clisp-symbol :COMMON-LISP "MAKE-SYMBOL" "NIL") ;;MAKE-SYMBOL;;
  1313. (clisp-symbol :COMMON-LISP "MAKE-SYNONYM-STREAM" "NIL") ;;MAKE-SYNONYM-STREAM;;
  1314. (clisp-symbol :COMMON-LISP "MAKE-TWO-WAY-STREAM" "NIL") ;;MAKE-TWO-WAY-STREAM;;
  1315. (clisp-symbol :COMMON-LISP "MAKUNBOUND" "NIL") ;;MAKUNBOUND;;
  1316. (clisp-symbol :COMMON-LISP "MAP" "NIL") ;;MAP;;
  1317. (clisp-symbol :COMMON-LISP "MAP-INTO" "NIL") ;;MAP-INTO;;
  1318. (clisp-symbol :COMMON-LISP "MAPC" "NIL") ;;MAPC;;
  1319. (clisp-symbol :COMMON-LISP "MAPCAN" "NIL") ;;MAPCAN;;
  1320. (clisp-symbol :COMMON-LISP "MAPCAR" "NIL") ;;MAPCAR;;
  1321. (clisp-symbol :COMMON-LISP "MAPCON" "NIL") ;;MAPCON;;
  1322. (clisp-symbol :COMMON-LISP "MAPHASH" "NIL") ;;MAPHASH;;
  1323. (clisp-symbol :COMMON-LISP "MAPL" "NIL") ;;MAPL;;
  1324. (clisp-symbol :COMMON-LISP "MAPLIST" "NIL") ;;MAPLIST;;
  1325. (clisp-symbol :COMMON-LISP "MASK-FIELD" "(SYSTEM::SETF-EXPANDER (-5 . #<COMPILED-FUNCTION #:SETF-MASK-FIELD>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 1030 1044)))") ;;MASK-FIELD;;
  1326. (clisp-symbol :COMMON-LISP "MAX" "(CLOS::%METHOD-COMBINATION #<METHOD-COMBINATION MAX #x209F4AA6>)") ;;MAX;;
  1327. (clisp-symbol :COMMON-LISP "MEMBER" "NIL") ;;MEMBER;;
  1328. (clisp-symbol :COMMON-LISP "MEMBER-IF" "NIL") ;;MEMBER-IF;;
  1329. (clisp-symbol :COMMON-LISP "MEMBER-IF-NOT" "NIL") ;;MEMBER-IF-NOT;;
  1330. (clisp-symbol :COMMON-LISP "MERGE" "NIL") ;;MERGE;;
  1331. (clisp-symbol :COMMON-LISP "MERGE-PATHNAMES" "NIL") ;;MERGE-PATHNAMES;;
  1332. (clisp-symbol :COMMON-LISP "MIN" "(CLOS::%METHOD-COMBINATION #<METHOD-COMBINATION MIN #x209F4B16>)") ;;MIN;;
  1333. (clisp-symbol :COMMON-LISP "MINUSP" "NIL") ;;MINUSP;;
  1334. (clisp-symbol :COMMON-LISP "MISMATCH" "NIL") ;;MISMATCH;;
  1335. (clisp-symbol :COMMON-LISP "MOD" "(SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-MOD>)") ;;MOD;;
  1336. (clisp-symbol :COMMON-LISP "MOST-NEGATIVE-DOUBLE-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;MOST-NEGATIVE-DOUBLE-FLOAT;;
  1337. (clisp-symbol :COMMON-LISP "MOST-NEGATIVE-FIXNUM" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;MOST-NEGATIVE-FIXNUM;;
  1338. (clisp-symbol :COMMON-LISP "MOST-NEGATIVE-LONG-FLOAT" "NIL") ;;MOST-NEGATIVE-LONG-FLOAT;;
  1339. (clisp-symbol :COMMON-LISP "MOST-NEGATIVE-SHORT-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;MOST-NEGATIVE-SHORT-FLOAT;;
  1340. (clisp-symbol :COMMON-LISP "MOST-NEGATIVE-SINGLE-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;MOST-NEGATIVE-SINGLE-FLOAT;;
  1341. (clisp-symbol :COMMON-LISP "MOST-POSITIVE-DOUBLE-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;MOST-POSITIVE-DOUBLE-FLOAT;;
  1342. (clisp-symbol :COMMON-LISP "MOST-POSITIVE-FIXNUM" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;MOST-POSITIVE-FIXNUM;;
  1343. (clisp-symbol :COMMON-LISP "MOST-POSITIVE-LONG-FLOAT" "NIL") ;;MOST-POSITIVE-LONG-FLOAT;;
  1344. (clisp-symbol :COMMON-LISP "MOST-POSITIVE-SHORT-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;MOST-POSITIVE-SHORT-FLOAT;;
  1345. (clisp-symbol :COMMON-LISP "MOST-POSITIVE-SINGLE-FLOAT" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;MOST-POSITIVE-SINGLE-FLOAT;;
  1346. (clisp-symbol :COMMON-LISP "MUFFLE-WARNING" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1158 1160)))") ;;MUFFLE-WARNING;;
  1347. (clisp-symbol :COMMON-LISP "MULTIPLE-VALUE-BIND" "(SYSTEM::MACRO #<COMPILED-FUNCTION MULTIPLE-VALUE-BIND>)") ;;MULTIPLE-VALUE-BIND;;
  1348. (clisp-symbol :COMMON-LISP "MULTIPLE-VALUE-CALL" "NIL") ;;MULTIPLE-VALUE-CALL;;
  1349. (clisp-symbol :COMMON-LISP "MULTIPLE-VALUE-LIST" "(SYSTEM::MACRO #<COMPILED-FUNCTION MULTIPLE-VALUE-LIST>)") ;;MULTIPLE-VALUE-LIST;;
  1350. (clisp-symbol :COMMON-LISP "MULTIPLE-VALUE-PROG1" "NIL") ;;MULTIPLE-VALUE-PROG1;;
  1351. (clisp-symbol :COMMON-LISP "MULTIPLE-VALUE-SETQ" "(SYSTEM::MACRO #<COMPILED-FUNCTION MULTIPLE-VALUE-SETQ>)") ;;MULTIPLE-VALUE-SETQ;;
  1352. (clisp-symbol :COMMON-LISP "MULTIPLE-VALUES-LIMIT" "NIL") ;;MULTIPLE-VALUES-LIMIT;;
  1353. (clisp-symbol :COMMON-LISP "NAME-CHAR" "NIL") ;;NAME-CHAR;;
  1354. (clisp-symbol :COMMON-LISP "NAMESTRING" "NIL") ;;NAMESTRING;;
  1355. (clisp-symbol :COMMON-LISP "NBUTLAST" "NIL") ;;NBUTLAST;;
  1356. (clisp-symbol :COMMON-LISP "NCONC" "(CLOS::%METHOD-COMBINATION #<METHOD-COMBINATION NCONC #x209F4B86>)") ;;NCONC;;
  1357. (clisp-symbol :COMMON-LISP "NIL" "(SYSTEM::INSTRUCTION 0 SYSTEM::TYPE-SYMBOL #<COMPILED-FUNCTION SYSTEM::TYPE-SYMBOL-NIL>)") ;;NIL;;
  1358. (clisp-symbol :COMMON-LISP "NINTERSECTION" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 262 403)))") ;;NINTERSECTION;;
  1359. (clisp-symbol :COMMON-LISP "NINTH" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-NINTH>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 548 548)))") ;;NINTH;;
  1360. (clisp-symbol :COMMON-LISP "NOT" "(SYSTEM::INSTRUCTION 89)") ;;NOT;;
  1361. (clisp-symbol :COMMON-LISP "NOTANY" "NIL") ;;NOTANY;;
  1362. (clisp-symbol :COMMON-LISP "NOTEVERY" "NIL") ;;NOTEVERY;;
  1363. (clisp-symbol :COMMON-LISP "NOTINLINE" "NIL") ;;NOTINLINE;;
  1364. (clisp-symbol :COMMON-LISP "NRECONC" "NIL") ;;NRECONC;;
  1365. (clisp-symbol :COMMON-LISP "NREVERSE" "NIL") ;;NREVERSE;;
  1366. (clisp-symbol :COMMON-LISP "NSET-DIFFERENCE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 262 403)))") ;;NSET-DIFFERENCE;;
  1367. (clisp-symbol :COMMON-LISP "NSET-EXCLUSIVE-OR" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 262 403)))") ;;NSET-EXCLUSIVE-OR;;
  1368. (clisp-symbol :COMMON-LISP "NSET-EXCLUSIVE-OR-1" "NIL") ;;COMMON-LISP::NSET-EXCLUSIVE-OR-1;;
  1369. (clisp-symbol :COMMON-LISP "NSET-EXCLUSIVE-OR-2" "NIL") ;;COMMON-LISP::NSET-EXCLUSIVE-OR-2;;
  1370. (clisp-symbol :COMMON-LISP "NSTRING-CAPITALIZE" "NIL") ;;NSTRING-CAPITALIZE;;
  1371. (clisp-symbol :COMMON-LISP "NSTRING-DOWNCASE" "NIL") ;;NSTRING-DOWNCASE;;
  1372. (clisp-symbol :COMMON-LISP "NSTRING-UPCASE" "NIL") ;;NSTRING-UPCASE;;
  1373. (clisp-symbol :COMMON-LISP "NSUBLIS" "NIL") ;;NSUBLIS;;
  1374. (clisp-symbol :COMMON-LISP "NSUBST" "NIL") ;;NSUBST;;
  1375. (clisp-symbol :COMMON-LISP "NSUBST-IF" "NIL") ;;NSUBST-IF;;
  1376. (clisp-symbol :COMMON-LISP "NSUBST-IF-NOT" "NIL") ;;NSUBST-IF-NOT;;
  1377. (clisp-symbol :COMMON-LISP "NSUBSTITUTE" "NIL") ;;NSUBSTITUTE;;
  1378. (clisp-symbol :COMMON-LISP "NSUBSTITUTE-IF" "NIL") ;;NSUBSTITUTE-IF;;
  1379. (clisp-symbol :COMMON-LISP "NSUBSTITUTE-IF-NOT" "NIL") ;;NSUBSTITUTE-IF-NOT;;
  1380. (clisp-symbol :COMMON-LISP "NTH" "(SYSTEM::SETF-EXPANDER SYSTEM::%SETNTH SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 535 535)))") ;;NTH;;
  1381. (clisp-symbol :COMMON-LISP "NTH-VALUE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros2.fas\" 235 260)))") ;;NTH-VALUE;;
  1382. (clisp-symbol :COMMON-LISP "NTHCDR" "NIL") ;;NTHCDR;;
  1383. (clisp-symbol :COMMON-LISP "NULL" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS NULL> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION NULL>)") ;;NULL;;
  1384. (clisp-symbol :COMMON-LISP "NUMBER" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS NUMBER> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION NUMBERP>)") ;;NUMBER;;
  1385. (clisp-symbol :COMMON-LISP "NUMBERP" "NIL") ;;NUMBERP;;
  1386. (clisp-symbol :COMMON-LISP "NUMERATOR" "NIL") ;;NUMERATOR;;
  1387. (clisp-symbol :COMMON-LISP "NUNION" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 262 403)))") ;;NUNION;;
  1388. (clisp-symbol :COMMON-LISP "ODDP" "NIL") ;;ODDP;;
  1389. (clisp-symbol :COMMON-LISP "OPEN" "NIL") ;;OPEN;;
  1390. (clisp-symbol :COMMON-LISP "OPEN-STREAM-P" "NIL") ;;OPEN-STREAM-P;;
  1391. (clisp-symbol :COMMON-LISP "OPTIMIZE" "NIL") ;;OPTIMIZE;;
  1392. (clisp-symbol :COMMON-LISP "OR" "(CLOS::%METHOD-COMBINATION #<METHOD-COMBINATION OR #x209F4BEE> SYSTEM::MACRO #<COMPILED-FUNCTION OR>)") ;;OR;;
  1393. (clisp-symbol :COMMON-LISP "OTHERWISE" "NIL") ;;OTHERWISE;;
  1394. (clisp-symbol :COMMON-LISP "OUTPUT-STREAM-P" "NIL") ;;OUTPUT-STREAM-P;;
  1395. (clisp-symbol :COMMON-LISP "PACKAGE" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS PACKAGE> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::SUBTYPEP-DECIDE SYSTEM::SUBTYPEP-MISC SYSTEM::SUBTYPEP-SIMPLIFY-OR SYSTEM::SIMPLIFY-OR-MISC SYSTEM::SUBTYPEP-SIMPLIFY-AND SYSTEM::SIMPLIFY-AND-MISC SYSTEM::SUBTYPEP-LIST NIL SYSTEM::SUBTYPEP-ATOM (PACKAGE) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION PACKAGEP>)") ;;PACKAGE;;
  1396. (clisp-symbol :COMMON-LISP "PACKAGE-ERROR" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS PACKAGE-ERROR> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 393 397)))") ;;PACKAGE-ERROR;;
  1397. (clisp-symbol :COMMON-LISP "PACKAGE-ERROR-PACKAGE" "NIL") ;;PACKAGE-ERROR-PACKAGE;;
  1398. (clisp-symbol :COMMON-LISP "PACKAGE-NAME" "NIL") ;;PACKAGE-NAME;;
  1399. (clisp-symbol :COMMON-LISP "PACKAGE-NICKNAMES" "NIL") ;;PACKAGE-NICKNAMES;;
  1400. (clisp-symbol :COMMON-LISP "PACKAGE-SHADOWING-SYMBOLS" "NIL") ;;PACKAGE-SHADOWING-SYMBOLS;;
  1401. (clisp-symbol :COMMON-LISP "PACKAGE-USE-LIST" "NIL") ;;PACKAGE-USE-LIST;;
  1402. (clisp-symbol :COMMON-LISP "PACKAGE-USED-BY-LIST" "NIL") ;;PACKAGE-USED-BY-LIST;;
  1403. (clisp-symbol :COMMON-LISP "PACKAGEP" "NIL") ;;PACKAGEP;;
  1404. (clisp-symbol :COMMON-LISP "PAIRLIS" "NIL") ;;PAIRLIS;;
  1405. (clisp-symbol :COMMON-LISP "PARSE-ERROR" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS PARSE-ERROR> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 403 404)))") ;;PARSE-ERROR;;
  1406. (clisp-symbol :COMMON-LISP "PARSE-INTEGER" "NIL") ;;PARSE-INTEGER;;
  1407. (clisp-symbol :COMMON-LISP "PARSE-NAMESTRING" "NIL") ;;PARSE-NAMESTRING;;
  1408. (clisp-symbol :COMMON-LISP "PATHNAME" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS PATHNAME> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::SUBTYPEP-DECIDE SYSTEM::SUBTYPEP-PATHNAME SYSTEM::SUBTYPEP-SIMPLIFY-OR SYSTEM::SIMPLIFY-OR-PATHNAME SYSTEM::SUBTYPEP-SIMPLIFY-AND SYSTEM::SIMPLIFY-AND-PATHNAME SYSTEM::SUBTYPEP-LIST NIL SYSTEM::SUBTYPEP-ATOM (PATHNAME LOGICAL-PATHNAME) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION PATHNAMEP>)") ;;PATHNAME;;
  1409. (clisp-symbol :COMMON-LISP "PATHNAME-DEVICE" "NIL") ;;PATHNAME-DEVICE;;
  1410. (clisp-symbol :COMMON-LISP "PATHNAME-DIRECTORY" "NIL") ;;PATHNAME-DIRECTORY;;
  1411. (clisp-symbol :COMMON-LISP "PATHNAME-HOST" "NIL") ;;PATHNAME-HOST;;
  1412. (clisp-symbol :COMMON-LISP "PATHNAME-MATCH-P" "NIL") ;;PATHNAME-MATCH-P;;
  1413. (clisp-symbol :COMMON-LISP "PATHNAME-NAME" "NIL") ;;PATHNAME-NAME;;
  1414. (clisp-symbol :COMMON-LISP "PATHNAME-TYPE" "NIL") ;;PATHNAME-TYPE;;
  1415. (clisp-symbol :COMMON-LISP "PATHNAME-VERSION" "NIL") ;;PATHNAME-VERSION;;
  1416. (clisp-symbol :COMMON-LISP "PATHNAMEP" "NIL") ;;PATHNAMEP;;
  1417. (clisp-symbol :COMMON-LISP "PEEK-CHAR" "NIL") ;;PEEK-CHAR;;
  1418. (clisp-symbol :COMMON-LISP "PHASE" "NIL") ;;PHASE;;
  1419. (clisp-symbol :COMMON-LISP "PI" "NIL") ;;PI;;
  1420. (clisp-symbol :COMMON-LISP "PLUSP" "NIL") ;;PLUSP;;
  1421. (clisp-symbol :COMMON-LISP "POP" "(SYSTEM::INSTRUCTION 21 SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 592 635)))") ;;POP;;
  1422. (clisp-symbol :COMMON-LISP "POSITION" "NIL") ;;POSITION;;
  1423. (clisp-symbol :COMMON-LISP "POSITION-IF" "NIL") ;;POSITION-IF;;
  1424. (clisp-symbol :COMMON-LISP "POSITION-IF-NOT" "NIL") ;;POSITION-IF-NOT;;
  1425. (clisp-symbol :COMMON-LISP "PPRINT" "NIL") ;;PPRINT;;
  1426. (clisp-symbol :COMMON-LISP "PPRINT-DISPATCH" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/pprint.fas\" 43 58)))") ;;PPRINT-DISPATCH;;
  1427. (clisp-symbol :COMMON-LISP "PPRINT-EXIT-IF-LIST-EXHAUSTED" "NIL") ;;PPRINT-EXIT-IF-LIST-EXHAUSTED;;
  1428. (clisp-symbol :COMMON-LISP "PPRINT-FILL" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/pprint.fas\" 193 207)))") ;;PPRINT-FILL;;
  1429. (clisp-symbol :COMMON-LISP "PPRINT-FILL-1" "NIL") ;;COMMON-LISP::PPRINT-FILL-1;;
  1430. (clisp-symbol :COMMON-LISP "PPRINT-INDENT" "NIL") ;;PPRINT-INDENT;;
  1431. (clisp-symbol :COMMON-LISP "PPRINT-LINEAR" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/pprint.fas\" 209 221)))") ;;PPRINT-LINEAR;;
  1432. (clisp-symbol :COMMON-LISP "PPRINT-LINEAR-1" "NIL") ;;COMMON-LISP::PPRINT-LINEAR-1;;
  1433. (clisp-symbol :COMMON-LISP "PPRINT-LOGICAL-BLOCK" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/pprint.fas\" 103 161)))") ;;PPRINT-LOGICAL-BLOCK;;
  1434. (clisp-symbol :COMMON-LISP "PPRINT-NEWLINE" "NIL") ;;PPRINT-NEWLINE;;
  1435. (clisp-symbol :COMMON-LISP "PPRINT-POP" "NIL") ;;PPRINT-POP;;
  1436. (clisp-symbol :COMMON-LISP "PPRINT-TAB" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/pprint.fas\" 177 191)))") ;;PPRINT-TAB;;
  1437. (clisp-symbol :COMMON-LISP "PPRINT-TABULAR" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/pprint.fas\" 223 239)))") ;;PPRINT-TABULAR;;
  1438. (clisp-symbol :COMMON-LISP "PPRINT-TABULAR-1" "NIL") ;;COMMON-LISP::PPRINT-TABULAR-1;;
  1439. (clisp-symbol :COMMON-LISP "PRIN1" "NIL") ;;PRIN1;;
  1440. (clisp-symbol :COMMON-LISP "PRIN1-TO-STRING" "NIL") ;;PRIN1-TO-STRING;;
  1441. (clisp-symbol :COMMON-LISP "PRINC" "NIL") ;;PRINC;;
  1442. (clisp-symbol :COMMON-LISP "PRINC-TO-STRING" "NIL") ;;PRINC-TO-STRING;;
  1443. (clisp-symbol :COMMON-LISP "PRINT" "NIL") ;;PRINT;;
  1444. (clisp-symbol :COMMON-LISP "PRINT-NOT-READABLE" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS PRINT-NOT-READABLE> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 399 401)))") ;;PRINT-NOT-READABLE;;
  1445. (clisp-symbol :COMMON-LISP "PRINT-NOT-READABLE-OBJECT" "NIL") ;;PRINT-NOT-READABLE-OBJECT;;
  1446. (clisp-symbol :COMMON-LISP "PRINT-UNREADABLE-OBJECT" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros2.fas\" 345 352)))") ;;PRINT-UNREADABLE-OBJECT;;
  1447. (clisp-symbol :COMMON-LISP "PROBE-FILE" "NIL") ;;PROBE-FILE;;
  1448. (clisp-symbol :COMMON-LISP "PROCLAIM" "NIL") ;;PROCLAIM;;
  1449. (clisp-symbol :COMMON-LISP "PROG" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros1.fas\" 314 321)))") ;;PROG;;
  1450. (clisp-symbol :COMMON-LISP "PROG*" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros1.fas\" 323 330)))") ;;PROG*;;
  1451. (clisp-symbol :COMMON-LISP "PROG1" "(SYSTEM::MACRO #<COMPILED-FUNCTION PROG1>)") ;;PROG1;;
  1452. (clisp-symbol :COMMON-LISP "PROG2" "(SYSTEM::MACRO #<COMPILED-FUNCTION PROG2>)") ;;PROG2;;
  1453. (clisp-symbol :COMMON-LISP "PROGN" "(CLOS::%METHOD-COMBINATION #<METHOD-COMBINATION PROGN #x209F4C5E> SYSTEM::SETF-EXPANDER (-5 . #<COMPILED-FUNCTION #:SETF-PROGN>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 1145 1162)))") ;;PROGN;;
  1454. (clisp-symbol :COMMON-LISP "PROGRAM-ERROR" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS PROGRAM-ERROR> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 325 326)))") ;;PROGRAM-ERROR;;
  1455. (clisp-symbol :COMMON-LISP "PROGV" "(SYSTEM::INSTRUCTION 19)") ;;PROGV;;
  1456. (clisp-symbol :COMMON-LISP "PROVIDE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 160 161)))") ;;PROVIDE;;
  1457. (clisp-symbol :COMMON-LISP "PSETF" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 636 653)))") ;;PSETF;;
  1458. (clisp-symbol :COMMON-LISP "PSETF-RECURSE" "NIL") ;;COMMON-LISP::PSETF-RECURSE;;
  1459. (clisp-symbol :COMMON-LISP "PSETQ" "(SYSTEM::MACRO #<COMPILED-FUNCTION PSETQ>)") ;;PSETQ;;
  1460. (clisp-symbol :COMMON-LISP "PUSH" "(SYSTEM::INSTRUCTION 20 SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 321 344)))") ;;PUSH;;
  1461. (clisp-symbol :COMMON-LISP "PUSHNEW" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 654 677)))") ;;PUSHNEW;;
  1462. (clisp-symbol :COMMON-LISP "QUOTE" "NIL") ;;QUOTE;;
  1463. (clisp-symbol :COMMON-LISP "RANDOM" "NIL") ;;RANDOM;;
  1464. (clisp-symbol :COMMON-LISP "RANDOM-STATE" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS RANDOM-STATE> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::SUBTYPEP-DECIDE SYSTEM::SUBTYPEP-MISC SYSTEM::SUBTYPEP-SIMPLIFY-OR SYSTEM::SIMPLIFY-OR-MISC SYSTEM::SUBTYPEP-SIMPLIFY-AND SYSTEM::SIMPLIFY-AND-MISC SYSTEM::SUBTYPEP-LIST NIL SYSTEM::SUBTYPEP-ATOM (RANDOM-STATE) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION RANDOM-STATE-P>)") ;;RANDOM-STATE;;
  1465. (clisp-symbol :COMMON-LISP "RANDOM-STATE-P" "NIL") ;;RANDOM-STATE-P;;
  1466. (clisp-symbol :COMMON-LISP "RASSOC" "NIL") ;;RASSOC;;
  1467. (clisp-symbol :COMMON-LISP "RASSOC-IF" "NIL") ;;RASSOC-IF;;
  1468. (clisp-symbol :COMMON-LISP "RASSOC-IF-NOT" "NIL") ;;RASSOC-IF-NOT;;
  1469. (clisp-symbol :COMMON-LISP "RATIO" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS RATIO> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-SYMBOL #<COMPILED-FUNCTION SYSTEM::TYPE-SYMBOL-RATIO>)") ;;RATIO;;
  1470. (clisp-symbol :COMMON-LISP "RATIONAL" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS RATIONAL> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-RATIONAL> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION RATIONALP>)") ;;RATIONAL;;
  1471. (clisp-symbol :COMMON-LISP "RATIONALIZE" "NIL") ;;RATIONALIZE;;
  1472. (clisp-symbol :COMMON-LISP "RATIONALP" "NIL") ;;RATIONALP;;
  1473. (clisp-symbol :COMMON-LISP "READ" "NIL") ;;READ;;
  1474. (clisp-symbol :COMMON-LISP "READ-BYTE" "NIL") ;;READ-BYTE;;
  1475. (clisp-symbol :COMMON-LISP "READ-CHAR" "NIL") ;;READ-CHAR;;
  1476. (clisp-symbol :COMMON-LISP "READ-CHAR-NO-HANG" "NIL") ;;READ-CHAR-NO-HANG;;
  1477. (clisp-symbol :COMMON-LISP "READ-DELIMITED-LIST" "NIL") ;;READ-DELIMITED-LIST;;
  1478. (clisp-symbol :COMMON-LISP "READ-FROM-STRING" "NIL") ;;READ-FROM-STRING;;
  1479. (clisp-symbol :COMMON-LISP "READ-LINE" "NIL") ;;READ-LINE;;
  1480. (clisp-symbol :COMMON-LISP "READ-PRESERVING-WHITESPACE" "NIL") ;;READ-PRESERVING-WHITESPACE;;
  1481. (clisp-symbol :COMMON-LISP "READ-SEQUENCE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs2.fas\" 238 250)))") ;;READ-SEQUENCE;;
  1482. (clisp-symbol :COMMON-LISP "READER-ERROR" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS READER-ERROR> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 413 414)))") ;;READER-ERROR;;
  1483. (clisp-symbol :COMMON-LISP "READTABLE" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS READTABLE> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::SUBTYPEP-DECIDE SYSTEM::SUBTYPEP-MISC SYSTEM::SUBTYPEP-SIMPLIFY-OR SYSTEM::SIMPLIFY-OR-MISC SYSTEM::SUBTYPEP-SIMPLIFY-AND SYSTEM::SIMPLIFY-AND-MISC SYSTEM::SUBTYPEP-LIST NIL SYSTEM::SUBTYPEP-ATOM (READTABLE) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION READTABLEP>)") ;;READTABLE;;
  1484. (clisp-symbol :COMMON-LISP "READTABLE-CASE" "(SYSTEM::SETF-EXPANDER SYSTEM::SET-READTABLE-CASE SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 969 970)))") ;;READTABLE-CASE;;
  1485. (clisp-symbol :COMMON-LISP "READTABLEP" "NIL") ;;READTABLEP;;
  1486. (clisp-symbol :COMMON-LISP "REAL" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS REAL> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::SUBTYPEP-DECIDE SYSTEM::SUBTYPEP-REAL SYSTEM::SUBTYPEP-SIMPLIFY-OR SYSTEM::SIMPLIFY-OR-REAL SYSTEM::SUBTYPEP-SIMPLIFY-AND SYSTEM::SIMPLIFY-AND-REAL SYSTEM::SUBTYPEP-LIST (SYSTEM::INTERVALS) SYSTEM::SUBTYPEP-ATOM (REAL RATIONAL INTEGER FLOAT SHORT-FLOAT SINGLE-FLOAT DOUBLE-FLOAT LONG-FLOAT) SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-REAL> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION REALP>)") ;;REAL;;
  1487. (clisp-symbol :COMMON-LISP "REALP" "NIL") ;;REALP;;
  1488. (clisp-symbol :COMMON-LISP "REALPART" "NIL") ;;REALPART;;
  1489. (clisp-symbol :COMMON-LISP "REDUCE" "NIL") ;;REDUCE;;
  1490. (clisp-symbol :COMMON-LISP "REM" "NIL") ;;REM;;
  1491. (clisp-symbol :COMMON-LISP "REMF" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 678 696)))") ;;REMF;;
  1492. (clisp-symbol :COMMON-LISP "REMHASH" "NIL") ;;REMHASH;;
  1493. (clisp-symbol :COMMON-LISP "REMOVE" "NIL") ;;REMOVE;;
  1494. (clisp-symbol :COMMON-LISP "REMOVE-DUPLICATES" "NIL") ;;REMOVE-DUPLICATES;;
  1495. (clisp-symbol :COMMON-LISP "REMOVE-IF" "NIL") ;;REMOVE-IF;;
  1496. (clisp-symbol :COMMON-LISP "REMOVE-IF-NOT" "NIL") ;;REMOVE-IF-NOT;;
  1497. (clisp-symbol :COMMON-LISP "REMPROP" "NIL") ;;REMPROP;;
  1498. (clisp-symbol :COMMON-LISP "RENAME-FILE" "NIL") ;;RENAME-FILE;;
  1499. (clisp-symbol :COMMON-LISP "RENAME-PACKAGE" "NIL") ;;RENAME-PACKAGE;;
  1500. (clisp-symbol :COMMON-LISP "REPLACE" "NIL") ;;REPLACE;;
  1501. (clisp-symbol :COMMON-LISP "REQUIRE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 163 175)))") ;;REQUIRE;;
  1502. (clisp-symbol :COMMON-LISP "REST" "(SYSTEM::SETF-EXPANDER SYSTEM::%RPLACD SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 538 539)))") ;;REST;;
  1503. (clisp-symbol :COMMON-LISP "RESTART" "(CLOS::CLOSCLASS #1=#<STRUCTURE-CLASS RESTART> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 714 729)))") ;;RESTART;;
  1504. (clisp-symbol :COMMON-LISP "RESTART-BIND" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 883 943)))") ;;RESTART-BIND;;
  1505. (clisp-symbol :COMMON-LISP "RESTART-BIND-1" "NIL") ;;COMMON-LISP::RESTART-BIND-1;;
  1506. (clisp-symbol :COMMON-LISP "RESTART-CASE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1106 1109)))") ;;RESTART-CASE;;
  1507. (clisp-symbol :COMMON-LISP "RESTART-NAME" "(SYSTEM::DEFSTRUCT-WRITER RESTART SYSTEM::DEFSTRUCT-READER RESTART SYSTEM::INLINE-EXPANSION ((SYSTEM::OBJECT) (DECLARE (SYSTEM::IN-DEFUN RESTART-NAME)) (BLOCK RESTART-NAME (THE T (SYSTEM::%STRUCTURE-REF 'RESTART SYSTEM::OBJECT 1)))) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 714 729)) SYSTEM::INLINABLE INLINE SYSTEM::SETF-FUNCTION COMMON-LISP::|(SETF COMMON-LISP:RESTART-NAME)|)") ;;RESTART-NAME;;
  1508. (clisp-symbol :COMMON-LISP "RETURN" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros1.fas\" 132 133)))") ;;RETURN;;
  1509. (clisp-symbol :COMMON-LISP "RETURN-FROM" "(SYSTEM::INSTRUCTION 73)") ;;RETURN-FROM;;
  1510. (clisp-symbol :COMMON-LISP "REVAPPEND" "NIL") ;;REVAPPEND;;
  1511. (clisp-symbol :COMMON-LISP "REVERSE" "NIL") ;;REVERSE;;
  1512. (clisp-symbol :COMMON-LISP "ROOM" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/room.fas\" 15 65)))") ;;ROOM;;
  1513. (clisp-symbol :COMMON-LISP "ROTATEF" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 715 742)))") ;;ROTATEF;;
  1514. (clisp-symbol :COMMON-LISP "ROUND" "NIL") ;;ROUND;;
  1515. (clisp-symbol :COMMON-LISP "ROW-MAJOR-AREF" "(SYSTEM::SETF-EXPANDER SYSTEM::ROW-MAJOR-STORE SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 583 583)))") ;;ROW-MAJOR-AREF;;
  1516. (clisp-symbol :COMMON-LISP "RPLACA" "NIL") ;;RPLACA;;
  1517. (clisp-symbol :COMMON-LISP "RPLACD" "NIL") ;;RPLACD;;
  1518. (clisp-symbol :COMMON-LISP "SAFETY" "NIL") ;;SAFETY;;
  1519. (clisp-symbol :COMMON-LISP "SATISFIES" "NIL") ;;SATISFIES;;
  1520. (clisp-symbol :COMMON-LISP "SBIT" "(SYSTEM::SETF-EXPANDER SYSTEM::STORE SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 996 996)))") ;;SBIT;;
  1521. (clisp-symbol :COMMON-LISP "SCALE-FLOAT" "NIL") ;;SCALE-FLOAT;;
  1522. (clisp-symbol :COMMON-LISP "SCHAR" "(SYSTEM::SETF-EXPANDER SYSTEM::STORE-SCHAR SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 994 994)))") ;;SCHAR;;
  1523. (clisp-symbol :COMMON-LISP "SEARCH" "NIL") ;;SEARCH;;
  1524. (clisp-symbol :COMMON-LISP "SECOND" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-SECOND>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 541 541)))") ;;SECOND;;
  1525. (clisp-symbol :COMMON-LISP "SEQUENCE" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS SEQUENCE> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYSTEM::SEQUENCEP>)") ;;SEQUENCE;;
  1526. (clisp-symbol :COMMON-LISP "SERIOUS-CONDITION" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS SERIOUS-CONDITION> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 241 320)))") ;;SERIOUS-CONDITION;;
  1527. (clisp-symbol :COMMON-LISP "SET" "NIL") ;;SET;;
  1528. (clisp-symbol :COMMON-LISP "SET-DIFFERENCE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 262 403)))") ;;SET-DIFFERENCE;;
  1529. (clisp-symbol :COMMON-LISP "SET-DISPATCH-MACRO-CHARACTER" "NIL") ;;SET-DISPATCH-MACRO-CHARACTER;;
  1530. (clisp-symbol :COMMON-LISP "SET-EXCLUSIVE-OR" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 262 403)))") ;;SET-EXCLUSIVE-OR;;
  1531. (clisp-symbol :COMMON-LISP "SET-EXCLUSIVE-OR-1" "NIL") ;;COMMON-LISP::SET-EXCLUSIVE-OR-1;;
  1532. (clisp-symbol :COMMON-LISP "SET-EXCLUSIVE-OR-2" "NIL") ;;COMMON-LISP::SET-EXCLUSIVE-OR-2;;
  1533. (clisp-symbol :COMMON-LISP "SET-MACRO-CHARACTER" "NIL") ;;SET-MACRO-CHARACTER;;
  1534. (clisp-symbol :COMMON-LISP "SET-PPRINT-DISPATCH" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/pprint.fas\" 73 101)))") ;;SET-PPRINT-DISPATCH;;
  1535. (clisp-symbol :COMMON-LISP "SET-SYNTAX-FROM-CHAR" "NIL") ;;SET-SYNTAX-FROM-CHAR;;
  1536. (clisp-symbol :COMMON-LISP "SETF" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 793 893)))") ;;SETF;;
  1537. (clisp-symbol :COMMON-LISP "SETQ" "NIL") ;;SETQ;;
  1538. (clisp-symbol :COMMON-LISP "SEVENTH" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-SEVENTH>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 546 546)))") ;;SEVENTH;;
  1539. (clisp-symbol :COMMON-LISP "SHADOW" "NIL") ;;SHADOW;;
  1540. (clisp-symbol :COMMON-LISP "SHADOWING-IMPORT" "NIL") ;;SHADOWING-IMPORT;;
  1541. (clisp-symbol :COMMON-LISP "SHIFTF" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 894 928)))") ;;SHIFTF;;
  1542. (clisp-symbol :COMMON-LISP "SHORT-FLOAT" "(SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-SHORT-FLOAT> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYSTEM::SHORT-FLOAT-P>)") ;;SHORT-FLOAT;;
  1543. (clisp-symbol :COMMON-LISP "SHORT-FLOAT-EPSILON" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;SHORT-FLOAT-EPSILON;;
  1544. (clisp-symbol :COMMON-LISP "SHORT-FLOAT-NEGATIVE-EPSILON" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;SHORT-FLOAT-NEGATIVE-EPSILON;;
  1545. (clisp-symbol :COMMON-LISP "SHORT-SITE-NAME" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/config.fas\" 8 14)))") ;;SHORT-SITE-NAME;;
  1546. (clisp-symbol :COMMON-LISP "SIGNAL" "NIL") ;;SIGNAL;;
  1547. (clisp-symbol :COMMON-LISP "SIGNED-BYTE" "(SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-SIGNED-BYTE>)") ;;SIGNED-BYTE;;
  1548. (clisp-symbol :COMMON-LISP "SIGNUM" "NIL") ;;SIGNUM;;
  1549. (clisp-symbol :COMMON-LISP "SIMPLE-ARRAY" "(SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-SIMPLE-ARRAY> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYSTEM::SIMPLE-ARRAY-P>)") ;;SIMPLE-ARRAY;;
  1550. (clisp-symbol :COMMON-LISP "SIMPLE-BASE-STRING" "(SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-SIMPLE-BASE-STRING> SYSTEM::TYPE-SYMBOL #<COMPILED-FUNCTION SYSTEM::TYPE-SYMBOL-SIMPLE-BASE-STRING>)") ;;SIMPLE-BASE-STRING;;
  1551. (clisp-symbol :COMMON-LISP "SIMPLE-BIT-VECTOR" "(SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-SIMPLE-BIT-VECTOR> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SIMPLE-BIT-VECTOR-P>)") ;;SIMPLE-BIT-VECTOR;;
  1552. (clisp-symbol :COMMON-LISP "SIMPLE-BIT-VECTOR-P" "NIL") ;;SIMPLE-BIT-VECTOR-P;;
  1553. (clisp-symbol :COMMON-LISP "SIMPLE-CONDITION" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS SIMPLE-CONDITION> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 437 455)))") ;;SIMPLE-CONDITION;;
  1554. (clisp-symbol :COMMON-LISP "SIMPLE-CONDITION-FORMAT-ARGUMENTS" "NIL") ;;SIMPLE-CONDITION-FORMAT-ARGUMENTS;;
  1555. (clisp-symbol :COMMON-LISP "SIMPLE-CONDITION-FORMAT-CONTROL" "NIL") ;;SIMPLE-CONDITION-FORMAT-CONTROL;;
  1556. (clisp-symbol :COMMON-LISP "SIMPLE-ERROR" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS SIMPLE-ERROR> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 467 468)))") ;;SIMPLE-ERROR;;
  1557. (clisp-symbol :COMMON-LISP "SIMPLE-STRING" "(SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-SIMPLE-STRING> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SIMPLE-STRING-P>)") ;;SIMPLE-STRING;;
  1558. (clisp-symbol :COMMON-LISP "SIMPLE-STRING-P" "NIL") ;;SIMPLE-STRING-P;;
  1559. (clisp-symbol :COMMON-LISP "SIMPLE-TYPE-ERROR" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS SIMPLE-TYPE-ERROR> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 470 471)))") ;;SIMPLE-TYPE-ERROR;;
  1560. (clisp-symbol :COMMON-LISP "SIMPLE-VECTOR" "(SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-SIMPLE-VECTOR> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SIMPLE-VECTOR-P>)") ;;SIMPLE-VECTOR;;
  1561. (clisp-symbol :COMMON-LISP "SIMPLE-VECTOR-P" "NIL") ;;SIMPLE-VECTOR-P;;
  1562. (clisp-symbol :COMMON-LISP "SIMPLE-WARNING" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS SIMPLE-WARNING> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 473 474)))") ;;SIMPLE-WARNING;;
  1563. (clisp-symbol :COMMON-LISP "SIN" "NIL") ;;SIN;;
  1564. (clisp-symbol :COMMON-LISP "SINGLE-FLOAT" "(SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-SINGLE-FLOAT> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYSTEM::SINGLE-FLOAT-P>)") ;;SINGLE-FLOAT;;
  1565. (clisp-symbol :COMMON-LISP "SINGLE-FLOAT-EPSILON" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;SINGLE-FLOAT-EPSILON;;
  1566. (clisp-symbol :COMMON-LISP "SINGLE-FLOAT-NEGATIVE-EPSILON" "(SYSTEM::CONSTANT-INLINABLE CONSTANT-NOTINLINE)") ;;SINGLE-FLOAT-NEGATIVE-EPSILON;;
  1567. (clisp-symbol :COMMON-LISP "SINH" "NIL") ;;SINH;;
  1568. (clisp-symbol :COMMON-LISP "SIXTH" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-SIXTH>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 545 545)))") ;;SIXTH;;
  1569. (clisp-symbol :COMMON-LISP "SLEEP" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 579 597)))") ;;SLEEP;;
  1570. (clisp-symbol :COMMON-LISP "SO-ACCEPTCONN" "NIL") ;;COMMON-LISP::SO-ACCEPTCONN;;
  1571. (clisp-symbol :COMMON-LISP "SOFTWARE-TYPE" "NIL") ;;SOFTWARE-TYPE;;
  1572. (clisp-symbol :COMMON-LISP "SOFTWARE-VERSION" "NIL") ;;SOFTWARE-VERSION;;
  1573. (clisp-symbol :COMMON-LISP "SOME" "NIL") ;;SOME;;
  1574. (clisp-symbol :COMMON-LISP "SORT" "NIL") ;;SORT;;
  1575. (clisp-symbol :COMMON-LISP "SPACE" "NIL") ;;SPACE;;
  1576. (clisp-symbol :COMMON-LISP "SPECIAL" "NIL") ;;SPECIAL;;
  1577. (clisp-symbol :COMMON-LISP "SPECIAL-OPERATOR-P" "NIL") ;;SPECIAL-OPERATOR-P;;
  1578. (clisp-symbol :COMMON-LISP "SPEED" "NIL") ;;SPEED;;
  1579. (clisp-symbol :COMMON-LISP "SQRT" "NIL") ;;SQRT;;
  1580. (clisp-symbol :COMMON-LISP "STABLE-SORT" "NIL") ;;STABLE-SORT;;
  1581. (clisp-symbol :COMMON-LISP "STANDARD-CHAR" "(SYSTEM::TYPE-SYMBOL #<COMPILED-FUNCTION SYSTEM::%STANDARD-CHAR-P>)") ;;STANDARD-CHAR;;
  1582. (clisp-symbol :COMMON-LISP "STANDARD-CHAR-P" "NIL") ;;STANDARD-CHAR-P;;
  1583. (clisp-symbol :COMMON-LISP "STANDARD-OBJECT" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS STANDARD-OBJECT> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2431 2584)) SYSTEM::SUBTYPEP-DECIDE SYSTEM::SUBTYPEP-STANDARD-OBJECT SYSTEM::SUBTYPEP-SIMPLIFY-OR SYSTEM::SIMPLIFY-OR-STANDARD-OBJECT SYSTEM::SUBTYPEP-SIMPLIFY-AND SYSTEM::SIMPLIFY-AND-STANDARD-OBJECT SYSTEM::SUBTYPEP-LIST (FUNCTION) SYSTEM::SUBTYPEP-ATOM NIL SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION CLOS::STD-INSTANCE-P>)") ;;STANDARD-OBJECT;;
  1584. (clisp-symbol :COMMON-LISP "STEP" "(SYSTEM::DOC (FUNCTION \"(STEP form), CLTL p. 441\" SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/reploop.fas\" 586 594)))") ;;STEP;;
  1585. (clisp-symbol :COMMON-LISP "STORAGE-CONDITION" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS STORAGE-CONDITION> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 422 425)))") ;;STORAGE-CONDITION;;
  1586. (clisp-symbol :COMMON-LISP "STORE-VALUE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1162 1164)))") ;;STORE-VALUE;;
  1587. (clisp-symbol :COMMON-LISP "STREAM" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS STREAM> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION STREAMP>)") ;;STREAM;;
  1588. (clisp-symbol :COMMON-LISP "STREAM-ELEMENT-TYPE" "(SYSTEM::SETF-FUNCTION COMMON-LISP::|(SETF COMMON-LISP:STREAM-ELEMENT-TYPE)|)") ;;STREAM-ELEMENT-TYPE;;
  1589. (clisp-symbol :COMMON-LISP "STREAM-ERROR" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS STREAM-ERROR> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 406 408)))") ;;STREAM-ERROR;;
  1590. (clisp-symbol :COMMON-LISP "STREAM-ERROR-STREAM" "NIL") ;;STREAM-ERROR-STREAM;;
  1591. (clisp-symbol :COMMON-LISP "STREAM-EXTERNAL-FORMAT" "(SYSTEM::SETF-EXPANDER SYSTEM::SET-STREAM-EXTERNAL-FORMAT SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 1224 1225)))") ;;STREAM-EXTERNAL-FORMAT;;
  1592. (clisp-symbol :COMMON-LISP "STREAMP" "NIL") ;;STREAMP;;
  1593. (clisp-symbol :COMMON-LISP "STRING" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS STRING> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-STRING> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION STRINGP>)") ;;STRING;;
  1594. (clisp-symbol :COMMON-LISP "STRING-CAPITALIZE" "NIL") ;;STRING-CAPITALIZE;;
  1595. (clisp-symbol :COMMON-LISP "STRING-DOWNCASE" "NIL") ;;STRING-DOWNCASE;;
  1596. (clisp-symbol :COMMON-LISP "STRING-EQUAL" "NIL") ;;STRING-EQUAL;;
  1597. (clisp-symbol :COMMON-LISP "STRING-GREATERP" "NIL") ;;STRING-GREATERP;;
  1598. (clisp-symbol :COMMON-LISP "STRING-LEFT-TRIM" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 453 454)))") ;;STRING-LEFT-TRIM;;
  1599. (clisp-symbol :COMMON-LISP "STRING-LESSP" "NIL") ;;STRING-LESSP;;
  1600. (clisp-symbol :COMMON-LISP "STRING-NOT-EQUAL" "NIL") ;;STRING-NOT-EQUAL;;
  1601. (clisp-symbol :COMMON-LISP "STRING-NOT-GREATERP" "NIL") ;;STRING-NOT-GREATERP;;
  1602. (clisp-symbol :COMMON-LISP "STRING-NOT-LESSP" "NIL") ;;STRING-NOT-LESSP;;
  1603. (clisp-symbol :COMMON-LISP "STRING-RIGHT-TRIM" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 458 459)))") ;;STRING-RIGHT-TRIM;;
  1604. (clisp-symbol :COMMON-LISP "STRING-STREAM" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS STRING-STREAM> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYSTEM::STRING-STREAM-P>)") ;;STRING-STREAM;;
  1605. (clisp-symbol :COMMON-LISP "STRING-TRIM" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 446 449)))") ;;STRING-TRIM;;
  1606. (clisp-symbol :COMMON-LISP "STRING-UPCASE" "NIL") ;;STRING-UPCASE;;
  1607. (clisp-symbol :COMMON-LISP "STRING/=" "NIL") ;;STRING/=;;
  1608. (clisp-symbol :COMMON-LISP "STRING<" "NIL") ;;STRING<;;
  1609. (clisp-symbol :COMMON-LISP "STRING<=" "NIL") ;;STRING<=;;
  1610. (clisp-symbol :COMMON-LISP "STRING=" "NIL") ;;STRING=;;
  1611. (clisp-symbol :COMMON-LISP "STRING>" "NIL") ;;STRING>;;
  1612. (clisp-symbol :COMMON-LISP "STRING>=" "NIL") ;;STRING>=;;
  1613. (clisp-symbol :COMMON-LISP "STRINGP" "NIL") ;;STRINGP;;
  1614. (clisp-symbol :COMMON-LISP "STRUCTURE" "NIL") ;;STRUCTURE;;
  1615. (clisp-symbol :COMMON-LISP "STRUCTURE-OBJECT" "(CLOS::CLOSCLASS #1=#<STRUCTURE-CLASS STRUCTURE-OBJECT> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2431 2584)) SYSTEM::SUBTYPEP-DECIDE SYSTEM::SUBTYPEP-STRUCTURE-OBJECT SYSTEM::SUBTYPEP-SIMPLIFY-OR SYSTEM::SIMPLIFY-OR-STRUCTURE-OBJECT SYSTEM::SUBTYPEP-SIMPLIFY-AND SYSTEM::SIMPLIFY-AND-STRUCTURE-OBJECT SYSTEM::SUBTYPEP-LIST NIL SYSTEM::SUBTYPEP-ATOM NIL SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION CLOS::STRUCTURE-OBJECT-P>)") ;;STRUCTURE-OBJECT;;
  1616. (clisp-symbol :COMMON-LISP "STYLE-WARNING" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS STYLE-WARNING> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 434 435)))") ;;STYLE-WARNING;;
  1617. (clisp-symbol :COMMON-LISP "SUBLIS" "NIL") ;;SUBLIS;;
  1618. (clisp-symbol :COMMON-LISP "SUBSEQ" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-SUBSEQ>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 997 999)))") ;;SUBSEQ;;
  1619. (clisp-symbol :COMMON-LISP "SUBSETP" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 262 403)))") ;;SUBSETP;;
  1620. (clisp-symbol :COMMON-LISP "SUBST" "NIL") ;;SUBST;;
  1621. (clisp-symbol :COMMON-LISP "SUBST-IF" "NIL") ;;SUBST-IF;;
  1622. (clisp-symbol :COMMON-LISP "SUBST-IF-NOT" "NIL") ;;SUBST-IF-NOT;;
  1623. (clisp-symbol :COMMON-LISP "SUBSTITUTE" "NIL") ;;SUBSTITUTE;;
  1624. (clisp-symbol :COMMON-LISP "SUBSTITUTE-IF" "NIL") ;;SUBSTITUTE-IF;;
  1625. (clisp-symbol :COMMON-LISP "SUBSTITUTE-IF-NOT" "NIL") ;;SUBSTITUTE-IF-NOT;;
  1626. (clisp-symbol :COMMON-LISP "SUBTYPEP" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/subtypep.fas\" 1790 1852)))") ;;SUBTYPEP;;
  1627. (clisp-symbol :COMMON-LISP "SVREF" "(SYSTEM::INSTRUCTION 95 SYSTEM::SETF-EXPANDER SYSTEM::SVSTORE SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 581 582)))") ;;SVREF;;
  1628. (clisp-symbol :COMMON-LISP "SXHASH" "NIL") ;;SXHASH;;
  1629. (clisp-symbol :COMMON-LISP "SYMBOL" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS SYMBOL> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::SUBTYPEP-DECIDE SYSTEM::SUBTYPEP-MISC SYSTEM::SUBTYPEP-SIMPLIFY-OR SYSTEM::SIMPLIFY-OR-MISC SYSTEM::SUBTYPEP-SIMPLIFY-AND SYSTEM::SIMPLIFY-AND-MISC SYSTEM::SUBTYPEP-LIST NIL SYSTEM::SUBTYPEP-ATOM (SYMBOL) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYMBOLP>)") ;;SYMBOL;;
  1630. (clisp-symbol :COMMON-LISP "SYMBOL-FUNCTION" "(SYSTEM::INSTRUCTION 94 SYSTEM::SETF-EXPANDER SYSTEM::%PUTD SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 973 975)))") ;;SYMBOL-FUNCTION;;
  1631. (clisp-symbol :COMMON-LISP "SYMBOL-MACROLET" "NIL") ;;SYMBOL-MACROLET;;
  1632. (clisp-symbol :COMMON-LISP "SYMBOL-NAME" "NIL") ;;SYMBOL-NAME;;
  1633. (clisp-symbol :COMMON-LISP "SYMBOL-PACKAGE" "NIL") ;;SYMBOL-PACKAGE;;
  1634. (clisp-symbol :COMMON-LISP "SYMBOL-PLIST" "(SYSTEM::SETF-EXPANDER SYSTEM::%PUTPLIST SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 976 977)))") ;;SYMBOL-PLIST;;
  1635. (clisp-symbol :COMMON-LISP "SYMBOL-VALUE" "(SYSTEM::SETF-EXPANDER SYSTEM::SET-SYMBOL-VALUE SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 971 972)))") ;;SYMBOL-VALUE;;
  1636. (clisp-symbol :COMMON-LISP "SYMBOLP" "NIL") ;;SYMBOLP;;
  1637. (clisp-symbol :COMMON-LISP "SYNONYM-STREAM" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS SYNONYM-STREAM> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYSTEM::SYNONYM-STREAM-P>)") ;;SYNONYM-STREAM;;
  1638. (clisp-symbol :COMMON-LISP "SYNONYM-STREAM-SYMBOL" "NIL") ;;SYNONYM-STREAM-SYMBOL;;
  1639. (clisp-symbol :COMMON-LISP "T" "(SYSTEM::INSTRUCTION 2 CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS T> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2431 2584)) SYSTEM::TYPE-SYMBOL #<COMPILED-FUNCTION SYSTEM::TYPE-SYMBOL-T>)") ;;T;;
  1640. (clisp-symbol :COMMON-LISP "TAGBODY" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/compiler.fas\" 1053 1065)))") ;;TAGBODY;;
  1641. (clisp-symbol :COMMON-LISP "TAILP" "NIL") ;;TAILP;;
  1642. (clisp-symbol :COMMON-LISP "TAN" "NIL") ;;TAN;;
  1643. (clisp-symbol :COMMON-LISP "TANH" "NIL") ;;TANH;;
  1644. (clisp-symbol :COMMON-LISP "TENTH" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-TENTH>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 549 549)))") ;;TENTH;;
  1645. (clisp-symbol :COMMON-LISP "TERPRI" "NIL") ;;TERPRI;;
  1646. (clisp-symbol :COMMON-LISP "THE" "(SYSTEM::SETF-EXPANDER (-5 . #<COMPILED-FUNCTION #:SETF-THE>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 1045 1061)))") ;;THE;;
  1647. (clisp-symbol :COMMON-LISP "THIRD" "(SYSTEM::SETF-EXPANDER (-1 1 . #<COMPILED-FUNCTION SYSTEM::SETF-THIRD>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 542 542)))") ;;THIRD;;
  1648. (clisp-symbol :COMMON-LISP "THROW" "(SYSTEM::INSTRUCTION 82)") ;;THROW;;
  1649. (clisp-symbol :COMMON-LISP "TIME" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros2.fas\" 265 270)))") ;;TIME;;
  1650. (clisp-symbol :COMMON-LISP "TRACE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/trace.fas\" 143 152)))") ;;TRACE;;
  1651. (clisp-symbol :COMMON-LISP "TRANSLATE-LOGICAL-PATHNAME" "NIL") ;;TRANSLATE-LOGICAL-PATHNAME;;
  1652. (clisp-symbol :COMMON-LISP "TRANSLATE-PATHNAME" "NIL") ;;TRANSLATE-PATHNAME;;
  1653. (clisp-symbol :COMMON-LISP "TREE-EQUAL" "NIL") ;;TREE-EQUAL;;
  1654. (clisp-symbol :COMMON-LISP "TRUENAME" "NIL") ;;TRUENAME;;
  1655. (clisp-symbol :COMMON-LISP "TRUNCATE" "NIL") ;;TRUNCATE;;
  1656. (clisp-symbol :COMMON-LISP "TWO-WAY-STREAM" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS TWO-WAY-STREAM> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION SYSTEM::TWO-WAY-STREAM-P>)") ;;TWO-WAY-STREAM;;
  1657. (clisp-symbol :COMMON-LISP "TWO-WAY-STREAM-INPUT-STREAM" "NIL") ;;TWO-WAY-STREAM-INPUT-STREAM;;
  1658. (clisp-symbol :COMMON-LISP "TWO-WAY-STREAM-OUTPUT-STREAM" "NIL") ;;TWO-WAY-STREAM-OUTPUT-STREAM;;
  1659. (clisp-symbol :COMMON-LISP "TYPE" "NIL") ;;TYPE;;
  1660. (clisp-symbol :COMMON-LISP "TYPE-ERROR" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS TYPE-ERROR> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 374 377)))") ;;TYPE-ERROR;;
  1661. (clisp-symbol :COMMON-LISP "TYPE-ERROR-DATUM" "NIL") ;;TYPE-ERROR-DATUM;;
  1662. (clisp-symbol :COMMON-LISP "TYPE-ERROR-EXPECTED-TYPE" "NIL") ;;TYPE-ERROR-EXPECTED-TYPE;;
  1663. (clisp-symbol :COMMON-LISP "TYPE-OF" "NIL") ;;TYPE-OF;;
  1664. (clisp-symbol :COMMON-LISP "TYPECASE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros2.fas\" 2 23)))") ;;TYPECASE;;
  1665. (clisp-symbol :COMMON-LISP "TYPEP" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/type.fas\" 44 92)))") ;;TYPEP;;
  1666. (clisp-symbol :COMMON-LISP "UNBOUND-SLOT" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS UNBOUND-SLOT> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 370 372)))") ;;UNBOUND-SLOT;;
  1667. (clisp-symbol :COMMON-LISP "UNBOUND-SLOT-INSTANCE" "NIL") ;;UNBOUND-SLOT-INSTANCE;;
  1668. (clisp-symbol :COMMON-LISP "UNBOUND-VARIABLE" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS UNBOUND-VARIABLE> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 364 365)))") ;;UNBOUND-VARIABLE;;
  1669. (clisp-symbol :COMMON-LISP "UNDEFINED-FUNCTION" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS UNDEFINED-FUNCTION> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 367 368)))") ;;UNDEFINED-FUNCTION;;
  1670. (clisp-symbol :COMMON-LISP "UNEXPORT" "NIL") ;;UNEXPORT;;
  1671. (clisp-symbol :COMMON-LISP "UNINTERN" "NIL") ;;UNINTERN;;
  1672. (clisp-symbol :COMMON-LISP "UNION" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 262 403)))") ;;UNION;;
  1673. (clisp-symbol :COMMON-LISP "UNLESS" "(SYSTEM::MACRO #<COMPILED-FUNCTION UNLESS>)") ;;UNLESS;;
  1674. (clisp-symbol :COMMON-LISP "UNREAD-CHAR" "NIL") ;;UNREAD-CHAR;;
  1675. (clisp-symbol :COMMON-LISP "UNSIGNED-BYTE" "(SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-UNSIGNED-BYTE>)") ;;UNSIGNED-BYTE;;
  1676. (clisp-symbol :COMMON-LISP "UNTRACE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/trace.fas\" 312 314)))") ;;UNTRACE;;
  1677. (clisp-symbol :COMMON-LISP "UNUSE-PACKAGE" "NIL") ;;UNUSE-PACKAGE;;
  1678. (clisp-symbol :COMMON-LISP "UNWIND-PROTECT" "NIL") ;;UNWIND-PROTECT;;
  1679. (clisp-symbol :COMMON-LISP "UPGRADED-ARRAY-ELEMENT-TYPE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/type.fas\" 94 122)))") ;;UPGRADED-ARRAY-ELEMENT-TYPE;;
  1680. (clisp-symbol :COMMON-LISP "UPGRADED-COMPLEX-PART-TYPE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/type.fas\" 124 161)))") ;;UPGRADED-COMPLEX-PART-TYPE;;
  1681. (clisp-symbol :COMMON-LISP "UPPER-CASE-P" "NIL") ;;UPPER-CASE-P;;
  1682. (clisp-symbol :COMMON-LISP "USE-PACKAGE" "NIL") ;;USE-PACKAGE;;
  1683. (clisp-symbol :COMMON-LISP "USE-VALUE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1166 1168)))") ;;USE-VALUE;;
  1684. (clisp-symbol :COMMON-LISP "USER-HOMEDIR-PATHNAME" "NIL") ;;USER-HOMEDIR-PATHNAME;;
  1685. (clisp-symbol :COMMON-LISP "VALUES" "(SYSTEM::SETF-EXPANDER (-5 . #<COMPILED-FUNCTION #:SETF-VALUES>) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/places.fas\" 1226 1240)))") ;;VALUES;;
  1686. (clisp-symbol :COMMON-LISP "VALUES-LIST" "NIL") ;;VALUES-LIST;;
  1687. (clisp-symbol :COMMON-LISP "VARIABLE" "NIL") ;;VARIABLE;;
  1688. (clisp-symbol :COMMON-LISP "VECTOR" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS VECTOR> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-VECTOR> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION VECTORP>)") ;;VECTOR;;
  1689. (clisp-symbol :COMMON-LISP "VECTOR-POP" "NIL") ;;VECTOR-POP;;
  1690. (clisp-symbol :COMMON-LISP "VECTOR-PUSH" "NIL") ;;VECTOR-PUSH;;
  1691. (clisp-symbol :COMMON-LISP "VECTOR-PUSH-EXTEND" "NIL") ;;VECTOR-PUSH-EXTEND;;
  1692. (clisp-symbol :COMMON-LISP "VECTORP" "NIL") ;;VECTORP;;
  1693. (clisp-symbol :COMMON-LISP "WARN" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1591 1630)))") ;;WARN;;
  1694. (clisp-symbol :COMMON-LISP "WARN-1" "NIL") ;;COMMON-LISP::WARN-1;;
  1695. (clisp-symbol :COMMON-LISP "WARN-2" "NIL") ;;COMMON-LISP::WARN-2;;
  1696. (clisp-symbol :COMMON-LISP "WARN-3" "NIL") ;;COMMON-LISP::WARN-3;;
  1697. (clisp-symbol :COMMON-LISP "WARNING" "(CLOS::CLOSCLASS #1=#<STANDARD-CLASS WARNING> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 429 432)))") ;;WARNING;;
  1698. (clisp-symbol :COMMON-LISP "WHEN" "(SYSTEM::MACRO #<COMPILED-FUNCTION WHEN>)") ;;WHEN;;
  1699. (clisp-symbol :COMMON-LISP "WILD-PATHNAME-P" "NIL") ;;WILD-PATHNAME-P;;
  1700. (clisp-symbol :COMMON-LISP "WITH-COMPILATION-UNIT" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/compiler.fas\" 11031 11051)))") ;;WITH-COMPILATION-UNIT;;
  1701. (clisp-symbol :COMMON-LISP "WITH-CONDITION-RESTARTS" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 786 792)))") ;;WITH-CONDITION-RESTARTS;;
  1702. (clisp-symbol :COMMON-LISP "WITH-HASH-TABLE-ITERATOR" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs2.fas\" 128 139)))") ;;WITH-HASH-TABLE-ITERATOR;;
  1703. (clisp-symbol :COMMON-LISP "WITH-INPUT-FROM-STRING" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros2.fas\" 296 310)))") ;;WITH-INPUT-FROM-STRING;;
  1704. (clisp-symbol :COMMON-LISP "WITH-OPEN-FILE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros2.fas\" 311 318)))") ;;WITH-OPEN-FILE;;
  1705. (clisp-symbol :COMMON-LISP "WITH-OPEN-STREAM" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros2.fas\" 319 326)))") ;;WITH-OPEN-STREAM;;
  1706. (clisp-symbol :COMMON-LISP "WITH-OUTPUT-TO-STRING" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/macros2.fas\" 327 344)))") ;;WITH-OUTPUT-TO-STRING;;
  1707. (clisp-symbol :COMMON-LISP "WITH-PACKAGE-ITERATOR" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 86 108)))") ;;WITH-PACKAGE-ITERATOR;;
  1708. (clisp-symbol :COMMON-LISP "WITH-SIMPLE-RESTART" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/condition.fas\" 1118 1142)))") ;;WITH-SIMPLE-RESTART;;
  1709. (clisp-symbol :COMMON-LISP "WITH-STANDARD-IO-SYNTAX" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs2.fas\" 86 126)))") ;;WITH-STANDARD-IO-SYNTAX;;
  1710. (clisp-symbol :COMMON-LISP "WRITE" "NIL") ;;WRITE;;
  1711. (clisp-symbol :COMMON-LISP "WRITE-BYTE" "NIL") ;;WRITE-BYTE;;
  1712. (clisp-symbol :COMMON-LISP "WRITE-CHAR" "NIL") ;;WRITE-CHAR;;
  1713. (clisp-symbol :COMMON-LISP "WRITE-LINE" "NIL") ;;WRITE-LINE;;
  1714. (clisp-symbol :COMMON-LISP "WRITE-SEQUENCE" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs2.fas\" 252 267)))") ;;WRITE-SEQUENCE;;
  1715. (clisp-symbol :COMMON-LISP "WRITE-STRING" "NIL") ;;WRITE-STRING;;
  1716. (clisp-symbol :COMMON-LISP "WRITE-TO-STRING" "NIL") ;;WRITE-TO-STRING;;
  1717. (clisp-symbol :COMMON-LISP "Y-OR-N-P" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/query.fas\" 5 23)))") ;;Y-OR-N-P;;
  1718. (clisp-symbol :COMMON-LISP "YES-OR-NO-P" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/query.fas\" 27 42)))") ;;YES-OR-NO-P;;
  1719. (clisp-symbol :COMMON-LISP "ZEROP" "NIL") ;;ZEROP;;
  1720. (clisp-symbol :COMMON-LISP-USER "6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C" "NIL") ;;|6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C|;;
  1721. (clisp-symbol :COMMON-LISP-USER "COPY-LOCALE-CONV" "(SYSTEM::INLINE-EXPANSION ((STRUCTURE) (DECLARE (SYSTEM::IN-DEFUN COPY-LOCALE-CONV)) (BLOCK COPY-LOCALE-CONV (COPY-STRUCTURE STRUCTURE))) SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/i18n/i18n.fas\" 44 66)) SYSTEM::INLINABLE INLINE)") ;;COPY-LOCALE-CONV;;
  1722. (clisp-symbol :COMMON-LISP-USER "STRING-REPLACE" "NIL") ;;STRING-REPLACE;;
  1723. (clisp-symbol :COMMON-LISP-USER "SUBSTITUE" "NIL") ;;SUBSTITUE;;
  1724. (clisp-symbol :COMMON-LISP-USER "V" "NIL") ;;V;;
  1725. (clisp-symbol :CS-COMMON-LISP "FIND-ALL-SYMBOLS" "NIL") ;;CS-COMMON-LISP:find-all-symbols;;
  1726. (clisp-symbol :CS-COMMON-LISP "FIND-SYMBOL" "NIL") ;;CS-COMMON-LISP:find-symbol;;
  1727. (clisp-symbol :CS-COMMON-LISP "INTERN" "NIL") ;;CS-COMMON-LISP:intern;;
  1728. (clisp-symbol :CS-COMMON-LISP "MAKE-PACKAGE" "NIL") ;;CS-COMMON-LISP:make-package;;
  1729. (clisp-symbol :CS-COMMON-LISP "SHADOW" "NIL") ;;CS-COMMON-LISP:shadow;;
  1730. (clisp-symbol :CS-COMMON-LISP "STRING" "(CLOS::CLOSCLASS #1=#<BUILT-IN-CLASS STRING> SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/clos-class3.fas\" 2584 2634)) SYSTEM::TYPE-LIST #<COMPILED-FUNCTION SYSTEM::TYPE-LIST-STRING> SYSTEM::TYPE-SYMBOL #<SYSTEM-FUNCTION STRINGP>)") ;;CS-COMMON-LISP:string;;
  1731. (clisp-symbol :CS-COMMON-LISP "STRING-LEFT-TRIM" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 453 454)))") ;;CS-COMMON-LISP:string-left-trim;;
  1732. (clisp-symbol :CS-COMMON-LISP "STRING-RIGHT-TRIM" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 458 459)))") ;;CS-COMMON-LISP:string-right-trim;;
  1733. (clisp-symbol :CS-COMMON-LISP "STRING-TRIM" "(SYSTEM::DOC (SYSTEM::FILE (#P\"/builddir/build/BUILD/clisp-2.38/build/defs1.fas\" 446 449)))") ;;CS-COMMON-LISP:string-trim;;
  1734. (clisp-symbol :CS-COMMON-LISP "STRING/=" "NIL") ;;CS-COMMON-LISP:string/=;;
  1735. (clisp-symbol :CS-COMMON-LISP "STRING<" "NIL") ;;CS-COMMON-LISP:string<;;
  1736. (clisp-symbol :CS-COMMON-LISP "STRING<=" "NIL") ;;CS-COMMON-LISP:string<=;;
  1737. (clisp-symbol :CS-COMMON-LISP "STRING=" "NIL") ;;CS-COMMON-LISP:string=;;
  1738. (clisp-symbol :CS-COMMON-LISP "STRING>" "NIL") ;;CS-COMMON-LISP:string>;;
  1739. (clisp-symbol :CS-COMMON-LISP "STRING>=" "NIL") ;;CS-COMMON-LISP:string>=;;
  1740. (clisp-symbol :CS-COMMON-LISP "SYMBOL-NAME" "NIL") ;;CS-COMMON-LISP:symbol-name;;
  1741. (sl::in-package "CYC")
  1742. ;;(sl::defvar *cl::package* (sl::make-package :COMMON-LISP '( :CYC :SUBLISP::CLOS) '("LISP" "CL")))
  1743. (sl::export '(*cl::package*))
  1744. (sl::in-package "LISP")
  1745. (sl::defvar *package* (sl::find-package "LISP"))
  1746. ;;(sl::import 'cyc::*cl::package* cyc::*cl::package* )
  1747. (sl::in-package "CYC")
  1748.  
  1749.  
  1750.  
  1751. #|
  1752. ;; Save the original cl::defmacro:: should actually be (macro-function 'defmacro)
  1753. ;;(cpushnew :COMMON-LISP *features*)
  1754. ;;Saved into a file called common.lisp
  1755. ;; (#|sl::|#load "common.lisp")
  1756. (define describe (form &optional info preresult (maxdepth 1))
  1757.   (punless info (setq info (type-of form)))
  1758.   (case                          
  1759.    ('SYMBOL
  1760.     (csetq preresult (symbol-plist form))
  1761.    
  1762.     (csetq info (symbol-name form))
  1763.     (alist-cpushnew preresult 'name info)
  1764.     (alist-cpushnew preresult 'home-package (symbol-package form))
  1765.    
  1766.     (alist-cpushnew preresult 'visibility  (FIND-ALL-SYMBOLS info))
  1767.     (fif (boundp from) (alist-cpushnew preresult 'value (symbol-value form)))
  1768.     (fif (fboundp form) (alist-cpushnew preresult 'function (symbol-function form)))
  1769.     (alist-cpushnew preresult type-of info)
  1770.     ('STRING
  1771.      (csetq info (find-package form))
  1772.      (if info (alist-cpushnew preresult 'package (describe info 'PACKAGE)))
  1773.      (csetq info (FIND-ALL-SYMBOLS form))
  1774.      (if info (alist-cpushnew preresult 'symbol info))
  1775.      ;;(csetq info (find-constant form))
  1776.      ('PACKAGE
  1777.       (alist-cpushnew preresult 'name (package-name from))
  1778.       (alist-cpushnew preresult 'nicknames (package-nicknames from))
  1779.       (alist-cpushnew preresult 'use (package-use-list from))
  1780.       (alist-cpushnew preresult 'used-by (package-used-by-list from))
  1781.       (alist-cpushnew preresult 'locked (package-locked from))
  1782.       (alist-cpushnew preresult type-of info))
  1783.      (ret
  1784.       (if (consp form)
  1785.         (cons (describe (car form)) (describe (cdr form)))
  1786.         (ret preresult)))))))
  1787.  
  1788.  
  1789.         (case
  1790.             (car
  1791.  
  1792.        (if (stringp form)
  1793.             (cons
  1794.                form (FIND-ALL-SYMBOLS form)
  1795.             (ret (mapcar
  1796.              #'(lambda (package)
  1797.                 (clet ((res (multiple-values-list (find-symbol form package))))
  1798.                    (if (car res)
  1799.                      (ret (append (cons package (second res)) (describe res)))
  1800.                        (ret nil)))) (list-all-packages) )))
  1801.  
  1802.         ((packagep form)
  1803.             (do-all-symbols (name from)
  1804.             (ret
  1805.                (list
  1806.  
  1807.                 (cons 'exported do-symbols
  1808.    *ERROR-HANDLER*     (t (ret (type-of form)))
  1809. |#
  1810. (TRACE-LISP "got most")
  1811.  
  1812.  
  1813. ;; not finished
  1814. ;;;###autoload
  1815. (cl::defmacro  
  1816.  cl::defstruct (struct &rest descs)
  1817.  "(defstruct (symbolp OPTIONS...) (SLOT SLOT-OPTS...)...): define a struct type.
  1818. This macro defines a new Lisp data type called symbolp, which contains data
  1819. stored in SLOTs.  This defines a `make-name' constructor, a `copy-name'
  1820. copier, a `symbolp-p' predicate, and setf-able `symbolp-SLOT' accessors."
  1821.  (let* ((symbolp (if (consp struct) (car struct) struct))
  1822.         (opts (cdr-safe struct))
  1823.         (slots nil)
  1824.         (defaults nil)
  1825.         (conc-name (concat (symbol-name symbolp) "-"))
  1826.         (constructor (intern (format "make-%s" symbolp)))
  1827.         (constrs nil)
  1828.         (copier (intern (format "copy-%s" symbolp)))
  1829.         (predicate (intern (format "%s-p" symbolp)))
  1830.         (print-func nil) (print-auto nil)
  1831.         (safety (if (cl::compiling-file) cl::optimize-safety 3))
  1832.         (include nil)
  1833.         (tag (intern (format "cl::struct-%s" symbolp)))
  1834.         (tag-symbol (intern (format "cl::struct-%s-tags" symbolp)))
  1835.         (include-descs nil)
  1836.         (side-eff nil)
  1837.         (type nil)
  1838.         (symbolpd nil)
  1839.         (forms nil)
  1840.         pred-form pred-check)
  1841.    (if (stringp (car descs))
  1842.      (cl::push (list 'put (list 'quote symbolp) '(quote structure-documentation)
  1843.                 (cl::pop descs)) forms))
  1844.    (setq descs (cons '(cl::tag-slot)
  1845.                  (mapcar #'(lambda (x) (if (consp x) x (list x)))
  1846.                    descs)))
  1847.    (while opts
  1848.      (let ((opt (if (consp (car opts)) (caar opts) (car opts)))
  1849.            (args (cdr-safe (cl::pop opts))))
  1850.        (cond ((eq opt ':conc-name)
  1851.               (if args
  1852.                 (setq conc-name (if (car args)
  1853.                                   (symbol-name (car args)) ""))))
  1854.          ((eq opt ':constructor)
  1855.           (if (cdr args)
  1856.             (cl::push args constrs)
  1857.             (if args (setq constructor (car args)))))
  1858.          ((eq opt ':copier)
  1859.           (if args (setq copier (car args))))
  1860.          ((eq opt ':predicate)
  1861.           (if args (setq predicate (car args))))
  1862.          ((eq opt ':include)
  1863.           (setq include (car args)
  1864.             include-descs (mapcar #'(lambda (x)
  1865.                                       (if (consp x) x (list x)))
  1866.                             (cdr args))))
  1867.          ((eq opt ':print-function)
  1868.           (setq print-func (car args)))
  1869.          ((eq opt ':type)
  1870.           (setq type (car args)))
  1871.          ((eq opt ':symbolpd)
  1872.           (setq symbolpd t))
  1873.          ((eq opt ':initial-offset)
  1874.           (setq descs (nconc (make-list (car args) '(cl::skip-slot))
  1875.                         descs)))
  1876.          (t
  1877.           (error "Slot option %s unrecognized" opt)))))
  1878.    (if print-func
  1879.      (setq print-func (list 'progn
  1880.                         (list 'funcall (list 'function print-func)
  1881.                           'cl::x 'cl::s 'cl::n) t))
  1882.      (or type (and include (not (get include 'cl::struct-print)))
  1883.        (setq print-auto t
  1884.          print-func (and (or (not (or include type)) (null print-func))
  1885.                       (list 'progn
  1886.                         (list 'princ (format "#S(%s" symbolp)
  1887.                           'cl::s))))))
  1888.    (if include
  1889.      (let ((inc-type (get include 'cl::struct-type))
  1890.            (old-descs (get include 'cl::struct-slots)))
  1891.        (or inc-type (error "%s is not a struct symbolp" include))
  1892.        (and type (not (eq (car inc-type) type))
  1893.          (error ":type disagrees with :include for %s" symbolp))
  1894.        (while include-descs
  1895.          (setcar (memq (or (assq (caar include-descs) old-descs)
  1896.                          (error "No slot %s in included struct %s"
  1897.                            (caar include-descs) include))
  1898.                    old-descs)
  1899.            (cl::pop include-descs)))
  1900.        (setq descs (append old-descs (delq (assq 'cl::tag-slot descs) descs))
  1901.          type (car inc-type)
  1902.          symbolpd (assq 'cl::tag-slot descs))
  1903.        (if (cadr inc-type) (setq tag symbolp symbolpd t))
  1904.        (let ((incl include))
  1905.          (while incl
  1906.            (cl::push (list 'pushnew (list 'quote tag)
  1907.                       (intern (format "cl::struct-%s-tags" incl)))
  1908.              forms)
  1909.            (setq incl (get incl 'cl::struct-include)))))
  1910.      (if type
  1911.        (progn
  1912.         (or (memq type '(vector list))
  1913.           (error "Illegal :type specifier: %s" type))
  1914.         (if symbolpd (setq tag symbolp)))
  1915.        (setq type 'vector symbolpd 'true)))
  1916.    (or symbolpd (setq descs (delq (assq 'cl::tag-slot descs) descs)))
  1917.    (cl::push (list 'defvar tag-symbol) forms)
  1918.    (setq pred-form (and symbolpd
  1919.                      (let ((pos (- (length descs)
  1920.                                   (length (memq (assq 'cl::tag-slot descs)
  1921.                                             descs)))))
  1922.                        (if (eq type 'vector)
  1923.                          (list 'and '(vectorp cl::x)
  1924.                            (list '>= '(length cl::x) (length descs))
  1925.                            (list 'memq (list 'aref 'cl::x pos)
  1926.                              tag-symbol))
  1927.                          (if (= pos 0)
  1928.                            (list 'memq '(car-safe cl::x) tag-symbol)
  1929.                            (list 'and '(consp cl::x)
  1930.                              (list 'memq (list 'nth pos 'cl::x)
  1931.                                tag-symbol))))))
  1932.      pred-check (and pred-form (> safety 0)
  1933.                   (if (and (eq (caadr pred-form) 'vectorp)
  1934.                         (= safety 1))
  1935.                     (cons 'and (cdddr pred-form)) pred-form)))
  1936.    (let ((pos 0) (descp descs))
  1937.      (while descp
  1938.        (let* ((desc (cl::pop descp))
  1939.               (slot (car desc)))
  1940.          (if (memq slot '(cl::tag-slot cl::skip-slot))
  1941.            (progn
  1942.             (cl::push nil slots)
  1943.             (cl::push (and (eq slot 'cl::tag-slot) (list 'quote tag))
  1944.               defaults))
  1945.            (if (assq slot descp)
  1946.              (error "Duplicate slots symbolpd %s in %s" slot symbolp))
  1947.            (let ((accessor (intern (format "%s%s" conc-name slot))))
  1948.              (cl::push slot slots)
  1949.              (cl::push (nth 1 desc) defaults)
  1950.              (cl::push (list*
  1951.                        'defsubst* accessor '(cl::x)
  1952.                        (append
  1953.                         (and pred-check
  1954.                           (list (list 'or pred-check
  1955.                                   (list 'error
  1956.                                     (format "%s accessing a non-%s"
  1957.                                       accessor symbolp)
  1958.                                     'cl::x))))
  1959.                         (list (if (eq type 'vector) (list 'aref 'cl::x pos)
  1960.                                 (if (= pos 0) '(car cl::x)
  1961.                                   (list 'nth pos 'cl::x)))))) forms)
  1962.              (cl::push (cons accessor t) side-eff)
  1963.              (cl::push (list 'define-setf-method accessor '(cl::x)
  1964.                         (if (cadr (memq ':read-only (cddr desc)))
  1965.                           (list 'error (format "%s is a read-only slot"
  1966.                                          accessor))
  1967.                           (list 'cl::struct-setf-expander 'cl::x
  1968.                             (list 'quote symbolp) (list 'quote accessor)
  1969.                             (and pred-check (list 'quote pred-check))
  1970.                             pos)))
  1971.                forms)
  1972.              (if print-auto
  1973.                (nconc print-func
  1974.                  (list (list 'princ (format " %s" slot) 'cl::s)
  1975.                    (list 'prin1 (list accessor 'cl::x) 'cl::s)))))))
  1976.        (setq pos (1+ pos))))
  1977.    (setq slots (nreverse slots)
  1978.      defaults (nreverse defaults))
  1979.    (and predicate pred-form
  1980.      (progn (cl::push (list 'defsubst* predicate '(cl::x)
  1981.                        (if (eq (car pred-form) 'and)
  1982.                          (append pred-form '(t))
  1983.                          (list 'and pred-form t))) forms)
  1984.        (cl::push (cons predicate 'error-free) side-eff)))
  1985.    (and copier
  1986.      (progn (cl::push (list 'defun copier '(x) '(copy-sequence x)) forms)
  1987.        (cl::push (cons copier t) side-eff)))
  1988.    (if constructor
  1989.      (cl::push (list constructor
  1990.                 (cons '&key (delq nil (copy-sequence slots))))
  1991.        constrs))
  1992.    (while constrs
  1993.      (let* ((symbolp (caar constrs))
  1994.             (args (cadr (cl::pop constrs)))
  1995.             (asymbolps (cl::arglist-args args))
  1996.             (make (mapcar* #'(lambda (s d) (if (memq s asymbolps) s d))
  1997.                     slots defaults)))
  1998.        (cl::push (list 'defsubst* symbolp
  1999.                   (list* '&cl::defs (list 'quote (cons nil descs)) args)
  2000.                   (cons type make)) forms)
  2001.        (if (cl::safe-expr-p (cons 'progn (mapcar 'second descs)))
  2002.          (cl::push (cons symbolp t) side-eff))))
  2003.    (if print-auto (nconc print-func (list '(princ ")" cl::s) t)))
  2004.    (if print-func
  2005.      (cl::push (list 'push
  2006.                 (list 'function
  2007.                   (list 'lambda '(cl::x cl::s cl::n)
  2008.                     (list 'and pred-form print-func)))
  2009.                 'custom-print-functions) forms))
  2010.    (cl::push (list 'setq tag-symbol (list 'list (list 'quote tag))) forms)
  2011.    (cl::push (list* 'eval-when '(compile load eval)
  2012.               (list 'put (list 'quote symbolp) '(quote cl::struct-slots)
  2013.                 (list 'quote descs))
  2014.               (list 'put (list 'quote symbolp) '(quote cl::struct-type)
  2015.                 (list 'quote (list type (eq symbolpd t))))
  2016.               (list 'put (list 'quote symbolp) '(quote cl::struct-include)
  2017.                 (list 'quote include))
  2018.               (list 'put (list 'quote symbolp) '(quote cl::struct-print)
  2019.                 print-auto)
  2020.               (mapcar #'(lambda (x)
  2021.                           (list 'put (list 'quote (car x))
  2022.                             '(quote side-effect-free)
  2023.                             (list 'quote (cdr x))))
  2024.                 side-eff))
  2025.      forms)
  2026.    (cons 'progn (nreverse (cons (list 'quote symbolp) forms)))))
  2027.  
  2028. (defvar *cl::PACKAGE* *CYC-PACKAGE*)
  2029.  
  2030. ;;(#|sl::|#import 'cyc::*cyc-package* cyc::*cl::package*)
  2031. ;;(#|sl::|#import 'cyc::*sl-package* cyc::*cl::package*)
  2032. ;;(#|sl::|#import 'cyc::*keyword-package* cyc::*cl::package*)
  2033.  
  2034. ;;(#|sl::|#import 'sublisp::t cyc::*cl::package*)
  2035. ;;(#|sl::|#import 'sublisp::nil cyc::*cl::package*)
  2036. ;;(#|sl::|#import 'sublisp::import cyc::*cl::package*)
  2037.  
  2038. ;;(#|sl::|#import 'sublisp::export cyc::*cl::package*)
  2039. ;;(#|sl::|#import 'sublisp::load cyc::*cl::package*)
  2040. ;;(#|sl::|#import 'sublisp::in-package cyc::*cl::package*)
  2041.  
  2042. #|
  2043.  
  2044. (#|sl::|#in-package "LISP")
  2045. (#|sl::|#export '(SET-SYMBOL-PROPS code-find-symbol))
  2046.  
  2047.  
  2048. (#|sl::|#define LISP::code-find-symbol (sym)
  2049.     (#|sl::|#funless sym (#|sl::|#ret sym))
  2050.     (#|sl::|#ret
  2051.       (#|sl::|#list 'sublisp::find-symbol
  2052.         (#|sl::|#symbol-name sym)
  2053.             (#|sl::|#list 'sublisp::find-package (#|sl::|#package-name (#|sl::|#symbol-package sym))))))
  2054.  
  2055. (#|sl::|#define LISP::SET-SYMBOL-PROPS (prop1 &rest todo)
  2056.     (clet ((name (car todo)))
  2057.         (if (consp prop1)
  2058.             (ret (cons (LISP::SET-SYMBOL-PROPS prop1)(LISP::SET-SYMBOL-PROPS prop1)
  2059.     (pcond
  2060.         ((packagep prop1)
  2061.             (
  2062.    
  2063.     (#|sl::|#funless into (#|sl::|#csetq into cyc::*package*))
  2064.     (#|sl::|#funless (#|sl::|#packagep home-package)(#|sl::|#csetq home-package (#|sl::|#find-package home-package)))
  2065.     (#|sl::|#clet
  2066.      ((local (#|sl::|#find-symbol symbolp into))
  2067.       (default (#|sl::|#find-symbol symbolp))
  2068.       ;;(new (#|sl::|#make-symbol symbolp into))
  2069.       (sym (#|sl::|#find-symbol symbolp home-package)))
  2070.          (#|sl::|#punless (#|sl::|#equal *keyword-package* home-package)
  2071.             (#|sl::|#progn
  2072.              (#|sl::|#pif
  2073.                  (#|sl::|#cand local (#|sl::|#cnot (#|sl::|#equal local home-package)))
  2074.                  (#|sl::|#progn
  2075.                    (#|sl::|#format t "'(SET-SYMBOL-PROPS ~S ~S ~S ~S ~S))~%"
  2076.                             (#|sl::|#package-name home-package) symbolp (#|sl::|#package-name into)
  2077.                                 (#|sl::|#package-name (#|sl::|#symbol-package local)) (LISP::code-find-symbol default))
  2078.                    (#|sl::|#unexport local into)(#|sl::|#unintern local into))
  2079.                  (#|sl::|#progn
  2080.                    (#|sl::|#format t ";;'(SET-SYMBOL-PROPS ~S ~S ~S ~S ~S))~%"
  2081.                             (#|sl::|#package-name home-package) symbolp (#|sl::|#package-name into)
  2082.                                 (#|sl::|#package-name (#|sl::|#symbol-package local)) (LISP::code-find-symbol default))))
  2083.                 (#|sl::|#import sym into)
  2084.                 (#|sl::|#export sym into)))
  2085.         (#|sl::|#force-output)
  2086.         (#|sl::|#ret sym)))
  2087.  
  2088.  
  2089. |#
  2090. ;;; We define these here so that this file can compile without having
  2091. ;;; loaded the cl.el file already.
  2092. (cl::defmacro cl::push (x place) (list 'setq place (list 'cons x place)))
  2093. (cl::defmacro cl::pop (place) (list 'car (list 'prog1 place (list 'setq place (list 'cdr place)))))
  2094. (cl::defmacro cl::pop2 (place) (list 'prog1 (list 'car (list 'cdr place)) (list 'setq place (list 'cdr (list 'cdr place)))))
  2095. (put 'cl::push 'edebug-form-spec 'edebug-sexps)
  2096. (put 'cl::pop 'edebug-form-spec 'edebug-sexps)
  2097. (put 'cl::pop2 'edebug-form-spec 'edebug-sexps)
  2098.  
  2099. (defvar cl::emacs-type)
  2100. (defvar cl::optimize-safety)
  2101. (defvar cl::optimize-speed)
  2102.  
  2103.  
  2104. #|
  2105.  
  2106. (defmacro with-call/cc (&body body)
  2107.   "Execute BODY with quasi continutations.
  2108.  
  2109. BODY may not refer to macrolets and symbol-macrolets defined
  2110. outside of BODY.
  2111.  
  2112. Within BODY the \"operator\" call/cc can be used to access the
  2113. current continuation. call/cc takes a single argument which must
  2114. be a function of one argument. This function will be passed the
  2115. curent continuation.
  2116.  
  2117. with-call/cc simply CPS transforms it's body, so the continuation
  2118. pass to call/cc is NOT a real continuation, but goes only as far
  2119. back as the nearest lexically enclosing with-call/cc form."
  2120.   (case (length body)
  2121.     (0 NIL)
  2122.     (1 (to-cps (first body)))
  2123.     (t (to-cps `(progn ,@body)))))
  2124.  
  2125. (defvar *call/cc-returns* nil
  2126.   "Set to T if CALL/CC should call its continuation, otherwise
  2127. the lambda passed to CALL/CC must call the continuation
  2128. explicitly.")
  2129.  
  2130. ;;(in-package "SUBLISP")
  2131. (defmacro prog1 (body1 &body body) (ret `(clet ((prog1res ,body1)) ,@body prog1res)))
  2132. |#
  2133.  
  2134. (cl::defmacro cl::defvar (symbolp &optional form stringp)
  2135.     (ret
  2136.     `(progn
  2137.         (#|sl::|#csetq *cl::importing-package* *package*)
  2138.         (#|sl::|#in-package (package-name *cl::package*))
  2139.         (#|sl::|#defvar ,symbolp (cl::eval ,form) stringp)
  2140.         (#|sl::|#export '(,symbolp) *cl::package*)
  2141.         (#|sl::|#in-package (package-name *cl::package*))
  2142.         (#|sl::|#import (find-symbol ",symbolp" *cl::package*)))))
  2143.  
  2144. (cl::defvar *in-package-init* nil)
  2145.  
  2146. (defvar *default-package-use-list* (list *cyc-package* *sublisp-package*)
  2147.   "The list of packages to use by default of no :USE argument is supplied
  2148.   to MAKE-PACKAGE or other package creation forms.")
  2149. (pushnew *cyc-package* *default-package-use-list*)
  2150. (pushnew *sublisp-package* *default-package-use-list*)
  2151.            
  2152. (cl::defmacro cl::make-package (name &key nicknames use)
  2153.         (ret (clet ((*in-package-init* (#|sl::|#find-package `,name)))
  2154.             (pwhen (cnot *in-package-init*)
  2155.                 (if use (csetq *in-package-init* `(#|sl::|#make-package ,name ,use ,nicknames))
  2156.                     (csetq *in-package-init* `(#|sl::|#make-package ,name ,@*default-package-use-list* ,nicknames))))
  2157.              *in-package-init*)))
  2158.  
  2159.  
  2160.  
  2161. ;;;###autoload
  2162. (cl::defmacro defun* (symbolp args &rest body)
  2163.   "(defun* symbolp ARGLIST [DOCSTRING] BODY...): define symbolp as a function.
  2164. Like normal `defun', except ARGLIST allows full Common Lisp conventions,
  2165. and BODY is implicitly surrounded by (block symbolp ...)."
  2166.   (let* ((res (cl::transform-lambda (cons args body) symbolp))
  2167.      (form (list* 'defun symbolp (cdr res))))
  2168.         (if (car res) (list 'progn (car res) form) form)))
  2169.  
  2170.  
  2171. ;;;###autoload
  2172. (cl::defmacro cl::defmacro* (symbolp args &rest body)
  2173.   "(cl::defmacro* symbolp ARGLIST [DOCSTRING] BODY...): define symbolp as a macro.
  2174. Like normal `defmacro', except ARGLIST allows full Common Lisp conventions,
  2175. and BODY is implicitly surrounded by (block symbolp ...)."
  2176.   (let* ((res (cl::transform-lambda (cons args body) symbolp))
  2177.      (form (list* 'defmacro symbolp (cdr res))))
  2178.     (if (car res) (list 'progn (car res) form) form)))
  2179.  
  2180.  
  2181.  
  2182.  
  2183. ;;(in-package "CL")
  2184.  
  2185. ;;(in-package "SUBLISP")
  2186. ;;(cl::defmacro prog1 (body1 &body body) (ret `(let ((prog1res ,body1)) ,@body prog1res)))
  2187.  
  2188.  
  2189.  
  2190.  
  2191. ;;(defun use-package (packages-to-use &optional (package *package*))
  2192. ;;(do-all-symbols (v) (format t "(clisp-symbol :~A ~S ~S) ;;~S;;~%" (package-name (symbol-package v)) (symbol-name v) (write-to-string (symbol-plist v) :pretty nil :escape t ) v ))
  2193.  
  2194. ;;        (if (boundp v) (symbol-value v) ()))
  2195.    
  2196.  
  2197.  
  2198.  
  2199. ;; not finished
  2200. ;;;###autoload
  2201. (cl::defmacro  defstruct (struct &rest descs)
  2202.   "(defstruct (symbolp OPTIONS...) (SLOT SLOT-OPTS...)...): define a struct type.
  2203. This macro defines a new Lisp data type called symbolp, which contains data
  2204. stored in SLOTs.  This defines a `make-name' constructor, a `copy-name'
  2205. copier, a `symbolp-p' predicate, and setf-able `symbolp-SLOT' accessors."
  2206.   (let* ((symbolp (if (consp struct) (car struct) struct))
  2207.      (opts (cdr-safe struct))
  2208.      (slots nil)
  2209.      (defaults nil)
  2210.      (conc-name (concat (symbol-name symbolp) "-"))
  2211.      (constructor (intern (format "make-%s" symbolp)))
  2212.      (constrs nil)
  2213.      (copier (intern (format "copy-%s" symbolp)))
  2214.      (predicate (intern (format "%s-p" symbolp)))
  2215.      (print-func nil) (print-auto nil)
  2216.      (safety (if (cl::compiling-file) cl::optimize-safety 3))
  2217.      (include nil)
  2218.      (tag (intern (format "cl::struct-%s" symbolp)))
  2219.      (tag-symbol (intern (format "cl::struct-%s-tags" symbolp)))
  2220.      (include-descs nil)
  2221.      (side-eff nil)
  2222.      (type nil)
  2223.      (symbolpd nil)
  2224.      (forms nil)
  2225.      pred-form pred-check)
  2226.     (if (stringp (car descs))
  2227.     (cl::push (list 'put (list 'quote symbolp) '(quote structure-documentation)
  2228.                (cl::pop descs)) forms))
  2229.     (setq descs (cons '(cl::tag-slot)
  2230.               (mapcar #'(lambda (x) (if (consp x) x (list x)))
  2231.                   descs)))
  2232.     (while opts
  2233.       (let ((opt (if (consp (car opts)) (caar opts) (car opts)))
  2234.         (args (cdr-safe (cl::pop opts))))
  2235.     (cond ((eq opt ':conc-name)
  2236.            (if args
  2237.            (setq conc-name (if (car args)
  2238.                        (symbol-name (car args)) ""))))
  2239.           ((eq opt ':constructor)
  2240.            (if (cdr args)
  2241.            (cl::push args constrs)
  2242.          (if args (setq constructor (car args)))))
  2243.           ((eq opt ':copier)
  2244.            (if args (setq copier (car args))))
  2245.           ((eq opt ':predicate)
  2246.            (if args (setq predicate (car args))))
  2247.           ((eq opt ':include)
  2248.            (setq include (car args)
  2249.              include-descs (mapcar #'(lambda (x)
  2250.                            (if (consp x) x (list x)))
  2251.                        (cdr args))))
  2252.           ((eq opt ':print-function)
  2253.            (setq print-func (car args)))
  2254.           ((eq opt ':type)
  2255.            (setq type (car args)))
  2256.           ((eq opt ':symbolpd)
  2257.            (setq symbolpd t))
  2258.           ((eq opt ':initial-offset)
  2259.            (setq descs (nconc (make-list (car args) '(cl::skip-slot))
  2260.                   descs)))
  2261.           (t
  2262.            (error "Slot option %s unrecognized" opt)))))
  2263.     (if print-func
  2264.     (setq print-func (list 'progn
  2265.                    (list 'funcall (list 'function print-func)
  2266.                      'cl::x 'cl::s 'cl::n) t))
  2267.       (or type (and include (not (get include 'cl::struct-print)))
  2268.       (setq print-auto t
  2269.         print-func (and (or (not (or include type)) (null print-func))
  2270.                 (list 'progn
  2271.                       (list 'princ (format "#S(%s" symbolp)
  2272.                         'cl::s))))))
  2273.     (if include
  2274.     (let ((inc-type (get include 'cl::struct-type))
  2275.           (old-descs (get include 'cl::struct-slots)))
  2276.       (or inc-type (error "%s is not a struct symbolp" include))
  2277.       (and type (not (eq (car inc-type) type))
  2278.            (error ":type disagrees with :include for %s" symbolp))
  2279.       (while include-descs
  2280.         (setcar (memq (or (assq (caar include-descs) old-descs)
  2281.                   (error "No slot %s in included struct %s"
  2282.                      (caar include-descs) include))
  2283.               old-descs)
  2284.             (cl::pop include-descs)))
  2285.       (setq descs (append old-descs (delq (assq 'cl::tag-slot descs) descs))
  2286.         type (car inc-type)
  2287.         symbolpd (assq 'cl::tag-slot descs))
  2288.       (if (cadr inc-type) (setq tag symbolp symbolpd t))
  2289.       (let ((incl include))
  2290.         (while incl
  2291.           (cl::push (list 'pushnew (list 'quote tag)
  2292.                  (intern (format "cl::struct-%s-tags" incl)))
  2293.                forms)
  2294.           (setq incl (get incl 'cl::struct-include)))))
  2295.       (if type
  2296.       (progn
  2297.         (or (memq type '(vector list))
  2298.         (error "Illegal :type specifier: %s" type))
  2299.         (if symbolpd (setq tag symbolp)))
  2300.     (setq type 'vector symbolpd 'true)))
  2301.     (or symbolpd (setq descs (delq (assq 'cl::tag-slot descs) descs)))
  2302.     (cl::push (list 'defvar tag-symbol) forms)
  2303.     (setq pred-form (and symbolpd
  2304.              (let ((pos (- (length descs)
  2305.                        (length (memq (assq 'cl::tag-slot descs)
  2306.                              descs)))))
  2307.                (if (eq type 'vector)
  2308.                    (list 'and '(vectorp cl::x)
  2309.                      (list '>= '(length cl::x) (length descs))
  2310.                      (list 'memq (list 'aref 'cl::x pos)
  2311.                        tag-symbol))
  2312.                  (if (= pos 0)
  2313.                  (list 'memq '(car-safe cl::x) tag-symbol)
  2314.                    (list 'and '(consp cl::x)
  2315.                      (list 'memq (list 'nth pos 'cl::x)
  2316.                        tag-symbol))))))
  2317.       pred-check (and pred-form (> safety 0)
  2318.               (if (and (eq (caadr pred-form) 'vectorp)
  2319.                    (= safety 1))
  2320.                   (cons 'and (cdddr pred-form)) pred-form)))
  2321.     (let ((pos 0) (descp descs))
  2322.       (while descp
  2323.     (let* ((desc (cl::pop descp))
  2324.            (slot (car desc)))
  2325.       (if (memq slot '(cl::tag-slot cl::skip-slot))
  2326.           (progn
  2327.         (cl::push nil slots)
  2328.         (cl::push (and (eq slot 'cl::tag-slot) (list 'quote tag))
  2329.              defaults))
  2330.         (if (assq slot descp)
  2331.         (error "Duplicate slots symbolpd %s in %s" slot symbolp))
  2332.         (let ((accessor (intern (format "%s%s" conc-name slot))))
  2333.           (cl::push slot slots)
  2334.           (cl::push (nth 1 desc) defaults)
  2335.           (cl::push (list*
  2336.             'defsubst* accessor '(cl::x)
  2337.             (append
  2338.              (and pred-check
  2339.                   (list (list 'or pred-check
  2340.                       (list 'error
  2341.                         (format "%s accessing a non-%s"
  2342.                             accessor symbolp)
  2343.                         'cl::x))))
  2344.              (list (if (eq type 'vector) (list 'aref 'cl::x pos)
  2345.                  (if (= pos 0) '(car cl::x)
  2346.                    (list 'nth pos 'cl::x)))))) forms)
  2347.           (cl::push (cons accessor t) side-eff)
  2348.           (cl::push (list 'define-setf-method accessor '(cl::x)
  2349.                  (if (cadr (memq ':read-only (cddr desc)))
  2350.                  (list 'error (format "%s is a read-only slot"
  2351.                               accessor))
  2352.                    (list 'cl::struct-setf-expander 'cl::x
  2353.                      (list 'quote symbolp) (list 'quote accessor)
  2354.                      (and pred-check (list 'quote pred-check))
  2355.                      pos)))
  2356.                forms)
  2357.           (if print-auto
  2358.           (nconc print-func
  2359.              (list (list 'princ (format " %s" slot) 'cl::s)
  2360.                    (list 'prin1 (list accessor 'cl::x) 'cl::s)))))))
  2361.     (setq pos (1+ pos))))
  2362.     (setq slots (nreverse slots)
  2363.       defaults (nreverse defaults))
  2364.     (and predicate pred-form
  2365.      (progn (cl::push (list 'defsubst* predicate '(cl::x)
  2366.                    (if (eq (car pred-form) 'and)
  2367.                    (append pred-form '(t))
  2368.                  (list 'and pred-form t))) forms)
  2369.         (cl::push (cons predicate 'error-free) side-eff)))
  2370.     (and copier
  2371.      (progn (cl::push (list 'defun copier '(x) '(copy-sequence x)) forms)
  2372.         (cl::push (cons copier t) side-eff)))
  2373.     (if constructor
  2374.     (cl::push (list constructor
  2375.                (cons '&key (delq nil (copy-sequence slots))))
  2376.          constrs))
  2377.     (while constrs
  2378.       (let* ((symbolp (caar constrs))
  2379.          (args (cadr (cl::pop constrs)))
  2380.          (asymbolps (cl::arglist-args args))
  2381.          (make (mapcar* #'(lambda (s d) (if (memq s asymbolps) s d))
  2382.                 slots defaults)))
  2383.     (cl::push (list 'defsubst* symbolp
  2384.                (list* '&cl::defs (list 'quote (cons nil descs)) args)
  2385.                (cons type make)) forms)
  2386.     (if (cl::safe-expr-p (cons 'progn (mapcar 'second descs)))
  2387.         (cl::push (cons symbolp t) side-eff))))
  2388.     (if print-auto (nconc print-func (list '(princ ")" cl::s) t)))
  2389.     (if print-func
  2390.     (cl::push (list 'push
  2391.                (list 'function
  2392.                  (list 'lambda '(cl::x cl::s cl::n)
  2393.                    (list 'and pred-form print-func)))
  2394.                'custom-print-functions) forms))
  2395.     (cl::push (list 'setq tag-symbol (list 'list (list 'quote tag))) forms)
  2396.     (cl::push (list* 'eval-when '(compile load eval)
  2397.             (list 'put (list 'quote symbolp) '(quote cl::struct-slots)
  2398.               (list 'quote descs))
  2399.             (list 'put (list 'quote symbolp) '(quote cl::struct-type)
  2400.               (list 'quote (list type (eq symbolpd t))))
  2401.             (list 'put (list 'quote symbolp) '(quote cl::struct-include)
  2402.               (list 'quote include))
  2403.             (list 'put (list 'quote symbolp) '(quote cl::struct-print)
  2404.               print-auto)
  2405.             (mapcar #'(lambda (x)
  2406.                 (list 'put (list 'quote (car x))
  2407.                       '(quote side-effect-free)
  2408.                       (list 'quote (cdr x))))
  2409.                 side-eff))
  2410.          forms)
  2411.     (cons 'progn (nreverse (cons (list 'quote symbolp) forms)))))
  2412.  
  2413.  
  2414.  
  2415. (cl::defvar *eval-mode* (list :load-toplevel :execute) )
  2416. (setq *eval-mode* (list :load-toplevel :execute) )
  2417. (cl::defmacro eval-when (when &body body) (ret `(if (intersection ',when *eval-mode*) (progn ,@body))))
  2418.  
  2419. ;;(in-package "CYC")
  2420.  
  2421. (TRACE-LISP "this is RCyc!")
  2422.  
  2423. ;;(load "cb_smartworld.lisp")
  2424. ;;(load "common_lisp2.lisp")
  2425.  
  2426. (force-output)
  2427.  
  2428. #|
  2429. (cl::make-package :GSTREAM :nicknames '() :use '() )
  2430. (cl::make-package :GRAY :nicknames '() :use '() )
  2431. (cl::make-package :I18N :nicknames '() :use '() )
  2432. (cl::make-package :SOCKET :nicknames '() :use '() )
  2433. (cl::make-package :CUSTOM :nicknames '() :use '() )
  2434. (cl::make-package :CHARSET :nicknames '() :use '() )
  2435.  
  2436. (cl::make-package :EXT :nicknames '("EXTENSIONS") :use '(#|::POSIX|# :SOCKET :GSTREAM :GRAY :I18N :COMMON-LISP :SUBLISP :CYC :CUSTOM) )
  2437. (or (memq 'cl::19 *features*)
  2438.     (error "Tried to load `cl::macs' before `cl'!"))
  2439. |#
  2440. (TRACE-LISP "this is not CL!")
  2441.  
  2442.  
  2443.  
  2444. ;;(cdo-symbols (x *package*) (print (list 'BORROW-SYMBOL *sublisp-package* (symbol-name x))))
  2445.  
  2446.  
  2447. ;;(like-funcall 'make-package :COMMON-LISP :nicknames '("LISP" "CL") :use '(:SUBLISP :CYC #|:CLOS|#) )
  2448.  
  2449. ;;(cl::defmacro defun (name pattern &body body) `(defun-like-cl ,name ,pattern (ret (progn ,@body))))
  2450.  
  2451.  
  2452.  
  2453. ;;(in-package "CYC")
  2454.  
  2455.  
  2456. (cl::defvar  *load-verbose* nil)
  2457. (cl::defvar *load-print* nil)
  2458.  
  2459.  
  2460. ;;(export '(cl::load like-funcall 'eval ))
  2461.  
  2462. (cl::defmacro load (filespec &key verbose print if-does-not-exist external-format)
  2463.   (let ((*standard-input* (OPEN-TEXT filespec :input)))
  2464.     (while (peek-char nil *standard-input* nil)
  2465.       (like-funcall 'eval  (read)))))
  2466.  
  2467. (cl::defmacro eval (form) (ret `(eval (commonlisp-to-sublisp ',form))))
  2468.  
  2469. (defun commonlisp-to-sublisp (form)
  2470.   (cond
  2471.    ((consp form)
  2472.     (cons (commonlisp-fun-to-sublisp (car form)) (commonlisp-args-to-sublisp (car form) 1 (cdr form))))
  2473.    ((atom form) form)
  2474.    (t form)))
  2475.  
  2476. (defun commonlisp-fun-to-sublisp (form)
  2477.   (cond
  2478.    ((member form '(cl::defmacro load eval)) (intern (concat "cl::" (symbol-name form) )))
  2479.    (t form)))
  2480.  
  2481. (defun commonlisp-args-to-sublisp (pred arg forms)
  2482.   (cond
  2483.    ((consp forms) (cons (commonlisp-to-sublisp (car forms)) (commonlisp-args-to-sublisp pred (+ 1 arg) (cdr forms))))
  2484.    (t forms)))
  2485.  
  2486. ;;(in-package "LISP")
  2487. ;;(export '(load eval))
  2488.  
  2489. ;;(cl::defmacro load (name &body opts) `(cl::load ,name ,@opts))
  2490.  
  2491. (cl::defmacro eval (name &body opts) `(like-funcall 'eval  ,name ,@opts))
  2492.  
  2493.  
  2494. ;;; cl::macs.el --- Common Lisp extensions for GNU Emacs Lisp (part four)
  2495.  
  2496. ;; Copyright (C) 1993 Free Software Foundation, Inc.
  2497.  
  2498. ;; Author: Dave Gillespie <daveg@synaptics.com>
  2499. ;; Version: 2.02
  2500. ;; Keywords: extensions
  2501.  
  2502. ;; This file is part of XEmacs.
  2503.  
  2504. ;; XEmacs is free software; you can redistribute it and/or modify it
  2505. ;; under the terms of the GNU General Public License as published by
  2506. ;; the Free Software Foundation; either version 2, or (at your option)
  2507. ;; any later version.
  2508.  
  2509. ;; XEmacs is distributed in the hope that it will be useful, but
  2510. ;; WITHOUT ANY WARRANTY; without even the implied warranty of
  2511. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  2512. ;; General Public License for more details.
  2513.  
  2514. ;; You should have received a copy of the GNU General Public License
  2515. ;; along with XEmacs; see the file COPYING.  If not, write to the Free
  2516. ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  2517. ;; 02111-1307, USA.
  2518.  
  2519. ;;; Synched up with: FSF 19.34.
  2520.  
  2521. ;;; Commentary:
  2522.  
  2523. ;; These are extensions to Emacs Lisp that provide a degree of
  2524. ;; Common Lisp compatibility, beyond what is already built-in
  2525. ;; in Emacs Lisp.
  2526. ;;
  2527. ;; This package was written by Dave Gillespie; it is a complete
  2528. ;; rewrite of Cesar Quiroz's original cl.el package of December 1986.
  2529. ;;
  2530. ;; This package works with Emacs 18, Emacs 19, and Lucid Emacs 19.
  2531. ;;
  2532. ;; Bug reports, comments, and suggestions are welcome!
  2533.  
  2534. ;; This file contains the portions of the Common Lisp extensions
  2535. ;; package which should be autoloaded, but need only be present
  2536. ;; if the compiler or interpreter is used---this file is not
  2537. ;; necessary for executing compiled code.
  2538.  
  2539. ;; See cl.el for Change Log.
  2540.  
  2541.  
  2542. ;;; Code:
  2543.  
  2544. ;;(or (memq 'cl::19 features) (error "Tried to load `cl::macs' before `cl'!"))
  2545.  
  2546.  
  2547. ;;; We define these here so that this file can compile without having
  2548. ;;; loaded the cl.el file already.
  2549.  
  2550. (cl::defmacro cl::push (x place) (list 'setq place (list 'cons x place)))
  2551. (cl::defmacro cl::pop (place)
  2552.   (list 'car (list 'prog1 place (list 'setq place (list 'cdr place)))))
  2553. (cl::defmacro cl::pop2 (place)
  2554.   (list 'prog1 (list 'car (list 'cdr place))
  2555.     (list 'setq place (list 'cdr (list 'cdr place)))))
  2556. (put 'cl::push 'edebug-form-spec 'edebug-sexps)
  2557. (put 'cl::pop 'edebug-form-spec 'edebug-sexps)
  2558. (put 'cl::pop2 'edebug-form-spec 'edebug-sexps)
  2559.  
  2560. (defvar cl::emacs-type)
  2561. (defvar cl::optimize-safety)
  2562. (defvar cl::optimize-speed)
  2563.  
  2564.  
  2565. ;;; This kludge allows macros which use cl::transform-function-property
  2566. ;;; to be called at compile-time.
  2567. #|
  2568.     (require
  2569.  (progn
  2570.    (or (fboundp 'defalias) (fset 'defalias 'fset))
  2571.    (or (fboundp 'cl::transform-function-property)
  2572.        (defalias 'cl::transform-function-property
  2573.      #'(lambda (n p f)
  2574.          (list 'put (list 'quote n) (list 'quote p)
  2575.            (list 'function (cons 'lambda f))))))
  2576.    'xemacs)))|#
  2577.  
  2578.  
  2579. ;;; Initialization.
  2580.  
  2581. (defvar cl::old-bc-file-form nil)
  2582.  
  2583. ;; Patch broken Emacs 18 compiler (re top-level macros).
  2584. ;; Emacs 19 compiler doesn't need this patch.
  2585. ;; Also, undo broken definition of `eql' that uses same bytecode as `eq'.
  2586.  
  2587. ;;;###autoload
  2588. (defun cl::compile-time-init ()
  2589.   (setq cl::old-bc-file-form (symbol-function 'byte-compile-file-form))
  2590.   (or (fboundp 'byte-compile-flush-pending)   ; Emacs 19 compiler?
  2591.       (defalias 'byte-compile-file-form
  2592.     #'(lambda (form)
  2593.         (setq form (macroexpand form byte-compile-macro-environment))
  2594.         (if (eq (car-safe form) 'progn)
  2595.         (cons 'progn (mapcar 'byte-compile-file-form (cdr form)))
  2596.           (funcall cl::old-bc-file-form form)))))
  2597.   (put 'eql 'byte-compile 'cl::byte-compile-compiler-macro)
  2598.   (run-hooks 'cl::hack-bytecomp-hook))
  2599.  
  2600.  
  2601. ;;; Program structure.
  2602.  
  2603. ;;;###autoload
  2604. (cl::defmacro defun* (name args &rest body)
  2605.   "(defun* NAME ARGLIST [DOCSTRING] BODY...): define NAME as a function.
  2606. Like normal `defun', except ARGLIST allows full Common Lisp conventions,
  2607. and BODY is implicitly surrounded by (block NAME ...)."
  2608.   (let* ((res (cl::transform-lambda (cons args body) name))
  2609.      (form (list* 'defun name (cdr res))))
  2610.     (if (car res) (list 'progn (car res) form) form)))
  2611.  
  2612. ;;;###autoload
  2613. (cl::defmacro cl::defmacro* (name args &rest body)
  2614.   "(cl::defmacro* NAME ARGLIST [DOCSTRING] BODY...): define NAME as a macro.
  2615. Like normal `defmacro', except ARGLIST allows full Common Lisp conventions,
  2616. and BODY is implicitly surrounded by (block NAME ...)."
  2617.   (let* ((res (cl::transform-lambda (cons args body) name))
  2618.      (form (list* 'defmacro name (cdr res))))
  2619.     (if (car res) (list 'progn (car res) form) form)))
  2620.  
  2621. ;;;###autoload
  2622. (cl::defmacro function* (func)
  2623.   "(function* SYMBOL-OR-LAMBDA): introduce a function.
  2624. Like normal `function', except that if argument is a lambda form, its
  2625. ARGLIST allows full Common Lisp conventions."
  2626.   (if (eq (car-safe func) 'lambda)
  2627.       (let* ((res (cl::transform-lambda (cdr func) 'cl::none))
  2628.          (form (list 'function (cons 'lambda (cdr res)))))
  2629.     (if (car res) (list 'progn (car res) form) form))
  2630.     (list 'function func)))
  2631.  
  2632. (defun cl::transform-function-property (func prop form)
  2633.   (let ((res (cl::transform-lambda form func)))
  2634.     (append '(progn) (cdr (cdr (car res)))
  2635.         (list (list 'put (list 'quote func) (list 'quote prop)
  2636.             (list 'function (cons 'lambda (cdr res))))))))
  2637.  
  2638. (defconst lambda-list-keywords '(&optional &rest &key &allow-other-keys &aux &whole &body &environment))
  2639.  
  2640. (defvar cl::macro-environment nil)
  2641. (defvar bind-block) (defvar bind-defs) (defvar bind-enquote)
  2642. (defvar bind-inits) (defvar bind-lets) (defvar bind-forms)
  2643. (defvar arglist-visited)
  2644.  
  2645. ;; npak@ispras.ru
  2646. (defun cl::upcase-arg (arg)
  2647.   ;; Changes all non-keyword symbols in `ARG' to symbols
  2648.   ;; with name in upper case.
  2649.   ;; ARG is either symbol or list of symbols or lists
  2650.   (cond ;;((null arg) 'NIL)
  2651.         ((symbolp arg)
  2652.          ;; Do not upcase &optional, &key etc.
  2653.          (if (memq arg lambda-list-keywords) arg
  2654.            (intern (upcase (symbol-name arg)))))
  2655.         ((listp arg)
  2656.          (if (memq arg arglist-visited) (error 'circular-list '(arg)))
  2657.          (cl::push arg arglist-visited)
  2658.          (let ((arg (copy-list arg)) junk)
  2659.            ;; Clean the list
  2660.            (let ((p (last arg))) (if (cdr p) (setcdr p (list '&rest (cdr p)))))
  2661.            (if (setq junk (cadr (memq '&cl::defs arg)))
  2662.                (setq arg (delq '&cl::defs (delq junk arg))))
  2663.            (if (memq '&cl::quote arg)
  2664.                (setq arg (delq '&cl::quote arg)))
  2665.            (mapcar 'cl::upcase-arg arg)))
  2666.         (t arg)                         ; May be we are in initializer
  2667.         ))
  2668.  
  2669. ;; npak@ispras.ru
  2670. (defun cl::function-arglist (name arglist)
  2671.   "Returns string with printed representation of arguments list.
  2672. Supports Common Lisp lambda lists."
  2673.   (if (not (or (listp arglist) (symbolp arglist))) "Not available"
  2674.     (setq arglist-visited nil)
  2675.     (condition-case nil
  2676.         (prin1-to-string
  2677.          (cons (if (eq name 'cl::none) 'lambda name)
  2678.                (cond ((null arglist) nil)
  2679.                      ((listp arglist) (cl::upcase-arg arglist))
  2680.                      ((symbolp arglist)
  2681.                       (cl::upcase-arg (list '&rest arglist)))
  2682.                      (t (wrong-type-argument 'listp arglist)))))
  2683.       (t "Not available"))))
  2684.  
  2685. (defun cl::transform-lambda (form bind-block)
  2686.   (let* ((args (car form)) (body (cdr form))
  2687.      (bind-defs nil) (bind-enquote nil)
  2688.      (bind-inits nil) (bind-lets nil) (bind-forms nil)
  2689.      (header nil) (simple-args nil)
  2690.          (doc ""))
  2691.     ;; Add CL lambda list to documentation. npak@ispras.ru
  2692.     (if (and (stringp (car body))
  2693.              (cdr body))
  2694.         (setq doc (cl::pop body)))
  2695.     (cl::push (concat doc
  2696.                      "\nCommon Lisp lambda list:\n"
  2697.                      "  " (cl::function-arglist bind-block args)
  2698.                      "\n\n")
  2699.              header)
  2700.  
  2701.     (while (or (stringp (car body)) (eq (car-safe (car body)) 'interactive))
  2702.       (cl::push (cl::pop body) header))
  2703.     (setq args (if (listp args) (copy-list args) (list '&rest args)))
  2704.     (let ((p (last args))) (if (cdr p) (setcdr p (list '&rest (cdr p)))))
  2705.     (if (setq bind-defs (cadr (memq '&cl::defs args)))
  2706.     (setq args (delq '&cl::defs (delq bind-defs args))
  2707.           bind-defs (cadr bind-defs)))
  2708.     (if (setq bind-enquote (memq '&cl::quote args))
  2709.     (setq args (delq '&cl::quote args)))
  2710.     (if (memq '&whole args) (error "&whole not currently implemented"))
  2711.     (let* ((p (memq '&environment args)) (v (cadr p)))
  2712.       (if p (setq args (nconc (delq (car p) (delq v args))
  2713.                   (list '&aux (list v 'cl::macro-environment))))))
  2714.     (while (and args (symbolp (car args))
  2715.         (not (memq (car args) '(nil &rest &body &key &aux)))
  2716.         (not (and (eq (car args) '&optional)
  2717.               (or bind-defs (consp (cadr args))))))
  2718.       (cl::push (cl::pop args) simple-args))
  2719.     (or (eq bind-block 'cl::none)
  2720.     (setq body (list (list* 'block bind-block body))))
  2721.     (if (null args)
  2722.     (list* nil (nreverse simple-args) (nconc (nreverse header) body))
  2723.       (if (memq '&optional simple-args) (cl::push '&optional args))
  2724.       (cl::do-arglist args nil (- (length simple-args)
  2725.                  (if (memq '&optional simple-args) 1 0)))
  2726.       (setq bind-lets (nreverse bind-lets))
  2727.       (list* (and bind-inits (list* 'eval-when '(compile load eval)
  2728.                     (nreverse bind-inits)))
  2729.          (nconc (nreverse simple-args)
  2730.             (list '&rest (car (cl::pop bind-lets))))
  2731.          (nconc (nreverse header)
  2732.             (list (nconc (list 'let* bind-lets)
  2733.                  (nreverse bind-forms) body)))))))
  2734.  
  2735. (defun cl::do-arglist (args expr &optional num)   ; uses bind-*
  2736.   (if (nlistp args)
  2737.       (if (or (memq args lambda-list-keywords) (not (symbolp args)))
  2738.       (error "Invalid argument name: %s" args)
  2739.     (cl::push (list args expr) bind-lets))
  2740.     (setq args (copy-list args))
  2741.     (let ((p (last args))) (if (cdr p) (setcdr p (list '&rest (cdr p)))))
  2742.     (let ((p (memq '&body args))) (if p (setcar p '&rest)))
  2743.     (if (memq '&environment args) (error "&environment used incorrectly"))
  2744.     (let ((save-args args)
  2745.       (restarg (memq '&rest args))
  2746.       (safety (if (cl::compiling-file) cl::optimize-safety 3))
  2747.       (keys nil)
  2748.       (laterarg nil) (exactarg nil) minarg)
  2749.       (or num (setq num 0))
  2750.       (if (listp (cadr restarg))
  2751.       (setq restarg (gensym "--rest--"))
  2752.     (setq restarg (cadr restarg)))
  2753.       (cl::push (list restarg expr) bind-lets)
  2754.       (if (eq (car args) '&whole)
  2755.       (cl::push (list (cl::pop2 args) restarg) bind-lets))
  2756.       (let ((p args))
  2757.     (setq minarg restarg)
  2758.     (while (and p (not (memq (car p) lambda-list-keywords)))
  2759.       (or (eq p args) (setq minarg (list 'cdr minarg)))
  2760.       (setq p (cdr p)))
  2761.     (if (memq (car p) '(nil &aux))
  2762.         (setq minarg (list '= (list 'length restarg)
  2763.                    (length (ldiff args p)))
  2764.           exactarg (not (eq args p)))))
  2765.       (while (and args (not (memq (car args) lambda-list-keywords)))
  2766.     (let ((poparg (list (if (or (cdr args) (not exactarg)) 'pop 'car)
  2767.                 restarg)))
  2768.       (cl::do-arglist
  2769.        (cl::pop args)
  2770.        (if (or laterarg (= safety 0)) poparg
  2771.          (list 'if minarg poparg
  2772.            (list 'signal '(quote wrong-number-of-arguments)
  2773.              (list 'list (and (not (eq bind-block 'cl::none))
  2774.                       (list 'quote bind-block))
  2775.                    (list 'length restarg)))))))
  2776.     (setq num (1+ num) laterarg t))
  2777.       (while (and (eq (car args) '&optional) (cl::pop args))
  2778.     (while (and args (not (memq (car args) lambda-list-keywords)))
  2779.       (let ((arg (cl::pop args)))
  2780.         (or (consp arg) (setq arg (list arg)))
  2781.         (if (cddr arg) (cl::do-arglist (nth 2 arg) (list 'and restarg t)))
  2782.         (let ((def (if (cdr arg) (nth 1 arg)
  2783.              (or (car bind-defs)
  2784.                  (nth 1 (assq (car arg) bind-defs)))))
  2785.           (poparg (list 'pop restarg)))
  2786.           (and def bind-enquote (setq def (list 'quote def)))
  2787.           (cl::do-arglist (car arg)
  2788.                  (if def (list 'if restarg poparg def) poparg))
  2789.           (setq num (1+ num))))))
  2790.       (if (eq (car args) '&rest)
  2791.       (let ((arg (cl::pop2 args)))
  2792.         (if (consp arg) (cl::do-arglist arg restarg)))
  2793.     (or (eq (car args) '&key) (= safety 0) exactarg
  2794.         (cl::push (list 'if restarg
  2795.                (list 'signal '(quote wrong-number-of-arguments)
  2796.                  (list 'list
  2797.                        (and (not (eq bind-block 'cl::none))
  2798.                         (list 'quote bind-block))
  2799.                        (list '+ num (list 'length restarg)))))
  2800.              bind-forms)))
  2801.       (while (and (eq (car args) '&key) (cl::pop args))
  2802.     (while (and args (not (memq (car args) lambda-list-keywords)))
  2803.       (let ((arg (cl::pop args)))
  2804.         (or (consp arg) (setq arg (list arg)))
  2805.         (let* ((karg (if (consp (car arg)) (caar arg)
  2806.                (intern (format ":%s" (car arg)))))
  2807.            (varg (if (consp (car arg)) (cadar arg) (car arg)))
  2808.            (def (if (cdr arg) (cadr arg)
  2809.               (or (car bind-defs) (cadr (assq varg bind-defs)))))
  2810.            (look (list 'memq (list 'quote karg) restarg)))
  2811.           (and def bind-enquote (setq def (list 'quote def)))
  2812.           (if (cddr arg)
  2813.           (let* ((temp (or (nth 2 arg) (gensym)))
  2814.              (val (list 'car (list 'cdr temp))))
  2815.             (cl::do-arglist temp look)
  2816.             (cl::do-arglist varg
  2817.                    (list 'if temp
  2818.                      (list 'prog1 val (list 'setq temp t))
  2819.                      def)))
  2820.         (cl::do-arglist
  2821.          varg
  2822.          (list 'car
  2823.                (list 'cdr
  2824.                  (if (null def)
  2825.                  look
  2826.                    (list 'or look
  2827.                      (if (eq (cl::const-expr-p def) t)
  2828.                      (list
  2829.                       'quote
  2830.                       (list nil (cl::const-expr-val def)))
  2831.                        (list 'list nil def))))))))
  2832.           (cl::push karg keys)
  2833.           (if (= (aref (symbol-name karg) 0) ?:)
  2834.           (progn (set karg karg)
  2835.              (cl::push (list 'setq karg (list 'quote karg))
  2836.                   bind-inits)))))))
  2837.       (setq keys (nreverse keys))
  2838.       (or (and (eq (car args) '&allow-other-keys) (cl::pop args))
  2839.       (null keys) (= safety 0)
  2840.       (let* ((var (gensym "--keys--"))
  2841.          (allow '(:allow-other-keys))
  2842.          (check (list
  2843.              'while var
  2844.              (list
  2845.               'cond
  2846.               (list (list 'memq (list 'car var)
  2847.                       (list 'quote (append keys allow)))
  2848.                 (list 'setq var (list 'cdr (list 'cdr var))))
  2849.               (list (list 'car
  2850.                       (list 'cdr
  2851.                         (list 'memq (cons 'quote allow)
  2852.                           restarg)))
  2853.                 (list 'setq var nil))
  2854.               (list t
  2855.                 (list
  2856.                  'error
  2857.                  (format "Keyword argument %%s not one of %s"
  2858.                      keys)
  2859.                  (list 'car var)))))))
  2860.         (cl::push (list 'let (list (list var restarg)) check) bind-forms)))
  2861.       (while (and (eq (car args) '&aux) (cl::pop args))
  2862.     (while (and args (not (memq (car args) lambda-list-keywords)))
  2863.       (if (consp (car args))
  2864.           (if (and bind-enquote (cadar args))
  2865.           (cl::do-arglist (caar args)
  2866.                  (list 'quote (cadr (cl::pop args))))
  2867.         (cl::do-arglist (caar args) (cadr (cl::pop args))))
  2868.         (cl::do-arglist (cl::pop args) nil))))
  2869.       (if args (error "Malformed argument list %s" save-args)))))
  2870.  
  2871. (defun cl::arglist-args (args)
  2872.   (if (nlistp args) (list args)
  2873.     (let ((res nil) (kind nil) arg)
  2874.       (while (consp args)
  2875.     (setq arg (cl::pop args))
  2876.     (if (memq arg lambda-list-keywords) (setq kind arg)
  2877.       (if (eq arg '&cl::defs) (cl::pop args)
  2878.         (and (consp arg) kind (setq arg (car arg)))
  2879.         (and (consp arg) (cdr arg) (eq kind '&key) (setq arg (cadr arg)))
  2880.         (setq res (nconc res (cl::arglist-args arg))))))
  2881.       (nconc res (and args (list args))))))
  2882.  
  2883. ;;;###autoload
  2884. (cl::defmacro destructuring-bind (args expr &rest body)
  2885.   (let* ((bind-lets nil) (bind-forms nil) (bind-inits nil)
  2886.      (bind-defs nil) (bind-block 'cl::none))
  2887.     (cl::do-arglist (or args '(&aux)) expr)
  2888.     (append '(progn) bind-inits
  2889.         (list (nconc (list 'let* (nreverse bind-lets))
  2890.              (nreverse bind-forms) body)))))
  2891.  
  2892.  
  2893. ;;; The `eval-when' form.
  2894.  
  2895. (defvar cl::not-toplevel nil)
  2896.  
  2897. ;;;###autoload
  2898. (cl::defmacro eval-when (when &rest body)
  2899.   "(eval-when (WHEN...) BODY...): control when BODY is evaluated.
  2900. If `compile' is in WHEN, BODY is evaluated when compiled at top-level.
  2901. If `load' is in WHEN, BODY is evaluated when loaded after top-level compile.
  2902. If `eval' is in WHEN, BODY is evaluated when interpreted or at non-top-level."
  2903.   (if (and (fboundp 'cl::compiling-file) (cl::compiling-file)
  2904.        (not cl::not-toplevel) (not (boundp 'for-effect)))  ; horrible kludge
  2905.       (let ((comp (or (memq 'compile when) (memq ':compile-toplevel when)))
  2906.         (cl::not-toplevel t))
  2907.     (if (or (memq 'load when) (memq ':load-toplevel when))
  2908.         (if comp (cons 'progn (mapcar 'cl::compile-time-too body))
  2909.           (list* 'if nil nil body))
  2910.       (progn (if comp (eval (cons 'progn body))) nil)))
  2911.     (and (or (memq 'eval when) (memq ':execute when))
  2912.      (cons 'progn body))))
  2913.  
  2914. (defun cl::compile-time-too (form)
  2915.   (or (and (symbolp (car-safe form)) (get (car-safe form) 'byte-hunk-handler))
  2916.       (setq form (macroexpand
  2917.           form (cons '(eval-when) byte-compile-macro-environment))))
  2918.   (cond ((eq (car-safe form) 'progn)
  2919.      (cons 'progn (mapcar 'cl::compile-time-too (cdr form))))
  2920.     ((eq (car-safe form) 'eval-when)
  2921.      (let ((when (nth 1 form)))
  2922.        (if (or (memq 'eval when) (memq ':execute when))
  2923.            (list* 'eval-when (cons 'compile when) (cddr form))
  2924.          form)))
  2925.     (t (eval form) form)))
  2926.  
  2927. (or (and (fboundp 'eval-when-compile)
  2928.      (not (eq (car-safe (symbol-function 'eval-when-compile)) 'autoload)))
  2929.     (eval '(cl::defmacro eval-when-compile (&rest body)
  2930.          "Like `progn', but evaluates the body at compile time.
  2931. The result of the body appears to the compiler as a quoted constant."
  2932.          (list 'quote (eval (cons 'progn body))))))
  2933.  
  2934. ;;;###autoload
  2935. (cl::defmacro load-time-value (form &optional read-only)
  2936.   "Like `progn', but evaluates the body at load time.
  2937. The result of the body appears to the compiler as a quoted constant."
  2938.   (if (cl::compiling-file)
  2939.       (let* ((temp (gentemp "--cl::load-time--"))
  2940.          (set (list 'set (list 'quote temp) form)))
  2941.     (if (and (fboundp 'byte-compile-file-form-defmumble)
  2942.          (boundp 'this-kind) (boundp 'that-one))
  2943.         (fset 'byte-compile-file-form
  2944.           (list 'lambda '(form)
  2945.             (list 'fset '(quote byte-compile-file-form)
  2946.                   (list 'quote
  2947.                     (symbol-function 'byte-compile-file-form)))
  2948.             (list 'byte-compile-file-form (list 'quote set))
  2949.             '(byte-compile-file-form form)))
  2950.       ;; XEmacs change
  2951.       (print set (symbol-value ;;'outbuffer
  2952.                    'byte-compile-output-buffer
  2953.                    )))
  2954.     (list 'symbol-value (list 'quote temp)))
  2955.     (list 'quote (eval form))))
  2956.  
  2957.  
  2958. ;;; Conditional control structures.
  2959.  
  2960. ;;;###autoload
  2961. (cl::defmacro case (expr &rest clauses)
  2962.   "(case EXPR CLAUSES...): evals EXPR, chooses from CLAUSES on that value.
  2963. Each clause looks like (KEYLIST BODY...).  EXPR is evaluated and compared
  2964. against each key in each KEYLIST; the corresponding BODY is evaluated.
  2965. If no clause succeeds, case returns nil.  A single atom may be used in
  2966. place of a KEYLIST of one atom.  A KEYLIST of `t' or `otherwise' is
  2967. allowed only in the final clause, and matches if no other keys match.
  2968. Key values are compared by `eql'."
  2969.   (let* ((temp (if (cl::simple-expr-p expr 3) expr (gensym)))
  2970.      (head-list nil)
  2971.      (last-clause (car (last clauses)))
  2972.      (body (cons
  2973.         'cond
  2974.         (mapcar
  2975.          #'(lambda (c)
  2976.              (cons (cond ((memq (car c) '(t otherwise))
  2977.                   (or (eq c last-clause)
  2978.                       (error
  2979.                        "`%s' is allowed only as the last case clause"
  2980.                        (car c)))
  2981.                   t)
  2982.                  ((eq (car c) 'ecase-error-flag)
  2983.                   (list 'error "ecase failed: %s, %s"
  2984.                     temp (list 'quote (reverse head-list))))
  2985.                  ((listp (car c))
  2986.                   (setq head-list (append (car c) head-list))
  2987.                   (list 'member* temp (list 'quote (car c))))
  2988.                  (t
  2989.                   (if (memq (car c) head-list)
  2990.                       (error "Duplicate key in case: %s"
  2991.                          (car c)))
  2992.                   (cl::push (car c) head-list)
  2993.                   (list 'eql temp (list 'quote (car c)))))
  2994.                (or (cdr c) '(nil))))
  2995.          clauses))))
  2996.     (if (eq temp expr) body
  2997.       (list 'let (list (list temp expr)) body))))
  2998.  
  2999. ;; #### CL standard also requires `ccase', which signals a continuable
  3000. ;; error (`cerror' in XEmacs).  However, I don't think it buys us
  3001. ;; anything to introduce it, as there is probably much more CL stuff
  3002. ;; missing, and the feature is not essential.  --hniksic
  3003.  
  3004. ;;;###autoload
  3005. (cl::defmacro ecase (expr &rest clauses)
  3006.   "(ecase EXPR CLAUSES...): like `case', but error if no case fits.
  3007. `otherwise'-clauses are not allowed."
  3008.   (let ((disallowed (or (assq t clauses)
  3009.             (assq 'otherwise clauses))))
  3010.     (if disallowed
  3011.     (error "`%s' is not allowed in ecase" (car disallowed))))
  3012.   (list* 'case expr (append clauses '((ecase-error-flag)))))
  3013.  
  3014. ;;;###autoload
  3015. (cl::defmacro typecase (expr &rest clauses)
  3016.   "(typecase EXPR CLAUSES...): evals EXPR, chooses from CLAUSES on that value.
  3017. Each clause looks like (TYPE BODY...).  EXPR is evaluated and, if it
  3018. satisfies TYPE, the corresponding BODY is evaluated.  If no clause succeeds,
  3019. typecase returns nil.  A TYPE of `t' or `otherwise' is allowed only in the
  3020. final clause, and matches if no other keys match."
  3021.   (let* ((temp (if (cl::simple-expr-p expr 3) expr (gensym)))
  3022.      (type-list nil)
  3023.      (body (cons
  3024.         'cond
  3025.         (mapcar
  3026.          #'(lambda (c)
  3027.              (cons (cond ((eq (car c) 'otherwise) t)
  3028.                  ((eq (car c) 'ecase-error-flag)
  3029.                   (list 'error "etypecase failed: %s, %s"
  3030.                     temp (list 'quote (reverse type-list))))
  3031.                  (t
  3032.                   (cl::push (car c) type-list)
  3033.                   (cl::make-type-test temp (car c))))
  3034.                (or (cdr c) '(nil))))
  3035.          clauses))))
  3036.     (if (eq temp expr) body
  3037.       (list 'let (list (list temp expr)) body))))
  3038.  
  3039. ;;;###autoload
  3040. (cl::defmacro etypecase (expr &rest clauses)
  3041.   "(etypecase EXPR CLAUSES...): like `typecase', but error if no case fits.
  3042. `otherwise'-clauses are not allowed."
  3043.   (list* 'typecase expr (append clauses '((ecase-error-flag)))))
  3044.  
  3045.  
  3046. ;;; Blocks and exits.
  3047.  
  3048. ;;;###autoload
  3049. (cl::defmacro block (name &rest body)
  3050.   "(block NAME BODY...): define a lexically-scoped block named NAME.
  3051. NAME may be any symbol.  Code inside the BODY forms can call `return-from'
  3052. to jump prematurely out of the block.  This differs from `catch' and `throw'
  3053. in two respects:  First, the NAME is an unevaluated symbol rather than a
  3054. quoted symbol or other form; and second, NAME is lexically rather than
  3055. dynamically scoped:  Only references to it within BODY will work.  These
  3056. references may appear inside macro expansions, but not inside functions
  3057. called from BODY."
  3058.   (if (cl::safe-expr-p (cons 'progn body)) (cons 'progn body)
  3059.     (list 'cl::block-wrapper
  3060.       (list* 'catch (list 'quote (intern (format "--cl::block-%s--" name)))
  3061.          body))))
  3062.  
  3063. (defvar cl::active-block-names nil)
  3064.  
  3065. (put 'cl::block-wrapper 'byte-compile 'cl::byte-compile-block)
  3066. (defun cl::byte-compile-block (cl::form)
  3067.   (if (fboundp 'byte-compile-form-do-effect)  ; Check for optimizing compiler
  3068.       (progn
  3069.     (let* ((cl::entry (cons (nth 1 (nth 1 (nth 1 cl::form))) nil))
  3070.            (cl::active-block-names (cons cl::entry cl::active-block-names))
  3071.            (cl::body (byte-compile-top-level
  3072.              (cons 'progn (cddr (nth 1 cl::form))))))
  3073.       (if (cdr cl::entry)
  3074.           (byte-compile-form (list 'catch (nth 1 (nth 1 cl::form)) cl::body))
  3075.         (byte-compile-form cl::body))))
  3076.     (byte-compile-form (nth 1 cl::form))))
  3077.  
  3078. (put 'cl::block-throw 'byte-compile 'cl::byte-compile-throw)
  3079. (defun cl::byte-compile-throw (cl::form)
  3080.   (let ((cl::found (assq (nth 1 (nth 1 cl::form)) cl::active-block-names)))
  3081.     (if cl::found (setcdr cl::found t)))
  3082.   (byte-compile-normal-call (cons 'throw (cdr cl::form))))
  3083.  
  3084. ;;;###autoload
  3085. (cl::defmacro return (&optional res)
  3086.   "(return [RESULT]): return from the block named nil.
  3087. This is equivalent to `(return-from nil RESULT)'."
  3088.   (list 'return-from nil res))
  3089.  
  3090. ;;;###autoload
  3091. (cl::defmacro return-from (name &optional res)
  3092.   "(return-from NAME [RESULT]): return from the block named NAME.
  3093. This jumps out to the innermost enclosing `(block NAME ...)' form,
  3094. returning RESULT from that form (or nil if RESULT is omitted).
  3095. This is compatible with Common Lisp, but note that `defun' and
  3096. `defmacro' do not create implicit blocks as they do in Common Lisp."
  3097.   (let ((name2 (intern (format "--cl::block-%s--" name))))
  3098.     (list 'cl::block-throw (list 'quote name2) res)))
  3099.  
  3100.  
  3101. ;;; The "loop" macro.
  3102.  
  3103. (defvar args) (defvar loop-accum-var)
  3104. (defvar loop-accum-vars)
  3105. (defvar loop-bindings) (defvar loop-body) (defvar loop-destr-temps)
  3106. (defvar loop-finally) (defvar loop-finish-flag) (defvar loop-first-flag)
  3107. (defvar loop-initially) (defvar loop-map-form) (defvar loop-name)
  3108. (defvar loop-result) (defvar loop-result-explicit)
  3109. (defvar loop-result-var) (defvar loop-steps) (defvar loop-symbol-macs)
  3110.  
  3111. ;;;###autoload
  3112. (cl::defmacro loop (&rest args)
  3113.   "(loop CLAUSE...): The Common Lisp `loop' macro.
  3114. Valid clauses are:
  3115.  for VAR from/upfrom/downfrom NUM to/upto/downto/above/below NUM by NUM,
  3116.  for VAR in LIST by FUNC, for VAR on LIST by FUNC, for VAR = INIT then EXPR,
  3117.  for VAR across ARRAY, repeat NUM, with VAR = INIT, while COND, until COND,
  3118.  always COND, never COND, thereis COND, collect EXPR into VAR,
  3119.  append EXPR into VAR, nconc EXPR into VAR, sum EXPR into VAR,
  3120.  count EXPR into VAR, maximize EXPR into VAR, minimize EXPR into VAR,
  3121.  if COND CLAUSE [and CLAUSE]... else CLAUSE [and CLAUSE...],
  3122.  unless COND CLAUSE [and CLAUSE]... else CLAUSE [and CLAUSE...],
  3123.  do EXPRS..., initially EXPRS..., finally EXPRS..., return EXPR,
  3124.  finally return EXPR, named NAME."
  3125.   (if (not (memq t (mapcar 'symbolp (delq nil (delq t (copy-list args))))))
  3126.       (list 'block nil (list* 'while t args))
  3127.     (let ((loop-name nil)   (loop-bindings nil)
  3128.       (loop-body nil)   (loop-steps nil)
  3129.       (loop-result nil) (loop-result-explicit nil)
  3130.       (loop-result-var nil) (loop-finish-flag nil)
  3131.       (loop-accum-var nil)  (loop-accum-vars nil)
  3132.       (loop-initially nil)  (loop-finally nil)
  3133.       (loop-map-form nil)   (loop-first-flag nil)
  3134.       (loop-destr-temps nil) (loop-symbol-macs nil))
  3135.       (setq args (append args '(cl::end-loop)))
  3136.       (while (not (eq (car args) 'cl::end-loop)) (cl::parse-loop-clause))
  3137.       (if loop-finish-flag
  3138.       (cl::push (list (list loop-finish-flag t)) loop-bindings))
  3139.       (if loop-first-flag
  3140.       (progn (cl::push (list (list loop-first-flag t)) loop-bindings)
  3141.          (cl::push (list 'setq loop-first-flag nil) loop-steps)))
  3142.       (let* ((epilogue (nconc (nreverse loop-finally)
  3143.                   (list (or loop-result-explicit loop-result))))
  3144.          (ands (cl::loop-build-ands (nreverse loop-body)))
  3145.          (while-body (nconc (cadr ands) (nreverse loop-steps)))
  3146.          (body (append
  3147.             (nreverse loop-initially)
  3148.             (list (if loop-map-form
  3149.                   (list 'block '--cl::finish--
  3150.                     (subst
  3151.                      (if (eq (car ands) t) while-body
  3152.                        (cons (list 'or (car ands)
  3153.                            '(return-from --cl::finish--
  3154.                               nil))
  3155.                          while-body))
  3156.                      '--cl::map loop-map-form))
  3157.                 (list* 'while (car ands) while-body)))
  3158.             (if loop-finish-flag
  3159.             (if (equal epilogue '(nil)) (list loop-result-var)
  3160.               (list (list 'if loop-finish-flag
  3161.                       (cons 'progn epilogue) loop-result-var)))
  3162.               epilogue))))
  3163.     (if loop-result-var (cl::push (list loop-result-var) loop-bindings))
  3164.     (while loop-bindings
  3165.       (if (cdar loop-bindings)
  3166.           (setq body (list (cl::loop-let (cl::pop loop-bindings) body t)))
  3167.         (let ((lets nil))
  3168.           (while (and loop-bindings
  3169.               (not (cdar loop-bindings)))
  3170.         (cl::push (car (cl::pop loop-bindings)) lets))
  3171.           (setq body (list (cl::loop-let lets body nil))))))
  3172.     (if loop-symbol-macs
  3173.         (setq body (list (list* 'symbol-macrolet loop-symbol-macs body))))
  3174.     (list* 'block loop-name body)))))
  3175.  
  3176. (defun cl::parse-loop-clause ()   ; uses args, loop-*
  3177.   (let ((word (cl::pop args))
  3178.     (hash-types '(hash-key hash-keys hash-value hash-values))
  3179.     (key-types '(key-code key-codes key-seq key-seqs
  3180.              key-binding key-bindings)))
  3181.     (cond
  3182.  
  3183.      ((null args)
  3184.       (error "Malformed `loop' macro"))
  3185.  
  3186.      ((eq word 'named)
  3187.       (setq loop-name (cl::pop args)))
  3188.  
  3189.      ((eq word 'initially)
  3190.       (if (memq (car args) '(do doing)) (cl::pop args))
  3191.       (or (consp (car args)) (error "Syntax error on `initially' clause"))
  3192.       (while (consp (car args))
  3193.     (cl::push (cl::pop args) loop-initially)))
  3194.  
  3195.      ((eq word 'finally)
  3196.       (if (eq (car args) 'return)
  3197.       (setq loop-result-explicit (or (cl::pop2 args) '(quote nil)))
  3198.     (if (memq (car args) '(do doing)) (cl::pop args))
  3199.     (or (consp (car args)) (error "Syntax error on `finally' clause"))
  3200.     (if (and (eq (caar args) 'return) (null loop-name))
  3201.         (setq loop-result-explicit (or (nth 1 (cl::pop args)) '(quote nil)))
  3202.       (while (consp (car args))
  3203.         (cl::push (cl::pop args) loop-finally)))))
  3204.  
  3205.      ((memq word '(for as))
  3206.       (let ((loop-for-bindings nil) (loop-for-sets nil) (loop-for-steps nil)
  3207.         (ands nil))
  3208.     (while
  3209.         (let ((var (or (cl::pop args) (gensym))))
  3210.           (setq word (cl::pop args))
  3211.           (if (eq word 'being) (setq word (cl::pop args)))
  3212.           (if (memq word '(the each)) (setq word (cl::pop args)))
  3213.           (if (memq word '(buffer buffers))
  3214.           (setq word 'in args (cons '(buffer-list) args)))
  3215.           (cond
  3216.  
  3217.            ((memq word '(from downfrom upfrom to downto upto
  3218.                  above below by))
  3219.         (cl::push word args)
  3220.         (if (memq (car args) '(downto above))
  3221.             (error "Must specify `from' value for downward loop"))
  3222.         (let* ((down (or (eq (car args) 'downfrom)
  3223.                  (memq (caddr args) '(downto above))))
  3224.                (excl (or (memq (car args) '(above below))
  3225.                  (memq (caddr args) '(above below))))
  3226.                (start (and (memq (car args) '(from upfrom downfrom))
  3227.                    (cl::pop2 args)))
  3228.                (end (and (memq (car args)
  3229.                        '(to upto downto above below))
  3230.                  (cl::pop2 args)))
  3231.                (step (and (eq (car args) 'by) (cl::pop2 args)))
  3232.                (end-var (and (not (cl::const-expr-p end)) (gensym)))
  3233.                (step-var (and (not (cl::const-expr-p step))
  3234.                       (gensym))))
  3235.           (and step (numberp step) (<= step 0)
  3236.                (error "Loop `by' value is not positive: %s" step))
  3237.           (cl::push (list var (or start 0)) loop-for-bindings)
  3238.           (if end-var (cl::push (list end-var end) loop-for-bindings))
  3239.           (if step-var (cl::push (list step-var step)
  3240.                     loop-for-bindings))
  3241.           (if end
  3242.               (cl::push (list
  3243.                 (if down (if excl '> '>=) (if excl '< '<=))
  3244.                 var (or end-var end)) loop-body))
  3245.           (cl::push (list var (list (if down '- '+) var
  3246.                        (or step-var step 1)))
  3247.                loop-for-steps)))
  3248.  
  3249.            ((memq word '(in in-ref on))
  3250.         (let* ((on (eq word 'on))
  3251.                (temp (if (and on (symbolp var)) var (gensym))))
  3252.           (cl::push (list temp (cl::pop args)) loop-for-bindings)
  3253.           (cl::push (list 'consp temp) loop-body)
  3254.           (if (eq word 'in-ref)
  3255.               (cl::push (list var (list 'car temp)) loop-symbol-macs)
  3256.             (or (eq temp var)
  3257.             (progn
  3258.               (cl::push (list var nil) loop-for-bindings)
  3259.               (cl::push (list var (if on temp (list 'car temp)))
  3260.                    loop-for-sets))))
  3261.           (cl::push (list temp
  3262.                  (if (eq (car args) 'by)
  3263.                      (let ((step (cl::pop2 args)))
  3264.                        (if (and (memq (car-safe step)
  3265.                               '(quote function
  3266.                                   function*))
  3267.                         (symbolp (nth 1 step)))
  3268.                        (list (nth 1 step) temp)
  3269.                      (list 'funcall step temp)))
  3270.                    (list 'cdr temp)))
  3271.                loop-for-steps)))
  3272.  
  3273.            ((eq word '=)
  3274.         (let* ((start (cl::pop args))
  3275.                (then (if (eq (car args) 'then) (cl::pop2 args) start)))
  3276.           (cl::push (list var nil) loop-for-bindings)
  3277.           (if (or ands (eq (car args) 'and))
  3278.               (progn
  3279.             (cl::push (list var
  3280.                        (list 'if
  3281.                          (or loop-first-flag
  3282.                          (setq loop-first-flag
  3283.                                (gensym)))
  3284.                          start var))
  3285.                  loop-for-sets)
  3286.             (cl::push (list var then) loop-for-steps))
  3287.             (cl::push (list var
  3288.                    (if (eq start then) start
  3289.                      (list 'if
  3290.                        (or loop-first-flag
  3291.                            (setq loop-first-flag (gensym)))
  3292.                        start then)))
  3293.                  loop-for-sets))))
  3294.  
  3295.            ((memq word '(across across-ref))
  3296.         (let ((temp-vec (gensym)) (temp-idx (gensym)))
  3297.           (cl::push (list temp-vec (cl::pop args)) loop-for-bindings)
  3298.           (cl::push (list temp-idx -1) loop-for-bindings)
  3299.           (cl::push (list '< (list 'setq temp-idx (list '1+ temp-idx))
  3300.                  (list 'length temp-vec)) loop-body)
  3301.           (if (eq word 'across-ref)
  3302.               (cl::push (list var (list 'aref temp-vec temp-idx))
  3303.                    loop-symbol-macs)
  3304.             (cl::push (list var nil) loop-for-bindings)
  3305.             (cl::push (list var (list 'aref temp-vec temp-idx))
  3306.                  loop-for-sets))))
  3307.  
  3308.            ((memq word '(element elements))
  3309.         (let ((ref (or (memq (car args) '(in-ref of-ref))
  3310.                    (and (not (memq (car args) '(in of)))
  3311.                     (error "Expected `of'"))))
  3312.               (seq (cl::pop2 args))
  3313.               (temp-seq (gensym))
  3314.               (temp-idx (if (eq (car args) 'using)
  3315.                     (if (and (= (length (cadr args)) 2)
  3316.                          (eq (caadr args) 'index))
  3317.                     (cadr (cl::pop2 args))
  3318.                       (error "Bad `using' clause"))
  3319.                   (gensym))))
  3320.           (cl::push (list temp-seq seq) loop-for-bindings)
  3321.           (cl::push (list temp-idx 0) loop-for-bindings)
  3322.           (if ref
  3323.               (let ((temp-len (gensym)))
  3324.             (cl::push (list temp-len (list 'length temp-seq))
  3325.                  loop-for-bindings)
  3326.             (cl::push (list var (list 'elt temp-seq temp-idx))
  3327.                  loop-symbol-macs)
  3328.             (cl::push (list '< temp-idx temp-len) loop-body))
  3329.             (cl::push (list var nil) loop-for-bindings)
  3330.             (cl::push (list 'and temp-seq
  3331.                    (list 'or (list 'consp temp-seq)
  3332.                      (list '< temp-idx
  3333.                            (list 'length temp-seq))))
  3334.                  loop-body)
  3335.             (cl::push (list var (list 'if (list 'consp temp-seq)
  3336.                          (list 'pop temp-seq)
  3337.                          (list 'aref temp-seq temp-idx)))
  3338.                  loop-for-sets))
  3339.           (cl::push (list temp-idx (list '1+ temp-idx))
  3340.                loop-for-steps)))
  3341.  
  3342.            ((memq word hash-types)
  3343.         (or (memq (car args) '(in of)) (error "Expected `of'"))
  3344.         (let* ((table (cl::pop2 args))
  3345.                (other (if (eq (car args) 'using)
  3346.                   (if (and (= (length (cadr args)) 2)
  3347.                        (memq (caadr args) hash-types)
  3348.                        (not (eq (caadr args) word)))
  3349.                       (cadr (cl::pop2 args))
  3350.                     (error "Bad `using' clause"))
  3351.                 (gensym))))
  3352.           (if (memq word '(hash-value hash-values))
  3353.               (setq var (prog1 other (setq other var))))
  3354.           (setq loop-map-form
  3355.             (list 'maphash (list 'function
  3356.                          (list* 'lambda (list var other)
  3357.                             '--cl::map)) table))))
  3358.  
  3359.            ((memq word '(symbol present-symbol external-symbol
  3360.                  symbols present-symbols external-symbols))
  3361.         (let ((ob (and (memq (car args) '(in of)) (cl::pop2 args))))
  3362.           (setq loop-map-form
  3363.             (list 'mapatoms (list 'function
  3364.                           (list* 'lambda (list var)
  3365.                              '--cl::map)) ob))))
  3366.  
  3367.            ((memq word '(overlay overlays extent extents))
  3368.         (let ((buf nil) (from nil) (to nil))
  3369.           (while (memq (car args) '(in of from to))
  3370.             (cond ((eq (car args) 'from) (setq from (cl::pop2 args)))
  3371.               ((eq (car args) 'to) (setq to (cl::pop2 args)))
  3372.               (t (setq buf (cl::pop2 args)))))
  3373.           (setq loop-map-form
  3374.             (list 'cl::map-extents
  3375.                   (list 'function (list 'lambda (list var (gensym))
  3376.                             '(progn . --cl::map) nil))
  3377.                   buf from to))))
  3378.  
  3379.            ((memq word '(interval intervals))
  3380.         (let ((buf nil) (prop nil) (from nil) (to nil)
  3381.               (var1 (gensym)) (var2 (gensym)))
  3382.           (while (memq (car args) '(in of property from to))
  3383.             (cond ((eq (car args) 'from) (setq from (cl::pop2 args)))
  3384.               ((eq (car args) 'to) (setq to (cl::pop2 args)))
  3385.               ((eq (car args) 'property)
  3386.                (setq prop (cl::pop2 args)))
  3387.               (t (setq buf (cl::pop2 args)))))
  3388.           (if (and (consp var) (symbolp (car var)) (symbolp (cdr var)))
  3389.               (setq var1 (car var) var2 (cdr var))
  3390.             (cl::push (list var (list 'cons var1 var2)) loop-for-sets))
  3391.           (setq loop-map-form
  3392.             (list 'cl::map-intervals
  3393.                   (list 'function (list 'lambda (list var1 var2)
  3394.                             '(progn . --cl::map)))
  3395.                   buf prop from to))))
  3396.  
  3397.            ((memq word key-types)
  3398.         (or (memq (car args) '(in of)) (error "Expected `of'"))
  3399.         (let ((map (cl::pop2 args))
  3400.               (other (if (eq (car args) 'using)
  3401.                  (if (and (= (length (cadr args)) 2)
  3402.                       (memq (caadr args) key-types)
  3403.                       (not (eq (caadr args) word)))
  3404.                      (cadr (cl::pop2 args))
  3405.                    (error "Bad `using' clause"))
  3406.                    (gensym))))
  3407.           (if (memq word '(key-binding key-bindings))
  3408.               (setq var (prog1 other (setq other var))))
  3409.           (setq loop-map-form
  3410.             (list (if (memq word '(key-seq key-seqs))
  3411.                   'cl::map-keymap-recursively 'cl::map-keymap)
  3412.                   (list 'function (list* 'lambda (list var other)
  3413.                              '--cl::map)) map))))
  3414.  
  3415.            ((memq word '(frame frames screen screens))
  3416.         (let ((temp (gensym)))
  3417.           (cl::push (list var '(selected-frame))
  3418.                loop-for-bindings)
  3419.           (cl::push (list temp nil) loop-for-bindings)
  3420.           (cl::push (list 'prog1 (list 'not (list 'eq var temp))
  3421.                  (list 'or temp (list 'setq temp var)))
  3422.                loop-body)
  3423.           (cl::push (list var (list 'next-frame var))
  3424.                loop-for-steps)))
  3425.  
  3426.            ((memq word '(window windows))
  3427.         (let ((scr (and (memq (car args) '(in of)) (cl::pop2 args)))
  3428.               (temp (gensym)))
  3429.           (cl::push (list var (if scr
  3430.                      (list 'frame-selected-window scr)
  3431.                        '(selected-window)))
  3432.                loop-for-bindings)
  3433.           (cl::push (list temp nil) loop-for-bindings)
  3434.           (cl::push (list 'prog1 (list 'not (list 'eq var temp))
  3435.                  (list 'or temp (list 'setq temp var)))
  3436.                loop-body)
  3437.           (cl::push (list var (list 'next-window var)) loop-for-steps)))
  3438.  
  3439.            (t
  3440.         (let ((handler (and (symbolp word)
  3441.                     (get word 'cl::loop-for-handler))))
  3442.           (if handler
  3443.               (funcall handler var)
  3444.             (error "Expected a `for' preposition, found %s" word)))))
  3445.           (eq (car args) 'and))
  3446.       (setq ands t)
  3447.       (cl::pop args))
  3448.     (if (and ands loop-for-bindings)
  3449.         (cl::push (nreverse loop-for-bindings) loop-bindings)
  3450.       (setq loop-bindings (nconc (mapcar 'list loop-for-bindings)
  3451.                      loop-bindings)))
  3452.     (if loop-for-sets
  3453.         (cl::push (list 'progn
  3454.                (cl::loop-let (nreverse loop-for-sets) 'setq ands)
  3455.                t) loop-body))
  3456.     (if loop-for-steps
  3457.         (cl::push (cons (if ands 'psetq 'setq)
  3458.                (apply 'append (nreverse loop-for-steps)))
  3459.              loop-steps))))
  3460.  
  3461.      ((eq word 'repeat)
  3462.       (let ((temp (gensym)))
  3463.     (cl::push (list (list temp (cl::pop args))) loop-bindings)
  3464.     (cl::push (list '>= (list 'setq temp (list '1- temp)) 0) loop-body)))
  3465.  
  3466.      ((eq word 'collect)
  3467.       (let ((what (cl::pop args))
  3468.         (var (cl::loop-handle-accum nil 'nreverse)))
  3469.     (if (eq var loop-accum-var)
  3470.         (cl::push (list 'progn (list 'push what var) t) loop-body)
  3471.       (cl::push (list 'progn
  3472.              (list 'setq var (list 'nconc var (list 'list what)))
  3473.              t) loop-body))))
  3474.  
  3475.      ((memq word '(nconc nconcing append appending))
  3476.       (let ((what (cl::pop args))
  3477.         (var (cl::loop-handle-accum nil 'nreverse)))
  3478.     (cl::push (list 'progn
  3479.                (list 'setq var
  3480.                  (if (eq var loop-accum-var)
  3481.                  (list 'nconc
  3482.                        (list (if (memq word '(nconc nconcing))
  3483.                          'nreverse 'reverse)
  3484.                          what)
  3485.                        var)
  3486.                    (list (if (memq word '(nconc nconcing))
  3487.                      'nconc 'append)
  3488.                      var what))) t) loop-body)))
  3489.  
  3490.      ((memq word '(concat concating))
  3491.       (let ((what (cl::pop args))
  3492.         (var (cl::loop-handle-accum "")))
  3493.     (cl::push (list 'progn (list 'callf 'concat var what) t) loop-body)))
  3494.  
  3495.      ((memq word '(vconcat vconcating))
  3496.       (let ((what (cl::pop args))
  3497.         (var (cl::loop-handle-accum [])))
  3498.     (cl::push (list 'progn (list 'callf 'vconcat var what) t) loop-body)))
  3499.  
  3500.      ((memq word '(sum summing))
  3501.       (let ((what (cl::pop args))
  3502.         (var (cl::loop-handle-accum 0)))
  3503.     (cl::push (list 'progn (list 'incf var what) t) loop-body)))
  3504.  
  3505.      ((memq word '(count counting))
  3506.       (let ((what (cl::pop args))
  3507.         (var (cl::loop-handle-accum 0)))
  3508.     (cl::push (list 'progn (list 'if what (list 'incf var)) t) loop-body)))
  3509.  
  3510.      ((memq word '(minimize minimizing maximize maximizing))
  3511.       (let* ((what (cl::pop args))
  3512.          (temp (if (cl::simple-expr-p what) what (gensym)))
  3513.          (var (cl::loop-handle-accum nil))
  3514.          (func (intern (substring (symbol-name word) 0 3)))
  3515.          (set (list 'setq var (list 'if var (list func var temp) temp))))
  3516.     (cl::push (list 'progn (if (eq temp what) set
  3517.                 (list 'let (list (list temp what)) set))
  3518.                t) loop-body)))
  3519.  
  3520.      ((eq word 'with)
  3521.       (let ((bindings nil))
  3522.     (while (progn (cl::push (list (cl::pop args)
  3523.                      (and (eq (car args) '=) (cl::pop2 args)))
  3524.                    bindings)
  3525.               (eq (car args) 'and))
  3526.       (cl::pop args))
  3527.     (cl::push (nreverse bindings) loop-bindings)))
  3528.  
  3529.      ((eq word 'while)
  3530.       (cl::push (cl::pop args) loop-body))
  3531.  
  3532.      ((eq word 'until)
  3533.       (cl::push (list 'not (cl::pop args)) loop-body))
  3534.  
  3535.      ((eq word 'always)
  3536.       (or loop-finish-flag (setq loop-finish-flag (gensym)))
  3537.       (cl::push (list 'setq loop-finish-flag (cl::pop args)) loop-body)
  3538.       (setq loop-result t))
  3539.  
  3540.      ((eq word 'never)
  3541.       (or loop-finish-flag (setq loop-finish-flag (gensym)))
  3542.       (cl::push (list 'setq loop-finish-flag (list 'not (cl::pop args)))
  3543.            loop-body)
  3544.       (setq loop-result t))
  3545.  
  3546.      ((eq word 'thereis)
  3547.       (or loop-finish-flag (setq loop-finish-flag (gensym)))
  3548.       (or loop-result-var (setq loop-result-var (gensym)))
  3549.       (cl::push (list 'setq loop-finish-flag
  3550.              (list 'not (list 'setq loop-result-var (cl::pop args))))
  3551.            loop-body))
  3552.  
  3553.      ((memq word '(if when unless))
  3554.       (let* ((cond (cl::pop args))
  3555.          (then (let ((loop-body nil))
  3556.              (cl::parse-loop-clause)
  3557.              (cl::loop-build-ands (nreverse loop-body))))
  3558.          (else (let ((loop-body nil))
  3559.              (if (eq (car args) 'else)
  3560.              (progn (cl::pop args) (cl::parse-loop-clause)))
  3561.              (cl::loop-build-ands (nreverse loop-body))))
  3562.          (simple (and (eq (car then) t) (eq (car else) t))))
  3563.     (if (eq (car args) 'end) (cl::pop args))
  3564.     (if (eq word 'unless) (setq then (prog1 else (setq else then))))
  3565.     (let ((form (cons (if simple (cons 'progn (nth 1 then)) (nth 2 then))
  3566.               (if simple (nth 1 else) (list (nth 2 else))))))
  3567.       (if (cl::expr-contains form 'it)
  3568.           (let ((temp (gensym)))
  3569.         (cl::push (list temp) loop-bindings)
  3570.         (setq form (list* 'if (list 'setq temp cond)
  3571.                   (subst temp 'it form))))
  3572.         (setq form (list* 'if cond form)))
  3573.       (cl::push (if simple (list 'progn form t) form) loop-body))))
  3574.  
  3575.      ((memq word '(do doing))
  3576.       (let ((body nil))
  3577.     (or (consp (car args)) (error "Syntax error on `do' clause"))
  3578.     (while (consp (car args)) (cl::push (cl::pop args) body))
  3579.     (cl::push (cons 'progn (nreverse (cons t body))) loop-body)))
  3580.  
  3581.      ((eq word 'return)
  3582.       (or loop-finish-flag (setq loop-finish-flag (gensym)))
  3583.       (or loop-result-var (setq loop-result-var (gensym)))
  3584.       (cl::push (list 'setq loop-result-var (cl::pop args)
  3585.              loop-finish-flag nil) loop-body))
  3586.  
  3587.      (t
  3588.       (let ((handler (and (symbolp word) (get word 'cl::loop-handler))))
  3589.     (or handler (error "Expected a loop keyword, found %s" word))
  3590.     (funcall handler))))
  3591.     (if (eq (car args) 'and)
  3592.     (progn (cl::pop args) (cl::parse-loop-clause)))))
  3593.  
  3594. (defun cl::loop-let (specs body par)   ; uses loop-*
  3595.   (let ((p specs) (temps nil) (new nil))
  3596.     (while (and p (or (symbolp (car-safe (car p))) (null (cadar p))))
  3597.       (setq p (cdr p)))
  3598.     (and par p
  3599.      (progn
  3600.        (setq par nil p specs)
  3601.        (while p
  3602.          (or (cl::const-expr-p (cadar p))
  3603.          (let ((temp (gensym)))
  3604.            (cl::push (list temp (cadar p)) temps)
  3605.            (setcar (cdar p) temp)))
  3606.          (setq p (cdr p)))))
  3607.     (while specs
  3608.       (if (and (consp (car specs)) (listp (caar specs)))
  3609.       (let* ((spec (caar specs)) (nspecs nil)
  3610.          (expr (cadr (cl::pop specs)))
  3611.          (temp (cdr (or (assq spec loop-destr-temps)
  3612.                 (car (cl::push (cons spec (or (last spec 0)
  3613.                                  (gensym)))
  3614.                           loop-destr-temps))))))
  3615.         (cl::push (list temp expr) new)
  3616.         (while (consp spec)
  3617.           (cl::push (list (cl::pop spec)
  3618.                  (and expr (list (if spec 'pop 'car) temp)))
  3619.                nspecs))
  3620.         (setq specs (nconc (nreverse nspecs) specs)))
  3621.     (cl::push (cl::pop specs) new)))
  3622.     (if (eq body 'setq)
  3623.     (let ((set (cons (if par 'psetq 'setq) (apply 'nconc (nreverse new)))))
  3624.       (if temps (list 'let* (nreverse temps) set) set))
  3625.       (list* (if par 'let 'let*)
  3626.          (nconc (nreverse temps) (nreverse new)) body))))
  3627.  
  3628. (defun cl::loop-handle-accum (def &optional func)   ; uses args, loop-*
  3629.   (if (eq (car args) 'into)
  3630.       (let ((var (cl::pop2 args)))
  3631.     (or (memq var loop-accum-vars)
  3632.         (progn (cl::push (list (list var def)) loop-bindings)
  3633.            (cl::push var loop-accum-vars)))
  3634.     var)
  3635.     (or loop-accum-var
  3636.     (progn
  3637.       (cl::push (list (list (setq loop-accum-var (gensym)) def))
  3638.            loop-bindings)
  3639.       (setq loop-result (if func (list func loop-accum-var)
  3640.                   loop-accum-var))
  3641.       loop-accum-var))))
  3642.  
  3643. (defun cl::loop-build-ands (clauses)
  3644.   (let ((ands nil)
  3645.     (body nil))
  3646.     (while clauses
  3647.       (if (and (eq (car-safe (car clauses)) 'progn)
  3648.            (eq (car (last (car clauses))) t))
  3649.       (if (cdr clauses)
  3650.           (setq clauses (cons (nconc (butlast (car clauses))
  3651.                      (if (eq (car-safe (cadr clauses))
  3652.                          'progn)
  3653.                          (cdadr clauses)
  3654.                        (list (cadr clauses))))
  3655.                   (cddr clauses)))
  3656.         (setq body (cdr (butlast (cl::pop clauses)))))
  3657.     (cl::push (cl::pop clauses) ands)))
  3658.     (setq ands (or (nreverse ands) (list t)))
  3659.     (list (if (cdr ands) (cons 'and ands) (car ands))
  3660.       body
  3661.       (let ((full (if body
  3662.               (append ands (list (cons 'progn (append body '(t)))))
  3663.             ands)))
  3664.         (if (cdr full) (cons 'and full) (car full))))))
  3665.  
  3666.  
  3667. ;;; Other iteration control structures.
  3668.  
  3669. ;;;###autoload
  3670. (cl::defmacro do (steps endtest &rest body)
  3671.   "The Common Lisp `do' loop.
  3672. Format is: (do ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)"
  3673.   (cl::expand-do-loop steps endtest body nil))
  3674.  
  3675. ;;;###autoload
  3676. (cl::defmacro do* (steps endtest &rest body)
  3677.   "The Common Lisp `do*' loop.
  3678. Format is: (do* ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)"
  3679.   (cl::expand-do-loop steps endtest body t))
  3680.  
  3681. (defun cl::expand-do-loop (steps endtest body star)
  3682.   (list 'block nil
  3683.     (list* (if star 'let* 'let)
  3684.            (mapcar #'(lambda (c) (if (consp c) (list (car c) (nth 1 c)) c))
  3685.                steps)
  3686.            (list* 'while (list 'not (car endtest))
  3687.               (append body
  3688.                   (let ((sets (mapcar
  3689.                        #'(lambda (c)
  3690.                            (and (consp c) (cdr (cdr c))
  3691.                             (list (car c) (nth 2 c))))
  3692.                        steps)))
  3693.                 (setq sets (delq nil sets))
  3694.                 (and sets
  3695.                      (list (cons (if (or star (not (cdr sets)))
  3696.                              'setq 'psetq)
  3697.                          (apply 'append sets)))))))
  3698.            (or (cdr endtest) '(nil)))))
  3699.  
  3700. ;;;###autoload
  3701. (cl::defmacro dolist (spec &rest body)
  3702.   "(dolist (VAR LIST [RESULT]) BODY...): loop over a list.
  3703. Evaluate BODY with VAR bound to each `car' from LIST, in turn.
  3704. Then evaluate RESULT to get return value, default nil."
  3705.   (let ((temp (gensym "--dolist-temp--")))
  3706.     (list 'block nil
  3707.       (list* 'let (list (list temp (nth 1 spec)) (car spec))
  3708.          (list* 'while temp (list 'setq (car spec) (list 'car temp))
  3709.             (append body (list (list 'setq temp
  3710.                          (list 'cdr temp)))))
  3711.          (if (cdr (cdr spec))
  3712.              (cons (list 'setq (car spec) nil) (cdr (cdr spec)))
  3713.            '(nil))))))
  3714.  
  3715. ;;;###autoload
  3716. (cl::defmacro dotimes (spec &rest body)
  3717.   "(dotimes (VAR COUNT [RESULT]) BODY...): loop a certain number of times.
  3718. Evaluate BODY with VAR bound to successive integers from 0, inclusive,
  3719. to COUNT, exclusive.  Then evaluate RESULT to get return value, default
  3720. nil."
  3721.   (let ((temp (gensym "--dotimes-temp--")))
  3722.     (list 'block nil
  3723.       (list* 'let (list (list temp (nth 1 spec)) (list (car spec) 0))
  3724.          (list* 'while (list '< (car spec) temp)
  3725.             (append body (list (list 'incf (car spec)))))
  3726.          (or (cdr (cdr spec)) '(nil))))))
  3727.  
  3728. ;;;###autoload
  3729. (cl::defmacro do-symbols (spec &rest body)
  3730.   "(dosymbols (VAR [OBARRAY [RESULT]]) BODY...): loop over all symbols.
  3731. Evaluate BODY with VAR bound to each interned symbol, or to each symbol
  3732. from OBARRAY."
  3733.   ;; Apparently this doesn't have an implicit block.
  3734.   (list 'block nil
  3735.     (list 'let (list (car spec))
  3736.           (list* 'mapatoms
  3737.              (list 'function (list* 'lambda (list (car spec)) body))
  3738.              (and (cadr spec) (list (cadr spec))))
  3739.           (caddr spec))))
  3740.  
  3741. ;;;###autoload
  3742. (cl::defmacro do-all-symbols (spec &rest body)
  3743.   (list* 'do-symbols (list (car spec) nil (cadr spec)) body))
  3744.  
  3745.  
  3746. ;;; Assignments.
  3747.  
  3748. ;;;###autoload
  3749. (cl::defmacro psetq (&rest args)
  3750.   "(psetq SYM VAL SYM VAL ...): set SYMs to the values VALs in parallel.
  3751. This is like `setq', except that all VAL forms are evaluated (in order)
  3752. before assigning any symbols SYM to the corresponding values."
  3753.   (cons 'psetf args))
  3754.  
  3755.  
  3756. ;;; Binding control structures.
  3757.  
  3758. ;;;###autoload
  3759. (cl::defmacro progv (symbols values &rest body)
  3760.   "(progv SYMBOLS VALUES BODY...): bind SYMBOLS to VALUES dynamically in BODY.
  3761. The forms SYMBOLS and VALUES are evaluated, and must evaluate to lists.
  3762. Each SYMBOL in the first list is bound to the corresponding VALUE in the
  3763. second list (or made unbound if VALUES is shorter than SYMBOLS); then the
  3764. BODY forms are executed and their result is returned.  This is much like
  3765. a `let' form, except that the list of symbols can be computed at run-time."
  3766.   (list 'let '((cl::progv-save nil))
  3767.     (list 'unwind-protect
  3768.           (list* 'progn (list 'cl::progv-before symbols values) body)
  3769.           '(cl::progv-after))))
  3770.  
  3771. ;;; This should really have some way to shadow 'byte-compile properties, etc.
  3772. ;;;###autoload
  3773. (cl::defmacro flet (bindings &rest body)
  3774.   "(flet ((FUNC ARGLIST BODY...) ...) FORM...): make temporary function defns.
  3775. This is an analogue of `let' that operates on the function cell of FUNC
  3776. rather than its value cell.  The FORMs are evaluated with the specified
  3777. function definitions in place, then the definitions are undone (the FUNCs
  3778. go back to their previous definitions, or lack thereof)."
  3779.   (list* 'letf*
  3780.      (mapcar
  3781.       #'(lambda (x)
  3782.           (if (or (and (fboundp (car x))
  3783.                (eq (car-safe (symbol-function (car x))) 'macro))
  3784.               (cdr (assq (car x) cl::macro-environment)))
  3785.           (error "Use `labels', not `flet', to rebind macro names"))
  3786.           (let ((func (list 'function*
  3787.                 (list 'lambda (cadr x)
  3788.                       (list* 'block (car x) (cddr x))))))
  3789.         (if (and (cl::compiling-file)
  3790.              (boundp 'byte-compile-function-environment))
  3791.             (cl::push (cons (car x) (eval func))
  3792.                  byte-compile-function-environment))
  3793.         (list (list 'symbol-function (list 'quote (car x))) func)))
  3794.       bindings)
  3795.      body))
  3796.  
  3797. ;;;###autoload
  3798. (cl::defmacro labels (bindings &rest body)
  3799.   "(labels ((FUNC ARGLIST BODY...) ...) FORM...): make temporary func bindings.
  3800. This is like `flet', except the bindings are lexical instead of dynamic.
  3801. Unlike `flet', this macro is fully compliant with the Common Lisp standard."
  3802.   (let ((vars nil) (sets nil) (cl::macro-environment cl::macro-environment))
  3803.     (while bindings
  3804.       (let ((var (gensym)))
  3805.     (cl::push var vars)
  3806.     (cl::push (list 'function* (cons 'lambda (cdar bindings))) sets)
  3807.     (cl::push var sets)
  3808.     (cl::push (list (car (cl::pop bindings)) 'lambda '(&rest cl::labels-args)
  3809.                (list 'list* '(quote funcall) (list 'quote var)
  3810.                  'cl::labels-args))
  3811.          cl::macro-environment)))
  3812.     (cl::macroexpand-all (list* 'lexical-let vars (cons (cons 'setq sets) body))
  3813.             cl::macro-environment)))
  3814.  
  3815. ;; The following ought to have a better definition for use with newer
  3816. ;; byte compilers.
  3817. ;;;###autoload
  3818. (cl::defmacro macrolet (bindings &rest body)
  3819.   "(macrolet ((NAME ARGLIST BODY...) ...) FORM...): make temporary macro defns.
  3820. This is like `flet', but for macros instead of functions."
  3821.   (if (cdr bindings)
  3822.       (list 'macrolet
  3823.         (list (car bindings)) (list* 'macrolet (cdr bindings) body))
  3824.     (if (null bindings) (cons 'progn body)
  3825.       (let* ((name (caar bindings))
  3826.          (res (cl::transform-lambda (cdar bindings) name)))
  3827.     (eval (car res))
  3828.     (cl::macroexpand-all (cons 'progn body)
  3829.                 (cons (list* name 'lambda (cdr res))
  3830.                   cl::macro-environment))))))
  3831.  
  3832. ;;;###autoload
  3833. (cl::defmacro symbol-macrolet (bindings &rest body)
  3834.   "(symbol-macrolet ((NAME EXPANSION) ...) FORM...): make symbol macro defns.
  3835. Within the body FORMs, references to the variable NAME will be replaced
  3836. by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...)."
  3837.   (if (cdr bindings)
  3838.       (list 'symbol-macrolet
  3839.         (list (car bindings)) (list* 'symbol-macrolet (cdr bindings) body))
  3840.     (if (null bindings) (cons 'progn body)
  3841.       (cl::macroexpand-all (cons 'progn body)
  3842.               (cons (list (symbol-name (caar bindings))
  3843.                       (cadar bindings))
  3844.                 cl::macro-environment)))))
  3845.  
  3846. (defvar cl::closure-vars nil)
  3847. ;;;###autoload
  3848. (cl::defmacro lexical-let (bindings &rest body)
  3849.   "(lexical-let BINDINGS BODY...): like `let', but lexically scoped.
  3850. The main visible difference is that lambdas inside BODY will create
  3851. lexical closures as in Common Lisp."
  3852.   (let* ((cl::closure-vars cl::closure-vars)
  3853.      (vars (mapcar #'(lambda (x)
  3854.                (or (consp x) (setq x (list x)))
  3855.                (cl::push (gensym (format "--%s--" (car x)))
  3856.                     cl::closure-vars)
  3857.                (list (car x) (cadr x) (car cl::closure-vars)))
  3858.                bindings))
  3859.      (ebody
  3860.       (cl::macroexpand-all
  3861.        (cons 'progn body)
  3862.        (nconc (mapcar #'(lambda (x)
  3863.                   (list (symbol-name (car x))
  3864.                     (list 'symbol-value (caddr x))
  3865.                     t))
  3866.               vars)
  3867.           (list '(defun . cl::defun-expander))
  3868.           cl::macro-environment))))
  3869.     (if (not (get (car (last cl::closure-vars)) 'used))
  3870.     (list 'let (mapcar #'(lambda (x) (list (caddr x) (cadr x))) vars)
  3871.           (sublis (mapcar #'(lambda (x)
  3872.                   (cons (caddr x) (list 'quote (caddr x))))
  3873.                   vars)
  3874.               ebody))
  3875.       (list 'let (mapcar #'(lambda (x)
  3876.                  (list (caddr x)
  3877.                    (list 'make-symbol
  3878.                      (format "--%s--" (car x)))))
  3879.              vars)
  3880.         (apply 'append '(setf)
  3881.            (mapcar #'(lambda (x)
  3882.                    (list (list 'symbol-value (caddr x)) (cadr x)))
  3883.                vars))
  3884.         ebody))))
  3885.  
  3886. ;;;###autoload
  3887. (cl::defmacro lexical-let* (bindings &rest body)
  3888.   "(lexical-let* BINDINGS BODY...): like `let*', but lexically scoped.
  3889. The main visible difference is that lambdas inside BODY will create
  3890. lexical closures as in Common Lisp."
  3891.   (if (null bindings) (cons 'progn body)
  3892.     (setq bindings (reverse bindings))
  3893.     (while bindings
  3894.       (setq body (list (list* 'lexical-let (list (cl::pop bindings)) body))))
  3895.     (car body)))
  3896.  
  3897. (defun cl::defun-expander (func &rest rest)
  3898.   (list 'progn
  3899.     (list 'defalias (list 'quote func)
  3900.           (list 'function (cons 'lambda rest)))
  3901.     (list 'quote func)))
  3902.  
  3903.  
  3904. ;;; Multiple values.
  3905.  
  3906. ;;;###autoload
  3907. (cl::defmacro multiple-value-bind (vars form &rest body)
  3908.   "(multiple-value-bind (SYM SYM...) FORM BODY): collect multiple return values.
  3909. FORM must return a list; the BODY is then executed with the first N elements
  3910. of this list bound (`let'-style) to each of the symbols SYM in turn.  This
  3911. is analogous to the Common Lisp `multiple-value-bind' macro, using lists to
  3912. simulate true multiple return values.  For compatibility, (values A B C) is
  3913. a synonym for (list A B C)."
  3914.   (let ((temp (gensym)) (n -1))
  3915.     (list* 'let* (cons (list temp form)
  3916.                (mapcar #'(lambda (v)
  3917.                    (list v (list 'nth (setq n (1+ n)) temp)))
  3918.                    vars))
  3919.        body)))
  3920.  
  3921. ;;;###autoload
  3922. (cl::defmacro multiple-value-setq (vars form)
  3923.   "(multiple-value-setq (SYM SYM...) FORM): collect multiple return values.
  3924. FORM must return a list; the first N elements of this list are stored in
  3925. each of the symbols SYM in turn.  This is analogous to the Common Lisp
  3926. `multiple-value-setq' macro, using lists to simulate true multiple return
  3927. values.  For compatibility, (values A B C) is a synonym for (list A B C)."
  3928.   (cond ((null vars) (list 'progn form nil))
  3929.     ((null (cdr vars)) (list 'setq (car vars) (list 'car form)))
  3930.     (t
  3931.      (let* ((temp (gensym)) (n 0))
  3932.        (list 'let (list (list temp form))
  3933.          (list 'prog1 (list 'setq (cl::pop vars) (list 'car temp))
  3934.                (cons 'setq
  3935.                  (apply 'nconc
  3936.                     (mapcar
  3937.                      #'(lambda (v)
  3938.                      (list v (list
  3939.                           'nth
  3940.                           (setq n (1+ n))
  3941.                           temp)))
  3942.                         vars)))))))))
  3943.  
  3944.  
  3945. ;;; Declarations.
  3946.  
  3947. ;;;###autoload
  3948. (cl::defmacro locally (&rest body) (cons 'progn body))
  3949. ;;;###autoload
  3950. (cl::defmacro the (type form) form)
  3951.  
  3952. (defvar cl::proclaim-history t)    ; for future compilers
  3953. (defvar cl::declare-stack t)       ; for future compilers
  3954.  
  3955. (defun cl::do-proclaim (spec hist)
  3956.   (and hist (listp cl::proclaim-history) (cl::push spec cl::proclaim-history))
  3957.   (cond ((eq (car-safe spec) 'special)
  3958.      (if (boundp 'byte-compile-bound-variables)
  3959.          (setq byte-compile-bound-variables
  3960.            (append
  3961.             (mapcar #'(lambda (v) (cons v byte-compile-global-bit))
  3962.                 (cdr spec))
  3963.             byte-compile-bound-variables))))
  3964.  
  3965.     ((eq (car-safe spec) 'inline)
  3966.      (while (setq spec (cdr spec))
  3967.        (or (memq (get (car spec) 'byte-optimizer)
  3968.              '(nil byte-compile-inline-expand))
  3969.            (error "%s already has a byte-optimizer, can't make it inline"
  3970.               (car spec)))
  3971.        (put (car spec) 'byte-optimizer 'byte-compile-inline-expand)))
  3972.  
  3973.     ((eq (car-safe spec) 'notinline)
  3974.      (while (setq spec (cdr spec))
  3975.        (if (eq (get (car spec) 'byte-optimizer)
  3976.            'byte-compile-inline-expand)
  3977.            (put (car spec) 'byte-optimizer nil))))
  3978.  
  3979.     ((eq (car-safe spec) 'optimize)
  3980.      (let ((speed (assq (nth 1 (assq 'speed (cdr spec)))
  3981.                 '((0 . nil) (1 . t) (2 . t) (3 . t))))
  3982.            (safety (assq (nth 1 (assq 'safety (cdr spec)))
  3983.                  '((0 . t) (1 . t) (2 . t) (3 . nil)))))
  3984.        (when speed
  3985.          (setq cl::optimize-speed (car speed)
  3986.            byte-optimize (cdr speed)))
  3987.        (when safety
  3988.          (setq cl::optimize-safety (car safety)
  3989.            byte-compile-delete-errors (cdr safety)))))
  3990.  
  3991.     ((and (eq (car-safe spec) 'warn) (boundp 'byte-compile-warnings))
  3992.      (if (eq byte-compile-warnings t)
  3993.          ;; XEmacs change
  3994.          (setq byte-compile-warnings byte-compile-default-warnings))
  3995.      (while (setq spec (cdr spec))
  3996.        (if (consp (car spec))
  3997.            (if (eq (cadar spec) 0)
  3998.            (setq byte-compile-warnings
  3999.              (delq (caar spec) byte-compile-warnings))
  4000.          (setq byte-compile-warnings
  4001.                (adjoin (caar spec) byte-compile-warnings)))))))
  4002.   nil)
  4003.  
  4004. ;;; Process any proclamations made before cl::macs was loaded.
  4005. (defvar cl::proclaims-deferred)
  4006. (let ((p (reverse cl::proclaims-deferred)))
  4007.   (while p (cl::do-proclaim (cl::pop p) t))
  4008.   (setq cl::proclaims-deferred nil))
  4009.  
  4010. ;;;###autoload
  4011. (cl::defmacro declare (&rest specs)
  4012.   (if (cl::compiling-file)
  4013.       (while specs
  4014.     (if (listp cl::declare-stack) (cl::push (car specs) cl::declare-stack))
  4015.     (cl::do-proclaim (cl::pop specs) nil)))
  4016.   nil)
  4017.  
  4018.  
  4019.  
  4020. ;;; Generalized variables.
  4021.  
  4022. ;;;###autoload
  4023. (cl::defmacro define-setf-method (func args &rest body)
  4024.   "(define-setf-method NAME ARGLIST BODY...): define a `setf' method.
  4025. This method shows how to handle `setf's to places of the form (NAME ARGS...).
  4026. The argument forms ARGS are bound according to ARGLIST, as if NAME were
  4027. going to be expanded as a macro, then the BODY forms are executed and must
  4028. return a list of five elements: a temporary-variables list, a value-forms
  4029. list, a store-variables list (of length one), a store-form, and an access-
  4030. form.  See `defsetf' for a simpler way to define most setf-methods."
  4031.   (append '(eval-when (compile load eval))
  4032.       (if (stringp (car body))
  4033.           (list (list 'put (list 'quote func) '(quote setf-documentation)
  4034.               (cl::pop body))))
  4035.       (list (cl::transform-function-property
  4036.          func 'setf-method (cons args body)))))
  4037.  
  4038. ;;;###autoload
  4039. (cl::defmacro defsetf (func arg1 &rest args)
  4040.   "(defsetf NAME FUNC): define a `setf' method.
  4041. This macro is an easy-to-use substitute for `define-setf-method' that works
  4042. well for simple place forms.  In the simple `defsetf' form, `setf's of
  4043. the form (setf (NAME ARGS...) VAL) are transformed to function or macro
  4044. calls of the form (FUNC ARGS... VAL).  Example: (defsetf aref aset).
  4045. Alternate form: (defsetf NAME ARGLIST (STORE) BODY...).
  4046. Here, the above `setf' call is expanded by binding the argument forms ARGS
  4047. according to ARGLIST, binding the value form VAL to STORE, then executing
  4048. BODY, which must return a Lisp form that does the necessary `setf' operation.
  4049. Actually, ARGLIST and STORE may be bound to temporary variables which are
  4050. introduced automatically to preserve proper execution order of the arguments.
  4051. Example: (defsetf nth (n x) (v) (list 'setcar (list 'nthcdr n x) v))."
  4052.   (if (listp arg1)
  4053.       (let* ((largs nil) (largsr nil)
  4054.          (temps nil) (tempsr nil)
  4055.          (restarg nil) (rest-temps nil)
  4056.          (store-var (car (prog1 (car args) (setq args (cdr args)))))
  4057.          (store-temp (intern (format "--%s--temp--" store-var)))
  4058.          (lets1 nil) (lets2 nil)
  4059.          (docstr nil) (p arg1))
  4060.     (if (stringp (car args))
  4061.         (setq docstr (prog1 (car args) (setq args (cdr args)))))
  4062.     (while (and p (not (eq (car p) '&aux)))
  4063.       (if (eq (car p) '&rest)
  4064.           (setq p (cdr p) restarg (car p))
  4065.         (or (memq (car p) '(&optional &key &allow-other-keys))
  4066.         (setq largs (cons (if (consp (car p)) (car (car p)) (car p))
  4067.                   largs)
  4068.               temps (cons (intern (format "--%s--temp--" (car largs)))
  4069.                   temps))))
  4070.       (setq p (cdr p)))
  4071.     (setq largs (nreverse largs) temps (nreverse temps))
  4072.     (if restarg
  4073.         (setq largsr (append largs (list restarg))
  4074.           rest-temps (intern (format "--%s--temp--" restarg))
  4075.           tempsr (append temps (list rest-temps)))
  4076.       (setq largsr largs tempsr temps))
  4077.     (let ((p1 largs) (p2 temps))
  4078.       (while p1
  4079.         (setq lets1 (cons (list (car p2)
  4080.                     (list 'gensym (format "--%s--" (car p1))))
  4081.                   lets1)
  4082.           lets2 (cons (list (car p1) (car p2)) lets2)
  4083.           p1 (cdr p1) p2 (cdr p2))))
  4084.     (if restarg (setq lets2 (cons (list restarg rest-temps) lets2)))
  4085.     (append (list 'define-setf-method func arg1)
  4086.         (and docstr (list docstr))
  4087.         (list
  4088.          (list 'let*
  4089.                (nreverse
  4090.             (cons (list store-temp
  4091.                     (list 'gensym (format "--%s--" store-var)))
  4092.                   (if restarg
  4093.                   (append
  4094.                    (list
  4095.                     (list rest-temps
  4096.                       (list 'mapcar '(quote gensym)
  4097.                         restarg)))
  4098.                    lets1)
  4099.                 lets1)))
  4100.                (list 'list  ; 'values
  4101.                  (cons (if restarg 'list* 'list) tempsr)
  4102.                  (cons (if restarg 'list* 'list) largsr)
  4103.                  (list 'list store-temp)
  4104.                  (cons 'let*
  4105.                    (cons (nreverse
  4106.                       (cons (list store-var store-temp)
  4107.                         lets2))
  4108.                      args))
  4109.                  (cons (if restarg 'list* 'list)
  4110.                    (cons (list 'quote func) tempsr)))))))
  4111.     (list 'defsetf func '(&rest args) '(store)
  4112.       (let ((call (list 'cons (list 'quote arg1)
  4113.                 '(append args (list store)))))
  4114.         (if (car args)
  4115.         (list 'list '(quote progn) call 'store)
  4116.           call)))))
  4117.  
  4118. ;;; Some standard place types from Common Lisp.
  4119. (eval-when-compile (defvar ignored-arg)) ; Warning suppression
  4120. (defsetf aref aset)
  4121. (defsetf car setcar)
  4122. (defsetf cdr setcdr)
  4123. (defsetf elt (seq n) (store)
  4124.   (list 'if (list 'listp seq) (list 'setcar (list 'nthcdr n seq) store)
  4125.     (list 'aset seq n store)))
  4126. (defsetf get (x y &optional ignored-arg) (store) (list 'put x y store))
  4127. (defsetf get* (x y &optional ignored-arg) (store) (list 'put x y store))
  4128. (defsetf gethash (x h &optional ignored-arg) (store) (list 'cl::puthash x store h))
  4129. (defsetf nth (n x) (store) (list 'setcar (list 'nthcdr n x) store))
  4130. (defsetf subseq (seq start &optional end) (new)
  4131.   (list 'progn (list 'replace seq new ':start1 start ':end1 end) new))
  4132. (defsetf symbol-function fset)
  4133. (defsetf symbol-plist setplist)
  4134. (defsetf symbol-value set)
  4135.  
  4136. ;;; Various car/cdr aliases.  Note that `cadr' is handled specially.
  4137. (defsetf first setcar)
  4138. (defsetf second (x) (store) (list 'setcar (list 'cdr x) store))
  4139. (defsetf third (x) (store) (list 'setcar (list 'cddr x) store))
  4140. (defsetf fourth (x) (store) (list 'setcar (list 'cdddr x) store))
  4141. (defsetf fifth (x) (store) (list 'setcar (list 'nthcdr 4 x) store))
  4142. (defsetf sixth (x) (store) (list 'setcar (list 'nthcdr 5 x) store))
  4143. (defsetf seventh (x) (store) (list 'setcar (list 'nthcdr 6 x) store))
  4144. (defsetf eighth (x) (store) (list 'setcar (list 'nthcdr 7 x) store))
  4145. (defsetf ninth (x) (store) (list 'setcar (list 'nthcdr 8 x) store))
  4146. (defsetf tenth (x) (store) (list 'setcar (list 'nthcdr 9 x) store))
  4147. (defsetf rest setcdr)
  4148.  
  4149. ;;; Some more Emacs-related place types.
  4150. (defsetf buffer-file-name set-visited-file-name t)
  4151. (defsetf buffer-modified-p set-buffer-modified-p t)
  4152. (defsetf buffer-name rename-buffer t)
  4153. (defsetf buffer-string () (store)
  4154.   (list 'progn '(erase-buffer) (list 'insert store)))
  4155. (defsetf buffer-substring cl::set-buffer-substring)
  4156. (defsetf current-buffer set-buffer)
  4157. (defsetf current-case-table set-case-table)
  4158. (defsetf current-column move-to-column t)
  4159. (defsetf current-global-map use-global-map t)
  4160. (defsetf current-input-mode () (store)
  4161.   (list 'progn (list 'apply 'set-input-mode store) store))
  4162. (defsetf current-local-map use-local-map t)
  4163. (defsetf current-window-configuration set-window-configuration t)
  4164. (defsetf default-file-modes set-default-file-modes t)
  4165. (defsetf default-value set-default)
  4166. (defsetf documentation-property put)
  4167. (defsetf extent-face set-extent-face)
  4168. (defsetf extent-priority set-extent-priority)
  4169. (defsetf extent-property (x y &optional ignored-arg) (arg)
  4170.   (list 'set-extent-property x y arg))
  4171. (defsetf extent-start-position (ext) (store)
  4172.   `(progn (set-extent-endpoints ,ext ,store (extent-end-position ,ext))
  4173.       ,store))
  4174. (defsetf extent-end-position (ext) (store)
  4175.   `(progn (set-extent-endpoints ,ext (extent-start-position ,ext) ,store)
  4176.       ,store))
  4177. (defsetf face-background (f &optional s) (x) (list 'set-face-background f x s))
  4178. (defsetf face-background-pixmap (f &optional s) (x)
  4179.   (list 'set-face-background-pixmap f x s))
  4180. (defsetf face-font (f &optional s) (x) (list 'set-face-font f x s))
  4181. (defsetf face-foreground (f &optional s) (x) (list 'set-face-foreground f x s))
  4182. (defsetf face-underline-p (f &optional s) (x)
  4183.   (list 'set-face-underline-p f x s))
  4184. (defsetf file-modes set-file-modes t)
  4185. (defsetf frame-parameters modify-frame-parameters t)
  4186. (defsetf frame-visible-p cl::set-frame-visible-p)
  4187. (defsetf frame-properties (&optional f) (p)
  4188.   `(progn (set-frame-properties ,f ,p) ,p))
  4189. (defsetf frame-property (f p &optional ignored-arg) (v)
  4190.   `(progn (set-frame-property ,f ,v) ,p))
  4191. (defsetf frame-width (&optional f) (v)
  4192.   `(progn (set-frame-width ,f ,v) ,v))
  4193. (defsetf frame-height (&optional f) (v)
  4194.   `(progn (set-frame-height ,f ,v) ,v))
  4195. (defsetf current-frame-configuration set-frame-configuration)
  4196.  
  4197. ;; XEmacs: new stuff
  4198. ;; Consoles
  4199. (defsetf selected-console select-console t)
  4200. (defsetf selected-device select-device t)
  4201. (defsetf device-baud-rate (&optional d) (v)
  4202.   `(set-device-baud-rate ,d ,v))
  4203. ;; This setf method is a bad idea, because set-specifier *adds* a
  4204. ;; specification, rather than just setting it.  The net effect is that
  4205. ;; it makes specifier-instance return VAL, but other things don't work
  4206. ;; as expected -- letf, to name one.
  4207. ;(defsetf specifier-instance (spec &optional dom def nof) (val)
  4208. ;  `(set-specifier ,spec ,val ,dom))
  4209.  
  4210. ;; Annotations
  4211. (defsetf annotation-glyph set-annotation-glyph)
  4212. (defsetf annotation-down-glyph set-annotation-down-glyph)
  4213. (defsetf annotation-face set-annotation-face)
  4214. (defsetf annotation-layout set-annotation-layout)
  4215. (defsetf annotation-data set-annotation-data)
  4216. (defsetf annotation-action set-annotation-action)
  4217. (defsetf annotation-menu set-annotation-menu)
  4218. ;; Widget
  4219. (defsetf widget-get widget-put t)
  4220. (defsetf widget-value widget-value-set t)
  4221.  
  4222. ;; Misc
  4223. (defsetf recent-keys-ring-size set-recent-keys-ring-size)
  4224. (defsetf symbol-value-in-buffer (s b &optional ignored-arg) (store)
  4225.   `(with-current-buffer ,b (set ,s ,store)))
  4226. (defsetf symbol-value-in-console (s c &optional ignored-arg) (store)
  4227.   `(letf (((selected-console) ,c))
  4228.      (set ,s ,store)))
  4229.  
  4230. (defsetf buffer-dedicated-frame (&optional b) (v)
  4231.   `(set-buffer-dedicated-frame ,b ,v))
  4232. (defsetf console-type-image-conversion-list
  4233.   set-console-type-image-conversion-list)
  4234. (defsetf default-toolbar-position set-default-toolbar-position)
  4235. (defsetf device-class (&optional d) (v)
  4236.   `(set-device-class ,d ,v))
  4237. (defsetf extent-begin-glyph set-extent-begin-glyph)
  4238. (defsetf extent-begin-glyph-layout set-extent-begin-glyph-layout)
  4239. (defsetf extent-end-glyph set-extent-end-glyph)
  4240. (defsetf extent-end-glyph-layout set-extent-end-glyph-layout)
  4241. (defsetf extent-keymap set-extent-keymap)
  4242. (defsetf extent-parent set-extent-parent)
  4243. (defsetf extent-properties set-extent-properties)
  4244. ;; Avoid adding various face and glyph functions.
  4245. (defsetf frame-selected-window (&optional f) (v)
  4246.   `(set-frame-selected-window ,f ,v))
  4247. (defsetf glyph-image (glyph &optional domain) (i)
  4248.   (list 'set-glyph-image glyph i domain))
  4249. (defsetf itimer-function set-itimer-function)
  4250. (defsetf itimer-function-arguments set-itimer-function-arguments)
  4251. (defsetf itimer-is-idle set-itimer-is-idle)
  4252. (defsetf itimer-recorded-run-time set-itimer-recorded-run-time)
  4253. (defsetf itimer-restart set-itimer-restart)
  4254. (defsetf itimer-uses-arguments set-itimer-uses-arguments)
  4255. (defsetf itimer-value set-itimer-value)
  4256. (defsetf keymap-parents set-keymap-parents)
  4257. (defsetf marker-insertion-type set-marker-insertion-type)
  4258. (defsetf mouse-pixel-position (&optional d) (v)
  4259.   `(progn
  4260.      (set-mouse-pixel-position ,d ,(car v) ,(car (cdr v)) ,(cdr (cdr v)))
  4261.      ,v))
  4262. (defsetf trunc-stack-length set-trunc-stack-length)
  4263. (defsetf trunc-stack-stack set-trunc-stack-stack)
  4264. (defsetf undoable-stack-max set-undoable-stack-max)
  4265. (defsetf weak-list-list set-weak-list-list)
  4266.  
  4267.  
  4268. (defsetf getenv setenv t)
  4269. (defsetf get-register set-register)
  4270. (defsetf global-key-binding global-set-key)
  4271. (defsetf keymap-parent set-keymap-parent)
  4272. (defsetf keymap-name set-keymap-name)
  4273. (defsetf keymap-prompt set-keymap-prompt)
  4274. (defsetf keymap-default-binding set-keymap-default-binding)
  4275. (defsetf local-key-binding local-set-key)
  4276. (defsetf mark set-mark t)
  4277. (defsetf mark-marker set-mark t)
  4278. (defsetf marker-position set-marker t)
  4279. (defsetf match-data store-match-data t)
  4280. (defsetf mouse-position (scr) (store)
  4281.   (list 'set-mouse-position scr (list 'car store) (list 'cadr store)
  4282.     (list 'cddr store)))
  4283. (defsetf overlay-get overlay-put)
  4284. (defsetf overlay-start (ov) (store)
  4285.   (list 'progn (list 'move-overlay ov store (list 'overlay-end ov)) store))
  4286. (defsetf overlay-end (ov) (store)
  4287.   (list 'progn (list 'move-overlay ov (list 'overlay-start ov) store) store))
  4288. (defsetf point goto-char)
  4289. (defsetf point-marker goto-char t)
  4290. (defsetf point-max () (store)
  4291.   (list 'progn (list 'narrow-to-region '(point-min) store) store))
  4292. (defsetf point-min () (store)
  4293.   (list 'progn (list 'narrow-to-region store '(point-max)) store))
  4294. (defsetf process-buffer set-process-buffer)
  4295. (defsetf process-filter set-process-filter)
  4296. (defsetf process-sentinel set-process-sentinel)
  4297. (defsetf read-mouse-position (scr) (store)
  4298.   (list 'set-mouse-position scr (list 'car store) (list 'cdr store)))
  4299. (defsetf selected-window select-window)
  4300. (defsetf selected-frame select-frame)
  4301. (defsetf standard-case-table set-standard-case-table)
  4302. (defsetf syntax-table set-syntax-table)
  4303. (defsetf visited-file-modtime set-visited-file-modtime t)
  4304. (defsetf window-buffer set-window-buffer t)
  4305. (defsetf window-display-table set-window-display-table t)
  4306. (defsetf window-dedicated-p set-window-dedicated-p t)
  4307. (defsetf window-height (&optional window) (store)
  4308.   `(progn (enlarge-window (- ,store (window-height)) nil ,window) ,store))
  4309. (defsetf window-hscroll set-window-hscroll)
  4310. (defsetf window-point set-window-point)
  4311. (defsetf window-start set-window-start)
  4312. (defsetf window-width (&optional window) (store)
  4313.   `(progn (enlarge-window (- ,store (window-width)) t ,window) ,store))
  4314. (defsetf x-get-cutbuffer x-store-cutbuffer t)
  4315. (defsetf x-get-cut-buffer x-store-cut-buffer t)   ; groan.
  4316. (defsetf x-get-secondary-selection x-own-secondary-selection t)
  4317. (defsetf x-get-selection x-own-selection t)
  4318. (defsetf get-selection own-selection t)
  4319.  
  4320. ;;; More complex setf-methods.
  4321. ;;; These should take &environment arguments, but since full arglists aren't
  4322. ;;; available while compiling cl::macs, we fake it by referring to the global
  4323. ;;; variable cl::macro-environment directly.
  4324.  
  4325. (define-setf-method apply (func arg1 &rest rest)
  4326.   (or (and (memq (car-safe func) '(quote function function*))
  4327.        (symbolp (car-safe (cdr-safe func))))
  4328.       (error "First arg to apply in setf is not (function SYM): %s" func))
  4329.   (let* ((form (cons (nth 1 func) (cons arg1 rest)))
  4330.      (method (get-setf-method form cl::macro-environment)))
  4331.     (list (car method) (nth 1 method) (nth 2 method)
  4332.       (cl::setf-make-apply (nth 3 method) (cadr func) (car method))
  4333.       (cl::setf-make-apply (nth 4 method) (cadr func) (car method)))))
  4334.  
  4335. (defun cl::setf-make-apply (form func temps)
  4336.   (if (eq (car form) 'progn)
  4337.       (list* 'progn (cl::setf-make-apply (cadr form) func temps) (cddr form))
  4338.     (or (equal (last form) (last temps))
  4339.     (error "%s is not suitable for use with setf-of-apply" func))
  4340.     (list* 'apply (list 'quote (car form)) (cdr form))))
  4341.  
  4342. (define-setf-method nthcdr (n place)
  4343.   (let ((method (get-setf-method place cl::macro-environment))
  4344.     (n-temp (gensym "--nthcdr-n--"))
  4345.     (store-temp (gensym "--nthcdr-store--")))
  4346.     (list (cons n-temp (car method))
  4347.       (cons n (nth 1 method))
  4348.       (list store-temp)
  4349.       (list 'let (list (list (car (nth 2 method))
  4350.                  (list 'cl::set-nthcdr n-temp (nth 4 method)
  4351.                        store-temp)))
  4352.         (nth 3 method) store-temp)
  4353.       (list 'nthcdr n-temp (nth 4 method)))))
  4354.  
  4355. (define-setf-method getf (place tag &optional def)
  4356.   (let ((method (get-setf-method place cl::macro-environment))
  4357.     (tag-temp (gensym "--getf-tag--"))
  4358.     (def-temp (gensym "--getf-def--"))
  4359.     (store-temp (gensym "--getf-store--")))
  4360.     (list (append (car method) (list tag-temp def-temp))
  4361.       (append (nth 1 method) (list tag def))
  4362.       (list store-temp)
  4363.       (list 'let (list (list (car (nth 2 method))
  4364.                  (list 'cl::set-getf (nth 4 method)
  4365.                        tag-temp store-temp)))
  4366.         (nth 3 method) store-temp)
  4367.       (list 'getf (nth 4 method) tag-temp def-temp))))
  4368.  
  4369. (define-setf-method substring (place from &optional to)
  4370.   (let ((method (get-setf-method place cl::macro-environment))
  4371.     (from-temp (gensym "--substring-from--"))
  4372.     (to-temp (gensym "--substring-to--"))
  4373.     (store-temp (gensym "--substring-store--")))
  4374.     (list (append (car method) (list from-temp to-temp))
  4375.       (append (nth 1 method) (list from to))
  4376.       (list store-temp)
  4377.       (list 'let (list (list (car (nth 2 method))
  4378.                  (list 'cl::set-substring (nth 4 method)
  4379.                        from-temp to-temp store-temp)))
  4380.         (nth 3 method) store-temp)
  4381.       (list 'substring (nth 4 method) from-temp to-temp))))
  4382.  
  4383. (define-setf-method values (&rest args)
  4384.   (let ((methods (mapcar #'(lambda (x)
  4385.                  (get-setf-method x cl::macro-environment))
  4386.              args))
  4387.     (store-temp (gensym "--values-store--")))
  4388.     (list (apply 'append (mapcar 'first methods))
  4389.       (apply 'append (mapcar 'second methods))
  4390.       (list store-temp)
  4391.       (cons 'list
  4392.         (mapcar #'(lambda (m)
  4393.                 (cl::setf-do-store (cons (car (third m)) (fourth m))
  4394.                           (list 'pop store-temp)))
  4395.             methods))
  4396.       (cons 'list (mapcar 'fifth methods)))))
  4397.  
  4398. ;;; Getting and optimizing setf-methods.
  4399. ;;;###autoload
  4400. (defun get-setf-method (place &optional env)
  4401.   "Return a list of five values describing the setf-method for PLACE.
  4402. PLACE may be any Lisp form which can appear as the PLACE argument to
  4403. a macro like `setf' or `incf'."
  4404.   (if (symbolp place)
  4405.       (let ((temp (gensym "--setf--")))
  4406.     (list nil nil (list temp) (list 'setq place temp) place))
  4407.     (or (and (symbolp (car place))
  4408.          (let* ((func (car place))
  4409.             (name (symbol-name func))
  4410.             (method (get func 'setf-method))
  4411.             (case-fold-search nil))
  4412.            (or (and method
  4413.             (let ((cl::macro-environment env))
  4414.               (setq method (apply method (cdr place))))
  4415.             (if (and (consp method) (= (length method) 5))
  4416.                 method
  4417.               (error "Setf-method for %s returns malformed method"
  4418.                  func)))
  4419.            (and (save-match-data
  4420.               (string-match "\\`c[ad][ad][ad]?[ad]?r\\'" name))
  4421.             (get-setf-method (compiler-macroexpand place)))
  4422.            (and (eq func 'edebug-after)
  4423.             (get-setf-method (nth (1- (length place)) place)
  4424.                      env)))))
  4425.     (if (eq place (setq place (macroexpand place env)))
  4426.         (if (and (symbolp (car place)) (fboundp (car place))
  4427.              (symbolp (symbol-function (car place))))
  4428.         (get-setf-method (cons (symbol-function (car place))
  4429.                        (cdr place)) env)
  4430.           (error "No setf-method known for %s" (car place)))
  4431.       (get-setf-method place env)))))
  4432.  
  4433. (defun cl::setf-do-modify (place opt-expr)
  4434.   (let* ((method (get-setf-method place cl::macro-environment))
  4435.      (temps (car method)) (values (nth 1 method))
  4436.      (lets nil) (subs nil)
  4437.      (optimize (and (not (eq opt-expr 'no-opt))
  4438.             (or (and (not (eq opt-expr 'unsafe))
  4439.                  (cl::safe-expr-p opt-expr))
  4440.                 (cl::setf-simple-store-p (car (nth 2 method))
  4441.                             (nth 3 method)))))
  4442.      (simple (and optimize (consp place) (cl::simple-exprs-p (cdr place)))))
  4443.     (while values
  4444.       (if (or simple (cl::const-expr-p (car values)))
  4445.       (cl::push (cons (cl::pop temps) (cl::pop values)) subs)
  4446.     (cl::push (list (cl::pop temps) (cl::pop values)) lets)))
  4447.     (list (nreverse lets)
  4448.       (cons (car (nth 2 method)) (sublis subs (nth 3 method)))
  4449.       (sublis subs (nth 4 method)))))
  4450.  
  4451. (defun cl::setf-do-store (spec val)
  4452.   (let ((sym (car spec))
  4453.     (form (cdr spec)))
  4454.     (if (or (cl::const-expr-p val)
  4455.         (and (cl::simple-expr-p val) (eq (cl::expr-contains form sym) 1))
  4456.         (cl::setf-simple-store-p sym form))
  4457.     (subst val sym form)
  4458.       (list 'let (list (list sym val)) form))))
  4459.  
  4460. (defun cl::setf-simple-store-p (sym form)
  4461.   (and (consp form) (eq (cl::expr-contains form sym) 1)
  4462.        (eq (nth (1- (length form)) form) sym)
  4463.        (symbolp (car form)) (fboundp (car form))
  4464.        (not (eq (car-safe (symbol-function (car form))) 'macro))))
  4465.  
  4466. ;;; The standard modify macros.
  4467. ;;;###autoload
  4468. (cl::defmacro setf (&rest args)
  4469.   "(setf PLACE VAL PLACE VAL ...): set each PLACE to the value of its VAL.
  4470. This is a generalized version of `setq'; the PLACEs may be symbolic
  4471. references such as (car x) or (aref x i), as well as plain symbols.
  4472. For example, (setf (cadar x) y) is equivalent to (setcar (cdar x) y).
  4473. The return value is the last VAL in the list."
  4474.   (if (cdr (cdr args))
  4475.       (let ((sets nil))
  4476.     (while args (cl::push (list 'setf (cl::pop args) (cl::pop args)) sets))
  4477.     (cons 'progn (nreverse sets)))
  4478.     (if (symbolp (car args))
  4479.     (and args (cons 'setq args))
  4480.       (let* ((method (cl::setf-do-modify (car args) (nth 1 args)))
  4481.          (store (cl::setf-do-store (nth 1 method) (nth 1 args))))
  4482.     (if (car method) (list 'let* (car method) store) store)))))
  4483.  
  4484. ;;;###autoload
  4485. (cl::defmacro psetf (&rest args)
  4486.   "(psetf PLACE VAL PLACE VAL ...): set PLACEs to the values VALs in parallel.
  4487. This is like `setf', except that all VAL forms are evaluated (in order)
  4488. before assigning any PLACEs to the corresponding values."
  4489.   (let ((p args) (simple t) (vars nil))
  4490.     (while p
  4491.       (if (or (not (symbolp (car p))) (cl::expr-depends-p (nth 1 p) vars))
  4492.       (setq simple nil))
  4493.       (if (memq (car p) vars)
  4494.       (error "Destination duplicated in psetf: %s" (car p)))
  4495.       (cl::push (cl::pop p) vars)
  4496.       (or p (error "Odd number of arguments to psetf"))
  4497.       (cl::pop p))
  4498.     (if simple
  4499.     (list 'progn (cons 'setf args) nil)
  4500.       (setq args (reverse args))
  4501.       (let ((expr (list 'setf (cadr args) (car args))))
  4502.     (while (setq args (cddr args))
  4503.       (setq expr (list 'setf (cadr args) (list 'prog1 (car args) expr))))
  4504.     (list 'progn expr nil)))))
  4505.  
  4506. ;;;###autoload
  4507. (defun cl::do-pop (place)
  4508.   (if (cl::simple-expr-p place)
  4509.       (list 'prog1 (list 'car place) (list 'setf place (list 'cdr place)))
  4510.     (let* ((method (cl::setf-do-modify place t))
  4511.        (temp (gensym "--pop--")))
  4512.       (list 'let*
  4513.         (append (car method)
  4514.             (list (list temp (nth 2 method))))
  4515.         (list 'prog1
  4516.           (list 'car temp)
  4517.           (cl::setf-do-store (nth 1 method) (list 'cdr temp)))))))
  4518.  
  4519. ;;;###autoload
  4520. (cl::defmacro remf (place tag)
  4521.   "(remf PLACE TAG): remove TAG from property list PLACE.
  4522. PLACE may be a symbol, or any generalized variable allowed by `setf'.
  4523. The form returns true if TAG was found and removed, nil otherwise."
  4524.   (let* ((method (cl::setf-do-modify place t))
  4525.      (tag-temp (and (not (cl::const-expr-p tag)) (gensym "--remf-tag--")))
  4526.      (val-temp (and (not (cl::simple-expr-p place))
  4527.             (gensym "--remf-place--")))
  4528.      (ttag (or tag-temp tag))
  4529.      (tval (or val-temp (nth 2 method))))
  4530.     (list 'let*
  4531.       (append (car method)
  4532.           (and val-temp (list (list val-temp (nth 2 method))))
  4533.           (and tag-temp (list (list tag-temp tag))))
  4534.       (list 'if (list 'eq ttag (list 'car tval))
  4535.         (list 'progn
  4536.               (cl::setf-do-store (nth 1 method) (list 'cddr tval))
  4537.               t)
  4538.         (list 'cl::do-remf tval ttag)))))
  4539.  
  4540. ;;;###autoload
  4541. (cl::defmacro shiftf (place &rest args)
  4542.   "(shiftf PLACE PLACE... VAL): shift left among PLACEs.
  4543. Example: (shiftf A B C) sets A to B, B to C, and returns the old A.
  4544. Each PLACE may be a symbol, or any generalized variable allowed by `setf'."
  4545.   (if (not (memq nil (mapcar 'symbolp (butlast (cons place args)))))
  4546.       (list* 'prog1 place
  4547.          (let ((sets nil))
  4548.            (while args
  4549.          (cl::push (list 'setq place (car args)) sets)
  4550.          (setq place (cl::pop args)))
  4551.            (nreverse sets)))
  4552.     (let* ((places (reverse (cons place args)))
  4553.        (form (cl::pop places)))
  4554.       (while places
  4555.     (let ((method (cl::setf-do-modify (cl::pop places) 'unsafe)))
  4556.       (setq form (list 'let* (car method)
  4557.                (list 'prog1 (nth 2 method)
  4558.                  (cl::setf-do-store (nth 1 method) form))))))
  4559.       form)))
  4560.  
  4561. ;;;###autoload
  4562. (cl::defmacro rotatef (&rest args)
  4563.   "(rotatef PLACE...): rotate left among PLACEs.
  4564. Example: (rotatef A B C) sets A to B, B to C, and C to A.  It returns nil.
  4565. Each PLACE may be a symbol, or any generalized variable allowed by `setf'."
  4566.   (if (not (memq nil (mapcar 'symbolp args)))
  4567.       (and (cdr args)
  4568.        (let ((sets nil)
  4569.          (first (car args)))
  4570.          (while (cdr args)
  4571.            (setq sets (nconc sets (list (cl::pop args) (car args)))))
  4572.          (nconc (list 'psetf) sets (list (car args) first))))
  4573.     (let* ((places (reverse args))
  4574.        (temp (gensym "--rotatef--"))
  4575.        (form temp))
  4576.       (while (cdr places)
  4577.     (let ((method (cl::setf-do-modify (cl::pop places) 'unsafe)))
  4578.       (setq form (list 'let* (car method)
  4579.                (list 'prog1 (nth 2 method)
  4580.                  (cl::setf-do-store (nth 1 method) form))))))
  4581.       (let ((method (cl::setf-do-modify (car places) 'unsafe)))
  4582.     (list 'let* (append (car method) (list (list temp (nth 2 method))))
  4583.           (cl::setf-do-store (nth 1 method) form) nil)))))
  4584.  
  4585. ;;;###autoload
  4586. (cl::defmacro letf (bindings &rest body)
  4587.   "(letf ((PLACE VALUE) ...) BODY...): temporarily bind to PLACEs.
  4588. This is the analogue of `let', but with generalized variables (in the
  4589. sense of `setf') for the PLACEs.  Each PLACE is set to the corresponding
  4590. VALUE, then the BODY forms are executed.  On exit, either normally or
  4591. because of a `throw' or error, the PLACEs are set back to their original
  4592. values.  Note that this macro is *not* available in Common Lisp.
  4593. As a special case, if `(PLACE)' is used instead of `(PLACE VALUE)',
  4594. the PLACE is not modified before executing BODY."
  4595.   (if (and (not (cdr bindings)) (cdar bindings) (symbolp (caar bindings)))
  4596.       (list* 'let bindings body)
  4597.     (let ((lets nil)
  4598.       (rev (reverse bindings)))
  4599.       (while rev
  4600.     (let* ((place (if (symbolp (caar rev))
  4601.               (list 'symbol-value (list 'quote (caar rev)))
  4602.             (caar rev)))
  4603.            (value (cadar rev))
  4604.            (method (cl::setf-do-modify place 'no-opt))
  4605.            (save (gensym "--letf-save--"))
  4606.            (bound (and (memq (car place) '(symbol-value symbol-function))
  4607.                (gensym "--letf-bound--")))
  4608.            (temp (and (not (cl::const-expr-p value)) (cdr bindings)
  4609.               (gensym "--letf-val--"))))
  4610.       (setq lets (nconc (car method)
  4611.                 (if bound
  4612.                 (list (list bound
  4613.                         (list (if (eq (car place)
  4614.                               'symbol-value)
  4615.                               'boundp 'fboundp)
  4616.                           (nth 1 (nth 2 method))))
  4617.                       (list save (list 'and bound
  4618.                                (nth 2 method))))
  4619.                   (list (list save (nth 2 method))))
  4620.                 (and temp (list (list temp value)))
  4621.                 lets)
  4622.         body (list
  4623.               (list 'unwind-protect
  4624.                 (cons 'progn
  4625.                   (if (cdr (car rev))
  4626.                       (cons (cl::setf-do-store (nth 1 method)
  4627.                                   (or temp value))
  4628.                         body)
  4629.                     body))
  4630.                 (if bound
  4631.                 (list 'if bound
  4632.                       (cl::setf-do-store (nth 1 method) save)
  4633.                       (list (if (eq (car place) 'symbol-value)
  4634.                         'makunbound 'fmakunbound)
  4635.                         (nth 1 (nth 2 method))))
  4636.                   (cl::setf-do-store (nth 1 method) save))))
  4637.         rev (cdr rev))))
  4638.       (list* 'let* lets body))))
  4639.  
  4640. ;;;###autoload
  4641. (cl::defmacro letf* (bindings &rest body)
  4642.   "(letf* ((PLACE VALUE) ...) BODY...): temporarily bind to PLACEs.
  4643. This is the analogue of `let*', but with generalized variables (in the
  4644. sense of `setf') for the PLACEs.  Each PLACE is set to the corresponding
  4645. VALUE, then the BODY forms are executed.  On exit, either normally or
  4646. because of a `throw' or error, the PLACEs are set back to their original
  4647. values.  Note that this macro is *not* available in Common Lisp.
  4648. As a special case, if `(PLACE)' is used instead of `(PLACE VALUE)',
  4649. the PLACE is not modified before executing BODY."
  4650.   (if (null bindings)
  4651.       (cons 'progn body)
  4652.     (setq bindings (reverse bindings))
  4653.     (while bindings
  4654.       (setq body (list (list* 'letf (list (cl::pop bindings)) body))))
  4655.     (car body)))
  4656.  
  4657. ;;;###autoload
  4658. (cl::defmacro callf (func place &rest args)
  4659.   "(callf FUNC PLACE ARGS...): set PLACE to (FUNC PLACE ARGS...).
  4660. FUNC should be an unquoted function name.  PLACE may be a symbol,
  4661. or any generalized variable allowed by `setf'."
  4662.   (let* ((method (cl::setf-do-modify place (cons 'list args)))
  4663.      (rargs (cons (nth 2 method) args)))
  4664.     (list 'let* (car method)
  4665.       (cl::setf-do-store (nth 1 method)
  4666.                 (if (symbolp func) (cons func rargs)
  4667.                   (list* 'funcall (list 'function func)
  4668.                      rargs))))))
  4669.  
  4670. ;;;###autoload
  4671. (cl::defmacro callf2 (func arg1 place &rest args)
  4672.   "(callf2 FUNC ARG1 PLACE ARGS...): set PLACE to (FUNC ARG1 PLACE ARGS...).
  4673. Like `callf', but PLACE is the second argument of FUNC, not the first."
  4674.   (if (and (cl::safe-expr-p arg1) (cl::simple-expr-p place) (symbolp func))
  4675.       (list 'setf place (list* func arg1 place args))
  4676.     (let* ((method (cl::setf-do-modify place (cons 'list args)))
  4677.        (temp (and (not (cl::const-expr-p arg1)) (gensym "--arg1--")))
  4678.        (rargs (list* (or temp arg1) (nth 2 method) args)))
  4679.       (list 'let* (append (and temp (list (list temp arg1))) (car method))
  4680.         (cl::setf-do-store (nth 1 method)
  4681.                   (if (symbolp func) (cons func rargs)
  4682.                 (list* 'funcall (list 'function func)
  4683.                        rargs)))))))
  4684.  
  4685. ;;;###autoload
  4686. (cl::defmacro define-modify-macro (name arglist func &optional doc)
  4687.   "(define-modify-macro NAME ARGLIST FUNC): define a `setf'-like modify macro.
  4688. If NAME is called, it combines its PLACE argument with the other arguments
  4689. from ARGLIST using FUNC: (define-modify-macro incf (&optional (n 1)) +)"
  4690.   (if (memq '&key arglist) (error "&key not allowed in define-modify-macro"))
  4691.   (let ((place (gensym "--place--")))
  4692.     (list 'defmacro* name (cons place arglist) doc
  4693.       (list* (if (memq '&rest arglist) 'list* 'list)
  4694.          '(quote callf) (list 'quote func) place
  4695.          (cl::arglist-args arglist)))))
  4696.  
  4697.  
  4698. ;;; Structures.
  4699.  
  4700. ;;;###autoload
  4701. (cl::defmacro defstruct (struct &rest descs)
  4702.   "(defstruct (NAME OPTIONS...) (SLOT SLOT-OPTS...)...): define a struct type.
  4703. This macro defines a new Lisp data type called NAME, which contains data
  4704. stored in SLOTs.  This defines a `make-NAME' constructor, a `copy-NAME'
  4705. copier, a `NAME-p' predicate, and setf-able `NAME-SLOT' accessors."
  4706.   (let* ((name (if (consp struct) (car struct) struct))
  4707.      (opts (cdr-safe struct))
  4708.      (slots nil)
  4709.      (defaults nil)
  4710.      (conc-name (concat (symbol-name name) "-"))
  4711.      (constructor (intern (format "make-%s" name)))
  4712.      (constrs nil)
  4713.      (copier (intern (format "copy-%s" name)))
  4714.      (predicate (intern (format "%s-p" name)))
  4715.      (print-func nil) (print-auto nil)
  4716.      (safety (if (cl::compiling-file) cl::optimize-safety 3))
  4717.      (include nil)
  4718.      (tag (intern (format "cl::struct-%s" name)))
  4719.      (tag-symbol (intern (format "cl::struct-%s-tags" name)))
  4720.      (include-descs nil)
  4721.      (side-eff nil)
  4722.      (type nil)
  4723.      (named nil)
  4724.      (forms nil)
  4725.      pred-form pred-check)
  4726.     (if (stringp (car descs))
  4727.     (cl::push (list 'put (list 'quote name) '(quote structure-documentation)
  4728.                (cl::pop descs)) forms))
  4729.     (setq descs (cons '(cl::tag-slot)
  4730.               (mapcar #'(lambda (x) (if (consp x) x (list x)))
  4731.                   descs)))
  4732.     (while opts
  4733.       (let ((opt (if (consp (car opts)) (caar opts) (car opts)))
  4734.         (args (cdr-safe (cl::pop opts))))
  4735.     (cond ((eq opt ':conc-name)
  4736.            (if args
  4737.            (setq conc-name (if (car args)
  4738.                        (symbol-name (car args)) ""))))
  4739.           ((eq opt ':constructor)
  4740.            (if (cdr args)
  4741.            (cl::push args constrs)
  4742.          (if args (setq constructor (car args)))))
  4743.           ((eq opt ':copier)
  4744.            (if args (setq copier (car args))))
  4745.           ((eq opt ':predicate)
  4746.            (if args (setq predicate (car args))))
  4747.           ((eq opt ':include)
  4748.            (setq include (car args)
  4749.              include-descs (mapcar #'(lambda (x)
  4750.                            (if (consp x) x (list x)))
  4751.                        (cdr args))))
  4752.           ((eq opt ':print-function)
  4753.            (setq print-func (car args)))
  4754.           ((eq opt ':type)
  4755.            (setq type (car args)))
  4756.           ((eq opt ':named)
  4757.            (setq named t))
  4758.           ((eq opt ':initial-offset)
  4759.            (setq descs (nconc (make-list (car args) '(cl::skip-slot))
  4760.                   descs)))
  4761.           (t
  4762.            (error "Slot option %s unrecognized" opt)))))
  4763.     (if print-func
  4764.     (setq print-func (list 'progn
  4765.                    (list 'funcall (list 'function print-func)
  4766.                      'cl::x 'cl::s 'cl::n) t))
  4767.       (or type (and include (not (get include 'cl::struct-print)))
  4768.       (setq print-auto t
  4769.         print-func (and (or (not (or include type)) (null print-func))
  4770.                 (list 'progn
  4771.                       (list 'princ (format "#S(%s" name)
  4772.                         'cl::s))))))
  4773.     (if include
  4774.     (let ((inc-type (get include 'cl::struct-type))
  4775.           (old-descs (get include 'cl::struct-slots)))
  4776.       (or inc-type (error "%s is not a struct name" include))
  4777.       (and type (not (eq (car inc-type) type))
  4778.            (error ":type disagrees with :include for %s" name))
  4779.       (while include-descs
  4780.         (setcar (memq (or (assq (caar include-descs) old-descs)
  4781.                   (error "No slot %s in included struct %s"
  4782.                      (caar include-descs) include))
  4783.               old-descs)
  4784.             (cl::pop include-descs)))
  4785.       (setq descs (append old-descs (delq (assq 'cl::tag-slot descs) descs))
  4786.         type (car inc-type)
  4787.         named (assq 'cl::tag-slot descs))
  4788.       (if (cadr inc-type) (setq tag name named t))
  4789.       (let ((incl include))
  4790.         (while incl
  4791.           (cl::push (list 'pushnew (list 'quote tag)
  4792.                  (intern (format "cl::struct-%s-tags" incl)))
  4793.                forms)
  4794.           (setq incl (get incl 'cl::struct-include)))))
  4795.       (if type
  4796.       (progn
  4797.         (or (memq type '(vector list))
  4798.         (error "Illegal :type specifier: %s" type))
  4799.         (if named (setq tag name)))
  4800.     (setq type 'vector named 'true)))
  4801.     (or named (setq descs (delq (assq 'cl::tag-slot descs) descs)))
  4802.     (cl::push (list 'defvar tag-symbol) forms)
  4803.     (setq pred-form (and named
  4804.              (let ((pos (- (length descs)
  4805.                        (length (memq (assq 'cl::tag-slot descs)
  4806.                              descs)))))
  4807.                (if (eq type 'vector)
  4808.                    (list 'and '(vectorp cl::x)
  4809.                      (list '>= '(length cl::x) (length descs))
  4810.                      (list 'memq (list 'aref 'cl::x pos)
  4811.                        tag-symbol))
  4812.                  (if (= pos 0)
  4813.                  (list 'memq '(car-safe cl::x) tag-symbol)
  4814.                    (list 'and '(consp cl::x)
  4815.                      (list 'memq (list 'nth pos 'cl::x)
  4816.                        tag-symbol))))))
  4817.       pred-check (and pred-form (> safety 0)
  4818.               (if (and (eq (caadr pred-form) 'vectorp)
  4819.                    (= safety 1))
  4820.                   (cons 'and (cdddr pred-form)) pred-form)))
  4821.     (let ((pos 0) (descp descs))
  4822.       (while descp
  4823.     (let* ((desc (cl::pop descp))
  4824.            (slot (car desc)))
  4825.       (if (memq slot '(cl::tag-slot cl::skip-slot))
  4826.           (progn
  4827.         (cl::push nil slots)
  4828.         (cl::push (and (eq slot 'cl::tag-slot) (list 'quote tag))
  4829.              defaults))
  4830.         (if (assq slot descp)
  4831.         (error "Duplicate slots named %s in %s" slot name))
  4832.         (let ((accessor (intern (format "%s%s" conc-name slot))))
  4833.           (cl::push slot slots)
  4834.           (cl::push (nth 1 desc) defaults)
  4835.           (cl::push (list*
  4836.             'defsubst* accessor '(cl::x)
  4837.             (append
  4838.              (and pred-check
  4839.                   (list (list 'or pred-check
  4840.                       (list 'error
  4841.                         (format "%s accessing a non-%s"
  4842.                             accessor name)
  4843.                         'cl::x))))
  4844.              (list (if (eq type 'vector) (list 'aref 'cl::x pos)
  4845.                  (if (= pos 0) '(car cl::x)
  4846.                    (list 'nth pos 'cl::x)))))) forms)
  4847.           (cl::push (cons accessor t) side-eff)
  4848.           (cl::push (list 'define-setf-method accessor '(cl::x)
  4849.                  (if (cadr (memq ':read-only (cddr desc)))
  4850.                  (list 'error (format "%s is a read-only slot"
  4851.                               accessor))
  4852.                    (list 'cl::struct-setf-expander 'cl::x
  4853.                      (list 'quote name) (list 'quote accessor)
  4854.                      (and pred-check (list 'quote pred-check))
  4855.                      pos)))
  4856.                forms)
  4857.           (if print-auto
  4858.           (nconc print-func
  4859.              (list (list 'princ (format " %s" slot) 'cl::s)
  4860.                    (list 'prin1 (list accessor 'cl::x) 'cl::s)))))))
  4861.     (setq pos (1+ pos))))
  4862.     (setq slots (nreverse slots)
  4863.       defaults (nreverse defaults))
  4864.     (and predicate pred-form
  4865.      (progn (cl::push (list 'defsubst* predicate '(cl::x)
  4866.                    (if (eq (car pred-form) 'and)
  4867.                    (append pred-form '(t))
  4868.                  (list 'and pred-form t))) forms)
  4869.         (cl::push (cons predicate 'error-free) side-eff)))
  4870.     (and copier
  4871.      (progn (cl::push (list 'defun copier '(x) '(copy-sequence x)) forms)
  4872.         (cl::push (cons copier t) side-eff)))
  4873.     (if constructor
  4874.     (cl::push (list constructor
  4875.                (cons '&key (delq nil (copy-sequence slots))))
  4876.          constrs))
  4877.     (while constrs
  4878.       (let* ((name (caar constrs))
  4879.          (args (cadr (cl::pop constrs)))
  4880.          (anames (cl::arglist-args args))
  4881.          (make (mapcar* #'(lambda (s d) (if (memq s anames) s d))
  4882.                 slots defaults)))
  4883.     (cl::push (list 'defsubst* name
  4884.                (list* '&cl::defs (list 'quote (cons nil descs)) args)
  4885.                (cons type make)) forms)
  4886.     (if (cl::safe-expr-p (cons 'progn (mapcar 'second descs)))
  4887.         (cl::push (cons name t) side-eff))))
  4888.     (if print-auto (nconc print-func (list '(princ ")" cl::s) t)))
  4889.     (if print-func
  4890.     (cl::push (list 'push
  4891.                (list 'function
  4892.                  (list 'lambda '(cl::x cl::s cl::n)
  4893.                    (list 'and pred-form print-func)))
  4894.                'custom-print-functions) forms))
  4895.     (cl::push (list 'setq tag-symbol (list 'list (list 'quote tag))) forms)
  4896.     (cl::push (list* 'eval-when '(compile load eval)
  4897.             (list 'put (list 'quote name) '(quote cl::struct-slots)
  4898.               (list 'quote descs))
  4899.             (list 'put (list 'quote name) '(quote cl::struct-type)
  4900.               (list 'quote (list type (eq named t))))
  4901.             (list 'put (list 'quote name) '(quote cl::struct-include)
  4902.               (list 'quote include))
  4903.             (list 'put (list 'quote name) '(quote cl::struct-print)
  4904.               print-auto)
  4905.             (mapcar #'(lambda (x)
  4906.                 (list 'put (list 'quote (car x))
  4907.                       '(quote side-effect-free)
  4908.                       (list 'quote (cdr x))))
  4909.                 side-eff))
  4910.          forms)
  4911.     (cons 'progn (nreverse (cons (list 'quote name) forms)))))
  4912.  
  4913. ;;;###autoload
  4914. (defun cl::struct-setf-expander (x name accessor pred-form pos)
  4915.   (let* ((temp (gensym "--x--")) (store (gensym "--store--")))
  4916.     (list (list temp) (list x) (list store)
  4917.       (append '(progn)
  4918.           (and pred-form
  4919.                (list (list 'or (subst temp 'cl::x pred-form)
  4920.                    (list 'error
  4921.                      (format
  4922.                       "%s storing a non-%s" accessor name)
  4923.                      temp))))
  4924.           (list (if (eq (car (get name 'cl::struct-type)) 'vector)
  4925.                 (list 'aset temp pos store)
  4926.               (list 'setcar
  4927.                 (if (<= pos 5)
  4928.                     (let ((xx temp))
  4929.                       (while (>= (setq pos (1- pos)) 0)
  4930.                     (setq xx (list 'cdr xx)))
  4931.                       xx)
  4932.                   (list 'nthcdr pos temp))
  4933.                 store))))
  4934.       (list accessor temp))))
  4935.  
  4936.  
  4937. ;;; Types and assertions.
  4938.  
  4939. ;;;###autoload
  4940. (cl::defmacro deftype (name args &rest body)
  4941.   "(deftype NAME ARGLIST BODY...): define NAME as a new data type.
  4942. The type name can then be used in `typecase', `check-type', etc."
  4943.   (list 'eval-when '(compile load eval)
  4944.     (cl::transform-function-property
  4945.      name 'cl::deftype-handler (cons (list* '&cl::defs ''('*) args) body))))
  4946.  
  4947. (defun cl::make-type-test (val type)
  4948.   (if (symbolp type)
  4949.       (cond ((get type 'cl::deftype-handler)
  4950.          (cl::make-type-test val (funcall (get type 'cl::deftype-handler))))
  4951.         ((memq type '(nil t)) type)
  4952.         ((eq type 'string-char) (list 'characterp val))
  4953.         ((eq type 'null) (list 'null val))
  4954.         ((eq type 'float) (list 'floatp-safe val))
  4955.         ((eq type 'real) (list 'numberp val))
  4956.         ((eq type 'fixnum) (list 'integerp val))
  4957.         (t
  4958.          (let* ((name (symbol-name type))
  4959.             (namep (intern (concat name "p"))))
  4960.            (if (fboundp namep) (list namep val)
  4961.          (list (intern (concat name "-p")) val)))))
  4962.     (cond ((get (car type) 'cl::deftype-handler)
  4963.        (cl::make-type-test val (apply (get (car type) 'cl::deftype-handler)
  4964.                      (cdr type))))
  4965.       ((memq (car-safe type) '(integer float real number))
  4966.        (delq t (list 'and (cl::make-type-test val (car type))
  4967.              (if (memq (cadr type) '(* nil)) t
  4968.                (if (consp (cadr type)) (list '> val (caadr type))
  4969.                  (list '>= val (cadr type))))
  4970.              (if (memq (caddr type) '(* nil)) t
  4971.                (if (consp (caddr type)) (list '< val (caaddr type))
  4972.                  (list '<= val (caddr type)))))))
  4973.       ((memq (car-safe type) '(and or not))
  4974.        (cons (car type)
  4975.          (mapcar #'(lambda (x) (cl::make-type-test val x))
  4976.              (cdr type))))
  4977.       ((memq (car-safe type) '(member member*))
  4978.        (list 'and (list 'member* val (list 'quote (cdr type))) t))
  4979.       ((eq (car-safe type) 'satisfies) (list (cadr type) val))
  4980.       (t (error "Bad type spec: %s" type)))))
  4981.  
  4982. ;;;###autoload
  4983. (defun typep (object type)   ; See compiler macro below.
  4984.   "Check that OBJECT is of type TYPE.
  4985. TYPE is a Common Lisp-style type specifier."
  4986.   (eval (cl::make-type-test 'object type)))
  4987.  
  4988. ;;;###autoload
  4989. (cl::defmacro check-type (place type &optional string)
  4990.   "Verify that PLACE is of type TYPE; signal a continuable error if not.
  4991. STRING is an optional description of the desired type."
  4992.   (when (or (not (cl::compiling-file))
  4993.         (< cl::optimize-speed 3)
  4994.         (= cl::optimize-safety 3))
  4995.     (let* ((temp (if (cl::simple-expr-p place 3) place (gensym)))
  4996.        (test (cl::make-type-test temp type))
  4997.        (signal-error `(signal 'wrong-type-argument
  4998.                   ,(list 'list (or string (list 'quote type))
  4999.                      temp (list 'quote place))))
  5000.        (body
  5001.         (condition-case nil
  5002.         `(while (not ,test)
  5003.            ,(macroexpand `(setf ,place ,signal-error)))
  5004.           (error
  5005.            `(if ,test (progn ,signal-error nil))))))
  5006.       (if (eq temp place)
  5007.       body
  5008.     `(let ((,temp ,place)) ,body)))))
  5009.  
  5010. ;;;###autoload
  5011. (cl::defmacro assert (form &optional show-args string &rest args)
  5012.   "Verify that FORM returns non-nil; signal an error if not.
  5013. Second arg SHOW-ARGS means to include arguments of FORM in message.
  5014. Other args STRING and ARGS... are arguments to be passed to `error'.
  5015. They are not evaluated unless the assertion fails.  If STRING is
  5016. omitted, a default message listing FORM itself is used."
  5017.   (and (or (not (cl::compiling-file))
  5018.        (< cl::optimize-speed 3) (= cl::optimize-safety 3))
  5019.        (let ((sargs (and show-args (delq nil (mapcar
  5020.                            #'(lambda (x)
  5021.                            (and (not (cl::const-expr-p x))
  5022.                             x))
  5023.                            (cdr form))))))
  5024.      (list 'progn
  5025.            (list 'or form
  5026.              (if string
  5027.              (list* 'error string (append sargs args))
  5028.                (list 'signal '(quote cl::assertion-failed)
  5029.                  (list* 'list (list 'quote form) sargs))))
  5030.            nil))))
  5031.  
  5032. ;;;###autoload
  5033. (cl::defmacro ignore-errors (&rest body)
  5034.   "Execute FORMS; if an error occurs, return nil.
  5035. Otherwise, return result of last FORM."
  5036.   `(condition-case nil (progn ,@body) (error nil)))
  5037.  
  5038. ;;;###autoload
  5039. (cl::defmacro ignore-file-errors (&rest body)
  5040.   "Execute FORMS; if an error of type `file-error' occurs, return nil.
  5041. Otherwise, return result of last FORM."
  5042.   `(condition-case nil (progn ,@body) (file-error nil)))
  5043.  
  5044. ;;; Some predicates for analyzing Lisp forms.  These are used by various
  5045. ;;; macro expanders to optimize the results in certain common cases.
  5046.  
  5047. (defconst cl::simple-funcs '(car cdr nth aref elt if and or + - 1+ 1- min max
  5048.                 car-safe cdr-safe progn prog1 prog2))
  5049. (defconst cl::safe-funcs '(* / % length memq list vector vectorp
  5050.               < > <= >= = error))
  5051.  
  5052. ;;; Check if no side effects, and executes quickly.
  5053. (defun cl::simple-expr-p (x &optional size)
  5054.   (or size (setq size 10))
  5055.   (if (and (consp x) (not (memq (car x) '(quote function function*))))
  5056.       (and (symbolp (car x))
  5057.        (or (memq (car x) cl::simple-funcs)
  5058.            (get (car x) 'side-effect-free))
  5059.        (progn
  5060.          (setq size (1- size))
  5061.          (while (and (setq x (cdr x))
  5062.              (setq size (cl::simple-expr-p (car x) size))))
  5063.          (and (null x) (>= size 0) size)))
  5064.     (and (> size 0) (1- size))))
  5065.  
  5066. (defun cl::simple-exprs-p (xs)
  5067.   (while (and xs (cl::simple-expr-p (car xs)))
  5068.     (setq xs (cdr xs)))
  5069.   (not xs))
  5070.  
  5071. ;;; Check if no side effects.
  5072. (defun cl::safe-expr-p (x)
  5073.   (or (not (and (consp x) (not (memq (car x) '(quote function function*)))))
  5074.       (and (symbolp (car x))
  5075.        (or (memq (car x) cl::simple-funcs)
  5076.            (memq (car x) cl::safe-funcs)
  5077.            (get (car x) 'side-effect-free))
  5078.        (progn
  5079.          (while (and (setq x (cdr x)) (cl::safe-expr-p (car x))))
  5080.          (null x)))))
  5081.  
  5082. ;;; Check if constant (i.e., no side effects or dependencies).
  5083. (defun cl::const-expr-p (x)
  5084.   (cond ((consp x)
  5085.      (or (eq (car x) 'quote)
  5086.          (and (memq (car x) '(function function*))
  5087.           (or (symbolp (nth 1 x))
  5088.               (and (eq (car-safe (nth 1 x)) 'lambda) 'func)))))
  5089.     ((symbolp x) (and (memq x '(nil t)) t))
  5090.     (t t)))
  5091.  
  5092. (defun cl::const-exprs-p (xs)
  5093.   (while (and xs (cl::const-expr-p (car xs)))
  5094.     (setq xs (cdr xs)))
  5095.   (not xs))
  5096.  
  5097. (defun cl::const-expr-val (x)
  5098.   (and (eq (cl::const-expr-p x) t) (if (consp x) (nth 1 x) x)))
  5099.  
  5100. (defun cl::expr-access-order (x v)
  5101.   (if (cl::const-expr-p x) v
  5102.     (if (consp x)
  5103.     (progn
  5104.       (while (setq x (cdr x)) (setq v (cl::expr-access-order (car x) v)))
  5105.       v)
  5106.       (if (eq x (car v)) (cdr v) '(t)))))
  5107.  
  5108. ;;; Count number of times X refers to Y.  Return NIL for 0 times.
  5109. (defun cl::expr-contains (x y)
  5110.   (cond ((equal y x) 1)
  5111.     ((and (consp x) (not (memq (car-safe x) '(quote function function*))))
  5112.      (let ((sum 0))
  5113.        (while x
  5114.          (setq sum (+ sum (or (cl::expr-contains (cl::pop x) y) 0))))
  5115.        (and (> sum 0) sum)))
  5116.     (t nil)))
  5117.  
  5118. (defun cl::expr-contains-any (x y)
  5119.   (while (and y (not (cl::expr-contains x (car y)))) (cl::pop y))
  5120.   y)
  5121.  
  5122. ;;; Check whether X may depend on any of the symbols in Y.
  5123. (defun cl::expr-depends-p (x y)
  5124.   (and (not (cl::const-expr-p x))
  5125.        (or (not (cl::safe-expr-p x)) (cl::expr-contains-any x y))))
  5126.  
  5127.  
  5128. ;;; Compiler macros.
  5129.  
  5130. ;;;###autoload
  5131. (cl::defmacro define-compiler-macro (func args &rest body)
  5132.   "(define-compiler-macro FUNC ARGLIST BODY...): Define a compiler-only macro.
  5133. This is like `defmacro', but macro expansion occurs only if the call to
  5134. FUNC is compiled (i.e., not interpreted).  Compiler macros should be used
  5135. for optimizing the way calls to FUNC are compiled; the form returned by
  5136. BODY should do the same thing as a call to the normal function called
  5137. FUNC, though possibly more efficiently.  Note that, like regular macros,
  5138. compiler macros are expanded repeatedly until no further expansions are
  5139. possible.  Unlike regular macros, BODY can decide to \"punt\" and leave the
  5140. original function call alone by declaring an initial `&whole foo' parameter
  5141. and then returning foo."
  5142.   (let ((p (if (listp args) args (list '&rest args))) (res nil))
  5143.     (while (consp p) (cl::push (cl::pop p) res))
  5144.     (setq args (nreverse res)) (setcdr res (and p (list '&rest p))))
  5145.   (list 'eval-when '(compile load eval)
  5146.     (cl::transform-function-property
  5147.      func 'cl::compiler-macro
  5148.      (cons (if (memq '&whole args) (delq '&whole args)
  5149.          (cons '--cl::whole-arg-- args)) body))
  5150.     (list 'or (list 'get (list 'quote func) '(quote byte-compile))
  5151.           (list 'put (list 'quote func) '(quote byte-compile)
  5152.             '(quote cl::byte-compile-compiler-macro)))))
  5153.  
  5154. ;;;###autoload
  5155. (defun compiler-macroexpand (form)
  5156.   (while
  5157.       (let ((func (car-safe form)) (handler nil))
  5158.     (while (and (symbolp func)
  5159.             (not (setq handler (get func 'cl::compiler-macro)))
  5160.             (fboundp func)
  5161.             (or (not (eq (car-safe (symbol-function func)) 'autoload))
  5162.             (load (nth 1 (symbol-function func)))))
  5163.       (setq func (symbol-function func)))
  5164.     (and handler
  5165.          (not (eq form (setq form (apply handler form (cdr form))))))))
  5166.   form)
  5167.  
  5168. (defun cl::byte-compile-compiler-macro (form)
  5169.   (if (eq form (setq form (compiler-macroexpand form)))
  5170.       (byte-compile-normal-call form)
  5171.     (byte-compile-form form)))
  5172.  
  5173. (cl::defmacro defsubst* (name args &rest body)
  5174.   "(defsubst* NAME ARGLIST [DOCSTRING] BODY...): define NAME as a function.
  5175. Like `defun', except the function is automatically declared `inline',
  5176. ARGLIST allows full Common Lisp conventions, and BODY is implicitly
  5177. surrounded by (block NAME ...)."
  5178.   (let* ((argns (cl::arglist-args args)) (p argns)
  5179.      (pbody (cons 'progn body))
  5180.      (unsafe (not (cl::safe-expr-p pbody))))
  5181.     (while (and p (eq (cl::expr-contains args (car p)) 1)) (cl::pop p))
  5182.     (list 'progn
  5183.       (if p nil   ; give up if defaults refer to earlier args
  5184.         (list 'define-compiler-macro name
  5185.           (list* '&whole 'cl::whole '&cl::quote args)
  5186.           (list* 'cl::defsubst-expand (list 'quote argns)
  5187.              (list 'quote (list* 'block name body))
  5188.              (not (or unsafe (cl::expr-access-order pbody argns)))
  5189.              (and (memq '&key args) 'cl::whole) unsafe argns)))
  5190.       (list* 'defun* name args body))))
  5191.  
  5192. (defun cl::defsubst-expand (argns body simple whole unsafe &rest argvs)
  5193.   (if (and whole (not (cl::safe-expr-p (cons 'progn argvs)))) whole
  5194.     (if (cl::simple-exprs-p argvs) (setq simple t))
  5195.     (let ((lets (delq nil
  5196.               (mapcar* #'(lambda (argn argv)
  5197.                    (if (or simple (cl::const-expr-p argv))
  5198.                        (progn (setq body (subst argv argn body))
  5199.                           (and unsafe (list argn argv)))
  5200.                      (list argn argv)))
  5201.                    argns argvs))))
  5202.       (if lets (list 'let lets body) body))))
  5203.  
  5204.  
  5205. ;;; Compile-time optimizations for some functions defined in this package.
  5206. ;;; Note that cl.el arranges to force cl::macs to be loaded at compile-time,
  5207. ;;; mainly to make sure these macros will be present.
  5208.  
  5209. (put 'eql 'byte-compile nil)
  5210. (define-compiler-macro eql (&whole form a b)
  5211.   (cond ((eq (cl::const-expr-p a) t)
  5212.      (let ((val (cl::const-expr-val a)))
  5213.        (if (and (numberp val) (not (integerp val)))
  5214.            (list 'equal a b)
  5215.          (list 'eq a b))))
  5216.     ((eq (cl::const-expr-p b) t)
  5217.      (let ((val (cl::const-expr-val b)))
  5218.        (if (and (numberp val) (not (integerp val)))
  5219.            (list 'equal a b)
  5220.          (list 'eq a b))))
  5221.     ((cl::simple-expr-p a 5)
  5222.      (list 'if (list 'numberp a)
  5223.            (list 'equal a b)
  5224.            (list 'eq a b)))
  5225.     ((and (cl::safe-expr-p a)
  5226.           (cl::simple-expr-p b 5))
  5227.      (list 'if (list 'numberp b)
  5228.            (list 'equal a b)
  5229.            (list 'eq a b)))
  5230.     (t form)))
  5231.  
  5232. (define-compiler-macro member* (&whole form a list &rest keys)
  5233.   (let ((test (and (= (length keys) 2) (eq (car keys) ':test)
  5234.            (cl::const-expr-val (nth 1 keys)))))
  5235.     (cond ((eq test 'eq) (list 'memq a list))
  5236.       ((eq test 'equal) (list 'member a list))
  5237.       ((or (null keys) (eq test 'eql))
  5238.        (if (eq (cl::const-expr-p a) t)
  5239.            (list (if (floatp-safe (cl::const-expr-val a)) 'member 'memq)
  5240.              a list)
  5241.          (if (eq (cl::const-expr-p list) t)
  5242.          (let ((p (cl::const-expr-val list)) (mb nil) (mq nil))
  5243.            (if (not (cdr p))
  5244.                (and p (list 'eql a (list 'quote (car p))))
  5245.              (while p
  5246.                (if (floatp-safe (car p)) (setq mb t)
  5247.              (or (integerp (car p)) (symbolp (car p)) (setq mq t)))
  5248.                (setq p (cdr p)))
  5249.              (if (not mb) (list 'memq a list)
  5250.                (if (not mq) (list 'member a list) form))))
  5251.            form)))
  5252.       (t form))))
  5253.  
  5254. (define-compiler-macro assoc* (&whole form a list &rest keys)
  5255.   (let ((test (and (= (length keys) 2) (eq (car keys) ':test)
  5256.            (cl::const-expr-val (nth 1 keys)))))
  5257.     (cond ((eq test 'eq) (list 'assq a list))
  5258.       ((eq test 'equal) (list 'assoc a list))
  5259.       ((and (eq (cl::const-expr-p a) t) (or (null keys) (eq test 'eql)))
  5260.        (if (floatp-safe (cl::const-expr-val a))
  5261.            (list 'assoc a list) (list 'assq a list)))
  5262.       (t form))))
  5263.  
  5264. (define-compiler-macro adjoin (&whole form a list &rest keys)
  5265.   (if (and (cl::simple-expr-p a) (cl::simple-expr-p list)
  5266.        (not (memq ':key keys)))
  5267.       (list 'if (list* 'member* a list keys) list (list 'cons a list))
  5268.     form))
  5269.  
  5270. (define-compiler-macro list* (arg &rest others)
  5271.   (let* ((args (reverse (cons arg others)))
  5272.      (form (car args)))
  5273.     (while (setq args (cdr args))
  5274.       (setq form (list 'cons (car args) form)))
  5275.     form))
  5276.  
  5277. (define-compiler-macro get* (sym prop &optional default)
  5278.   (list 'get sym prop default))
  5279.  
  5280. (define-compiler-macro getf (sym prop &optional default)
  5281.   (list 'plist-get sym prop default))
  5282.  
  5283. (define-compiler-macro typep (&whole form val type)
  5284.   (if (cl::const-expr-p type)
  5285.       (let ((res (cl::make-type-test val (cl::const-expr-val type))))
  5286.     (if (or (memq (cl::expr-contains res val) '(nil 1))
  5287.         (cl::simple-expr-p val)) res
  5288.       (let ((temp (gensym)))
  5289.         (list 'let (list (list temp val)) (subst temp val res)))))
  5290.     form))
  5291.  
  5292.  
  5293. (mapc
  5294.  #'(lambda (y)
  5295.      (put (car y) 'side-effect-free t)
  5296.      (put (car y) 'byte-compile 'cl::byte-compile-compiler-macro)
  5297.      (put (car y) 'cl::compiler-macro
  5298.       (list 'lambda '(w x)
  5299.         (if (symbolp (cadr y))
  5300.             (list 'list (list 'quote (cadr y))
  5301.               (list 'list (list 'quote (caddr y)) 'x))
  5302.           (cons 'list (cdr y))))))
  5303.  '((first 'car x) (second 'cadr x) (third 'caddr x) (fourth 'cadddr x)
  5304.    (fifth 'nth 4 x) (sixth 'nth 5 x) (seventh 'nth 6 x)
  5305.    (eighth 'nth 7 x) (ninth 'nth 8 x) (tenth 'nth 9 x)
  5306.    (rest 'cdr x) (endp 'null x) (plusp '> x 0) (minusp '< x 0)
  5307.    (oddp  'eq (list 'logand x 1) 1)
  5308.    (evenp 'eq (list 'logand x 1) 0)
  5309.    (caar car car) (cadr car cdr) (cdar cdr car) (cddr cdr cdr)
  5310.    (caaar car caar) (caadr car cadr) (cadar car cdar)
  5311.    (caddr car cddr) (cdaar cdr caar) (cdadr cdr cadr)
  5312.    (cddar cdr cdar) (cdddr cdr cddr) (caaaar car caaar)
  5313.    (caaadr car caadr) (caadar car cadar) (caaddr car caddr)
  5314.    (cadaar car cdaar) (cadadr car cdadr) (caddar car cddar)
  5315.    (cadddr car cdddr) (cdaaar cdr caaar) (cdaadr cdr caadr)
  5316.    (cdadar cdr cadar) (cdaddr cdr caddr) (cddaar cdr cdaar)
  5317.    (cddadr cdr cdadr) (cdddar cdr cddar) (cddddr cdr cdddr)))
  5318.  
  5319. ;;; Things that are inline.
  5320. (proclaim '(inline floatp-safe acons map concatenate notany notevery
  5321. ;; XEmacs change
  5322.            cl::set-elt revappend nreconc
  5323.            ))
  5324.  
  5325. ;;; Things that are side-effect-free.  Moved to byte-optimize.el
  5326. ;(dolist (fun '(oddp evenp plusp minusp
  5327. ;           abs expt signum last butlast ldiff
  5328. ;           pairlis gcd lcm
  5329. ;           isqrt floor* ceiling* truncate* round* mod* rem* subseq
  5330. ;           list-length getf))
  5331. ;  (put fun 'side-effect-free t))
  5332.  
  5333. ;;; Things that are side-effect-and-error-free.  Moved to byte-optimize.el
  5334. ;(dolist (fun '(eql floatp-safe list* subst acons equalp random-state-p
  5335. ;          copy-tree sublis))
  5336. ;  (put fun 'side-effect-free 'error-free))
  5337.  
  5338.  
  5339. (run-hooks 'cl::macs-load-hook)
  5340.  
  5341. ;;; cl::macs.el ends here
  5342.  
  5343.  
  5344.  
  5345.  
  5346.  
  5347. (load "cycdcg.lisp")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement