Woo! Congrats, @sjamaan! I know how long this has been in the making. Great to see CHICKEN staying at the top of the game.
Thanks @zdsmith! This is an important release for us, yet in some sense only the beginning. People have been holding back several cool patches in the interest of getting this release out, so 5.1.0 is probably going to rock just as hard as this release.
What kinds of things are likely to land in the point release?
Well, we have a milestone for it in Trac so that should give a good idea of all the stuff we would like to tackle. I’m not 100% sure all these tickets will stay on 5.1, but we certainly are going to aim at fixing as many of these as possible. Besides that, people have been thinking about improving our thread scheduler (which is a right mess), the scrutinizer is going to get some attention and there’s even been talk about a native code backend (but that’s more likely to be part of 6.0, so don’t get your hopes up).
There’s also an interesting patch pending that enables conditional library loading, so when you do (if blabla (import foo)), the import will only happen when blabla is true. This is a continuation (haha) of the work we did to make import expressions lexically scoped (which is in 5.0 already), so that in (let () (import foo) ...) the identifiers which foo exports do not leak outside the let. In CHICKEN 4, these kinds of imports were (sort of) raised to the toplevel.
(if blabla (import foo))
(let () (import foo) ...)
Performance is also a focus, as 5.0 is slightly slower than 4.x and in benchmarks we’re somewhat middle of the road, so I really want to see if that can be improved.
I’ve had the Little Schemer sitting on my shelf for far too long. I really need to go through it. I wonder if I can go through the book using CHICKEN.
CHICKEN happens to provide everything you need by default, but any modern implementation will do. You may need to define a few small procedures as you go if your platform doesn’t already have them – atom?, add1 and sub1 from memory, and possibly others – but recent editions include definitions for these and actually executing the programs is almost beside the point anyway, for the first half of the book at least.
Probably, although in my experience every exercise is perfectly doable on paper and gives a welcome break from the screen.
I also prefer going through those exercises on paper. But like @evhan said, you can use CHICKEN, just like about any other Scheme (with a handful of small extra definitions that are nonstandard; IIRC those are mentioned in the preface).
Personally I’d love to see a breakdown of what it takes to go through The * Schemer and SICP outside of racket land. I’ll have to give CHICKEN a try!
I’m not sure what would be needed for SICP or the other schemers, but I’ll keep that in mind.
As for the little schemer, the book itself provides the definition / implementation for every function as you go, except for a few exceptions, such as quoting and define, but it does tell you how they are called in both scheme and common lisp.