diff -r e2a411a429d6 Lib/platform.py --- a/Lib/platform.py Wed Oct 16 17:06:22 2013 +0100 +++ b/Lib/platform.py Thu Oct 17 07:56:40 2013 +0200 @@ -1183,6 +1183,14 @@ '(?: \(([\d\.]+)\))?' ' on (.NET [\d\.]+)', re.ASCII) +# IronPython covering 2.6 and 2.7 +_ironpython26_sys_version_parser = re.compile( + r'([\d.]+)\s*' + '\(IronPython\s*' + '[\d.]+\s*' + '\(([\d.]+)\) on ([\w.]+ [\d.]+(?: \(\d+-bit\))?)\)' +) + _pypy_sys_version_parser = re.compile( r'([\w.+]+)\s*' '\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*' @@ -1220,14 +1228,19 @@ return result # Parse it - if sys_version[:10] == 'IronPython': + if sys_version.find('IronPython') != -1: # IronPython name = 'IronPython' - match = _ironpython_sys_version_parser.match(sys_version) + if sys_version[:10] == 'IronPython': + match = _ironpython_sys_version_parser.match(sys_version) + else: + match = _ironpython26_sys_version_parser.match(sys_version) + if match is None: raise ValueError( 'failed to parse IronPython sys.version: %s' % repr(sys_version)) + version, alt_version, compiler = match.groups() buildno = '' builddate = '' @@ -1243,7 +1256,7 @@ version, buildno, builddate, buildtime, _ = match.groups() compiler = sys.platform - elif "PyPy" in sys_version: + elif sys_version.find("PyPy") != -1: # PyPy name = "PyPy" match = _pypy_sys_version_parser.match(sys_version) diff -r e2a411a429d6 Lib/test/test_platform.py --- a/Lib/test/test_platform.py Wed Oct 16 17:06:22 2013 +0100 +++ b/Lib/test/test_platform.py Thu Oct 17 07:56:40 2013 +0200 @@ -91,15 +91,28 @@ ("CPython", "2.6.1", "tags/r261", "67515", ('r261:67515', 'Dec 6 2008 15:26:00'), 'GCC 4.0.1 (Apple Computer, Inc. build 5370)'), + ("IronPython 2.0 (2.0.0.0) on .NET 2.0.50727.3053", None, "cli") : ("IronPython", "2.0.0", "", "", ("", ""), ".NET 2.0.50727.3053"), + + ("2.6.1 (IronPython 2.6.1 (2.6.10920.0) on .NET 2.0.50727.1433)", None, "cli") + : + ("IronPython", "2.6.1", "", "", ("", ""), + ".NET 2.0.50727.1433"), + + ("2.7.4 (IronPython 2.7.4 (2.7.0.40) on Mono 4.0.30319.1 (32-bit))", None, "cli") + : + ("IronPython", "2.7.4", "", "", ("", ""), + "Mono 4.0.30319.1 (32-bit)"), + ("2.5 (trunk:6107, Mar 26 2009, 13:02:18) \n[Java HotSpot(TM) Client VM (\"Apple Computer, Inc.\")]", ('Jython', 'trunk', '6107'), "java1.5.0_16") : ("Jython", "2.5.0", "trunk", "6107", ('trunk:6107', 'Mar 26 2009'), "java1.5.0_16"), + ("2.5.2 (63378, Mar 26 2009, 18:03:29)\n[PyPy 1.0.0]", ('PyPy', 'trunk', '63378'), self.save_platform) :