[Ironpython-users] IronPython 3 Version Number (Was: Item 34263 in 2.7.5?)

Jeff Hardy jdhardy at gmail.com
Fri Apr 11 12:20:30 CEST 2014


On Fri, Apr 11, 2014 at 11:02 AM, Olof Bjarnason
<olof.bjarnason at gmail.com> wrote:
> OK, that sounds like a reasonable way to do it. Very nice that it is
> automatically verifiable!
>
> But it opens more questions from me, sorry. I find this interesting :)
>
> So when an automatic test, that is determined to be a implementation
> detail, fails - how does IronPython "skip" it? Is the actual test
> suite specific for IronPython? I mean, is the unit tests in IronPython
> a fork of CPythons test suite?

Yes, since the test suite is part of the stdlib. Unittest supports an
@skipIf decorator; we just use @skipIf(sys.platform == 'cli') (or
occasionally wrap the function or part of the function in a similar
if: statement).

> Anyone know how many per cent of the CPython test suite that IronPython pass?

Nope :) To be honest, for 2.7 it's a bit of a mess. There was just
never a concerted effort to drive the number down, because there were
so many issues. The difference in string types always meant we would
ever reach 100%, and refcounting dependencies are tedious and un-fun
to debug.

For IronPython 3, we're going to work with the Jython and PyPy devs to
make the test suite work for all of us (and the PyPy team has already
done a tone of work here). More importantly, it's all going to get
pushed upstream so that we can minimize the forking necessary.
Combined with the new NUnitLite-based test runner in IronPython 3
(even running the tests for IronPython 2.7 is a chore) we should be
able to get much closer to 100% coverage.

This is probably the single biggest reason I'm excited about IP3 -
compatibility is actually a realistic goal. There will always be some
things that we can't match, but we should be able to get really close
now.

Once 2.7.5 is done I'm going to spend some time getting the CI
infrastructure up to par for 3.0 and making sure that tests are run on
a regular basis. By making it easier to actually contribute I'm hoping
to attract a few more people - understanding IronPython is hard enough
without having to understand the Byzantine build/test system 2.7 has
(OK, the build system is still complex - trying to target 8 different
platforms is hard).

- Jeff


More information about the Ironpython-users mailing list