chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] General questions about Chicken


From: Felix Winkelmann
Subject: Re: [Chicken-users] General questions about Chicken
Date: Tue, 22 Jul 2003 07:08:32 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.0) Gecko/20020530

Jan Rychter wrote:
Hi,

I've just come across Chicken, while looking for a good tool for several
projects. I have looked at the documentation and the sources briefly and
I must say I am quite impressed with what I've seen so far!

I have some general questions:

  -- I saw that SWIG support for Chicken seems to be coming. How
     advanced is that?

Yes, SWIG supports Chicken. As Chris already pointed out, you need
a patch that fixes a small bug. Alternatively you might want to
try the current CVS version of SWIG, where Matthias Koeppe kindly fixed
some other bugs (multiple output-parameters, etc.).


  -- is there an interface to GTK+ and/or Gnome in the works?

Yes (again, see Chris' message), but I think it is abandoned.


  -- I'm worried about application size and total size including
     libraries. Which of the shared libraries (built on Linux) are
     really required? It seems they overlap: what would be the smallest
     subset that would still include the full functionality as described
     in the manual?

libchicken.so:
  - R5RS (as much as Chicken supports)
  - SRFIs: 6, 10, 23, 39
  - all the basic stuff in the manual, which is the library units
    "library", "eval"
  - threading support code
  - profiler support code, syntax-case
    (these are normally not needed at runtime)

libsrfi-chicken.so:
  - SRFIs: 1, 4, 13, 14, 18, 25, 37

libstuffed-chicken.so:
  - everything in the library units "extras", "tcp", "format",
    "lolevel", "tinyclos", "regex", "script-utils" and "posix"
  - SRFIs: 28
  - support code for "match"

All the macro-SRFIs (0, 2, 7, 8, 9, 16, 22, 26, 30) are of course
available when compiling the code, and do not add additional libraries.

You can put together your own library as well: just pick those library
units you want, and link them together. There is a section in the manual
about this (not updated for a while - if you need help, please ask).


  -- how are threads implemented? Are they done within Chicken (what
     some call 'lightweight'), or can they be OS threads on Linux? In
     particular, I'm worried about threads and blocking I/O: if they all
     block, their utility is greatly reduced.


Threads are built on continuations and are pretty lightweight.
They do *not* utilize OS-threads, and Chicken's runtime system is
*not* thread-safe (for OS threads). I/O on sockets and on ports
returned by `process' is fully non-blocking. I/O on standard file
descriptors (stdin/stdout/stderr) and POSIX file-descriptors is
currently blocking, but can be made non-blocking with some low-level
hackery.


cheers,
felix





reply via email to

[Prev in Thread] Current Thread [Next in Thread]