Chicken Scheme 5.1 - <AUTHOR> https://lists.nongnu.org/archive/html/chicken-users/2019-06/msg00038.html <comment><USER2> Ah Chicken.

I've commented on Chicken before. While I might prefer some of the language choices of Racket, Chicken has just such a fantastic deployment story. You can whip up a quick little script in Chicken and run it through "csc" and voila! You have a compiled executable.

Given how easy the C FFI is, the package collection tends to have pretty decent coverage of functionality you might want. In general I've found that most of the things I've gone looking for have been pretty easy to find.

The ability to compile little self-contained blazing fast startup time executables immediately makes me think of writing serverless / Lambda functions in Chicken. Unfortunately, there isn't yet a lot of cloud SDK support for scheme yet, but maybe I'll look at replicating Cognitect's (and others') autogenerated AWS SDK for Clojure some rainy weekend ([https://github.com/cognitect-labs/aws- api/blob/master/README...](https://github.com/cognitect-labs/aws- api/blob/master/README.md))

Congrats, Chicken, on another release!

<comment><USER3> How does Chicken compare to Gambit/Gerbil, which also compiles to C?

Edit, looks like Gambit supports R5RS, Gerbil supports R7RS ( [https://cons.io/guide/r7rs.html](https://cons.io/guide/r7rs.html) ).

<comment><USER4> Chicken has a lot of useful libraries called "eggs" [1], including many bindings to C libraries. I'd say it's the most practically useful among the three implementations.

[1] [http://eggs.call-cc.org/5/](http://eggs.call-cc.org/5/)

</comment></comment></comment><comment><USER5> > _The most important change since 5.0.0 is a breaking one: Keywords are now > completely distinct from symbols. Keywords are no longer accepted as > identifiers nor as type names, which may mean you 'll need to pipe-quote > them or disable keyword syntax on your projects._

I'm curious to hear why a breaking change like that did not warrant a major version change? Not really a critique - I'm not a user of Chicken Scheme, so I assume that it's no problem for the people who actually use it.

<comment><USER6> This should be OK for pretty much everyone, outside the implementation of Chicken and its libraries.

(There's actually a historical headache in Schemes due to not standardizing keyword objects over a decade ago, and that headache gives implementations some leeway, IMHO. Lots of people really wanted keywords, enough to implement them without a standard or even coordination. So there's a weird messy set of semi-compatible and unnecessarily complex (and sometimes visually ugly) ways of doing keywords in various Schemes. Given that situation, it's difficult to "break" anything further, regarding interpretation of any syntax that looks like keywords. For example, as a Scheme programmer, you probably wouldn't have written any code in the last decade in which you require `:foo` to read as a symbol, at least not without knowing that's non-portable and something you'll have a good chance of needing to change later.)

<comment><USER7> Hell, as far as I know we still haven't standardized on whether `:foo` or `foo:` is the right way to do keywords in scheme

</comment></comment></comment><comment><USER8> Full changelog: [https://code.call- cc.org/releases/5.1.0/NEWS](https://code.call-cc.org/releases/5.1.0/NEWS)

</comment><comment><USER9> A large thread on 5.0: [https://news.ycombinator.com/item?id=18402567](https://news.ycombinator.com/item?id=18402567)

</comment><comment><USER10> Is it just me or are most of the navigation links on [http://code.call- cc.org](http://code.call-cc.org) broken? I.e., "Download" at the top (which should simply link back to that page) links to [https://codecall- ccorg/](https://codecall-ccorg/), "Eggs" links to [https://eggscall- ccorg/](https://eggscall-ccorg/) and also "API", "Tests" and "Bugs" are similarly broken. Only "Wiki" and "Manual" seem to be right. (And if I go to either of those two, then all navigation links seem to be right).

I tried to report this, but sorry, I can't be bothered to send an email to request an account for the bug tracker, then once granted, report the issue. I also tried to see if I could just make a pull request on their website repo, but I couldn't even find that ;-(

</comment><comment><USER11> What is it?

<comment><USER12> It's a very fast Scheme implementation, compiles to C and has a pretty decent [library ecosystem]([http://eggs.call-cc.org/5/](http://eggs.call-cc.org/5/)). I've used it to build service monitoring daemons and various utilities. As of version 5 Chicken supports static compilation and can produce a single-file binary, which makes it super handy for a lot of use-cases.

<comment><USER13> And here I was thinking this was a reference to Chicken.[0]

[0][https://esolangs.org/wiki/Chicken](https://esolangs.org/wiki/Chicken)

<comment><AUTHOR> It's actually a reference to a cat-burglarising penguin.

</comment></comment></comment></comment><comment><USER14> of course their packages / libraries repository is called eggs unlimited :D

</comment><comment><USER15> Huge breaking changes in a minor release update. Oops</comment>


Ask HN: Examples of excellent procedural code? - vanilla-almond Can anyone suggest projects with procedural code (not OOP or Functional Programming) that is modular, readable and well designed?<p>The code can be in any language, include old languages no longer in widespread use e.g Modula-2, Basic etc. <comment><AUTHOR> The source code for TeX, and for METAFONT are thought well of. Here's what Guy L. Steele has to say about them [1]:

"... what I really recommend to you are TeX: The Program and METAFONT: The Program, because these are simply the best-written, best-documented, best- debugged programs of their size ever published. They reward careful study."

I have to admit that I have not read all of them myself, but I have read parts of them, and think those parts are good.

[1] [https://web.archive.org/web/20050317063814/http://www.bookpo...](https://web.archive.org/web/20050317063814/http://www.bookpool.com/ct/184)

</comment><comment><USER2> Linux Kernel, Nginx - both written in C. Readable and well designed are subjective, but number of contributors proves they are maintainable.</comment>


Show HN: Generate DOCX and PDF files from word templates - <AUTHOR> https://documentgeneratingsoftware.com <comment><USER2> "Generate DOCX and PDF files from word templates" Add this sentence to the website. Majority of the page explains billing details. It doesn't explain enough what the service does.

<comment><AUTHOR> Thank you for the feedback, we will update the website to more clearly reflect what our service does.</comment></comment>