Re: I-D ACTION:draft-daboo-sieve-include-03.txt (fwd)

"Aaron Stone" <aaron@serendipity.cx> Thu, 25 August 2005 02:00 UTC

Received: from above.proper.com (localhost.vpnc.org [127.0.0.1]) by above.proper.com (8.12.11/8.12.9) with ESMTP id j7P205rD079036; Wed, 24 Aug 2005 19:00:05 -0700 (PDT) (envelope-from owner-ietf-mta-filters@mail.imc.org)
Received: (from majordom@localhost) by above.proper.com (8.12.11/8.12.9/Submit) id j7P205UE079035; Wed, 24 Aug 2005 19:00:05 -0700 (PDT)
X-Authentication-Warning: above.proper.com: majordom set sender to owner-ietf-mta-filters@mail.imc.org using -f
Received: from lucite.serendipity.cx (IDENT:vf1azu0bo1pdzhlbtu60@serendipity.palo-alto.ca.us [66.92.2.88] (may be forged)) by above.proper.com (8.12.11/8.12.9) with ESMTP id j7P2046p079029 for <ietf-mta-filters@imc.org>; Wed, 24 Aug 2005 19:00:05 -0700 (PDT) (envelope-from aaron@serendipity.cx)
Received: by lucite.serendipity.cx (Postfix, from userid 1003) id AABC060A4D1B; Wed, 24 Aug 2005 19:00:04 -0700 (PDT)
Received: from serendipity.palo-alto.ca.us (localhost [127.0.0.1]) by lucite.serendipity.cx (Postfix) with SMTP id C8DB060A4D1A; Wed, 24 Aug 2005 18:59:55 -0700 (PDT)
Date: Thu, 25 Aug 2005 01:59:55 -0000
To: Cyrus Daboo <daboo@isamet.com>, Sieve Mailing List <ietf-mta-filters@imc.org>
Subject: Re: I-D ACTION:draft-daboo-sieve-include-03.txt (fwd)
From: Aaron Stone <aaron@serendipity.cx>
X-Mailer: TWIG 2.8.2
Message-ID: <twig.1124935195.17323@serendipity.palo-alto.ca.us>
In-Reply-To: <B26A6689F4F8C38F2CA4AB72@ninevah.local>
X-DSPAM-Result: Innocent
X-DSPAM-Confidence: 0.6000
X-DSPAM-Probability: 0.0023
X-DSPAM-Signature: !DSPAM:430d2623117158513734199!
Sender: owner-ietf-mta-filters@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-mta-filters/mail-archive/>
List-ID: <ietf-mta-filters.imc.org>
List-Unsubscribe: <mailto:ietf-mta-filters-request@imc.org?body=unsubscribe>

On Wed, Aug 24, 2005, Cyrus Daboo <daboo@isamet.com> said:

> One other issue: how should include scripts interact with variables? Some 
> questions to illustrate this problem:
> 
> 1) Should a variable defined in a 'parent' script be available in 'child' 
> (included) scripts?
>
> 2) Should a variable defined in a 'child' script be available in the 
> 'parent' script after the point of inclusion? And if so, should those 
> variables be available to other 'child' scripts included after that point?
> 
> 3) Should variables defined in a 'child' script only be local to that 
> script?
> 
> Comments?

According to the changelog in the ietf-variables-06 draft, a clarification
was made that variables do span includes. I could not find where this was
specified in the document, however. It sounds like the open issue is being
left to the include draft to resolve ;-)

I program most frequently in C and in PHP. I can't think how we might
apply any of C's scoping rules because curly braced scopes do not exist in
Sieve. Everything is global. This rather reminds me of PHP, actually.

Applying a PHP-ish model, each file would have a totally clean namespace.
If you wanted a variable to cross both namespaces, you would declare it
Global. In the ietf-variables-06 draft, section 4.1, gives a list of
modifiers. How about a :global modifier?

set :global "a";
# Now ${a} in this script points to the same memory as ${a} everywhere.

But... both set is defined like this:
   Usage:    set [MODIFIER] [COMPARATOR] <name: string> <value: string>

So how about this:

set :global "a" "${a}"

Or perhaps:

set :import "a" "${a_from_my_parent}"
set :export "a_back_to_parent" "${a}"


Aaron