View difference between Paste ID: K2eKB1nk and rD1VHGqt
SHOW: | | - or go back to the newest paste.
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")