[Gcl-devel] Re: [Maxima] Bugs in gcl cause maxima build failures
Subject: [Gcl-devel] Re: [Maxima] Bugs in gcl cause maxima build failures
From: Camm Maguire
Date: 21 May 2002 15:22:31 -0400
Greetings!
James Amundson <amundson@users.sourceforge.net> writes:
> 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.
>
OK, this should be cleared now.
> I think this is the right approach. Actually, I think we should have a
> gcl-hacks module.
>
Please keep the gcl-list abreast of these hacks! Probably all need to
find there way into gcl at some point.
> 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.
> >
I agree. Am looking into this. Could this be a namespace collision?
My very primitve lisp knowledge would indicate that an 'export'
statement would only be needed were (int to be invoked outside the
file.
> > James> Warning: The declaration specifier INTEGER4 is unknown.
> >
> > This seems wrong. gcl doesn't understand deftype's maybe?
> >
I agree. Am investigating.
> > 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?
Should be cleared now.
> >
> > 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?
> >
Should be cleared now.
> > 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.
OK, I'll add these to the missing features list.
> >
> > 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.
>
Could someone please clarify the proclaims/declaims issue here? What
is the purpose of *inline-functions*? Is this variable supposed to be
modified in f2cl-lib.lsp before defining this function in this way?
If someone is really kind, maybe they could even throw in a sentence
on the meaning of the -> syntax -- is it as in C?
Also, can this f2cl-lib be used to generate a blas interface as well?
Would a blas.o providing a gcl lisp interface into the blas (when
fasloaded) properly belong in the gcl package, or as a separate
add-on? I'm a bit confused on what is expected to be included in a
lisp system -- for example, some windowing hooks appear to be
expected, whereas they certainly don't ship with compilers of other
languages, like gcc.
Take care,
> --Jim
>
>
> _______________________________________________
> Gcl-devel mailing list
> Gcl-devel@gnu.org
> http://mail.gnu.org/mailman/listinfo/gcl-devel
>
>
--
Camm Maguire camm@enhanced.com
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah