On 2/6/13, David A. Wheeler <dwhee...@dwheeler.com> wrote:
> Before we declare a "0.7", I think we need to greatly expand the test suite
> to cover new functionality... and make sure the Scheme implementation
> passes, too :-).
>
> The new Scheme implementation handles a lot - including real programs - but
> there are some edge cases and "new" functionality it doesn't handle:
> 1. It doesn't handle #u8(....), such as #u8(5 6 7).

This is new in R6RS (where it's #vu8) and R7RS.

> 2. It doesn't handle the new #!... variations.  Basically, #!DATUM like
> #!sweet should be consumed (and ignored if it has no special meaning),
> "#!"+space is a SRFI-22 one-line ignored value, "#!"+ period or slash goes
> to matching "!#" (guile-like).

I think R6RS decided that #!foo specifically requires that sequence of
characters, to be terminated by any delmiiter (space, tab, open paren,
close paren, semicolon).  #! is hard to handle given how much it's
gotten overloaded.

> 3. It has trouble with "." as the last *content* of a list. Which means that
> '. works, but (quote .) doesn't.  That's weird, I think '. and (quote .)
> should mean exactly the same thing.  Anybody who uses "." as a variable name
> should be taken out and shot, but we should *try* to be general, and we need
> '. at least to self-implement.  Actually, we inherit this limitation from
> the SRFI-105 implementation; I think we should fix this, and post a fix in
> the SRFI-105 mailing list.  Such a change would accept: (.) and (quote .)
> for example.  But maybe I'm wrong; certainly (.) is not a common construct.

. is not a valid identifier according to R5RS and R6RS. In both, an
identifier is either a peculiar identifier, or an initial followed by
zero or more subsequents.  A peculiar identifier is + - or ... in
R5RS; R6RS includes -> followed by zero or more subsequents.  The
defined initials in R5RS is <letter> or a special initial; the special
initials do not include ".".  In R6RS initial can also be a Unicode
>127 character with particular listed categories, or a \x hex escape.
None of those includes ".", so it's not a valid identifier, and is not
even valid as the first character of an identifier.

. being accepted as a symbol is a Guile-ism, and even in Guile is not
consistently supported.  In Guile '(.) yields a parsing error.

>
>
> I think I'll emphasize editing "tests/sweet-testsuite", which has "correct"
> followed by "test" value.  Different implementations will print lists
> differently, so that makes it easier to use the same testsuite for different
> implementations.
>
> --- David A. Wheeler
>
> ------------------------------------------------------------------------------
> Free Next-Gen Firewall Hardware Offer
> Buy your Sophos next-gen firewall before the end March 2013
> and get the hardware for free! Learn more.
> http://p.sf.net/sfu/sophos-d2d-feb
> _______________________________________________
> Readable-discuss mailing list
> Readable-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/readable-discuss
>

------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss

Reply via email to