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