Tuesday, January 07, 2020

Smalltalk with the GraalVM

If you have followed Smalltalk history (or some of the posts in this blog) you might already know about the Strongtalk system.

It is a Smalltalk environment with optional static typing support. Strongtalk can make some compile time checks, and offer stronger type safety guarantees; this is the source of its name. It is non-commercial, though it was originally a commercial project developed by a small startup company named LongView Technologies (trading as Animorphic Systems). Strongtalk is freely available on http://www.strongtalk.org

Programmers of the Strongtalk VM were later responsible at Sun Microsystems to make Java running faster by implementing the so called Java HotSpot virtual machine.

The HotSpot VM (now owned by Oracle) was primarily a Java only virtual machine - thats why it is called "JVM".

But the work continued to provide a new polyglot virtual machine called "GraalVM" which is able to host and run other programming languages (like JavaScript, Python and even C) on a new single virtual machine too.

You can find more informations about GraalVM on https://www.graalvm.org

All this is based on a Graal compiler and Truffle language implementation framework as well as a language interop framework called Polyglot that allows Truffle languages to call each other.

Now the Software Architecture Group at HPI provides even a Smalltalk on the GraalVM which is primarily using Squeak as the hosted Smalltalk environment.

Using the Polyglot functionality of the GraalVM you can interoperate easily from Smalltalk with other languages of the GraalVM as it can be seen in this demo video:





Practical Agile AI with Pharo

Apress seems to have already a page on upcoming book "Practical Agile AI with Pharo" which will be available in 2020

Docker and Pharo

Pierce is playing with a minimal Docker image including Pharo.


I experimented with docker and Pharo too - some of my notes are here

Smalltalk / Web Camp Lake Constance

Nice summary report from Joachim about the Smalltalk / Web Camp Lake Constance test run - a meeting of some companies using Smalltalk for web development.

SQLite3 for Pharo updated and moved

In the past PierceNG and me were maintaining SQLite3 driver for Pharo. As in 2019 another Pharo community member (Julien Delplanque) contributed to the project it was better to align and move the project to a more community owned location.

So SQLite3 for Pharo was reworked to be fully standalone and it was moved to community owned "pharo-rdbms" location:

  https://github.com/pharo-rdbms/Pharo-SQLite3

Additional Docu and CI support was added with green builds for Pharo 6.1, Pharo 7 and Pharo 8.

The old locations were marked deprecated.


MoreVMs 2020

In 2020 there is a workshop on Modern Language Runtimes, Ecosystems, and VMs in Portugal. Maybe the topic is interesting for you. Read more here.

Grouper for Pharo

Grouper is a nice package to group data in Pharo:

ReStore for Pharo

ReStore - an object relational database framework originally available for Dolphin Smalltalk was ported to Pharo.

Nice - I should give it a try.

Pharo XML support packages moved to GitHub

In November 2019 some time was spend to move the XML Support for Pharo from old SmalltalkHub to a community managed location on GitHub:

     https://github.com/pharo-contributions

For the detailed packages this means


Fortunately there is a nice tool from Peter Uhnak called "git-migration" that helped a lot in this transition and preserved original commit history as much as possible. 

Additionally some more cleanups were applied and a continuous integration (CI) was established.

The move to GitHub should help to better maintain contributions to these projects and also verify that the XML support runs on newer Pharo versions.



TF-Login for Seaside 3.3.x on Pharo 7

Pierce ported TF-Login to latest Seaside 3.3.x on Pharo 7. Read more here.

Run PierCMS in Pharo 7

You want to use PierCMS with latest stable Pharo release Pharo 7? Then check out this resource from John Borden. I guess this also works for Pharo 8.

Hunter - Hunter Useful and Nice Tool for ECMAScript Reengineering

Hunter (standing for Hunter Useful and Nice Tool for ECMAScript Reengineering) is a tool to help understanding JavaScript applications via interactive visualizations.

Project page is here:   https://github.com/dorellang/hunter

It runs on top of Pharo.

SplitMix64

SplitMix64: This is an implementation of the SplitMix64 pseudo-random number generator. It is very fast, has a period of 2^64 and passes the Big Crush (160 tests).


Currently only an simple fileout ST file on the GitHub page - maybe BenoƮt St-Jean (the author) can in the future provide it as a properly packaged Pharo git project.

ESUG 2019 Videos

All ESUG 2019 conference videos are uploaded and available in "ESUG 2019 Playlist" on Youtube

MaterialDesignLite v2.2.0

Old news from October I only shared via my twitter account - but nonetheless now also here on the blog: MaterialDesignLite v2.2.0 is available as a release. Some more details here.