#hoot

ᛋᛁᚵᛁᛋᛘᚢᚾᛑ ᚾᛁᚾᛃᛅsigismundninja@mastodon.nu
2025-12-06

Has anyone been able to run #Guix on a #Guile #Scheme #Hoot back end? What would it take? Any current work in that direction? Speed ups?

Been a hoot-owl howling outside my window now......

#owl #hoot

#spritely #hoot in a toot: how to deploy #Guile #Scheme as static website via #webassembly (complete #Wisp example).

The code from the two attached images, as written, runs on
draketo.de/software/hoot.html

Try it out!

It’s two pages from Naming & Logic: Programming Essentials with Wisp.

printed: epubli.com/shop/naming-and-log
website: draketo.de/software/programmin

This adds parallel fetches (do you see where?). If you adopt it, ensure that your server compresses application/wasm.

#wasm #webdev #programming

*Browser again: clientside wasm.* @@html:<a id="deploy-hoot-wasm" name="deploy-hoot-wasm"></a>@@
To run clientside, you can package your project with [[https://spritely.institute/hoot/][Hoot]]: build an interface and compile to wasm:

#+begin_src wisp :results output :tangle hoot.w
;; file: hoot.w
use-modules : hoot ffi ;; guile specific import

;; the interface
define-foreign document-body "document" "body"
  . -> (ref null extern)
define-foreign make-text-node "document" "createTextNode"
  . (ref string) -> (ref null extern)
define-foreign append-child! "element" "appendChild"
  . (ref null extern) (ref null extern) 
  . -> (ref null extern)

;; your code
append-child! : document-body
  make-text-node "Hello, world!"
#+end_src

Transpile with =wisp2lisp= and =guild compile-wasm=. If you run Guix:

#+begin_src bash
guix shell guile guile-wisp -- \
  wisp2lisp hoot.w > hoot.scm && \
    guix shell guile-hoot guile-next -- \
      guild compile-wasm -o hoot.wasm hoot.scm
#+end_src

Get reflection tools from Guile Hoot (licensed Apache 2.0) with Guix:
#+latex: \ThisLLCornerWallPaper{0.26}{programming-scheme-hoot}%

#+begin_src bash
guix shell guile-hoot guile-next --  bash -c \
 'cp $GUIX_ENVIRONMENT/share/*hoot/*/re*/{*.js,*.wasm} ./'
#+end_srcLoad your interface (includes startup time optimizations):
#+begin_src js :tangle hoot.js
/* file: hoot.js */
var f = window.fetch; window.fetch = (inp, ini) => f(inp, 
  {credentials: 'include', mode: 'no-cors', ...ini});
window.addEventListener("load", () =>
  fetch("hoot.wasm")
    .then(r => r.arrayBuffer())
    .then(bytes => Scheme.load_main(bytes, {
      user_imports: { // mapped via define-foreign
        document: {
          body() { return document.body; },
          createTextNode: Document.prototype
            .createTextNode.bind(document)
        }, 
        element: {
          appendChild(parent, child) { 
            return parent.appendChild(child);}}}})));
#+end_src

Include =reflect.js= and =hoot.js= from a HTML page:

#+begin_src html :tangle hoot.html
<!DOCTYPE html> <!-- file: hoot.html -->
<html><head><title>Hello Hoot</title>
<script type="text/javascript" src="reflect.js"></script>
<script type="text/javascript" src="hoot.js"></script>
<link rel="preload" as="fetch" href="hoot.wasm"></link>
<link rel="preload" as="fetch" href="wtf8.wasm"></link>
<link rel="preload" as="fetch" href="reflect.wasm"></link>
</head><body><h1>Hoot Test</h1></body></html>
#+end_src

For local testing, hoot provides a minimal webserver:

#+begin_src bash
guix shell guile-hoot guile-next -- \
  guile -c '((@ (hoot web-server) serve))'
#+end_src

Do You Have A Different Opinion?

#Hoot

youtube.com/shorts/ssuDJ_HdJcY

Lukianos (Fabian)lukianos
2025-11-04

Out of the blue decided to install GNU Guix-1.4.0 on my GNU Debian 13 (Trixie) machine. Now I have Haunt and Guile Hoot running on my machine. What a joyful Tuesday.

The (hoot hoot) example from the manual works fine. Baby steps but steps anyway.

spritely.institute/hoot/

Roberto :emacs:​ :mastodon:robjperez@fosstodon.org
2025-11-02

Probably I won't make it at time for the autumn lisp game jam, but I have been playing with #hoot to create a WebGL module. The idea is to make a simple game engine in #scheme for wasm

I have the basic triangle working with a image texture!

Grigory Shepelevshegeley@fosstodon.org
2025-10-03

A friend of mine has a question about #guile #hoot and kinda frustrated that no one's answered on official forum. Asked to consult with higher beings

community.spritely.institute/t

@wingo @cwebber

Where's the best place to ask on hoot? Irc?

Andrew Tropinabcdw@fosstodon.org
2025-09-30

Guile Hoot IDE. My grant proposal for #nlnet, I didn't have much time to prepare it carefully this year, but I guess the primary ideas should be clear.

@cwebber, @dthompson, @wingo how it looks? :)

github.com/abcdw/notes/blob/68

#guile #hoot #scheme

2025-09-19

@dotemacs @crmsnbleyd @vindarel

The Spritely people have #hoot and #goblins.

2025-09-06

Hoot chocolate (term stolen from instagram, i lost the reference sry)

He lechugado tres frescadas y chocolatito.

#hoot #buho #chocolate #cartoon #winteriscoming #winter #invierno #otoño #mastoart #fall

Un buho chiquito gris metido en una taza de chocolate con leche. De la boca le borbotea el chocolate , los ojos los tiene Ko, los piecitos le salen por un lado de la taza blanca.
1Party1Party
2025-09-04

We focus on Republicans: they've done the most damage. Dems get called out too. Our goal: remove corrupt GOP.

Join us. www.1party.org

@indieterminacy Regarding #WASM: #hoot may already be able to provide a sufficiently full-featured REPL. Deployment of applications as WASM already works:

draketo.de/software/programmin

draketo.de/software/hoot.html

I started to integrate a web repl (see what wasm the article page imports ☺). Trying to follow spritely.institute/hoot/files.spritely.institute/embed (but that repl does not support (define (a . b) b) yet -- I need support for all examples in the book to use it)

#scheme #programming #webdev

2025-07-29

hey @spritely , any idea if Hoot could work with #hermit #wasm github.com/dylibso/hermit ? Haven't had time to check #guile #hoot in a while but I just saw #hermit and I thought we have a path to get #scheme executable out there for more and more people.

1Party1Party
2025-07-17

Centrist vs. Moderate: Centrists seek the middle, moderates avoid extremes. 1Party.org is for centrists who want systemic change beyond the 2-party system. 1party.org

1Party1Party
2025-07-16

Take the ! 💧 Fun way to support @1Party's movement. Grab a friend, try the Back-to-Back! Rules & info: www.1party.org Tag your nominees & use Let's make a splash! 🎉

youtube.com/shorts/r9UoQE2uFng

1Party1Party
2025-07-15

3. Bluesky, Mastodon, Twitter
Chemicals impacting gender, sexuality, neurodivergence, early puberty? Research suggests a link. CBS News (tinyurl.com/yc6cevdc). Contact us for references. Demand action.
www.1party.org

1Party1Party
2025-07-12

Learn what 1Party is all about, visit and join!

1party.org

Declaration: tinyurl.com/yfrc9w44

1Party1Party
2025-06-11

Learn what 1Party is all about, visit and join!

1party.org

1Party1Party
2025-05-23

Take the ! 💧 Fun way to support @1Party's movement. Grab a friend, try the Back-to-Back! Rules & info: www.1party.org Tag your nominees & use Let's make a splash! 🎉

youtube.com/shorts/r9UoQE2uFng

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst