<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.lisp.scheme.chicken">
    <title>gmane.lisp.scheme.chicken</title>
    <link>http://blog.gmane.org/gmane.lisp.scheme.chicken</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17739"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17728"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17725"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17723"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17717"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17710"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17708"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17705"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17704"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17683"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17680"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17673"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17669"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17668"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17663"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17662"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17661"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17660"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17659"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.scheme.chicken/17658"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17739">
    <title>reader macros</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17739</link>
    <description>&lt;pre&gt;Hi,

I have not found information about this topic, so I have to ask here: does
chicken provide reader macros?

Răzvan
_______________________________________________
Chicken-users mailing list
Chicken-users&amp;lt; at &amp;gt;nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users
&lt;/pre&gt;</description>
    <dc:creator>Răzvan Rotaru</dc:creator>
    <dc:date>2013-05-13T20:09:23</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17728">
    <title>need help with hygienic macros</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17728</link>
    <description>&lt;pre&gt;Hi all,

not exactly chicken related; but I hope someone here can help me.

I'm trying to replace an unhygienic macro with a syntax-rules
based version.  Just I can't.

What I need is a sub-macro.
 http://community.schemewiki.org/?scheme-faq-macros#H-1tseqi3

I want to have a define-alike to create procedures with
a certain signature.  Within the body of the created procedure
I need some syntax to access the parameters of the created
procedure.  The purpose however is to *not* repeat the
parameter list in the definitions (since that's what might
change, hence the definer macro to hide the precise signature).

Here my current state of affairs:

;; The definer:

(define-syntax deftig
  (syntax-rules ()
    ((_ name . body)  ;; Within this "body" I want some rewrites.
     (define name
       (lambda (x y)
 (let-syntax
     ((pinapple
       (syntax-rules ()
 ((_ ((p v) ...) . body)
  (let-syntax ((helper (syntax-rules ()
 ((_ p ...) (begin . body))))) 
    (helper v ...))))))

           ;; trying to bind "foo" and "gosh" within "body" here

   (pinapple ((foo (x y)) (gosh y)) . body)))))

;; This alternate version did not grok it either:

    ((_ "pinapple" ((p v) ...) . body)
     (let-syntax ((helper (syntax-rules ()
    ((_ p ...) (begin . body))))) 
       (helper v ...)))
    #;((_ name body ...)
     (define name
       (lambda (x y)
 (deftig "pinapple" ((foo (x y)) (gosh y)) body ...))))
    ))

;; An example of intended usage:

(define (foog x) (* x 2))

;; "foo" and "gosh" ought to be replaced, but aren't.

(deftig bar (foo) (foog 2) (foog 2.5) (let ((n (gosh))) (foog n)) 'phar)


----

The pinapple is actually stolen from let-alias
http://community.schemewiki.org/?scheme-faq-macros#H-uren6
which was the closes thing I could find so far.

But it seems only to get close to the job when used in the
let-syntax way as above.  At least I've been able to
get partial results.  But no flowers.

Any help very much appreciated.

/Jörg




.......
&lt;/pre&gt;</description>
    <dc:creator>Jörg F. Wittenberger</dc:creator>
    <dc:date>2013-05-12T12:41:05</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17725">
    <title>Passing floats to and from foreign functions</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17725</link>
    <description>&lt;pre&gt;Hello everybody,
I'm having trouble passing floating point numbers to and from foreign
functions.

This is what I'm doing:

&lt;/pre&gt;</description>
    <dc:creator>pluijzer .</dc:creator>
    <dc:date>2013-05-12T00:14:34</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17723">
    <title>Thanks Chicken Scheme</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17723</link>
    <description>&lt;pre&gt;Many thanks for making it possible to write software in scheme.
I just spent a few months hacking a web application handled by the Chicken Scheme runtime.Just posting a link to the project page in the hope of giving something back.
http://mathieu-desrochers.github.io/Scheme-Experimentations/
In the unlikely event you find anything useful there, please feel free to use it :)
Mathieu       _______________________________________________
Chicken-users mailing list
Chicken-users&amp;lt; at &amp;gt;nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users
&lt;/pre&gt;</description>
    <dc:creator>Mathieu Desrochers</dc:creator>
    <dc:date>2013-05-11T21:03:24</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17717">
    <title>A couple of questions</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17717</link>
    <description>&lt;pre&gt;Hi,

