stéphane ducasse writes:
Hi brce
could you let us know the status of exupery? Do you know if people continued to work on the JIT in ST?
Hi Stef,
The status is this: the 0.03 release is nearly done, all I need to do is 1) decide what to do about this possible VM bug and 2) build some sars. The code is already on SqueakSource.
The 0.03 release is hopefully the last release that doesn't add any noticeably improvements. This one merely compiles all but a few bytecodes leaving just blocks, extended bytecodes, and stack duplicate. Blocks are left because they look similar to the multiple method problem. Extended bytecodes and stack duplicate are left because I'm lazy and they don't seem to add much compared the limit of only a single compiled method.
The next release will have one major new feature. The ability to have more than one compiled method at a time. This is basically a VM modification to support multiple compiled methods. I've already modified the VM to handle a single compiled method.
To handle multiple methods involves two distinct problems. First, handling calling multiple compiled methods which really amounts to a hash table lookup similar to normal method lookup. Second, recognising a compiled method when returning into it after it's called another method. It's the second case that is hard, a simple solution would involve creating a subclass of MethodContext for compiled methods that contained a pointer to the compiled code encoded as a SmallInteger to avoid GC nastiness. It gets a little more complex when the code cache gets flushed or an image gets saved and reloaded potentially leaving dangling pointers into the code cache. These cases are solvable but need a little though and probably a little discussion which is why that work is bundled into it's own release.
I don't know of any progress with the JIT in ST. There may have been some but not that I've heard of.
Oh, the best way to follow my progress is through my blog on SqueakPeople.
Bryce P.S 0.03 should be out in the next week or so. Not tonight, not with work in the morning. It really is just an exersize in getting working sars onto SqueakMap. I need sars to hold the .c files needed for some of the older tests. Hmm, a sar that has a Monticello package it, that is the problem, haven't thought about solving it yet, suspect it's easy.