[SqF]Report of VI4 Project for Feb '02

Tim Rowledge tim at sumeru.stanford.edu
Fri Feb 1 23:15:16 UTC 2002


This is the initial report for the VI4 Project group.

Goal: This project is intended to gather together all the vm and vi
related changes that have been proposed and which require a different
image format.

Participants: So far I know of proposals from Anthony Hannan ,
Hans-Martin Mosner, Dan and myself. People affected very directly will
be all port maintainers.

Background: There are several proposals for changes covered within this project.

i) new compiled method format
The curent CompiledMethod class format is an ugly chimeric hybrid that
mixes oops and bytes in a manner that complicates the gc and other parts
of the vm, plus the lower levels of the image. A new format was proposed
some time ago and was generally agredd to offer enough benefits to be
desirable. the cost of changing the image format has heretofore
prevented actual adoption of the change.

ii) BlockClosures
For a long time Squeak has been lacking proper BlockClosures and at last
there is a proposed implementation to work with. Bugs are already being
swatted and it looks very promising.

iii) Two-bit oop tags
Hans Martin has suggested moving to two tag bits on OOPS in order to
allow more immediate classes. Currently the only really serious
candidate class is Character, but it does have advantages relating to
unicode and internationalisation. Other possibilities include short
floats, immediate small points and err.... well.

iv) cleanup some header fields 

v) clean out the primitive table
The current primitive table can theoretically be 2048 entries long which
is vastly more than is needed with named primitives. There is also a
translation table to go from the 'old' numbers to the new names; this
can be removed. The primitive can probably be reduced to 256 entries or
less, allowing a few bits to be saved in method headers. There are also
some primitives which are now redundant and should be put out to grass.

vi) plugin renaming
As has been observed, there are some plugins with names that are rather
unhelpful and the field would benefit from some tidying. Although this
is not strictly an image format issue, it does cause a break in image
compatability and therefore would be nice to get done at the same time.

Status: BlockClosures have been implemented and the changesets already
incorporate most of the altered CompiledMethod structure and method
header cleanup. 


Plans: Any further proposals for image format affecting changes are
needed as soon as possible; this is not something we want to do more
than once.
BlockClosure bugs are being addressed rapidly. 
Two-bit tags need to be considered soon.
Header field and primitive table alterations need implementation.

tim
Chairman, VI4 project
"Image, my dear, is simply _everything_""




More information about the Squeak-dev mailing list