chicken-users
[Top][All Lists]
Advanced

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

Re: [Chicken-users] Solaris 8 tcp.scm matter, and CCAN


From: Felix Winkelmann
Subject: Re: [Chicken-users] Solaris 8 tcp.scm matter, and CCAN
Date: Wed, 19 Feb 2003 18:23:20 +0100
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.0) Gecko/20020530

William Annis wrote:
Am I missing something?

----------------------------------------------------------------------
wazor /u/annis $ csc -s -O2 tcp.scm
wazor /u/annis $ csi
; This is the CHICKEN interpreter - Version 0, Build 1082 - 
solaris-unix-gnu-sparc
; (c)2000-2002 Felix L. Winkelmann

(load "tcp.so")

; loading tcp.so ...
ld.so.1: csi: fatal: relocation error: file ./tcp.so: symbol 
C_scheduler_toplevel: referenced symbol not found
Killed

The `scheduler' unit is new, you should update to the current CVS
version (tcp uses the new, improved scheduler that can block on I/O),
since 1082 doesn't have this.

I will prepare a new release very soon, in case you don't want
to mess around with CVS (if you are still using 1082, you will have
to download 1088 first
(www.call-with-current-continuation.org/chicken-0.1088.tar.gz), because
of a bootstrapping issue with the improved syntax-case macro system).
Sorry for the confusion.

----------------------------------------------------------------------

After recent pains looking at Perl, I'm ramping up into a "write all
new scripts in scheme" mode.

Are there plans for anything like builtutils (python) or Perl
Makefile.PL style installer scripts?  It might be nice to have
packages be able to install themselves in the right place.


In fact there is some scheme to simplify these things (at least
in the current CVS version). The interpreter
supports a `-setup' option that automatically extracts, builds and
installs extensions. Basically it boils down to a .tgz file containing
the sources and a .setup script that contains a specification of the
extension. For example:

;;; tcp.setup:
(chicken-setup (command-line-arguments)
  ((tcp (options "-O2 -d0"))) )

Packing up an extension works like this:

% ls
tcp.setup
tcp.scm
% csi -setup tcp -wrap
...
% ls
tcp.setup
tcp.scm
tcp.egg

Build/installation:
(it's important here that you have write-permissions to
the Chicken extension library directory. Simply entering
`csi -setup' will tell you if everything is ok)

% ls
tcp.egg
% csi -setup tcp
...
% csi
...
>>> (require 'tcp)
>>>

Just entering `csi -setup' will list all installed extensions.

Extensions can be nested (a la "(require '(http server))") and
can also be syntax-only (uncompiled and used via `require-for-syntax').
You can even specify customized build-rules. But that's about all
there is to it. Everything is based on shared libraries, and so
is (currently) only available for UNIX.

It already works (as far as I have tested it). I've just cleaned up
the output of the setup-code and I plan to put a little selection of
extensions on call/cc.org, Real Soon Now.

All the setup stuff is still under development, and hasn't been as
heavily tested as it should, although I'm using it quite a lot.

As soon as a new release is out, I will try to improve the documentation
about the setup thingy - and then I wanna see those eggs coming! ;-)


cheers,
felix





reply via email to

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