Please read more about VMMaker at [http://wiki.squeak.org/squeak/2105]. Here, I assume reader already read about [[VS SqueakVM 3.10]]. Otherwise, please get a copy of [http://www.squeakvm.org/win32/release/SqueakVM-Win32-3.10.7-src.zip SqueakVM Win32-3.10.7 source]. There will be a directory named ''platforms'', which is vital to generating C code from VMMaker. Parent of ''platforms'' will be "root-dir" in this document. Eg, in my case, I have "C:\Smalltalk\Squeak\3.10\demo\VS2008\platforms". =Setup= #Get Squeak 3.10 start-up with a 3.10 image. For instance, ''SqueakVM-Win32-3.10.7'' with a ''Squeak3.10.1-7175-basic.image''. #Drag a ''Package Loader (SqueakMap)'' from Tools tab on the right-top corner. Search for ''VMMaker'' in the search field on the top left field. Right-click on ''VMMaker'' and select install. Click on yes/proceed on messages pop up/warning prompt. The installation might take some time. #Close the ''Package Loader'' window and drag a ''Browser'' from Tool tab. Search for ''VMMaker'' and select ''VMMaker-Building -> Win32VMMaker''. Right-Click on ''Win32VMMaker'' and select remove class. Click yes on prompt. #Drag a ''File List'' from Tools tab. Go to "root-dir\platforms\win32\build" directory, find for ''Win32VMMaker.st'' then click on file in. ''Win32VMMaker.st'' is one of many files in Squeak source release which we downloaded earlier in [[VS SqueakVM 3.10]]. Close ''File List''. #Double check. Now Win32VMMaker as subclass of VMMaker. =Generate= #In ''Workspace'', type this ''VMMakerTool openInWorld'', and ''do it''. #VMMaker UI show up. Fill in "root-dir\platforms" at ''Path to platform code''. Eg., in my case, I will fill in "C:\Smalltalk\Squeak\3.10\demo\VS2008\platforms". Fill in "root-dir\platforms\win32\build\src" at ''Path to generate sources''. #Now, choose plugins to be added to the SqueakVM you are about to build. Drag the plugin chosen from ''Plugins not built'' to either ''Internal plugins'' or ''External plugins''. #Next, click on either ''Entire'', ''Core+Internal'' or ''External'', depend on what do you want VMMaker to generate. **''Entire'': Generate entirely, Squeak VM and all plugins. Both internal and external.**''Core+Internal'': Generate only Squeak VM and all internal plugins.**''External'': Generate only external plugins. #Use ''Load'' and ''Save'' button to save and load desire VM configuration. This mean, remember what are the internal and external plugins to be build with a version of VM build. =Note= #If a plugin cannot be added to ''Internal Plugins'' or ''External Plugins'' panel, most likely, the path to platform files is not set properly. In other words, check the directory filled in at ''Path to platform code''. It should be the path to Squeak source downloaded (root-dir\platforms). #Check if source generate correctly into "root-dir\platforms\win32\build\src". If the directory is empty, check if directory correctly entered at ''Path to generated sources''.

From askoh.net wiki

Jump to: navigation, search

Contents

MethodContext & BlockContext

Index MethodContext BlockContext
0

1
2
3
4
5
6

Sender

InstructionPointer
StackPointer
Method
-
Receiver
TempFrameStart

Caller

InstructionPointer
StackPointer
BlockArgumentCount
InitialPointer
HomeContext
-

Object Header

CompiledMethod Header

header
literal frame

...

bytecodes

... ...

Special Objects

	0.NilObject 
	1.FalseObject 
	2.TrueObject 
	3.SchedulerAssociation 
	4.ClassBitmap 
	5.ClassInteger 
	6.ClassString 
	7.ClassArray 
	8."SmalltalkDictionary"  "Do not delete!"
	9.ClassFloat
	10.ClassMethodContext
	11.ClassBlockContext
	12.ClassPoint
	13.ClassLargePositiveInteger
	14.TheDisplay
	15.ClassMessage
	16.ClassCompiledMethod
	17.TheLowSpaceSemaphore
	18.ClassSemaphore
	19.ClassCharacter
	20.SelectorDoesNotUnderstand
	21.SelectorCannotReturn
	22.ProcessSignalingLowSpace "was TheInputSemaphore"
	23.SpecialSelectors
	24.CharacterTable
	25.SelectorMustBeBoolean
	26.ClassByteArray
	27.ClassProcess
	28.CompactClasses
	29.TheTimerSemaphore
	30.TheInterruptSemaphore
	34.SelectorCannotInterpret
	35.MethodContextProto
	37.BlockContextProto
	38.ExternalObjectsArray
	39.ClassPseudoContext
	40.ClassTranslatedMethod
	41.TheFinalizationSemaphore
	42.ClassLargeNegativeInteger

	43.ClassExternalAddress
	44.ClassExternalStructure
	45.ClassExternalData
	46.ClassExternalFunction
	47.ClassExternalLibrary

	48.SelectorAboutToReturn
	49.SelectorRunWithIn

Interpreter Simulator

  1. Download Squeak 3.9.1-full and SqueakVM 3.9.2. One with the image, and the other with Squeak.exe.
  2. Extract them into directory of your choice. Make sure image file and Squeak.exe are in same directory.
  3. Download four ChangeSets into current directory. (to correct interpreterSimulator)
    1. InterpreterSimulator-3.9-fixes.1.cs
    2. InterpreterSimulator-fixes.1.cs
    3. InterpreterSimulatorFixes-al.1.cs
    4. InterpreterSimulator-fixes-mtf.1.cs
  4. Open up Squeak.exe with image Squeak3.9.1-final-7075.image
  5. Load VMMaker package with SqueakMap Package Loader, find VMMaker and install. Click yes or proceed on any warning.
  6. Open File List, and find for the four ChangeSet files (*.cs). File in each of them.
  7. Open a workspace, write the following and doit.
    ObjectMemory initializeWithBytesToWord: Smalltalk wordSize
  8. Change the desktop color to something different.
  9. Save image as simulator.image.
  10. Copy the following, doit in workspace.
    (InterpreterSimulator new openOn: 'Squeak3.9.1-final-7075.image') test
  11. Wait with patient until interpreterSimulator shows up with image chosen.
Logs      

No matching items in log.

Views
Personal tools
Navigation
Toolbox