Hi Kevin,
Do you, @eliotmiranda , generate most of this code using VMMaker? Seems like the same change many times.
Yes (& not just me). The compilable source of the vm is made up of three components:
- the platform source, maintained by hand, written mostly in C, with some Objective-C and C++, provides the platform-specific support to allow the vm to run on real machines.
- the interpreter and JIT provide the execution engine, core language primitives and memory manager to execute Smalltalk (& Newspeak)
- the plugins (src/plugins) provide a wide variety of extensions to the vm (from FFI to OpenGL to (de)compresssion
The plugins, at least their surface primitives, and sometimes their algorithmic innards too, are written in Smalltalk
The vm itself is entirely written (& developed) in Smalltalk (actually a subset of Smalltalk called Slang).
These last two sets of sources are therefore translated automatically from Smalltalk/Slang to C. Whenever someone makes a change to the VMMaker.oscog package that necessitates new sources because by generated that person generates source and commits to opensmalltalk/vm. Since there are a variety of VMs:
(smalltalk vs newspeak)
* (interpreter vs cointerpreter+jit)
* (32 vs 64 bits)
* (V3 vs Spur object representations)
* (standard vs Sista vs Lowcode instruction sets)
a number of similar files are generated.
Cheers,
Eliot
<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/OpenSmalltalk/opensmalltalk-vm","title":"OpenSmalltalk/opensmalltalk-vm","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm"}},"updates":{"snippets":[{"icon":"PERSON","message":"@kdriedger on f54456f: Do you, @eliotmiranda , generate most of this code using VMMaker? Seems like the same change many times."}],"action":{"name":"View Commit","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/f54456fc05c1846bb7e553c6ff5fec9f700abdae#commitcomment-22702428"}}}</script>