[Chicken-users] Re: repository branching

2008-01-19 Thread felix winkelmann
On Jan 16, 2008 11:59 AM, felix winkelmann <[EMAIL PROTECTED]> wrote:
>
> So it is recommended not to commit anything until the branching
> is complete. It will only be one or two days, depending on whether
> any problems come up.
>

The repository has now been branched successfully (I hope).  Salmonella
reports look good and it can be committed again. Please note that from now
on you have to chose for which release you want eggs to be updated:
any commits to the old egg directories (as well as creating new egg directories)
will be only available for pre 3.0.0 chickens. Chickens version 3.0.0rc1 and
higher donwload eggs from a different location, which is fed from commits
to the release/3 repository branch. If you want to maintain eggs for both
releases, you will have to merge manually.

Many thanks to Mario Domenech Goulart for his tireless assistance and advice.

Chicken 3.0.0rc1 is in trunk now. It can be used (and contains several
bugfixes).
It will be released in the next days.


cheers,
felix


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] Re: repository branching

2008-01-19 Thread Heinrich Taube
Hi -- the latest svn chicken doesnt build on Leopard (im trying to  
build a universal chicken)


zippy:chicken hkt$ uname -a
Darwin zippy.local 9.1.0 Darwin Kernel Version 9.1.0: Wed Oct 31  
17:46:22 PDT 2007; root:xnu-1228.0.2~1/RELEASE_I386 i386


zippy:chicken hkt$ gcc --version
i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5465)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There  
is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR  
PURPOSE.


zippy:chicken hkt$ make PLATFORM=macosx ARCH=universal

[...]

gcc -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk - 
dynamiclib -compatibility_version 1 -current_version 1.0 -install_name  
libchicken.dylib  \
	  -o libchicken.dylib library.o eval.o extras.o lolevel.o utils.o  
tcp.o srfi-1.o srfi-4.o srfi-13.o srfi-14.o srfi-18.o posixunix.o  
regex.o regex-extras.o scheduler.o profiler.o stub.o match.o runtime.o  
pcre/pcre_compile.o pcre/pcre_config.o pcre/pcre_dfa_exec.o pcre/ 
pcre_exec.o pcre/pcre_fullinfo.o pcre/pcre_get.o pcre/pcre_globals.o  
pcre/pcre_info.o pcre/pcre_maketables.o pcre/pcre_newline.o pcre/ 
pcre_ord2utf8.o pcre/pcre_refcount.o pcre/pcre_study.o pcre/ 
pcre_tables.o pcre/pcre_try_flipped.o pcre/pcre_ucp_searchfuncs.o pcre/ 
pcre_valid_utf8.o pcre/pcre_version.o pcre/pcre_xclass.o pcre/ 
pcre_chartables.o apply-hack.universal.o -lm

ld: library not found for -ldylib1.10.5.o
collect2: ld returned 1 exit status
ld: library not found for -ldylib1.10.5.o
collect2: ld returned 1 exit status
lipo: can't open input file: /var/folders/yF/yFkQsvbjHiq9kq0G8XULGU++ 
+TI/-Tmp-//ccV73tgd.out (No such file or directory)

make[1]: *** [libchicken.dylib] Error 1
make: *** [all] Error 2


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] Feature request: expose quasiquote expander

2008-01-19 Thread felix winkelmann
On Jan 18, 2008 10:14 AM, John Cowan <[EMAIL PROTECTED]> wrote:
> Can you expose and document Chicken's quasiquote expansion function?
> I want to be able to use it for S-expressions other than native Scheme
> ones.
>

I recommend to write your own or take the chicken quasiquote stuff
and re-use it directly, it's not very much code. It's also very ugly:


