Re: [OpenSmalltalk/opensmalltalk-vm] CogVM source as per VMMaker.oscog-eem.2244 (f54456f)

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Re: [OpenSmalltalk/opensmalltalk-vm] CogVM source as per VMMaker.oscog-eem.2244 (f54456f)

Eliot Miranda-2
Hi Kevin,

On Jun 22, 2017, at 6:12 AM, Kevin Driedger <[hidden email]> wrote:

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.

<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":"","avatar_image_url":"","action":{"name":"Open in GitHub","url":""}},"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":""}}}</script>