I’ve been working with Scheme for quite some time now, with various
implementations, and I wanted to thank you for working on this wonderful
one that is Chicken.

I’m still pretty new to functional programming and I recently discovered
the functional reactive programming style. I was wondering if anyone
here had any experience with it in Scheme. I would like to implement a
DSL on top of OpenGL for FRP graphic programming.  If you have any
documentation or existing implementation please tell me.

I also wanted to know if it was possible to statically link a chicken
program with all its libraries in order to have a standalone executable
not depending on anything.

Thanks again,
Kooda.

&lt;/pre&gt;</description>
    <dc:creator>Kooda</dc:creator>
    <dc:date>2013-05-11T15:48:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17710">
    <title>link error with PROGRAM_PREFIX and compiling eggs</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17710</link>
    <description>&lt;pre&gt;I have built chicken using the PROGRAM_PREFIX option:

  $ gmake PROGRAM_PREFIX=foo- ...

When I try to install an egg, using foo-chicken-install, I get an error
from gcc that it cannot locate -lchicken:

  installing iset:1.8 ...
  changing current directory to /tmp/temp835e.3607/iset
    /home/a/wa/foo/bin/foo-csi -bnq -setup-mode -e "(require-library setup-api)" -e "(import setup-api)" -e "(setup-error-handling)" -e "(extension-name-and-version '(\"iset\" \"1.8\"))" /tmp/temp835e.3607/iset/iset.setup
    /home/a/wa/foo/bin/foo-csc -feature compiling-extension -setup-mode    -s -O3 -inline -d1 iset.scm -j iset
  /usr/bin/ld: cannot find -lchicken
  collect2: ld returned 1 exit status

  Error: shell command terminated with non-zero exit status 256: gcc iset.o -o iset.so - shared -L/usr/X11R6/lib -L/usr/local/lib -L"/home/a/wa/foo/lib" -Wl,-R"/home/a/wa/foo/lib" -lchicken -lm -lpthread

This would be expected, as it should be trying to find -lfoo-chicken.
Looking at the code, it appears there is some confusion between -host
and PROGRAM_PREFIX: 

  $ foo-csc -libs
  -lchicken -lm -lpthread

  $ foo-csc -host -libs
  -lfoo-chicken -lm -lpthread

The chicken-install code is apparently expecting the first command here,
'foo-csc -libs', to return '-lfoo-chicken'.  I'm not sure what the
command-line should be when -host is specified.

Will you help me sort this out?

-Alan
&lt;/pre&gt;</description>
    <dc:creator>Alan Post</dc:creator>
    <dc:date>2013-05-09T01:04:39</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17708">
    <title>[SECURITY] Incomplete fix for CVE-2012-6122(select() fs_set buffer overrun)</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17708</link>
    <description>&lt;pre&gt;Hello CHICKEN users,

Recently, we fixed a problem related to the use of POSIX select(),
which was assigned CVE-2012-6122.
See http://lists.nongnu.org/archive/html/chicken-users/2012-06/msg00031.html
for more details on the original bug.

We fixed the scheduler, but there remained other places in CHICKEN where
select() was still in use:

- The R5RS char-ready? procedure when invoked on stream ports or custom
   input ports created by the process procedure from unit posix (in *NIX)
- The tcp-accept-ready? procedure from unit tcp
- The file-select procedure from unit posix

These have now also been rewritten in terms of POSIX poll(), where
available.  This is on all supported platforms except Windows.
As before, there is no danger of buffer overrun on Windows, but
there is a situation where threads may never wake up.  There is no
known workaround.  A solution may be provided soon.

Currently all released versions of CHICKEN have this bug.  It has
been fixed in git master, commit 556108092774086b6c86c2e27daf3f740ffec091.
CHICKEN 4.9.0 will also include the bugfix.

