Re: [PATCH] Implement SRFI 28

2014-12-01 Thread Chris K. Jester-Young
Hi Mark, Thanks for your review! I've implemented all your review comments, and have attached a new patch. On Mon, Dec 01, 2014 at 01:52:08PM -0500, Mark H Weaver wrote: Also, please put two spaces between sentences. I sidestepped this by putting the

[PATCH] Fixing srfi-18.test when building on OS X with clang

2014-11-30 Thread Chris K. Jester-Young
Hi there, I've recently been poking around the srfi-18.test failure that occurs when building on OS X with the Xcode-provided clang. (Tested on OS X 10.10 Yosemite with Xcode 6.1.) It seems other people have experienced the same problem on older versions, so it's not unique to this version:

Mutable top-level bindings (was: vectors are something else)

2013-04-17 Thread Chris K. Jester-Young
On Mon, Apr 15, 2013 at 10:00:55PM -0400, Mark H Weaver wrote: Unfortunately, this is rarely possible in a language like Scheme, where calls to procedures bound by mutable top-level variables are frequent. We cannot fix this without making most commonly-used top-level bindings immutable. Last

Record type printers for SRFI 45 promises and SRFI 41 streams

2013-04-07 Thread Chris K. Jester-Young
Hi all, I've attached record type printers for SRFI 45 promises and SRFI 41 streams. I've tried to make promise-visit more self-documenting with the use of keyword arguments; let me know if you think that's an improvement! Also as discussed with Mark H Weaver, I've currently implemented the

Re: [PATCH] Implement efficient 'scm_unget_bytes' and use it

2013-04-06 Thread Chris K. Jester-Young
On Sat, Apr 06, 2013 at 02:28:14AM -0400, Mark H Weaver wrote: This patch implements a function 'scm_unget_bytes' that enables large buffers to be unread efficiently. It keeps the bytes at the end of the buffer instead of the beginning, but it can cope if some external code manipulates the

Re: regexp-split for Guile

2012-10-21 Thread Chris K. Jester-Young
On Sat, Oct 20, 2012 at 10:16:49AM -0400, Mark H Weaver wrote: Sorry, that last example is wrong of course, but both of these examples raise an interesting question about how #:limit and #:trim should interact. To my mind, the top example above is correct. I think the last result should be

Re: regexp-split for Guile

2012-10-21 Thread Chris K. Jester-Young
On Sun, Oct 21, 2012 at 04:20:09PM +0800, Daniel Hartwig wrote: Yes. Keep it simple. Operations like trim-whitespace and drop-empty-strings-from-the-result (mentioned in the previous discussion) are so easy to do outside of regexp-split, why complicate the semantics? So easy, but so

Re: regexp-split for Guile

2012-10-19 Thread Chris K. Jester-Young
On Fri, Oct 12, 2012 at 05:57:11PM -0400, Mark H Weaver wrote: FWIW, I agree with Daniel. I dislike the complicated semantics of this 'limit' argument, which combines into a single number two different concepts: First, I want to thank both Daniel and Mark for their feedback. I'm sorry I

Re: regexp-split for Guile

