Sven Hartrumpf | 23 Oct 19:40 2014

How to avoid srfi-13 bindings when using the slime egg?

Hi all.

If I install the slime egg and start chicken-slime from inside Emacs,
the REPL has bindings for SRFI-13 names, e.g.

; SLIME 2014-10-10
CSI> (string-count "abc" #\a)

Can this be avoided (because this conflicts with
definitions in other projects)?

Thomas Hintz | 22 Oct 20:24 2014

Introducing websockets

The "websockets" egg is now available for public consumption. See the
documentation on the wiki for more details:

Note that it hasn't been used in the "real world" much yet so let me
know if you run into any issues.

Thanks to Seth Alves for the initial version and for everyone else on
IRC that helped solve issues and provided feedback.

All the best,
Thomas Hintz
Kristian Lein-Mathisen | 22 Oct 11:04 2014

new egg: gochan

Hi folks!

I have lately been working on an egg for thread-safe message passing, and this is my first attempt:

I've decided to go with the relatively well-established channel-API of GoLang since I don't really know what I'm doing. This implementation is based on Alex Shinn's channel.scm from Chibi Scheme.

Please add it to the coop, and please try it out! 

Chicken-users mailing list
Chicken-users <at>
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? ;-)



When C++ is your hammer, every problem looks like your thumb.
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>
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.

 <at> ndy


andyjpb <at>
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 . 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>
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>