IRC channel logs

2026-01-24.log

back to list of logs

<resica>Trying to weigh the pros and cons of using guile as the glue of an SDL2 game. You think it would be less a headache to use guile as the entry point that starts the game or a C program that embeds guile into it?
<resica>Reason why I'm bringing up C is because the really heavy lifting would be done in C. But I am interested in using guile as the primary means of the game logic.
<mwette>sneek: software?
<mwette>resica: maybe some ideas here: https://dthompson.us/projects/chickadee.html
<resica>I'm familiar with chickadee, I think it uses a shell script to launch any given game. That too is an option, might limit cross platform, but it's an option.
<graywolf>Hello :) Do we have something similar to let-alist from Emacs available in Guile?
<resica>graywolf, let-alist is actually a macro, so you could implement it into guile scheme.
<resica>That's if it isn't availablel
<graywolf>Yeah I have decided to give that a try now :)
<graywolf>Need to think a bit about the design though, since I want to support string keys and not just symbols
<ArneBab>resica: I use guile as leading application, but with chickadee as SDL wrapper and game engine: https://dthompson.us/projects/chickadee.html
<ArneBab>resica: one reason for C with embedded guile could be compiling for Windows. You’ll have to get patches from Lilypond for that for now.
<ArneBab>resica: and you may not need C for the heavy lifting -- I‘d first try Guile optimizations before going to C: https://dthompson.us/posts/optimizing-guile-scheme.html
<resica>What do you mean by I would have to get lilypond patches just to embed guile in C for windows?
<dsmith>resica, Either way can work. It's very easy to write heavy-lifting C code that can be called from Scheme. Or as a C program that can be extenede with Scheme.
<dsmith>The trend these days is make the main app Scheme.
<sneek>Welcome back dsmith :)
<dsmith>sneek, botsnack
<sneek>:)
<daviid>mwette: it's guile-software i think
<daviid>sneek: guile-software?
<sneek>Its been said that guile-software is http://sph.mn/foreign/guile-software.html Send an email to tantalum, <sph at posteo dot eu> to make changes or post a new project.
<mwette>daviid: thanks
<ArneBab>sneek: later tell resica: windows support of Guile is being fixed at the moment. There are still problems with the JIT compilation that the Lilypond folks solved (they embed Guile for high-performance text work) but that still need to be merged back into Guile itself.
<sneek>Will do.
<ekaitz>ArneBab: there are a few PRs pending in lightening I have 0 knowledge about windows, so I don't know what to do with them
<ekaitz>I don't have any windows machine to test them either
<ekaitz>plus being a windows fix makes me not very interested on actually learning about it :)
<ArneBab>ekaitz: are they from Lilypond devs? If not: those are the ones who know how to test on Windows.
<ArneBab>I have no Windows knowledge to speak of, but I do care about Guile working on Windows, because then I (and others) can ship games that work on Windows, too.
<ekaitz>h-c-mueller
<ekaitz>i don't know him
<ArneBab>ekaitz: I just asked hanhjo and janneke to have a look: https://codeberg.org/guile/guile/pulls/90#issuecomment-10123851
<ArneBab>ACTION does more "you know more about this than me, could you have a look here" stuff these days than actual development … feels stumbling in an unpaid management role that someone needed to take up …
<ArneBab>s/feels stumbling in/feels like stumbling into/
<janneke>ArneBab: nice, i'll have a look at the guix build --target=x86_64-w64-mingw build
<ekaitz>thank you both
<ArneBab>ecraven uploaded new benchmark results! https://ecraven.github.io/r7rs-benchmarks/
<ArneBab>Guile now only fails one test: equality on circular lists (timeout, likely because that would take infinite time)
<ArneBab>(let ((a (list 1)) (b (list 1))) (set-cdr! a a)(set-cdr! b b)(equal? a b)) ;; instant infinite loop.
<ekaitz>ArneBab: is that how it should be in scheme in general?
<ekaitz>meaning, is it mandated?
<ekaitz>it is crazy how fast chez is btw
<ArneBab>I don’t know whether it’s mandated. And yes, Chez is really fast.