Login
You're viewing the sfba.social public feed.
  • Aug 10, 2026, 9:51 AM

    I am starting to become very annoyed with #Guile Scheme because they are so far behind in providing some very important modern SRFIs.

    Of course I could implement these myself and submit a patch, but in the mean time I would have to wait for my patch to be accepted and distributed in the next Guile version. And while I waited I would have to just implement these SRFIs in my own source code for myself. I don’t have time, so I always end up just implementing the APIs that I need for my own project, usually as a wrapper around some other Guile API that does provide that functionality but in a non-standard way.

    For the past two years or so I have kept on running into issues caused by the fact that Guile does not provide SRFI-125 (hash tables) and SRFI-128 (comparators). Guile provides SRFI-69 (the old hash tables) but it doesn’t use comparators, and so the semantics for things like make-hash-table and alist->hash-table in Guile are not compatible with most other R7RS-compliant Scheme implementations. I keep having to go back and update various cond-expand statements to get around this. Some data structures are so fundamental to modern software that you just can’t do without them. Providing these SRFIs should really be a priority.

    Also the following would be really nice to have in Guile, like really soon:

    • SRFI-160: homogeneous numerical vectors, Guile only provides the older version of it, SRFI-4.
    • SRFI-170: POSIX API: Guile provides all of these APIs but not always in a way that follows SRFI-170.
    • SRFI-180: JSON, Guile provides all of these APIs but not fully compatible with SRFI-180.
    • SRFI-181: Custom ports, Guile provides similar features built-in but not in a way that follows SRFI-181.

    #tech #software #Lisp #SchemeLang #Scheme #R7RS #GuileScheme #FunctionalProgramming

    💬 1🔄 0⭐ 0

Replies

  • Aug 10, 2026, 12:56 PM

    @ramin_hal9001 Guile needs more helping hands. It's unfortunate, but the people doing most of the work are already overflowing with tasks.

    How would you suggest we address this situation?

    💬 1🔄 1⭐ 0
  • Aug 10, 2026, 2:34 PM

    @shepherd really, I don’t know. I have submitted patches to Guile before, but they are very slow to review my patches. In the age of AI, I can see how it would make the maintainers paranoid about accepting patches from people they don’t personally know. Maybe I should just ask the Guile maintainers if I could become a maintainer myself? I don’t know how that would go, honestly.

    Looking at @wingo ‘s latest blog posts, they seem to be spending most of their time on their new Web Assembly back-end “Hoot” (so you can run Scheme programs in a web browser), improving the performance of the garbage collector, and handling bug requests from the Guix project, which is the biggest “customer” of Guile.

    So the priorities for Guile are more for back-end related things less so than for Scheme standards compliance. It is a leadership decision they have to make, but still very frustrating for us application programmers.

    💬 0🔄 0⭐ 0