On 16.11.2010 1:23, Wietse Venema wrote:
Patrik Rak:
On 15.11.2010 21:32, Wietse Venema wrote:
- The [n,m] and [n..m] notation is not familiar, but the "," and
".." are clear. It is unlikely to confuse people with false
expectations when they are familiar with other systems (except
mathematicians).
- The {n,m} and {n..m} notation handicaps some BASH users with
false expectations because Postfix behavior is not identical to
BASH behavior. It also conflicts with pattern matching, where
{n,m} is used as a quantifier.
- The (n,m) and (n..m) notation is familiar to Perl users, and
does not handicap them with false expectations. (though it
is non-intuitive from a mathematician's point of view).
I'm inclined to go for "clarity": [n,m] and [n..m]. With this
choice, no-one suffers from false expectations. Anyone can understand
that "n,m" means a sequence of n and m, and anyone can understand
that "n..m" means a range from n to m.
Well, in this regard, both [n,m] and [n..m] are pretty familiar to Ruby
users, but I guess those are smart enough to figure it out. :)
Visually, I like the [] the most of the three and {} the least. So if
the {} wouldn't match the already existing syntax entirely, let's go
with either [] or ().
Thinking of the longer term, does the preference change when we
take IPv6 into account?
Some Postfix contexts require that IPv6 addresses be enclosed in
[] to avoid confusion with "maptype:mapname" syntax (for example,
static:mapname can have arbitrary syntax in the "mapname" part).
For example, mynetworks would use:
168.100.189.0/28
168.100.189.[0..15]
[2001:240:587::]/64
[2001:240:587::[0..ff]:[0..ff]:[0..ff]:[0..ff]]/64
versus:
168.100.189.0/28
168.100.189.(0..15)
[2001:240:587::]/64
[2001:240:587::(0..ff):(0..ff):(0..ff):(0..ff)]/64
If static: is the only real problem with IPv6 versus lookup table
ambiguity, then perhaps there is a way to make the [] optional
around the IPv6 address, everywhere.
Well, personally I'm fine with either way. As long as the chosen
characters can nest, I don't see any problem with the surrounding [].
I would perhaps still prefer [], as () are used as optional in many
contexts, whereas [] are not and they denote a set/list in quite a few
contexts already.
Patrik