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...)
> Unfortunately, there isn’t yet a lot of cloud SDK support for scheme yet
aws no longer cares what language you create your lambda in.
> You can implement an AWS Lambda runtime in any programming language. A runtime is a program that runs a Lambda function's handler method when the function is invoked. You can include a runtime in your function's deployment package in the form of an executable file named bootstrap. - https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom...
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.
> 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.
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.)
Is it just me or are most of the navigation links on 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/, "Eggs" links to 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 ;-(
It's a very fast Scheme implementation, compiles to C and has a pretty decent [library ecosystem](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’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...)
Congrats, Chicken, on another release!