IRC channel logs

2025-07-25.log

back to list of logs

<mwette>main has no module/hoot
<mwette>I did build from main branch, but ,use (hoot compile) fails
<mwette>I'll try the tarball. I don't ordinarily use guix. My laptop only has 256 GB drive.
<mwette>ArneBab: thanks for that pointer
<dthompson>mwette: hoot is not in guile
<dthompson>I'm unsure what's caused this confusion, but hoot is a separate project that isn't part of guile's source tree
<mwette>Probably this one got me: "With a sufficiently fresh Guile, via Guix or otherwise, the build can begin."
<mwette>Now I get it. /me bangs head on wall
<mwette>dthompson, ArneBab: Thanks much.
<dthompson>I'll think about rephrasing that part of the docs
<mwette>There's no mention of grabbing source from anywhere, so I assumed it was all in Guile's main branch.
<mwette>maybe: "w/o Guix, you need the hoot source and a Guile built from main."
<lechner>mwette / I'm not very fond of Btrfs, but the deduplication would help tremendously if you wanted to try Guix on your laptop
<lechner>Hi, I'm talking to someone who says Guile does not run on Winblows. Is that true?
<old>so loading a vector of ~ 52400 elements segfault Guile
<old>but only when using the `(vector)` procedure. Literal vector with #( work
<old>same for list
<old>(call-with-output-file "bar.scm" (lambda (port) (display "(list" port) (let lp ((k 0)) (unless (= k 52400) (format port " ~d" k) (lp (1+ k)))) (display ")" port))) (primitive-load "bar.scm")
<old>that shall segfault Guile
<mwette>old: `guild compile -O0 -t value -o bar.val bar.scm' works; now trying w/ default optimization
<old>mwette: I got the segfault down to `convert_assignment'
<old>oh boy
<old>segfault by stackoverflow due to none tail-call recursion in C
<old>52k frames in GDB
<mwette>you enjoy that :)
<old>for sure
<old>well all points to that. I guess one would need to use the heap to allocate more heap eh
<mwette>Maybe convert_assignment could be "fixed"?
<old>could
<old>but I need to get going on my paper and I want my benchmark to work; so I need a workaround for now
<old>what's odd is that I did not hit that limitation before
<mwette>try `ulimit -s'
<old>8192
<old>but that's for thread not process I think
<old>hm actually that make since if it's 8192 * 1024 bytes
<old>that's 2048 pages
<old>great so ulimit -s unlimited works for me
<mwette>yw
<old>thanks!
<old>might want to document this limitation in the manual regarding expression
<pomel0>hello!
<pomel0>I tend to forget the age of GNU Guile, so I was quite surprised when I learned there were a few window managers in the 90s - early 2000s that used Guile as their configuration language
<pomel0> http://galeriawm.hol.es/gwm.php
<pomel0> http://galeriawm.hol.es/scwm.php
<pomel0>here are at least two of them
<pomel0>I wonder if anybody here has ever used one of these or tried them out?
<old>mwette: I think in my case ulimit is not even enough
<old>I just fill the entire stack ~ 36 pages
<old>well actually it's more, but I do end up with segfault event with ulimit
<old>the sexp I'm reading is 500 Mb in text
<ArneBab>lechner: the Lilypond devs got Guile working on Windows. And there are patches to fix performance in the mailing list: https://lists.gnu.org/archive/html/guile-devel/2025-04/msg00000.html
<ArneBab> https://lists.gnu.org/archive/html/guile-devel/2025-03/msg00011.html
<lechner>ArneBab / thanks!
<lechner>Hi, what's an easy way to write a bytevector to a binary file, please?
<lechner>nvm, i found put-bytevector
<mwette>old: I think the cons part of that C function could be made into a tail call, but not trivial. I think it would take passing a maybe-pair as an additional argument.
<mwette>pomel0: long ago I used sawfish, aka sawmill, as a WM. It had it's own scheme. But I think still available.
<pomel0>yeah, sawfish has a lisp, inspired by emacs lisp and scheme
<pomel0>(I just read that)