Thanks Curt.  That's encouraging news to hear.

I've noticed that some Python projects have a dependency on being able to standard library methods and types. For example, Mercurial replaces buffer() with their own fakebuffer(), but ipy socket reads still return the original buffer. I ended up patching around their monkey patch, which, understandably, they weren't too keen on importing back into their repo. An eventual move to _socket + socket.py wrapper could help improve compatibility with those projects.

These type of hidden dependencies on vm-specific behaviors seem to the biggest source of issues I've come across so far (in 2.7, anyway). I'm continually amazed at how big of a step forward the team made from 2.6 -> 2.7 with respect to compatibility.


On 5/17/2011 5:58 PM, Curt Hagenlocher wrote:
Originally, we weren't allowed to redistribute the Python standard
library with IronPython. So it made sense to implement the socket module
directly. When IronPython started shipping the standard lib, it could
have been changed, but never was. I think it makes sense to follow the
CPython pattern.

On Tue, May 17, 2011 at 2:33 PM, Zachary Gramana
<zgram...@pottsconsultinggroup.com
<mailto:zgram...@pottsconsultinggroup.com>> wrote:

    Hi:

    I've been working on adapting Mercurial to run on IronPython 2.7,
    and ran into http://ironpython.codeplex.com/workitem/26852 which has
    stopped me from getting `hg clone` working over SSL.

    I noticed that for the ssl module, the IPY team mirrored the CPython
    pattern of placing the platform-specific code in the _ssl compiled
    module, and then wrapped the platform-independent around it in
    ssl.py (almost entirely shared with CPython 2.7).

    The socket module, however, does not.  I admit I have a limited
    understanding of the code, but at first blush, it appears that
    adopting the _socket.cs/socket.py isn't out-of-the-question. Is
    there a story behind this, or am I missing something obvious to
    everyone else?

    The immediate benefit would be getting a free implementation of
    _socketobject, _dummy, and dup(); it also improves DRY conformance,
    and would help to limit behavioral differences with respect to other
    implementations.

    Thanks!

    Regards,
    Zack

    P.S. Any advice on tackling issue #26852 is very warmly appreciated.
    _______________________________________________
    Users mailing list
    Users@lists.ironpython.com <mailto:Users@lists.ironpython.com>
    http://lists.ironpython.com/listinfo.cgi/users-ironpython.com




_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to