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