IRC channel logs

2025-11-17.log

back to list of logs

<sneek>Welcome back ArneBab :D
<ArneBab>One more optimization: make sure that your webserver actually compresses wasm (needed a config change on apache). Down to 60-125ms because wasm compresses pretty well: 80kB instead of 285kB for my hello world.
<sshine_>sneek, botsnack
<sneek>:)
<dthompson>ArneBab: thanks for the data!
<sneek>Welcome back dthompson, you have 1 message!
<sneek>dthompson, ArneBab says: the logs could interest you (startup speed of hoot so a game isn’t only fast but also starts almost instantly). See with devtools: https://www.draketo.de/software/hoot.html
<cwebber>moin moin / tzag
<ArneBab>dthompson: The gist of it: I could finally fully parallelize js and wasm loading from hoot and that cuts the load time in half.
<ArneBab>(or more than in half: I didn’t have compression enabled for wasm when I did the initial benchmarks, so serialized loading had a smaller impact because the base download time was higher)
<ArneBab>dthompson: what I had to do: https://hg.sr.ht/~arnebab/draketo/browse/site/.htaccess?rev=2a6786025e3d#L36 ( AddOutputFilterByType DEFLATE application/wasm ).
<dthompson>wow, still using the apache web server
<dthompson>haven't seen that in awhile
<ArneBab>it’s the default server of my hosting provider, and I don’t want to meddle with that (don’t want to increase the maintenance cost I have to carry myself).
<ArneBab>It’s a standard LAMP stack that does the job.
<ArneBab>dthompson: aside: did you see my trouble with min/max in hoot? https://codeberg.org/spritely/hoot/pulls/785#issuecomment-7943639 ⇒ unbound top-level. If I didn’t make a dumb error in copy-paste, that’s the code that works in guile
<ArneBab>it’s fast as macro and passes the arithmetic testsuite of Guile, but it does not build in hoot.
<ArneBab>⇒ either I made a dumb error, or there’s an inconsistency in semantics between hoot and guile.
<dthompson>ArneBab: I don't really know what to make of that comment. the error info seems incomplete.
<dthompson>the "unbound top-level" should come with a source location
<ArneBab>can I paste in the full output?
<ArneBab>(into codeberg PR)
<dthompson>I'd be most interested in what the unbound top-level is
<dthompson>the backtrace itself isn't very useful
<ArneBab>I added the output from a test. Short: misc-error args: (#f "unbound top-level ~S ~S" (#("lib/hoot/numbers.scm" 505 20) scm-error) #f)>)>
<dthompson>ArneBab: okay so scm-error is unbound
<ArneBab>… ok, I’m dumb …
<dthompson>we have an issue filed to improve the way this error is printed to the user
<ArneBab>didn’t import that …
<dthompson>we don't really use scm-error in hoot
<dthompson>ArneBab: you can't import it from the module you are in
<dthompson>scm-error is defined in (guile) which depends on (hoot numbers)
<dthompson>you should import (hoot errors) and use what's available there
<ArneBab>arg, module cycles …
<ArneBab>(sorry, missed your comments on that until now and ran into the cycles …)
<ArneBab>I fixed some, but now I stumble over actual-error: #<&compound-exception components: (#<&error> #<&origin origin: "abort"> #<&message message: "Abort to unknown prompt"> #<&irritants irritants: (#<procedure procedure? (_)>)> #<&exception-with-kind-and-args kind: misc-error args: ("abort" "Abort to unknown prompt" (#<procedure procedure? (_)>) #f)>)>
<ArneBab>I guess I have to simplify more …
<dthompson>looks like a runtime error. what's the program that caused this?
<ArneBab>I’m running make check -j8
<dthompson>you should just run `make check TESTS=test/test-numeric.scm` as that's where the min/max tests are. then check the log for the failures
<ArneBab>I copied the error I get from thet (with source-file and source-line ...) to the PR: https://codeberg.org/spritely/hoot/pulls/785#issuecomment-8323511 -- I don’t have enough domain knowledge at this point to understand it …
<ArneBab>Does the %f somehow leak out of the syntax-rule?
<ArneBab>… no, it’s #f …
<ArneBab>the code is now all pushed.
<ArneBab>the errors come from parts that don’t seem to use min or max at all.
<dthompson>did the tests pass before you added your patch?
<dthompson>as in, does test-numeric.scm pass on an unmodified main branch on your machine?
<ArneBab>damn, no …
<ArneBab>I run guix shell --pure -D guile-hoot -- make check TESTS=test/test-numeric.scm
<ArneBab>on commit 67a47ac4fc2744fe0a95ad488c05e55e57f38ead
<ArneBab>Tue Oct 21 14:09:27 2025
<dthompson>hmm okay. so we've got a build environment issue.
<ArneBab>sorry for the stumbling progress …
<dthompson>no no, thank you for working on this!
<dthompson>I wonder what's wrong with your env... I'm not sure what would cause this
<ArneBab>I actually have to step out for a while … will read the backlog. Can you test whether my branch runs the tests correctly for you?
<dthompson>I can't right now but I will try to do that soon
<ArneBab>Thank you!
<ArneBab>I hope it will work out!
<finthecalculator>Hi, I would like to create a pipe in an object (writes to the pipe go to stdin of a daemon and stdout of the daemon can be read from the pipe) and send that pipe to an object in another vat, so that also that object can interact with the daemon at the first end of the pipe. is that possible in Goblins? is there anything similar to this in any of the Spritely projects based on Goblins? Thanks
<identity>finthecalculator: you could just create an object that holds the stdio of a daemon and pass strings to the object so it can interact with the daemon on your behalf?