"phiho.hoang" phiho.hoang@home.com is widely believed to have written:
After some discussion with Andreas (off line) and reading the Plugin Swiki (pointer from Andreas) http://minnow.cc.gatech.edu/squeak/1448,
I just updated this a tiny bit to correct the description of the unix socket polling hook.
I think I have a proposal for _another_ simple, uniform and right (hopefully, with help from all interested in the VM ;-) way to create a _really_ minimal VM and to handle the plugins.
If you want a _really_ minimal vm, there aren't many things left to move out into plugins:-
window/os stuff - ie what is typically in sq{plat}Window.c A lot of it could be in a plugin I suspect. the interpreter - since the jitter is a plugin, maybe the plain interpreter ought to be, so you can hook to whichever one is there. the object memory - probably quite a project to separate out from the plain interpreter, but potentially worthwhile since you could then implement a different model if you need, say, transaction rollback semantics or whatever.
On my Acorn, the core vm consists of interp.c, window.c, event.c, argumnenhandling.c and externalprims.c and is 128kb with an inlined interp.c which is quite reasonable. It's also 10% faster than aving everything builtin.
One remaining little appendix that couldbe removed someday soon is the pair of vm tables that translate the obsolete indexed and named primitives. There might be 10kb to remove I guess.
tim
squeak-dev@lists.squeakfoundation.org