Re: Clarifying "implementations MUST NOT allow variable expansion in the script name argument" [WAS Re: I-D Action: draft-ietf-sieve-include-12.txt]

Aaron Stone <[email protected]>
Newsgroups gmane.ietf.mta-filters
Message-ID <CAEdAYKU=VxddgcGo0_aXnKbMoqeK_YE8sY+EYmSdtp0Nf3ZjfQ@mail.gmail.com>
I posted -13. Please check if your suggested changes are as you expected.

Thanks,
Aaron


On Tue, Sep 27, 2011 at 1:50 PM, Robert Burrell Donkin
<[email protected]> wrote:
> On Tue, Sep 27, 2011 at 9:36 PM, Barry Leiba <[email protected]>
> wrote>> When an implementation (of this proposed standard) supporting
> RFC5229
>>> encounters a non-constant string, what behaviour is expected?
>>
>> RFC 5228 section 2.10.6 covers "Errors".
>> When we say that something MUST happen, and it doesn't, that's an error.
>> When we say that something MUST NOT happen, and it does, that's an error.
>> Violations of the base specification and all extensions to it are
>> already covered in RFC 5226 section 2.10.6.
>>
>> I regret that we've generally made it a habit to say that violating
>> this or that or the other thing "MUST generate an error," because
>> saying that is superfluous... but because we've taken to saying it,
>> some people clearly expect it, and view the spec as vague when it's
>> not there.  Nevertheless, the specs are clear, and nothing explicit
>> needs to be there.  You violate syntax, it's an error.  See RFC 5228
>> section 2.10.6.
>
> For the record in RFC 5228:
>
> "2.10.6. Errors
>
>   In any programming language, there are compile-time and run-time
>   errors.
>
>   Compile-time errors are ones in syntax that are detectable if a
>   syntax check is done.
>
>   Run-time errors are not detectable until the script is run.  This
>   includes transient failures like disk full conditions, but also
>   includes issues like invalid combinations of actions.
>
>   When an error occurs in a Sieve script, all processing stops.
>
>   Implementations MAY choose to do a full parse, then evaluate the
>   script, then do all actions.  Implementations might even go so far as
>   to ensure that execution is atomic (either all actions are executed
>   or none are executed).
>
>   Other implementations may choose to parse and run at the same time.
>   Such implementations are simpler, but have issues with partial
>   failure (some actions happen, others don't).
>
>   Implementations MUST perform syntactic, semantic, and run-time checks
>   on code that is actually executed.  Implementations MAY perform those
>   checks or any part of them on code that is not reached during
>   execution.
>
>   When an error happens, implementations MUST notify the user that an
>   error occurred and which actions (if any) were taken, and do an
>   implicit keep."
>
> Your interpretation may (or may not) be the consensus of the working
> group but nowhere is it clearly and unambiguously set out in that
> section.
>
> A high quality specification should clear and simply specify
> appropriate behaviour. This draft falls short.
>
> Robert
> _______________________________________________
> sieve mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/sieve
>
_______________________________________________
sieve mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/sieve
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.