On Sun, Apr 17, 2011 at 4:19 AM, Raymond Hettinger
<raymond.hettin...@gmail.com> wrote:
>
> On Apr 16, 2011, at 2:45 PM, Brett Cannon wrote:
>
>
> On Sat, Apr 16, 2011 at 14:23, Stefan Krah <ste...@bytereef.org> wrote:
>>
>> Brett Cannon <br...@python.org> wrote:
>> > In the grand python-dev tradition of "silence means acceptance", I
>> > consider
>> > this PEP finalized and implicitly accepted.
>
> I haven't seen any responses that said, yes this is a well thought-out
> proposal that will actually benefit any of the various implementations.
> Almost none of the concerns that have been raised has been addressed.  Does
> the PEP only apply to purely algorithmic modules such as heapq or does it
> apply to anything written in C (like an xz compressor or for example)?

My understanding is it does apply only to stuff that does not wrap an
external library.

> Does
> testing every branch in a given implementation now guarantee every
> implementation detail or do we only promise the published API (historically,
> we've *always* done the latter)?  Is there going to be any guidance on the
> commonly encountered semantic differences between C modules and their Python
> counterparts (thread-safety, argument handling, tracebacks, all possible
> exceptions, monkey-patchable pure python classes versus hard-wired C types
> etc)?
> The PEP seems to be predicated on a notion that anything written in C is bad
> and that all testing is good.

Sounds about right

>  AFAICT, it doesn't provide any practical
> advice to someone pursuing a non-trivial project (such as decimal or
> threading).  The PEP mostly seems to be about discouraging any further work
> in C.  If that's the case, it should just come out and say it rather than
> tangentially introducing ambiguous testing requirements that don't make a
> lot of sense.
> The PEP also makes some unsupported claims about saving labor.  My
> understanding is the IronPython and Jython tend to re-implement modules
> using native constructs.  Even with PyPy, the usual pure python idioms
> aren't necessarily what is best for PyPy, so I expect some rewriting there
> also.

We try very hard to optimize for usual python idioms. They're very
often much better than specific cpython hacks. Unless you mean things
like rebiding a global into default a "pythonic idiom". We had to
rewrite places in standard library which are precisely not very
pythonic.

> It seems the lion's share of the work in making other implementations
> has to do with interpreter details and whatnot -- I would be surprised if
> the likes of bisect or heapq took even one-tenth of one percent of the total
> development time for any of the other implementations.

You're wrong. We didn't even write _heapq and _bisect. That's actually
a lot of work and PyPy's team is quite small *and* it has to do all
the other stuff as well. heapq and bisect were never a problem (except
one case in twisted), but other stuff where C version diverged from
Python version were a problem. Hell, we even wrote cPickle which wraps
pickle and provides correct interface! This is kind of things we would
rather not spend time on (and yes, it is time consuming).

>
>>
>> I did not really see an answer to these concerns:
>>
>> http://mail.python.org/pipermail/python-dev/2011-April/110672.html
>
> Antoine does seem sold on the 100% branch coverage requirement and views it
> as pointless. I disagree. =)
>
> As for the exception Stefan is saying may be granted, that is not in the PEP
> so I consider it unimportant. If we really feel the desire to grant an
> exception we can (since we can break any of our own rules that we
> collectively choose to), but I'm assuming we won't.
>
>>
>> http://mail.python.org/pipermail/python-dev/2011-April/110675.html
>
> Raymond thinks that have a testing requirement conflates having
> implementations match vs. APIs.
>
> That is not an accurate restatement of my post.
>
> Well, as we all know, the stdlib ends up having its implementation details
> relied upon constantly by people whether they mean to or not,  so making
> sure that this is properly tested helps deal with this known reality.
>
> If you're saying that all implementation details (including internal
> branching logic) are now guaranteed behaviors, then I think this PEP has
> completely lost its way.  I don't know of any implementors asking for this.
>
> This is a damned-if-you-do-damned-if-you-don't situation. The first draft of
> this PEP said to be "semantically equivalent w/ divergence where technically
> required", but I got pushback from being too wishy-washy w/ lack of concrete
> details. So I introduce a concrete metric that some are accusing of being
> inaccurate for the goals of the PEP. I'm screwed or I'm screwed. =) So I am
> choosing to go with the one that has a side benefit of also increasing test
> coverage.
>
> Maybe that is just an indication that the proposal isn't mature yet.   To
> me, it doesn't seem well thought out and isn't realistic.
>
> Now if people would actually support simply not accepting any more C modules
> into the Python stdlib (this does not apply to CPython's stdlib), then I'm
> all for that.
>
> I only went with the "accelerator modules are okay" route to help get
> acceptance for the PEP. But if people are willing to go down a more
> stringent route and say that any module which uses new C code is considered
> CPython-specific and thus any acceptance of such modules will be damn hard
> to accomplish as it will marginalize the value of the code, that's fine by
> me.
>
> Is that what people want?   For example, do we want to accept a C version of
> decimal?  Without it, the decimal module is unusable for people with high
> volumes of data.  Do we want things like an xz compressor to be written in
> pure python and only in Python?  I don't think this benefits our users.
> I'm not really clear what it is you're trying to get at.  For PyPy,
> IronPython, and Jython to succeed, does the CPython project need to come to
> a halt?  I don't think many people here really believe that to be the case.
>
> Raymond
>
>
>
>
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev@python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
> http://mail.python.org/mailman/options/python-dev/fijall%40gmail.com
>
>
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to