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