IRC channel logs

2024-07-12.log

back to list of logs

<haugh>bjoli, very interesting project; i'm particularly interested in the inlining/DCE you're using to get a functional system up to speed with a mutative one. That said, goof's top level syntax is complex relative to egner's generators/qualifiers, please correct me but I can't see any ability to adapt to different numbers of return values, and I don't have a problem with mutation as long as there's
<haugh>a lexical guard in place.
<haugh>If I continue to butt up against 42's limitations, yours will be the first lib I dig into
<haugh>I currently depend on an escape continuation for user-provided break; I'm interested in how you/Shinn achieved that.
<ArneBab>Could the C-performance of Guile become better if full continuations (with their stack saving and such) are improved? If yes, then ctak from the r7rs-benchmarks would be a worthwhile target: https://ecraven.github.io/r7rs-benchmarks/#ctak (Guile does not finish, but barely) ⇒ https://github.com/ecraven/r7rs-benchmarks/blob/master/src/ctak.scm
<ArneBab>(it’s completely based on call-with-current-continuation)
<valorzard>Hey weird question: can guile work on platforms like iOS or game consoles?
<valorzard>Since its lgpl its kinda weird
<ArneBab>sneek later tell valorzard: the LGPL is not a problem for proprietary platforms per-se, but there are challenges due to app-store policies. These are shared by Qt, too, though, and there are practical solutions: www.objc.io/issues/17-security/inside-code-signing/
<sneek>Okay.
<ArneBab>sneek: botsnack
<sneek>:)
<ArneBab>Something like the qt lgpl app template could be strategically useful to enable use-cases like the one from valorzard: https://marketplace.qt.io/products/qt-lgpl-app-template — taking *.go files and wrapping them as redistributable zip.
<chrislck>sneek: botsnack
<sneek>:)
<graywolf>Hm, would anyone know why (define) does not work in this example https://paste.debian.net/1323043/ ? I have to use (module-define! (current-module) ...) instead.
<graywolf>It is not an end of the world, but would like to understand why it is necessary...
<sneek>Yey! chrislck is back!
<graywolf>So I have lambda that creates a new module end executes code in it. https://paste.debian.net/1323053/ However it fails with Unbound variable: open-pipe. Any ideas why or how to make it work?
<graywolf>I could just use (module-ref (current-module) 'open-pipe) which works, but I feel like I should understand the behavior here before I commit the workaround...
<civodul>graywolf: use ‘use-modules’ only at the top level
<civodul>if you want to manipulate a module at run time, there’s an (undocumented) API for that
<civodul>in this case, you’d do: (let ((m (make-fresh-user-module))) (module-use! m (resolve-interface '(ice-9 popen))) (eval exp m))
<civodul>there are examples along these lines in Guix
<graywolf>Ah, `eval' was the bit I was missing!
<graywolf>In "real" code I have module-use-interfaces!
<civodul>oh, i don’t remember using that one :-)
<graywolf>I wrote mine own re-export-all procedure, and writing tests turned to be harder then expected.
<graywolf>Thanks a lot, was stuck on this for long time :)
<graywolf>And indeed (eval '(begin e e* ...) (current-module)) works! Great ^_^
<civodul>yay!
<dsmith>!uptime
<sneek>I've been serving for 3 months
<sneek>This system has been up 17 weeks, 3 days, 2 hours, 37 minutes
<dsmith>sneek, botsnack
<sneek>:)
<rlb>fwiw that libunistring bug never showed up in the bug tracker, but I did get a response. The "?" is expected behavior because the "escape" handler escapes unconvertable *characters* (I'd just assumed from elsewhere that it meant to escape undecodable *bytes*.). And in the example, it was the Latin-1 byte that couldn't be decoded as UTF-8.
<rlb>My oversight -- the docs do say *characters*.
<fnat>Hi, is there any established way to convert an alist to a record? This is clearly naive and broken (it'd break changing the parameters' order): https://paste.debian.net/1323067/
<fnat>Ha, interesting, I see there's a 'alist->record' in Guix? It sounds promising, looking into that now.
<fnat>Hm... not so sure.
<fnat>Oh, ok, perhaps Guix's 'define-record-type*' then.
<fnat>Hm, with the limitation that I can't do '(apply employee my-alist)' though...
<fnat>Since I actually need to use 'define-record-type*', I'll go and ask in #guix.