Subject: Re: new sieve draft

From: Gregory Sereda <[email-masked]>
Date: Mon, 17 Aug 1998 16:03:24 -0400

At 02:25 PM 8/14/98 -0700, Randall Gellens wrote:
>
>2.11: I think the short-circuit evaluations do not need to be a MUST.
>This isn't a language with pointers and variables, so there is no
>danger of something like "if ( p != NULL && *p == 'c' )".
>
This depends on how we handle extensions.  The MUST was correct for the
-03 draft when we had the "support" test.  You could write something
like:
	
	if allof ( support "newtest", newtest "arg" )

However, I agree that with draft -04, we should downgrade MUST to SHOULD
until we figure out how extensions will be supported.

The difficult part of extensions will be how a parser will deal with
"new control structures, actions, and tests" that have unknown syntax.
Perhaps the C language concept of "#ifdef" would be useful to bracket
a section of code that contains an extension.

Greg Sereda

---

From: Tony Hansen <[email-masked]>
Date: Mon, 17 Aug 1998 17:47:44 -0400

> until we figure out how extensions will be supported.

Does leaving it at MUST cause problems for implementers? I think it would be
more difficult to make it a MUST later if it doesn't start that way.

> a section of code that contains an extension.

Most languages that allow extensions either do so within the syntax of the
language, or via a metalanguage defined outside of the syntax of the
language.
An example of the former is doing operator overloading in C++ and Ada. No
language changes are needed to add new actions. However, the extensions are
limited.
Examples of the latter are the C preprocessor language and various C/SQL
preprocessors which all generate C as their output. That is, the extension
language gets first crack at the input, before passing it off to the
standard language.

    Tony Hansen
    [email-masked]