IRC channel logs

2026-09-30.log

back to list of logs

<dthompson>I posted about this on the fediverse a few days ago but forgot to post here: our talk from qcon london back in march is no longer behind a paywall
<dthompson> https://www.infoq.com/presentations/spritely-decentralized-architecture/
<dthompson>also: office hours are happening *today*
<dthompson> https://community.spritely.institute/t/next-office-hours-on-9-30/847
<dthompson>office hours is happening *now*
<jlicht>missing it this time, but enjoy dthompson :-)
<dthompson>see ya some other time jlicht
<mcc>Hello! I have i think some follow up questions for dthompson from office hours. I am trying to make use of the hoot interpreter and a little confused about its command line interface. I'm trying to follow the instructions in https://files.spritely.institute/docs/guile-hoot/latest/Compiling-from-the-command-line.html says thathttps://files.spritely.institute/docs/guile-hoot/latest/Compiling-from-the-command-line.html .
<mcc>Regardless of which input I give (no arguments, --help, "compile", anything) I get this error. https://usercontent.irccloud-cdn.com/file/KDuRtEZR/error.png
<dthompson>mcc: looks like a load path issue. guile can't find wherever you've installed hoot
<mcc>There is a "share" directory. Do I need to somehow env var a scheme standard library into hoot's awareness?
<dthompson>yes it's an env var issue. where did you install hoot?
<mcc>I used configure --prefix to install it into ~/work/g/other/hoot/usr .
<mcc>as seen but maybe not clear in screenshot.
<dthompson>ah okay that's the issue.
<dthompson>you'll need to set GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH to point there
<mcc>to the share directory, or just to usr (the prefix root)?
<dthompson>export GUILE_LOAD_PATH="$HOME/work/g/other/hoot/usr/share/guile/site/3.0
<mcc>okay. and the COMPILED_PATH to lib?
<dthompson>export GUILE_LOAD_COMPILED_PATH="$HOME/work/g/other/hoot/usr/lib/guile/3.0/site-ccache
<mcc>or both to site?
<mcc>I would recommend you add this information to https://files.spritely.institute/docs/guile-hoot/latest/Building-from-source.html as it recommends prefix but does not explain env vars will be needed afterward.
<dthompson>would probably be better to figure out how to automatically add the install prefix directories to the load path so you don't have to do anything. I'll file an issue
<mcc>👍 i would normally expect the point of ./configure --prefix is to do that
<mcc>it would also be _nice_ to have around the env var explanation so that you can run the exe out of the build directory, but that might just confuse some readers
<dthompson>you can run it out of the build directory
<dthompson>./pre-inst-env hoot
<dthompson>that will set everything up
<mcc>oh, i see. that is explained in the doc i see now
<dthompson>what the doc is missing is specifically saying you can invoke the hoot script this way
<dthompson>not only guile
<dthompson>I'll update this
<mcc>dthompson hmm with your recommended envs i get a *different* error… complains of a missing module but a different one https://usercontent.irccloud-cdn.com/file/l5OZKMSi/image.png
<mcc>maybe i should just use pre-inst-env.
<dthompson>đź‘€
<dthompson>argh, another blunder by yours truly
<mcc>additionally, ./pre-inst-env gives error "ice-9/boot-9.scm:3352:6: In procedure resolve-interface: no code for module (fibers)" (can give full bt if helpful)
<mcc>so a third error
<dthompson>it's the same error, basically. in order to run the hoot development web server you need both fibers and guile-websocket. however, it was intended for these to be *optional*.
<dthompson>unfortunately, I'm including the (web server) module even when support for it is turned off (as in your case)
<dthompson>so I gotta fix that
<mcc>aha
<dthompson>but I can give you a hack for now
<mcc>well, would ./configure with different flags fix it?
<dthompson>no
<dthompson>in bin/hoot.in, comment out line 9 that imports (hoot web-server)
<dthompson>and then do one more thing... one sec...
<dthompson>comment out the *expression* starting on line 144, the 'serve' call.
<dthompson>(or delete the expression)
<dthompson>add the expression #t in its place
<dthompson>that will turn the web server into a no-op for now.
<dthompson>alternatively, install fibers and guile-websocket :)
<dthompson>those are the *only* dependencies besides guile for this one optional feature
<mcc>…okay…
<mcc>so hoot.in is only present in the bin/ directory of the "tarball" (eg the source repository). it's not present in the installed usr. are you expecting running make install after this makes it "click"?
<dthompson>yes this is a source file
<mcc>ok. for the record, after that change ./pre-inst-env still gives the fibers error.
<dthompson>run ./configure and rebuild
<dthompson>that will regenerate the script
<mcc>i see
<dthompson>.in files are templated files that require ./configure to process
<mcc>remind me the meaning of the # symbol in guile scheme? does it have a semantic meaning or is it just an identifier character
<dthompson>it's a prefix for various read syntax
<mcc>ok
<dthompson>#t, #f, #(1 2 3), #vu8(), etc.
<mcc>(i can install scheme packages if they're needed for hoot, but i'm not familiar with the toolchain so i'd have to look up how)
<dthompson>and it can be extended to invoke user-defined reader macros
<dthompson>yeah that's why I wanted to give you a hack for now
<dthompson>since you're not using a package manager
<mcc>Okay!! it boots!!
<dthompson>phew
<dthompson>codeberg is having issues but I have a patch for the documentation clarifications
<dthompson>will push it once that is possible again
<dthompson>working on the web server include issue
<dthompson>mcc: okay, I was able to push doc fixes and the web server feature flag fix
<dthompson>if you end using the main branch you will now get an error if you run 'hoot server' without the requisite libraries
<dthompson>end up*
<mcc>a clear error would definitely have been an improvement! part of the problem was that the error occurred so early that "hoot help" or "hoot --help" could not run :(
<mcc>Can hoot compile to WASI or is only browser use supported?