Correction: SML is Back on the Menu

In some previous posts, I thought that SML was lacking for real-world use. However, this was a mistake.

Failing to Revive sml_tk

Failing to Call GObjects From SML

In particular, there were two points where I was wrong. The second was that there was no library to consume GObject interfaces. However, I recently found Giraffe which is a fine implementation.

Giraffe GObject Introspection library for SML

The first mistake I made was where I gave up on SML for GUIs because I couldn't get sml_tk to work in a multi-thread app. I since successfully used Gtk-3.0 via GObject in this scenario though.

Notes on Reproduction

Poly/ML and Giraffe seem to be very high quality, but nevertheless I had to make a few changes.

For Poly/ML:

Command-line option patch

You need to remember to supply this "--mainthreadml 1" option any time you run a program you have compiled.

For Giraffe:

Patch file for Giraffe

Now I have a satisfactory toolchain to write native-code ARM64 GUIs :-)

Back to my gemlog