Issue 11

by Moritz Heidkamp and Christian Kellermann

2010-11-08 +0000

0. Introduction

Welcome to issue 11 of the Chicken Gazette, live from the Netherlands!

1. The Hatching Farm

Kon Lovett released a few new versions of his eggs this week:

Our new contributor Alan Post has created another two eggs to further develop the foundations of Lojbanistan: jbogenturfa'i, a parser for the Lojban language based on his recently contributed genturfa'i packrat parser as well as kiksispe'i, an implementation of the game "Where Are Your Keys?" for Lojban. Both eggs are yet to be implemented though.

Felix Winkelmann tagged version 1.2 of pstk which merely removes the dependency on posix. He also ported yet another extension from Scheme Now!, namely showdigest.

Moritz Heidkamp released version 0.0.4 of the zmq egg in which a few critical problems which could lead to memory leaks and race conditions were fixed. Based on that, he contributed a new egg named remote-mailbox-threads which adds the ability to send messages to mailbox-threads via ZeroMQ sockets (e.g. TCP, named pipes etc.).

2. Yolklore

As you may have read on our mailing lists, a small team of chicken enthusiasts has been present at T-DOSE, a small and nice convention of open source activists in Eindhoven, NL.

Peter Bex, Felix, Christian Kellermann, Moritz and Jim Ursetto made it to Eindhoven. Our special thanks goes to Jim and his family for hopping over the Atlantic Ocean to be with us!

We spent the weekend there answering questions about Chicken Scheme, Scheme, Lisp And Lisp-like languages in general. There we covered the full range from novice to detailed technical questions. All in all it was a great opportunity to tell the Chicken Story.

Some evidence has been put in the gallery.

During the preparations of the event Mario Goulart, Felix and Peter set up a demonstration directory containig small programs which made it easy for us to show running Chicken code.

In addition to that Peter and Christian created a small leaflet providing an overview of Chicken Scheme. You are invited to reuse this for your local user groups! We would like to thank Conrad Barski for the kind permission to use his drawings for that.

3. Chicken Talk

Mario pointed out on chicken-hackers that umask support is missing in the chicken posix unit. This is the first time to test our proposed "change request" procedure.

As Hugo Arregui found out locales other than "C" might cause problems with srfi-19. This resulted in an ongoing effort to update srfi-19 localisations. Thanks for that!

Matthew Welland asked for people interested in writing an extension to the clutter gui library. As Ivan Raikov and Felix Winkelmann point out adding a different backend to fps would be another interesting way to scratch this often felt itch.

4. Omelette Recipes

Today we would like to present to you the handy autocompile egg. It pretty much does what the name indicates: Compile your programs automatically. This is useful for helper programs and little scripts since you don't have to bother calling csc yourself or even create a Makefile but still get the improved performance of a compiled program (except for the first run) and, as a bonus, you can use the FFI. On top of that, it's super easy to use: The egg installs a program named chicken-scheme which you use instead of csi. For example:

((foreign-lambda int printf c-string)
 (string-append (car (command-line-args)) "\n"))

Now run it like this:

 chicken-scheme printf.scm hello

And it will print hello. What happened now is that chicken-scheme compiles the program to a file in a cache directory inside your $HOME by default (run chicken-scheme -cache to get the actual path that is used). The file's name will be a checksum of the program source which is calculated before every run, so subsequent runs will re-use the existing binary in the cache directory. If the source has changed, it will just re-compile it. Note that it doesn't remove old cached versions so be sure to have an eye on that directory. To clean the cache run chicken-scheme -purge.

There are a few environment variables which influence chicken-scheme's behavior. See the egg documentation for details.

So go ahead, install autocompile right away and start using it in your shebang lines!

5. About the Chicken Gazette

The Gazette is produced weekly by a volunteer from the Chicken community. The latest issue can be found at or you can follow it in your feed reader at If you'd like to write an issue, check out the instructions and come and find us in #chicken on Freenode!

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