Hello IronPython Community,

We have just released IronPython 1.0 RC1.  We're anticipating that this build 
will be the same as 1.0 final unless we hear otherwise.  We're looking for any 
feedback, but in particular we'd like to know of any blocking issues discovered 
against this build or fundamental language incompatibilities.  Please try out 
the latest build over the next 2 weeks and let us know if you encounter any 
issues as soon as possible.  Additionally, if there are any 1.01 Alpha bugs on 
CodePlex that are blocking you please bring these to our attention so we can 
take a second look at them.

Our goal for IronPython 1.0 is to be compatible with CPython 2.4  We've fixed 
all known language incompatibilities and implemented a large number of the 
standard CPython built-in modules with a focus on those most used.  RC1 
includes one new module that hasn't shipped previous (cPickle).  We do have 
some issues remaining but we believe these will not affect compatability with 
CPython.  In addition RC1 has several new 2.5 Python features that can be 
enabled with the experimental switch -X:Python25, but by default these are 
disabled:

   a.  PEP 308: Conditional Expressions
   b.  PEP 343: The 'with' statement.  (as per PEP 343, you need to do 'from 
__future__ import with_statement' for enabling 'with' statement )
   c.  Other Language Changes
        1. The dict type has a new hook for letting subclasses provide a 
default value with '__missing__' method.
        2. Both 8-bit and Unicode strings have new partition(sep) and 
rpartition(sep) methods.
        3. The startswith() and endswith() methods of string types now accept 
tuples of strings to check for.
        4. The min() and max() built-in functions gained a 'key' keyword 
parameter.
        5. Two new built-in functions, any() and all(), evaluate whether an 
iterator contains any true or false values.
        6. The list of base classes in a class definition can now be empty.

You can download the release from: http://www.CodePlex.com/IronPython

We'd like to thank everyone in the community for your bug reports and 
suggestions that helped make this a better release: audespc, Jonathan Jacobs, 
Lee Culver, Luis M. Gonzalez, Miguel de Icaza, Mike Raath, paparipote, 
Sanghyeon Seo, and Vincent Wehren.

Thanks and keep in touch,
The IronPython Team

More complete list of changes and bug fixes:
============================================
Bugfix: 824 - IP Fails to trap AttributeError from __getattr__
Bugfix: 825 - weakref.proxy needs all special methods
Bugfix: test_descr: two class init issues
Bugfix: test_descr: minor negative cases we're missing (classmethod, __cmp__, 
__get__, read-only properties)
Bugfix: test_descr: dict compat issues
Bugfix: test_descr: four minor issues (wrong except on invalid format string, 
hex is uppercase, moduletype, Ellipsis)
Bugfix: 872 - NullRef exception in finally w/o yield
ClrModule.Path was deprecated, to be removed in Beta 7, but it's still there
Also removed sys.LoadAssemblyXXX methods
Tutorial Update: Added some bulletproofing to pyevent.py so that you could only 
add callable objects to events, quietly handle removing handlers that aren't 
there, and r
emoved some old/unused code.
Tutorial Update: Added comments to winforms to explain what it was doing and why
Bugfix: 348 RE_Pattern.match matches start-of-string too optimistically when 
endpos is specified
Bugfix: 438 os functions raise wrong exception types
Bugfix: 897 Memory leak in ClrModule
Bugfix: 901 SystemError when deriving from a parent class and a grandparent 
class with __slots__
Bugfix: 813 Builtin eval with dict subclass as locals does not work as in 
CPython 2.4
Bugfix: Add filename, lineno, offset and text to SyntaxError Exception when 
dealing with pure Python
Bugfix: test_sys: Implement various missing sys functions WAS: Implement 
sys.settrace function
Bugfix: cpython supports backslash to concat long string?
Bugfix: clr.LoadAssemblyByName and LoadAssemblyByPartialName publish the 
assembly
Bugfix: MethodBinder: choose which explicitly implemetned interface methods 
with the same name
Bugfix: implement type.mro()Bugfix: test_isinstance: Assertion triggered for 
test case calling isinstance with a class that has no __bases__ attribute
Tutorial Update: Tweaks to text for winforms and avalon exercises.
Added test cases for COM interop
Bugfix: 1018 - Function call with expanded argument list passes values 
incorrectly
Bugfix: AddReference* APIs eat exceptionsBugfix: Some of the 
ClrModule.LoadAssemblyXxx methods swallow exceptions from the Assembly APIs 
they call, making debugging difficult
Bugfix: 940 - Cannot cast OldClass to DynamicType exception when importing 
xml.dom.minidom
Bugfix: 922 - __getitem__ is no longer callable w/ multiple indexesBugfix: 930 
- Performance degradation between beta 8 and 9 doing multi-dimensional array 
copies
Bugfix: CodeDom: Ignore empty Indent and always force it to indent
Bugfix: 871 - Overriding __call__ on type exposes Caller ContextBugfix: 921 - 
FancyRepr only splits on \n
Bugfix: 895 - cmp() on recursive structures produces uncaught 
StackOverflowException and kills interpreter
Bugfix: Strange behavior of MonthCalendar control causes cascading message 
boxes in the tutorial on Embedding IronPython
Bugfix: - test_descr: three super() issues,  Super had a bunch of issues -
                #1) Super.__get__ would return an instance of Super not an 
