Evan Hanson | 19 Jul 06:45 2014

[ANN] R7RS support egg

Hi all,

An egg providing support for most of the R7RS Scheme language has been
released for testing. It can be installed in the usual way, via

It's still early days and doesn't cover the full specification yet, but
it should be good enough for many R7RS programs so any testing you can
provide is appreciated. If you do decide to try it out, please refer to
the egg's wiki page for a list of known issues and caveats:


Bug reports are more than welcome. Also, thanks to Seth Alves for lots
of early testing.


Chicken-users mailing list
Chicken-users <at> nongnu.org
Jason Hemann | 16 Jul 21:06 2014

[Call for Papers] 2014 Scheme and Functional Programming Workshop

[Apologies for duplication from cross-postings.]

DEADLINE: 5 September 2014, (23:59 UTC-12)
WEBSITE: http://homes.soic.indiana.edu/jhemann/scheme-14/
LOCATION: Washington, DC (co-located with Clojure/conj)
DATE: 19 November 2014

The 2014 Scheme and Functional Programming Workshop is calling for

Submissions related to Scheme and functional programming are welcome
and encouraged. Topics of interest include but are not limited to:

- Program-development environments, debugging, testing
- Implementation (interpreters, compilers, tools, benchmarks, etc)
- Syntax, macros, and hygiene
- Distributed computing, concurrency, parallelism
- Interoperability with other languages, FFIs
- Continuations, modules, object systems, types
- Theory, formal semantics, correctness
- History, evolution and standardization of Scheme
- Applications, experience and industrial uses of Scheme
- Education
- Scheme pearls (elegant, instructive uses of Scheme)

We also welcome papers related to dynamic or multiparadigmatic
languages and programming techniques.

Full papers are due 5 September 2014.
Authors will be notified by 10 October 2014.
(Continue reading)

Christopher Collins | 12 Jul 20:09 2014

Determine if program has been compiled

Hello chicken users,

Is there a way to determine, in code, whether a chicken program has been
compiled?  I am thinking of something similar to:

        (chicken-script ... )

...but with an identifer different from "chicken-script".

It is possible that I'm asking the wrong question.  My underlying
problem is: I want my program to behave one way when I load it from
within csi, and another way when I either execute it with "csi -script"
or compile it and execute the binary.  In particular, to make debugging
easier, I want to skip command line parsing when I load the code in csi.
The cond-expand,chicken-script form lets me determine when the program
was run with "csi -script".  However, it does not solve the
compile-and-run scenario; the resulting executable behaves as though it
were loaded into csi.

Thank you,
Chicken-users mailing list
Chicken-users <at> nongnu.org
Michele La Monaca | 12 Jul 11:40 2014

csc and standard input

Hi all,

I think it would be useful if csc were able to work directly from the
standard input (e.g. in case of no source files). For example:

csc -o quick_test
[paste code]


cat f.scm | preprocessor | csc

On most Unixes you can obtain the result with /dev/stdin, but it
doesn't seem a standard mandated requirement:


and of course it isn't applicable to Windows (mingw). So I would
favour an explicit support for stdin in csc.

Michele La Monaca | 11 Jul 11:15 2014

compilation warning


I get this annoying warning when defining a "count" variable at the toplevel:

echo '(define count 1)' | csc -to-stdout /dev/stdin > /dev/null

Warning: at toplevel:
  assignment of value of type `fixnum' to toplevel variable `count'
