On Sun, Feb 04, 2018 at 05:00:14PM +0100, Nicolas George wrote:
Anyway, if you propose to remove the ability to write something like "2017-12-04 + 73 days", I veto as strongly as I can.
The above is a very restricted subset of the date(1) grammar. Your confusion seems to stem from the fact that you're avoiding the functionality that causes the problems. An obvious simple replacement grammar would be to accept ISO formatted timestamps, operators, and intervals (as you used above). That's actually probably too simple, as it would be nice to be able to specify things like the second tuesday of the month, or convert from a non-ISO timestamp. For that you'd need something more complex, but the right answer probably involves rigid keywords rather than trying to guess the context. Maybe something like '2017-12-04 + interval(73 days)' and 'relative(second tuesday of the month, month(2017-12-04))' and some way to use the + output specifiers as input specifiers. Anyway, if there was a simple solution someone would have implemented it by now. To get back to the original wontfix question, the bottom line is that the current implementation is known to have a lot of warts, you can't depend on it doing what you think it will do, and it's basically impossible to fix most of the problems without potentially breaking something that someone is using. So if someone finds something they think is stupid, the likely outcome is for there to be agreement that it's stupid but not for anything to change. As much as I'd like to see a new option with a better grammar, there's a real chicken-and-egg problem that makes it hard to get people interested in doing so.
Mike Stone