RoarVM
Spec-Gtk
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
RoarVM
-
Smalltalk: An Entrepreneur’s Secret Weapon
You sound like talking about https://github.com/smarr/RoarVM
RoarVM, formerly known as the Renaissance Virtual Machine (RVM) is developed as part of a IBM Research project to investigate programming paradigms and languages for manycore systems of the future. Specifically, this VM is meant to support manycore systems with more than 1000 cores in the future.
-
Smalltalk-80 on Raspberry Pi: A Bare Metal Implementation
I wanted to keep the system as close to the original as possible, but some extensions such as increasing the available memory space and screen resolution would be nice even for the original system. It would also be interesting to implement the early ideas for a JIT compiler.
Starting with Squeak is probably the easier way if you want advanced features such as color or network connectivity - still, there might be some interesting ideas to improve the system. One idea I had was to accelerate the bitblit functions using the Raspberry Pi's GPU. Currently, crosstalk uses a simple framebuffer and the runtime has to convert all monochrome bitblit operations into color ones since the Raspberry GPU doesn't have a 1bpp mode.
Support for multiple cores (available in all but the most simple Raspberry Pis) would also be nice. Here, the Roar system (https://github.com/smarr/RoarVM) might be an interesting starting point.
Let's see if I can find some students who want to work on some of these tasks... but my students are nowadays rather interested in Rust and RISC V :) (though a port of crosstalk to the Allwinner D1/Nezha and related boards and JH7110/Vision Five 2 is on my to-do list).
-
On Learning Smalltalk
The 2008 RoarVM project allowed Squeak to run on a 56 core Tilera chip and was later ported to run on multiprocessor x86 machines:
https://stefan-marr.de/renaissance/
https://github.com/smarr/RoarVM
This was a research project so performance on a single core was poor compared to the official Squeak virtual machine, but it was an interesting exploration of the natural fit between objects/message passing and multiple cores.
- RoarVM – The Manycore SqueakVM
Spec-Gtk
-
On Learning Smalltalk
Pharo is bootstrapped, and its building process starts with a really minimal image (even the compiler is not included). It is possible to build custom images of any size. You need to take care of packages and dependencies, of course.
Pharo can make applications with a native look & feel - https://github.com/pharo-spec/Spec-Gtk.
Current Pharo has a very solid and powerful FFI, so using C libraries is easy.
What are some alternatives?
RaspberrySqueak - Bare metal Squeak for Raspberry Pi
gtoolkit - Glamorous Toolkit is the Moldable Development environment. It empowers you to make systems explainable through experiences tailored for each problem.
P3 - A lean and mean PostgreSQL client for Pharo
pharoRaylib - Pharo Smalltalk bindings for Raylib game library
taskit - TaskIt is a library that ease Process usage in Pharo. It provides abstractions to execute and synchronize concurrent tasks, and several pre-built mechanisms that are useful for many application developers.
crosstalk - Smalltalk-80 bare metal implementation for the Raspberry Pi
squeaker - Like Docker, but for Squeak. You know, for kids.
pharo - Pharo is a dynamic reflective pure object-oriented language supporting live programming inspired by Smalltalk.