This is the mail archive of the kawa@sources.redhat.com 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]

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





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