does not match declared type `(forall (a109) (procedure count
((procedure (a109 #!rest *) *) (list-of a109) #!rest list) fixnum))'


Didier Verna | 10 Jul 17:27 2014

[CfPart] International Lisp Conference 2014, August 15-17, Montreal

	       ILC 2014 - International Lisp Conference
			  "Lisp on the Move"

     August 15-17 2014, Université de Montréal, Montréal, Canada

	      Sponsored by the Association of Lisp Users
		   In cooperation with: ACM SIGPLAN


Latest News:

  * Only 4 days left before the early registration deadline!

  * Registration is now open.
    See http://ilc2014.iro.umontreal.ca/registration.php

  * Invited speakers announced.
    Christian Queinnec, Ambrose Bonnaire-Sergeant, Stefan Monnier,
    Marc Battyani.


Lisp is one of the greatest ideas from computer science and a major
influence for almost all programming languages and for all
sufficiently complex software applications.

The International Lisp Conference is a forum for the discussion of
Lisp and, in particular, the design, implementation and application of
any of the Lisp dialects.  We encourage everyone interested in Lisp to

This year's focus is directed towards integrated solutions, including
mobile computing. The conference also provides slots for lightning talks,
to be registered on-site every day.

The full programme is available here:

Important Dates:

 - July   14, 2014: Early registration deadline
 - August 15, 2014: Conference starts

Organizing Committee:

General Chair:   Marc Feeley (Université de Montréal, Montréal, Canada)
Programme Chair: Didier Verna (EPITA Research lab, Paris, France)
Local chair:     Marc Feeley (Université de Montréal, Montréal, Canada)

Programme Committee:
Charlotte Herzeel, IMEC, ExaScience Life Lab, Belgium
Dave Herman, Mozilla Research, USA
Greg Pfeil, Clozure Associates, USA
Irène Anne Durand, LaBRI University of Bordeaux, France
Jim Newton, Cadence Design Systems, France
Kuroda Hisao, Mathematical Systems Inc., Japan
Matthew Might, University of Utah, USA
Nicolas Neuss, Friedrich Alexander Universitat, Germany
Ralf Möller, TUHH, Germany
Sam Tobin-Hochstadt, Northeastern University, USA
William Byrd, University of Utah, USA

Contact: ilc14-organizing-committee at alu.org

For more information, see http://ilc2014.iro.umontreal.ca/


Resistance is futile. You will be jazzimilated.

Lisp, Jazz, Aïkido: http://www.didierverna.info

Chicken-users mailing list
Chicken-users <at> nongnu.org
Mario Domenech Goulart | 7 Jul 22:58 2014

UTF-8 support in eggs


I want to use some eggs and I need them to handle UTF-8.  By "handle
UTF-8" I mean "treat strings as UTF-8", so that

   (string (string-ref "ç" 0)) => "ç"

for example.

CHICKEN's string-related procedures "accept" UTF-8 strings, but it
doesn't mean they will correctly handle them.

To properly handle UTF-8, we have the utf8 egg.  If I understand
correctly, the only way for eggs to properly support UTF-8 is by using
the utf8 egg (or an equivalent implementation).  If eggs do not
explicitly handle UTF-8 (e.g., by using the utf8 egg), operations like
string-ref and string-set! will screw things up when given UTF-8
strings.  That's the case for some eggs that manipulate strings.

I need UTF-8 support in some eggs that currently don't handle UTF-8.
Assuming we won't have proper UTF-8 support in the core anytime soon,
what's the best way to approach this?  Here are some options I thought
(I must tell in advance none sounds good to me):

1. Have <egg> and <egg>-utf8 variants.  Or, more generally, <egg> and
   <egg>-<encoding> variants.  That would turn our coop into a disgusting
   mess and would be a nightmare to egg authors.

2. Make eggs install <egg> and <egg>-<encoding> modules.  So, you can
   (use <egg>) or (use <egg>-<encoding>) depending on your needs.

3. Manually forking and patching eggs on the user end.

4. ?

Best wishes.


Chicken-users mailing list
Chicken-users <at> nongnu.org
Christian Kellermann | 7 Jul 20:16 2014

ANN: Security bugfix release for lz4 egg available

Dear Chicken users,

if any of you uses the lz4 egg in your application, it's time to
do an upgrade to the 0.2 version I have just released. This includes
the upstream version r119, which fixes the latest security issues
as you are being able to watch the whole internet drama around it.

There is no change in the API and I shall deliver documentation as
well "soon" ;)

You know just in case...

Kind regards,



May you be peaceful, may you live in safety, may you be free from
suffering, and may you live with ease.
Christopher Collins | 7 Jul 02:41 2014

Crash with multithreaded TCP code

Version info:
    (c) 2008-2013, The Chicken Team
    (c) 2000-2007, Felix L. Winkelmann
    Version (stability/4.8.0) (rev 091c3d9)
    linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
    compiled 2013-03-12 on aeryn.xorinia.dim (Darwin)

I'm encountering a crash with some multithreaded tcp code.  I am at a loss as to what I'm doing wrong; I was hoping someone else could spot my mistake.

Below is a simple program which produces the crash.  When I run it, I get the following output:

    *** Error in `/usr/bin/csi': realloc(): invalid next size: 0x0000000001c05210 ***

I run the program as follows:
1. Start two instances of nc; one listening on, the other on  Redirect a ~1KB file to nc, such that nc will send the file to whomever connects to it.
2. Run the scheme script

    nc -l -p 9000 < ~/tmpfile
    nc -l -p 9001 < ~/tmpfile
If I change the definition of num-threads from 2 to 1, the program runs to completion.

Any ideas?


Chicken-users mailing list
Chicken-users <at> nongnu.org
Oleg Kolosov | 3 Jul 20:35 2014

Dbus egg crashes in Chicken 4.9


After upgrading to Chicken 4.9 our application started to crash in dbus
egg. The culprit was found in changed semantics of the assoc and
friends: it now checks that the supplied argument is a list. The
attached patch fixes the problem. I've not checked if there are similar
problems somewhere else.


Regards, Oleg
Attachment (tassq.patch): text/x-patch, 477 bytes
Chicken-users mailing list
Chicken-users <at> nongnu.org
Richard | 2 Jul 12:40 2014

Live programming with Chicken

Hello, I wanted to do some live game programming with Chicken Scheme. I 
would like to adjust my game whilst it is running a game loop. I tried 
srfi-18 threads for this but found it to be too unwieldy. So I wondered 
if there is a way to process the repl inside the loop. An example of 
what I would like:

(let loop ()
	(process-repl) ; <- this
	(unless (do-game-stuff) (loop)))

I could not find if anything like this exists. Does anybody know of a way?