Michele La Monaca | 17 Oct 19:44 2014

Unbound => in cond statements



(cond (1 => odd?))

Error: unbound variable: =>


(cond (+ => procedure?))

The only difference I can spot is that 1 is self-evaluating while + is
not. Anyhow, it doesn't look good to me.

Thomas Chust | 16 Oct 00:39 2014

OpenSSL egg option defaults poll


Mario Domenech Goulart raised the issue that the OpenSSL egg by default 
creates connections that can use any of the SSLv2, SSLv3 or TLSv1.x 
protocols, depending on the capabilities of the remote peer.

This default is not particularly secure, especially when considering the 
recently published exploits for the obsolete SSLv3 protocol.

Changing the default behaviour of the OpenSSL egg to TLS protocol only 
would prevent any real or potential issues with the legacy protocols. 
However, many SSL implementations apparently use SSLv2 handshakes with 
extensions for the sake of compatibility and with the changed default the 
OpenSSL egg would probably reject many valid connection attempts as a 
server and not be able to connect to some old servers as a client.

Other standard settings for the OpenSSL egg also err on the side of 
compatibility rather than security. For example, certificate verification 
is not enabled by default and the set of acceptable stream ciphers cannot 
even be modified, which is probably a bad idea for any serious security 
critical application.

So I would like to poll for opinions from people on this list concerning 
this situation. Do you think the default options in the OpenSSL egg should 
be "hardened"? Do you think more options should be introduced? Is 
compatibility with the rest of the internet a concern at all? ;-)


(Continue reading)

Richard | 14 Oct 19:18 2014

looking for name of an egg

Hello Everybody,

I remember reading about an egg that, among other things, had a
function that included/loaded a source file depending whether the
code was compiled/interpreted.
I cannot find the name of this egg, does somebody here know it?

thanks in advance!,
Andy Bennett | 14 Oct 00:42 2014

[ANN] spiffy-cgi-handlers Egg Version 0.4 Released


I've released version 0.3 of the spiffy-cgi-handlers egg.

spiffy-cgi-handlers adds support to spiffy for CGI and derivatives
(currently only FastCGI).

0.3 reworks the FCGI header parsing to fix spurious line break issues.

For more information see the Egg's wiki page:


 <at> ndy


andyjpb <at> ashurst.eu.org
Andy Bennett | 13 Oct 20:10 2014

posix-extras: allow to set process title displayed by ps(1)


Alex Charlton & I worked through how to set the process name as
displayed by ps(1).

This might be a useful addition to the posix-extras egg.

(define (set-proc-title str)
  (receive (c v) (argc+argv)
	   ((foreign-lambda* void ((c-string str) (c-pointer argv))
			     "char *name = ((char**) argv)[0];
			     str v)))

The actual implementation above is the work of Alex.

The implementation only allows to set the title to a string less than or
equal to the thing it's currently set to. This is fine for a single call
at fork() time: it's not possible to get a longer title using this
method anyway.

If a process wants to use the entirety of the buffer for any call, even
if the current value is shorter than the buffer then some extra magic
will be needed, such as stashing the original value in a static variable
or padding the passed in value with spaces.

(Continue reading)

Andy Bennett | 12 Oct 23:13 2014

[ANN] New multipart-form-data Egg

Hi everyone,

I've written an egg that can decode multipart/form-data HTTP requests.

I've been using if for about a week on https://www.knodium.com/ . The
functionality is not complete yet but I thought I'd put it out
there in case it's useful to anyone else.

Comments on the API are welcome!


 <at> ndy


andyjpb <at> ashurst.eu.org
Caolan McMahon | 10 Oct 18:42 2014

New egg: Raspberry Pi GPIO library

I've put together a wrapper for wiringPi, which means you can control
the raspberry pi gpio pins from chicken:

If someone could add it to the index that would be great :)

I also have a module based on this for easy use of buttons attached to
gpio (with debounce etc). I'll package that up and send it round soon.

Kristian Lein-Mathisen | 10 Oct 01:29 2014

new egg: bindings for nanomsg

Hi folks!

I've just played around with nanomsg which I really like. It fits really nice into Chicken's inner workings, with it's new file-descriptors which you can poll().

So I've started creating some bindings, and though it might be enough for an egg. Please look over it and add it to the coop!

Chicken-users mailing list
Chicken-users <at> nongnu.org
David Van Horn | 10 Oct 00:26 2014

ICFP 2015 Call for Workshop and Co-located Event Proposals

                            ICFP 2015
 20th ACM SIGPLAN International Conference on Functional Programming
                   August 30 - September 5, 2015
                        Vancouver, Canada

The 120th ACM SIGPLAN International Conference on Functional
Programming will be held in Vancouver, British Columbia, Canada on
August 30-September 5, 2015.  ICFP provides a forum for researchers
and developers to hear about the latest work on the design,
implementations, principles, and uses of functional programming.

Proposals are invited for workshops (and other co-located events, such
as tutorials) to be affiliated with ICFP 2015 and sponsored by
SIGPLAN. These events should be less formal and more focused than ICFP
itself, include sessions that enable interaction among the attendees,
and foster the exchange of new ideas. The preference is for one-day
events, but other schedules can also be considered.

The workshops are scheduled to occur on August 30 (the day
before ICFP) and September 3-5 (the three days after ICFP).


Submission details
 Deadline for submission:     November 16, 2014
 Notification of acceptance:  December 15, 2014

Prospective organizers of workshops or other co-located events are
invited to submit a completed workshop proposal form in plain text
format to the ICFP 2015 workshop co-chairs (Tom Schrijvers and Nicolas
Wu), via email to icfp2015-workshops <at> cs.kuleuven.be by November 16,
2014. (For proposals of co-located events other than workshops, please
fill in the workshop proposal form and just leave blank any sections
that do not apply.) Please note that this is a firm deadline.

Organizers will be notified if their event proposal is accepted by
December 15, 2014, and if successful, depending on the event, they
will be asked to produce a final report after the event has taken
place that is suitable for publication in SIGPLAN Notices.

The proposal form is available at:


Further information about SIGPLAN sponsorship is available at:



Selection committee

The proposals will be evaluated by a committee comprising the
following members of the ICFP 2015 organizing committee, together with
the members of the SIGPLAN executive committee.

 Workshop Co-Chair: Tom Schrijvers                         (KU Leuven)
 Workshop Co-Chair: Nicolas Wu                  (University of Oxford)
 General Chair:     Kathleen Fisher                 (Tufts University)
 Program Chair:     John Reppy                 (University of Chicago)


Further information

Any queries should be addressed to the workshop co-chairs (Tom
Schrijvers and Nicolas Wu), via email to
icfp2015-workshops <at> cs.kuleuven.be.
Sascha Ziemann | 9 Oct 20:39 2014

Use Chicken 3 egg in 4


is it possible to use a Chicken 3 egg like the the SMTP client in 
Chicken 4? I can not find the SMTP client in the version 4 eggs.

Richard | 5 Oct 22:12 2014


Hello all,

I have created a egg called 'chunk-vector' which is a dyn-vector-like
(http://wiki.call-cc.org/eggref/4/dyn-vector) library capable of
storing other srfi-4 vectors inside a dense array.

The stored vectors can be returned, changed and removed in O(1) time.

This is, among other things, very handy when working with modern

If it is not considered too specialised to be an offical egg; could
somebody upload it for me? (else, don't worry about it)

release info