[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
#+lispm bugs
- To: Vaughan Johnson <VJOHNSON@SUMEX-AIM.Stanford.EDU>, commonloops.pa@Xerox.COM
- Subject: #+lispm bugs
- From: Charles Hornig <Hornig@ALDERAAN.SCRC.Symbolics.COM>
- Date: Wed, 10 Aug 88 09:30 EDT
- In-reply-to: <12421163748.72.VJOHNSON@SUMEX-AIM.Stanford.EDU>
- Redistributed: commonloops.pa
Date: Tue, 9 Aug 88 16:30:19 PDT
From: Vaughan Johnson <VJOHNSON@SUMEX-AIM.Stanford.EDU>
The following code from boot.lisp and defs.lisp used to have #+lispm
instead of #+Symbolics. Some of it won't compile on the TI
(dbg:report gets translated as eh:report, which has no definition),
and the rest is probably not relevant to us on Explorers.
The lispm feature is not unique to Symbolics machines, so care needs
to be taken in deciding whether to use it or the symbolics feature.
Please also note that not all Symbolics Lisp implementations are
LispM's. We sell a 80386 Lisp which has #+Symbolics but not #+LispM.
In this case you should use #+Genera.
Here's the changed code:
;;; From Boot.Lisp
#+Symbolics
(zl:defflavor generic-clobbers-function
(name)
(si:error)
:initable-instance-variables)
#+Symbolics
(zl:defmethod (dbg:report generic-clobbers-function) (stream)
(format stream "~S aready names a ~a"
name
(if (and (symbolp name) (macro-function name))
"macro"
"function")))
#+Symbolics
(zl:defmethod (sys:proceed generic-clobbers-function :specialize-it) ()
"Make it specializable anyway?"
(make-specializable name))
;;;Edited by Vaughan Johnson 9 Aug 88 16:09
;;;Edited by Vaughan Johnson 9 Aug 88 16:10
(defun ensure-generic-function (spec &rest keys
&key lambda-list
argument-precedence-order
declarations
documentation
method-combination
generic-function-class
method-class)
(declare (ignore lambda-list argument-precedence-order declarations
documentation method-combination method-class))
(let ((existing (and (gboundp spec)
(gdefinition spec))))
(cond ((null existing)
(let ((new (apply #'ensure-gf-internal spec keys)))
(setq new (set-function-name new spec))
(setf (gdefinition spec) new)))
((funcallable-instance-p existing) existing)
(existing
#+Symbolics
(zl:signal 'generic-clobbers-function :name spec)
#-Symbolics
(error "~S already names an ordinary function or a macro,~%~
it can't be converted to a generic function."
spec)))))
;;; From Defs.Lisp
(defun do-defsetf (access store-or-args &optional store-vars &rest body)
(let #+Genera ((si:inhibit-fdefine-warnings t))
#-Genera ()
#+Symbolics (setq body (copy-list body))
(if body
(eval `(defsetf ,access ,store-or-args ,store-vars ,@body))
(eval `(defsetf ,access ,store-or-args)))))
-----
Vaughan Johnson, vjohnson@sumex-aim.stanford.edu
-------
- References:
- #+lispm bugs
- From: Vaughan Johnson <VJOHNSON@SUMEX-AIM.Stanford.EDU>