This is the mail archive of the kawa@sourceware.cygnus.com 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: macro evaluation.



> I'm not sure if this is a bug in the DefMacro class or just my failure
> to understand how scheme macros work.

The latter.  Or if you prefer:  It's a limitation.

First, I am deprecating string literals to name types.  Instead of:
	"mpath.avalon.system.rmi.IRService"
I recommend:
	<mpath.avalon.system.rmi.IRService>

This is part of the effort to make types be first-class values.

Second, there is no evaluation at macro-expand-time, so you
can't use string-append.

I have thought about changing the primtive-XXX macros to be
actual functions.  That would require changing the format from:
	(primitive-static-method <CLASS> "NAME" <RTYPE> (<ATYPE1> ...))
to:
	(primitive-static-method <CLASS> "NAME" <RTYPE> <ATYPE1> ...)

A procedural interface would allow the <CLASS> to be computed
at run-time.

However, I want to have this be inlined to efficient bytecode
invocation whenever the returned method is known at compile time.
(Otherwise, the less efficient reflection feature is used.)
I'm not sure how much extra compiler cleverness that would require
- probably not very much, given recent changes I've made.

	--Per Bothner
Cygnus Solutions     bothner@cygnus.com     http://www.cygnus.com/~bothner