2024 December Adventure

Thanks to some encouragement from devine lu linvega, I have decided to take part in this year’s December Adventure.

For my project, I will be looking into Guile Hoot. My goals are to get acquainted with Hoot and its ecosystem as a way to learn more about Web Assembly and Guile itself.

I also might stray to consider other Guile topics such as reading Software Design for Flexibility.

December 2

Goal: Get the lay of the land–review the documentation to determine next steps.

Quick read of the manual for Hoot. The documentation is good but terse, so I see the need for quite a bit of exploration. I also looked a little more into Web Assembly. The sum total of my explorations from today is that I should play with the REPL and with the tooling inside Guile.

The main motivation for trying to get my head around all the stuff is to be ready for Office Hours on December 11.

December 1

Goal: Install Hoot and play with some of the sample code to get my footing.

Installing Hoot to run the tutorial was trivial since I run Debian with Guix as a package manager, except for the part where we want to run Wasm in the browser. For this we need reflect.js, reflect.wasm, and wtf8.wasm.

Though I have been using Guix for some time, after many years of having to deal with many systems, I have become intensely allergic to anything to do with DevOps and terminal shells, so it took me a while to realize that I could find the requisite files in the GNU store under guile-hoot.

After a couple of false starts, including building NodeJS on my laptop, I copied these files to the hoot-tutorial directory, and completed the tutorial successfully.

My take on the tutorial: we can compile Guile code to a Wasm module. We can either instantiate the module to run it on an interpreter that is part of Hoot‘s toolchain–not a small thing–or we can create a Wasm binary, write it to a file, and then use JavaScript and HTML to load and run the code in the browser.