The known workaround is still to limit the maximum number of open
descriptors using the Unix "ulimit -n" command, so that it matches the
value of FD_SETSIZE.  This value can be checked by compiling the
following one-line program with csc and running the resulting binary:

(print (foreign-value "FD_SETSIZE" int))

Kind regards,
The CHICKEN Team
&lt;/pre&gt;</description>
    <dc:creator>Peter Bex</dc:creator>
    <dc:date>2013-05-08T18:18:21</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17705">
    <title>Issues with socket egg</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17705</link>
    <description>&lt;pre&gt;Hi,

while using this egg I experienced a few issues:

1)  (inet-address) always fails on Solaris.

I consistently get "Error: (inet-address) invalid internet address".
This seems to be related to the definition of AI_NUMERICSERV.

&amp;lt;netdb.h&amp;gt; has these definitions on Solaris:

#define AI_PASSIVE      0x0008  /* intended for bind() + listen() */
#define AI_NUMERICHOST  0x0020  /* use numeric node address string */
#define AI_NUMERICSERV  0x0040  /* servname is assumed numeric */

Manually setting AI_NUMERICSERV to 0 solves the problem but I am not
sure why the problem occurs with Solaris' defines.


2) The egg doesn’t install on Cygwin due to the unbound identifier
'SO_EXCLUSIVEADDRUSE' (mingw only?). Dropping the related option
(so/exclusiveaddruse) solves the problem.


3) I need an option/function to explicitly set the socket as
non-blocking (i.e. without invoking socket-connect). As a temporary
workaround I exported the function _make_socket_nonblocking. Can this
workaround (or anything equivalent) made be available in the egg?

Thanks in advance.

Ciao,
Michele
&lt;/pre&gt;</description>
    <dc:creator>Michele La Monaca</dc:creator>
    <dc:date>2013-05-08T13:48:53</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17704">
    <title>z3 lib update</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17704</link>
    <description>&lt;pre&gt;Hello!


I have updated the "z3" egg to update it to the newest upstream
version.  This should also fix the problem on FreeBSD recently
reported (caused by a missing macro definition on this platform). The
new version should take care of this automatically, regardless of
platform, so if someone could give it a try on one or more of the
usual BSD systems, I'd be very grateful. A simple

  chicken-install -test z3

should be sufficient. The version is 1.44, and the egg should be
available shortly.


thanks.


cheers,
felix
&lt;/pre&gt;</description>
    <dc:creator>Felix</dc:creator>
    <dc:date>2013-05-08T09:39:48</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17683">
    <title>Best way to share memory between C and Chicken</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17683</link>
    <description>&lt;pre&gt;Hi all,

Sorry if this question is obvious, but I couldn't find what I were looking
for in the documentation so maybe you guys can help me.

I am developing a prototype of a server that would serve 3D seismic images
across the network. This  task requires to process big files (~4 GB) with
existing C code that is desirable to maintain. I plan to write the server
itself in Chicken scheme but I would need to maintain the existing code in
C that opens and process those files.

Giving the size of the file, I want to share the memory space between C and
Chicken and avoid copying values between areas. Is that even possible?
Anyone has an idea on how can I address this?

Thanks in advance!

Pedro

&lt;/pre&gt;</description>
    <dc:creator>Pedro Melendez</dc:creator>
    <dc:date>2013-05-03T18:04:03</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17680">
    <title>Behind the Scenes with CHICKEN Scheme (Part 1)</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17680</link>
    <description>&lt;pre&gt;Hi,

An interview with Felix Winkelmann, the author of CHICKEN:
http://spin.atomicobject.com/2013/05/02/chicken-scheme-part-1/

Best wishes.
Mario
&lt;/pre&gt;</description>
    <dc:creator>Mario Domenech Goulart</dc:creator>
    <dc:date>2013-05-02T13:57:58</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17673">
    <title>z3 egg failing to install</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17673</link>
    <description>&lt;pre&gt;I'm trying to install the z3 egg and it is failing. Does it actually
