This is the mail archive of the
kawa@sources.redhat.com
mailing list for the Kawa project.
Bindings
- From: "Alexandre Lemaire" <rm1x at rogers dot com>
- To: <kawa at sources dot redhat dot com>
- Date: Mon, 14 Jul 2003 00:30:40 -0400
- Subject: Bindings
Hello,
Here's a second perhaps simpler attempt at a first question. Its answer
is very important to me and I'd appreciate any help whatsoever!
Consider the following scheme code:
"(define (addme a b) (+ a b)) (addme 52 0)"
If we sharply follow it the Kawa environment, it gets to:
gnu.mapping.CallContext.runUntilDone() --> proc.apply( this )
Following this, my debugger reports as follows:
atEvalLevel.apply( gnu.mapping.CallContext) line: 1
atEvalLevel.addme( java.lang.Object, java.lang.Object,
java.lang.Object) line: 1
and I can then follow it again normally as it resumes in existing java
classes as:
gnu.kawa.functions.AddOp( gnu.mapping.ProcedureN).apply2(
java.lang.Object, java.lang.Object) line: 33
gnu.kawa.functions.AddOp.applyN( java.lang.Object[]) line:88
Here's my question: where can I manually follow the activity after
proc.apply( this ) in runUntilDone() that it becomes an AddOp class out of
the blue? I'm guessing it's done at the Scheme level, but my debugger
cannot resolve atEvalLevel as a class (which I'm assuming is indication that
we're at the Scheme level at this point) and so any hints granted to me by
the usual tools just aren't there.
WHERE does addme become a class method of its atEvalLevel? and WHERE
does it manipulate its variable names ( a b ) and incoming values ( 52 0 )
and decide that a = 52 and b = 0?
Help appreciated.
Alex