You are looking at historical revision 32786 of this page. It may differ significantly from its current revision.

Eggs

Introduction

Eggs are CHICKEN-specific extension libraries, conveniently packaged in a source archive. They are stored in a centralized repository and can be downloaded and installed (mostly) automatically. You can create a local mirror of the repository, if you prefer.

The egg index is the official list of eggs for the latest CHICKEN major version (4), along with their documentation. If you are looking for eggs for the previous CHICKEN major version (3), they are here. The eggs for the upcoming new major release (5) are listed here.

You can subscribe to the egg RSS 2.0 feed for CHICKEN 4 or that for the upcoming next release.

Installing eggs

To install any of the eggs, run the following command, replacing name for the egg's name:

chicken-install name

This will download the egg and install it. Enter

chicken-install -help

for a list of options or consult the chicken-install(1) manual page.

Loading eggs

To load and import an egg into your program, use:

 (require-extension egg-name)      ; load library code, import identifiers

To restrict, rename, or prefix imported identifiers, you can split up the load and import pieces:

 (require-library gopher)          ; load library code

 (import (prefix gopher gopher:))  ; import identifiers with a prefix

Keeping eggs in an alternative directory

You can keep the eggs repository in a different repository. See the Extensions/Changing repository location section of the manual for more information on that.

Source code

To obtain the source code to an egg, run

chicken-install -r name

You can also browse the Subversion egg repository on the web (for eggs hosted on call-cc.org -- see the egg documentation for eggs hosted on other sites).

Use the username "anonymous" and the password "".

See http://code.call-cc.org for instructions about how to checkout code for eggs.

Many eggs in the repository contain tags/ and trunk/ directories --- tags/x.y.z corresponding to egg version x.y.z, and trunk/ being the development area --- so the last command may check out more code than you want. You can browse the repository or use svn ls to find a specific version. Additionally, the current "release" version number of each egg can be found on the egg index page.

Contribute

If you want to help document the eggs, please consult the Documentation section at the eggs tutorial page.

If you want to contribute new eggs, you might want to consult the eggs tutorial and the official, automatically built, list of eggs: egg index.

In case you don't have a Subversion account, check the Contribute page to know how to request one.