Hi Camm,
I am running GCL 2.6.7 CLtL1, installed via apt-get on ubuntu. If I write:
(defun foo (x)
"baz"
(declare (type integer x))
x))
Then this is accepted, and everything seems fine. For example, I can write
(documentation 'foo 'function) and "baz" is returned; similarly I can run (foo
3) and obtain 3 as expected. But if I try to compile foo, I get an error message:
Compiling gazonk6.lsp.
; (DEFUN FOO ...) is being compiled.
;;; The declaration (DECLARE (TYPE INTEGER X)) was found in a bad place.
No FASL generated.
Error: Cannot open the file NIL..
Fast links are on: do (si::use-fast-links nil) for debugging
Error signalled by LET.
Broken at LOAD. Type :H for Help.
If I switch the order of the declaration and the documentation string, the
problem goes away.
Maybe this is a bug. But, looking at the grammar for "defun" on the Common Lisp
Hyperspec, it seems like providing both documentation and declarations is
actually not allowed. How bizarre! Could this really be intentional?
For what it's worth, this error does not seem to occur on GCL 2.6.6, but does
occur on 2.7.0 ANSI.
Thanks,
Jared
_______________________________________________
Gcl-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gcl-devel