[Chicken-users] Re: repository branching
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
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
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
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
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
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
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
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
> 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
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