IRC channel logs
2026-09-20.log
back to list of logs
<ArneBab>The implementation is the one I wrote which matches the performance of hand-typed code from the article of dthompson. <old>ArneBab: we just merged a typed check SRFI <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. <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>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>ieure: if you have a reproducer, I could have a look. <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>I don't think I've ever seen SRFI 71 outside of Guile to be brutally honest. It's horrible.