
Chicken Scheme 5.1 - karmakaze
https://lists.nongnu.org/archive/html/chicken-users/2019-06/msg00038.html
======
peatmoss
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!

~~~
kristianp
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) ).

~~~
jonathanstrange
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/)

------
vanderZwan
> _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.

~~~
neilv
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.)

~~~
NikkiA
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

------
earenndil
Full changelog: [https://code.call-
cc.org/releases/5.1.0/NEWS](https://code.call-cc.org/releases/5.1.0/NEWS)

------
dang
A large thread on 5.0:
[https://news.ycombinator.com/item?id=18402567](https://news.ycombinator.com/item?id=18402567)

------
BlackFingolfin
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 ;-(

------
ykevinator
What is it?

~~~
Plugawy
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.

~~~
i_am_proteus
And here I was thinking this was a reference to Chicken.[0]

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

~~~
karmakaze
It's actually a reference to a cat-burglarising penguin.

------
blondin
of course their packages / libraries repository is called eggs unlimited :D

------
rurban
Huge breaking changes in a minor release update. Oops

