News from our smart team...

OpenEmbedded/Yocto layer for CHICKEN Scheme

Jul 20, 2012

At O.S. Systems we use CHICKEN a lot. For a background, let us first understand what CHICKEN really is (copied from its website):

“CHICKEN is a compiler for the Scheme programming language. CHICKEN produces portable and efficient C, supports almost all of the R5RS Scheme language standard, and includes many enhancements and extensions. CHICKEN runs on Linux, MacOS X, Windows, and many Unix flavours.”

CHICKEN focus on practical applications of the Scheme programming language. It joins the simplicity and correctness of the language with the practical features required by real-world applications.

Most of the automated build infrastructure used for our embedded products is written in CHICKEN. It is also used in some products like O.S. Kiosk and others. It does fit quite well the embedded world as it has a very small footprint, offers a very good performance (the generated C code can be compiled to native code) and a rapid-development environment (besides the compiler, there are also other tools like an interpreter, a profiler and an extension manager). Thus, CHICKEN help us a lot to face the short deadlines and cost restrictions that projects using embedded operating systems usually have.

To make its use easier for ourselves, we have been working hard to properly integrate it onto OpenEmbedded. This has involved a lot of hardworking to properly understand all the details required to get it cross-compile the compiler, interpreter and also a bunch of available eggs (CHICKEN extensions). We have reached a very nice milestone some weeks ago with the public availability of our Meta-CHICKEN layer. It features CHICKEN 4.7.4 and provides a bunch of ready to use eggs that goes from OpenSSL support to a web framework (awful) completely written in CHICKEN.

So far, the use of it is now quite easy. You just need to enable the layer at your conf/bblayers.conf and it should work out of box.