depend on the z3lib? Does it have some other system dependency? (I
haven't been able to get the z3lib installed either but mostly because
I can't find any docs for it).


chicken-install z3
...
installing z3:1.42 ...
changing current directory to /tmp/temp2f49.8022/z3
  /usr/local/bin/csi -bnq -setup-mode -e "(require-library setup-api)"
-e "(import setup-api)" -e "(setup-error-handl\
ing)" -e "(extension-name-and-version '(\"z3\" \"1.42\"))"
/tmp/temp2f49.8022/z3/z3.setup
  /usr/local/bin/csc -feature compiling-extension -setup-mode
z3.scm -O2 -d1 -s -j z3
In file included from z3.c:18:
z3flib.c: In function 'z3f_encode_init':
z3flib.c:38: error: 'ENODATA' undeclared (first use in this function)
z3flib.c:38: error: (Each undeclared identifier is reported only once
z3flib.c:38: error: for each function it appears in.)
z3flib.c: In function 'z3f_decode_init':
z3flib.c:199: error: 'ENODATA' undeclared (first use in this function)
z3flib.c: In function 'z3f_decode_read':
z3flib.c:240: error: 'ENODATA' undeclared (first use in this function)

Error: shell command terminated with non-zero exit status 256: cc z3.c
-o z3.o -c  -fno-strict-aliasing -fwrapv -DHAV\
E_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -O2 -pipe -fno-strict-aliasing
-fPIC -DPIC -DC_SHARED -I"/usr/local/include/chi\
cken"

Error: shell command failed with nonzero exit status 256:

  /usr/local/bin/csc -feature compiling-extension -setup-mode
z3.scm -O2 -d1 -s -j z3


Error: shell command terminated with nonzero exit code
17920



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



uname -a
FreeBSD foo.com 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec  4
09:23:10 UTC 2012
root&amp;lt; at &amp;gt;farrell.cse.buffalo.edu:/
usr/obj/usr/src/sys/GENERIC  amd64

Thanks,
Thomas Hintz
&lt;/pre&gt;</description>
    <dc:creator>Thomas Hintz</dc:creator>
    <dc:date>2013-04-30T19:03:36</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17669">
    <title>gnuplot subprocess: python-&gt;chicken</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17669</link>
    <description>&lt;pre&gt;Hello,

I'm currently porting some web apps from Python to Chicken, and really enjoying
the combination of minimalism and expressiveness of Chicken/Scheme.

I'm having trouble interacting with a gnuplot subprocess.  Here is an example
Python script that will generate an ugly graph &amp;lt; at &amp;gt; /tmp/graph-py.png::

    from subprocess import Popen, PIPE

    cmd = """
    set terminal pngcairo size 460,344 font 'Verdana,10'
    set output '/tmp/graph-py.png'
    plot '-' using 1:2
    2012-09-23  0
    2012-09-30  24
    2012-10-07  63
    """

    def go():
        gnuplot = Popen("gnuplot", stdin=PIPE, stdout=PIPE, stderr=PIPE)
        out, err = gnuplot.communicate(cmd + "\nexit")
        if err:
            # This happens: "Warning: empty x range..." but graph is created.
            raise IOError(err)


Here is my attempt to do the same in Chicken::

    (use srfi-1 srfi-13 posix extras)

    (define cmd "
    set terminal pngcairo size 460,344 font 'Verdana,10'
    set output '/tmp/graph-scm.png'
    plot '-' using 1:2
    2012-09-23  0
    2012-09-30  24
    2012-10-07  63
    ")

    (define go
      (lambda ()
        (define-values (i o pid stderr) (process* "gnuplot"))
        (write-line cmd o)
        (write-line "exit" o)

        ; Hangs trying to read stderr.
        (let ((err (read-string #f stderr)))
          (if (&amp;gt; (string-length err) 0)
            (error err)
            (begin
              (close-input-port i)
              (close-output-port o)
              )))))


The Chicken example hangs when I try to read stderr.  If I don't attempt to
read the 'o' or 'stderr' ports in the Chicken example, a call to (go) returns,
and the graph is created, but the gnuplot process becomes a zombie.

How can I read the output/err ports without hanging, even if there is no data
on the ports?  Also, the docs say that after closing the input/output of a
subprocess, an implicit waitpid happens, so why is gnuplot becoming a zombie?


Bryan
&lt;/pre&gt;</description>
    <dc:creator>Bryan Vicknair</dc:creator>
    <dc:date>2013-04-30T17:41:14</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17668">
    <title>Scheme Internships at Knodium</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17668</link>
    <description>&lt;pre&gt;Hi,

I'm Andy and I work at Knodium (https://www.knodium.com/ ) where we're
developing a collaboration webapp for students.

Since we've written it entirely in Chicken Scheme I thought it might be
of interest to people here that we're currently recruiting for
Internship positions this Summer in the UK.

So... please allow me to take the liberty of sending a link to our advert:

http://workinstartups.com/job-board/job/4688/software-engineering-intern-at-knodium/



Please feel free to contact me offlist or via the advert if you have any
questions, comments or are interested in the role.





Regards,
&amp;lt; at &amp;gt;ndy

&lt;/pre&gt;</description>
    <dc:creator>Andy Bennett</dc:creator>
    <dc:date>2013-04-30T16:41:51</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17663">
    <title>Missing "file-type" in posix import</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17663</link>
    <description>&lt;pre&gt;When I was trying to use (file-type ...) in a compiled module, it was a
big surprise when csc instantly ground to a halt, issuing an error
saying "file-type" was an unknown identifier.  (And no, I didn't forgot to
put (import posix) in the module.)

It was especially puzzling since (file-type ) worked just fine in csi.

Checking "posix.import.scm" sure enough showed "file-type" was not among
the exported identifiers.  Adding it to the list of exports, recompiling and
reinstalling Chicken was the solution.

Here's the whole change:

--- posix.import.orig.scm2013-04-23 21:58:54.000000000 -0700
    posix.import.scm2013-04-22 22:52:52.000000000 -0700
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -120,6  120,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
    file-test-lock
    file-truncate
    file-type
    file-unlock
    file-write

Actually, I was grateful this was pretty simple to rectify, as it allowed 
me to quickly return to my usual pursuit of obscure bugs of my own making.

Thanks,
Jules Altfas.
_______________________________________________
Chicken-users mailing list
Chicken-users&amp;lt; at &amp;gt;nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users
&lt;/pre&gt;</description>
    <dc:creator>J Altfas</dc:creator>
    <dc:date>2013-04-24T06:52:10</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17662">
    <title>[ANN] usb egg v0.1.0 is released</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17662</link>
    <description>&lt;pre&gt;Hi everyone!

I laid my first egg, and I'm emailing here to inform you of its
existence.  This egg wraps libusb and gives you a scheme API.  Here is
the repository:

  https://github.com/tenderlove/chicken-usb

My scheme is not fully hatched, and this code is not 100% complete (as
noted in the README).

Thanks everyone!

&amp;lt;3&amp;lt;3&amp;lt;3&amp;lt;3

&lt;/pre&gt;</description>
    <dc:creator>Aaron Patterson</dc:creator>
    <dc:date>2013-04-22T17:18:40</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17661">
    <title>[PATCH] openssl: don't throw startup-on-closedexception in close</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17661</link>
    <description>&lt;pre&gt;So far, a user of the openssl egg would have had to distinguish whether some
OpenSSL I/O error exception originated in the egg's internal startup function
that does the SSL handshake on the initial read or write or in the actual SSL
I/O code, as in the former case, the ports get closed implicitly, so that the
invocation of startup during close would throw an exception indicating
incorrect API use, while the latter leaves FD and SSL state allocated, so that
one has to invoke close in order to avoid FD and memory leaks.

To fix this, we don't throw an exception anymore when close is invoked on a
port that was closed implicitly, so that closing the ports is always the
correct thing to do.
---
 openssl.scm |   57 ++++++++++++++++++++++++++++++---------------------------
 1 files changed, 30 insertions(+), 27 deletions(-)

diff --git a/openssl.scm b/openssl.scm
index 31c76fd..e8bcc56 100644
--- a/openssl.scm
+++ b/openssl.scm
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -357,31 +357,34 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; EOF
   ;; so it isn't garbage collected before the ports are all gone
   (let ((in-open? #f) (out-open? #f)
         (mutex (make-mutex 'ssl-mutex)))
-    (define (startup)
+    (define (startup #!optional (called-from-close #f))
       (dynamic-wind
           (lambda ()
             (mutex-lock! mutex))
           (lambda ()
-   (when (not ssl)
-     (error "SSL socket already closed"))
-           (unless (or in-open? out-open?)
-             (let ((success? #f))
-               (dynamic-wind
-                   void
-                   (lambda ()
-                     (ssl-set-fd! ssl fd)
-                     (ssl-call/timeout 'ssl-do-handshake
-                                       (lambda () (ssl-do-handshake ssl))
-                                       fd (ssl-handshake-timeout)
-                                       "SSL handshake operation timed out")
-                     (set! in-open? #t)
-                     (set! out-open? #t)
-                     (set! success? #t))
-                   (lambda ()
-                     (unless success?
-                       (ssl-free ssl)
-       (set! ssl #f)
-                       (net-close-socket fd)))))))
+   (let ((skip-startup (not ssl)))
+             (if skip-startup
+               (when (not called-from-close)
+                 (error "SSL socket already closed"))
+               (unless (or in-open? out-open?)
+                 (let ((success? #f))
+                   (dynamic-wind
+                     void
+                     (lambda ()
+                       (ssl-set-fd! ssl fd)
+                       (ssl-call/timeout 'ssl-do-handshake
+                                         (lambda () (ssl-do-handshake ssl))
+                                         fd (ssl-handshake-timeout)
+                                         "SSL handshake operation timed out")
+                       (set! in-open? #t)
+                       (set! out-open? #t)
+                       (set! success? #t))
+                     (lambda ()
+                       (unless success?
+                         (ssl-free ssl)
+                         (set! ssl #f)
+                         (net-close-socket fd)))))))
+             (not skip-startup)))
           (lambda ()
             (mutex-unlock! mutex))))
     (define (shutdown)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -426,9 +429,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; EOF
                          #t)))))
       ;; close
       (lambda ()
-                (startup)
-(set! in-open? #f)
-(shutdown))
+                (when (startup #t)
+                  (set! in-open? #f)
+                  (shutdown)))
       ;; peek
       (lambda ()
                 (startup)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -453,9 +456,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; EOF
                       (loop (fx+ offset ret) (fx- size ret)))))))
     ;; close
     (lambda ()
-              (startup)
-      (set! out-open? #f)
-      (shutdown)))))
+              (when (startup #t)
+                (set! out-open? #f)
+                (shutdown))))))
       (##sys#setslot in 3 "(ssl)")
       (##sys#setslot out 3 "(ssl)")
       ;; first "reserved" slot
&lt;/pre&gt;</description>
    <dc:creator>Florian Zumbiehl</dc:creator>
    <dc:date>2013-04-22T13:40:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17660">
    <title>[SECURITY] Incomplete escaping in qs procedure maylead to arbitrary shell code execution</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17660</link>
    <description>&lt;pre&gt;Hello Chicken users,

It was discovered that the "qs" procedure from the "utils" module
performs incomplete escaping.  On Windows (mingw32), this procedure
quoted the string but did not escape embedded quote characters.
On Unix, this procedure did not escape the pipe character.  On both
systems, the procedure simply copied NULL characters in the input string
to the output string.  This last detail is less important, because all
procedures which pass the string to the shell contain a check for NUL
bytes.

Furthermore, this procedure relied on a blacklist of "special" shell
characters, which is considered bad practice as it is too easy to forget
a character and some shells have different rules as to which characters
are special.

What all this means in practice is that an attacker-supplied filename
or any other program argument can lead to arbitrary shell code execution
through OS command injection, which is exactly what qs intends to prevent.

This bug is present in all versions of CHICKEN prior to revision
58684f69572453acc6fed7326fa9df39be98760e, in which it was fixed by
switching to a whitelist approach on Unix and escaping quotes on Windows.
CHICKEN 4.9.0 will include this fix.

The best workaround for this problem for older Chicken versions is to
avoid calling out to the shell.  Instead, you can rely on the
PROCESS-EXECUTE procedure from the posix module, or use the safe
multi-argument version of the PROCESS[*] procedures, also from the posix
module.  If you require the shell's easy pipeline and redirection
capabilities, you can use the scsh-process egg which uses PROCESS-EXECUTE
under the hood.

You can also update to master 58684f69572453acc6fed7326fa9df39be98760e or
apply the patch at http://lists.nongnu.org/archive/html/chicken-hackers/2013-04/msg00060.html

Many thanks to Florian Zumbiehl for pointing out the problem and
providing the initial patch.

Kind regards,
The CHICKEN Team
&lt;/pre&gt;</description>
    <dc:creator>Peter Bex</dc:creator>
    <dc:date>2013-04-21T13:44:51</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17659">
    <title>Chicken Spring Thing 2013 DATE FIXED NOW</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17659</link>
    <description>&lt;pre&gt;Hey there!

By an act of deliberate changing the rules as you go, Moritz and I
decided to fix the date for the CHICKEN Spring Thing 2013 in Cologne
NOW.

We have some visitors that need to come by plane and I think it
will be easier for them to get there tickets earlier than 7 days
before the event.

So there will be 10 people at least showing up for.....badum badum

Friday, May 24th to Sunday, May 26th

Exact venue coordinates and a "schedule" (hahaha!) will follow on
this channel.

If you have additional questions and suggestions please feel free
to voice them at the wiki page at:

http://wiki.call-cc.org/event/chicken-spring-cologne-2013

Thanks for watching!

Take care and good bye!

Christian

&lt;/pre&gt;</description>
    <dc:creator>Christian Kellermann</dc:creator>
    <dc:date>2013-04-19T08:28:08</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17658">
    <title>ratification vote for R7RS-small</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17658</link>
    <description>&lt;pre&gt;The Scheme Language Steering Committee (SLSC) has announced a
vote on whether the ninth draft R7RS produced by Working Group 1
should be endorsed by the SLSC.

Votes are due by the end of Sunday, May 13, 2013.  For full
instructions on how to vote, with explanation of what the vote
is about, please see

http://lists.scheme-reports.org/pipermail/scheme-reports/2013-April/003299.html

&lt;/pre&gt;</description>
    <dc:creator>John Cowan</dc:creator>
    <dc:date>2013-04-18T22:34:42</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.scheme.chicken/17654">
    <title>egg documentation with subpages</title>
    <link>http://comments.gmane.org/gmane.lisp.scheme.chicken/17654</link>
    <description>&lt;pre&gt;Hi,

It is now possible to break up egg documentation into several pages.  This was previously possible on the wiki, but is now supported by chicken-doc as well.

Procedure: instead of creating a file, create a directory and populate it with subpage files.  To document the main page, call the page "index".

Example:
  allegro/color
  allegro/display
  allegro/index

chicken-doc-admin supports directories and will automatically recurse.  It also works with the host-installed eggs option.

Notes:

- You should probably create at least a stub "index" file because otherwise the main page will 404.
- It's a good idea to place links to the subpages on the main page.  chickadee will automatically pick up subpages and place them in the contents bar, but the wiki will not.
- All subpages are considered "eggs", which means:
   - It may confuse users who expect each doc page to correspond to exactly one egg, unit or module -- there is no "allegro color" egg for example.
   - Subpages will show up in a chicken-doc identifier or egg search, which may be confusing or annoying.

There may eventually need to be a way to tag a page as something other than an egg for chicken-doc, but that doesn't exist yet.

Jim
&lt;/pre&gt;</description>
    <dc:creator>Jim Ursetto</dc:creator>
    <dc:date>2013-04-15T22:41:21</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.lisp.scheme.chicken">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.lisp.scheme.chicken</link>
  </textinput>
</rdf:RDF>
