[pypy-dev] CLI code generation
anto.cuni at gmail.com
Mon Mar 20 21:33:59 CET 2006
Hi Carl, hi Holger, hi all
Carl Friedrich Bolz wrote:
> First of all: would you like to have your code live in the "official" pypy-dist directory (Holger proposed using your user directory)? If yes that would mean that you had to agree to license your code under the MIT License (and to promise to follow the coding-guide and to write tests :-). That would mean that much more people would see what you are doing and could provide you with pointers about possible improvements. The most appropriate place for a cli backend would probably be pypy-dist/translator/cli
Yes, I like: the license is not a problem, I'm already following the
coding-guide and I've just begun writing tests... :-)
About the directory, at the moment I'm writing my code just in
pypy-dist/translator/cli, so I wouldn't need even to rearrange my imports.
I try to respond here to this question and to the other ones that are
scattered in many messages of the thread.
Although the IL is an assembler language it is fairly a high level one:
it can contains class definitions with field definitions, instance
methods, static methods and so on, so I decided to adopt the
ootypesystem: I hope to be able to translate rpython classes directly
into CLI classes, thus allowing those to interoperate.
I have not yet studied the ootypesystem in details, so by now I can't
say if it is tailored for CLI object model: if it's not I think the best
thing is to extend the ootypesystem to introduce additional features, if
it's not a problem; this should simplify the writing of future backends
with object models similar to the CLI's one, such as Java.
Since I decided to use the ootypesystem I started from gensqueak, but
now the code looks very different, because of smalltalk and CLI are two
very different targets; the most interesting thing I borrowed from
gensqueak (and genjs) is the test-model, with a class that wraps the
compiled executable and behave like a normal python function, thus
simplifying the testing; by now it only supports integer arguments, but
it's not a problem since the generator can generate only integer
I hope I've answered to all pending questions...
More information about the Pypy-dev