Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Chicken Scheme 5.1 (nongnu.org)
101 points by karmakaze on June 23, 2019 | hide | past | favorite | 21 comments


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

Congrats, Chicken, on another release!


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


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


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/


Of all schemes I tried, chicken has the easiest way to jump to scheme wagon. Add friendly community here.


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


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


Not everyone uses semantic versioning. In chicken, point releases can deprecate or remove functionallity. See http://wiki.call-cc.org/development-process for details.




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


What is it?


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.


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

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


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


I wondered the same thing. Apparently a Scheme to C translator. http://wiki.call-cc.org/man/5/Getting%20started


Chicken is also an interpreter.


Chicken Scheme is a Scheme variant. It compiles to C. => https://www.call-cc.org/


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


Huge breaking changes in a minor release update. Oops




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: