This is the mail archive of the
kawa@sourceware.org
mailing list for the Kawa project.
Problem in loading a system in Kawa 1.8
- From: "Seppo Törmä" <seppo dot torma at hut dot fi>
- To: kawa at sources dot redhat dot com
- Date: 10 Nov 2005 15:10:53 +0200
- Subject: Problem in loading a system in Kawa 1.8
- Gcc: nnfolder+archive:mail.2005-11
We have a large system implemented in Java and Scheme using Kawa. So
far we have been using Kawa 1.7 and would now like to switch to 1.8.
Each scheme file in our system defines a static module. The modules
are in several different java-packages. The main program is written
in Java. The constructor contains (essentially) the following lines
of code:
public Model(...) {
...
scheme = new Scheme();
scheme.registerEnvironment();
loadSchemeFiles(scheme);
bindModuleMethods();
graph = newGraph.apply1(name);
...
}
protected void loadSchemeFiles(Scheme scheme) {
...
loadOne(scheme, module);
...
}
protected void loadOne(Scheme scheme, String moduleName) {
kawa.standard.load.loadClassFile(moduleName, scheme.getEnvironment());
}
protected void bindModuleMethods() throws Throwable {
newGraph = getBinding("new-graph");
addPresentation = getBinding("layout-add-presentation");
callInputAction = getBinding("call-input-action");
...
}
protected ModuleMethod getBinding(String name) {
return (ModuleMethod)scheme.eval(name, scheme.getEnvironment());
}
In one of the Scheme-files we got the following code:
(module-name <tge.model.scm.base.Graph>)
(module-static 'init-run)
...
(define (new-graph name)
(let* ((name (make-canonic-name name))
(graph (make-graph name ...)))
...
graph))
The function make-canonic-name is defined in another file (belonging
to another module).
In Kawa 1.7 this works fine. In Kawa 1.8 the call to above-defined
function new-graph (i.e., from Java to Scheme) works fine. However,
the first Scheme->Scheme call (in this case, to Scheme function
make-canonic-name) produces an error:
gnu.mapping.UnboundLocationException: unbound location make-canonic-name
Are we making some simple error in loading the system? Are there some
changes in 1.8 that affect the way the system should be defined or
loaded.
Seppo