

A Squeak/Smalltalk VM and Polyglot Programming Environment for the GraalVM.
Getting Started
- Find the latest TruffleSqueak release and identify the
supported version of GraalVM.
- Download the corresponding GraalVM for your platform.
- 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
- 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.
- Run
mx eclipseinit
in TruffleSqueak'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 TruffleSqueak checkout during
the build process.
- Import all projects from TruffleSqueak's root directory.
- 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
- Fabio Niephaus. Smalltalk with the GraalVM. In the
JVM Programming Advent Calendar, December 7, 2019.
- 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.

- Daniel Stolpe, Tim Felgentreff, Christian Humer, Fabio Niephaus, and Robert
Hirschfeld. Language-independent Development Environment Support for Dynamic
Runtimes. In Proceedings of the Dynamic Languages Symposium (DLS)
2019, co-located with the Conference on Object-oriented Programming,
Systems, Languages, and Applications (OOPSLA), 11 pages, Athens, Greece,
October 20, 2019, ACM DL.

- Fabio Niephaus. HPI Polyglot Programming Seminar. In the
GraalVM Blog, October 11, 2019.
- 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.

- Tobias Pape, Tim Felgentreff, Fabio Niephaus, and Robert Hirschfeld. Let them
fail: towards VM built-in behavior that falls back to the program. In
Proceedings of the Salon des Refusés (SDR) 2019 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›), 7 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.

2018
- 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.

License
TruffleSqueak is released under the MIT license.