plans for 0.0.6 release

Rusty Russell rusty at rustcorp.com.au
Mon Jun 6 08:10:34 BST 2005


On Sat, 2005-06-04 at 11:54 +1000, Martin Pool wrote: 
> On  3 Jun 2005, Rusty Russell <rusty at rustcorp.com.au> wrote:
> > On Wed, 2005-06-01 at 10:39 -0500, Nicholas Nethercote wrote:
> > > - I think the "to" syntax is horrid -- ambiguous and thus error-prone both
> > >    to implement and use, and inconsistent with every other command line
> > >    option in the universe.  "4 to 5" might look nice and Python-ish, but
> > >    Python-style syntax doesn't mix well with shell syntax.
> > > 
> > > - I think using '-' as a range operator is bad.  '-' is already used
> > >    to introduce options (ie. -r), and also in some revision names, so why
> > >    overload it with another meaning?  It just makes command lines harder to
> > >    parse (for humans and machines).  I mentally parse "-r4-5" as "-r4 -5".
> 
> A worse case is '-r-4' vs '-r -4'.

Yes, but:
1) -r-4 is silly.  You always know the lower bound, it's 1.
2) -r -4 is silly because if we go the namespace route, it's -r last:4

> > We went down the ":" path in netfilter for port ranges, and I've
> > regretted it ever since.
> 
> It seems it's particularly confusing there because colon is already
> mentally associated with HOST:PORT syntax.  Do you think that's the main effect?

Not really, it's used as "iptables -A FORWARD -p tcp --ports 1:4".
Colon was used because ports referred to by names can have "-" in them,
but in the vast majority of cases it just irritates newbies.

> > It is the most common mistake I make in
> > writing rules.
> 
> What happens?  You write 20-21 when you should say 20:21?

Yes.

> > There is no parsing ambiguity when combined with the "<namespace>:"
> > syntax, which I think everyone quite likes.
> > 
> > > - I quite like ':' as a range operator, it works fine in Subversion.  But
> > >    if ':' has another use in revision names, then avoiding overloading
> > >    it is a good idea.
> > 
> > : has merit because it is used in CVS and svn.  CVS also uses :: to
> > indicate a collapsed range in some cases.  Two -r options are used in
> > RCS.  
> 
> Two -r options would nicely avoid the debate, and they've been
> proposed in some patches.  I think the main drawback is they can't
> distinguish "20-" and "-20" and "20".

"-r 20 -r now", "-r last:20" and "-r 20"?

> On the whole I think '-r A-B' is right, perhaps with ':' supported
> where it doesn't clash with the prefix form for dates and so on.

But how do you parse this?
	-r tag:my-tag-name-tag:20

Banning "-" in tag names is probably not a good idea (banning anything
in tag names is probably not a good idea, because of
internationalization).

I think the parser should be flexible in what it accepts, but there must
be a canonical form for eg. scripts to use which guaranteed protection
against people who create a tag called "tag:tag:-20.. to 7"!

I can have a go at writing something if you want, but it'll be much
slower than someone else doing it.

Rusty.
-- 
A bad analogy is like a leaky screwdriver -- Richard Braakman





More information about the bazaar mailing list