• Stars
    star
    282
  • Rank 146,549 (Top 3 %)
  • Language
    Java
  • License
    MIT License
  • Created almost 7 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

TruffleSqueak

Latest Release Slack Twitter Build Status Codacy Coverage License

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

Getting Started

  1. Download the latest GraalVM distribution for your platform.

  2. Use the GraalVM Updater to install the TruffleSqueak component for your platform:

    $GRAALVM_HOME/bin/gu \
      -C https://raw.githubusercontent.com/hpi-swa/trufflesqueak/main/gu-catalog.properties \
      install smalltalk
  3. You should now be able to run TruffleSqueak:

    $GRAALVM_HOME/bin/trufflesqueak

Demos

TruffleSqueak: Polyglot Notebooks (Demo)
TruffleSqueak: Polyglot Notebooks
TruffleSqueak: Workspace, Inspector, and Explorer (Demo)
TruffleSqueak: Workspace, Inspector, and Explorer
TruffleSqueak: Live Plots with ggplot2 (Demo)
TruffleSqueak: Live Plots with ggplot2
TruffleSqueak: Polyglot User Interfaces (Demo)
TruffleSqueak: Polyglot User Interfaces
TruffleSqueak: Polyglot Code Editor (Demo)
TruffleSqueak: Polyglot Code Editor
TruffleSqueak: Polyglot Code Finder (Demo)
TruffleSqueak: Polyglot Code Finder
TruffleSqueak vs. OpenSmalltalkVM: Bouncing Atoms
TruffleSqueak vs. OpenSmalltalkVM: Bouncing Atoms
TruffleSqueak: CallTargetBrowser (Demo)
TruffleSqueak: CallTargetBrowser
TruffleSqueak: Polyglot Workspace (Demo)
TruffleSqueak: Polyglot Workspace

Talks

Some Smalltalk with Fabio Niephaus and Thomas Würthinger (~1h10min, GraalVM Stream on Twitch, 2021)
Some Smalltalk with Fabio Niephaus and Thomas Würthinger
(~1h10min, GraalVM Stream on Twitch, 2021)
Exploiting Dynamic Run-time Data with TruffleSqueak (~30min, Virtual Machine Meetup, 2021)
Exploiting Dynamic Run-time Data with TruffleSqueak
(~30min, Virtual Machine Meetup, 2021)
Polyglot Programming with TruffleSqueak and GraalVM (~21min, HPI Symposium at SAP, 2021)
Polyglot Programming with TruffleSqueak and GraalVM
(~21min, HPI Symposium at SAP, 2021)
Polyglot Notebooks with Squeak/Smalltalk on the GraalVM (~28min, ESUG 2019)
Polyglot Notebooks with Squeak/Smalltalk on the GraalVM
(~28min, ESUG 2019)

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 main branch. Please feel free to open a pull request if you'd like to contribute a bug-fix, documentation, or a new feature. For more information, for example on how to build TruffleSqueak from source or set up a development environment, please refer to the development.md.

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.

2020

  • Fabio Niephaus, Patrick Rein, Jakob Edding, Jonas Hering, Bastian König, Kolya Opahle, Nico Scordialo, and Robert Hirschfeld. Example-based Live Programming for Everyone: Building Language-agnostic Tools for Live Programming With LSP and GraalVM. In Proceedings of the ACM Symposium for New Ideas, New Paradigms, and Reflections on Everything to do with Programming and Software (Onward!) 2020, co-located with the Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 108-124, Chicago, United States, November 17-18, 2020, ACM DL.
    doi Preprint
  • Jan Ehmueller, Alexander Riese, Hendrik Tjabben, Fabio Niephaus, and Robert Hirschfeld. Polyglot Code Finder. In Proceedings of the Programming Experience 2020 (PX/20) 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
  • Alexander Riese, Fabio Niephaus, Tim Felgentreff, and Robert Hirschfeld. User-defined Interface Mappings for the GraalVM. In Proceedings of the Interconnecting Code Workshop (ICW) 2020, companion volume to the 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›), pages 19-22, Porto, Portugal, March 23, 2020, ACM DL.
    doi Preprint

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

TruffleSqueak is released under the MIT license.

More Repositories

1

native-minecraft-server

Use GraalVM Native Image to turn the Minecraft server into native executables that are small in footprint, fast, and cheap to deploy.
Shell
347
star
2

smalltalkCI

Framework for testing Smalltalk projects with GitHub Actions, GitLab CI, Travis CI, AppVeyor, and others.
Smalltalk
94
star
3

ipolyglot

A polyglot kernel for Jupyter notebooks based on GraalVM.
JavaScript
92
star
4

RSqueak

A Squeak/Smalltalk VM written in RPython.
Python
83
star
5

vivide

A Squeak/Smalltalk-based programming environment and framework that supports low-effort construction of graphical tools by employing a data-driven perspective and a script-based programming model.
Smalltalk
59
star
6

Squot

Squeak Object Tracker - Version control for arbitrary objects, currently with Git storage
Smalltalk
58
star
7

polyglot-live-programming

Polyglot Live Programming with GraalVM, the Language Server Protocol (LSP), and VS Code.
Java
38
star
8

sandblocks

A projectional editor for Squeak/Smalltalk.
Smalltalk
35
star
9

Ohm-S

A Squeak/Smalltalk implementation of the metaprogramming framework Ohm.
Smalltalk
24
star
10

setup-smalltalkCI

Use smalltalkCI to test your Smalltalk projects.
JavaScript
23
star
11

Gramada

Gramada is an interactive development environment for programming languages defined in Ohm. It is based on Vivide and implemented in Squeak/Smalltalk.
Smalltalk
15
star
12

MessageSendRecorder

Tracing tool for Squeak/Smalltalk. Includes a debugger-like browser for records.
Smalltalk
10
star
13

animations

An extension for Squeak/Smalltalk that employs a simple programming model for adding animations to the Morphic framework.
Smalltalk
10
star
14

JCop

A COP language extension to Java
Java
9
star
15

Rack

A hierarchical ordering system for objects in Squeak/Smalltalk with a graphical interface
Smalltalk
8
star
16

metacello-git

Git support in Monticello. Deprecated: Use https://github.com/hpi-swa/Squot instead.
Smalltalk
7
star
17

MethodWrappers

Method wrappers from the AspectS project. Compatible with Squeak 5.1 and newer.
Smalltalk
6
star
18

widgets

A set of graphical controls such as tree views and buttons implemented in Squeak/Smalltalk using the Signals observer pattern.
Smalltalk
6
star
19

smalltalk-nested-classes

Module System for Squeak based on Nested Classes
Smalltalk
5
star
20

signals

An observer mechanism inspired by the Qt framework and implemented in Squeak/Smalltalk.
Smalltalk
4
star
21

squeak-history

Project for Squeak 5.2 (and above) to explore and learn about the history of Squeak and Squeak-related projects.
Smalltalk
4
star
22

SmalltalkWordNet

Provides an object representation of the wordnet database
Smalltalk
3
star
23

context-s

A COP language extension for Squeak/Smalltalk
HTML
2
star