Hi Rupert,

[ deleted tech@ because this is off topic there ]

Rupert Gallagher wrote on Thu, May 24, 2018 at 04:38:17PM -0400:
> On Thu, May 24, 2018 at 14:18, Gilles Chehade <gil...@poolp.org> wrote:

>> In effect, instead of having:
>> accept from any for local deliver to mbox
>>
>> You will have:
>> action "my_action" mbox
>> match from any for local action "my_action"

> It may solve some obscure technical problem, but is a horrible
> thing to read and write. How about keeping the best of both worlds?
> Leave the old beautiful PF-like syntax to humans, and translate it
> into the newEgyptian(tm) on the fly?

That was my (and jmc@'s) initial reaction, too, and gilles@ tried
very hard to do just that for a long time.  But it doesn't actually
work.  For example, as long as you do not have an "action name"
attached to a directive, you cannot get the benefit of changing the
directive, restarting smtpd(8), and having it applied to subsequent
delivery attempts - simply because, after editing the rule, it is
no longer clear whether it is the same or a different rule, in
particular when rules get added or deleted or multiple rules change
at the same time.  Of course, it would have been possible to add a
"rulename" sub-directive to the old syntax, but that would have
resulted in a highly redundant syntax because it would suddenly
have left you with several equivalent possibilities of writing the
same ruleset - with either monolithic or modular rules in various
combinations.  Also read gilles@ blog posts, this is by far not the
only tough problem, just the worst one according to my understanding.

Also note that apparent difficulty and actual difficulty of a
syntax is not the same thing.  If a task is actually technically
fairly complex, then an apparently simplistic syntax can actually
hide part of the difficulties and not only make it harder to
implement, but also harder to use - which is what happened here
with the old syntax.  Things can actually get simpler with an
apparently more complex syntax, even if it is less obvious and not
quite easy to document, as in this case - and believe me, i have
spent a bit of time on smtpd.conf(5) during the last few days.
There is still some work to do on the docs, but we are getting
closer.

I also discussed the wording, in particular the keywords "match"
and "action" with gilles@ and eric@ and while i wasn't convinced
from the start, they showed me that other projects came up with
similar terms, independently, and they correspond well to the
terms mail admins use when discussing such matters, independent
of the particular software used.

Also, do not underestamite the benefit of simplifying the code -
fewer bugs implies better usability - and do not underestimate the
cost of maintaining an old syntax poorly suited to a problem - being
forced to constantly fiddle with excruciating code causes developer
frustration and slows down progress.

Yours,
  Ingo

Reply via email to