Changeset 31126 in project


Ignore:
Timestamp:
07/18/14 02:19:01 (6 years ago)
Author:
Mario Domenech Goulart
Message:

Properly capitalize CHICKEN on the wiki directory (only first level).

I used the following shell script to change things:

while IFS= read -d $'\0' -r file ; do

sed -i 's/Chicken/CHICKEN/g' "$file"

done < <(find wiki -maxdepth 1 -type f -print0 )

Some files have been manually reverted after that, since some
substitutions don't apply:

  • friedly-chicken (repl banner)
  • survey2011 (Chicken in URI paths)
  • chickenista-guide (Chickenista)

I hope the link canonicalization thing will be on my side.

Location:
wiki
Files:
80 edited

Legend:

Unmodified
Added
Removed
  • wiki/A script to browse the HTML manual

    r22679 r31126  
    7878(when you press F7 on the current symbol you get a browser window
    7979with the documentation for that symbol, or nothing if there is no such
    80 documentation in the Chicken manual).
     80documentation in the CHICKEN manual).
  • wiki/Building Chicken with MacOS X

    r8294 r31126  
    11
    2 == To build a Universal Binary Chicken on Leopard that also runs on Tiger you do:
     2== To build a Universal Binary CHICKEN on Leopard that also runs on Tiger you do:
    33
    44        export MACOSX_DEPLOYMENT_TARGET=10.4
  • wiki/Chicken Invaders, with Continuations

    r23665 r31126  
    11<enscript highlight=scheme>
    2  ;;; Chicken Invaders bm2005-sep-03
     2 ;;; CHICKEN Invaders bm2005-sep-03
    33 ;;; Catch the eggs in your basket
    44 ;;; usage: csi invader.scm
  • wiki/Editing Chicken code

    r24092 r31126  
    33== Using the REPL
    44
    5 The default Chicken REPL (Read Eval Print Loop) can be accessed by executing the {{csi}} program.
     5The default CHICKEN REPL (Read Eval Print Loop) can be accessed by executing the {{csi}} program.
    66
    77 $ csi
    88 CHICKEN
    9  (c)2008-2011 The Chicken Team
     9 (c)2008-2011 The CHICKEN Team
    1010 (c)2000-2007 Felix L. Winkelmann
    1111 Version 4.7.0
  • wiki/Eggs Unlimited 2

    r18465 r31126  
    44== Eggs Unlimited (release branch 2, updated Wed Feb 27 00:17:28 2008)
    55
    6 A library of extensions for the Chicken Scheme system.
     6A library of extensions for the CHICKEN Scheme system.
    77
    88=== Installation
     
    4141<chickenegg name="autoload" license="BSD" author="Alex Shinn" description="Load modules lazily"/>
    4242
    43 <chickenegg name="awk" license="LGPL" author="Olin Shivers, adapted to Chicken by [[/users/felix winkelmann|felix winkelmann]]" description="The SCSH/PLT 'awk' macro"/>
     43<chickenegg name="awk" license="LGPL" author="Olin Shivers, adapted to CHICKEN by [[/users/felix winkelmann|felix winkelmann]]" description="The SCSH/PLT 'awk' macro"/>
    4444
    4545<chickenegg name="codewalk" license="BSD" author="felix winkelmann" description="macro-expansion and code-walking"/>
     
    7575<chickenegg name="loopy-loop" license="public domain" author="Alex Shinn" description="Alex Shinn's LOOP macro"/>
    7676
    77 <chickenegg name="make" license="LGPL" author="PLT, adapted to Chicken by [[/users/felix winkelmann|felix winkelmann]]" description="The PLT 'make' macro"/>
     77<chickenegg name="make" license="LGPL" author="PLT, adapted to CHICKEN by [[/users/felix winkelmann|felix winkelmann]]" description="The PLT 'make' macro"/>
    7878
    7979<chickenegg name="match-action" license="BSD" author="Kon Lovett" description="Match extension with explicit success & fail actions"/>
     
    124124<chickenegg name="aquaterm" license="BSD" author="Thomas Chust" description="Bindings to the C API for AquaTerm"/>
    125125
    126 <chickenegg name="cairo" license="LGPL" author="Michael Bridgen and Tony Garnock-Jones" description="Chicken bindings for Cairo, a vector graphics library"/>
    127 
    128 <chickenegg name="epeg" license="BSD" author="Peter Bex" description="Chicken bindings for the JPEG thumbnail creation library epeg"/>
     126<chickenegg name="cairo" license="LGPL" author="Michael Bridgen and Tony Garnock-Jones" description="CHICKEN bindings for Cairo, a vector graphics library"/>
     127
     128<chickenegg name="epeg" license="BSD" author="Peter Bex" description="CHICKEN bindings for the JPEG thumbnail creation library epeg"/>
    129129
    130130<chickenegg name="ezxdisp" license="LGPL" author="n-sibata and Morihiko Tamai" description="A simple 2D and 3D graphics library for X11"/>
     
    140140<chickenegg name="glut" license="BSD" author="felix winkelmann" description="GLUT bindings"/>
    141141
    142 <chickenegg name="imlib2" license="BSD" author="Peter Bex" description="Chicken bindings for the Imlib2 image library"/>
     142<chickenegg name="imlib2" license="BSD" author="Peter Bex" description="CHICKEN bindings for the Imlib2 image library"/>
    143143
    144144<chickenegg name="octave" license="BSD" author="Pierre-Alexandre Fournier" description="Interface to GNU/Octave"/>
     
    159159<table>
    160160
    161 <chickenegg name="dissector" license="BSD" author="Taylor Campbell" description="An object inspector for Chicken"/>
     161<chickenegg name="dissector" license="BSD" author="Taylor Campbell" description="An object inspector for CHICKEN"/>
    162162
    163163<chickenegg name="gdb" license="MIT" author="Tony Sidaway <tonysidaway@gmail.com>" description="GDB-MI interface to the GNU debugger"/>
     
    270270<chickenegg name="sfio" license="BSD" author="Category 5" description="Interface to AT&T's Safe/Fast I/O Library"/>
    271271
    272 <chickenegg name="srfi-38" license="SRFI" author="Al Petrofsky and Ray Dillinger" description="A Chicken version of the SRFI-38 reference implementation"/>
     272<chickenegg name="srfi-38" license="SRFI" author="Al Petrofsky and Ray Dillinger" description="A CHICKEN version of the SRFI-38 reference implementation"/>
    273273
    274274<chickenegg name="stty" license="BSD" author="Alex Shinn" description="stty-style interface to termios"/>
     
    285285<chickenegg name="gdbm" license="BSD" author="Alex Shinn" description="GNU DBM interface"/>
    286286
    287 <chickenegg name="geoip" license="MIT" author="Arto Bendiken" description="Chicken bindings for the GeoIP C API"/>
     287<chickenegg name="geoip" license="MIT" author="Arto Bendiken" description="CHICKEN bindings for the GeoIP C API"/>
    288288
    289289<chickenegg name="metakit" license="MIT" author="Sergey Khorev" description="An interface to the Metakit database"/>
    290290
    291 <chickenegg name="mysql" license="MIT" author="Toby Butzon" description="MySQL bindings for Chicken"/>
     291<chickenegg name="mysql" license="MIT" author="Toby Butzon" description="MySQL bindings for CHICKEN"/>
    292292
    293293<chickenegg name="postgresql" license="BSD" author="Johannes Groedem" description="Some simple bindings for PostgreSQL's C-api"/>
     
    388388<chickenegg name="irnc-base" license="BSD" author="Tony Sidaway <tonysidaway@gmail.com> and Martin Sidaway <martinsidaway@yahoo.co.uk>" description="Base package for the ironchicken bot framework for Mediawiki"/>
    389389
    390 <chickenegg name="mime" license="BSD" author="Shiro Kawai, ported to Chicken by Hans Bulfone" description="Parse MIME Messages"/>
     390<chickenegg name="mime" license="BSD" author="Shiro Kawai, ported to CHICKEN by Hans Bulfone" description="Parse MIME Messages"/>
    391391
    392392<chickenegg name="phoghorn" license="BSD" author="Peter Bex" description="A thumbnail gallery library for spiffy"/>
     
    486486<chickenegg name="blas" license="BSD" author="felix winkelmann" description="An interface to level 1, 2 and 3 BLAS routines"/>
    487487
    488 <chickenegg name="complex" license="BSD" author="Thomas Christian Chust" description="Support for complex numbers in Chicken"/>
     488<chickenegg name="complex" license="BSD" author="Thomas Christian Chust" description="Support for complex numbers in CHICKEN"/>
    489489
    490490<chickenegg name="fpfz" license="BSD" author="Kon Lovett" description="Floating-point Comparison With Epsilon"/>
     
    626626<chickenegg name="srfi-4-utils" license="GPL" author="Ivan Raikov" description="Utility functions for SRFI-4 vectors."/>
    627627
    628 <chickenegg name="srfi-40" license="SRFI" author="Based on the original SRFI 40 reference implementation by Philip L. Bewig and Andre von Tonder, modified for Chicken by Category 5" description="SRFI-40 (Streams)"/>
     628<chickenegg name="srfi-40" license="SRFI" author="Based on the original SRFI 40 reference implementation by Philip L. Bewig and Andre von Tonder, modified for CHICKEN by Category 5" description="SRFI-40 (Streams)"/>
    629629
    630630<chickenegg name="srfi-42" license="SRFI" author="Sebastian Egner" description="SRFI-42 (Eager comprehensions)"/>
     
    634634<chickenegg name="srfi-66" license="BSD" author="felix" description="Octet vectors"/>
    635635
    636 <chickenegg name="srfi-85" license="SRFI" author="Will Clinger, modified for Chicken by John Cowan" description="Recursive equivalence predicates"/>
    637 
    638 <chickenegg name="srfi-95" license="public domain" author="Richard O'Keefe, modified for Chicken by John Cowan" description="Sorting and merging"/>
     636<chickenegg name="srfi-85" license="SRFI" author="Will Clinger, modified for CHICKEN by John Cowan" description="Recursive equivalence predicates"/>
     637
     638<chickenegg name="srfi-95" license="public domain" author="Richard O'Keefe, modified for CHICKEN by John Cowan" description="Sorting and merging"/>
    639639
    640640<chickenegg name="stack" license="BSD" author="Kon Lovett" description="Provides LIFO queue (stack) operations"/>
     
    644644<chickenegg name="topological-sort" license="public domain" author="Mikael Djurfeldt" description="Topological sorting"/>
    645645
    646 <chickenegg name="treap" license="GPL" author="Oleg Kiselyov; packaged for Chicken Scheme by Ivan Raikov" description="A sorted dictionary data structure based on randomized search trees."/>
     646<chickenegg name="treap" license="GPL" author="Oleg Kiselyov; packaged for CHICKEN Scheme by Ivan Raikov" description="A sorted dictionary data structure based on randomized search trees."/>
    647647
    648648<chickenegg name="vector-lib" license="Artistic" author="Taylor Campbell, with CHICKEN-specific modifications by William S. Annis. Adapted to final version and bugs fixed by Zbigniew Szadkowski" description="A port of the reference implementation of SRFI-43 with additions and fixes"/>
     
    798798<table>
    799799
    800 <chickenegg name="PS-tk" license="BSD" author="Nils M Holm [Chicken: Kon Lovett]" description="PS-tk"/>
     800<chickenegg name="PS-tk" license="BSD" author="Nils M Holm [CHICKEN: Kon Lovett]" description="PS-tk"/>
    801801
    802802<chickenegg name="bb" license="BSD" author="felix winkelmann" description="An easy-to-use GUI toolkit based on FLTK"/>
  • wiki/Fink packages

    r4412 r31126  
    11[[tags:macos]]
    22
    3 An initial Fink .info file is available for Chicken.  To compile and
    4 install Chicken under Fink, please copy and paste the contents below
     3An initial Fink .info file is available for CHICKEN.  To compile and
     4install CHICKEN under Fink, please copy and paste the contents below
    55to {{/sw/fink/dists/local/main/finkinfo/chicken.info}}.
    66
  • wiki/Hackathon1

    r14119 r31126  
    1 == The first Chicken Hackathon!
     1== The first CHICKEN Hackathon!
    22
    33The first chicken hackathon will be held in the weekend of 23-24 February, on IRC in #chicken on irc.freenode.net
     
    88  - Please do not touch the documentation of any of the eggs maintained by [[ivan raikov|me]]. It is already annoying enough to deal with eggs that have documentation on the wiki but not in their directory in the SVN tree. -Ivan
    99   
    10 * Document core Chicken stuff (needs to be broken up into more specific chunks, core committers, please indicate what's not documented yet)
     10* Document core CHICKEN stuff (needs to be broken up into more specific chunks, core committers, please indicate what's not documented yet)
    1111
    1212* Improve pre/post egg commit hooks
     
    1414** general cleaning and refactoring
    1515
    16 * Improve the Chicken performance on [[http://shootout.alioth.debian.org/|The Computer Language Benchmarks Game]]
     16* Improve the CHICKEN performance on [[http://shootout.alioth.debian.org/|The Computer Language Benchmarks Game]]
    1717
    1818=== Documentation on wiki, docs in eggs
     
    863863</table>
    864864
    865 === Introductions to Chicken
    866 
    867 To attract more programmers from other languages, we could create a series of "Chicken for Blub Programmers," where Blub could be PHP, Ruby, Python, SML, whatever. More specifically, here are links to skeleton pages:
    868 
    869 * [[Chicken for PHP Programmers]] -- [[Mark Fredrickson]] volunteers for this one (since nothing was done yet, I ([[Jean-Philippe Theberge]]) have started the page)
    870 * [[Chicken for Ruby Programmers]] -- [[Mark Fredrickson]] also volunteers for this one, as he just said he would do a presentation at his local Ruby group.
     865=== Introductions to CHICKEN
     866
     867To attract more programmers from other languages, we could create a series of "CHICKEN for Blub Programmers," where Blub could be PHP, Ruby, Python, SML, whatever. More specifically, here are links to skeleton pages:
     868
     869* [[CHICKEN for PHP Programmers]] -- [[Mark Fredrickson]] volunteers for this one (since nothing was done yet, I ([[Jean-Philippe Theberge]]) have started the page)
     870* [[CHICKEN for Ruby Programmers]] -- [[Mark Fredrickson]] also volunteers for this one, as he just said he would do a presentation at his local Ruby group.
    871871                                                                      [[Raymond Medeiros]] [[Peter Bex]]
    872 * [[Chicken for Perl Programmers]]
    873 * [[Chicken for Python Programmers]]
    874 * [[Chicken for Java Programmers]]
     872* [[CHICKEN for Perl Programmers]]
     873* [[CHICKEN for Python Programmers]]
     874* [[CHICKEN for Java Programmers]]
    875875
    876876
     
    890890
    891891* Finished [[wmiirc]] documentation -- [[Peter Bex]]
    892 * An initial version of [[Chicken for Python programmers]] -- [[Mario Domenech Goulart]]
     892* An initial version of [[CHICKEN for Python programmers]] -- [[Mario Domenech Goulart]]
    893893* An initial version of [[chicken-for-ruby-programmers]] -- [[Peter Bex]]
    894894* Managed to break the wiki -- [[Peter Bex]]
  • wiki/Installation

    r27938 r31126  
    33[[tags:platforms installation linux bsd mac windows]]
    44
    5 There are two ways to install Chicken: from a package, or manually. Package installation is probably easier, but manual installation will most likely get you a more current version.
     5There are two ways to install CHICKEN: from a package, or manually. Package installation is probably easier, but manual installation will most likely get you a more current version.
    66
    77Whichever version you choose, you will probably also want to install the readline egg, which will give you more features in the CSI interpreter.
     
    9191=== RPM
    9292
    93 Chicken does not currently have an RPM package.
     93CHICKEN does not currently have an RPM package.
    9494
    9595== Manual Installation
    9696
    97 Manual installation is your best bet for getting the latest and greatest version of Chicken.
     97Manual installation is your best bet for getting the latest and greatest version of CHICKEN.
    9898
    9999=== Stable Releases
    100100
    101 To install a stable release of Chicken, head to the [[/releases|releases]] page and download a tarball. Check out the README file for installation instructions.
     101To install a stable release of CHICKEN, head to the [[/releases|releases]] page and download a tarball. Check out the README file for installation instructions.
    102102
    103103=== Development Version
    104104
    105 See the [[http://code.call-cc.org]] page for instructions about how to obtaing development versions of Chicken.
     105See the [[http://code.call-cc.org]] page for instructions about how to obtaing development versions of CHICKEN.
  • wiki/SRFI-conformance

    r30391 r31126  
    1 == Chicken SRFI compliance
     1== CHICKEN SRFI compliance
    22
    33What follows is a listing of the current SRFIs, along with the status
    4 of the SRFI in Chicken. Notes appear after the table.
     4of the SRFI in CHICKEN. Notes appear after the table.
    55
    66The following statuses are defined.
    77
    8 ; builtin : the SRFI is provided in the basic Chicken system.
    9 ; library : the SRFI  is provided with the basic Chicken system, but a {{(use ...)}} must be performed in order to access it.
     8; builtin : the SRFI is provided in the basic CHICKEN system.
     9; library : the SRFI  is provided with the basic CHICKEN system, but a {{(use ...)}} must be performed in order to access it.
    1010; ''{{egg-name}}'' : the SRFI is provided in a separate egg, which can be downloaded via {{chicken-install}}.
    11 ; NA : the SRFI is not presently available for Chicken. (This doesn't necessarily mean that the SRFI ''can't'' be implemented, only that it hasn't been so far.)
     11; NA : the SRFI is not presently available for CHICKEN. (This doesn't necessarily mean that the SRFI ''can't'' be implemented, only that it hasn't been so far.)
    1212
    1313'''Final SRFIs'''
     
    92922.  Only documented under {{eval-when}}.
    9393
    94 3. Chicken supports a shebang line, but executable names don't comply
     943. CHICKEN supports a shebang line, but executable names don't comply
    9595with SRFI-22.
    9696
    97 4. Chicken also implements the now-withdrawn SRFI-12 for error
     974. CHICKEN also implements the now-withdrawn SRFI-12 for error
    9898handling.
    9999
     
    116116'''Notes'''
    117117
    118 1. Chicken  implements the now-withdrawn SRFI-12 for error
     1181. CHICKEN  implements the now-withdrawn SRFI-12 for error
    119119handling. Users can choose to install the {{srfi-34}} egg instead.
    120120
  • wiki/Software

    r30687 r31126  
    11[[tags: navigation]]
    22
    3 == Software written in Chicken Scheme
     3== Software written in CHICKEN Scheme
    44
    5 This page has a list of applications that are based on Chicken.
     5This page has a list of applications that are based on CHICKEN.
    66
    77Feel free to add new entries.
     
    1212; [[/egg/ugarit|Ugarit]]: a backup/archival system based around content-addressible storage.
    1313; [[http://incubot.org/|incubot]]: an IRC bot which runs on Freenode's #scheme
    14 ; [[/egg/vandusen|Vandusen]]: another IRC bot, this one runs in Chicken's official channel (#chicken on Freenode)
     14; [[/egg/vandusen|Vandusen]]: another IRC bot, this one runs in CHICKEN's official channel (#chicken on Freenode)
    1515; [[http://synthcode.com/scheme/hato/|Hato]] : [[Alex Shinn]]'s Mail Transfer Agent.
    16 ; [[http://double.co.nz/scheme/modal-web-server.html|Modal Web Server Example]] : Chris Double has written a demonstration for a continuation based web framework using Chicken.
     16; [[http://double.co.nz/scheme/modal-web-server.html|Modal Web Server Example]] : Chris Double has written a demonstration for a continuation based web framework using CHICKEN.
    1717; [[/egg/qwiki|qwiki]] : The wiki software behind this wiki (running on [[/egg/spiffy|Spiffy the webserver]]).
    1818; [[Tehila]] : A 3d game engine for rapid development and prototyping.
    19 ; [[http://auscio.com|AuScio]] : A simple cross-platform metal price monitor combining the qt-light, tcp and srfi-18 multi-threading eggs. The application is deployed as a native executable with Chicken's compiler.
     19; [[http://auscio.com|AuScio]] : A simple cross-platform metal price monitor combining the qt-light, tcp and srfi-18 multi-threading eggs. The application is deployed as a native executable with CHICKEN's compiler.
    2020; [[https://github.com/ckeen/pastiche|Pastiche]] : An [[/egg/awful|awful]] pasting application.  That's the software running at [[http://paste.call-cc.org|http://paste.call-cc.org]]
    2121; [[/egg/chickadee|chickadee]] : a web interface to [[/egg/chicken-doc|chicken-doc]], the software that serves up our [[http://api.call-cc.org|online API documentation]].
    22 ; [[/eggref/4/hyde|Hyde]] : A static website compiler.  This is being used by several Chicken users for their blogs and other personal sites.
     22; [[/eggref/4/hyde|Hyde]] : A static website compiler.  This is being used by several CHICKEN users for their blogs and other personal sites.
    2323; [[https://www.knodium.com/|Knodium]]: An online collaboration tool for students and academics.
    2424
    25 === Projects that include bindings for Chicken
     25=== Projects that include bindings for CHICKEN
    2626
    27 ; [[http://nebl.cse.unr.edu/wiki/Software:Quake2AI|Quake2AI library]]: A library that allows you to use Chicken for scripting AI in Quake 2, a 3D shoot-em-up game.
     27; [[http://nebl.cse.unr.edu/wiki/Software:Quake2AI|Quake2AI library]]: A library that allows you to use CHICKEN for scripting AI in Quake 2, a 3D shoot-em-up game.
    2828; [[http://modis.ispras.ru/sedna/|Sedna]] : An industrial strength native XML database for Windows (written in C++), which offers Scheme bindings, released by The Institute of System Programming of the Russian Academy of Science.
    2929
    3030== Inactive Projects
    3131
    32 ; [[/eggref/3/mayo|mayo]] : a Scheme source-level debugger for Chicken
     32; [[/eggref/3/mayo|mayo]] : a Scheme source-level debugger for CHICKEN
    3333; [[gl-suite]] : A suite of OpenGL based [[eggs]] and APIs.
    34 ; [[http://sourceforge.net/projects/funk|funk]] : Functional fuzzing in Chicken scheme
    35 ; [[http://pi7.fernuni-hagen.de/hartrumpf/scop/|SCOP]]: Sven Hartrumpf ported the SCOP networking library by David Ingram to C and also implemented bindings to Chicken and Bigloo.
    36 ; [[https://github.com/pupeno/scons_chicken|Support to the SCons build-tool]] : Pupeno added Chicken support to the SCons build-tool.
     34; [[http://sourceforge.net/projects/funk|funk]] : Functional fuzzing in CHICKEN scheme
     35; [[http://pi7.fernuni-hagen.de/hartrumpf/scop/|SCOP]]: Sven Hartrumpf ported the SCOP networking library by David Ingram to C and also implemented bindings to CHICKEN and Bigloo.
     36; [[https://github.com/pupeno/scons_chicken|Support to the SCons build-tool]] : Pupeno added CHICKEN support to the SCons build-tool.
    3737; [[thumbtribes]] : low bandwidth, location-aware communication
    3838; [[http://www.metapaper.net/lisovsky/ad/hive/|Hive]]: A source code manager by Kirill Lisovsky.
    39 ; [[Iron Chicken]] : a Chicken-based [[Wikipedia:Internet bot|bot]] framework for [[Wikipedia:Wikipedia|Wikipedia]] and other wikis that use the [[Wikipedia:MediaWiki|MediaWiki]] software.  More generally, a project to make Chicken Scheme into a query language for MediaWiki.  To put it another way, a project to harness the power of the collaborative wiki environment as a software development platform.
     39; [[Iron CHICKEN]] : a CHICKEN-based [[Wikipedia:Internet bot|bot]] framework for [[Wikipedia:Wikipedia|Wikipedia]] and other wikis that use the [[Wikipedia:MediaWiki|MediaWiki]] software.  More generally, a project to make CHICKEN Scheme into a query language for MediaWiki.  To put it another way, a project to harness the power of the collaborative wiki environment as a software development platform.
  • wiki/allocating-c-structures-under-control-of-the-chicken-gc

    r14110 r31126  
    1 == Allocating C Structures Under the Control of the Chicken GC
     1== Allocating C Structures Under the Control of the CHICKEN GC
    22
    33[[toc:]]
    44
    5 This tip describes how to allocate C structures such that they will be under the control of the Chicken garbage collector.
     5This tip describes how to allocate C structures such that they will be under the control of the CHICKEN garbage collector.
    66
    7 Chicken has an unusual garbage collection scheme, roughly following the procedure described in [[http://home.pipeline.com/~hbaker1/CheneyMTA.html|Cheney on the MTA, Part II]].  Please keep in mind the manual sections [[/manual/Data representation|Data representation]] and [[/manual/Interface to external functions and variables|Interface to external functions and variables]] while you read this.
     7CHICKEN has an unusual garbage collection scheme, roughly following the procedure described in [[http://home.pipeline.com/~hbaker1/CheneyMTA.html|Cheney on the MTA, Part II]].  Please keep in mind the manual sections [[/manual/Data representation|Data representation]] and [[/manual/Interface to external functions and variables|Interface to external functions and variables]] while you read this.
    88
    99The code in this section will be a mix of C and Scheme; recall that you can embed C code directly in your Scheme programs using {{(foreign-declare CODE-STRING)}}.
    1010
    11 === Chicken GC Basics
     11=== CHICKEN GC Basics
    1212
    13 The Chicken GC expects all non-immediate objects to have a "tag" value in their first {{sizeof(C_header)}} bytes.  This tag stores three pieces of information:
     13The CHICKEN GC expects all non-immediate objects to have a "tag" value in their first {{sizeof(C_header)}} bytes.  This tag stores three pieces of information:
    1414
    1515* The type of the object (i.e. {{C_STRING_TYPE}}, {{C_VECTOR_TYPE}}, etc).
     
    4242</enscript>
    4343
    44 to represent this object within Chicken.  Unfortunately, if we do that, the procedures {{body-m}}, {{body-q}}, etc, will expect to have foreign pointer objects which contain a pointer to a {{body}} object.  But, this body object must be allocated outside the GC-managed heap, because the pointer in a foreign-pointer is not scanned during garbage collection.  To manage it, we must either set a finalizer for the pointer object which contains it (using {{set-finalizer!}}) or deallocate it by hand.  Neither of these is an attractive option for lots of data (maybe we're running a [[http://www.mpa-garching.mpg.de/galform/millennium/|Big Simulation]]).
     44to represent this object within CHICKEN.  Unfortunately, if we do that, the procedures {{body-m}}, {{body-q}}, etc, will expect to have foreign pointer objects which contain a pointer to a {{body}} object.  But, this body object must be allocated outside the GC-managed heap, because the pointer in a foreign-pointer is not scanned during garbage collection.  To manage it, we must either set a finalizer for the pointer object which contains it (using {{set-finalizer!}}) or deallocate it by hand.  Neither of these is an attractive option for lots of data (maybe we're running a [[http://www.mpa-garching.mpg.de/galform/millennium/|Big Simulation]]).
    4545
    4646So, we'll have to do things by hand.  First, let's define the body tag.  Since bodies will be fixed-size bytevectors, we'll use
     
    7575Note the return type of {{scheme-object}}, since a {{body}} is a scheme object.  Note also, that we allocate {{result}} on the stack, and "return" the address of {{result}} at the end of the function.  (The {{foreign-primitive}} actually never returns; it calls its continuation with the return value.)
    7676
    77 We can define a {{body?}} predicate.  This predicate is not exact---it cannot distinguish between bodies and strings of the same length---but there is no way to make it exact with Chicken's memory model as it stands now.
     77We can define a {{body?}} predicate.  This predicate is not exact---it cannot distinguish between bodies and strings of the same length---but there is no way to make it exact with CHICKEN's memory model as it stands now.
    7878
    7979<enscript highlight=c>
     
    125125=== Allocating large data
    126126
    127 This is also not a good idea---it's easy to overflow the stack (which is the nursery in the generational GC that Chicken uses).  It's non-trivial to allocate some data directly in the second generation.  If you absolutely must do this, then have a look at {{C_allocate_vector}} in the {{runtime.c}} file of the Chicken distribution.  Good luck.
     127This is also not a good idea---it's easy to overflow the stack (which is the nursery in the generational GC that CHICKEN uses).  It's non-trivial to allocate some data directly in the second generation.  If you absolutely must do this, then have a look at {{C_allocate_vector}} in the {{runtime.c}} file of the CHICKEN distribution.  Good luck.
    128128
    129129=== Why Would You Want to do This?
     
    131131==== Speed
    132132
    133 Chicken's allocation is '''fast'''.  Much faster than {{malloc}} and {{free}}---it just requires bumping the stack pointer.  So, if you're looking for speed (which you probably are if you're writing C code for Chicken) you're much better off using it than trying to {{malloc}} your datastructures and stuff them into Chicken's {{pointer}} type.
     133CHICKEN's allocation is '''fast'''.  Much faster than {{malloc}} and {{free}}---it just requires bumping the stack pointer.  So, if you're looking for speed (which you probably are if you're writing C code for CHICKEN) you're much better off using it than trying to {{malloc}} your datastructures and stuff them into CHICKEN's {{pointer}} type.
    134134
    135135==== Convenience
     
    140140* Register a finalizer for them using {{set-finalizer!}}
    141141
    142 The first option is not attractive if you have complicated data with lots of pointers between structures (that's why GC's were invented, after all).  The second option is OK for a couple of objects, but Chicken doesn't play very well with millions of finalizers registered.  If you want to allocate a lot of objects, don't register finalizers for them.
     142The first option is not attractive if you have complicated data with lots of pointers between structures (that's why GC's were invented, after all).  The second option is OK for a couple of objects, but CHICKEN doesn't play very well with millions of finalizers registered.  If you want to allocate a lot of objects, don't register finalizers for them.
  • wiki/assertions

    r28631 r31126  
    11[[tags:tutorials assert testing]]
    22
    3 == How to use assertions in Chicken code
     3== How to use assertions in CHICKEN code
    44
    55At some point this file will hold some useful
    6 tutorial on how to include assertions in Chicken
     6tutorial on how to include assertions in CHICKEN
    77code, making it easy to detect errors in programs.
    88
  • wiki/autoconf - automake

    r14110 r31126  
    44== autoconf - automake
    55the best thing ever!
    6 This explains how Autoconf and Automake should be used to build a package with Chicken Scheme that conforms to the GNU Coding Standards.
     6This explains how Autoconf and Automake should be used to build a package with CHICKEN Scheme that conforms to the GNU Coding Standards.
    77We will assume your program is the one for the [[/manual/Using the compiler#Examples#An example with multiple files|second example]] of the [[/manual/Using the compiler|Using the compiler]] section of the User's Manual.
    88
  • wiki/bash completion

    r14260 r31126  
    77Currently, only {{chicken-setup}} is supported. Hopefully csi and csc will follow.
    88
    9 Chicken 4 is currently not supported.
     9CHICKEN 4 is currently not supported.
    1010
    1111=== Use
  • wiki/bigloo

    r29052 r31126  
    11[[tags: bigloo schemeimplementations]]
    22
    3 == Bigloo/Chicken differences
     3== Bigloo/CHICKEN differences
    44
    55This page has the goal of listing the principal differences
    6 between Chicken and Bigloo, an alternate implementation for the Scheme programming language.
     6between CHICKEN and Bigloo, an alternate implementation for the Scheme programming language.
    77
    88You can find more information about Bigloo at:
     
    1616; Availability of continuations: Bigloo doesn't have first class continuations by default, because call/cc is difficult to compile efficiently.  There's an optional compiler flag for it, and the Bigloo authors recommend the use of the bind-exit form.
    1717
    18 ; SWIG support: Chicken has [[http://www.swig.org/|SWIG]] support, Bigloo does not.  This may make it easier to create wrappers around C libraries for Chicken than it is for Bigloo.
     18; SWIG support: CHICKEN has [[http://www.swig.org/|SWIG]] support, Bigloo does not.  This may make it easier to create wrappers around C libraries for CHICKEN than it is for Bigloo.
    1919
    2020== Compiling
    2121
    22 ; Code optimizations: Bigloo is designed as an optimizing compiler for strict functional languages, and is much better at static optimizations than Chicken. For example, the core language compiler of Bigloo has been used to efficiently compile ML programs.
     22; Code optimizations: Bigloo is designed as an optimizing compiler for strict functional languages, and is much better at static optimizations than CHICKEN. For example, the core language compiler of Bigloo has been used to efficiently compile ML programs.
    2323
    24 ; Backends for code generation: Bigloo has C, Java, and C# backends.  Chicken talks to C, and can talk to C++ to some degree. Objective-C support via the [[http://wiki.call-cc.org/eggref/4/objc|objc egg]].
     24; Backends for code generation: Bigloo has C, Java, and C# backends.  CHICKEN talks to C, and can talk to C++ to some degree. Objective-C support via the [[http://wiki.call-cc.org/eggref/4/objc|objc egg]].
    2525
    2626== Installation
    2727
    28 ; Platforms for which binaries are provided: Bigloo provides binaries for Fedora, Debian, Ubuntu and MS Visual Studio platforms.  Chicken is included in Debian and Ubuntu but for other platforms you have to build from source.
     28; Platforms for which binaries are provided: Bigloo provides binaries for Fedora, Debian, Ubuntu and MS Visual Studio platforms.  CHICKEN is included in Debian and Ubuntu but for other platforms you have to build from source.
    2929
    3030; Platforms supported: '''TODO: Integrate this with the previous item'''.  Bigloo may not provide the binary you want for your platform.  For instance, Cygwin and MinGW / MSYS.  In that case you'll have to build Bigloo from source.  Back in the day, that required a small amount of black magic due to compiler flag quoting or some such.  I think the answer was to double the number of slashes specified or something.  I don't know if it's a problem anymore, if anyone fixed that wart.  There's stuff in their mailing list archives about it in any event.
    3131
    32 ; Build system: Bigloo's build is based on GNU Autoconf.  The Visual Studio build of Bigloo is not in their source pool, and judging by the past 2 years of observation, never will be.  It is maintained by Yannis Bres, who does good work, but that work lags the main Bigloo releases.  Chicken runs on many platforms with 1 build, including Visual Studio, MinGW / MSYS, Cygwin, Linux, and Mac OSX.  The build is in the source pool, is publically available / fixable, and is always up to date with current Chicken releases on all platforms.
     32; Build system: Bigloo's build is based on GNU Autoconf.  The Visual Studio build of Bigloo is not in their source pool, and judging by the past 2 years of observation, never will be.  It is maintained by Yannis Bres, who does good work, but that work lags the main Bigloo releases.  CHICKEN runs on many platforms with 1 build, including Visual Studio, MinGW / MSYS, Cygwin, Linux, and Mac OSX.  The build is in the source pool, is publically available / fixable, and is always up to date with current CHICKEN releases on all platforms.
    3333
    3434== Miscellaneous
    3535
    36 ; License: Bigloo's license is GPL.  Chicken's is BSD.
     36; License: Bigloo's license is GPL.  CHICKEN's is BSD.
    3737
    38 ; Main developers: Manuel Serrano, the principal Bigloo author, and [[Felix Winkelmann]], the principal Chicken author, are both easygoing, easy to work with, and responsive to community bug reports + improvement requests or offers.
     38; Main developers: Manuel Serrano, the principal Bigloo author, and [[Felix Winkelmann]], the principal CHICKEN author, are both easygoing, easy to work with, and responsive to community bug reports + improvement requests or offers.
    3939
    40 ; Community size: Bigloo's community is noticeably smaller than Chicken's, with fewer resources going into things like organizing wikis, developing extensions, maintaining cross-platform builds, etc.  Chicken's [[eggs]] are a clear advantage here.
     40; Community size: Bigloo's community is noticeably smaller than CHICKEN's, with fewer resources going into things like organizing wikis, developing extensions, maintaining cross-platform builds, etc.  CHICKEN's [[eggs]] are a clear advantage here.
  • wiki/binary-distributions

    r19152 r31126  
    1 == How to install and use binaries distributions of Chicken
     1== How to install and use binaries distributions of CHICKEN
    22
    33Note: To install [[eggs]], you'll need a C compiler.
  • wiki/building-chicken-for-performance

    r28490 r31126  
    1313* How about HACKED_APPLY=0 ?
    1414
    15 == The Famous Chicken Run
     15== The Famous CHICKEN Run
    1616
    1717Here the fun part starts. The following entries are ordered by increasing runtime.
  • wiki/chicken on handhelds

    r26618 r31126  
    33'''Warning: this tutorial is extremely old, and many details are now incorrect.'''
    44
    5 The following will describe how to get a Chicken interpreter up and running on a [[http://europe.nokia.com/770|Nokia 770]].
     5The following will describe how to get a CHICKEN interpreter up and running on a [[http://europe.nokia.com/770|Nokia 770]].
    66
    7 * The first step after buying a 770 is to gain [[http://maemo.org/maemowiki/HowDoiBecomeRoot2?highlight=%28root%29|root]] and add SSH capabilities. This will allow you to remotely login to the device and run Chicken. Note, you can obtain your IP address with "/sbin/ifconfig" within an x-term.
     7* The first step after buying a 770 is to gain [[http://maemo.org/maemowiki/HowDoiBecomeRoot2?highlight=%28root%29|root]] and add SSH capabilities. This will allow you to remotely login to the device and run CHICKEN. Note, you can obtain your IP address with "/sbin/ifconfig" within an x-term.
    88
    9 * To build Chicken install [[http://scratchbox.org|scratchbox]] according to the following [[http://home.comcast.net/~3rdshift/articles/Nokia770/Maemo-Installation.html|instructions]]. You should then have a cross compilation environment suitable for building both Chicken & eggs.
     9* To build CHICKEN install [[http://scratchbox.org|scratchbox]] according to the following [[http://home.comcast.net/~3rdshift/articles/Nokia770/Maemo-Installation.html|instructions]]. You should then have a cross compilation environment suitable for building both CHICKEN & eggs.
    1010
    11 * Build Chicken with the normal autotools sequence and build any eggs.
     11* Build CHICKEN with the normal autotools sequence and build any eggs.
    1212
    1313* Copy the interpreter to /usr/bin and the shared library to /usr/lib.
     
    2929</enscript>
    3030
    31 * Fire up Chicken and test an egg.
     31* Fire up CHICKEN and test an egg.
    3232
    3333<enscript>
  • wiki/chicken-for-php-programmers

    r28534 r31126  
    11[[toc:]]
    22
    3 The following page is an introduction to Chicken intended to PHP programmers.
     3The following page is an introduction to CHICKEN intended to PHP programmers.
    44
    55This is a work in progress, I will try to work on as frequently as possible (mostly on sunday).  In the meantime, feel free to help me by expanding it, correcting (english is not my native language) and/or by commenting on what I have done so far.
    66
    7 Chicken is an implementation of the Scheme programming language which, in turn is a member of the Lisp family of languages.  More information about this on the http://schemers.org/ website.
     7CHICKEN is an implementation of the Scheme programming language which, in turn is a member of the Lisp family of languages.  More information about this on the http://schemers.org/ website.
    88
    99== Syntax
     
    7474
    7575=== Numbers
    76 All type of numbers are supported by Chicken, including real, complex and rational, natively (without resorting to external libraries). 
     76All type of numbers are supported by CHICKEN, including real, complex and rational, natively (without resorting to external libraries). 
    7777
    7878Number can be expressed in binary, octal, decimal or hexadecimal notation by using the prefixs #b for binary, #o for octal, #d for decimal and #x for hexadecimal.  Unprefixed number are deicmal by default (so 21 and #d21 are the same)
     
    9595implode(';', array('a', 'b', 'c', 'd'))
    9696</enscript>
    97 is in Chicken Scheme:
     97is in CHICKEN Scheme:
    9898<enscript highlight=scheme>
    9999(string-intersperse '("a" "b" "c" "d") ";")
     
    103103explode(';', 'a;b;c;d')
    104104</enscript>
    105 is in Chicken Scheme:
     105is in CHICKEN Scheme:
    106106<enscript highlight=scheme>
    107107(string-split "a;b;c;d" ";")
     
    120120</enscript>
    121121
    122 ===== Chicken
     122===== CHICKEN
    123123
    124124<enscript highlight=scheme>
  • wiki/chicken-for-programmers-of-other-languages

    r29117 r31126  
    1 == Chicken for programmers of other languages
     1== CHICKEN for programmers of other languages
    22
    33* [[language-comparison|C]]
  • wiki/chicken-for-python-programmers

    r24773 r31126  
    1 == Chicken for Python programmers
     1== CHICKEN for Python programmers
    22
    33[[toc:]]
     
    1010</enscript>
    1111
    12 === Chicken
     12=== CHICKEN
    1313<enscript highlight=scheme>
    1414(print "Hello, world!")
     
    2525</enscript>
    2626
    27 === Chicken
     27=== CHICKEN
    2828
    2929Defining a variable:
     
    3939</enscript>
    4040
    41 PS: Chicken automatically defines a global variable
     41PS: CHICKEN automatically defines a global variable
    4242when a variable is set without being defined.  However, it is
    4343best practice (and most compatible with other Schemes) to define
     
    6464</enscript>
    6565
    66 ==== Chicken
     66==== CHICKEN
    6767<enscript highlight=scheme>
    6868(string-append "1" "2")
     
    8484</enscript>
    8585
    86 ==== Chicken
     86==== CHICKEN
    8787<enscript highlight=scheme>
    8888(string-split "this is a string")
     
    9898</enscript>
    9999
    100 ==== Chicken
     100==== CHICKEN
    101101<enscript highlight=scheme>
    102102(read-all "my-file.txt")
     
    111111</enscript>
    112112
    113 ==== Chicken
     113==== CHICKEN
    114114<enscript highlight=scheme>
    115115(read-lines "my-file.txt")
     
    129129</enscript>
    130130
    131 ==== Chicken
     131==== CHICKEN
    132132<enscript highlight=scheme>
    133133(if (< 1 2) "yes" "no")
     
    151151</enscript>
    152152
    153 ==== Chicken
     153==== CHICKEN
    154154<enscript highlight=scheme>
    155155(cond ((< 1 2) "1 < 2")
     
    173173</enscript>
    174174
    175 ==== Chicken
     175==== CHICKEN
    176176<enscript highlight=scheme>
    177177(define l '(1 2 3 4))
     
    193193
    194194
    195 ==== Chicken
     195==== CHICKEN
    196196<enscript highlight=scheme>
    197197(define l '(1 2 3 4))
  • wiki/chicken-for-ruby-programmers

    r29941 r31126  
    1 == Chicken for Ruby programmers
     1== CHICKEN for Ruby programmers
    22
    33[[toc:]]
    44
    5 If you don't know much about Chicken yet, please take a moment to read
     5If you don't know much about CHICKEN yet, please take a moment to read
    66the introductory part of [[/manual|The User's Manual]].  You're back?  Good!
    77
     
    1818the egg index to get an impression of the
    1919diversity of styles of object oriented programming you can use with
    20 Chicken.  By the way, the list on that page shows all the available
    21 ''eggs'' for Chicken.  We'll explain all about these [[#Eggs|later]].
     20CHICKEN.  By the way, the list on that page shows all the available
     21''eggs'' for CHICKEN.  We'll explain all about these [[#Eggs|later]].
    2222
    2323Besides object-oriented programming, you can also program in a
     
    4444Likewise, Scheme is a specification-defined language.  There
    4545is one official language specification which says what Scheme is and
    46 how it works.  Chicken is simply an implementation of that
     46how it works.  CHICKEN is simply an implementation of that
    4747specification.  There is one thing that is important to know right
    4848now: The Scheme specification is ''extremely'' minimal in design.  It
     
    6363territory.  This gives each Scheme implementation its uniqueness.
    6464
    65 Fortunately, most Scheme implementations including Chicken are fairly portable to modern hardware architectures and operating systems.  You may or may not be able to port a Chicken program to another Scheme, but you can port it from Windows to Mac OS X or Linux, or from the 32-bit Intel 386 to the 64-bit SPARC architecture, because Chicken runs in all those environments.  Usually "porting" just means "running it on that system", because just like Ruby Chicken has procedures that are platform-independent, with multiple implementations where the platform itself differs.
    66 
    67 Chicken's power is in how it extends the Scheme standard.  It has a
     65Fortunately, most Scheme implementations including CHICKEN are fairly portable to modern hardware architectures and operating systems.  You may or may not be able to port a CHICKEN program to another Scheme, but you can port it from Windows to Mac OS X or Linux, or from the 32-bit Intel 386 to the 64-bit SPARC architecture, because CHICKEN runs in all those environments.  Usually "porting" just means "running it on that system", because just like Ruby CHICKEN has procedures that are platform-independent, with multiple implementations where the platform itself differs.
     66
     67CHICKEN's power is in how it extends the Scheme standard.  It has a
    6868very comfortable interface to C that does not require you to touch a
    6969single line of C code in order to create bindings to existing C
    70 libraries, but it also gives you the freedom to embed Chicken in C
    71 code or C in Chicken code as you want.  It offers a TCP/IP networking
     70libraries, but it also gives you the freedom to embed CHICKEN in C
     71code or C in CHICKEN code as you want.  It offers a TCP/IP networking
    7272layer, it has great POSIX interoperability so you can interact with
    7373the OS. And most importantly: It can compile Scheme code to very
     
    154154Both types of syntax have their advantages and disadvantages: The
    155155Ruby-like syntax is more natural, but you have to think about operator
    156 precedence rules.  Chicken does not need operator precedence rules
     156precedence rules.  CHICKEN does not need operator precedence rules
    157157because the precedence can be determined from the way it's nested, but
    158158it's less natural for most people (though you get used to it very
     
    160160
    161161Actually, right now you know almost all there is to know
    162 about Scheme's syntax!  Chicken has a couple of extensions to the
     162about Scheme's syntax!  CHICKEN has a couple of extensions to the
    163163basic Scheme syntax, but we won't go into detail here.  Later you'll
    164164see a couple of handy shortcuts, but this is basically it.
     
    166166=== Variables
    167167
    168 Variables are names for things.  Chicken has vary lax rules for
     168Variables are names for things.  CHICKEN has vary lax rules for
    169169naming variables.  Actually, ''any string'' is a valid identifier
    170170as long as you quote it correctly.
     
    260260</enscript>
    261261
    262 Chicken:
     262CHICKEN:
    263263
    264264<enscript highlight=scheme>
     
    305305  SystemStackError: stack level too deep
    306306
    307 Chicken:
     307CHICKEN:
    308308
    309309  #;2> (define (add-up-to x)
     
    323323frame so that when it returns the x can be added to the result.
    324324
    325 [This code will 'break' in Chicken too, but only for much
    326 larger numbers. Although Chicken doesn't have an arbitrary stack
     325[This code will 'break' in CHICKEN too, but only for much
     326larger numbers. Although CHICKEN doesn't have an arbitrary stack
    327327depth, if you try (add-up-to) on a large enough number, you'll use up
    328328all your system memory before getting an answer. Read on for a better
     
    366366Note that the recursive call to {{inner}} isn't nested inside another function call, such as the {{(+ (add-up-to ...))}} in the first version. This is the hallmark of a tail-recursive program. (The astute reader might note that it actually *is* nested inside an {{(if ...)}} procedure, but conditional forms like {{if}} are handled intelligently in tail-recursion. The {{if}} statement itself is not nested inside a procedure call, so all is well.)
    367367
    368 As you'll notice, this version is a lot faster in Chicken too because
     368As you'll notice, this version is a lot faster in CHICKEN too because
    369369it does not have to travel back through all those empty "stack
    370 frames".  In the first example, Chicken's memory usage increases upon
     370frames".  In the first example, CHICKEN's memory usage increases upon
    371371every recursion: for large numbers, it will break because it can't
    372372allocate any more. But in the second example, memory usage will stay
     
    419419
    420420Now we have a basic grasp of Scheme's syntax, we can have a look at the
    421 different data types Chicken has to offer.  We will do this from a Ruby
     421different data types CHICKEN has to offer.  We will do this from a Ruby
    422422perspective.
    423423
     
    446446that we should note is the first line.  We create a list by
    447447''quoting'' it.  This allows us to enter the list in such a way that
    448 Chicken knows the list is just that; a list, and not a procedure
     448CHICKEN knows the list is just that; a list, and not a procedure
    449449application of the procedure called {{1}} on the arguments {{2}} and
    450450{{3}}.  The apostrophe takes care of that.
     
    476476so they're most likely the most convenient datatype.
    477477
    478 Chicken also offers you several other types of array-like types, each
     478CHICKEN also offers you several other types of array-like types, each
    479479with their own unique time and space properties.  Which you'll use
    480480depends on the task at hand and the situations your system will be
     
    537537You should not use lists like these unless you know what you're doing,
    538538because ''all'' list library procedures expect ''proper lists'': lists
    539 with end markers.  Chicken supports the full
     539with end markers.  CHICKEN supports the full
    540540[[http://srfi.schemers.org/srfi-1/srfi-1.html|SRFI-1]] out of the box.
    541541Have a look at that document and compare it to the Ruby standard
     
    597597
    598598Strings are simple.  Just like in Ruby, we have strings enclosed by
    599 double quotes: {{"foo"}} works the same in Ruby as it does in Chicken.
    600 Chicken's double quoted strings work more like Ruby's single-quoted
     599double quotes: {{"foo"}} works the same in Ruby as it does in CHICKEN.
     600CHICKEN's double quoted strings work more like Ruby's single-quoted
    601601strings, though.  There is no string interpolation and other things;
    602602a string is just a string.
     
    641641==== String procedures
    642642
    643 Chicken comes shipped with
     643CHICKEN comes shipped with
    644644[[http://srfi.schemers.org/srfi-13/srfi-13.html|SRFI-13]], which is a
    645645library of string procedures which is intended to be a lot like
     
    668668=== Regular expressions
    669669
    670 Just like in Ruby, there's a Regex data type, but in Chicken there is
     670Just like in Ruby, there's a Regex data type, but in CHICKEN there is
    671671no special syntax for it:
    672672
     
    676676  => ["HX1138", "H", "X", "113", "8"]
    677677
    678 Chicken:
     678CHICKEN:
    679679
    680680  #;1> (use regex)
     
    695695=== Hashes
    696696
    697 The final datatype we use a lot in Ruby is the Hash.  In Chicken there
     697The final datatype we use a lot in Ruby is the Hash.  In CHICKEN there
    698698are two datatypes you could use instead of the Ruby Hash;
    699699''association lists'' (or ''alists'' for short) or ''hash tables''.
     
    727727==== Hash tables
    728728
    729 For more complex hashing operations, Chicken supplies true hash tables.
     729For more complex hashing operations, CHICKEN supplies true hash tables.
    730730
    731731  #;11> (define h (make-hash-table))
     
    800800
    801801Now we have the tools to make programs, let's look at a few larger
    802 programs to better appreciate how one would program in Chicken.
     802programs to better appreciate how one would program in CHICKEN.
    803803
    804804  TODO
    805805
    806 == Chicken and the Real World
     806== CHICKEN and the Real World
    807807
    808808Programming is about more than having a pretty language, so let's look
    809 at what Chicken has to offer for real construction work.
     809at what CHICKEN has to offer for real construction work.
    810810
    811811=== Eggs
     
    827827A hot topic in the Ruby community is meta programming and DSLs
    828828(Domain specific languages).  These ideas originated from Lisp, which
    829 means you can just keep on trucking in Chicken!
     829means you can just keep on trucking in CHICKEN!
    830830
    831831=== Data is code and code is data
  • wiki/chicken-hackers-guide

    r27938 r31126  
    22[[tags: internal]]
    33
    4 == Chicken hackers guide
     4== CHICKEN hackers guide
    55
    66This document is intended to provide some guidance for those who want
     
    1010
    1111See the [[http://code.call-cc.org]] page for
    12 instructions about how to get the development version of Chicken.
     12instructions about how to get the development version of CHICKEN.
    1313
    1414=== Building
     
    5454You must add any files that are to distributed in that file.
    5555
    56 For information on the current Chicken release policy, please see [[release-policy]].
     56For information on the current CHICKEN release policy, please see [[release-policy]].
    5757
    5858=== Documentation
  • wiki/chicken-on-nokia-770

    r5597 r31126  
    11[[tags:tutorials]]
    22
    3 The following will describe how to get a Chicken interpreter up and running on a [[http://europe.nokia.com/770|Nokia 770]].
     3The following will describe how to get a CHICKEN interpreter up and running on a [[http://europe.nokia.com/770|Nokia 770]].
    44
    5 * The first step after buying a 770 is to gain [[http://maemo.org/maemowiki/HowDoiBecomeRoot2?highlight=%28root%29|root]] and add SSH capabilities. This will allow you to remotely login to the device and run Chicken. Note, you can obtain your IP address with "/sbin/ifconfig" within an x-term.
     5* The first step after buying a 770 is to gain [[http://maemo.org/maemowiki/HowDoiBecomeRoot2?highlight=%28root%29|root]] and add SSH capabilities. This will allow you to remotely login to the device and run CHICKEN. Note, you can obtain your IP address with "/sbin/ifconfig" within an x-term.
    66
    7 * To build Chicken install [[http://scratchbox.org|scratchbox]] according to the following [[http://home.comcast.net/~3rdshift/articles/Nokia770/Maemo-Installation.html|instructions]]. You should then have a cross compilation environment suitable for building both Chicken & eggs.
     7* To build CHICKEN install [[http://scratchbox.org|scratchbox]] according to the following [[http://home.comcast.net/~3rdshift/articles/Nokia770/Maemo-Installation.html|instructions]]. You should then have a cross compilation environment suitable for building both CHICKEN & eggs.
    88
    9 * Build Chicken with the normal autotools sequence and build any eggs.
     9* Build CHICKEN with the normal autotools sequence and build any eggs.
    1010
    1111* Copy the interpreter to /usr/bin and the shared library to /usr/lib.
     
    2727</enscript>
    2828
    29 * Fire up Chicken and test an egg.
     29* Fire up CHICKEN and test an egg.
    3030
    3131<enscript>
  • wiki/chicken-sprint-nuremberg

    r25651 r31126  
    2222=== Accomodation
    2323
    24 Most Chicken Hackers plan to stay at the "Hotel ibis Nuernberg City"
     24Most CHICKEN Hackers plan to stay at the "Hotel ibis Nuernberg City"
    2525[[http://www.ibishotel.com/gb/hotel-1608-ibis-nuernberg-city/index.shtml]]
    2626
  • wiki/chickenista-guide

    r30633 r31126  
    6969
    7070=== Building CHICKEN from the stability branches
    71 The stability branch series is a fork of the Chicken Scheme core which backports certain useful bugfixes and minor features from the future to "stable" maintenance versions. You can install a stability from either source tarball or a git checkout.
     71The stability branch series is a fork of the CHICKEN Scheme core which backports certain useful bugfixes and minor features from the future to "stable" maintenance versions. You can install a stability from either source tarball or a git checkout.
    7272Please have a look at [[stability]] to get further information.
    7373
     
    101101  $ csi
    102102  CHICKEN
    103   (c)2008-2012 The Chicken Team
     103  (c)2008-2012 The CHICKEN Team
    104104  (c)2000-2007 Felix L. Winkelmann
    105105  Version 4.8.0
  • wiki/cluck

    r16929 r31126  
    55* removed configuration for multiple schemes
    66* removed documentation for other schemes
    7 * swapped out keyword syntax tables for R5RS + Chicken 4
     7* swapped out keyword syntax tables for R5RS + CHICKEN 4
    88* added support for chicken-doc lookups
    99* added support for localized manual URLs
    1010* reorganized the menus
    1111
    12 The result is much better suited to Chicken scheming and probably worthless for any other flavor of scheme.
     12The result is much better suited to CHICKEN scheming and probably worthless for any other flavor of scheme.
    1313
    1414{{cluck.el}} can be downloaded from [[http://github.com/ddp/cluck|github]].
  • wiki/compiling-chicken-on-windows-xp-with-mingw

    r29897 r31126  
    1 == Chicken with Windows
     1== CHICKEN with Windows
    22
    33New chicken users under windows will notice that just downloading the binary chicken will NOT get them a working csc; chicken and csi work fine, but csc needs a c compiler. The default, if I am not mistaken, is the mingw compiler (Minimalist GNU for Windows), which is not hard to find. Just install the binary packages, probably with the installer. Next, make sure your chicken directory is in the root directory, aka C:\chicken\.
     
    2424That was the hard way. The easy way is to install mingw in the default location,
    2525add {{c:\mingw\bin}} to your {{PATH}}, download and extract the CHICKEN tarball,
    26 open a command-window, {{cd}} to the directory that contains the unpacked Chicken
     26open a command-window, {{cd}} to the directory that contains the unpacked CHICKEN
    2727sources and enter
    2828
  • wiki/contribute

    r27938 r31126  
    4343If you file a bug to chicken-users, please include the following information in your post if possible:
    4444
    45 * Chicken version you are experiencing the bug with
     45* CHICKEN version you are experiencing the bug with
    4646* Your operating system and machine architecture
    4747* A way to reproduce the bug, maybe by a short snippet of code that shows the behaviour
  • wiki/cross-compilation-on-open-moko

    r16634 r31126  
    1010CHICKEN for cross-development.
    1111
    12 [[http://www.openembedded.org]] now includes the Chicken recipe, so you can just do <tt>bitbake chicken</tt> and get 4 packages: chicken, chicken-dbg, chicken-dev and chicken-doc.
     12[[http://www.openembedded.org]] now includes the CHICKEN recipe, so you can just do <tt>bitbake chicken</tt> and get 4 packages: chicken, chicken-dbg, chicken-dev and chicken-doc.
    1313
    1414But in case you want to do it manually:  To compile chicken for OpenMoko, first install the [[http://wiki.openmoko.org/wiki/Toolchain|Toolchain]].  Then
  • wiki/dans-custom-emacs

    r27869 r31126  
    33A suite of extensions for scheme-mode that grew out of necessity.
    44
    5 Chicken Scheme does play well with SLIME (See also: chicken-slime.el), but I often find myself working on software that is slow-level and unstable enough to make such dependence on REPL reliability rather frustrating.
     5CHICKEN Scheme does play well with SLIME (See also: chicken-slime.el), but I often find myself working on software that is slow-level and unstable enough to make such dependence on REPL reliability rather frustrating.
    66
    77Thus chicken-scheme.el was born. It does not rely on a running Scheme to provide auto-complete support for your application. A suite of customization variables are available to configure from which modules symbols should be loaded and what sort of package prefixes can be expected.
     
    1313Further customization is available in the chicken-scheme customization group.
    1414
    15 Loading of the first scheme file may take some time as the Chicken Modules are parsed for symbols on first-load. All subsequent scheme files do not incur this load hitch. Consider running an Emacs daemon.
     15Loading of the first scheme file may take some time as the CHICKEN Modules are parsed for symbols on first-load. All subsequent scheme files do not incur this load hitch. Consider running an Emacs daemon.
    1616
    1717Tags are also supported.
  • wiki/design-by-contract

    r28112 r31126  
    4848to the language what you miss. In Lisp, you are a language designer as
    4949well as a programmer! In what follows, you'll see, how easy it is to
    50 implement Design by Contract in Chicken Scheme.
     50implement Design by Contract in CHICKEN Scheme.
    5151
    5252== The dbc module
    5353
    54 This egg is an attempt, to bring DbC to Chicken Scheme. A module written
     54This egg is an attempt, to bring DbC to CHICKEN Scheme. A module written
    5555in this style - let's call it "example" in this turorial - has to import
    5656dbc. Its body should be enclosed in
     
    7676
    7777Let's start with the interface. We'll package the needed macros and
    78 procedures into a Chicken module called dbc. The fundamental macros are
     78procedures into a CHICKEN module called dbc. The fundamental macros are
    7979called
    8080
  • wiki/design-by-contract-old-version

    r28096 r31126  
    1111== The contracts module
    1212
    13 This egg is an attempt, to bring DbC to Chicken Scheme. A module written in this style - let's call it "example" in this turorial - has to import contracts. Its body should be enclosed in
     13This egg is an attempt, to bring DbC to CHICKEN Scheme. A module written in this style - let's call it "example" in this turorial - has to import contracts. Its body should be enclosed in
    1414
    1515<enscript highlight="scheme">
  • wiki/discussion-groups

    r28309 r31126  
    99If you are interested in the development of CHICKEN, check out [[http://lists.nongnu.org/mailman/listinfo/chicken-hackers|CHICKEN Hackers]].
    1010
    11 There's also a mailinglist for those that are willing to do the (sometimes boring) maintenance tasks that are necessary to keep a project like Chicken (and its eggs) running smoothly; the people doing these chores are called the "Chicken janitors".  Hence the name of the [[http://lists.nongnu.org/mailman/listinfo/chicken-janitors|CHICKEN Janitors]] mailinglist.  All bug reports and comments on the bugtracker are automatically CC'ed to this list.
     11There's also a mailinglist for those that are willing to do the (sometimes boring) maintenance tasks that are necessary to keep a project like CHICKEN (and its eggs) running smoothly; the people doing these chores are called the "CHICKEN janitors".  Hence the name of the [[http://lists.nongnu.org/mailman/listinfo/chicken-janitors|CHICKEN Janitors]] mailinglist.  All bug reports and comments on the bugtracker are automatically CC'ed to this list.
    1212
    1313=== Announcements
     
    2424== Twitter
    2525
    26 Chicken can also be found on [[http://twitter.com/chickenscheme|Twitter]].
     26CHICKEN can also be found on [[http://twitter.com/chickenscheme|Twitter]].
  • wiki/distributed-egg-repos

    r23647 r31126  
    135135server-side CGI program that is contacted by chicken-install.  This
    136136means this system could be deployed transparently and gradually.
    137 Older Chicken releases would keep working and be able to receive new
     137Older CHICKEN releases would keep working and be able to receive new
    138138eggs and updates for existing eggs.
    139139
     
    254254
    255255;; Later, additional properties could be added at the end, alist-style.
    256 ;; here's a hypothetical example that says this version is for Chicken 3 only
     256;; here's a hypothetical example that says this version is for CHICKEN 3 only
    257257;; we most likely want to keep separate egg lists and hence repositories for
    258 ;; different major Chicken versions though
     258;; different major CHICKEN versions though
    259259(release "0.1" (uri bunny) (chicken-version "3"))
    260260
  • wiki/edit-help

    r26531 r31126  
    169169* <nowiki>[[name]] from within another egg page</nowiki>
    170170* <nowiki>[[/egg/name|name]] from outside an egg page</nowiki>
    171 * <nowiki>[[/eggref/3/name|name]] for an egg for a specific Chicken version (here, 3)</nowiki>
     171* <nowiki>[[/eggref/3/name|name]] for an egg for a specific CHICKEN version (here, 3)</nowiki>
    172172
    173173To link to a manual page, use
    174174
    175175* <nowiki>[[/manual/Page name|Page name]] from outside a manual page</nowiki>
    176 * <nowiki>[[/man/3/name|name]] for a man page for a specific Chicken version (here, 3)</nowiki>
     176* <nowiki>[[/man/3/name|name]] for a man page for a specific CHICKEN version (here, 3)</nowiki>
    177177
    178178''Note'': You can't use the plain <nowiki>[[Page name]]</nowiki> syntax for manual pages, as the page URL will be lowercased and hyphenated.
     
    181181
    182182* <nowiki>[[http://www.call-cc.org/]]</nowiki>: [[http://www.call-cc.org/]]
    183 * <nowiki>[[http://www.call-cc.org/|The Chicken wiki]]</nowiki>: [[http://www.call-cc.org/|The Chicken wiki]]
     183* <nowiki>[[http://www.call-cc.org/|The CHICKEN wiki]]</nowiki>: [[http://www.call-cc.org/|The CHICKEN wiki]]
    184184* <nowiki>[[/users/felix-winkelmann|Felix]]</nowiki>: [[/users/felix-winkelmann|Felix]]
    185185* <nowiki>[[/manual/Unit posix|Unit posix]]</nowiki>: [[/manual/Unit posix|Unit posix]]
     
    197197
    198198Example:
    199 ''<nowiki>[[image:http://www.call-with-current-continuation.org/chicken-small.png|Chicken logo]]</nowiki>''
     199''<nowiki>[[image:http://www.call-with-current-continuation.org/chicken-small.png|CHICKEN logo]]</nowiki>''
    200200
    201201Renders this:
    202202
    203 [[image:http://www.call-with-current-continuation.org/chicken-small.png|Chicken logo]]
     203[[image:http://www.call-with-current-continuation.org/chicken-small.png|CHICKEN logo]]
    204204
    205205If you keep your images in the wiki repository, the base for the absolute URL is: {{http://code.call-cc.org/svn/chicken-eggs/wiki/}}.  For example, an image {{egg-image-1.png}} uploaded into {{wiki/eggref/4}} has URL {{http://code.call-cc.org/svn/chicken-eggs/wiki/eggref/4/egg-image-1.png}}
     
    262262
    263263
    264 == Extensions for Chicken documentation
     264== Extensions for CHICKEN documentation
    265265
    266266=== Tags for procedure-like definitions
  • wiki/eggs tutorial

    r30458 r31126  
    66== Introduction
    77
    8 This document explains how to create an official Chicken Extension.
    9 
    10 [[eggs|Chicken extensions]] can greatly enhance the functionality available in Chicken.
     8This document explains how to create an official CHICKEN Extension.
     9
     10[[eggs|CHICKEN extensions]] can greatly enhance the functionality available in CHICKEN.
    1111They can define and export new convenient functions, wrap and make available libraries written in other languages (typically C) or even extend the basic language.
    1212
    13 A good way to start getting involved in the Chicken community is to contribute new eggs.
     13A good way to start getting involved in the CHICKEN community is to contribute new eggs.
    1414Not only this will benefit other users, who will now be able to use your egg, it will also benefit you as you'll gain access to all the infrastructure for managing eggs (eg. you will be able to install your eggs using {{chicken-install}}) and other users might start helping improve your eggs. You can create an egg from software you've written yourself, or else with free software libraries you've ported from other Schemes (or even other languages).
    1515
     
    3232Providing good documentation for your eggs is a fundamental part of their overall quality.
    3333
    34 You can enter your entire documentation for your egg into this wiki. This has the advantage of inviting other members of the Chicken community to help improve the documentation for your eggs.
     34You can enter your entire documentation for your egg into this wiki. This has the advantage of inviting other members of the CHICKEN community to help improve the documentation for your eggs.
    3535
    3636You can either use your favourite text editor to edit wiki files (then commit your changes to the subversion repository) or point your browser to http://wiki.call-cc.org/eggref/4/eggname-here and use it to edit the wiki contents.
     
    4848; Authors : The egg authors and maintainers
    4949; Requirements : Should list other eggs that are required to build (compile-time) or load (runtime) this egg.  Each entry should be linked to the respective egg.
    50 ; API : The API description.  Be sure to semantically format the procedures, macros, parameters, classes etc (see the ''Extensions for Chicken documentation'' section at the [[/edit-help|Editing help]] page).
     50; API : The API description.  Be sure to semantically format the procedures, macros, parameters, classes etc (see the ''Extensions for CHICKEN documentation'' section at the [[/edit-help|Editing help]] page).
    5151; Examples : Must provide simple examples of the most important functions in the egg.  Note that all examples should be entirely self-contained; basically, pasting them in {{csi}} should work, which means, among other things, that they should include the {{use}} or {{require-extension}} lines loading the egg.  Each example should be its own subsection and the actual code should follow a brief explanation of what it does.
    5252; License : The license for your egg (see the [[eggs-licensing|Eggs Licensing]] page)
     
    102102; A list of eggs mpeg3 depends on.  If none, you can omit this declaration
    103103; altogether. `depends' is an alias to `needs'.
    104 ; Notice that you should NOT put Chicken units (e.g., srfi-1, srfi-13
     104; Notice that you should NOT put CHICKEN units (e.g., srfi-1, srfi-13
    105105; and many others) in `needs' or in `depends'.
    106106(needs sandbox syntax-case)
     
    108108; A list of eggs required for TESTING ONLY.  See the `Tests' section.
    109109; Just like `needs' and `depends', `test-depends' should NOT contain
    110 ; Chicken units.
     110; CHICKEN units.
    111111(test-depends test)
    112112
     
    187187== Managing and hosting eggs
    188188
    189 === Managing eggs in the Chicken hosted repository
    190 
    191 If you don't already have your own hosted version control system, you can host your eggs inside the Chicken hosted repository, and let us do the hard work.
     189=== Managing eggs in the CHICKEN hosted repository
     190
     191If you don't already have your own hosted version control system, you can host your eggs inside the CHICKEN hosted repository, and let us do the hard work.
    192192
    193193==== Obtaining an account in the repository
    194194
    195 We host Chicken Extensions in the following [[http://subversion.apache.org/|Subversion]] repository:
     195We host CHICKEN Extensions in the following [[http://subversion.apache.org/|Subversion]] repository:
    196196
    197197* https://code.call-cc.org/svn/chicken-eggs/ (user=anonymous, empty password)
  • wiki/eggs-chronological

    r11594 r31126  
    1212
    1313<p>
    14 In the beginning, there was the Chicken.  And the Felix said, &quot;Let there
     14In the beginning, there was the CHICKEN.  And the Felix said, &quot;Let there
    1515be eggs!&quot; ---
    1616</p>
    1717
    1818<pre style="font-family: monospace">
    19    <em>Egg#</em>     <em>Egg</em>                        <em>Date</em>         <em>Author(s) [Chicken Porter]</em>
     19   <em>Egg#</em>     <em>Egg</em>                        <em>Date</em>         <em>Author(s) [CHICKEN Porter]</em>
    2020   ====     ===                        ====         ==========================
    2121
  • wiki/elevator-pitch

    r28628 r31126  
    99* Programmers are capable of only so many correct statements per unit time. Scheme provides a vehicle to generate more correct statements in any given time period. Fewer bugs = Faster code.
    1010
    11 * Chicken Scheme is easy to learn, and there are plenty of resources available.
     11* CHICKEN Scheme is easy to learn, and there are plenty of resources available.
    1212
    1313* Very supportive community, with a wide intellectual background.
  • wiki/emacs

    r29307 r31126  
    3838
    3939To enable it, do an {{M-x hen-mode}} or add the following to
    40 your emacs initialization file to use Hen for all Chicken files:
     40your emacs initialization file to use Hen for all CHICKEN files:
    4141
    4242  (setq auto-mode-alist (append
     
    6060=== Cluck
    6161
    62 [[cluck]] is a clone of Quack but specialized for Chicken scheming.
     62[[cluck]] is a clone of Quack but specialized for CHICKEN scheming.
    6363
    6464=== Builtin Scheme support
  • wiki/embedding

    r30679 r31126  
    33=== Minimal example of embedding CHICKEN in a regular C program
    44
    5 From the Chicken-users mailing list, a post by Felix.
     5From the CHICKEN-users mailing list, a post by Felix.
    66
    77This shows a minimal example of embedding (you don't need
  • wiki/events

    r30818 r31126  
    77== Past events 2014
    88
    9 * [[event/chicken-spring-norway-2014|Chicken Spring Gathering in Norway]]
     9* [[event/chicken-spring-norway-2014|CHICKEN Spring Gathering in Norway]]
    1010
    1111== Past events 2013
     
    1717== Past events 2012
    1818
    19 * Friday 2012-09-28 -> Monday 2012-10-01 / Gloucester, England: [[event/chicken-uk-2012|Chicken UK 2012]]
     19* Friday 2012-09-28 -> Monday 2012-10-01 / Gloucester, England: [[event/chicken-uk-2012|CHICKEN UK 2012]]
  • wiki/explicit-renaming-macros

    r30456 r31126  
    11[[toc:]]
    22
    3 == Mini-tutorial on explicit (and implicit) renaming macros in Chicken
     3== Mini-tutorial on explicit (and implicit) renaming macros in CHICKEN
    44
    55The following is an attempt to explain, how to write hygienic macros in
    6 Chicken with explicit renaming. It supposes, that the reader knows, how
    7 to write other low-level macros like define-macro in Chicken-3 and other
     6CHICKEN with explicit renaming. It supposes, that the reader knows, how
     7to write other low-level macros like define-macro in CHICKEN-3 and other
    88Schemes, or defmacro in Lisp. As you will see, explicit renaming macros
    99are even easier to write than those with define-macro. This is because
    1010there is a brute force method to avoid variable capture.
    1111
    12 Let's consider a trivial macro a la Chicken-3 without any considerations
     12Let's consider a trivial macro a la CHICKEN-3 without any considerations
    1313on hygiene and variable capture:
    1414
     
    170170symbol to rename, rename all". Well, "all" is something which can
    171171perfectly be done by a machine. Consequently, since the advent of
    172 Chicken version 4.7, there is another low level macro system, based on
     172CHICKEN version 4.7, there is another low level macro system, based on
    173173ir-macro-transformer, which does this "rename all" in the background.
    174174
     
    234234cares for all three arguments of the macro-transformer. Without
    235235injecting and additional keywords its syntax is identical to
    236 that of our old friend from Chicken-3
     236that of our old friend from CHICKEN-3
    237237
    238238<enscript highlight="scheme">
  • wiki/gazette

    r22846 r31126  
    1 == The Chicken Gazette
     1== The CHICKEN Gazette
    22
    33The [[http://gazette.call-cc.org|Gazette]] is produced weekly by a
    4 volunteer from the Chicken community. The latest issue can be found at
     4volunteer from the CHICKEN community. The latest issue can be found at
    55[[http://gazette.call-cc.org]] or you can follow it in your feed
    66reader at [[http://gazette.call-cc.org/feed.atom]]. The Gazette Archive is at
     
    205205         (if (> (length message) 4)
    206206           (let ((link (car ((sxpath `(// a @ href *text*)) (second message))))
    207                  (subject (string-substitute "[ \t]+" " " (string-substitute (string-append "(Re: )?" (regexp-escape "[Chicken-users] ") "(Re: )?") "" (car ((sxpath `(// *text*)) (second message)))) 'all ))
     207                 (subject (string-substitute "[ \t]+" " " (string-substitute (string-append "(Re: )?" (regexp-escape "[CHICKEN-users] ") "(Re: )?") "" (car ((sxpath `(// *text*)) (second message)))) 'all ))
    208208                 (author (second (fourth message)))
    209209                 (date (second (sixth message))))
  • wiki/generating the smallest possible, self-contained executable

    r30094 r31126  
    1313</enscript>
    1414
    15 You need the files {{library.c}}, {{runtime.c}}, {{build-version.c}}, {{chicken.h}} and {{buildtag.h}} from the Chicken source distribution.
     15You need the files {{library.c}}, {{runtime.c}}, {{build-version.c}}, {{chicken.h}} and {{buildtag.h}} from the CHICKEN source distribution.
    1616
    1717First we generate {{hello.c}} from {{hello.scm}}:
  • wiki/gl-suite

    r3244 r31126  
    44== Introduction
    55
    6 '''gl-suite''' is the generic name for a nascent Chicken project :
     6'''gl-suite''' is the generic name for a nascent CHICKEN project :
    77a suite of OpenGL based [[eggs]] and APIs. As for now, this page is
    88intended for those who
     
    2020; [[gl-display-glx]] : An implementation of the '''gl-display''' API based on glX, the X Window extension for OpenGL.
    2121; [[gl-font]] : A font loading and rendering extension based on FreeType.
    22 ; [[gl-repl]] : A Chicken Scheme top-level.
     22; [[gl-repl]] : A CHICKEN Scheme top-level.
    2323; [[gl-edit]] : A Scheme editor (will not exist for a while).
    2424
  • wiki/google-soc-2008

    r9407 r31126  
    1111* superhard: realtime gc =:)
    1212* A hygienic module-system, fully integrated with extension libraries
    13 * Port PLT Redex to Chicken, to support the design of term rewriting systems without those code walk hacks. Chicken redex would allow for the following cool projects to be ported from PLT to Chicken:
     13* Port PLT Redex to CHICKEN, to support the design of term rewriting systems without those code walk hacks. CHICKEN redex would allow for the following cool projects to be ported from PLT to CHICKEN:
    1414** Typed Scheme
    1515** The gradually typed lambda calculus of Siek and Taha and Herman, Tomb, and Flanagan.
    1616** The lambda-sigma calculus of Abadi, Cardelli, Curien, and Lévy.
    17 * Port (parts of) the Java CIlib library to Chicken. CIlib is a library for "computational intelligence" -- things like neural networks, evolutionary algorithms.
    18 * Implement a variant of CLOT (Common Lisp plotting program) for Chicken.
    19 * Create Chicken bindings to the detect library (hardware detection).
     17* Port (parts of) the Java CIlib library to CHICKEN. CIlib is a library for "computational intelligence" -- things like neural networks, evolutionary algorithms.
     18* Implement a variant of CLOT (Common Lisp plotting program) for CHICKEN.
     19* Create CHICKEN bindings to the detect library (hardware detection).
    2020* Investigate the use of the dyncall library for dynamic function call dispatch mechanisms.
    2121* Implement some flow-analysis for a subset of Scheme that is easy enough for a summer project.
  • wiki/hygienic-egg-port-a-mania

    r21126 r31126  
    8080<td>BSD</td>
    8181<td><a href="mailto:felix@call-with-current-continuation.org">felix</a></td><td>3</td></tr>
    82 <tr><td>complex</td><td>Support for complex numbers in Chicken
     82<tr><td>complex</td><td>Support for complex numbers in CHICKEN
    8383</td><td>math</td>
    8484<td>BSD</td>
     
    418418<td>Public Domain</td>
    419419<td>Alejandro Forero Cuervo</td><td></td></tr>
    420 <tr><td>mysql</td><td>MySQL bindings for Chicken
     420<tr><td>mysql</td><td>MySQL bindings for CHICKEN
    421421</td><td>db</td>
    422422<td>MIT</td>
     
    574574<td>GPL-2</td>
    575575<td>Dan Muresan</td><td></td></tr>
    576 <tr><td>selenium</td><td>A Selenium RC driver in Chicken Scheme.
     576<tr><td>selenium</td><td>A Selenium RC driver in CHICKEN Scheme.
    577577</td><td>testing</td>
    578578<td>Public Domain</td>
     
    598598<td>Public Domain/Free Use</td>
    599599<td>Aubrey Jaffer</td><td></td></tr>
    600 <tr><td>soap</td><td>SOAP Library for Chicken
     600<tr><td>soap</td><td>SOAP Library for CHICKEN
    601601</td><td>net</td>
    602602<td>BSD</td>
     
    657657</td><td>data</td>
    658658<td>BSD</td>
    659 <td>Sebastian Egner and Jens Axel Sogaard. For Chicken - Kon Lovett</td><td></td></tr>
     659<td>Sebastian Egner and Jens Axel Sogaard. For CHICKEN - Kon Lovett</td><td></td></tr>
    660660<tr><td>srfi-85</td><td>Recursive equivalence predicates
    661661</td><td>data</td>
    662662<td>SRFI</td>
    663 <td>Will Clinger, modified for Chicken by John Cowan</td><td></td></tr>
     663<td>Will Clinger, modified for CHICKEN by John Cowan</td><td></td></tr>
    664664<tr><td>srfi-89</td><td>reference implementation of SRFI-89
    665665</td><td>lang-exts</td>
  • wiki/iron-chicken

    r23437 r31126  
    1 == Iron Chicken
     1== Iron CHICKEN
    22
    3 Iron Chicken is Chicken Scheme, but on a wiki.  Specifically, it's Chicken Scheme running on an external server, but analysing wiki content, processing it, and writing the results to the wiki.
     3Iron CHICKEN is CHICKEN Scheme, but on a wiki.  Specifically, it's CHICKEN Scheme running on an external server, but analysing wiki content, processing it, and writing the results to the wiki.
    44
    55But it doesn't stop there.  The software itself, the scheme programs, also reside on pages on the wiki, and can be edited and recompiled using the normal wiki editing process.  And of course that means that your code is instantly public and your code development environment is instantly collaborative.
     
    77Because the chosen wiki environment is the English Wikipedia, by far the largest and busiest wiki in the world, this means that any one of the thousands of regular Wikipedia users, or indeed any one of the millions of daily visitors to Wikipedia, can edit your code, and you are free to accept or reject the changes.
    88
    9 Iron Chicken is also user-enabling.  Once a script has been written, it can be published in a form that anybody can use by typing a few brief phrases into a wiki page.  They won't even know they're running a Scheme program.  Unless you tell them.
     9Iron CHICKEN is also user-enabling.  Once a script has been written, it can be published in a form that anybody can use by typing a few brief phrases into a wiki page.  They won't even know they're running a Scheme program.  Unless you tell them.
    1010
    11 Iron Chicken enhances the wiki environment by providing it with external processing power without requiring the core wiki engine to be changed.  The software is 100% Chicken Scheme and runs on computers external to the Wikipedia server itself.  Anybody who can install Chicken Scheme (and, for the time being, runs a UNIX-like system) can run the software.
     11Iron CHICKEN enhances the wiki environment by providing it with external processing power without requiring the core wiki engine to be changed.  The software is 100% CHICKEN Scheme and runs on computers external to the Wikipedia server itself.  Anybody who can install CHICKEN Scheme (and, for the time being, runs a UNIX-like system) can run the software.
    1212
    13 Iron Chicken is part of a project to create a new concept: a public wiki [[Wikipedia:Internet bot|bot]], an intelligent software tool that can be used by anyone.
     13Iron CHICKEN is part of a project to create a new concept: a public wiki [[Wikipedia:Internet bot|bot]], an intelligent software tool that can be used by anyone.
    1414
    15 Iron Chicken is (September, 2007) in advanced alpha state.  The account [[Wikipedia:User:TonyBot|TonyBot]] on English Wikipedia has made over 500 automated edits since it was authorized as a bot a few months ago.  Running on Tony Sidaway's home computer, it is now capable of automatically recognising, dispatching and executing user-level queries based on scripts written in Scheme on the wiki.
     15Iron CHICKEN is (September, 2007) in advanced alpha state.  The account [[Wikipedia:User:TonyBot|TonyBot]] on English Wikipedia has made over 500 automated edits since it was authorized as a bot a few months ago.  Running on Tony Sidaway's home computer, it is now capable of automatically recognising, dispatching and executing user-level queries based on scripts written in Scheme on the wiki.
    1616
    1717If anyone is interested in any aspect of this project, please contact the principal developer, [[Tony Sidaway]], <tonysidaway@gmail.com>
  • wiki/iup-tutor

    r26441 r31126  
    77easier. It has later been ported to Lua and other scripting languages,
    88and nowadays it is considered Lua's native GUI-toolkit. Thanks to
    9 [[/users/thomas-chust|Thomas Chust]] Chicken and Racket ports exist as well.
     9[[/users/thomas-chust|Thomas Chust]] CHICKEN and Racket ports exist as well.
    1010
    1111Unfortunately, the documentation is somewhat scattered in the internet:
    1212
    13 [[/eggref/4/iup|Chicken port of the Iup GUI library]]
     13[[/eggref/4/iup|CHICKEN port of the Iup GUI library]]
    1414
    1515[[http://www.chust.org/fossils/iup/doc/trunk/api/main.wiki|the official API docs]].
     
    7272=== Hello World
    7373
    74 Let's start with the most trivial version, in C and in Chicken:
     74Let's start with the most trivial version, in C and in CHICKEN:
    7575
    7676==== hello0.c
     
    9898</enscript>
    9999
    100 Note, that initializing and closing iup disappears in Chicken, since it
    101 is done when inporting iup. Note also, that the Chicken names are much
    102 friendlier than the C ones: Chicken's module system makes Iup prefixes
     100Note, that initializing and closing iup disappears in CHICKEN, since it
     101is done when inporting iup. Note also, that the CHICKEN names are much
     102friendlier than the C ones: CHICKEN's module system makes Iup prefixes
    103103superfluous, they can be added, if needed, with appropriate import
    104104clauses.
    105105
    106106Now a version which shows, how to use attributes and callbacks, again in
    107 C, and in two Chicken versions. The first is almost a literal
     107C, and in two CHICKEN versions. The first is almost a literal
    108108translation of the C version, the second a condensed version, where all
    109109attributes are set in the creation process.
     
    188188
    189189Note, how the upper-case C-names of attributes change to lower-case
    190 Chicken-keywords (by the way, Chicken-keywords can be either written with
     190CHICKEN-keywords (by the way, CHICKEN-keywords can be either written with
    191191a trailing colon or a leading hash-colon, but I prefere the former,
    192192which looks nicer).
     
    245245quotes, but interpreted as strings.
    246246
    247 Here is an example and its use in Chicken.
     247Here is an example and its use in CHICKEN.
    248248
    249249==== hello.led
     
    277277
    278278Note, that the LED-import is done via load/led and the identification
    279 of LED-names with Chicken-variables via handle-ref.
     279of LED-names with CHICKEN-variables via handle-ref.
    280280
    281281Note also, that btn must have a name, because
     
    297297
    298298The layout-dialog menu has an export item as well, whith which you can
    299 export your design to C, Lua or LED. Of course, for Chicken only the
     299export your design to C, Lua or LED. Of course, for CHICKEN only the
    300300LED export is of any value. But be warned, the dialog is not stable and
    301301exporting will crash the program very often, in particular, if the
     
    11351135==== webbrowser.scm
    11361136
    1137 Now an example which shows how mighty iup-web is, a Chicken
     1137Now an example which shows how mighty iup-web is, a CHICKEN
    11381138implementation of the webkit engine. With some lines of code we can
    11391139write a fully functional webbrowser. But there is one caveat with it:
  • wiki/language-comparison

    r29354 r31126  
    55<tr>
    66<td></td>
    7 <td>Chicken</td>
     7<td>CHICKEN</td>
    88<td>C</td>
    99<td>Python</td>
     
    207207=== Creating a hash table
    208208
    209 ==== Chicken
     209==== CHICKEN
    210210
    211211<enscript highlight="scheme">(make-hash-table)</enscript>
     
    231231=== Obtaining an element from a hash
    232232
    233 ==== Chicken
     233==== CHICKEN
    234234
    235235<enscript highlight=scheme>(hash-table-ref/default my_hash 2 #f)</enscript>
     
    252252=== Printing the keys in the hash
    253253
    254 ==== Chicken
     254==== CHICKEN
    255255
    256256If you can afford to have a list with the keys created, you should do this:
     
    282282=== Getting the number of items in a hash
    283283
    284 ==== Chicken
     284==== CHICKEN
    285285
    286286<enscript highlight=scheme>(hash-table-size my-hash)</enscript>
  • wiki/location-and-c-string-star

    r5496 r31126  
    1919
    2020It's fine to use {{let-location}} with a {{c-string}} type.
    21 Internally, every time you dereference this type, Chicken calls
     21Internally, every time you dereference this type, CHICKEN calls
    2222{{##sys#peek-c-string}}, which creates a new scheme string and copies the
    2323C string in with {{strcpy()}}.
     
    2626free() behavior?  Yes, if you're careful.
    2727
    28 Chicken will call {{##sys#peek-and-free-c-string}} every time your
     28CHICKEN will call {{##sys#peek-and-free-c-string}} every time your
    2929location ({{out}}) is dereferenced.  This does a {{strcpy()}} ''plus'' a
    3030{{free()}}.  So, it is not safe to dereference {{out}} more than once
  • wiki/logos

    r30781 r31126  
    2424Our current logo was a community-driven effort.  Its evolution might be interesting for history buffs. This image is what it started with:
    2525
    26 [[image:http://www.call-with-current-continuation.org/logos/Sarah_Scheme_Chicken_New.png]]
     26[[image:http://www.call-with-current-continuation.org/logos/Sarah_Scheme_CHICKEN_New.png]]
    2727new image also by sarah
    2828
  • wiki/maintainers

    r29984 r31126  
    2121* [[http://chicken.kitten-technologies.co.uk]]
    2222
    23 Here are the persons responsible for the Chicken infrastructure services:
     23Here are the persons responsible for the CHICKEN infrastructure services:
    2424
    2525; [[/users/alaric-blagrave-snellpym|Alaric Snell-Pym]]: Maintainer of the [[running-an-egg-mirror|egg mirror]] at [[http://chicken.kitten-technologies.co.uk]]. Contact him if you have any problems with it.
     
    2828; [[/users/jim-ursetto|Jim Ursetto]]: [[/egg/svnwiki-sxml|svnwiki-sxml]] (the wiki parser used by [[/egg/qwiki|qwiki]]) developer, [[/egg|Chickadee]] (the software behind [[http://api.call-cc.org|http://api.call-cc.org]]) developer, maintainer of the [[stability]] branch
    2929; [[/users/mario-domenech-goulart|Mario Domenech Goulart]]: General infrastructure and mailing lists administration, [[/egg/salmonella|Salmonella]] (the software behind [[http://tests.call-cc.org|http://tests.call-cc.org]]) developer
    30 ; [[/users/moritz-heidkamp|Moritz Heidkamp]]: [[/egg/vandusen|vandusen]] (the IRC bot that runs on Freenode.net's #chicken) developer, developer of CSS for the Chicken web sites
     30; [[/users/moritz-heidkamp|Moritz Heidkamp]]: [[/egg/vandusen|vandusen]] (the IRC bot that runs on Freenode.net's #chicken) developer, developer of CSS for the CHICKEN web sites
    3131; [[/users/peter-bex|Peter Bex]]: [[/egg/spiffy|Spiffy]] (the HTTP server for most CHICKEN infrastructure websites) and [[/egg/qwiki|Qwiki]] (the wiki system behind [[http://wiki.call-cc.org]]) developer, owner of #chicken IRC channel on freenode.net and maintainer of [[/egg/henrietta-cache|henrietta-cache]]
    3232; [[/users/christian-kellermann|Christian Kellermann]]: [[/egg/pastiche|Pastiche]], the service at [[http://paste.call-cc.org|http://paste.call-cc.org]] and [[/egg/parley|parley]] developer
     
    4040
    4141; [[/users/alejandro-forero-cuervo|Alejandro Forero Cuervo]]: Author and maintainer of [[http://wiki.freaks-unidos.net/svnwiki/|svnwiki]].
    42 ; [[/users/arto-bendiken|Arto Bendiken]]:  Administrator of the previous Chicken Trac system at http://trac.callcc.org.
     42; [[/users/arto-bendiken|Arto Bendiken]]:  Administrator of the previous CHICKEN Trac system at http://trac.callcc.org.
    4343; Ashley Bone:  Maintainer of the Visual C build.
    4444; [[/users/elf|Elf]]: Core hacker. Owner of the chickenscheme.[org|net] and chicken-scheme.[com|org|net] domains.
  • wiki/meet

    r29384 r31126  
    1 == Chicken Worldwide Meetups
     1== CHICKEN Worldwide Meetups
    22
    33Other events are here: [[events]].
    44
    5 === Chicken DE (Germany)
     5=== CHICKEN DE (Germany)
    66==== Cologne
    77* FROSCON 2010
     
    1919** [[http://wiki.call-cc.org/chicken-sprint-nuremberg]]
    2020
    21 === Chicken NL (Netherlands)
     21=== CHICKEN NL (Netherlands)
    2222* T-DOSE 2011
    2323* T-DOSE 2012
    2424
    25 === Chicken UK (United Kingdom)
    26 * Chicken UK 2012
     25=== CHICKEN UK (United Kingdom)
     26* CHICKEN UK 2012
    2727** [[http://wiki.call-cc.org/event/chicken-uk-2012]]
    2828
    29 === Chicken BE (Belgium)
     29=== CHICKEN BE (Belgium)
    3030* FOSDEM 2011
    3131
    32 === Chicken CA (Canada)
     32=== CHICKEN CA (Canada)
    3333* Toronto (Proposed)
    3434* Vancouver (Proposed)
    3535
    36 === Chicken US (United States)
     36=== CHICKEN US (United States)
    3737* San Francisco (Proposed)
  • wiki/nemo

    r29338 r31126  
    1010[[http://www.nest-initiative.org/|NEST]],
    1111[[http://www.gnu.org/software/octave/|GNU Octave]] and Matlab. It
    12 is distributed via the [[/eggs|Chicken package
     12is distributed via the [[/eggs|CHICKEN package
    1313distribution system]].
    1414
     
    2222=== Installation
    2323
    24 In order to install NEMO, you must first install Chicken Scheme and
     24In order to install NEMO, you must first install CHICKEN Scheme and
    2525then use the {{chicken-install}} program to download and compile NEMO.
    2626
     
    2828==== Prerequisites
    2929
    30 You will need to obtain and install the Chicken Scheme compiler and
     30You will need to obtain and install the CHICKEN Scheme compiler and
    3131programming environment. The latest official release is available from
    3232the following URL:
     
    3434  http://code.call-cc.org/releases/4.8.0/chicken-4.8.0.tar.gz
    3535
    36 On Mac OS X, you will also need to install Xcode, because Chicken must
     36On Mac OS X, you will also need to install Xcode, because CHICKEN must
    3737be compiled with the {{gcc}} compiler.  On Windows, you will need to
    3838install either one of the MinGW or Cygwin packages in order to obtain
    3939{{gcc}}.
    4040
    41 ==== Installation of Chicken Scheme
     41==== Installation of CHICKEN Scheme
    4242
    4343
    44 First, you will need to download the Chicken source archive from the
     44First, you will need to download the CHICKEN source archive from the
    4545above location, then unpack it and change to the directory extracted
    4646from the archive:
     
    6565==== Installation of NEMO
    6666
    67 After Chicken Scheme has been successfully installed, NEMO can be
     67After CHICKEN Scheme has been successfully installed, NEMO can be
    6868installed using the {{chicken-install}} program:
    6969
     
    7272
    7373On Windows, the tilde must be replaced with C:\\ or whichever drive
    74 you have installed Chicken on).
     74you have installed CHICKEN on).
    7575
    7676
  • wiki/neurolucida

    r27938 r31126  
    66{{neurolucida}} is a program to read Neurolucida XML files and convert
    77them to SWC format. It is distributed via the
    8 [[/eggs|Chicken package distribution system]].
     8[[/eggs|CHICKEN package distribution system]].
    99
    1010Documentation on using {{neurolucida}} is available at
     
    1616=== Installation
    1717
    18 In order to install NEMO, you must first install Chicken Scheme and
     18In order to install NEMO, you must first install CHICKEN Scheme and
    1919then use the {{chicken-install}} program to download and compile NEMO.
    2020
     
    2222==== Prerequisites
    2323
    24 You will need to obtain and install the Chicken Scheme compiler and
     24You will need to obtain and install the CHICKEN Scheme compiler and
    2525programming environment. The latest official release is available from
    2626the following URL:
     
    2828  http://code.call-cc.org/releases/4.7.0/chicken-4.7.0.tar.gz
    2929
    30 On Mac OS X, you will also need to install Xcode, because Chicken must
     30On Mac OS X, you will also need to install Xcode, because CHICKEN must
    3131be compiled with the {{gcc}} compiler.  On Windows, you will need to
    3232install either one of the MinGW or Cygwin packages in order to obtain
    3333{{gcc}}.
    3434
    35 ==== Installation of Chicken Scheme
     35==== Installation of CHICKEN Scheme
    3636
    3737
    38 First, you will need to download the Chicken source archive from the
     38First, you will need to download the CHICKEN source archive from the
    3939above location, then unpack it and change to the directory extracted
    4040from the archive:
     
    5959==== Installation of neurolucida
    6060
    61 After Chicken Scheme has been successfully installed, {{neurolucida}}
     61After CHICKEN Scheme has been successfully installed, {{neurolucida}}
    6262can be installed using the {{chicken-install}} program:
    6363
     
    6666
    6767On Windows, the tilde must be replaced with C:\\ or whichever drive
    68 you have installed Chicken on).
     68you have installed CHICKEN on).
    6969
    7070=== Precompiled executables
  • wiki/new-index

    r26261 r31126  
    11[[tags:main navigation]]
    22
    3 == Welcome to the Chicken wiki.
     3== Welcome to the CHICKEN wiki.
    44
    55<nowiki>
     
    88</nowiki>
    99
    10 [[http://www.call-with-current-continuation.org/|Chicken Scheme]] is
     10[[http://www.call-with-current-continuation.org/|CHICKEN Scheme]] is
    1111an implementation of the Scheme programming language. The system
    1212provides a Scheme to C Compiler and an Interpreter.
    1313
    14 Chicken Scheme aims to be
     14CHICKEN Scheme aims to be
    1515
    16 * Free software: Chicken core is BSD licensed, extensions are available through various free software licenses.
     16* Free software: CHICKEN core is BSD licensed, extensions are available through various free software licenses.
    1717* Practical to use: It features hundreds of available extensions for everyday tasks
    18 * Standards compliant: Chicken currently implements R5RS plus certain SRFIs. R7RS support is planned.
     18* Standards compliant: CHICKEN currently implements R5RS plus certain SRFIs. R7RS support is planned.
    1919* Easy to install: A working C compiler and GNU make are its build dependencies. Check also [[platforms| the platforms page]].
    2020* Easy to enhance: You can write your own extensions easily.
     
    3939</enscript>
    4040
    41 Chicken compiles to C, therefore interfacing with C libraries is easy:
     41CHICKEN compiles to C, therefore interfacing with C libraries is easy:
    4242
    4343<enscript higlight="scheme">
     
    7676
    7777; [[discussion-groups|Discussion groups]] : Mailing lists and IRC channel about CHICKEN
    78 ; [[http://gazette.call-cc.org|The Chicken Gazette]] : (Not so) weekly status updates about the CHICKEN project
    79 ; [[Contribute]] : Make Chicken Scheme a better system
     78; [[http://gazette.call-cc.org|The CHICKEN Gazette]] : (Not so) weekly status updates about the CHICKEN project
     79; [[Contribute]] : Make CHICKEN Scheme a better system
    8080; [[Donate]] : If you like chicken. Your donation helps us running our infrastructure and other things!
    81 == The people behind Chicken
     81== The people behind CHICKEN
    8282
    8383; [[maintainers|Maintainers]] : People who maintain CHICKEN
     
    8888; [[elevator-pitch|Elevator pitch]] : A brief explanation of why CHICKEN is suitable for Real World tasks
    8989; [[Supported standards]] : Information about the standards implemented by CHICKEN.
    90 ; [[Chicken for programmers of other languages]] : Chicken for programmers of C, Ruby, Python and other programming languages
     90; [[CHICKEN for programmers of other languages]] : CHICKEN for programmers of C, Ruby, Python and other programming languages
    9191; [[platforms|Platforms & packages]] : An overview of supported platforms and pre-packaged chickens
    9292
    93 == Using Chicken
     93== Using CHICKEN
    9494
    9595; [[Tutorials]] : Tutorials about all things CHICKEN!
  • wiki/nokia 770

    r2392 r31126  
    1 [[tags: Chicken on handhelds]]
     1[[tags: CHICKEN on handhelds]]
  • wiki/notes-on-chicken.h

    r31095 r31126  
    55=== Disclaimer
    66
    7 This page is a modest primer for reading the [[http://code.call-cc.org/cgi-bin/gitweb.cgi?p=chicken-core.git;a=blob;f=chicken.h;h=f5a103ee14314f7c679e01dd8e11c0404043791a;hb=HEAD|{{chicken.h}}]] header file. By no means it is intended to be a comprehensive guide for understanding chicken source. Please consider reading [[Internals]] for a more in-depth understanding of how Chicken works. Feel free to make suggestions to [[/users/arthurmaciel|Arthur]] or edit this page directly.
     7This page is a modest primer for reading the [[http://code.call-cc.org/cgi-bin/gitweb.cgi?p=chicken-core.git;a=blob;f=chicken.h;h=f5a103ee14314f7c679e01dd8e11c0404043791a;hb=HEAD|{{chicken.h}}]] header file. By no means it is intended to be a comprehensive guide for understanding chicken source. Please consider reading [[Internals]] for a more in-depth understanding of how CHICKEN works. Feel free to make suggestions to [[/users/arthurmaciel|Arthur]] or edit this page directly.
    88
    99=== Purpose
     
    1313=== License and copyright
    1414
    15 The file is licensed under the [[http://opensource.org/licenses/BSD-3-Clause|3-clause BSD license]] and nowadays The Chicken Team retains its copyright.
     15The file is licensed under the [[http://opensource.org/licenses/BSD-3-Clause|3-clause BSD license]] and nowadays The CHICKEN Team retains its copyright.
    1616
    1717=== Language
  • wiki/platforms

    r30255 r31126  
    55== Platform packages
    66
    7 This aims to provide a comprehensive listing of all platforms where Chicken
     7This aims to provide a comprehensive listing of all platforms where CHICKEN
    88is available in pre-packaged form (whether as a distribution package or a
    99binary).
     
    3434* CHICKEN 3.2.7 is officially included in the Debian Lenny (old stable) distribution.
    3535
    36 For a complete Chicken install on Debian, you need to
     36For a complete CHICKEN install on Debian, you need to
    3737 # aptitude install chicken-bin libchicken-dev libchicken6
    3838
     
    6868=== OpenSUSE
    6969
    70 There are currently two unofficial builds of Chicken for [[http://opensuse.org/|OpenSuSE]], which are built and kept updated using OpenSuSE's build service facility [[https://build.opensuse.org/|OBS]]. They can be obtained by adding the corresponding repository [[https://build.opensuse.org/package/show?package=chicken&project=home%3Amwilhelmy%3Achicken|home:mwilhelmy]] or [[https://build.opensuse.org/package/show?package=chicken&project=home%3Aavli%3Ascheme|home:avli:scheme]] to zypper's repository list and installing from there.
     70There are currently two unofficial builds of CHICKEN for [[http://opensuse.org/|OpenSuSE]], which are built and kept updated using OpenSuSE's build service facility [[https://build.opensuse.org/|OBS]]. They can be obtained by adding the corresponding repository [[https://build.opensuse.org/package/show?package=chicken&project=home%3Amwilhelmy%3Achicken|home:mwilhelmy]] or [[https://build.opensuse.org/package/show?package=chicken&project=home%3Aavli%3Ascheme|home:avli:scheme]] to zypper's repository list and installing from there.
    7171
    7272You need something along the lines of
     
    8282==== Yocto/OpenEmbedded
    8383
    84 [[http://github.com/OSSystems|meta-chicken]] is a layer for [[http://www.yoctoproject.org|Yocto]]/[[http://www.openembedded.org|OpenEmbedded]] which can be used to cross-compile Chicken and eggs.
     84[[http://github.com/OSSystems|meta-chicken]] is a layer for [[http://www.yoctoproject.org|Yocto]]/[[http://www.openembedded.org|OpenEmbedded]] which can be used to cross-compile CHICKEN and eggs.
    8585
    8686
    8787==== OpenMoko
    8888
    89 This package consists of the runtime library plus interpreter. The version of Chicken is 2.733.
     89This package consists of the runtime library plus interpreter. The version of CHICKEN is 2.733.
    9090
    9191 ipkg install http://zedstar.org/ipk/chicken-scheme-interpreter_2.733_armv4t.ipk
     
    9595==== Maemo 5
    9696
    97 Instructions for getting Chicken (4.4) and many eggs from a handy optified deb repository are at: http://0xab.com/n900
     97Instructions for getting CHICKEN (4.4) and many eggs from a handy optified deb repository are at: http://0xab.com/n900
    9898
    9999Package maintained by [[http://0xab.com/|Andrei Barbu]].
     
    173173=== HaikuPorts
    174174
    175 Chicken has been added to the official [[http://www.haikuports.org|ports repository]] and can be installed with the following command:
     175CHICKEN has been added to the official [[http://www.haikuports.org|ports repository]] and can be installed with the following command:
    176176
    177177  haikuporter -i chicken
  • wiki/portability

    r30952 r31126  
    77This page lists all platforms in which the new version has been confirmed to build and run.
    88
    9 If your platform is not listed here, it doesn't mean Chicken doesn't run on it, it's just that nobody has tested on it yet (or nobody has updated the table below).  The same is valid for Chicken versions.
     9If your platform is not listed here, it doesn't mean CHICKEN doesn't run on it, it's just that nobody has tested on it yet (or nobody has updated the table below).  The same is valid for CHICKEN versions.
    1010
    1111<table>
  • wiki/r7rs-tasks

    r31070 r31126  
    3535[[/eggref/4/numbers|numbers]] egg is likely to need some enhancements
    3636({{equal[=]?}} with handling of circular data, see below).
    37 * JC: I don't understand why things would be complicated with Chicken's default fixnum/flonum support.  There is no {{equal=?}} in R7RS, and {{equal?}} should not be affected.
     37* JC: I don't understand why things would be complicated with CHICKEN's default fixnum/flonum support.  There is no {{equal=?}} in R7RS, and {{equal?}} should not be affected.
    3838* JC: What about making full Unicode support the default?  R7RS does not require it, but it might be better so.
    3939
     
    114114
    115115* {{letrec*}}. Change all internal uses of {{letrec}} to {{letrec*}} and add a correct implementation of {{letrec}}. This will produce a bootstrapping problem (the compilation of syntactic forms that expand into uses of {{letrec*}} will require a compiler with support for {{letrec*}}), which can be solved but needs to be done with care. (+)
    116 ** JC: In R7RS (though not in R6RS), {{letrec*}} ''is'' a valid implementation of {{letrec}}, which retroactively approves Chicken's strategy.  So nothing needs to be done except to add {{letrec*}} as a synonym for {{letrec}}.
     116** JC: In R7RS (though not in R6RS), {{letrec*}} ''is'' a valid implementation of {{letrec}}, which retroactively approves CHICKEN's strategy.  So nothing needs to be done except to add {{letrec*}} as a synonym for {{letrec}}.
    117117** EH: Pushed to core.
    118118
     
    188188** PB: Implemented and pushed to core.
    189189
    190 * Note for future hackers:  it's right to implement bytevectors as u8vectors, not as blobs, for better compatibility with pre-R7RS Chicken code.  You just can't do enough with blobs.
     190* Note for future hackers:  it's right to implement bytevectors as u8vectors, not as blobs, for better compatibility with pre-R7RS CHICKEN code.  You just can't do enough with blobs.
    191191
    192192==== 6.13.3. Output
     
    198198
    199199* Without a canonical list of features and their exact meaning this is mostly useless. (?)
    200 ** JC: The ones that Chicken should provide are {{r7rs}}, {{ieee-float}}, and either {{posix}} or {{windows}} as the case may be.  If the full numeric tower is provided, add {{exact-closed}}, {{exact-complex}}, and {{ratios}}.  If Unicode is provided, add {{full-unicode}}.  This should be integrated with the Chicken native {{(features)}} list.
     200** JC: The ones that CHICKEN should provide are {{r7rs}}, {{ieee-float}}, and either {{posix}} or {{windows}} as the case may be.  If the full numeric tower is provided, add {{exact-closed}}, {{exact-complex}}, and {{ratios}}.  If Unicode is provided, add {{full-unicode}}.  This should be integrated with the CHICKEN native {{(features)}} list.
    201201
    202202=== Implementations in the r7rs egg that override core functionality
     
    218218==== 4.2.6 Dynamic bindings
    219219
    220 * There is no problem with using Chicken parameters directly as R7RS parameters.
     220* There is no problem with using CHICKEN parameters directly as R7RS parameters.
    221221
    222222==== 5.2. Import declarations
    223223
    224224* {{import}}. A library name may not begin with a modifier-keyword like {{only}}, right? (? *)
    225 ** JC: Right.  The important thing here is that in an R7RS library or program, {{import}} is Chicken's {{use}}.
     225** JC: Right.  The important thing here is that in an R7RS library or program, {{import}} is CHICKEN's {{use}}.
    226226** EH: Pushed to egg.
    227227
  • wiki/release-policy

    r30602 r31126  
    4545
    4646
    47 Therefore, Chicken version numbers can be interpreted like so:
     47Therefore, CHICKEN version numbers can be interpreted like so:
    4848
    4949# A.B.0 (often written as A.B for short): Stable release
  • wiki/releasing-your-egg

    r30437 r31126  
    185185provide an easy way to point to a raw view on a moving "latest
    186186version" pointer via HTTP, you could instead opt to store just the
    187 release-info files of your eggs in the centralised Chicken eggs
     187release-info files of your eggs in the centralised CHICKEN eggs
    188188subversion repository.  Just contact one of the project maintainers or
    189189write to the chicken-users mailinglist.
     
    194194out the correct URIs and how to automate some steps away.
    195195
    196 ==== Chicken subversion eggs repository
     196==== CHICKEN subversion eggs repository
    197197
    198198The traditional way to distribute eggs has not changed much.  We hope
     
    279279</enscript>
    280280
    281 Note that there is a [[https://gitorious.org/chicken-eggs|Chicken Eggs
     281Note that there is a [[https://gitorious.org/chicken-eggs|CHICKEN Eggs
    282282project]] on Gitorious already. If you want you can ask its owner to
    283283add your egg's repository to it.
     
    484484still required that your egg's release versions are unique for your
    485485egg.  Series are probably more suitable for distinguishing between
    486 major Chicken release versions.
     486major CHICKEN release versions.
    487487
    488488<enscript highlight="scheme">
  • wiki/running-an-egg-mirror

    r27028 r31126  
    3737</enscript>
    3838
    39 If you would like to help the Chicken community by offering your mirror up for public usage, please contact [[maintainers|the Chicken core team]]. Thanks!
     39If you would like to help the CHICKEN community by offering your mirror up for public usage, please contact [[maintainers|the CHICKEN core team]]. Thanks!
  • wiki/running-csi-on-cygwin

    r29533 r31126  
    1 The behavior of dynamic link libraries (DLLs) on Cygwin is somewhat schizoid, because Cygwin programs are loaded by the regular Windows program loader.  When Windows loads a DLL that a program executable requires, it looks on {{PATH}}, but when a Cygwin program decides to load a DLL itself using the Unix-compatible {{dlopen()}} call, it looks on {{LD_LIBRARY_PATH}} as Unix systems do.  This is fundamental and unchangeable, and usually doesn't cause a problem.  However, with {{csi}}, Chicken's interpreter, it does.
     1The behavior of dynamic link libraries (DLLs) on Cygwin is somewhat schizoid, because Cygwin programs are loaded by the regular Windows program loader.  When Windows loads a DLL that a program executable requires, it looks on {{PATH}}, but when a Cygwin program decides to load a DLL itself using the Unix-compatible {{dlopen()}} call, it looks on {{LD_LIBRARY_PATH}} as Unix systems do.  This is fundamental and unchangeable, and usually doesn't cause a problem.  However, with {{csi}}, CHICKEN's interpreter, it does.
    22
    3 The standard units like {{srfi-1}} and {{posix}} are stored in the standard Chicken DLL, which on Cygwin is called {{cygchicken-0.dll}}.  This file is loaded by Windows when {{csi.exe}} starts up.  However, it also needs to be loaded again when you say {{(use srfi-1)}} in order to use SRFI 1 procedures in the REPL.  Unfortunately, {{cygchicken-0.dll}} is not on {{LD_LIBRARY_PATH}} at all; it's in {{/usr/local/bin}}, which is where Windows needs it to be.
     3The standard units like {{srfi-1}} and {{posix}} are stored in the standard CHICKEN DLL, which on Cygwin is called {{cygchicken-0.dll}}.  This file is loaded by Windows when {{csi.exe}} starts up.  However, it also needs to be loaded again when you say {{(use srfi-1)}} in order to use SRFI 1 procedures in the REPL.  Unfortunately, {{cygchicken-0.dll}} is not on {{LD_LIBRARY_PATH}} at all; it's in {{/usr/local/bin}}, which is where Windows needs it to be.
    44
    55I've experimented with a few ways to solve this.  Creating a symbolic link, hard link, or copy of {{/usr/local/bin/cygchicken-0.dll}} in {{/usr/local/lib}} or {{/usr/lib}} does ''not'' work.  You can set {{LD_LIBRARY_PATH}} permanently to {{/usr/local/bin}}, but that may cause funky problems with other Cygwin programs.  So I recommend adding this line to your {{.bash_profile}} or {{.bash_aliases}} file:
  • wiki/sdl2-android

    r30797 r31126  
    1 This is a very quick-and-dirty guide to get SDL2 up and running with Chicken. However, there is unfortunately currently no SDL2 egg for Chicken (there is a SDL1 egg but that doesn't help us here - we want SDL2 since it has official Android support and it has a nice touch API).
     1This is a very quick-and-dirty guide to get SDL2 up and running with CHICKEN. However, there is unfortunately currently no SDL2 egg for CHICKEN (there is a SDL1 egg but that doesn't help us here - we want SDL2 since it has official Android support and it has a nice touch API).
    22
    3 To debug you can use {{adb logcat}}, but note that stdout is ignored by Android! This means Chicken-errors may get dumped on the floor.
     3To debug you can use {{adb logcat}}, but note that stdout is ignored by Android! This means CHICKEN-errors may get dumped on the floor.
    44
    55Hopefully, the following script-guide may be helpful. Also, if you are really brave, you could try out [[https://gist.github.com/kristianlm/8229999|this]] similar guide.
  • wiki/search-help

    r25158 r31126  
    2323; {{macro: and-let*}} : Returns only pages that refer to an identifier {{and-let*}} where that identifier refers to a macro.
    2424
    25 ''important'': This search will only work if the identifier is marked up on the target page using the proper [[/edit-help#extensions-for-chicken-documentation|semantic wiki markup for Chicken documentation]].
     25''important'': This search will only work if the identifier is marked up on the target page using the proper [[/edit-help#extensions-for-chicken-documentation|semantic wiki markup for CHICKEN documentation]].
  • wiki/stability

    r30983 r31126  
    55=== Overview
    66
    7 The stability branch series is an official fork of the Chicken Scheme
     7The stability branch series is an official fork of the CHICKEN Scheme
    88[[http://code.call-cc.org/|core]] which backports certain useful
    99bugfixes and minor features from the future to "stable"
     
    3636
    3737The {{stability/4.7.0}} branch is recommended for general use and is
    38 based on Chicken 4.7.0.
     38based on CHICKEN 4.7.0.
    3939
    4040The latest version is 4.7.0.6
     
    4949==== From tarball (4.7.0.x)
    5050
    51 Stability tarballs can be built from scratch without an existing copy of Chicken.  See the [[http://code.call-cc.org/cgi-bin/gitweb.cgi?p=chicken-core.git;a=blob_plain;f=README;hb=stability/4.7.0|README]] for build instructions.
     51Stability tarballs can be built from scratch without an existing copy of CHICKEN.  See the [[http://code.call-cc.org/cgi-bin/gitweb.cgi?p=chicken-core.git;a=blob_plain;f=README;hb=stability/4.7.0|README]] for build instructions.
    5252
    5353* [[http://code.call-cc.org/stability/4.7.0/chicken-4.7.0.6.tar.gz|4.7.0.6.tar.gz]] ([[http://code.call-cc.org/stability/4.7.0/chicken-4.7.0.6.tar.gz.md5|md5]])
  • wiki/supported-standards

    r30368 r31126  
    33== Supported standards
    44
    5 This page attempts to list all standards Chicken supports; reports,
    6 SRFIs etc.  If any Chicken-specific documentation about extensions to
     5This page attempts to list all standards CHICKEN supports; reports,
     6SRFIs etc.  If any CHICKEN-specific documentation about extensions to
    77or deviations from this standard is available, the text links to it.
    88
    9 === Chicken core
     9=== CHICKEN core
    1010
    11 The following list applies to both Chicken 3 and 4:
     11The following list applies to both CHICKEN 3 and 4:
    1212
    1313==== Scheme reports/documents
     
    5353If you create or port an egg, please add it below:
    5454
    55 ==== Chicken 4
     55==== CHICKEN 4
    5656
    5757* [[/eggref/4/srfi-19|SRFI-19]] Time Data Types and Procedures
     
    7777* [[/eggref/4/box|SRFI-111]] Boxes
    7878
    79 ==== Chicken 3
     79==== CHICKEN 3
    8080
    8181* [[/eggref/3/srfi-19|SRFI-19]]
  • wiki/survey2011

    r24810 r31126  
    11[[toc:]]
    22
    3 == Results of the Chicken Survey 2011
     3== Results of the CHICKEN Survey 2011
    44
    55
     
    3939</nowiki>
    4040
    41 === Use of Chicken Scheme
     41=== Use of CHICKEN Scheme
    4242
    43 ==== How did you discover Chicken Scheme?
     43==== How did you discover CHICKEN Scheme?
    4444
    4545<nowiki>
    46 <img width="75%" src="http://call-cc.org/survey/2011/HowDidYouDiscoverChicken.png" alt="How did you discover Chicken?">
     46<img width="75%" src="http://call-cc.org/survey/2011/HowDidYouDiscoverChicken.png" alt="How did you discover CHICKEN?">
    4747</nowiki>
    4848
    49 ==== How long have you been using Chicken Scheme?
     49==== How long have you been using CHICKEN Scheme?
    5050
    5151<nowiki>
    52 <img width="75%" src="http://call-cc.org/survey/2011/HowLongHaveYouBeenUsingChicken.png" alt="How long have you been using Chicken?">
     52<img width="75%" src="http://call-cc.org/survey/2011/HowLongHaveYouBeenUsingChicken.png" alt="How long have you been using CHICKEN?">
    5353</nowiki>
    5454
    55 ==== How would you characterise your use of Chicken Scheme?
     55==== How would you characterise your use of CHICKEN Scheme?
    5656
    5757<nowiki>
    58 <img width="75%" src="http://call-cc.org/survey/2011/CharacteriseUseOfChicken.png" alt="Uses of Chicken">
     58<img width="75%" src="http://call-cc.org/survey/2011/CharacteriseUseOfChicken.png" alt="Uses of CHICKEN">
    5959</nowiki>
    6060
    61 ==== What is the status of Chicken Scheme at your workplace?
     61==== What is the status of CHICKEN Scheme at your workplace?
    6262
    6363<nowiki>
    64 <img width="75%" src="http://call-cc.org/survey/2011/StatusOfChickenWorkplace.png" alt="Status of Chicken at the workplace">
     64<img width="75%" src="http://call-cc.org/survey/2011/StatusOfChickenWorkplace.png" alt="Status of CHICKEN at the workplace">
    6565</nowiki>
    6666
    67 ==== In which domain(s) are you using Chicken?
     67==== In which domain(s) are you using CHICKEN?
    6868
    6969<nowiki>
    70 <img width="75%" src="http://call-cc.org/survey/2011/DomainsOfChickenUse.png" alt="Domains of Chicken use">
     70<img width="75%" src="http://call-cc.org/survey/2011/DomainsOfChickenUse.png" alt="Domains of CHICKEN use">
    7171</nowiki>
    7272
    73 ==== In which domain(s) are you using Chicken if other?
     73==== In which domain(s) are you using CHICKEN if other?
    7474
    7575* Scripting (I suppose that falls under "System administration" though); research                                               
     
    7979* Image processing, machine learning, data analysis.                                                                     
    8080* Electronics Design Automation                                                                                             
    81 * I use Chicken for teaching about programming paradigms and language features and also for teaching concurrent programming. I also often use Chicken for scripting.
     81* I use CHICKEN for teaching about programming paradigms and language features and also for teaching concurrent programming. I also often use CHICKEN for scripting.
    8282* natural language processing, search engines                                                                             
    8383* Multi-language programming                                                                                                 
     
    9191</nowiki>
    9292
    93 === The future of Chicken Scheme
     93=== The future of CHICKEN Scheme
    9494
    95 ==== If Chicken disappeared, what languages will you consider as replacement?
     95==== If CHICKEN disappeared, what languages will you consider as replacement?
    9696
    9797<nowiki>
    98 <img width="75%" src="http://call-cc.org/survey/2011/ChickenReplacement.png" alt="Possible replacements of Chicken">
     98<img width="75%" src="http://call-cc.org/survey/2011/ChickenReplacement.png" alt="Possible replacements of CHICKEN">
    9999</nowiki>
    100100
    101 ==== What have been the most important advantages for you in using Chicken?
     101==== What have been the most important advantages for you in using CHICKEN?
    102102
    103103<nowiki>
    104 <img width="75%" src="http://call-cc.org/survey/2011/ChickenAdvantages.png" alt="Advantages of Chicken">
     104<img width="75%" src="http://call-cc.org/survey/2011/ChickenAdvantages.png" alt="Advantages of CHICKEN">
    105105</nowiki>
    106106
    107 ==== What have been some other advantages for you in using Chicken?
     107==== What have been some other advantages for you in using CHICKEN?
    108108
    109 * Although Chicken has changed over the years, the C source has always been stable in the sense that it compiled out of the box (at least for me), on a variety of machines and operating systems (incl. old PowerPCs)                             
     109* Although CHICKEN has changed over the years, the C source has always been stable in the sense that it compiled out of the box (at least for me), on a variety of machines and operating systems (incl. old PowerPCs)                             
    110110* Closely tied to C.                                                                                                                                         
    111111* Interaction with C and its relative speed (over say Racket) are major advantages for myself.  Also, ease of compiling into a distributable executable.
    112112* Good documentation [submitted by two different respondents]
    113113* Simplicity; portability of C code (generated and compiler).                                           
    114 * Efficiency! Chicken is quite fast.
     114* Efficiency! CHICKEN is quite fast.
    115115* It is relatively simple compared to the other schemes I've tried.
    116116* Portability, very few dependencies
    117 * I can't say enough good things about the community.  The culture of the mailing-list and IRC channel are positive, helpful and inviting.  While I find Chicken to be technologically superior to other Schemes, I'd be happy to turn my back on it if the community wasn't just so great.  Truly, the community is where the greatest portion of Chicken's value lies.  The Chicken community is a shining example of Open Source Software at its finest.
     117* I can't say enough good things about the community.  The culture of the mailing-list and IRC channel are positive, helpful and inviting.  While I find CHICKEN to be technologically superior to other Schemes, I'd be happy to turn my back on it if the community wasn't just so great.  Truly, the community is where the greatest portion of CHICKEN's value lies.  The CHICKEN community is a shining example of Open Source Software at its finest.
    118118* It's super cool!
    119119* compilable
    120120* Small Package, AOT compilation to native code
    121 * The Chicken C-FFI is by far the most complete, effective, and easiest to use of any Scheme implementation out there.  Combined with Chicken's superior "lolevel" functionality, nothing else even comes close.
     121* The CHICKEN C-FFI is by far the most complete, effective, and easiest to use of any Scheme implementation out there.  Combined with CHICKEN's superior "lolevel" functionality, nothing else even comes close.
    122122* It's a system for real world projects. The developers understand the user's needs (instead of trying to to tell them what is good for them  - a common issue in the scheme community)
    123123* Exceptionally stable and reliable
     
    126126
    127127
    128 ==== What have been the most important disadvantages for you in using Chicken?
     128==== What have been the most important disadvantages for you in using CHICKEN?
    129129
    130130<nowiki>
    131 <img width="85%" src="http://call-cc.org/survey/2011/ChickenDisadvantages.png" alt="Disadvantages of Chicken">
     131<img width="85%" src="http://call-cc.org/survey/2011/ChickenDisadvantages.png" alt="Disadvantages of CHICKEN">
    132132</nowiki>
    133133
    134 ==== What have been some other disadvantages for you in using Chicken?
     134==== What have been some other disadvantages for you in using CHICKEN?
    135135
    136136* There's usually no Windows version available. :(
    137137* No stable branch
    138138* What prevents me from using it more extensively at work is not "prejudice", but the simple fact that lisp syntax and functional programming are too alien concepts to most "programmers." I would say that it takes a good programmer, one who has "cracked" the gist of computer science, to successfully use Scheme. Unfortunately we are too few. In my workplace I found Python to be a good substitute, with a more "natural" (pre-specialized, free-flowing) syntax and less functionally oriented.
    139 * This form refused to submit if I didn't check any boxes. The only thing really limiting me in using Chicken is the time I spend to acquaint myself to it.
     139* This form refused to submit if I didn't check any boxes. The only thing really limiting me in using CHICKEN is the time I spend to acquaint myself to it.
    140140* Needs more syntactic sugar for data structures. Like Clojure: http://clojure.org/data_structures
    141141* None really (submitted by two respondents)
    142 * Lack of native GUI system, module system is weak (or I'm missing something).  For those two reasons I'm using Racket for production work. And it's not something I'm happy about. I'd actually prefer to use Chicken because the community around it is very nice and I'd like to be part of it but I've just started to build a business writing scheme code and I have no time nor experience to implement these things myself (yet).
     142* Lack of native GUI system, module system is weak (or I'm missing something).  For those two reasons I'm using Racket for production work. And it's not something I'm happy about. I'd actually prefer to use CHICKEN because the community around it is very nice and I'd like to be part of it but I've just started to build a business writing scheme code and I have no time nor experience to implement these things myself (yet).
    143143* No Webkit binding. That would be the killer feature for me. Especially it were "lispy" :)
    144144* general (perceived) lack of community interest in desktop apps
    145145* Sometimes the error messages are not very helpful.
    146 * Chicken is not as popular as mainstream languages, so getting Chicken used on professional projects is quite difficult.  That's more a social problem than a Chicken problem, in fact.
    147 * SRFI 18 in Chicken will not use multiple cores (at least it didn't last time I checked)
     146* CHICKEN is not as popular as mainstream languages, so getting CHICKEN used on professional projects is quite difficult.  That's more a social problem than a CHICKEN problem, in fact.
     147* SRFI 18 in CHICKEN will not use multiple cores (at least it didn't last time I checked)
    148148* need more libraries
    149149* Memory management results in huge amount of copying.
    150 * I like to do my programming in Plan 9, which is unsupported by Chicken. In fact, by design, I don't even know if it can be supported.
     150* I like to do my programming in Plan 9, which is unsupported by CHICKEN. In fact, by design, I don't even know if it can be supported.
    151151* The lack of a robust interactive debugger is the biggest disadvantage to me. I'd like to see either   a) an interactive, stepping debugger a-la clisp or Franz Lisp b) a tutorial that describes how to achieve the above using existing eggs and csi.  Maybe the tools are there, and I'm just under-educated on them.
    152152* The lack of reliable static compilation (e.g. with extensions) is my only complaint.
     
    154154* I miss SLIME and I miss its debugging environment (i.e., I miss CL's condition handling and restart system).  But other than that, I'm happy.
    155155* I really miss lightweight but useful record types with inheritance and metadata, like in Racket. While there are coops and SRFI-9 for CHICKEN, I tend to consider coops overkill and SRFI-9 clumsy (and it lacks inheritance support).
    156 * Documentation is getting better, but still vague sometimes.  (As I've gained familiarity with Chicken, documentation is less of an issue.  Still, with new features, descriptions could be more helpful.  The next Big Thing looks like type specialization: a really good idea, but a lot of info to digest--clear examples of how to use it will help.)  Otherwise, the biggest issue is lack of adequate debugging facilities,  and especially in compiled code, error messages are often uninformative (where did that happen?  What location?  What file, procedure, line number?).  Fix those, and what Scheme, Lisp, or gen-purpose, HL language could be more compelling than Chicken?
     156* Documentation is getting better, but still vague sometimes.  (As I've gained familiarity with CHICKEN, documentation is less of an issue.  Still, with new features, descriptions could be more helpful.  The next Big Thing looks like type specialization: a really good idea, but a lot of info to digest--clear examples of how to use it will help.)  Otherwise, the biggest issue is lack of adequate debugging facilities,  and especially in compiled code, error messages are often uninformative (where did that happen?  What location?  What file, procedure, line number?).  Fix those, and what Scheme, Lisp, or gen-purpose, HL language could be more compelling than CHICKEN?
    157157* The main issue is the scheme community in general. The lack of cooperation and cohesiveness in the scheme world is a serious turn off when you want to use scheme for a serious long-term project. The childish attitude of most implentors puts the whole language's future in jeopardy  (Note that the chicken community is exceptional, but we have to take the whole community into account).
    158 * Difficulty in shipping a product that doesn't depend on Chicken at runtime, or includes Chicken within the product release.
     158* Difficulty in shipping a product that doesn't depend on CHICKEN at runtime, or includes CHICKEN within the product release.
  • wiki/svn checkout

    r19340 r31126  
    1717 svn checkout https://anonymous:@code.call-cc.org/svn/chicken-eggs/wiki
    1818
    19 If you have an account for the Chicken Eggs repository, you can use it.
     19If you have an account for the CHICKEN Eggs repository, you can use it.
    2020In that case you'd leave the {{anonymous:@}} portion out of the URL above:
    2121
  • wiki/tehila

    r17807 r31126  
    11Tehila is a 3d game engine written in scheme.
    22
    3 Currently Tehila is alpha-quality, and very Chicken Scheme specific. There's tons of room for speed optimization, and plenty to do to make it more scheme-like. But it's progressing quite nicely as of April 2009.
     3Currently Tehila is alpha-quality, and very CHICKEN Scheme specific. There's tons of room for speed optimization, and plenty to do to make it more scheme-like. But it's progressing quite nicely as of April 2009.
    44
    55Please check out the git repository for more information [[http://github.com/sgrove/tehila]]
  • wiki/tips and tricks

    r29532 r31126  
    22
    33* [[Generating the smallest possible, self-contained executable]]
    4 * [[Building Chicken for Performance]]
     4* [[Building CHICKEN for Performance]]
    55* [[Using the GNU Autotools with compiled code]]
    66* [[Cross compilation]]
     
    1010* [[Deploying Cocoa applications]]
    1111* [[Linking eggs statically]]
    12 * [[Editing Chicken code]]
     12* [[Editing CHICKEN code]]
    1313* [[define-record and srfi 17]]
    1414* [[bash completion | bash completion for chicken tools]]
    1515* [[Vim mode for .ssp files]]
    16 * [[Allocating C structures under control of the Chicken GC]]
    17 * [[Building Chicken with MacOS X]]
     16* [[Allocating C structures under control of the CHICKEN GC]]
     17* [[Building CHICKEN with MacOS X]]
    1818* [[Running csi on Cygwin]]
    1919
    2020== Code snippets
    2121
    22 * [[Chicken Invaders, with Continuations]]
     22* [[CHICKEN Invaders, with Continuations]]
    2323* [[A script to browse the HTML manual]]
    2424* [[An extended FFI example]]
  • wiki/tutorials

    r30793 r31126  
    11[[tags:tutorials navigation]]
    22
    3 == Chicken Scheme tutorials
     3== CHICKEN Scheme tutorials
    44
    5 This page contains a list of tutorials we have written (or would like someone to write) about Chicken Scheme.
     5This page contains a list of tutorials we have written (or would like someone to write) about CHICKEN Scheme.
    66
    77; [[chickenista-guide|A guided tour through the CHICKEN republic]]: [[/Users/Christian Kellermann|Christian's]] FrOSCon 2011 talk
    88; [[http://www.xs4all.nl/~hipster/lib/scheme/gauche/define-syntax-primer.txt|JRM's Syntax-rules Primer for the Merely Eccentric]]: A famous and very friendly introduction to the R5RS high-level macro system known as {{syntax-rules}}.
    99; [[http://petrofsky.org/src/primer.txt|Al* Petrofky's "An Advanced Syntax-Rules Primer for the Mildly Insane"]]: A useful article to read if you wish to know the nitty-gritty details of how macro renaming works. This may help you to not only understand syntax-rules better, but will also provide a good basis for grokking explicit renaming and other macro systems.
    10 ; [[explicit-renaming-macros|Explicit (and implicit) renaming macros]]: Introduction to "explicit (and implicit) renaming" macros, the low-level macro systems used in Chicken.
    11 ; [[iup-tutor|The Iup GUI toolkit]]: Some examples for using Iup in Chicken.
    12 ; [[http://lists.gnu.org/archive/html/chicken-users/2008-04/msg00013.html|Macro systems and chicken (long)]]: An excellent post by [[/users/alex-shinn|Alex Shinn]], explaining different macro systems. '''Please note:''' This was written when Chicken 4 was not yet released, and hence refers to various different macro systems available for Chicken at the time. This is no longer true since Chicken now has [[/manual/Macros|ER- and IR-macros]] built in.
    13 ; [[Design by Contract]]: How to use Design by Contract in Chicken.
    14 ; [[Design by Contract old version]]: How to use Design by Contract in Chicken (old version).
     10; [[explicit-renaming-macros|Explicit (and implicit) renaming macros]]: Introduction to "explicit (and implicit) renaming" macros, the low-level macro systems used in CHICKEN.
     11; [[iup-tutor|The Iup GUI toolkit]]: Some examples for using Iup in CHICKEN.
     12; [[http://lists.gnu.org/archive/html/chicken-users/2008-04/msg00013.html|Macro systems and chicken (long)]]: An excellent post by [[/users/alex-shinn|Alex Shinn]], explaining different macro systems. '''Please note:''' This was written when CHICKEN 4 was not yet released, and hence refers to various different macro systems available for CHICKEN at the time. This is no longer true since CHICKEN now has [[/manual/Macros|ER- and IR-macros]] built in.
     13; [[Design by Contract]]: How to use Design by Contract in CHICKEN.
     14; [[Design by Contract old version]]: How to use Design by Contract in CHICKEN (old version).
    1515; [[Assertions]]: How to use assertions in your code as a way to detect programming errors.
    16 ; [[Autoconf - Automake]] : A tutorial explaining how to use Autoconf and Automake  in software packages containing Scheme files meant to be compiled by Chicken.
    17 ; [[Eggs Tutorial]] : A tutorial about creating Chicken eggs.
    18 ; [[Chicken on handhelds]] : A guide to using Chicken on embedded devices.
    19 ; [[Compiling Chicken on Windows XP with MinGW]] : For the Windows using C/C++ newbies like me.
    20 ; [[Embedding]] : Some pointers on embedding Chicken in another application.
     16; [[Autoconf - Automake]] : A tutorial explaining how to use Autoconf and Automake  in software packages containing Scheme files meant to be compiled by CHICKEN.
     17; [[Eggs Tutorial]] : A tutorial about creating CHICKEN eggs.
     18; [[CHICKEN on handhelds]] : A guide to using CHICKEN on embedded devices.
     19; [[Compiling CHICKEN on Windows XP with MinGW]] : For the Windows using C/C++ newbies like me.
     20; [[Embedding]] : Some pointers on embedding CHICKEN in another application.
    2121; [[programming-for-performance|Programming for Performance]] : Felix explains which optimisations might make your code faster.
    2222; [[friendly-chicken|Friendly CHICKEN]] : Little guide that explains some of the pitfalls for CHICKEN starters
    2323; [[sdl2-android|Bootstrapping SDL2 on Android]]
    2424
    25 === Chicken Gazette Omelette Recipes
     25=== CHICKEN Gazette Omelette Recipes
    2626
    2727; [[http://gazette.call-cc.org/issues/18.html#omelette-recipes|Conditions]]: An introduction to the condition system.
     
    3030
    3131; [[http://retroj.net/blog/2012/04/27/chicken-typedef-enum-pointers|Define-Foreign-Enum-Type, Typedef, and Pointers]]
    32 ; [[http://retroj.net/blog/2011/08/27/chicken-nested-structs|Binding Nested Structs in Chicken Scheme]]
    33 ; [[http://pestilenz.org/~ckeen/blog/posts/callbacks.html|Handling callbacks into Chicken from other threads]]
     32; [[http://retroj.net/blog/2011/08/27/chicken-nested-structs|Binding Nested Structs in CHICKEN Scheme]]
     33; [[http://pestilenz.org/~ckeen/blog/posts/callbacks.html|Handling callbacks into CHICKEN from other threads]]
    3434; [[http://wiki.call-cc.org/Wrapping%20simple%20c%20structs|Wrapping simple C structs]]
  • wiki/vaporbook

    r21644 r31126  
    1 == A practical introduction to Chicken Scheme
     1== A practical introduction to CHICKEN Scheme
    22
    33* grab remaining IP ranges from IANA (xml walking demo by Jim's script)
     
    3535=== Introduction
    3636
    37 [ What Scheme is.  What Chicken is.  What eggs are. ]
     37[ What Scheme is.  What CHICKEN is.  What eggs are. ]
    3838
    39 === Chicken history
     39=== CHICKEN history
    4040
    4141=== Getting started
    4242
    43 ==== Installing Chicken
     43==== Installing CHICKEN
    4444
    45 [ How to install Chicken on popular operating systems (e.g., Gnu systems, BDSs, Windows).  Mention required tools, installation steps etc. ]
     45[ How to install CHICKEN on popular operating systems (e.g., Gnu systems, BDSs, Windows).  Mention required tools, installation steps etc. ]
    4646
    4747
    48 ==== Chicken tools
     48==== CHICKEN tools
    4949
    50 [ Introduction about the Chicken tools ]
     50[ Introduction about the CHICKEN tools ]
    5151
    5252===== csi
     
    6262===== chicken-bug
    6363
    64 === "Hello world" programming in Chicken
     64=== "Hello world" programming in CHICKEN
    6565
    6666==== A "Hello, world" program
    6767
    68 [ How to make an executable program in Chicken, both interpreted and compiled. ]
     68[ How to make an executable program in CHICKEN, both interpreted and compiled. ]
    6969
    7070
     
    7474
    7575
    76 === Real-world programming in Chicken
     76=== Real-world programming in CHICKEN
    7777
    7878
    7979==== Systems programming
    8080
    81 [ File manipulation, using Chicken as a replacement for shell scripts, implementing some common shell programs in Chicken etc ]
     81[ File manipulation, using CHICKEN as a replacement for shell scripts, implementing some common shell programs in CHICKEN etc ]
    8282
    8383
     
    8989==== Domain Specific Languages
    9090
    91 ==== Binding Chicken to C code
     91==== Binding CHICKEN to C code
    9292
    93 ==== Embeding Chicken in C applications
     93==== Embeding CHICKEN in C applications
  • wiki/vim

    r30807 r31126  
    88== Coloring
    99
    10 VIM's default syntax file for Scheme already has some Chicken-specific
     10VIM's default syntax file for Scheme already has some CHICKEN-specific
    1111settings, we can enable those by adding the following line into
    1212{{~/.vim/ftplugin/scheme.vim}}.
     
    117117
    118118VIM already indents Scheme file well, except it can't recognise some
    119 Chicken keywords. We just have to add them.
     119CHICKEN keywords. We just have to add them.
    120120
    121121<enscript highlight=vim>
     
    253253A newline is always added at the end of the text being sent, so as to make the shell execute it. If for some reason you don't want to send a complete command, you will have to use Vim's standard yank & pull (copy & paste) from your editing buffer to the shell buffer.
    254254
    255 Care is taken to make the shell react to each individual line as if it was typed interactively. As a result, pasting huge chunks will be a slow operation. You are advised to use a source command in this case: {{source}} (or dot) for bash, {{include}} for Chicken.
     255Care is taken to make the shell react to each individual line as if it was typed interactively. As a result, pasting huge chunks will be a slow operation. You are advised to use a source command in this case: {{source}} (or dot) for bash, {{include}} for CHICKEN.
    256256
    257257'''Important notice:''' because of a limitation in Vim, when a line takes more than a given timeout (1/10 of a second) to execute, VimSh returns the command to the editor without waiting for the shell to complete the operation. You will have to manually go to the VimSh buffer every once in a while and hit {{F5}} to refresh the view. This is probably the most annoying drawback of this whole method, but it's not that bad in actuality.
  • wiki/vim-mode-for-ssp-files

    r16353 r31126  
    77
    88  "
    9   " Chicken Scheme Server Pages syntax
     9  " CHICKEN Scheme Server Pages syntax
    1010  " Language: HTML + Scheme
    1111  " Maintainer: Alex Sandro Queiroz e Silva <asandroq@gmail.com>
     
    2727  unlet! b:current_syntax
    2828 
    29   " With embedded Chicken Scheme
     29  " With embedded CHICKEN Scheme
    3030  let is_chicken = 1
    3131  syn include syntax/scheme.vim
  • wiki/wish-list

    r31017 r31126  
    2727* A sawfish-like window manager ([[https://github.com/mario-goulart/nsfwm|work in slow progress here]])
    2828* Awful-based implementation of the IPython Notebook
    29 * Chicken-based Unix shell
     29* CHICKEN-based Unix shell
    3030* Complete MIME support (parsing+generating)
    3131* Data lens (bidirectional transformations or parsing+unparsing from a single grammar specification)
     
    3434* More spatial tree data structures: BK tree, MVP tree, etc.
    3535* A framework for convenient manipulation of pools of Unix worker processes
    36 * Chicken-based issue tracking and version control :-)
     36* CHICKEN-based issue tracking and version control :-)
    3737* RDF library (possibly just a simple port of the Gauche RDF library)
    3838* A really clever high-level declarative DSL for creating WebKit GUIs
Note: See TracChangeset for help on using the changeset viewer.