Great Work..!! On Mon, May 15, 2017 at 1:01 PM, Zak Fenton <[email protected]> wrote:
> Hi folks. I posted earlier in squeak-dev about a Smalltalk implementation > I've been working on. The first post was a bit unwieldy, but there was at > least some interest so I'm posting an update to vm-dev and pharo-dev. > > > Main strong points are that it's embeddable (like Lua or SQLite) and > scalable (like Erlang). There are weak points too, of course (e.g. hot loop > performance will be much worse than Squeak/Pharo at this point). > > > The VM itself is pure C and has no dependencies apart from libc and libm. > It doesn't require a filesystem (you can pipe VM images through custom > stream implementations or arrays) and it should run well in tight (~1MB) > memory situations. > > > The extension system is similar to the Unix system call and virtual > filesystem APIs, so it's kind-of object oriented but in a very "C" way. All > extension resources are managed properly (so the system can clean up safely > and/or warn you if you allocate memory and don't deallocate it, for > example). > > > Extensions are available for cells (threads/individual VMs), shared memory > (so different cells can communicate efficiently - but also with memory > protection and calling features for implementing domain-specific JIT > compilers), windowing and event handling (based on SDL2) and 2D graphics > rendering (based on Cairo). There are some higher-level libraries (stylable > GUI system, tight OS integration, 3D modelling, etc.). > > > It's polished in some ways (there's a test suite, an integrated help > system, colour shell, etc.), but it needs a lot more refinement in others > (the current GUI style is terrible, it needs more documentation, there's > only minimal support for keyboard entry, no networking library, etc.). > > > I'd like to release it (ideally as 100% public domain/CC0), but I don't > want to do so without some way of funding development. The project promises > a lot and I want to actually deliver with some ongoing updates and support > (and being able to pay rent next week would also be a plus), so I'm not > interested in just dumping it on GitHub and calling it a day. > > > So I'm open to any suggestions as to how to fund this project at least in > the short term and how it might fit into the wider Squeak/Pharo/Smalltalk > ecosystems, as well as any technical criticism relating to the > implementation itself. > > > I've put together a basic website describing the implementation in a bit > more detail (sorry, no downloads yet): http://a4vm.info/ > > > -Zak. >
