On Thu, 2002-05-02 at 08:49, Raymond Toy wrote:
> >>>>> "James" == James Amundson <amundson@users.sourceforge.net> writes:
>
> James> Bug #1:
>
> James> GCL bails out with an error when trying to compile f2cl-lib.lisp in the
> James> src/numerical directory. The simplest way to see the bug is simply to
> James> run gcl and type
> James> (compile-file "f2cl-lib.lisp")
>
> James> Here is what happens:
>
> James> ---------------------------------------
> >> (compile-file "f2cl-lib.lisp")
>
> James> Compiling f2cl-lib.lisp.
> James> ; (DEFUN COL-MAJOR-INDEX ...) is being compiled.
> James> ;; The variable HI is undefined.
> James> ;; The compiler will assume this variable is a global.
> James> ;; The variable LO is undefined.
> James> ;; The compiler will assume this variable is a global.
>
> Could these errors be caused by a non-functional destructuring-bind?
> HI and LO are defined there and are used.
>
> Perhaps the numerical stuff in maxima.system should be moved later,
> after ellipt.lisp is loaded, which contains destructuring-bind for
> gcl?
>
> Alternatively, perhaps we should remove destructuring-bind from
> ellipt.lisp, stuff it in, say, gcl-hacks.lisp, update/conditionalize
> maxima.system appropriately, and load gcl-hacks early. Maybe include
> an ANSI loop function as well in gcl-hacks? I think I have one.
I think this is the right approach. Actually, I think we should have a
gcl-hacks module.
An aside: The current cvs gcl has destructuring bind, but it's in the
"USER" package!
> James> ; (DEFUN IFIX ...) is being compiled.
> James> ;; Warning: INT (in lisp package) is called as a function--not yet
> James> defined
> James> ; (DEFUN IDFIX ...) is being compiled.
> James> ;; Warning: INT (in lisp package) is called as a function--not yet
> James> defined
> James> ; (DEFUN MAX1 ...) is being compiled.
> James> ;; Warning: INT (in lisp package) is called as a function--not yet
> James> defined
>
> This looks wrong since INT is defined before these functions.
>
> James> Warning: The declaration specifier INTEGER4 is unknown.
>
> This seems wrong. gcl doesn't understand deftype's maybe?
>
> James> ; (DEFUN PROCESS-IMPLIED-DO ...) is being compiled.
> James> ;; The variable START is undefined.
> James> ;; The compiler will assume this variable is a global.
> James> ;; The variable END is undefined.
> James> ;; The compiler will assume this variable is a global.
> James> ;; The variable &OPTIONAL is undefined.
> James> ;; The compiler will assume this variable is a global.
> James> ;; The variable STEP is undefined.
> James> ;; The compiler will assume this variable is a global.
> James> ;; The variable INDEX-VAR is undefined.
> James> ;; The compiler will assume this variable is a global.
> James> ;; The variable DATA-VARS is undefined.
> James> ;; The compiler will assume this variable is a global.
>
> Broken destructuring-bind?
>
> James> ; (DEFUN EXECUTE-FORMAT ...) is being compiled.
> James> ;; The variable WHILE is undefined.
> James> ;; The compiler will assume this variable is a global.
> James> ;; The variable DO is undefined.
> James> ;; The compiler will assume this variable is a global.
>
> Missing ANSI loop?
>
> James> ; (DEFUN D1MACH ...) is being compiled.
> James> ;; The variable LEAST-POSITIVE-NORMALIZED-DOUBLE-FLOAT is undefined.
> James> ;; The compiler will assume this variable is a global.
> James> ; (DEFUN R1MACH ...) is being compiled.
> James> ;; The variable LEAST-POSITIVE-NORMALIZED-SINGLE-FLOAT is undefined.
> James> ;; The compiler will assume this variable is a global.
> James> End of Pass 1.
>
> I guess gcl is missing these. Could use
> least-positive-{double,single}-float for these.
>
> James> ; (DEFUN LUN->STREAM ...) is being compiled.
> James> ;; Warning: LUN->STREAM is proclaimed but not in *inline-functions*
>
> No idea what this means. Maybe the declaim for lun->stream can be
> removed? Not sure why that's there anymore.
Actually, I already know the proclaims/declaims are screwed up. One more
thing that should be fixed.
--Jim