procmail
[Top] [All Lists]

Re: Scoring problem

2003-02-24 18:05:46
On Mon, Feb 24, 2003 at 08:51:29AM -0600, David W. Tamkin wrote:
Dallman told fleet(_at_)teachout(_dot_)org,

| First, it's important to know that scored conditions always descend
| further into the recipe -- with the one exception of when supremum
| or infimum is reached

No, the only exception is that of reaching infimum.  If the score
reaches supremum, procmail still looks for unweighted conditions, all
of which must pass.

No; while I agree with the meat of what you are saying, I think you
didn't follow me when you said "No."  I agree that the unscored, i.e.,
"unweighted," conditions are evaluated even after supremum is reached.
I said as much explicitly, in the lower part of my post that you didn't
quote.  We have no disagreement there.

When I said the evaluation of scored (weighted) conditions stop at
supremum or its negative (infimum), I meant only that no more *weighted*
conditions are considered.  This is so for supremum as well as infimum.
Weighted conditions that might exist later in a recipe, below where we
have arrived at "infinity," are never considered.

Fwiw, I was dividing up my "lesson" into a few logically separate
concepts.  In the lower, unquoted-by-you paragraph alluded to, I added
the information about my "Voom!" actually being qualified: that the
unweighted condtitions now would be considered, including the unweighted
condition Fleet published in his recipe snippet.

[order of quoted text shifted up here]
IIRC the recipe in question had an unweighted condition farther along,
so no, it's more like voom, we're past the rest of the weighted
conditions and at the next unweighted one. [. . .] 


| Voom!  We are instantly[1] at the action line.

See my footnote qualifier?

I'll paste it in here again, even though you didn't quote it:

dr> [1] A further caveat is that only *scored* conditions have yet
dr> been evaluated.  EVEN IF WE ARE AT INFINITY, though, procmail
dr> will still, now, look at any non-scoring conditions in the
dr> recipe and evaluate them.  If any of *those* fail, then the
dr> recipe fails.  You do have a non-scored condition in your
dr> recipe:
dr> 
dr>     * MATCH ?? raq2\.paxp\.com
dr>
dr> That condition, if evaluated as true, will allow the scoring
dr> to work as described above.  If the condition is false, however,
dr> the recipe will fail, i.e., exit without action.



                                            That's unlike reaching
infimum, in which case voom, we're instantly past the action line.

This is the one thing I didn't state.  I had actually forgotten about
the exception, or I would have stated it.  But I was concentrating on
supremum, anyway, because that's what fleet had asked about.  Thanks
for reminding me of this oddity.  I vaguely remember the discussion of
a couple of years ago about it vis-à-vis the infimum.  It's a logical
perplexity, actually, to consider treating it any other way.  After all,
the infimum will evaluate and cause the recipe to fail.  If we *didn't*
exit immediately but instead now evaluated unweighted conditions,
what would we do on their evaluating as true?  Exit, I suppose, as
we wanted to do all along when we'd hit infimum.  If an unweighted
condition evaluates as false, though, what do we do?  Surely we can't
now *decline* to exit the recipe.  It would be foolish logic indeed to
now have a recipe succeed when we'd given it the emphatic signal to fail
(infimum) just because another (ordinarily not ever evaluated) condition
is also wrong.

-- 
dman

_______________________________________________
procmail mailing list
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail


<Prev in Thread] Current Thread [Next in Thread>