Last updated at 9:26 am UTC on 17 April 2017
The beginnings - but please not the end - of some documentation for the COG VM code.
Cog is a cross platform virtual machine designed for Squeak, Pharo, Cuis, and Newspeak.
Cog builds on the Squeak virtual machine adding
- a stack-to-register-mapping just-in-time compiler,
- aggressive in-line message cacheing and
- effective optimization of Smalltalk’s first-class activation records.
Cog is an evolution of the Squeak Back-to-the-future Smalltalk virtual machine that provides a number of different Smalltalk virtual machines. The VMs are developed in Smalltalk, using all the dynamic and reflective facilities of the Squeak/Pharo Smalltalk system. As such, developing in Cog is a delight. The Smalltalk framework comprising the various Cog VMs is translated into C by its Slang component to produce VM source that is combined with platform-specific support sources and compiled via a C compiler to obtain a fast production VM. This directory tree includes the output of Slang for various configurations of "Cog VM" and the associated platform support code, plus build directories that can be used to produce production VMs.
This directory tree also includes an instance of the Smalltalk Cog development system, suitable for developing the VM in Smalltalk, and for generating new VM sources.
http://fast.org.ar/live/wp-content/uploads/2016/11/Friday_16h00_Eliot_Miranda_Cog_in_Motion.pdf (FAST 2016)
More in the README of the opensmalltalk-vm repository. Their are different variants of the virtual machine.
Cog blog about Cog:
Cog is now the standard VM for Squeak, Pharo, Newspeak and Scratch on Raspberry Pi. Cog currently has back ends for x86, ARMv6, and x64 (x86_64), with a MIPSEL back-end in preparation. Squeak 5.0 uses Spur, while Pharo is currently transitioning to Spur for the upcoming Pharo 6 release. Spur provides both 32-bit and 64-bit support. Squeak 5.0 is available in either 32-bit or 64-bit versions.
PIC = Polymorphic Inline Cache