trufflesqueak

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

https://github.com/hpi-swa/trufflesqueak

Science Score: 75.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 26 DOI reference(s) in README
  • Academic publication links
    Links to: acm.org
  • Committers with academic emails
  • Institutional organization owner
    Organization hpi-swa has institutional domain (www.hpi.uni-potsdam.de)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.7%) to scientific vocabulary

Keywords

bytecode-interpreter graalvm polyglot-programming research-project smalltalk squeak truffle virtual-machine
Last synced: 6 months ago · JSON representation ·

Repository

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

Basic Info
  • Host: GitHub
  • Owner: hpi-swa
  • License: mit
  • Language: Java
  • Default Branch: main
  • Homepage:
  • Size: 16.3 MB
Statistics
  • Stars: 300
  • Watchers: 23
  • Forks: 15
  • Open Issues: 29
  • Releases: 40
Topics
bytecode-interpreter graalvm polyglot-programming research-project smalltalk squeak truffle virtual-machine
Created about 8 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

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 and extract the latest TruffleSqueak standalone for your platform.
  2. Run the following in a terminal to start TruffleSqueak:

    bash bin/trufflesqueak [<option>...] [<imageName> [<argument>...]]

  3. (Optional) Install additional languages (only available in a JVM standalone):

    ```bash

    Evaluate the following from within TruffleSqueak

    Polyglot installLanguage

    or run the following on the command line

    bin/trufflesqueak-polyglot-get js # or ruby, python, java, llvm, wasm ```

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.

Owner

  • Name: Software Architecture Group
  • Login: hpi-swa
  • Kind: organization
  • Location: Potsdam, Germany

Citation (CITATION.bib)

@inproceedings{10.1145/3357390.3361024,
author = {Niephaus, Fabio and Felgentreff, Tim and Hirschfeld, Robert},
title = {GraalSqueak: Toward a Smalltalk-Based Tooling Platform for Polyglot Programming},
year = {2019},
isbn = {9781450369770},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3357390.3361024},
doi = {10.1145/3357390.3361024},
abstract = {Polyglot programming provides software developers with a broader choice in terms of
software libraries and frameworks available for building applications. Previous research
and engineering activities have focused on language interoperability and the design
and implementation of fast polyglot runtimes. To make polyglot programming more approachable
for developers, novel software development tools are needed that help them build polyglot
applications. We believe a suitable prototyping platform helps to more quickly evaluate
new ideas for such tools. In this paper we present GraalSqueak, a Squeak/Smalltalk
virtual machine implementation for the GraalVM. We report our experience implementing
GraalSqueak, evaluate the performance of the language and the programming environment,
and discuss how the system can be used as a tooling platform for polyglot programming.},
booktitle = {Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes},
pages = {14–26},
numpages = {13},
keywords = {virtual machines, GraalVM, Squeak/Smalltalk, polyglot programming, tools, Truffle, live development},
location = {Athens, Greece},
series = {MPLR 2019}
}

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 3,838
  • Total Committers: 22
  • Avg Commits per committer: 174.455
  • Development Distribution Score (DDS): 0.122
Past Year
  • Commits: 188
  • Committers: 2
  • Avg Commits per committer: 94.0
  • Development Distribution Score (DDS): 0.074
Top Committers
Name Email Commits
Fabio Niephaus c****e@f****m 3,368
Tim Felgentreff t****f@g****m 109
Malte Stellmacher m****r@s****e 82
Marius Dörbandt g****s@d****e 60
Florin Mateoc f****c@g****m 47
Arne Mayer a****r@s****e 33
Alexander Popiak a****k@n****m 28
Johannes Henning j****g@h****e 24
Tom Beckmann t****c@g****m 21
Sabine Schnabeltier s****r@g****m 14
Falco Duersch f****h@s****e 10
Florin Mateoc f****c@y****m 10
Stéphane Micheloud s****d@g****m 8
jtm j****k@s****e 7
Jonas Chromik j****k@s****e 4
Christian Flach c****h@g****m 3
Daniel Stolpe d****e@g****e 3
Corinna Jaschek c****k@g****m 2
Christoph Thiede 3****r 2
Jan Ehmueller j****r@s****e 1
Juliane j****t@g****m 1
Peter Svensson p****n@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 70
  • Total pull requests: 78
  • Average time to close issues: 12 months
  • Average time to close pull requests: 11 days
  • Total issue authors: 17
  • Total pull request authors: 14
  • Average comments per issue: 1.7
  • Average comments per pull request: 2.4
  • Merged pull requests: 46
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 12
  • Pull requests: 31
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 9 days
  • Issue authors: 5
  • Pull request authors: 2
  • Average comments per issue: 1.25
  • Average comments per pull request: 1.77
  • Merged pull requests: 12
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • fniephaus (33)
  • Sabine-Schnabeltier (8)
  • johenning (6)
  • janehmueller (5)
  • cmfcmf (3)
  • marschall (3)
  • antonykamp (2)
  • michelou (1)
  • Kolpa (1)
  • lkyhfx (1)
  • mahsohn (1)
  • javaman-dev (1)
  • milanpro (1)
  • srbaker (1)
  • c4f7fcce9cb06515 (1)
Pull Request Authors
  • Sabine-Schnabeltier (29)
  • johenning (10)
  • michelou (8)
  • fniephaus (7)
  • f4lco (6)
  • fmateoc (5)
  • cmfcmf (4)
  • tom95 (2)
  • numberpi (2)
  • Blubl (1)
  • MariusDoe (1)
  • apopiak (1)
  • ArneMayer (1)
  • janehmueller (1)
Top Labels
Issue Labels
bug (20) feature (10) interop (9) enhancement (4) windows (3) low priority (3) help wanted (2) good first issue (2) px (1) question (1)
Pull Request Labels
enhancement (3) windows (1) graalvm-component (1)

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite