Oleg Kolosov | 22 Nov 17:01 2014

Visual Studio is here


Considering that Visual Studio 2013 is now essentially free
(http://www.visualstudio.com/products/visual-studio-community-vs) I’m taking the
opportunity to announce again that I’m working on a version of CHICKEN Scheme which can be compiled with
it (with the help of CMake).

There are few other changes not supported by the CHICKEN developers. Roughly, the current agenda is:

 - make the code more approachable to an occasional contributor
 - replace the scheduler and posix support code with libuv facilities
 - better cross-compilation support
 - source level debugging
 - more usable profiler

You are welcome to follow/fork me on github:



Regards, Oleg
Art System
chicken-users | 21 Nov 16:48 2014

ffi howto


I need some help getting started with ffi. 

I am attempting to bind libuv to scheme code.

My chicken scheme code at http://pastebin.com/bwja0yet fails with the
following error.

The following code fails with the following:

Error: bad argument count - received 152135942 but expected 2: 0

	Call history:

	uv.scm:33: uv-default-loop        
	uv.scm:33: uv-idle-init   
	uv.scm:34: uv-idle-start          
	uv.scm:36: uv-default-loop        
	uv.scm:36: uv-run               <--

I am attempting to port the following C code.


- Omar
Sanel Zukan | 18 Nov 05:19 2014

Lisp Devroom at FOSDEM 2015: Call for Participation

Dear Lispers,

I'm pleased to announce, for the first time, Lisp Devroom  <at>  FOSDEM,
the biggest FLOSS event in Europe, that will be held in Brussels on
January 31st to February 2nd, 2015.

This is a call to propose your talks for FOSDEM.

The topic of the devroom includes all Lisp-inspired dialects,
like Common Lisp, Scheme, Clojure, Emacs Lisp, newLISP, Racket,
GCC-Melt, LFE, Shen & more. Every talk is welcome: from real-world
examples, research projects, unusual ideas to small pet hacks.

FOSDEM is a hacker conference and we would be happy to see more
practical proposals, crazy ideas and open source projects
demonstrations than dry scientific papers (we will leave them for ILC
and ELS :-P).

Important dates

* Submission deadlines:     2014-12-14
* Acceptance notifications: 2014-12-28
* Lisp Devroom conference:  2015-01-31 (Saturday)

Submitting proposals

Please use https://penta.fosdem.org/submission/FOSDEM15 to submit your
proposals; you will have to create Pentabarf account unless you
(Continue reading)

Alaric Snell-Pym | 15 Nov 19:27 2014

Correct type declarations for (call-with-... <thunk>) procedures

Hello folks!

I've been trying to get into the habit of putting type declarations on
everything I write in Chicken, to get the benefits of the lovely
scrutinizer: type checks, specialisations, etc!

I've also found that it's nice as documentation - I went around
switching various bits of Ugarit to use typed records, and kept finding
that some fields of structures were actually (or boolean ...), because
I'd forgotten some things were optional. But now that's clear in the
record definitions.

I can certainly recommend using typed records and (: ...)-ing all your
global definitions! It's being a worthwhile experience.

Anyway, I have a question, as I can't figure out how to type one of my

It's a (call-with-... <thunk>) wrapper. Indeed, it's this:

(define (call-with-context-support global-rules thunk)
   (let ((top-level-context (parse-top-level-context global-rules)))
      (parameterize ((*context* top-level-context)) (thunk))))

So I typed it:

(: call-with-context-support (list (-> *) -> *))

However, I ran into trouble when I used it like so:

(Continue reading)

David Van Horn | 7 Nov 17:41 2014

ICFP 2015: Call for Papers


 20th ACM SIGPLAN International Conference on Functional Programming

 ICFP 2015

 Vancouver, Canada, August 31 - September 2, 2015



Important Dates

   Submissions due:  Friday, February 27 2015, 23:59 UTC-11
   Author response:  Tuesday, April 21, 2015
                     through Thursday, 23 April, 2015
      Notification:  Friday, May 1, 2015
    Final copy due:  Friday, June 12, 2015


ICFP 2015 seeks original papers on the art and science of functional
programming.  Submissions are invited on all topics from principles to
practice, from foundations to features, and from abstraction to
application.  The scope includes all languages that encourage
functional programming, including both purely applicative and
imperative languages, as well as languages with objects, concurrency,
(Continue reading)

Sungjin Chun | 7 Nov 02:17 2014

[Q] How can I convert this lisp(SBCL) macro to chicken scheme?


I've rather impressed on Clojure's easy to use hash and vector/array, I've written
and used these macros in my lisp code. Now I want to convert them for chicken.

  (lambda (stream char)
    (declare (ignore char))
    (let ((*readtable* (copy-readtable *readtable* nil)))
      (set-macro-character #\} (get-macro-character #\)))
      (set-macro-character #\, (lambda (stream char)
                                 (declare (ignore stream char))
      (set-macro-character #\~ (get-macro-character #\,))
      (let ((contents (read-delimited-list #\} stream t))
            (ht (gensym)))
        `(let ((,ht (make-hash-table :test #'equal :synchronized t)))
           , <at> (loop for (k v) on contents by #'cddr
                collect `(setf (gethash ,k ,ht) ,v))

  (lambda (stream char)
    (declare (ignore char))
    (let ((*readtable* (copy-readtable *readtable* nil)))
      (set-macro-character #\] (get-macro-character #\)))
      (set-macro-character #\, (lambda (stream char)
                                 (declare (ignore stream char))
      (set-macro-character #\~ (get-macro-character #\,))
      (let ((contents (read-delimited-list #\] stream t)))
        `(vector , <at> contents)))))

How can I convert this macros to chicken, where can I find introductory docs on macro
of chicken scheme?

Thank you in advance.

Chicken-users mailing list
Chicken-users <at> nongnu.org
Kristian Lein-Mathisen | 2 Nov 14:43 2014

crypt egg: won't compile for Android

Hi all,

Android, I believe, like OpenBSD, has no libcrypt.so but still has support for the crypt function. The crypt.setyp has already support for removing the -lcrypt flag during compilation and injecting "android" into that seems to do the trick:

diff --git a/crypt.setup b/crypt.setup
index eeaf1d5..9dac09a 100644
--- a/crypt.setup
+++ b/crypt.setup
<at> <at> -28,2 +28,3 <at> <at> EOF
                 (openbsd #f)
+                (android #f)
                 (else #t)))))

Could someone fix this upstream if this patch is acceptable?
Thank you!
Chicken-users mailing list
Chicken-users <at> nongnu.org
Mathieu | 1 Nov 20:38 2014

Linking object files without additional source

Hi chicken schemers,

I want to use csc to link a bunch of .o together:

csc -c \
▸ sources/foreign-interfaces/fastcgi.o \
▸ sources/foreign-interfaces/sqlite.o \
▸ -o foreign-interfaces.o

But this command does not produce any output
unless a specify at least one .scm file.

How could I get foreign-interfaces.o as a result
of only linking fastcgi.o and sqlite.o?

Thanks for your help,
Chicken-users mailing list
Chicken-users <at> nongnu.org
Arthur Maciel | 1 Nov 19:51 2014

Re: Wiki design

Dear friends, after some rework of the wiki design I ended up with some modifications to allow better readability. I hope you all like them.

Mario has already applied them. Bug reports and suggestions to fix them are welcomed!

Best wishes,

2014-09-20 10:57 GMT-03:00 Arthur Maciel <arthurmaciel <at> gmail.com>:
Hello, folks!

Any news about the wiki design?

Best wishes,

2014-08-30 9:35 GMT-03:00 Yaroslav Tsarko <eriktsarko <at> googlemail.com>:


On 30.08.2014 4:08, Arthur Maciel wrote:
Matt and Yaroslav, thanks for your opinions! (more below)Yaroslav, I also don't like the current background, but I still prefer it comparing to the colors you've suggested. Probably we will also need some (color) theory to inspire any change. Otherwise we will fall into a complex territory called taste :)

What do you think?

As we say in Russia: "There is no friend in questions of color and taste" ("Every man to his taste" is the closest English idiom) :) I agree with you that current bg color is somewhat too heavy to look at so we could choose something different. I suggest you play with it and show some different colors you would like - may be we shall choose one of them.

As to the font size - I suppose it is okay now. I suspect that shall we let it unspecified and browser will substitute one that is more close to user or system settings.

Yaroslav Tsarko

Chicken-users mailing list
Chicken-users <at> nongnu.org
Christian Kellermann | 30 Oct 01:12 2014


Hi there,

I have registered an assembly for CHICKEN enthusiasts and other
lispy people for the upcomming 31C3:

If you can make it to Hamburg, I am looking forward to hacking with you there!




May you be peaceful, may you live in safety, may you be free from
suffering, and may you live with ease.
Michele La Monaca | 28 Oct 21:16 2014

Redefining macros and special forms


shadowing a macro doesn't seem to work properly in all the cases:

(define-syntax my-begin (syntax-rules () ((_ x ...) (begin x ...))))
(let ((my-begin -)) (my-begin 0 1)) ; => -1 (ok)
(define my-begin -)
(apply my-begin '(0 1))             ; => -1 (ok)
(my-begin 0 1)                      ; =>  1 (oops)

Thus `my-begin' acts as either a procedure or a macro depending on the context.

Redefining `begin' (or even `##core#begin') has the same
unsatisfactory behavior:

(let ((begin -)) (begin 0 1)) ; => -1
(define begin -)
(apply begin '(0 1))          ; => -1
(begin 0 1)                   ; =>  1

Is this the expected  behavior?