2012-09-18 Thread Chris K. Jester-Young
On Tue, Sep 18, 2012 at 09:06:55AM +0200, Sjoerd van Leent Privé wrote: It might just be me, but would it not be more sensible for scheme to just perform the opposite. Return the same amount of fields at most, but starting from the end, thus: (regexp-split : foo:bar:baz:qux: -3) = (foo:bar

Re: regexp-split for Guile

2012-09-18 Thread Chris K. Jester-Young
On Tue, Sep 18, 2012 at 08:59:33PM +0800, nalaginrut wrote: Anyway, if there're so many people like this nice thing, why not we add it (at any option of these three implementations) into ice-9? Oh noes! This is where the bikeshedding begins. ;-) Seriously, I do think having a regexp-split in

Re: regexp-split for Guile

2012-09-18 Thread Chris K. Jester-Young
Here's a revised version, implementing Thien-Thi Nguyen's comments. I added line breaks for the cons and the bottom if (I feel that the top if is still simple enough to keep on the same line). Cheers, Chris. * * * (define (regexp-split-fold match prev) (if

regexp-split for Guile

2012-09-17 Thread Chris K. Jester-Young
: Chris K. Jester-Young cky...@gmail.com Date: Sun, 16 Sep 2012 02:20:56 -0400 Subject: [PATCH 1/2] In fold-matches, set regexp/notbol unless matching string start. * module/ice-9/regex.scm (fold-matches): Set regexp/notbol if the starting position is nonzero. * test-suite/tests/regexp.test (fold

Re: regexp-split for Guile

2012-09-17 Thread Chris K. Jester-Young
On Mon, Sep 17, 2012 at 09:32:14PM +0200, Thien-Thi Nguyen wrote: (define (string-empty? str) (zero? (string-length str))) You can use ‘string-null?’ instead. Ah, nice! Thanks for the pointer. Style nit: i find it easier to read ‘if’ expressions w/ the condition, then and else

[PATCH] In fold-matches, set regexp/notbol unless matching string start.

2012-09-16 Thread Chris K. Jester-Young
* module/ice-9/regex.scm (fold-matches): Set regexp/notbol if the starting position is nonzero. * test-suite/tests/regexp.test (fold-matches): Check that when matching /^foo/ against foofoofoofoo, only one match results. --- module/ice-9/regex.scm |3 ++-

Re: SRFI 41, revisited

2012-09-11 Thread Chris K. Jester-Young
On Tue, Sep 11, 2012 at 01:58:26PM +0800, Daniel Hartwig wrote: This is not compatible with the (ice-9 streams) module is it? At least, it does not appear to be by quickly scanning the source. Nope, the two are not related at all. As you've correctly identified, (ice-9 streams) uses a

Re: things are eq? but not generated at the same time

2012-09-11 Thread Chris K. Jester-Young
On Wed, Sep 05, 2012 at 08:24:58PM +0100, Ian Price wrote: I, of course, meant vector literals, but a quick test shows this is not the case. Literals are always immutable, and trying to modify them is nasal demon stuff. Of course, R6RS says implementations should raise an exception when an

SRFI 41, revisited

2012-09-10 Thread Chris K. Jester-Young
It's been over half a year since I last wrote about SRFI 41; two whole releases have happened since then. I'm pretty sure I don't want to wait for another. ;-) Thanks to Andy and Ludovic for all the feedback last time; I think I've implemented all the feedback, so let's get this thing across the

Re: SRFI 41 for Guile

2012-01-27 Thread Chris K. Jester-Young
Hi Andy, On Sat, Jan 07, 2012 at 01:47:29AM +0100, Andy Wingo wrote: Cky! Clearly I should have finished ploughing through guile-devel before we had the pleaseure of meeting up last week. Because if I had, I would have asked you to deliver two files: srfi-41.scm, and srfi-41.test :-) Wow,

Re: when and unless

2011-12-08 Thread Chris K. Jester-Young
On Thu, Dec 08, 2011 at 09:42:36AM +0100, David Kastrup wrote: So here is another proposal: (values) is not the same as *unspecified*. But if you take the first value of a values list in single-value contexts, there is nothing about that coercion mechanism that would keep you from using

Re: impressions on gc

2011-12-08 Thread Chris K. Jester-Young
On Fri, Dec 02, 2011 at 12:09:12AM +0100, Andy Wingo wrote: One change was to make GC run more often when a process is growing, in terms of resident memory size. This seems to be a good idea in general. The other was to add a function that users can call to note non-gc-managed allocations

Re: when and unless

2011-12-06 Thread Chris K. Jester-Young
On Tue, Dec 06, 2011 at 08:48:01AM +0100, Marijn wrote: Couldn't help but wonder why they don't return the value of the last body form, so I looked around a bit and both CLHS[1] and my racket REPL seem to agree that they should: [...] Is there some other source that suggests that the return

SRFI 41 for Guile

2011-12-06 Thread Chris K. Jester-Young
Hi all, Just writing to say that after many months of being busy with other stuff, I finally got around to finishing my Guile port of SRFI 41: https://github.com/cky/guile2-modules Basically, both the code and the tests are based on the reference implementation, albeit with somewhat significant

Re: when and unless

2011-12-06 Thread Chris K. Jester-Young
On Tue, Dec 06, 2011 at 11:08:08PM +0100, David Kastrup wrote: Have you considered using `(values)' as your way of saying, I'm not returning any values? Testing for that is not all that much fun. It is also rather useless since pretty much all of the call-for-effect functions of Guile

SRFI 9's default printer doesn't handle cyclic data structures

2011-07-25 Thread Chris K. Jester-Young
[Crossposted from bug-guile@ since my message isn't posting there. :-(] Hi there, I've been playing around with Guile's implementation of SRFI 45 (which uses SRFI 9), and have noticed something interesting: if you run the following code in the REPL, printing out the value of the promise will

Patch to add (define-syntax (foo bar) ...) support

2011-07-03 Thread Chris K. Jester-Young
Hi there, When writing syntax-case macros, often one would write: (define-syntax foo (lambda (bar) (syntax-case bar ...))) This seems overly long-winded; it would be preferable to be able to write, instead: (define-syntax (foo bar) (syntax-case bar ...)) Attached

Re: Patch to add (define-syntax (foo bar) ...) support

2011-07-03 Thread Chris K. Jester-Young
On Sun, Jul 03, 2011 at 04:44:46PM -0400, Noah Lavine wrote: I agree that this is much shorter, but I'm worried about defining the short syntax in a way that forces you to choose between syntax-rules and syntax-case. Except, it doesn't. My version doesn't insert either syntax-case or