IRC channel logs
2025-11-14.log
back to list of logs
<chrislck>does anyone remember being a guile beginner? <chrislck>and then we find dynamic-wind and with-fluids, and wondered how did we stumble into mechanical engineering <ArneBab>chrislck: I still remember -- and curly-infix still help <ArneBab>dynamic-wind still feels strange to use (and doesn’t seem very performant, not even for the happy path, or am I just using it wrong?) and fluids are still a mystery … <identity>dynamic-wind is a performance issue created to address call/cc's performance issues… <mwette>The aha moment for me was first using map and wishing for something similiar that would allow me to purge values. Then I discovered fold! Love fold. And named let is such a lovely thing: the most versatile looping construct. <identity>mwette: as versatile as goto, one could say <ArneBab>mwette: fold is awesome! But named let is what solves recursion. At work we so often have in Java and JS the issue "define a listener that must run once during definition and then every time something changes". Named let does that. By default. Because it’s the right thing to do. <dsmith>What really sold me was ((if #f + *) 3 4) in the first rnrs I read. <identity>hint: you likely have r5rs texinfo installed, so that link is just (info "(r5rs) Procedure calls") <identity>((if #f + *) 3 4) is a good demonstration of the «with no restrictions on how [expressions] are composed» maxim of Scheme <ieure>Is there some way to get the list of exported symbols from a module? If I: (resolve-interface '(gnu packages cups)), I get a module object, and I can get/set specific symbols within it, but I don't see anything that lets me enumerate its symbols. <rlb>Yes, I belive so -- perhaps module-for-each or similar? <rlb>(module-for-each (lambda (sym var) ...) interface) <rlb>Perhaps also (module-public-interface ...) <rlb>...it's been a while since I was messing with all that much. <ieure>Those aren't in the manual at all :( <rlb>Right -- unfortunately the module interface is not well documented. <rlb>I learned it in part from just looking at boot-9.scm. <rlb>(i.e. search for module- and you see likely candidates, etc.) <rlb>...well, assuming those functions are actually intended for "public" use. <rlb>(I suspect the main ones are.) <rlb>I've started another round of tests with current main on s390x and powerpc, might be a good time for anyone else with an arrangement they're interested in that's not covered by guix ci to also try main again. <rlb>i.e. we might be back to being about ready for 3.0.11. <rlb>(Still a few things to do, i.e. still need to double-check NEWS thanks.) <dsmith>Hmm. An updated NEWS is the usual indication that a release is immanent... <rlb>Ideally I wonder if we should add -std=gnu17 to cflags when it's available. We won't currently build with gcc 15+ otherwise. <rlb>until we actually fix the issues.