home.social

#scheme — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #scheme, aggregated by home.social.

fetched live
  1. Oh yeah, the other thing I had considered was Chicken #Scheme since it had been mentioned a lot recently (due to the new release), but I couldn’t get it to play nicely as an interpreted script via the shebang.

    More generally scheme always seems like it should be a reasonable choice for scripting, but there are so many options that it’s hard to know which to pick.

  2. Oh yeah, the other thing I had considered was Chicken #Scheme since it had been mentioned a lot recently (due to the new release), but I couldn’t get it to play nicely as an interpreted script via the shebang.

    More generally scheme always seems like it should be a reasonable choice for scripting, but there are so many options that it’s hard to know which to pick.

  3. It took me entirely too long just now to remember "make install PREFIX=/usr/local/stow/chicken" when installing the latest CHICKEN, since 6.0.0 came out yesterday.

    code.call-cc.org/

    I'd looked online and I saw recommendations to ./configure with --prefix=/usr/local/stow/chicken but that's not the right way, as linkages then point into /usr/local/stow. You don't want that. You want things to build on the assumption that everything is in /usr/local, and for /usr/local/stow to just be a source of things that are symlinked into place.

    Unrelated, here's a picture of a couple youngsters.

    #chickens #scheme

  4. It took me entirely too long just now to remember "make install PREFIX=/usr/local/stow/chicken" when installing the latest CHICKEN, since 6.0.0 came out yesterday.

    code.call-cc.org/

    I'd looked online and I saw recommendations to ./configure with --prefix=/usr/local/stow/chicken but that's not the right way, as linkages then point into /usr/local/stow. You don't want that. You want things to build on the assumption that everything is in /usr/local, and for /usr/local/stow to just be a source of things that are symlinked into place.

    Unrelated, here's a picture of a couple youngsters.

    #chickens #scheme

  5. A new major version of CHICKEN Scheme was released yesterday. Most notably, CHICKEN fully supports the R⁷RS language standard now.

    lists.nongnu.org/archive/html/

    #Scheme

  6. A new major version of CHICKEN Scheme was released yesterday. Most notably, CHICKEN fully supports the R⁷RS language standard now.

    lists.nongnu.org/archive/html/

    #Scheme

  7. Chicken Scheme 6 is now out, with R7RS-small in the core system. Strings are now UTF-8 internally. The project has a "no LLM code" policy, and you can apparently build the whole system with Zig.

    code.call-cc.org/ #Scheme #Lisp

  8. Chicken Scheme 6 is now out, with R7RS-small in the core system. Strings are now UTF-8 internally. The project has a "no LLM code" policy, and you can apparently build the whole system with Zig.

    code.call-cc.org/ #Scheme #Lisp

  9. 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

  10. 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

  11. Presenting the "Grothenstick"!

    It is my representation of a scheme (in algebraic geometry). The stick is the Zariski topology. It is a crude approximation of the real thing. But it is good enough to carry a sheaf of rings. And adorned with its sheaf of rings, it looks quite reasonable. In fact, when you get used to it, you no longer see the underlying stick; you just see the rings!

    #algebraicgeometry #scheme #grothendieck #mathematics

  12. Presenting the "Grothenstick"!

    It is my representation of a scheme (in algebraic geometry). The stick is the Zariski topology. It is a crude approximation of the real thing. But it is good enough to carry a sheaf of rings. And adorned with its sheaf of rings, it looks quite reasonable. In fact, when you get used to it, you no longer see the underlying stick; you just see the rings!

    #algebraicgeometry #scheme #grothendieck #mathematics