new Library Infrastructure spec.
Graham Klyne
GK at ninebynine.org
Wed Jun 2 18:04:19 EDT 2004
At 16:02 02/06/04 +0100, Keith Wansbrough wrote:
> > I think SimonM's suggestion of an RFC2822-like syntax is reasonable,
> but it
>
>[my suggestion, not SimonM's!]
Oops, sorry!
> > would probably be better to not simply cite RFC2822, since some
>
>I agree, we should give an explicit definition. I don't think it's
>likely to be very complicated.
Indeed.
> > complications might arise. An alternative might be XML, which would be a
> > more "modern" choice.
>
>Ugh! No! Please! No! No reason to do this - remember, this file is
>written by Angela Author, who has just written a Haskell module or two,
>and doesn't have a handly XML structured editor to hand. She just
>wants to fire up her text editor and write three lines.
I wasn't strenuously arguing for that, just noting a possible alternative.
> > Some nits to look out for with RFC2822 format are:
> > + Internationalization and non-ASCII characters
>
>We should specify either Latin-1 or Unicode/UTF-8. The latter, I guess.
Yes, Unicode would seem appropriate, and UTF-8 is a popular encoding.
> > + Case (in)sensitivity of header field names
>
>Insensitive would follow the Principle of Least Surprise.
I think so.
> > + No support for structured information (text string values only).
> > + No facility for grouping information
> > + Comments in some header field values
>
>I was imagining that the text string would almost always be a Haskell
>value, using the Haskell lexer and a Haskell-related parser. This
>would give us comments and structure.
I wasn't aware that there was a comment convention for Haskell *values*,
just Haskell code. I guess that's what you meant.
> > + Extensibility model
>
>Yes, this should be specified. The document already implies "ignore
>headers you don't understand", which is good.
The minimum requirement seems to be a combination of:
(a) ignore what you don't understand, unless
(b) the document says you *must* understand certain headers or fail entirely.
>Try this, using the Haskell Report grammar syntax, and Section 2.2 of
>the Haskell Report for the definitions of <lexeme>, <newline>, and
><whitespace>:
>
><description> ::= { <descline> }
>
><descline> ::= <fieldname> : { <lexeme> | <foldedwhitespace> } <newline>
>
><foldedwhitespace> ::= <whitespace> | <newline> <whitespace>
>
>with the proviso that any <newline> in <foldedwhitespace> has no
>semantic significance.
>
>Alternatively, we could provide Haskell code as specification here.
Sure, that bit's easy enough. But there's devil in them there
details. Not too much, though.
#g
------------
Graham Klyne
For email:
http://www.ninebynine.org/#Contact
More information about the Libraries
mailing list