[Vm-dev] [commit][2974] Fix some slips in the README.

commits at squeakvm.org commits at squeakvm.org
Tue Jun 10 23:45:52 UTC 2014


Revision: 2974
Author:   eliot
Date:     2014-06-10 16:45:49 -0700 (Tue, 10 Jun 2014)
Log Message:
-----------
Fix some slips in the README.  The UUIDPlugin is external in the linux Squeak
VMs.  Clear up the confusion in the Squeak STack linux builds.

Modified Paths:
--------------
    branches/Cog/README
    branches/Cog/build.linux32x86/squeak.stack.spur/build/plugins.int
    branches/Cog/build.linux32x86/squeak.stack.spur/build.assert/plugins.int
    branches/Cog/build.linux32x86/squeak.stack.spur/build.debug/plugins.int
    branches/Cog/build.linux32x86/squeak.stack.v3/build/plugins.int
    branches/Cog/build.linux32x86/squeak.stack.v3/build.assert/plugins.int
    branches/Cog/build.linux32x86/squeak.stack.v3/build.debug/plugins.int

Modified: branches/Cog/README
===================================================================
--- branches/Cog/README	2014-06-10 22:59:41 UTC (rev 2973)
+++ branches/Cog/README	2014-06-10 23:45:49 UTC (rev 2974)
@@ -12,14 +12,13 @@
 
 Overview
 --------
-
 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 soures and compiled via a C compiler to obtain a fast production VM.
+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.
@@ -35,34 +34,36 @@
 Another distinction is between Stack, Cog and Sista VMs.  Stack VMs are those
 with context-to-stack mapping that optimise message sending by keeping method
 activations on a stack instead of in contexts.  These are pure interpreters but
-significantly faster than the standard context-based Interpreter VM.  Cog VMs
-add a JIT to the mix, compiling methods used more than once to maxchine code on
-the fly.  Sista VMs, as yet unrealised and in development, add support for
+are significantly faster than the standard context-based Interpreter VM.  Cog
+VMs add a JIT to the mix, compiling methods used more than once to machine code
+on the fly.  Sista VMs, as yet unrealised and in development, add support for
 adaptive optimization that does speculative inlining at the bytecode-to-bytecode
-level.  These are targeted for release in 2015.
+level.  These are under development and targeted for release in 2015.
 
 Another distinction is between "v3" VMs and Spur VMs.  "v3" is the original
 object representation for Squeak as described in the back-to-the-future paper.
 Spur, as described on the www.mirandabanda.org blog, is a faster object
 representation which uses generation scavenging, lazy forwarding for fast
-become, and a single object header format common to 32 and 64 bit versions.
+become, a single object header format common to 32 and 64 bit versions, and a
+segmented heap that can grow and shrink, releasign memory back to the host OS.
 
 Another distinction is between normal single-threaded VMs that schedule "green"
-Smalltalk processes above a single-threaded VM, and "multi-threaded" VMs that
-share the VM between any number of native threads such that only one native
-thread owns the VM at any one time, switching between threads on FFI calls and
-callbacks or on Smalltalk process switches when Smalltalk processes are owned
-by threads.  This multi-threaded support is as yet experimental.
+Smalltalk light-weight processes above a single-threaded VM, and multi-threaded
+VMs that share the VM between any number of native threads such that only one
+native thread owns the VM at any one time, switching between threads on FFI
+calls and callbacks or on Smalltalk process switches when Smalltalk processes
+are owned by threads.  This architecture offers non-blocking FFI calls and
+interoperability with multiple native threads, but does /not/ provide true
+concurrency.  This multi-threaded support is as yet experimental.
 
 
 VM source directories
 ---------------------
-
-Slang output of various VMs are kept in "vm source" directories.  These sources
-define the core VM (the Smalltalk execution engine and memory manager), and a
-substantial set of "plugins" that provide interfaces to various external
-facilities via Smalltalk primitive methods.  Each vm source directory is
-specific to a particular VM, be it Squeak Cog Spur, or Newspeak Stack, etc.
+The Slang output of the various VMs are kept in "vm source" directories.  These
+C sources define the core VM (the Smalltalk execution engine and the memory
+manager), and a substantial set of "plugins" that provide interfaces to various
+external facilities via Smalltalk primitive methods.  Each vm source directory
+is specific to a particular VM, be it Squeak Cog Spur, or Newspeak Stack, etc.
 The plugins can be shared between VMs, choosing the set of plugins to include
 in a VM at build time.
 
@@ -90,7 +91,22 @@
 as-yet-unimplemented in Cog but that was available on the old context-based
 Newspeak interpreter VM.
 
