This is the mail archive of the mailing list for the Kawa project. See the Kawa home page for more information.

[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index] [Subject Index] [Author Index] [Thread Index]

Re: another macro problem

> 1. I fixed the problem with AWT/Swing methods: in general, if class <A>
> defines method m, and class <B> inherits from A,
> primitive-virtual-method must be called with <A> and "m", not <B> and
> "m" (this is maybe obvious, but I thought it didn't matter as long as
> m was visible in class <B>).

There are two sets of methods Kawa can use (I may have this backwards):
java.lang.Class.getMethod(s) - returns public methods in the given class
	*or* its ancestors.
java.lang.Class.getDeclaredMethod(s) - returns all methods in the
	given class *only*.

One of the patches I sent switched this.  Using both methods, or explicitly
searching back htrough the base classes seems undesirable, though it is
an option.

> 2. I tried with a functional version of `toplevel' instead of the
> macro one; I also tried with `define-syntax' instead of `defmacro' but
> without success.

define-syntax is preferable.  Since it is a data structure, it can
be used in the same compilation using with less trouble.  (Though all
of this needs to be re-done ...)

> 3. Just to repeat, if I type in Kawa's top repl something close to the
> expansion of a call to `toplevel' (the only difference is that I used
> global definitions instead of a `let*'), it works.

This is not really clear.  Send me an explicit testcase including
instructions on how to reproduce the problem, and I can try it.
(You sent me something earlier, but it seems like it might have changed.)

	--Per Bothner
Cygnus Solutions