Subject: errors language for your approval

From: Tim Showalter <[email-masked]>
Date: 26 Mar 1999 16:47:04 -0500

I am adding the following text on errors to the draft.  Feedback is
appreciated.

--==--
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
disk full conditions, but also includes issues like invalid combinations of
actions, for instance, reject + fileinto.

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
actions are atomic, and either all actions happen or none of them do, like a
database might.

Other implementatons 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).

Perhaps implementations might even go so far as to ensure that scripts can
never execute an invalid set of actions (e.g., reject + fileinto), although
this could involve solving the Halting Problem.

This specification allows any of these approaches.

When an error happens, implementations MUST notify the user that an error
occurred, which actions (if any) were taken, and do an implicit keep.

--==--

-- 
Tim Showalter <[email-masked]>