(##sys#register-macro
 'quasiquote
 (let ((vector->list vector->list))
   (lambda (form)

 (define (walk x n) (simplify (walk1 x n)))

 (define (walk1 x n)
   (if (##core#inline "C_blockp" x)
   (cond ((##core#inline "C_vectorp" x)
  `(##sys#list->vector ,(walk (vector->list x) n)) )
 ((not (##core#inline "C_pairp" x)) `(quote ,x))
 (else
  (let ((head (##sys#slot x 0))
(tail (##sys#slot x 1)) )
(case head
  ((unquote)
   (if (and (##core#inline "C_blockp" tail) (##core#inline
"C_pairp" tail))
   (let ((hx (##sys#slot tail 0)))
 (if (eq? n 0)
 hx
 (list '##sys#list '(quote unquote)
   (walk hx (fx- n 1)) ) ) )
   '(quote unquote) ) )
  ((quasiquote)
   (if (and (##core#inline "C_blockp" tail) (##core#inline
"C_pairp" tail))
   `(##sys#list (quote quasiquote)
   ,(walk (##sys#slot tail 0) (fx+ n 1)) )
   (list '##sys#cons (list 'quote 'quasiquote) (walk 
tail n)) ) )
  (else
   (if (and (##core#inline "C_blockp" head) (##core#inline
"C_pairp" head))
   (let ((hx (##sys#slot head 0))
 (tx (##sys#slot head 1)) )
 (if (and (eq? hx 'unquote-splicing)
  (##core#inline "C_blockp" tx)
  (##core#inline "C_pairp" tx) )
 (let ((htx (##sys#slot tx 0)))
   (if (eq? n 0)
   `(##sys#append ,htx
 ,(walk tail n) )
   `(##sys#cons (##sys#list 
'unquote-splicing
,(walk htx (fx- n 1)) )
   ,(walk tail n) ) ) )
 `(##sys#cons ,(walk head n) ,(walk tail n)) ) )
   `(##sys#cons ,(walk head n) ,(walk tail n)) ) ) ) ) 
) )
   `(quote ,x) ) )

 (define (simplify x)
   (cond ((##sys#match-expression x '(##sys#cons a '()) '(a))
  => (lambda (env) (simplify `(##sys#list ,(##sys#slot (assq 'a
env) 1 )
 ((##sys#match-expression x '(##sys#cons a (##sys#list . b)) '(a b))
  => (lambda (env)
   (let ([bxs (assq 'b env)])
 (if (fx< (length bxs) 32)
 (simplify `(##sys#list ,(##sys#slot (assq 'a env) 1)
,@(##sys#slot bxs 1) ) )
 x) ) ) )
 ((##sys#match-expression x '(##sys#append a '()) '(a))
  => (lambda (env) (##sys#slot (assq 'a env) 1)) )
 (else x) ) )

 (walk form 0) ) ) )


I told you it's ugly.

This code was written for slower chickens, so it's pretty gnarly. Most of
the ##sys#'s and ##core#'s and ##sys#slots can be replaced by the usual
operations (slot #0 is car, and slot #1 is cdr).


cheers,
felix


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] illegal atomic form

2008-01-19 Thread felix winkelmann
On Jan 18, 2008 4:09 PM, Jean-Philippe Theberge
<[EMAIL PROTECTED]> wrote:
> Hi,
>
> I got a "Syntax error: illegal atomic form" when compiling
> (but the code run fine with the interpreter).
>
> So my question is:  What is an "illegal atomic form"?
>

It means your source-code contains expressions that are not pairs,
symbols, strings, booleans, numbers, characters or #!eof. Usually
this means a macro expands into something that contains
(or is) #. The error message should actually print
the culprit.


cheers,
felix


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] Feature request: expose quasiquote expander

2008-01-19 Thread Kon Lovett


On Jan 19, 2008, at 8:24 AM, felix winkelmann wrote:


On Jan 18, 2008 10:14 AM, John Cowan <[EMAIL PROTECTED]> wrote:

Can you expose and document Chicken's quasiquote expansion function?
I want to be able to use it for S-expressions other than native  
Scheme

ones.



I recommend to write your own or take the chicken quasiquote stuff
and re-use it directly, it's not very much code. It's also very ugly:


(##sys#register-macro
 'quasiquote
 (let ((vector->list vector->list))
   (lambda (form)

 (define (walk x n) (simplify (walk1 x n)))

 (define (walk1 x n)
   (if (##core#inline "C_blockp" x)
   (cond ((##core#inline "C_vectorp" x)
  `(##sys#list->vector ,(walk (vector->list x) n)) )
 ((not (##core#inline "C_pairp" x)) `(quote ,x))
 (else
  (let ((head (##sys#slot x 0))
(tail (##sys#slot x 1)) )
(case head
  ((unquote)
   (if (and (##core#inline "C_blockp" tail) (##core#inline
"C_pairp" tail))
   (let ((hx (##sys#slot tail 0)))
 (if (eq? n 0)
 hx
 (list '##sys#list '(quote unquote)
   (walk hx (fx- n 1)) ) ) )
   '(quote unquote) ) )
  ((quasiquote)
   (if (and (##core#inline "C_blockp" tail) (##core#inline
"C_pairp" tail))
   `(##sys#list (quote quasiquote)
   ,(walk (##sys#slot tail 0) (fx+ n 1)) )
   (list '##sys#cons (list 'quote 'quasiquote) (walk 
tail n)) ) )
  (else
   (if (and (##core#inline "C_blockp" head) (##core#inline
"C_pairp" head))
   (let ((hx (##sys#slot head 0))
 (tx (##sys#slot head 1)) )
 (if (and (eq? hx 'unquote-splicing)
  (##core#inline "C_blockp" tx)
  (##core#inline "C_pairp" tx) )
 (let ((htx (##sys#slot tx 0)))
   (if (eq? n 0)
   `(##sys#append ,htx
 ,(walk tail n) )
   `(##sys#cons (##sys#list 
'unquote-splicing
,(walk htx (fx- n 1)) )
   ,(walk tail n) ) ) )
 `(##sys#cons ,(walk head n) ,(walk tail n)) ) )
   `(##sys#cons ,(walk head n) ,(walk tail n)) ) ) ) ) 
) )
   `(quote ,x) ) )

 (define (simplify x)
   (cond ((##sys#match-expression x '(##sys#cons a '()) '(a))
  => (lambda (env) (simplify `(##sys#list ,(##sys#slot (assq 'a
env) 1 )
	 ((##sys#match-expression x '(##sys#cons a (##sys#list . b))  
'(a b))

  => (lambda (env)
   (let ([bxs (assq 'b env)])
 (if (fx< (length bxs) 32)
 (simplify `(##sys#list ,(##sys#slot (assq 'a env) 1)
,@(##sys#slot bxs 1) ) )
 x) ) ) )
 ((##sys#match-expression x '(##sys#append a '()) '(a))
  => (lambda (env) (##sys#slot (assq 'a env) 1)) )
 (else x) ) )

 (walk form 0) ) ) )


I told you it's ugly.

This code was written for slower chickens, so it's pretty gnarly.  
Most of
the ##sys#'s and ##core#'s and ##sys#slots can be replaced by the  
usual

operations (slot #0 is car, and slot #1 is cdr).


chicken-sys-macros.scm is also available (but not documented).

(include "chicken-sys-macros")




cheers,
felix


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Best Wishes,
Kon




___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] Re: repository branching

2008-01-19 Thread Zbigniew
Ugh.  Try doing the following before running make:

export MACOSX_DEPLOYMENT_TARGET=10.4

and let me know if it works.  I don't know if you have to `make clean` first.

On Jan 19, 2008 9:55 AM, Heinrich Taube <[EMAIL PROTECTED]> wrote:
> Hi -- the latest svn chicken doesnt build on Leopard (im trying to
> build a universal chicken)

> ld: library not found for -ldylib1.10.5.o


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] Re: [Chicken-hackers] time->string

2008-01-19 Thread Kon Lovett


On Jan 19, 2008, at 10:19 AM, felix winkelmann wrote:


Hi!

Alex Shinn suggested the other day on #chicken to remove the #\newline
character from the string returned by "time->string" (which is, after
all, pretty silly
to have by default, but that's what asctime(3) returns). Every time I
use this function, I feel I have to cringe.

After grepping through the repository, I found the following uses:

chicken: posixunix.scm, posixunix.scm (naturally)

sigma: sigma.scm
testbase-results: testbase-reports.scm


Change is good.



This may break existing applications.

I'm normally rather reluctant to make backwards-incompatible changes
(do I hear someone laugh there in the audience?), but since a new
major release is due, and we have branched the repository for exactly
these kind of changes we might as well do it now.

So, if you feel time->string should keep the trailing #\newline,
pleae speek up.


cheers,
felix


___
Chicken-hackers mailing list
[EMAIL PROTECTED]
http://lists.nongnu.org/mailman/listinfo/chicken-hackers


Best Wishes,
Kon




___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] DESTDIR does not seem to do the right thing

2008-01-19 Thread Adam C. Emerson
Good evening,

As the Debian chicken packages are a bit out of date, I'm installing
Chicken from source and using GNU Stow to keep it separated in a
directory of its own.

As such, I am installing with the DESTDIR=/usr/local/stow/chicken
option.  While this worked perfectly well for a while, I now find
that rather than installing Chicken's bin, include, lib ahd share
directory directly under /usr/local/stow, it's installing everything
under /usr/local/stow/chicken/usr/local .

Thank you very much.


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] Re: DESTDIR does not seem to do the right thing

2008-01-19 Thread Ivan Shmakov
> Adam C Emerson <[EMAIL PROTECTED]> writes:

 > Good evening, As the Debian chicken packages are a bit out of date,
 > I'm installing Chicken from source and using GNU Stow to keep it
 > separated in a directory of its own.

BTW, you can build the Debian package out of the current Chicken
source (with, e. g., dpkg-buildpackage(1) or debuild(1).)

 > As such, I am installing with the DESTDIR=/usr/local/stow/chicken
 > option.  While this worked perfectly well for a while, I now find
 > that rather than installing Chicken's bin, include, lib ahd share
 > directory directly under /usr/local/stow, it's installing everything
 > under /usr/local/stow/chicken/usr/local .

I believe this is intended behaviour, as it's consistent with
that of the other packages.  Try using
PREFIX=/usr/local/stow/chicken instead.



___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] repository branching

2008-01-19 Thread Ivan Raikov

  Am I the only one who finds this scheme (ha!) confusing?  Is it
possible to use some Subversion trick so that a commit to a top-level
egg directory automatically does copy/commit in the latest release
branch also?  This will really help absent-minded people like myself
to make sure that new egg releases are committed to the current
Chicken release branch.

   -Ivan


"felix winkelmann" <[EMAIL PROTECTED]> writes:

> Hello!
>
>
> We plan to create a "release 3" branch for all eggs in the svn
> repository in the next days. This means that (together with
> chicken 3.0.0, which will be released at the same time) there
> will be a branch in the egg repository for each major chicken
> version. All changes committed to the current egg directories
> that take place after the branching will have to be merged
> into the release branch copy.


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users