IRC channel logs

2025-03-15.log

back to list of logs

<cow_2001>old: i always say here and on #scheme and #guix that confusion will be my epitaph :|
<dsmith>I'd say you are a lucky man to be using Scheme...
<old>ohhh, what a lucky man, he was
<old>So I've made a pretty nice composable advice-add! module. Works like emacs advice
<old>quick example: https://paste.sr.ht/~old/d1f9295054dc19fa462026eb7c1a56476df99fee
<old>it corrupts the VM somehow for some procedures like (@ (guile) identity)
<ArneBab>old: if you want to do REPL-based live-development with chickadee, you have to suppress inlining local bindings, otherwise you cannot replace the (update) procedure that’s called from the running game loop (because it could be inlined, and usually would be, because it will call a few more specific update procedures).
<dsmith>old, Nice!
<old>ArneBab: Yes I have this case in my tests with advice. inlinable procedure can be adviced, but callsite won't be usually
<old>But I suppose that, you could have a game loop generator and ask to re-generare it? Then new inline procedures are emitted?
<ArneBab>old: you need so keep the game loop running to have actual live-development, so you must have a way to change what gets called by running procedures. The generator must get the info what to generate from some mutable binding, too.
<ArneBab>old: so I think something like checking a hash-map to get the next step in the loop could work, but that feels like a over the top ceremony when Scheme already has ways to replace bindings.
<ArneBab>(having to jump through hoops to be able to do something that could just work feels wrong)
<old>hmm right and it would not work with inlanable anyway. they are syntax-parameter that will always expand to the inline body when call directly
<old>I guess, maybe this could be tweaked so that this only happen at compile time and not regular expand/eval ?
<old>Not sure how
<ArneBab>I’m not sure. My solution is now to sprinkle #:declarative #f liberally over all modules I may want to change. Sadly that means that the code cannot work in Guile 2.0 (because there #:declarative is a syntax error in define-module).
<sneek>dsmith: Greetings!!
<dsmith>sneek, botsnack
<sneek>:)
<dsmith>!uptime
<sneek>I've been faithfully serving for one month and 25 days
<sneek>This system has been up 7 weeks, 6 days, 22 hours, 14 minutes
<dthompson>next lisp game jam has been announced https://itch.io/jam/spring-lisp-game-jam-2025
<old>ArneBab: there is maybe a way to tweak something in boot-9 so that all future loaded modules are not declarative
<old>there's the paramter `user-modules-declarative?' which set the default of #:declarative? when not present
<old>it seems to work in my case
<ArneBab>is there a way to set that from the commandline (so it applies before importing something)?
<m0rcant>Hello - I'm pretty new to Guile, and am having some difficulty getting started with Haunt. Would anyone be able to assist me with figuring out how to debug this?
<m0rcant>I'm getting an error about the module (haunt reader commonmark) missing, when I try to build my site. I removed everything but `(use-modules (haunt reader commonmark))` from my haunt.scm and still get the error.
<m0rcant>Fwiw, I opted to compile and install from source, because the latest version I could access via Guix is 0.2.4, not 0.3.0.
<m0rcant>Thanks in advance for any help!
<rlb>m0rcant: while I'm not very familiar with guix, I'd guess your envt isn't quite right, i.e. haunt/reader/commonmark... is not in your GUILE_LOAD_PATH (cf. %load-path).
<m0rcant>that makes sense, I'll check it out - thanks!
<rlb>I have a vague idea there may be some kind of guix "env" operation that's relevant, but that's just a guess.
<rlb>Suppose you could try #guix too.
<rlb>(Though I suspect someone more knowledgable will probably respond here in a while.)
<m0rcant>Good idea, I appreciate your time and comments
<rlb>of course
<old>ArneBab: I guess you could do it very early in main and you lazily resolve your module tree after
<old>Not everything will be not declarative, but most of the modules you use will