# Hoot: Guile in WASM

**URL:** https://community.spritely.institute/c/architecture/hoot/47.md

[Latest](https://community.spritely.institute/latest.md) · [Categories](https://community.spritely.institute/categories.md) · [Tags](https://community.spritely.institute/tags.md)

---

## [About the Hoot: Guile in WASM category](https://community.spritely.institute/t/about-the-hoot-guile-in-wasm-category/423)

<div class="topic-metadata">

**Author:** [@frandallfarmer](https://community.spritely.institute/u/frandallfarmer)\
**Replies:** 0

</div>

Hoot: Scheme to WebAssembly Hoot is a Spritely project which provides a full-featured WebAssembly (Wasm) toolkit in Scheme. Hoot includes a Scheme to Wasm compiler, allowing Scheme code to run in recent browsers as a…

---

## [Hoot haunted house](https://community.spritely.institute/t/hoot-haunted-house/851)

<div class="topic-metadata">

**Author:** [@bonthron](https://community.spritely.institute/u/bonthron)\
**Replies:** 3\
**Last updated:** [September 28, 2026, 2:26pm UTC](https://community.spritely.institute/t/hoot-haunted-house/851 "2026-09-28T14:26:30Z")

</div>

eva: a haunted house built with hoot There were rumours of course. Eva’s death had been unnatural and, it was said, the coffin had been buried empty. Then strange things began to happen at the manor. Rooms were foun…

---

## [Making web get requests?](https://community.spritely.institute/t/making-web-get-requests/754)

<div class="topic-metadata">

**Author:** [@kryptec](https://community.spritely.institute/u/kryptec)\
**Replies:** 7\
**Last updated:** [September 26, 2026, 2:44am UTC](https://community.spritely.institute/t/making-web-get-requests/754 "2026-09-26T02:44:22Z")

</div>

What is the recommended way (or is there a way) to make web requests/api calls etc. within hoot. I was hoping to make a get request in my app, and then parse the returned json. My initial idea was to use the guile web m…

---

## [Hoot game template REPL connection failed](https://community.spritely.institute/t/hoot-game-template-repl-connection-failed/831)

<div class="topic-metadata">

**Author:** [@pushblock](https://community.spritely.institute/u/pushblock)\
**Replies:** 1\
**Last updated:** [May 30, 2026, 4:15pm UTC](https://community.spritely.institute/t/hoot-game-template-repl-connection-failed/831 "2026-05-30T16:15:00Z")

</div>

Hi there! I’m interested in REPL-driven-development when making games with Hoot (full disclosure: I’m still learning Scheme and a lot of concepts are alien to me). I have the latest version of the game template from cod…

---

## [Help understanding define-external-type wrap and unwrap](https://community.spritely.institute/t/help-understanding-define-external-type-wrap-and-unwrap/816)

<div class="topic-metadata">

**Author:** [@pushblock](https://community.spritely.institute/u/pushblock)\
**Replies:** 1\
**Last updated:** [April 30, 2026, 3:36pm UTC](https://community.spritely.institute/t/help-understanding-define-external-type-wrap-and-unwrap/816 "2026-04-30T15:36:16Z")

</div>

Hi there! In preparation for the Spring Lisp Game Jam, I’m trying to add gamepad support to the game jam template, but I’m having trouble understanding Hoot’s FFI, especially when it comes to representing a Javascript G…

---

## [Hoot 0.8.0 released](https://community.spritely.institute/t/hoot-0-8-0-released/804)

<div class="topic-metadata">

**Author:** [@dthompson](https://community.spritely.institute/u/dthompson)\
**Replies:** 0\
**Last updated:** [February 25, 2026, 9:02pm UTC](https://community.spritely.institute/t/hoot-0-8-0-released/804 "2026-02-25T21:02:38Z")

</div>

We’re pleased to announce the release of Hoot 0.8.0! This release features a REPL and the associated tooling to support connecting to a remote REPL running within a web browser. Below is a short screencast demonstrating…

---

## [In Guile Hoot how to pass arrays between JS Runtime and Guile?](https://community.spritely.institute/t/in-guile-hoot-how-to-pass-arrays-between-js-runtime-and-guile/794)

<div class="topic-metadata">

**Author:** [@binarydigitz01](https://community.spritely.institute/u/binarydigitz01)\
**Replies:** 1\
**Last updated:** [January 18, 2026, 6:01pm UTC](https://community.spritely.institute/t/in-guile-hoot-how-to-pass-arrays-between-js-runtime-and-guile/794 "2026-01-18T18:01:08Z")

</div>

I am writing a custom game engine using guile hoot. I want to pass a Guile f32 vector to javascript as an array, however the WASM Specification does not even support arrays as an type. Moreover, other wasm implementation…

---

## [Hoot FFI: Map JS arrays to Scheme lists](https://community.spritely.institute/t/hoot-ffi-map-js-arrays-to-scheme-lists/778)

<div class="topic-metadata">

**Author:** [@breatheoutbreathein](https://community.spritely.institute/u/breatheoutbreathein)\
**Replies:** 4\
**Last updated:** [November 12, 2025, 4:05am UTC](https://community.spritely.institute/t/hoot-ffi-map-js-arrays-to-scheme-lists/778 "2025-11-12T04:05:03Z")

</div>

I am making a breath timer with Guile Hoot: In this app, I’d like to manipulate some CSS animations from Guile. AFAICT, the correct way to do this is with the getAnimations() method on the Element API. The thing is …

---

## [Hoot 0.7.0 released](https://community.spritely.institute/t/hoot-0-7-0-released/775)

<div class="topic-metadata">

**Author:** [@dthompson](https://community.spritely.institute/u/dthompson)\
**Replies:** 2\
**Last updated:** [October 22, 2025, 8:05pm UTC](https://community.spritely.institute/t/hoot-0-7-0-released/775 "2025-10-22T20:05:42Z")

</div>

Hi everyone! We are pleased to announce the release of Hoot 0.7.0. This release contains many small bug fixes and quality-of-life improvements. For the full release notes, check out our blog post:

---

## [How to pass global state between modules effectively?](https://community.spritely.institute/t/how-to-pass-global-state-between-modules-effectively/771)

<div class="topic-metadata">

**Author:** [@liltechdude](https://community.spritely.institute/u/liltechdude)\
**Replies:** 3\
**Last updated:** [October 6, 2025, 5:32pm UTC](https://community.spritely.institute/t/how-to-pass-global-state-between-modules-effectively/771 "2025-10-06T17:32:46Z")

</div>

In my program, I have a main game loop as the foundation, in which the state changes (conditionally) 60 times per second. In addition to this loop, I have a module that handles keyboard input signals. I can’t properly …

---

## [iPhone/iOS support for Hoot?](https://community.spritely.institute/t/iphone-ios-support-for-hoot/762)

<div class="topic-metadata">

**Author:** [@kryptec](https://community.spritely.institute/u/kryptec)\
**Replies:** 5\
**Last updated:** [September 21, 2025, 4:09am UTC](https://community.spritely.institute/t/iphone-ios-support-for-hoot/762 "2025-09-21T04:09:28Z")

</div>

I thought Safari supported Tail Call Optimization as of 18.2, and therefore it and iOS 18.2 and higher should support Hoot? I ask this because my limited testing has yet to find any iphone that it seems to run on, so I …

---

## [How should i define the param type of console-log?](https://community.spritely.institute/t/how-should-i-define-the-param-type-of-console-log/739)

<div class="topic-metadata">

**Author:** [@HIKI](https://community.spritely.institute/u/HIKI)\
**Replies:** 6\
**Last updated:** [August 5, 2025, 2:49pm UTC](https://community.spritely.institute/t/how-should-i-define-the-param-type-of-console-log/739 "2025-08-05T14:49:58Z")

</div>

Your hoot project is just amazing! I enjoyed playing with it a lot! And about the question, both the following define-foreign works for the given type, but is there a way to combine the string and extern type? …

---

## [Difficulty using \`draw-image\` function](https://community.spritely.institute/t/difficulty-using-draw-image-function/738)

<div class="topic-metadata">

**Author:** [@kryptec](https://community.spritely.institute/u/kryptec)\
**Replies:** 2\
**Last updated:** [June 18, 2025, 6:58am UTC](https://community.spritely.institute/t/difficulty-using-draw-image-function/738 "2025-06-18T06:58:01Z")

</div>

Hi, I’m playing around with @dthompson’s guile-hoot-jam-template, but I can’t seem to get the draw-image function to work (probably because I’m just doing something dumb). I can run the template and play the game fine,…

---

## [Postgres in WebAssembly](https://community.spritely.institute/t/postgres-in-webassembly/727)

<div class="topic-metadata">

**Author:** [@ShalokShalom](https://community.spritely.institute/u/ShalokShalom)\
**Replies:** 0\
**Last updated:** [May 31, 2025, 5:53am UTC](https://community.spritely.institute/t/postgres-in-webassembly/727 "2025-05-31T05:53:41Z")

</div>

Hi there :slight\_smile: This little thing transforms the Postgres database into a tiny WebAssembly thingy: I thought you could find this interesting :partying\_face:

---

## [Hoot 0.6.1 released!](https://community.spritely.institute/t/hoot-0-6-1-released/711)

<div class="topic-metadata">

**Author:** [@dthompson](https://community.spritely.institute/u/dthompson)\
**Replies:** 2\
**Last updated:** [May 27, 2025, 12:39pm UTC](https://community.spritely.institute/t/hoot-0-6-1-released/711 "2025-05-27T12:39:22Z")

</div>

We are excited to announce the release of Hoot 0.6.1! This is a maintenance release containing the accumulated bug fixes and other improvements since the 0.6.0 release back in January. Read the full release notes here: …

---

## [\#\<&undefined-variable ... name: eof-object\>](https://community.spritely.institute/t/undefined-variable-name-eof-object/710)

<div class="topic-metadata">

**Author:** [@liltechdude](https://community.spritely.institute/u/liltechdude)\
**Replies:** 20\
**Last updated:** [May 7, 2025, 3:14pm UTC](https://community.spritely.institute/t/undefined-variable-name-eof-object/710 "2025-05-07T15:14:55Z")

</div>

During migration from fibers to goblins in my project I have faced with problem: Uncaught exception: 1. #\<&undefined-variable module: #\<\<module\> name: (ice-9 binary-ports) exports: #\<hashtable size: 19\> defs: #\<hashta…

---

## [Running Goblins on Hoot](https://community.spritely.institute/t/running-goblins-on-hoot/690)

<div class="topic-metadata">

**Author:** [@jfred](https://community.spritely.institute/u/jfred)\
**Replies:** 1\
**Last updated:** [March 5, 2025, 7:37pm UTC](https://community.spritely.institute/t/running-goblins-on-hoot/690 "2025-03-05T19:37:52Z")

</div>

I’ve been trying to get Goblins running on Hoot today and running into some issues. Been trying to get acclimated to the way Hoot handles module discovery, and so far I’ve gotten somewhere by adding the guile-goblins rep…

---

## [Hoot for server side](https://community.spritely.institute/t/hoot-for-server-side/664)

<div class="topic-metadata">

**Author:** [@sumerian](https://community.spritely.institute/u/sumerian)\
**Replies:** 5\
**Last updated:** [January 21, 2025, 6:56pm UTC](https://community.spritely.institute/t/hoot-for-server-side/664 "2025-01-21T18:56:14Z")

</div>

Are there any plans for Hoot on the server side in the future? Or is it designed to run a decentralized network with blockchain and so-called Web3? Given the design of Goblins, how much of the server concepts can be im…

---

## [Foreign constants](https://community.spritely.institute/t/foreign-constants/663)

<div class="topic-metadata">

**Author:** [@teddd](https://community.spritely.institute/u/teddd)\
**Replies:** 8\
**Last updated:** [January 17, 2025, 7:38pm UTC](https://community.spritely.institute/t/foreign-constants/663 "2025-01-17T19:38:22Z")

</div>

I’m trying to use WebGL in Hoot. I’m using define-foreign to get access to js functions. I don’t understand how I’m supposed to get access to webgl constants like COLOR\_BUFFER\_BIT. I tried something like (define-foreign…

---

## [Slow hoot (0.5.0) wasm compilation](https://community.spritely.institute/t/slow-hoot-0-5-0-wasm-compilation/640)

<div class="topic-metadata">

**Author:** [@dpx](https://community.spritely.institute/u/dpx)\
**Replies:** 3\
**Last updated:** [December 22, 2024, 3:46pm UTC](https://community.spritely.institute/t/slow-hoot-0-5-0-wasm-compilation/640 "2024-12-22T15:46:18Z")

</div>

Hello, I have a decent cpu, recent Ryzen with 8 cores, I tried to compile the example todo app guild compile-wasm todo.scm -o todo.wasm and it takes 6 seconds. This I think it’s too much, at least for me, it makes it har…

---

## [How do I find what module to import for a given binding?](https://community.spritely.institute/t/how-do-i-find-what-module-to-import-for-a-given-binding/507)

<div class="topic-metadata">

**Author:** [@jcarvajal288](https://community.spritely.institute/u/jcarvajal288)\
**Replies:** 6\
**Last updated:** [December 12, 2024, 3:17am UTC](https://community.spritely.institute/t/how-do-i-find-what-module-to-import-for-a-given-binding/507 "2024-12-12T03:17:36Z")

</div>

I’m trying to use sin but I have no idea what module I need to import to use it. I can find a reference to it in the Guile Reference Manual but that doesn’t mention the module sin is in. How do I figure this out?

---

## [How to build images on GitLab using Guile Hoot?](https://community.spritely.institute/t/how-to-build-images-on-gitlab-using-guile-hoot/594)

<div class="topic-metadata">

**Author:** [@liltechdude](https://community.spritely.institute/u/liltechdude)\
**Replies:** 2\
**Last updated:** [November 16, 2024, 12:45pm UTC](https://community.spritely.institute/t/how-to-build-images-on-gitlab-using-guile-hoot/594 "2024-11-16T12:45:07Z")

</div>

It would be cool to demonstrate how to use Guile Hoot to build images with my game. Maybe is there prebuild images with compiled hoot? My main goal is to autocreate builds in for my project: .gitlab-ci.yml · main · Pri…

---

## [The Autumn Lisp Game Jam is almost here!](https://community.spritely.institute/t/the-autumn-lisp-game-jam-is-almost-here/591)

<div class="topic-metadata">

**Author:** [@wobbuffet](https://community.spritely.institute/u/wobbuffet)\
**Replies:** 0\
**Last updated:** [October 22, 2024, 5:16pm UTC](https://community.spritely.institute/t/the-autumn-lisp-game-jam-is-almost-here/591 "2024-10-22T17:16:05Z")

</div>

Hi everyone, do you feel the magic in the air? That’s right, it’s :sparkles:Autumn Lisp Game Jam​:sparkles: season!! As you may know, our CTO @dthompson co-hosts the annual Lisp Game Jam twice a year… and the next event…

---

## [Make a game with Hoot for the Lisp Game Jam!](https://community.spritely.institute/t/make-a-game-with-hoot-for-the-lisp-game-jam/493)

<div class="topic-metadata">

**Author:** [@dthompson](https://community.spritely.institute/u/dthompson)\
**Replies:** 7\
**Last updated:** [September 12, 2024, 11:25am UTC](https://community.spritely.institute/t/make-a-game-with-hoot-for-the-lisp-game-jam/493 "2024-09-12T11:25:07Z")

</div>

Hey everyone! The Spring Lisp Game Jam is starting this Friday, May 17th and we’d like to encourage people to try using Hoot to make HTML5 games! All the details are in our new blog post so check it out for more info. …

---

## [Hoot 0.5.0 released!](https://community.spritely.institute/t/hoot-0-5-0-released/560)

<div class="topic-metadata">

**Author:** [@dthompson](https://community.spritely.institute/u/dthompson)\
**Replies:** 2\
**Last updated:** [September 9, 2024, 2:03pm UTC](https://community.spritely.institute/t/hoot-0-5-0-released/560 "2024-09-09T14:03:15Z")

</div>

At last, a new release of Hoot is here! We’ve got a lot of goodies this time around like an interpreter (which you can try out by visiting the link below!), lightweight concurrency, improved Guile compatibility, and back…

---

## [Andy Wingo is giving a keynote about Hoot on 9/7](https://community.spritely.institute/t/andy-wingo-is-giving-a-keynote-about-hoot-on-9-7/558)

<div class="topic-metadata">

**Author:** [@dthompson](https://community.spritely.institute/u/dthompson)\
**Replies:** 1\
**Last updated:** [September 5, 2024, 5:26pm UTC](https://community.spritely.institute/t/andy-wingo-is-giving-a-keynote-about-hoot-on-9-7/558 "2024-09-05T17:26:36Z")

</div>

We’re very excited that Andy Wingo of Igalia, the lead engineer on Hoot, will be giving a keynote presentation about Scheme on WebAssembly this Saturday, 9/7 at the Scheme workshop in Milan. Talk description: What wou…

---

## [Help: Suggestion for dev setup for experimenting with hoot/spritely](https://community.spritely.institute/t/help-suggestion-for-dev-setup-for-experimenting-with-hoot-spritely/533)

<div class="topic-metadata">

**Author:** [@deezway](https://community.spritely.institute/u/deezway)\
**Replies:** 3\
**Last updated:** [August 7, 2024, 4:00am UTC](https://community.spritely.institute/t/help-suggestion-for-dev-setup-for-experimenting-with-hoot-spritely/533 "2024-08-07T04:00:00Z")

</div>

What’s the recommended setup for starting development on hoot/spritely? Any suggestions? I saw the peer to peer chat which was pretty cool, what other projects are out there? Just finding out about this project. Sounds …

---

## [How do I create two connected vats on two different machines?](https://community.spritely.institute/t/how-do-i-create-two-connected-vats-on-two-different-machines/542)

<div class="topic-metadata">

**Author:** [@aag](https://community.spritely.institute/u/aag)\
**Replies:** 3\
**Last updated:** [July 21, 2024, 6:11pm UTC](https://community.spritely.institute/t/how-do-i-create-two-connected-vats-on-two-different-machines/542 "2024-07-21T18:11:12Z")

</div>

How do I create two connected vats on two different machines? I’d like to experiment with communicating processes in different machines, but haven’t found an example. Thanks.

---

## [Pack full Hoot Scheme in one module and run Scheme REPL on startup](https://community.spritely.institute/t/pack-full-hoot-scheme-in-one-module-and-run-scheme-repl-on-startup/541)

<div class="topic-metadata">

**Author:** [@liltechdude](https://community.spritely.institute/u/liltechdude)\
**Replies:** 0\
**Last updated:** [July 19, 2024, 1:19pm UTC](https://community.spritely.institute/t/pack-full-hoot-scheme-in-one-module-and-run-scheme-repl-on-startup/541 "2024-07-19T13:19:17Z")

</div>

Hello! Recently I thought about how to increment changes in one wasm module by another, and conclude that having whole scheme repl inside a wasm module would be the best option by now. But I dont understand how to do i…

---

## [Is produced Wasm files can be debugged with Firefox's Wasm debugger?](https://community.spritely.institute/t/is-produced-wasm-files-can-be-debugged-with-firefoxs-wasm-debugger/534)

<div class="topic-metadata">

**Author:** [@liltechdude](https://community.spritely.institute/u/liltechdude)\
**Replies:** 2\
**Last updated:** [July 11, 2024, 11:24am UTC](https://community.spritely.institute/t/is-produced-wasm-files-can-be-debugged-with-firefoxs-wasm-debugger/534 "2024-07-11T11:24:35Z")

</div>

On last commit from nonguix, firefox crashes on opening wasm debugging tab. Is this expectable result, or not?

[Next page](https://community.spritely.institute/c/architecture/hoot/47.md?page=1)
