[armedbear-devel] New branch: generic-class-file

Erik Huelsmann ehuels at gmail.com
Mon Jun 21 21:17:39 UTC 2010


Some of you know that I have been working on writing a new class file
generator. The new class file generator will be replacing the current
version which is strictly written for the current compiler. Due to
some of the limitations in the class file generator, I'm not even able
to change some patterns I'd like to change in it.

The new class file generator will allow much more general class file
content. It's the explicit intent to support any method type and
argument pattern. This goal will allow us to rewrite runtime-class to
use our own class writer.

The other purpose is to be able to generate more than two methods in a
class file: currently we only support 2 (<init> and one of 8
execute(...) methods). I'd like to be able to have many more; for
example I want to move initialization of 'final static' fields to
<clinit> to make 100% sure they are only initialized once. But that's
just one purpose. Another would be to support multiple &optional
parameters (but less than 8) without a need to call fastProcessArgs(),
but do it in a much more Java-like fashion by generating multiple
execute(...) methods. Each method calls the one with more parameters,
until all optionals (which were not provided) have been filled, like
this;


public LispObject execute() {
  return execute(default1);
}

public LispObject execute(LispObject arg1) {
  return execute(arg1, default2);
}

public LispObject execute(LispObject arg1, LispObject arg2) {
    .... do actual processing ...;
}


I'm creating a README on the branch to say the same, for anybody who
comes along but did not read this e-mail.


Bye,

Erik.




More information about the armedbear-devel mailing list