This is the mail archive of the kawa@sourceware.org mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Problem in loading a system in Kawa 1.8


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]