A Squeak/Smalltalk implementation for the GraalVM.
- Find the latest GraalSqueak release and identify the supported version of GraalVM.
- Download the corresponding GraalVM for your platform.
- Install the pre-compiled GraalSqueak component attached to the release with the GraalVM Updater:
$GRAALVM_HOME/bin/gu install \
-u https://github.com/hpi-swa/graalsqueak/releases/download/X.Y.Z/graalsqueak-component-X.Y.Z.jar
- You should now be able to open a recent Squeak/Smalltalk image (Squeak-5.2 or later):
$GRAALVM_HOME/bin/graalsqueak path/to/a/squeaksmalltalk.image
Active development is done on the dev
branch, which is merged to
master
for new releases.
Therefore, please open pull requests against dev
if you like to
contribute a bugfix or a new feature.
The mx tool is required to build GraalSqueak.
Running mx build
in GraalSqueak's root directory checks out all dependencies
and builds all JAR files for running and testing GraalSqueak.
It can also be used to run GraalSqueak 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 GraalSqueak with.
It is recommended to use Eclipse with the Eclipse Checkstyle Plugin for development.
- Run
mx eclipseinit
in GraalSqueak's root directory to create all project files for Eclipse. - Import all projects from the graal repository which
mx
should have already cloned into the parent directory of your GraalSqueak checkout during the build process. - Import all projects from GraalSqueak's root directory.
- Run
GraalSqueakLauncher
to start GraalSqueak.
Please report any issues here on GitHub and open pull requests if you'd like to contribute code or documentation.
- Fabio Niephaus, Tim Felgentreff, and Robert Hirschfeld. GraalSqueak: Toward a
Smalltalk-based Tooling Platform for Polyglot Programming. In Proceedings of
the International Conference on Managed Programming Languages and Runtimes
(MPLR) 2019, co-located with the Conference on Object-oriented
Programming, Systems, Languages, and Applications (OOPSLA), 12 pages, Athens,
Greece, October 21, 2019, ACM DL.
- Fabio Niephaus, Tim Felgentreff, Tobias Pape, and Robert Hirschfeld.
Efficient Implementation of Smalltalk Activation Records in Language
Implementation Frameworks. In Proceedings of the Workshop on Modern Language
Runtimes, Ecosystems, and VMs (MoreVMs) 2019, companion volume to
International Conference on the Art, Science, and Engineering of Programming
(‹Programming›), co-located with the International Conference on the Art,
Science, and Engineering of Programming (‹Programming›), 3 pages, Genova, Italy,
April 1, 2019, ACM DL.
- Fabio Niephaus, Eva Krebs, Christian Flach, Jens Lincke, and Robert Hirschfeld.
PolyJuS: A Squeak/Smalltalk-based Polyglot Notebook System for the GraalVM. In
Proceedings of the Programming Experience 2019 (PX/19) Workshop,
companion volume to International Conference on the Art, Science, and
Engineering of Programming (‹Programming›), co-located with the International
Conference on the Art, Science, and Engineering of Programming (‹Programming›),
6 pages, Genova, Italy, April 1, 2019, ACM DL.
- Fabio Niephaus, Tim Felgentreff, and Robert Hirschfeld. GraalSqueak: A Fast
Smalltalk Bytecode Interpreter Written in an AST Interpreter Framework. In
Proceedings of the Workshop on Implementation, Compilation, Optimization of
Object-Oriented Languages, Programs, and Systems (ICOOOLPS) 2018,
co-located with the European Conference on Object-oriented Programming (ECOOP),
Amsterdam, Netherlands, July 17, 2018, ACM DL.
GraalSqueak is released under the MIT license.