instance of whatever type Super is
                #2) Super was passing the wrong values for the descriptor get, 
resulting in the property's __get__ doing useful work
                #3) If we're not looking up in a subclass of what super is a 
super for, then we should search the real type of the insta
nce, skipping the 1st class in the MRO
                #4) Super on super - ran into this one while writing the tests, 
our repr would stack overflow
                #5) Super __new__ / __init__ was wrong - __new__ is a NOP which 
yields an empty super, __init__ re-initializes the super
 and can be called multiple times
                #6) Our IDynamicObject implementation for Super wasn't 
reporting the right thing for subclasses
Bugfix: test_descr: issues with __str__ __repr__ and subclasses of str
Tutorial Update: Updated tutorial with a new exercise.
Bugfix: test_descr:  four __slots__ issues
Bugfix: 1029 - Can't access __builtins__ when runing method compiled with 
PythondEngine.CompileMethod
Bugfix: test_file.py failing on CPython---seems like a bug with our "seek" 
implementation
Bugfix: Exception.__str__() exception message differs from the message given by 
CPython
Test updates: Improvments to tests to ensure they pass on both IronPython & 
CPython
Bugfix: Add ISlice interface to IronMath.dll
Bugfix: If the count argument to re.subn is omitted or 0 then all occurrences 
should be replaced
Bugfix: 1054 - IPy Runtime crashes making COM call with missing arguments
Bugfix: System.Char.Parse('c') in set(['c']) -- fails
Python 2.5 feature: __MISSING__ on dict
Bugfix: 894 - Cannot implement an interface that defines an event
Bugfix: COM Interop: regression - missing some methods
Bugfix: We seem to be boxing the return value (bool) of 'a' == 'a' every time 
we call it
Performance fixes for areas where we were 2-10x slower than CPython:
        10x boost to tuple slicing perf by using code on object[] rather than 
on generic Array and smaller boost to List slicing with same code.

        ~2x boost to builtin and clr method lookup perf with two steps
          1. Using a customized immutable SymbolId based HashTable
          2. Not checking the type of self when we know it's ours
        The performance of looking up methods on builtin and clr types is 
barely noticeable in pystone and parrotbench, but should be noticeable in many 
real-world apps and other benchmarks.  This impacts every method call to either 
a .NET type or a builtin Python type - which are the same thing in IronPython.

        Also simplified and sped-up Function and OldClass binding rules
Tutorial Update: Output of dir(FileSystemEventArgs)
Tutorial Update: Added TypedCode sample for Tutorial 2 Task 3
Tutorial Update: Fixed obsolete method calls in code sample of Tutorial 6, 
Exercise 2, Task 1&3
Bugfix: 758 - Some invalid input doesn't report error in the console
Bugfix: 776 - datetime.strptime doesn't allow extra non-whitespace characters 
in format string
Bugfix: 904 - Ctrl-Z improperly expected for EOF on Unix
Bugfix: 936 - RE_Match.start doesn't accept group name
Bugfix: 1015 - Exception stack not filtered/formatted when exception occurs on 
a different thread
Improved help's display & __doc__ of built-in functions & properties
Bugfix: sys.exit(None) prints None to console. 
PythonSystemExitException.GetExitCode now returns non-integer values and the 
caller has to handle it appropriately.
Bugfix: PythonEngine.Evaluate does not work with 
EngineOptions.ClrDebuggingEnabled.
Added EngineModule.Import to match PythonEngine.Import which only worked with 
the DefaultModule.
Bugfix: CreateLambda throws NullReferenceException if the expression includes a 
division operator
Bugfix: Names for generic parameters of CreateLambda and CreateMethod don't 
follow same pattern as existing FX generic types
Python 2.5 Feature: with Statement
Bugfix: CodePlex 1075 - Type Error is not raised
Bugfix: nt.unlink not deleting file properly
Bugfix: issue in the marshal module (enable test_marshal.cs)
Bugfix: date.strftime does not show good data
Bugfix: COM interop: duplicate entries of __class__ (and __doc__, __init__ etc) 
in dir(com object) result
Bugfix: Wrong exception when opening read-only file for write.
Implemented cPickle module and made associated changes to the runtime.
Bugfix: 1090 - del sys._getframe
Add APP ID Icon to ipy.exe and ipyw.exe
Bugfix: Deleting a class attribute should raise an error
Bugfix: implement socket.getaddrinfo to ~90% fidelity of CPython
Add AllowPartiallyTrustedCallers attribute to IronPython.dll and IronMath.dll

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

Reply via email to