title: On the Self Language, how do we run code on its VM?
body: <p>If Self is installed on Ubuntu using the file on <a href="http://selflanguage.org/" rel="nofollow">http://selflanguage.org/</a>, then we can use</p>
  
  <pre><code>$ Self
  Self Virtual Machine Version 4.1.13, Sat 20 Feb 10 22:39:48 Linux
  Copyright 1989-2003: The Self Group (type _Credits for credits)
  
  for I386:  LogVMMessages = true
  for I386:  PrintScriptName  = true
  for I386:  Inline = true
  for I386:  SICDeferUncommonBranches = false (not implemented)
  for I386:  SICReplaceOnStack = false (not implemented)
  for I386:  SaveOutgoingArgumentsOfPatchedFrames = true
  </code></pre>
  
  <p>However, some simple lines cannot be run:</p>
  
  <pre><code>VM# 'Hello, World!' print.
  A lookup error happened while sending the message
      print
  to
      'Hello, World!'.
  Subsequently, the lookup error message
      undefinedSelector:Receiver:Type:Delegatee:MethodHolder:Arguments:
  was sent to
      &lt;0&gt;,
  and was also not understood, causing the process to be aborted by the Self VM.
  
  #0 (&lt;error&gt;:1): print = ( | self* = 'Hello, World!'. delegatee = nil. selector = 'print'. | 
  "undefined selector error;
  this method was automatically generated by the VM."
   )
  
  
  #1 (&lt;stdin&gt;:1): &lt;top level expr&gt; = ( | self* = lobby. | 'Hello, World!' print )
  </code></pre>
  
  <p>Or another one to try out the slots:</p>
  
  <pre><code>VM# _AddSlots: (| vehicle &lt;- (|parent* = traits clonable|) |).
  A lookup error happened while sending the message
      traits
  to
      lobby.
  Subsequently, the lookup error message
      undefinedSelector:Receiver:Type:Delegatee:MethodHolder:Arguments:
  was sent to
      &lt;0&gt;,
  and was also not understood, causing the process to be aborted by the Self VM.
  
  #0 (&lt;error&gt;:1): traits = ( | self* = lobby. delegatee = nil. selector = 'traits'. | 
  "undefined selector error;
  this method was automatically generated by the VM."
   )
  
  
  #1 (&lt;stdin&gt;:1): &lt;top level expr&gt; = ( | self* = lobby. | traits clonable )
  
  
                               ^
  Self VM error: couldn't construct object literal on line 1, character 30
                 ^
  Self VM error: couldn't construct object literal on line 1, character 16
  VM#
  </code></pre>
  
  <p>Does someone know how to make it work?</p>