TruffleSqueak

Latest Release Slack Twitter Build Status Codacy Coverage License

A Squeak/Smalltalk VM and Polyglot Programming Environment for the GraalVM.

Getting Started

  1. Find the latest TruffleSqueak release and identify the supported version of GraalVM.
  2. Download the corresponding GraalVM for your platform.
  3. Use the GraalVM Updater to install the TruffleSqueak component for your platform:
$GRAALVM_HOME/bin/gu \
  -C https://raw.githubusercontent.com/hpi-swa/trufflesqueak/master/gu-catalog.properties \
  install smalltalk
  1. You should now be able to run TruffleSqueak:
$GRAALVM_HOME/bin/trufflesqueak

Community Support

If you have a question, need some help, or want to discuss a new feature, feel free to open an issue or join the #trufflesqueak channel on the GraalVM Slack.

Documentation

Documentation is available in docs/.

Development

Active development is done in the master branch. Please feel free to open a pull request if you'd like to contribute a bug-fix, documentation, or a new feature.

Building from Source

The mx tool is required to build TruffleSqueak. Running mx --dy /compiler build in TruffleSqueak's root directory checks out all dependencies and builds all JAR files for running and testing TruffleSqueak with the Graal compiler. It can also be used to run TruffleSqueak via the mx squeak command. As an example, mx --dy /compiler squeak path/to/a/squeaksmalltalk.image opens the image and enables the Graal compiler. Run mx squeak --help and mx --help to list all command-line flags you can run TruffleSqueak with.

Setting Up A New Development Environment

It is recommended to use Eclipse with the Eclipse Checkstyle Plugin for development.

  1. Run mx eclipseinit in TruffleSqueak's root directory to create all project files for Eclipse.
  2. Import all projects from the graal repository which mx should have already cloned into the parent directory of your TruffleSqueak checkout during the build process.
  3. Import all projects from TruffleSqueak's root directory.
  4. Run TruffleSqueakLauncher to start TruffleSqueak.

Contributing

Please report any issues here on GitHub and open pull requests if you'd like to contribute code or documentation.

Publications

To cite this work, please use the GraalSqueak paper presented at MPLR'19.

2019

2018

License

TruffleSqueak is released under the MIT license.