[Distutils] FINAL DRAFT: Dependency specifier PEP

Donald Stufft donald at stufft.io
Mon Nov 16 20:49:00 EST 2015


> On Nov 16, 2015, at 8:46 PM, Robert Collins <robertc at robertcollins.net> wrote:
> 
> On 17 November 2015 at 14:30, Nathaniel Smith <njs at pobox.com> wrote:
>> On Nov 16, 2015 12:46 PM, "Robert Collins" <robertc at robertcollins.net>
>> wrote:
>>> 
>> [...]
>>>    marker        = wsp* marker_expr ( wsp* ('and' | 'or') wsp*
>>> marker_expr)*
>> 
>> I guess technically the spec doesn't say either way what the precedence of
>> "and" versus "or" should be; it just parses unparenthesised sequences to a
>> flat ast and in principle the (unspecified) ast evaluator could apply
>> different precedences. The way the grammar's written though seems to suggest
>> that they're equal precedence with some unspecified associativity, which is
>> different from python where "and" is more tightly binding than "or" (and
>> associativity doesn't matter because each operator is associative in
>> isolation). Maybe this is implied here too via the language about how this
>> is intended to be a python subset, but it would be good to clarify what the
>> evaluation semantics should be.
> 
> e.g.
> "1" < "2" and "3" < "4" or "5" < "6"
> 
> Right now we haven't used prose to define AND or OR as having
> differing precedences - and PEP 345 didn't either.
> 
> I think simple left associative would be fine - right now the grammar
> we give parses:
> 
>  "name; os_name=='dud' and os_name=='odd' or os_name=='fred'"
> 
> as
> 
> ('name', [], [], (('posix', '==', 'dud'), [('and', ('posix', '==',
> 'odd')), ('or', ('posix', '==', 'fred'))]))
> 
> which can just be rolled up left to right.

Should we use the same rules as Python in order to maintain compatibility or is there a compelling reason to break compatibility here?

> 
> 
> 
> 
>> Other comments:
>> 
>> The whitespace handling looks correct to me now :-)
>> 
>> I didn't check that the two copies of the grammar are identical (and I only
>> looked at the top version, not the bottom version). Hopefully someone did?
>> It'll be a headache if we discover later that there's skew between them, and
>> no guidance on which is normative.
> 
> I've been pretty careful; if there's a difference we'll discuss and
> figure it out :)
> -Rob
> 
> 
> --
> Robert Collins <rbtcollins at hp.com>
> Distinguished Technologist
> HP Converged Cloud
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG at python.org
> https://mail.python.org/mailman/listinfo/distutils-sig


-----------------
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20151116/377d81f9/attachment.sig>


More information about the Distutils-SIG mailing list