kawa-commonlisp-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Kawa-commonlisp-dev] [GSoC] Status


From: Charles Turner
Subject: Re: [Kawa-commonlisp-dev] [GSoC] Status
Date: Thu, 09 Aug 2012 18:58:27 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120714 Thunderbird/14.0

On 09/08/12 07:30, Jamison Hope wrote:
(module-static #t) should be the default, too, but check that. Do
javap gnu.commonlisp.lisp.primitives (or whatever) and make sure that
the ModuleMethods are public static. If they aren't, try adding
--module-static or --module-static-run to the compile args to see
if that changes anything.

The output of javap claimed the ModuleMethod's were public static. I also tried compiling my primitives file with --module-static-run (just in case), but I experience the same problem.

The order of the definitions in the file may matter, as well -- try
making sure that you don't have any uses before definitions.

What kind of errors are you seeing? (As you suspected, your repo doesn't
quite build for me at the moment.)

I've cleaned up the repository, it should build without any problems now. I've tried to reduce the problem by commenting out most of the new def*Fld's in CommonLisp, this is what I've noticed:

* With all the def*Fld's commented out, I would get warnings when compiling the primitives.lisp files about LENGTH, GENSYM and SYMBOL-NAME being unbound, this made sense because their call sites were before their definitions (and hence the warnings would disappear compiling again, if loadClass(primitives) is not commented out). Adding def*Fld's for these three functions caused an error rather than a warning when building the primitives from scratch:

primitives.lisp:152:23: exception loading 'COMMON-LISP:SYMBOL-NAME' - no such class: gnu.commonlisp.lisp.primitives
[ and similar messages for the other two examples ]

* Once the primitives file is compiled and I use loadClass on it, everything appears to work fine, the names are bound from the REPL, etc.

* If you remove the loadClass("gnu.commonlisp.lisp.primitives") line after the primitives file has been compiled, no names appear to be bound from the REPL, for example, assuming this is uncommented in CommonLisp:

defProcStFld("gensym", "gnu.commonlisp.lisp.primitives");

Then from the REPL I see:

#|kawa:1|# #'gensym
/dev/stdin:1:3: warning - no declaration seen for COMMON-LISP:GENSYM
/dev/stdin:1:3: unbound location
    at gnu.kawa.reflect.FieldLocation.get(FieldLocation.java:200)
    at gnu.kawa.reflect.FieldLocation.get(FieldLocation.java:188)
    at gnu.mapping.PlainLocation.get(PlainLocation.java:21)
    at gnu.mapping.SharedLocation.get(SharedLocation.java:21)
    [ snipped ... ]

which is the same output as when the above defProcStFld(gensym..) is commented out, so it appears to do nothing at the moment.

Thanks for the help,
Charles.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]