All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Goldish <mgoldish@redhat.com>
To: Ryan Harper <ryanh@us.ibm.com>
Cc: autotest@test.kernel.org, Uri Lublin <ulublin@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	kvm@vger.kernel.org
Subject: Re: [KVM-AUTOTEST PATCH] KVM test: refactor kvm_config.py
Date: Thu, 10 Feb 2011 11:14:05 +0200	[thread overview]
Message-ID: <4D53AC5D.4070507@redhat.com> (raw)
In-Reply-To: <20110209233101.GG26301@us.ibm.com>

On 02/10/2011 01:31 AM, Ryan Harper wrote:
> * Eduardo Habkost <ehabkost@redhat.com> [2011-02-09 10:22]:
>> On Wed, Feb 09, 2011 at 10:06:03AM -0600, Ryan Harper wrote:
>>>>
>>>> Instead of regular expressions in the filters, the following syntax is used:
>>>>
>>>> , means OR
>>>> .. means AND
>>>> . means IMMEDIATELY-FOLLOWED-BY
>>>
>>> Is there any reason we can't use | for or, and & for AND?  I know this
>>> is just nit picking, but, it certainly reads easier and doesn't need a
>>> translation.  AFAICT, in the implementation, we're just using .split(),
>>> so, I think the delimiters aren't critical.
>>
>> I think the main reason is that " " also means "OR" today (as we use
>> .split() and I guess we don't want to diverge too much from the previous
>> format), and having C-like operators that don't allow spaces would lead
>> to confusion. e.g. I am sure somebody would try to write
>> "foo & bar | baz" eventually--how would we interpret that?
> 
> isn't the comma taking the place for " " as OR? Are you keeping both?

We're keeping both because that allows for some degree of backward
compatibility.  The new syntax is backward compatible with simple
scripts that don't use any regexp operators like .* and |.

> ".." looks like a mistake to me where one meant to put "."
> 
> I'd suggest ignoring " " as a OR operator, then as with most operations,
> you need either parens or order of operation precendence which one
> can use to interpret foo & bar | baz.
> 
> 
>>
>>>
>>>>
>>>> Example:
>>>>
>>>> only qcow2..Fedora.14, RHEL.6..raw..boot, smp2..qcow2..migrate..ide
>>>>
>>>> means select all dicts whose names have:
>>>>
>>>> (qcow2 AND (Fedora IMMEDIATELY-FOLLOWED-BY 14)) OR
>>>> ((RHEL IMMEDIATELY-FOLLOWED-BY 6) AND raw AND boot) OR
>>>> (smp2 AND qcow2 AND migrate AND ide)
>>>
>>>   >>> config = "qcow2&Fedora.14|RHEL.6&raw&boot|smp2&qcow2&migrate&ide"
>>>   >>> config
>>>   'qcow2&Fedora.14|RHEL.6&raw&boot|smp2&qcow2&migrate&ide'
>>>   >>> config.split("|")
>>>   ['qcow2&Fedora.14', 'RHEL.6&raw&boot', 'smp2&qcow2&migrate&ide']
>>
>> What bothers me about the examples above is the absense of spaces, that
>> makes it not very readable to my eyes. 
> 
> I don't disagree, but the . and .. I don't find very readable either and
> I need a look-up table to distinguish , from .. and . and " ".  The
> logical operators are well known and recognized.

I thought , was intuitive enough:

only boot, reboot, migrate

seems pretty nice to me.  I also thought '.' was obvious because it
appears in test names, which leaves us with '..':

only Fedora..boot

I thought this could be read as "I don't care what's between Fedora and
boot".  Does that make any sense to you?

Either way, if we use | and &, I don't think we'll support parentheses
because that would greatly complicate the code.

  reply	other threads:[~2011-02-10  9:14 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-09  1:50 [KVM-AUTOTEST PATCH] KVM test: refactor kvm_config.py Michael Goldish
2011-02-09  2:56 ` Cleber Rosa
2011-02-09  9:28 ` Avi Kivity
2011-02-09 10:07   ` Michael Goldish
2011-02-09 10:19     ` Avi Kivity
2011-02-10  1:18   ` Amos Kong
2011-02-10 12:42     ` Lucas Meneghel Rodrigues
2011-02-09 16:06 ` Ryan Harper
2011-02-09 16:21   ` Eduardo Habkost
2011-02-09 23:31     ` [Autotest] " Ryan Harper
2011-02-10  9:14       ` Michael Goldish [this message]
2011-02-10 10:34         ` Avi Kivity
2011-02-10 10:46           ` Michael Goldish
2011-02-10 10:47             ` Avi Kivity
2011-02-10 10:55               ` Michael Goldish
2011-02-10 10:57                 ` [Autotest] " Michael Goldish
2011-02-10 11:03                   ` Avi Kivity
2011-02-10 11:46                     ` Michael Goldish
2011-02-10 13:45                     ` Eduardo Habkost

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D53AC5D.4070507@redhat.com \
    --to=mgoldish@redhat.com \
    --cc=autotest@test.kernel.org \
    --cc=ehabkost@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=ryanh@us.ibm.com \
    --cc=ulublin@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.