IRC channel logs

2026-02-18.log

back to list of logs

<rlb>...could we consider requiring gcc 9+ (either in 3 or perhaps not until 3+)? At least assuming it works the way I think it does: https://gustedt.wordpress.com/2026/02/15/defer-available-in-gcc-and-clang/
<rlb>I think that might be useful on the C side for cleanup in cases where we don't want a full unwind handler. I'm pretty sure I'd want to use it in the utf-8 work.
<rlb>I guess what we'd really end up wanting is probably just a "defer" feature requirement with suitable configure.ac detection --- *if* we decide we're interested. And not sure whether that would effectively mean "just gcc/clang" for now.
<rlb>wingo: ^
<dsmith>rlb, Would that also be a required compiler for the c-must-have-real-prototypes-no-more-K&R-empty-ones patch?
<rlb>I'm guessing not? I don't know if we have other restrictions, but I think the main one right now might just be c99?
<rlb>I suppose I don't know, but for the current incompatibility I think maybe all we need is C23 (gnu23) support?
<dsmith>ACTION is not up-to-date on recent C standards
<rlb>defer's "separate", not part of a CNN standard afaik
<dsmith>Ahh
<rlb>That article does suggest it's part of a spec now, though...
<rlb>"some spec"
<dsmith>It looked similar to something in that no-empty-args change
<rlb>ahh
<rlb>I assume we'd mostly use it for error handling/cleanup, but might be handy for that e.g. { defer if (something) free/unlock/whatever(x); }.
<identity>we can just wait 5 years for POSIX.1-2031 (or something) to release that will have a recent C standard attached
<identity>POSIX.1-2024 has c17 attached
<rlb>progress!
<jab>I'm still on the functional programming paradigm thought train...are there any notable examples of programs that use functional programming? I know that guix does when interacting with the store. I'm starting to think that functional programming is not worth it...
<jab>mainly because I see soo few examples of people using it.
<ekaitz>jab`: guix tries to be functional
<sneek>Welcome back ekaitz, you have 1 message!
<sneek>ekaitz, efraim says: it is a shame about non-inclusive language in the Spanish translation. I remember we once had someone come in an complain about the inclusive language there and said it was off-putting for them. My wife and I still joke about needing "manly-man" translations and things
<ArneBab>efraim: do you mean es_MALE? ☺
<ekaitz>hahaha
<old>sneek: later tell jab that the BLUE build system tries to be purely functionnal as much as possible
<sneek>Will do.
<old>sneek: later tell jab that BLUE wents a to great extent to be able to represent stateful data in a purely manner with delayed expressions. This allows changing the states in the REPL for example without doing any mutation
<sneek>Okay.
<old>sneek: later tell jab, for example, you can change where something will be installed, without having to mutating the object itself
<sneek>Got it.
<old>hope sneek has a stack
<identity>sneek can juggle
<dsmith>old, They are delivered in order
<jab>old: I didn't realize that BLUE was using functional programming. That's fairly cool.
<dthompson>guile's compiler uses a lot of functional programming
<dthompson>if you look around, you'll see functional programming in many places
<rlb>jab: as mentioned many clojure programs/servers/etc. are "much" functional --- often, for example, much of the state is just one or more persistent maps, updated atomically either via recursion, or via (mutable) atomic swaps.
<rlb>"atoms" are very commonly used (for that): https://clojure.org/reference/atoms
<rlb>(agents (and transactions / stm) tend to be rarer I think)
<rlb>You can implement that sort of thing in guile, though you'd also need the persistent maps (or similar) for it to be as natural (without expensive deep copying)
<rlb>lokke builds atoms on guile's atomic boxes (compare and swap, etc).
<rlb>(or tries to)