My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
CommandLine  
Manipulating Pharo from the command-line.
Updated Sep 6, 2009 by damien.c...@gmail.com

Command-line Scripts with a Headless Pharo

For some tasks like benchmarking and automated testing, an integration with other tools comes in handy. For such use cases, Pharo can be used headless, i.e., without its graphical user interface.

This brief tutorial will demonstrate how to use the Debian Language Shootout benchmarks with a fresh Pharo image.

Step 1: Setup Pharo and a Fresh Image

  • download a Pharo image, the sources file, and a VM from the
  • download page
  • extract all archives in the same folder
  • start Pharo, from the commandline, on a MacOSX it should look

like this:

       "Squeak 4.2.1beta1U.app/Contents/MacOS/Squeak VM Opt" \
          pharo1.0-10418-BETAdev09.08.3.image

Step 2: Load OSProcess

For output on the shell, we need an extra package from the SqueakSource repository.

It can be loaded by simply executing the following code in a workspace window:

ScriptLoader loadLatestPackage: 'OSProcess' from:
'http://www.squeaksource.com/OSProcess'

To execute this code snippet, select it and press cmd+d or use the "do it" item in the context menu.

Step 3: Load Common Benchmark Code

Now we can load the common parts of all shootout benchmarks into our image.

] and save it to a file called common.st.

  • Open the file browser from the Menu -> Tools -> File Browser.
  • Select common.st and press filein to load the code.

Now you can close all windows in your image and save and quit it.

Step 4: Run a Benchmark

]

  • Save it to a file named like fannkuch.st
  • Add a run script to the end of the code in fannkuch.st, like
this:

    Tests fannkuch.
    SmalltalkImage current snapshot: false andQuit: true.
  • Run it with a headless Pharo:
  •     "Squeak 4.2.1beta1U.app/Contents/MacOS/Squeak VM Opt" \
            -headless pharo1.0-10418-BETAdev09.08.3.image \
            $PWD/fannkuch.st 6
Comment by andrew.p...@gmail.com, Aug 4, 2011

Could someone package this as an installer (MSI, DMG, DEB), or better yet, include this as part of the normal Pharo installation process? The CLI program could be called "pharo".


Sign in to add a comment
Powered by Google Project Hosting