Skip to content

A Squeak/Smalltalk implementation for the GraalVM.

License

Notifications You must be signed in to change notification settings

Volland/graalsqueak

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GraalSqueak Latest Release Slack Build Status Codacy Coverage License

A Squeak/Smalltalk implementation for the GraalVM.

Getting Started

  1. Find the latest GraalSqueak release and identify the supported version of GraalVM.
  2. Download the corresponding GraalVM for your platform.
  3. a) If you are on Linux or macOS, install the pre-compiled GraalSqueak component for your platform 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-installable-….jar
  1. b) If you are on Windows, download the component, change its file extension to .zip, and unzip it into your GraalVM folder:
powershell Expand-Archive graalsqueak-installable-….zip -DestinationPath $GRAALVM_HOME
  1. You should now be able to open GraalSqueak:
$GRAALVM_HOME/bin/graalsqueak      # Linux or macOS

$GRAALVM_HOME\bin\graalsqueak.cmd  # Windows

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 #graalsqueak 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 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.

Setting Up A New Development Environment

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

  1. Run mx eclipseinit in GraalSqueak'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 GraalSqueak checkout during the build process.
  3. Import all projects from GraalSqueak's root directory.
  4. Run GraalSqueakLauncher to start GraalSqueak.

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.
    doi Preprint
  • 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.
    doi Preprint
  • 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.
    doi Preprint
  • 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.
    doi Preprint
  • 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.
    doi Preprint

2018

License

GraalSqueak is released under the MIT license.

About

A Squeak/Smalltalk implementation for the GraalVM.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 98.6%
  • Python 1.2%
  • Shell 0.2%