TODO list for Guile R7RS support

2012-02-08 Thread Mark H Weaver
Hello all, I skimmed through the R7RS (draft 5) looking for things we need to do to claim full compliance. Here's the list I came up with. Mark R7RS TODO = * optional ellipsis specifier for syntax-rules et al * syntax-error * define-values * let-values and let*-values (without load

Re: GNU Guile PEG-parser

2012-02-08 Thread Krister Svanlund
Hi, thanks for a quick response! I've actually found no PEG library that has a string syntax for the equivalent of ignore. I'm guessing most people are satisfied with just specifying another nonterminal and matching that one. Probably because it is seen as less ugly than extending on the formal de

Re: [PATCH] Improved source properties and errors; => within case

2012-02-08 Thread Mark H Weaver
Hello all, I have committed an improved version of this patch set to stable-2.0. See below for more. I wrote: > Hmm.  I don't know if this is what you meant, but it occurs to me that > as I've currently implemented them, both (cond (else (define x 5) x)) > and (case 1 (else (define x 5) x)) are a

wip-threads-and-fork

2012-02-08 Thread Andy Wingo
Hi, [Copying Bruno for an iconv question; see the end] I was testing out the threaded web server and it was working well. Then I tried it out with tekuti, a blog engine that uses git as the backend. It uses (ice-9 popen) to talk to the git binaries. It was deadlocking and segfaulting and all ki

Re: rackets syntax parse

2012-02-08 Thread Stefan Israelsson Tampe
Hmm, The problems on master is not due to beeing a list a I thought. Is there anything wrong with (syntax-case x (integrate) [(integrate predicate description) (pk 'matched) #'(make-integrate #'predicate

Re: [PATCH] Improved source properties and errors; => within case

2012-02-08 Thread Noah Lavine
Hello, > Hmm.  I don't know if this is what you meant, but it occurs to me that > as I've currently implemented them, both (cond (else (define x 5) x)) > and (case 1 (else (define x 5) x)) are allowed.  I'll have to make sure > that those raise errors.  I guess that means I'll have to insert a '#f

Re: rackets syntax parse

2012-02-08 Thread Stefan Israelsson Tampe
I tried, got, new errors. it looks like if we have (syntax-case x () ((a b c) ...)) and if x is a list of syntax pattern then we do not match in master but do match in stable-2.0 /stefan ;;; WARNING: compilation of /home/stis/stis/src/guile-syntax-parse/syntax/parse/src/parse.scm failed: ;;; ERR

Re: [PATCH] Improved source properties and errors; => within case

2012-02-08 Thread Mark H Weaver
Hi Andy, thanks for the quick review! Andy Wingo writes: > Patch set looks good to me. Please push. Great, thanks! Of course I'll fix the following issues first. > On Wed 08 Feb 2012 10:09, Mark H Weaver writes: > >> The way that source properties are stored means that Guile can only >> -as

Re: ice-9 async-queue

2012-02-08 Thread Ludovic Courtès
Hi! Andy Wingo skribis: > The web server is single-threaded and uses blocking IO (though it does > poll(2) for keepalive). As such, any slow writer or slow reader can > block the process. Using non-blocking I/O is too difficult, for now. > So, threads. > > I'd like to create a pool of threads

Re: ice-9 thread-pool

2012-02-08 Thread Ludovic Courtès
Hi, Andy Wingo skribis: > On Wed 08 Feb 2012 05:03, Nala Ginrut writes: > >> Well, what if I want to avoid to create new thread repeatedly? >> I mean recycle or pre-allocate a bunch of threads, then reuse them. >> How can I reuse a thread-object in Guile? > > If I understand you correctly, you

Re: [PATCH] Improved source properties and errors; => within case

2012-02-08 Thread Andy Wingo
Heya Mark, Patch set looks good to me. Please push. One comment: On Wed 08 Feb 2012 10:09, Mark H Weaver writes: > The way that source properties are stored means that Guile can only > -associate source properties with parenthesized expressions, and not, for > -example, with individual symbo

Re: ice-9 thread-pool

2012-02-08 Thread Andy Wingo
On Wed 08 Feb 2012 05:03, Nala Ginrut writes: > Well, what if I want to avoid to create new thread repeatedly? > I mean recycle or pre-allocate a bunch of threads, then reuse them. > How can I reuse a thread-object in Guile? If I understand you correctly, you would use a thread pool. You'd buil

[PATCH] Improved source properties and errors; => within case

2012-02-08 Thread Mark H Weaver
Hello all, Here's a preliminary patch set to do the following: * Add support for '=>' within 'case' as mandated by the R7RS draft. * Add support in 'read' to set source properties for vectors, bytevectors, bitvectors, srfi-4 vectors, arrays, and non-empty strings. * Reimplement 'cond' and '

Re: ice-9 async-queue

2012-02-08 Thread Daniel Hartwig
On 8 February 2012 05:46, Andy Wingo wrote: >> I presume the final version will include a type and empty-ness >> predicate also? > > A type predicate, yes.  And some other things; see > wip-threaded-web-server. > > Would you find an emptiness predicate useful?  It sounds like one of > those things