Re: [Chicken-users] FrOSCon 2011 Talks

2011-08-23 Thread Christian Kellermann
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

2011-08-23 Thread Christian Kellermann
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

2011-08-23 Thread Christian Kellermann
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

2011-08-23 Thread Jörg F . Wittenberger

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

2011-08-23 Thread Christian Kellermann
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

2011-08-23 Thread Felix
 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

2011-08-23 Thread Felix
 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