Patches for new developers (vs 1.12)

Jeremy Monin <[email protected]> Sun, 4 Dec 2005 14:30:53 -0500 (EST)
Newsgroups gmane.comp.java.vm.sablevm.devel
Message-ID <Pine.LNX.4.44.0512041408380.17262-100000@localhost>
Hi folks,

I downloaded SableVM earlier this year and using it for a project.  As a 
new developer, there were a few aspects that I found only after some debug 
prints and looking around the code.

In the hopes of making life easier for other people learning SableVM, I've
put together some patches to add comments here and there, and also improve
how SableVM behaves under "experimental" conditions (assertions on, maybe
problems with some bytecodes or resolution of class or method names).

The patches are at http://www.firevm.net/patches-1.12/ (individually and 
as one tar.gz) and are summarized below.

If there's a better preferred format for patches, please let me know.

Thanks for listening!


# p1-excep-descr 19k
(Robustness) Print minimal information when an exception is thrown, 
instead of infinite recursion, when class/method resolution is broken.

# p2-typeinfo-notes 2k
(Docs) Comments describing the relation between type_info_struct, 
class_info_struct, and array_info_struct, and clarifying array struct 
fields, and their setup.

# p3-prepcode-notes 1k
(Docs) Comments noting when prepare bytecodes are seen; reminder note 
about "skip slot filled by resolve".

# p4-debug-argtype 13k
(Performance) Improve performance with assertions on, by placing the 
expensive type-checking / argument-checking asserts behind a new config.h 
define.

# p5-spelling 46k
(Docs) Correct minor typos (syncronized, preceed, accordignly).

# p6-use-get-field 7k
(Consistency) Change getfield / getstatic bytecodes to use inlined 
functions, as used in prepare_getfield / prepare_getstatic, instead of 
pointer arithmetic.

# p7-dref-super 1k
(Performance) Move DREF_SUPER check above loop body.

# p8-bytecode-len-assert 1k
(Debug) Improve assert check for bytecode length assumption mismatch; this 
patch prints the bytecode number which caused the problem, instead of just 
a generic assert failure. 


Please consider my patches for inclusion.

Many thanks,

Jeremy Monin
Open-source developer and sysadmin