|
From: | Jamison Hope |
Subject: | Re: [Kawa-commonlisp-dev] [GSoC] Status |
Date: | Thu, 9 Aug 2012 02:30:17 -0400 |
On Aug 8, 2012, at 2:42 PM, Charles Turner wrote:
On 6 August 2012 21:53, Jamison Hope <address@hidden> wrote:Does that loadClass line need to be there at all, or could we just havesome lines like defSntxStFld("destructuring-bind", "gnu.commonlisp.lisp.defmacro"); instead? My understanding of how those things work is this: - loadClass() immediately loads everything in the file- def*Fld() doesn't load anything yet, it just lazily says where to find thefunction/macro later; it gets loaded as if by (import (only (class name) function-name)) the first time the function is referenced.I'm not having much success with this. I've uploaded my latest changes to my repository (it probably won't build, and it does, not symbols will be accessible...). Does the def*Fld stuff rely on names being module-export'd? That's the only difference I see much significance in between the CL and Scheme libraries. The files I'm concentrating on are: gnu/commonlisp/lang/CommonLisp.java gnu/commonlisp/lisp/*.lisp ; files from which I am trying to def*Fld
The def*StFld stuff relies on the named fields being public and static. module-export causes the named definitions to be public (and all others private), but the default when there's no module-export declaration is for all definitions to be public. So you should be OK there. (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 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.) -- Jamison Hope The PTR Group www.theptrgroup.com
[Prev in Thread] | Current Thread | [Next in Thread] |