Hello IronPython Community,

We’re pleased to announce the release of IronPython 2.0 Beta 2. In addition to the usual bug fixes (~25 reported on CodePlex and ~50 reported internally), this release has been partially focused on improving the performance of IronPython, in particular startup perf. Another focus of this release was improving upon our traceback support which had regressed quite a bit in 2.0B1 and had largely been broken in the 2.0 Alphas. Our traceback support should now be superior to that of IronPython 1.1!

We’ve also made a minor change to our packaging by adding a Microsoft.Scripting.Core.dll in addition to the Microsoft.Scripting.dll that’s been around since the start of 2.0. We are doing this purely as an architectural layering cleanup. Microsoft.Scripting.Core contains DLR features that are essential to building dynamic languages. Microsoft.Scripting will contain language implementation helpers that can either be re-used (e.g., BigInts) or copied (possibly e.g., the default binder). This process is all about our work to get the DLR architecture right and shouldn’t have any noticeable IronPython impact except that there’s now one more DLL to include in any package.

As a consequence of the new DLL, the deprecated file IronPython2005.sln is broken. This is the last release that will include this .sln file in the source zip file. Of course the Visual Studio 2008 version of this file, IronPython.sln, still builds.

The following CodePlex Work Items have been closed since IronPython 2.0 Beta 1 was released:
  • 15835 FromImportStatement relative path not working
  • 15832 parser is not validating FromImportStatement syntax
  • 15793 dynamically bound getattribute is overwritten after modifying bases
  • 15752 derived getattribute causes stack overflow
  • 16057 BY DESIGN: Sublist parameter gets lost by Parser
  • 15522 (Ipy2a8) Problems in module "dis"
  • 15598 BY DESIGN: Problems with ScriptEngine.Execute on 2.0 Alpha 8
  • 16077 incorrect parsing of numeric literal index() call
  • 945 Pickling exceptions with clsException in dict fails
  • 15803 cPickle fails to load pickled object from submodule
  • 15882 delitem broken w/ tuple arguments
  • 11923 Exception tracebacks lose line numbers after reload()
  • 2409 Default exception dumper should get line info out of traceback
  • 15715 dir(dict.fromkeys) fails with a cast-related TypeError after calls to dir(dict)
  • 13820 getattribute called for magic methods
  • 7429 traceback support inside generator and nested try inside except block
  • 15884 MAJOR REGRESSION: stack traces of simple errors missing file names, line numbers, etc
  • 8291 Tracebacks from compiled code objects dissimilar from CPython
  • 11922 AssertionError is printed with an extraneous "None"
  • 7766 builtins should be module for main script, dictionary for other modules
  • 5803 when add failed
  • 2912 traceback's don't get created if exception is caught in same frame
  • 6210 RawDecode method fails to return the string according the right encoding
  • 13687 2.0 alpha 5: Registering c#-written methods as event handlers from ironpy throws TypeError: object is not callable.
  • 11283 SyntaxError doesnt get lineno (or other properties) when created by user code
  • 15746 DUPLICATE: ipyw.exe without any parameters crash ( IronPython 2.0 Beta 1 )

We’d like to thank everyone in the community who reported these: kevgu, oldman, christmas, brucec, scottw, fuzzyman, haibo, Seo Sanghyeon, grizlupo, J. Merrill, perhaps, antont, 05031972, Jason Ferrara, Matt Beckius, and Davy Mitchell.


Also, we’ve closed the following bugs that were reported internally:
  • 148394 Trivial: Exception messages are not directed to sys.stderr
  • 148481 Trivial: IronPythonConsole.exe with '-' : no response
  • 148651 Possible race conditions during lock-unprotected reads from Dictionary<,>
  • 149018 Trivial: Python25: new api - deque.remove
  • 151051 In CPython, divmod does not try on floordiv and mod
  • 151094 Misc binary operation bugs
  • 221344 Perf: Shootout/fasta is 74% worse when running IronPython 2.0 vs. IronPython 1.1
  • 250921 Add more IronPython tests for property sets WRT value types
  • 299898 testcoercion.py fails with method "testcmptypes()" when the two objects to be compared are not the same type in 32bit vista
  • 301601 IP2.0 raise a syntaxError instead of an indentationError when exec("foo()\n bar()\n")
  • 314124 Implementing coerce cause endless loop
  • 314140 eq threw AttributeError in IronPython but didn't in CPython
  • 314459 gc.collect() always return 0 and can't have argument
  • 314879 AttributeError: 'module' object has no attribute 'debug'
  • 314898 NotImplementedError for co_lnotab.
  • 316130 heapq.heapreplace(None,None) throw a AttributeError instead of TypeError
  • 316148 sometimes nlargest(n, iterable) not equal to sorted(iterable, reverse=True):n
  • 316520 it is different for func_defaults between Ironpython and Cpython.
  • 316523 it is different for func_dict between Ironpython and Cpython
  • 317194 AttributeError: 'file' object has no attribute 'mode'
  • 319014 it is different between Ironpython and Cpython when exec "dict({}, {})"
  • 319028 AttributeError: 'dictproxy' object has no attribute 'items'
  • 319487 Instances of Set dosen't provide update() operation in IronPython
  • 320078 Trivial: TypeError: hex() argument cannot be converted to hex
  • 320514 ImportError: No module named _functools
  • 321852 Trivial: KeyError: module
  • 323570 startfile() can take two argument in cpython2.5
  • 325377 dict silently swallows exceptions when a key's cmp method throws
  • 359635 "unknow command line:" in the output of "ipy.exe /help"
  • 360510 some properties of func_code is not implemented
  • 360987 None has a extra attribute 'module'
  • 361443 Re-enable testtracebackcpy_20
  • 363019 yield statement must add an return value against Ironpython. but Cpython don't need.
  • 364736 compiling "from . import a" throw syntax error
  • 364746 Can't from future import absolute_import
  • 365068 getslice(self, i, j): gets different result between IrpnPython and CPython with UserList object
  • 365242 excise getattribute from derived new-style type
  • 365367 sys.path_hooks is not implemented
  • 369111 Ipy should try to use base type defined special operators
  • 372549 Non-string attributes are not being added to a dictionary in interactive mode
  • 400941 REGRESSION: Re-enable merged modules which contain both a .NET namespace and a normal module

You can download IronPython 2.0 Beta 2 at: http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=IronPython&ReleaseId=11566

The IronPython Team


NOTES
ToyScript, a small scripting language built on top of the DLR, is merely a DLR sample and not some new scripting language Microsoft has created. Also, ToyScript is not intended to be distributed with IronPython on a permanent basis.

Last edited May 2, 2008 at 5:27 PM by dfugate, version 1

Comments

No comments yet.