Re: [Chicken-users] FrOSCon 2011 Talks
Hi John! * John Gabriele jmg3...@gmail.com [110823 07:27]: On Sun, Aug 21, 2011 at 6:25 AM, Christian Kellermann ck...@pestilenz.org wrote: Hi Chicken-fans, {...} A somewhat badly formatted handout can be found at http://pestilenz.org/~ckeen/chickenista-guide.pdf Newcomers, please have a look and if you happen to have some spare time, get me some feedback on what can be improved. I would like to reuse this on the chicken wiki as an introduction. Hi again, Christian, Regarding the chickenista guide pdf, some minor issues I noticed: Wow, thanks again for this feedback! I will include the corrections before I will put it up in the wiki. This document has started out as an outline for myself hence it is still a bit awkward, incomplete and missing bits that I have mentioned in the (unfortunately) unrecorded talk. I hope it still serves as a good starting point at the moment. The problems with its briefness should be solvable :) A unit is somewhat a relic from older times. You can think of them as eggs that are included in core chicken. Yes, the spelling of chicken is always a bit inconsistent. I put more effort in the slides there. Still this all should be fixed soon. I appreciate your feedback. Have fun with chicken! Christian -- Who can (make) the muddy water (clear)? Let it be still, and it will gradually become clear. Who can secure the condition of rest? Let movement go on, and the condition of rest will gradually arise. -- Lao Tse. ___ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users
[Chicken-users] FrOSCon 2011 pix
Hi all, thanks to Sigma[1], Ivan Raikov's nicely written gallery generator written in CHICKEN Scheme, I can now present to you a few impressions from this years FrOSCon. As you can see I am a lousy photographer and a lazy one. I hope you can still enjoy the pictures :) They are in the usual place: http://www.call-cc.org/pictures/froscon2011/ Kind regards, Christian -- Who can (make) the muddy water (clear)? Let it be still, and it will gradually become clear. Who can secure the condition of rest? Let movement go on, and the condition of rest will gradually arise. -- Lao Tse. ___ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] FrOSCon 2011 pix
Sigma is to be found in chickadee of course: http://api.call-cc.org/doc/sigma -- Who can (make) the muddy water (clear)? Let it be still, and it will gradually become clear. Who can secure the condition of rest? Let movement go on, and the condition of rest will gradually arise. -- Lao Tse. ___ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] 4.7.3 development snapshot
Hi all, I feel some comments might be worth to be written up. On Aug 18 2011, Felix wrote: A new development snapshot is available: http://code.call-cc.org/dev-snapshots/2011/08/17/chicken-4.7.3.tar.gz Note: the banner shows (no branch), which is incorrect (and fixed in trunk), so just ignore this. As it happened to me, compiling will not run straight as soon as you need to tweak something (*and* try to work that out in an insulated area). My solution was eventually to touch identify.sh. So far it would check for the .git directory and don't do anything if not found. I'd propose to something sensible instead like this: if test -d $1/.git; then rev=`GIT_DIR=$1/.git git rev-parse --short HEAD 2/dev/null` branchname=`GIT_DIR=$1/.git git branch --no-color 2 /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'` tag=#define C_BUILD_TAG \compiled ${buildtime} on ${host} (${usys})\ else : ${branchname:=custom} tag=#define C_BUILD_TAG \compiled ${buildtime} on ${host} (${usys})\ fi # the rest what is now inside the if follows untouched. (BTW: That would even remove the compile time dependency on git.) - Core syntax - parameterize now correctly omits invoking the guard procedure when the old value is restored (thanks to Joo ChurlSoo) Special thanks to the way this has been implemented! Some might recall a discussion here long ago, when I've seeking support for an alternative semantics for parameters (as implemented in at least one other Scheme: shared parameters, which behave like normal ones except that setting them like (param-name value) before first touched by parameterize (which always makes them thread-local) would change the default value. This combines in a way the advantages of top level variables (+ setter and getter procedure) and parameters. Since I've been routinely passing a file via -extend to csc, which changed the parameterize syntax to... something almost equivalent. Now I've been able to get rid of that definition. For the curious here an implementation of the alternative parameter semantics: (define make-shared-parameter (let ((count 0) (defaults '#()) (vals (make-parameter '(#f . #( (undefined '(undefined))) (lambda (init #!optional (sane (lambda (x) x))) (let* ((val (sane init)) (i count)) (set! count (fx+ count 1)) (when (fx= i (vector-length defaults)) (set! defaults (vector-resize defaults (fx+ i 1) undefined) ) ) (vector-set! defaults i val) (lambda arg (let* ((e (vals)) (current (cdr e)) (n (vector-length current))) (if (pair? arg) (begin ;; direct call (if (null? (cdr arg)) (if (or (fx= i n) (eq? (vector-ref current i) undefined)) (vector-set! defaults i (sane (car arg))) (vector-set! current i (sane (car arg ;; call from parameterize (or manual fake bypassing API) (let ((newval ;; Restore call as per chicken's internals. Therefore ;; we know/take for granted it's local anyway. (if (eq? (cadr arg) #t) (car arg) ;; set initally (sane (car arg) (cond ((fx= i n) (set! current (vector-resize current (fx+ i 1) undefined) ) (vals (cons (current-thread) current))) ((not (eq? (car e) (current-thread))) (set! current (vector-copy current 0 (vector-length current)) ) (vals (cons (current-thread) current (vector-set! current i newval))) (##core#undefined)) (cond ((fx= i n) (vector-ref defaults i)) (else (let ((val (vector-ref current i))) (if (eq? val undefined) (vector-ref defaults i) val) ) ) ) ) ) ) There is one more strange observation: A small snipped of code, which happend to work for several years: (define (tcp-get-next-client tcpl) (##sys#check-structure tcpl 'tcp-listener) (let ((fd (##sys#slot tcpl 1)) (tma (tcp-accept-timeout))) short after the tma is passed to ##sys#thread-block-for-timeout! if - any only if - tma != #f. In practice it is #f. Compiled with the 4.7.3 the code branch for tma != #f was suddenly executed. Strange however: as soon as I wraped the call (tcp-accept-timeout) into my usual (debug label value) [which sends the label and value to the logfile and returns the value] I saw the correct #f in the logfile and everything
[Chicken-users] CHICKEN Scheme hacking sprint Decembre 2011
Hi, On our last meeting at FrOSCon the idea of having another hacking sprint (aka CHICKEN weekend) has come up. I am willing to organize logistics for a meetup at Nuremberg, Germany. Since some foreign guests might want to do a little sightseeing as well and we are already busy in autumn with T-DOSE in Eindhoven, I propose one of the first three decembre weekends. To make further syncronisation of the date easier I have setup a little planner here: https://terminplaner.dfn.de/foodle.php?id=25k736dw4tecbu47 Who is allowed to join? This is an open invitation for anyone that wants to help the CHICKEN Scheme project improve. What will be provided? I will organize the venue and come up with a plan to get food and entertainment in time without the hassle to reinvent democracy. I might be able to come up with some interesting accomodation venues but that is still in a planning stage. What will we be doing there? Hacking on CHICKEN, socialising and having fun of course. An initial proposal for possible topics has been made by Felix. I have put them up at a wiki page here: https://wiki.call-cc.org/chicken-sprint-nuremberg So if you are interested put your name and a date at the survey above, so I can plan accordingly. More news will follow soon. Thanks for your attention, Christian -- Who can (make) the muddy water (clear)? Let it be still, and it will gradually become clear. Who can secure the condition of rest? Let movement go on, and the condition of rest will gradually arise. -- Lao Tse. ___ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] 4.7.3 development snapshot
There is one more strange observation: A small snipped of code, which happend to work for several years: (define (tcp-get-next-client tcpl) (##sys#check-structure tcpl 'tcp-listener) (let ((fd (##sys#slot tcpl 1)) (tma (tcp-accept-timeout))) short after the tma is passed to ##sys#thread-block-for-timeout! if - any only if - tma != #f. In practice it is #f. Compiled with the 4.7.3 the code branch for tma != #f was suddenly executed. Strange however: as soon as I wraped the call (tcp-accept-timeout) into my usual (debug label value) [which sends the label and value to the logfile and returns the value] I saw the correct #f in the logfile and everything worked again. I think the code that does the test is what's of interest here. Can you show it to us? cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] 4.7.3 development snapshot
if test -d $1/.git; then ... Good suggestion. Thanks! cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users