Issue 2

by Christian Kellermann and Moritz Heidkamp

2010-09-04 +0000

0. Introduction

Since the last issue of the Chicken Gazette, Moritz Heidkamp polished the website compiler Hyde to produce the Chicken Gazette on the call-cc.org server. From now on, all issues can also be read on the web. A nice feature is the addition of an Atom feed to this site, so you can now point your favorite feed reader to http://gazette.call-cc.org/feed.atom and get your weekly update on Chicken delivered to your home! Thanks Moritz for this nice piece of work.

Further kudos go out to Manfred Wischner who kindly granted us the use of his beautiful chicken painting in the new Chicken Gazette logo. The original version can be found over at photocommunity.de.

1. New Infrastructure - Final Cleanups & Salmonella As An Aid For Egg Authors

The move to our new infrastructure is almost complete now. With a fix in Chicken's scheduler (see below), our fine webserver Spiffy now runs without glitches (so far), serving all of http://call-cc.org/ to you.

Also Salmonella, our testing framework for extensions, caught quite a few failing eggs. At the moment of writing we are down to 6. You can check the latest salmonella reports for yourself and if you are an egg author you can even setup an Atom feed for reports on your own (or your favorite) eggs. As Mario Goulart put it:

 If you want to be notified when some egg breaks, you can subscribe to
 the egg feeds. They are updated when the the daily testing process
 fails.  If you have a Subversion account for the eggs repository,
 you can create a custom file for you which summarizes the status
 for all the eggs you want to follow. Take a look at one of the
 custom files under the salmonella-custom-feeds directory. They
 generate feed files at http://tests.call-cc.org/feeds/custom.

2. The Hatching Farm - New Eggs & The Egg Repository

The cleanup expanded over to the egg repository structure. Usually Chicken eggs are stored in the conventional trunk/branches/tags subversion hierarchy. Egg authors release an egg by tagging the trunk with the appropriate version number. This version number is then used by chicken-install and henrietta (the CGI script that runs on call-cc.org and its mirrors to deliver eggs) to determine dependencies. If an egg has not got a tag yet, the version is displayed as trunk. As this makes it hard for other authors to rely on an unversioned egg, Mario Goulart proposed the tagging and release of all these eggs. Progress of this action can be tracked on the bugtracker.

Other than that, there was also some development going on:

awful
Mario's awful web framework has seen the release of version 0.26.0 this week. Apart from improvements and bugfixes (see the version history for details), there is now another screencast of Mario himself developing a simple Number guessing game and in its course demonstrating the fancy web REPL as well as his advanced number guessing skills. Definitely a must see!
hyde
Moritz' little static website compiler has been improved quite a bit to be able to handle the Chicken Gazette properly. Check out this issue's Omelette Recipes to see how it's done!
chicken-doc
Version 0.4.0 of Jim Ursetto's priceless documentation exploration tool has been released this week, too. Note that if you want to upgrade from an older version, you need to re-initialize your documentation repository since its format has changed. See the documentation on how to do that.

Also note that the egg repository crossed revision 20000 this week (the revision in question has been cunningly grabbed by a certain Mr Z). Keep those commits coming, everyone!

3. The Core - Bleeding Edge Development

Since Spiffy at http://www.call-cc.org was experiencing occasional hangs after the infrastructure migration, a lot of investigative work was done to track down the issue. Felix suspected the scheduler to be the culprit and thus reworked it in the safer-scheduler branch which got merged into the experimental branch this week. Testing of the new scheduler is (as always) very welcome, especially if you have programs at hand which make heavy use of threads, of course.

Another effect of the safer-scheduler Chicken seems to be a significant performance improvement for Spiffy as Mario Goulart showed by wgetting the complete GNU Emacs manual (687 individual files totalling 6.3MiB) from it with the old and the new version. The timings are impressive: about 11 seconds with the old version and only 1.5 seconds with the new one, or as Mario put it: "It's like removing (sleep 8) from the code!" However, it is not yet entirely clear what the cause of this performance boost is since the new scheduler is not the only change that has been introduced in this branch so far. We'll keep you posted about further insights on this topic.

4. Chicken Talk

One rather active discussion at chicken-users this week has been started by Jim Pryor. Jim has packaged all eggs for Arch Linux a few months ago and is now in the process of upgrading those to their latest versions. However, he had a bit of trouble properly extracting the required meta data from the eggs which lead to a discussion about the state of packaging Chicken extensions for other package managment systems in general as well as the clean up flurry mentioned above.

Another interesting thread has been started by Christian Kellermann. He is asking about how to export functions from a Chicken library which can be called from C. Felix and Thomas Chust chimed in and gave some insightful advice.

On chicken-hackers there has been some activity regarding the plans of founding a legal entity for the Chicken project. Christian Kellermann had contacted Eric Kow of the Darcs project asking him about their experience with the Software Freedom Conservancy and shared his reply with us. Mario Goulart pointed out that the OpenEmbedded project uses a German e.V. as its legal entity which might very well be an option for the Chicken project, too.

5. Omelette Recipes - Tips and Tricks

This is the first installment of a new Chicken Gazette section which will feature interesting Eggs and how to use them as well as general Chicken tips.

This week's featured egg is Hyde, the static website compiler which is used to generate the new Chicken Gazette website. Its intent and use are similar to those of Webgen or Jekyll. It allows mixing pages of different markup languages and generates a complete static website with a single command. It is not yet as feature-rich as its contenders but it's easy to extend and of course it enjoys the general merits stemming from being written in Scheme.

To get a general idea of how to use Hyde, check out the example session featured in its documentation. For a real-world use case, check out the Chicken Gazette's sources!

The chicken image used in the logo is kindly provided and © 2010 by Manfred Wischner