IRC channel logs

2026-09-20.log

back to list of logs

<ArneBab>define-typed is now an SRFI (in draft): https://srfi.schemers.org/srfi-284/srfi-284.html
<ArneBab>The implementation is the one I wrote which matches the performance of hand-typed code from the article of dthompson.
<ArneBab>overview page with email lists and git repo: https://srfi.schemers.org/srfi-284/
<old>ArneBab: we just merged a typed check SRFI
<old>why another one?
<PuercoPop>How does one replace CL's multiple-values + multiple-value-bind? By returning a list + destructuring in a match?
<lechner>PuercoPop: I don't know Lisp but Guile has 'receive' and SRFI-71.
<PuercoPop>lechner: It seems that guile supports multiple values! Thanks!
<ieure>Is there some non-obvious place Guile stuffs .go files? Am dealing with a bizarre situation that's making me crazy.
<ieure>In my (atomized transforms) module, I have (define-public (xf-channels os-channels) ...) and (define-public (xf-channels* . os-channels) (xf-channels os-channels)). But xf-channels* is not actually exported for some reason.
<ieure>(@ (atomized transforms) xf-channels*) gives "unbound variable", but (@@ (atomized transforms) xf-channels*) works.
<ieure>I added (define-public xf-foo 'foo) above xf-channels*, and (define-public xf-bar 'bar) below it; those work fine.
<ieure>Only xf-channels* is not exported. I have no idea why.
<ieure>Adding #:export (xf-channels*) works. But define-public does not.
<ieure>Bizarre.
<ieure>Only that specific symbol.
<rlb>PuercoPop: see also srfi-71, perhaps
<rlb>ieure: I doubt it's some unexpected .go file if you can add those other things to your .scm file and see the effects.
<rlb>Not sure what's happening, though I do recall there have been some issues with top-level symbols/hashing; don't know that it'd be relevat.
<rlb>"relevant"
<rlb>If you change the name a bit does that also get it to work?
<rlb>i.e. change a character?
<ieure>rlb, No. Removing the dot which makes it variadic makes it work.
<old>there's perhaps a bug in the inliner
<old>Try to compile with `-Ono-cross-module-inlining'
<old>see what happen
<old>ieure: if you have a reproducer, I could have a look.
<cow_2001>in haunt, why would a flat pages fail with the following error? https://kaka.farm/x/tmp/2026-09-20-haunt-flat-pages-error.txt
<ekaitz>cow_2001: you might have a string where sxml is expected
<duncan>I really dislike SRFI 71. There is already support for multilpe values with let-values in base Guile, SRFI 71 is not widespread and it is exceptionally confusing when I've actually encountered it in the wild
<duncan>The more recent SRFI 210 is a much better design and it has forms for procedures which emit different variables - this is much closer to the Common Lisp behaviour with respect to multiple values, IMO.
<duncan>PuercoPop: ^^
<duncan>I don't think I've ever seen SRFI 71 outside of Guile to be brutally honest. It's horrible.