--- Christophe Rhodes <csr21@cam.ac.uk> wrote:
> C Y <smustudent1@yahoo.com> writes:
>
> > --- Wolfgang Jenkner <wjenkner@inode.at> wrote:
> >> This indicates that we should find the clue in the messages SBCL
> >> produced while compiling the function GRAB-LINE-NUMBER in this
> file.
> >>
> >> Wolfgang
> >
> > I think this is it:
> >
> > ; file: /home/user/maxima/src/mdebug.lisp
> > ; in: DEFUN GRAB-LINE-NUMBER
> > ; (DEFUN MAXIMA::GRAB-LINE-NUMBER (MAXIMA::LI STREAM)
> > ; (DECLARE (TYPE (VECTOR #) MAXIMA::LI))
> > ; (COND ((AND # #) (MAXIMA::LET # #))))
> > ; --> PROGN SB-IMPL::%DEFUN SB-IMPL::%DEFUN SB-INT:NAMED-LAMBDA
> > ; ==>
> > ; #'(SB-INT:NAMED-LAMBDA MAXIMA::GRAB-LINE-NUMBER
> > ; (MAXIMA::LI STREAM)
> > ; (DECLARE (TYPE (VECTOR #) MAXIMA::LI))
> > ; (BLOCK MAXIMA::GRAB-LINE-NUMBER (COND (# #))))
> > ;
> > ; caught ERROR:
> > ; bad thing to be a type specifier: (BASE-CHAR)
>
> I think SBCL is right: the type specifier (BASE-CHAR) is not valid.
> (this is indeed a recent change in SBCL).
>
> I don't have maxima sources to hand: if there's a literal (base-char)
> in the code, try changing it to simply base-char; if there doesn't
> seem to be one, we might have to dig deeper.
I don't see one. Here's the function in question:
(defun grab-line-number (li stream)
(declare (type (vector ( #. (array-element-type "ab"))) li))
(cond ((and (> (length li) 3)
(digit-char-p (aref li 1)))
(let ((in (get-instream stream)))
(and in
(progn
(multiple-value-bind
(line pos)
(read-from-string li nil nil)
(let ((file (read-from-string li nil nil
:start pos)))
(cond ((and (stringp file) (fixnump line))
(setf (instream-stream-name in)
file)
(setf (instream-line in)
line)))
)))))))
)
__________________________________
Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard
http://antispam.yahoo.com/whatsnewfree