Issue 7

0. Introduction

Welcome to issue 7 of the Chicken Gazette, today brought to you by Christian Kellermann.

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

Last week has given egg authors a lot to do. The API for using regular expressions in core chicken has been changed to irregex. This fine library by Alex Shinn has been at work under the hood for quite a while. The change now incorporates irregex as a regular unit in chicken-core, which has a severe impact on how eggs have to include the irregex symbols for usage. Peter Bex has written a nice summary on How to use irregex safely & responsibly on chicken-users.

Due to this change one could see a spike in eggs failing as the API change has been comitted. Mario Goulart, Ivan Raikov and all the other egg authors converted most of the failing eggs to the new API. At the time of writing this 27 eggs still need your help! Please check the eggs you maintain whether they need care.

Peter also has added http-proxy support to http-client and would appreciate testing and feedback on it.

Another Peter, Peter Lane added a wrapper for simple vector machines called libsvm to our egg pool. He also released another version of leptonica. Thanks Peter(s)!

2. The Core - Bleeding Edge Development

First of all as of October 6th chicken's development branch got a new snapshot: 4.6.3. Thanks to all the contributers that made this possible!

From the NEWS file:

the `regex' library unit has been removed and is separately available as an extension which should be fully backwards- compatible

`irregex' is now a core library unit and replaces the `regex' API

`-frwapv' has been added to the default C compiler options

configuration-header fix for BSD systems (thanks to Peter Bex and Christian Kellermann)

added support for `pointer-vectors' (unit `lolevel'): make-pointer-vector pointer-vector? pointer-vector-length pointer-vector-ref pointer-vector-set!

added new foreign type `poiner-vector' which maps to `void **'

new "implicit renaming" macro facility contributed by Peter Bex (see `ir-macro-transformer')

the warning shown when unimported identifiers are used in compiled modules now also shows the name of the procedure where the identifier is referenced (suggested by Alaric Snell-Pym)

the deprecated `random-seed' function has been removed

parameters are now settable and can be modified using `set!' (SRFI-17)

the impementation of overflow-detection for arithmetic operations on fixnums have been replaced and now allow using the full 63-bit range of fixnums on 64-bit systems

fixed serious inlining-bug (thanks to Sven Hartrumpf)

The curious and daring adventurers are invited to try and test this developer release as hard as they can.

3. Chicken Talk

This week the chicken-user mailing list has been talking about the necessary steps for egg authors to fix their eggs with the new irregex changes.

Daishi Kato raised the question on how to handle http multipart/form-data which is still an open path that needs exploring.

Peter asked about the right way to install data files along eggs.

Mario found some inconsistencies in the docs regarding require semantics

4. Omelette Recipes - Tips and Tricks

Today I want to direct your attention to a small egg that may help you in writing nice visualisations: ezxdisp. This wraps the small X11 library written by n-sibata and Morihiko Tamai. Ezxdisp provides you with easy procedures to draw basic 2d and 3d graphics on your X11 display. On Windows the native API is used.

From a small hello world example

( define ezx ( ezx-init 100 100 "Hello, ezxdisp" ) ) ( ezx-set-background ezx ( make-ezx-color 1 1 1 ) ) ( ezx-fillcircle-2d ezx 50 50 25 ( make-ezx-color 1 0 0 ) ) ( ezx-redraw ezx ) ( let loop ( ) ( let-values ( ( ( b _ _ ) ( ezx-pushbutton ezx ) ) ) ( loop ) ) ) ( ezx-quit ezx )

up to a 3d clock all is possible.

This allows small and fast coding of processing like visualisations such as drawing Wolfram's automata.

Have fun drawing!

5. About the Chicken Gazette

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