IRC channel logs

2025-07-29.log

back to list of logs

<rtmanne>Is live coding with chickadee supposed to update instantly after a saved change in the scm file?
<ArneBab>rtmanne: live coding means that you open a repl and evaluate the changes there
<ArneBab> https://files.dthompson.us/docs/chickadee/latest/Live-Coding.html#Live-Coding
<rtmanne>Oh, it doesn't send the file updates to the running repl?
<ArneBab>no, though I tend to open a *shell* to the REPL from Emacs and then eval the code there.
<rtmanne>Thanks for the clarification. I was thinking my system was busted for a minute there or something like that.
<ArneBab>here’s an example: https://www.draketo.de/software/chickadee-wisp.webm
<ArneBab>(though an uncommon one)
<rtmanne>Do I have to load it again pressing C-c C-l or can I just do a different keychord to reload all of them?
<ArneBab>I always load precisely what I changed, because that gives me the fastest round-trip time (I just send the full top-level sexp to the shell)
<ArneBab>(but no others in the file)
<ArneBab>I don’t use geiser for that, though. Instead I open a socket for the repl and connect via guix shell inetutils -- telnet localhost 37146
<ArneBab>Then I write a small macro that copies the current sexp over. It’s pretty rough and simple, but works well.
<rtmanne>Why does chickadee play <file> --repl-server open two windows? My wanted window and a black one?
<dodoyada>if I invoke reload-module should I need to do something to 'unload' the module first? I have a web project where early on I wrote a helper function to reload every module in the project so I could deal with a handler/route dependency issue. I think I could rewrite it at this point to not need the reload, but I use the reload because it works. However, it eventually crashes the repl with "Too many root sets". I don't know what t
<dodoyada>means but I wonder if modules are being duplicated and not gc'ed appropriately or something
<lechner>Hi, I write a lot of code that can't be compiled. Is there a way to indicate when a module should not be compiled?
<lechner>Hi, is there a way to use a global variable that may or may not be defined, as long as I guard with the defined? predicate, without triggering the warning: possibly unbound variable `%original-argv'
<old>lechner: you mean by the auto-compiler?
<old>lechner: for the variable that might not be defined, you can check if it is defined at expansion time and choose the appropirate expansion that has or not the variable in it
<old>here for example, I expand to something different when `spawn' is defined: https://codeberg.org/lapislazuli/blue/src/commit/df7a5b69b747878771aa85868d6f0618e01a32b8/blue/subprocess.scm#L47
<lechner>old / thank you for that! I'm still struggling philosophically with whether that's an appropriate remedy.
<lechner>old / you do this for compatibility with older versions of Guile, which didn't have spawn?
<rlb>lechner: not sure exactly what you're doing, but in general I'd probably consider use of "defined?" more or less for "special circumstances", i.e. in most cases I'd make sure there wasn't some other way I could handle the issue, assuming I'm responsible for the relevant parts.
<rlb>(if that helps)_
<lechner>rlb / thanks! I'm not sure I have another option. I check, effectively, whether the caller is running my modified Guile, which can sidestep Glibc when reading the ELF auxiliary vector. It's a bunch of system information that cannot be obtained in any other way, and also not via system calls. It includes, most notably, the memory page size
<lechner> https://codeberg.org/lechner/guile-elf/src/commit/5cab308951fb042e64e7bfbebacd5d7e1dffd777/bin/decode-elf-auxiliary-vector#L95
<rlb>...so that relies on whether or not you're running a customized guile? If so, then sure, you'll need some way to detect the customization, and that probably qualifies as "special circumstances".
<ArneBab>If someone wants to write an interesting but small-scale guile webservice for lilypond, there’s need for that at the moment (and it would be pretty cool community-interaction): https://lists.gnu.org/archive/html/lilypond-devel/2025-06/msg00032.html
<ArneBab> https://lists.gnu.org/archive/html/lilypond-user/2025-07/msg00125.html
<ArneBab>The lilypond snippet repository runs on very (very) old code, but it’s not too much (a 10MiB database) and the necessary interaction seems pretty well-defined.
<ArneBab>to avoid overloading an already struggling server: it’s this: https://web.archive.org/web/20250517152354/https://lsr.di.unimi.it/LSR/Search
<ArneBab>https://web.archive.org/web/20250621205101/https://lsr.di.unimi.it/LSR/Browse
<old>lechner: yes backward compatible with older version of Guile
<lechner>rlb / old / thanks!