+Each vm source directory contains several files, a subset of the following:
+	cogit.c				- the JIT; a Cogit cooperates with a CoInterpreter
+	cogit.h				- the Cogit's API, as used by the CoInterpreter
+	cogmethod.h			- the structure of a CogMethod, the output of the Cogit
+	cointerp.c			- the CoInterpreter's source file
+	cointerp.h			- the API of the CoInterpreter, as used by the Cogit
+	cointerpmt.c		- the multi-threaded CoInterpreterMT's source file
+	cointerpmt.h		- the API of the CoInterpreterMT, as used by the Cogit
+	gcc3x-cointerp.c	- cointerp.c massaged to interpret faster if using gcc
+	gcc3x-cointerpmt.c	- ditto for cointerpmt.c
+	gcc3x-interp.c		- ditto for interp.c
+	interp.c			- the StackInterpreter's source file
+	interp.h			- defines for the VM configuration, word size, etc
+	vmCallback.h		- the structure of the VM's VMCallbackContext
 
+
 Platform build directories
 --------------------------
 Build directories are in flux.  Currently there exist some old build directories

Modified: branches/Cog/build.linux32x86/squeak.stack.spur/build/plugins.int
===================================================================
--- branches/Cog/build.linux32x86/squeak.stack.spur/build/plugins.int	2014-06-10 22:59:41 UTC (rev 2973)
+++ branches/Cog/build.linux32x86/squeak.stack.spur/build/plugins.int	2014-06-10 23:45:49 UTC (rev 2974)
@@ -21,6 +21,5 @@
 SecurityPlugin \
 SocketPlugin \
 SurfacePlugin \
-UUIDPlugin \
 UnixOSProcessPlugin \
 VMProfileLinuxSupportPlugin

Modified: branches/Cog/build.linux32x86/squeak.stack.spur/build.assert/plugins.int
===================================================================
--- branches/Cog/build.linux32x86/squeak.stack.spur/build.assert/plugins.int	2014-06-10 22:59:41 UTC (rev 2973)
+++ branches/Cog/build.linux32x86/squeak.stack.spur/build.assert/plugins.int	2014-06-10 23:45:49 UTC (rev 2974)
@@ -21,6 +21,5 @@
 SecurityPlugin \
 SocketPlugin \
 SurfacePlugin \
-UUIDPlugin \
 UnixOSProcessPlugin \
 VMProfileLinuxSupportPlugin

Modified: branches/Cog/build.linux32x86/squeak.stack.spur/build.debug/plugins.int
===================================================================
--- branches/Cog/build.linux32x86/squeak.stack.spur/build.debug/plugins.int	2014-06-10 22:59:41 UTC (rev 2973)
+++ branches/Cog/build.linux32x86/squeak.stack.spur/build.debug/plugins.int	2014-06-10 23:45:49 UTC (rev 2974)
@@ -21,6 +21,5 @@
 SecurityPlugin \
 SocketPlugin \
 SurfacePlugin \
-UUIDPlugin \
 UnixOSProcessPlugin \
 VMProfileLinuxSupportPlugin

Modified: branches/Cog/build.linux32x86/squeak.stack.v3/build/plugins.int
===================================================================
--- branches/Cog/build.linux32x86/squeak.stack.v3/build/plugins.int	2014-06-10 22:59:41 UTC (rev 2973)
+++ branches/Cog/build.linux32x86/squeak.stack.v3/build/plugins.int	2014-06-10 23:45:49 UTC (rev 2974)
@@ -21,6 +21,5 @@
 SecurityPlugin \
 SocketPlugin \
 SurfacePlugin \
-UUIDPlugin \
 UnixOSProcessPlugin \
 VMProfileLinuxSupportPlugin

Modified: branches/Cog/build.linux32x86/squeak.stack.v3/build.assert/plugins.int
===================================================================
--- branches/Cog/build.linux32x86/squeak.stack.v3/build.assert/plugins.int	2014-06-10 22:59:41 UTC (rev 2973)
+++ branches/Cog/build.linux32x86/squeak.stack.v3/build.assert/plugins.int	2014-06-10 23:45:49 UTC (rev 2974)
@@ -21,6 +21,5 @@
 SecurityPlugin \
 SocketPlugin \
 SurfacePlugin \
-UUIDPlugin \
 UnixOSProcessPlugin \
 VMProfileLinuxSupportPlugin

Modified: branches/Cog/build.linux32x86/squeak.stack.v3/build.debug/plugins.int
===================================================================
--- branches/Cog/build.linux32x86/squeak.stack.v3/build.debug/plugins.int	2014-06-10 22:59:41 UTC (rev 2973)
+++ branches/Cog/build.linux32x86/squeak.stack.v3/build.debug/plugins.int	2014-06-10 23:45:49 UTC (rev 2974)
@@ -21,6 +21,5 @@
 SecurityPlugin \
 SocketPlugin \
 SurfacePlugin \
-UUIDPlugin \
 UnixOSProcessPlugin \
 VMProfileLinuxSupportPlugin



More information about the Vm-dev mailing list