Hello IronPython Community,

We have just released IronPython 1.0 Beta 8. This release continues our focus 
on improving compatibility w/ CPython.  It also includes the last set of large 
design changes to IronPython 1.0 including a new method dispatch algorithm that 
should be closer to C# and VB, but also will now throw in some cases if the 
method dispatch is ambiguous.  There are also a large number of changes in the 
public API surface as we lock down for the final release (there will be one 
more set of changes to make fields private in the AST).  We'd love to hear your 
feedback on these changes.  Finally we've also included one new module in this 
release that has had high demand from the community: socket.

A more complete list of changes follows at the end.

You can download the release from: 
http://www.microsoft.com/downloads/details.aspx?FamilyId=FA3F9CC7-2A0D-41D3-AE51-0AEF8DFA7C57&displaylang=en

We'd like to thank everyone in the community for your bug reports and 
suggestions that helped make this a better release: AaronM, Adnand Dragoti, 
Angelo Xu, Aude Espesset, Brian Loyd, CParmar, JesseK, Jonathan Jacobs, Keith 
J. Farmer, MFenniak, Michael Foord, Michael Shilman, Paparipote, Pelikhan and 
Seo Sanghyeon.

Thanks and keep in touch,
The IronPython Team


Complete list of changes
===================

Implement operators for all standard .NET types
re.search returns the correct value
ExecuteFile now returns Nullable<int> to indicate whether SystemExit was 
returned
Unhandled exceptions during startup are printed to the console
Bitwise operators for standard .NET types are implemented (Byte, SByte, Int16, 
Uint16, Uint32, Uint64)
Fixed issue w/ method dispatch & ref and out args
Enabled test_eof from standard CPython regression test suite
Bugfix: Dynamic method binding via __get__ is broken for both old and new style 
classes
Bugfix: inconsistency with hash() on types extending builtin basic types
Bugfix: unary operators not working for user types derived from basic types
Bugfix: issues subclassing tuple, str, unicode, file, and list
Bugfix: Errors creating builtin types using keyword arguments
Bugfix: CodeDom.FileExtension returns ""
Bugfix: str/repr of generic/non-generic collided types shows generic type name
Bugfix: SyntaxError expected when function parameter is declared as global
Bugfix: test_sys: SystemError is missing 'code' attribute
Bugfix: cStringIO module implementation incomplete
Experimental static compilation support (disabled by default)
Support creating exceptions that logically live in other modules
New organization & harness for IronPython regression tests
New Hosting API revisions
Fix compilation warnings on Mono
Bugfix: IndexError, IndexOutOfRangeException on definition of usertype with 
multiple inheritance
Bugfix: subclassing long is broken
Bugfix: expecting __repr__ returned non-string
Bugfix: file object missing a name member and doc strings
Bugfix: Fix special method lookup for new style classes
Bugfix: Add imp module
Bugfix: dir() scoping bug
Bugfix: Cleanup communication between the parser and PythonEngine used to 
determine when to continue a multi-line statement in the interpreter
Improved test code for test_imp
Bugfix: Deriving from sys module (and other builtins that implement 
ICustomAttributes) is broken.
Bugfix: __bases__ is immutable when dealing with new-style classes. We were not 
updating MRO of subtypes
Bugfix: __getattributes__ now works with builtins and .NET types
Bugfix: vars() obeys the "import clr" context rules
Bugfix: Disallow inheriting from function and instance-method
Remove binary backwards compatibility for beta 6 -> beta 7 transition
Bugfix: Issues subclassing dict, misaligned arguments on construction
Bugfix:  __call__ doesn't support keyword arguments
Bugfix:  __name__ is immutable
Bugfix: tuple.ToString() doesn't work after import clr
Fix issue w/ file handle implementation in nt
Bugfix: scope: del a variable which name is also used in a list inside nested 
function
Bugfix: scope: expect no NameError after that name is assigned in exec 
statement (inside a func)
Bugfix: eval(expr, None, None) throws
Bugfix: locals() don't include closure variables
Bugfix: Scope: eval on a variable defined outside the function
Bugfix: Test case disabled in test\test_decorators.py
Bugfix: Constructing int from System.Single doesn't work
Bugfix: builtin function help needs to be implemented
Bugfix: Test pass takes forever
Bugfix: 3 remaining issues in test_complex.py
Bugfix: subclassing long is broken
Bugfix: issues subclassing tuple, str, unicode, file, and list
Disable traceback test on 64-bit machines
Bugfix: issues with multiple inheritance and super
Bugfix: Remove assert keyword from the test suite
EngineContext was redundant with Frame
Finish SymbolId propogation through code base
Bugfix: nt.chmod flags are wrong (initialized as decimal rather than hex)
Bugfix: Re-implement time.clock to use the high-performance stop watch class
Bugfix: __slots__ implementation is broken
Bugfix: enable sbs_typeop.py
Bugfix: test_sys: sys.version_info needs to return a tuple containing 5 
components
Bugfix:  __dict__ assignment doesn't work
Bugfix:  TypeError inheriting from multiple metaclasses
Bugfix:  Remove ValueType from __mro__ of value types
Bugfix:  Binascii returns incorrect results sometimes
Bugfix:  (complex.__ne__(1+1j, 1+1j) is False) == True
Bugfix: exec doesn't handle mappings, it requires dictionaries
Bugfix: exec "code" in global generates expression for global twice
Bugfix: exec code in g, l evaluates g and l in the wrong order
Added overloads of PythonEngine.Execute* that take a Frame and 
ExecutionOptionsAll the PythonEngine.Execute*
APIs throw exceptions instead of catching them and converting to error codes
Add CompiledModule type (CompiledModule is comparable with FrameCode since it 
contains the code for a PythonModule, but not the state associated with the 
module.)
Bugfix: PythonEngine API: why engine.ExecuteFile(fileName) can't be debuged. If 
ExecutionOptions.EnableDebugging is specified, we emit code in debuggable 
snippets assembly.
Added default constructor for Frame
Bugfix: divmod issue
Additional test cases for regular expressions
Bugfix: Missing feature/functionality/implementation in Importer.cs
Bugfix: implement type.mro()
Bugfix:  enable Scenario7 in EngineTest.cs
Bugfix: from package.module import module imports module from it's self
Bugfix: Issue with metaclasses declared nested in methods
Bugfix: Stack overflow on importing package with mutually referencing modules
Bugfix: dict construction compat issues
Bugfix: More mro inconsistency when dealing with mixes of new and old style 
classes in a hierarchy
New public CreatePythonException functions to support external modules creating 
old-style exceptions and test cases
Added attributes injector feature and the related test.
Bugfix: TypeError inheriting from multiple metaclasses
Bugfix: OldInstance.TryGetAttr throws if AttributeError is raised by __getattr__
Removed IConsole interface
Bugfix: Make delegate instance callable
Bugfix: ExtensibleComplex doesn't work
Bugfix: Traceback support for top-level code
TraceBack is exposed publicly to other C# code
Add Get/SetVariables overload that takes frame
Added new CompileFile methods (2 overloads)
Made the IFrameEnvironment members overridable in the Frame class
Added TryGetGlobal to IFrameEnvironment.
Bugfix: Custom dictionary types were not marked with [PythonType(typeof(Dict))].
Bugfix: Similarly, the CompiledModules did not have this. Hence 
isinstance(mymodule.__dict__, dic) was returning False.
Bugfix: OpsReflectedType.OpsTypeToType mapped ArrayOps to the last loaded array 
type.
Bugfix: class C(Interface): pass would look up the methods of the Interface on 
System.Object, which is incorrect.
Bugfix: isinstance(old_style_class(), object) and isinstance(None, object) 
should return True
Bugfix: IronPython: Command prompt shown when launching/debugging Windows Forms 
project
Major overhaul of binding rules to better handle ambiguities, to better match 
C# and VB's rules and to unify the code paths between reflect optimized binding 
resolution.
Marked Emit and Evaluate functions on the AST as private, making CodeGen 
internal to IronPython
Bugfix: added a check for empty inheritance.
Fixes to improve ability to pass more of stand-alone CodeDom test suite
Renamed: Frame -> ModuleScope
Renamed: FrameCode -> CompiledCode
Renamed: PythonEngine.Get/SetVariable(string) -> 
PythonEngine.Get/SetGlobal(SymbolId)
Renamed: PythonEngine.Execute(object) -> PythonEngine.Execute(CompiledCode)
Renamed: IFrameEnvironment -> IModuleScope + IModuleEnvironment
Bugfix: Add support for unsigned integer types (and other missing data types)
Misc. code cleanup
Bugfix: Re-enable delegates.py test case, and generally improve delegate 
support (out, ref, and params support for delegates)
change static object field PythonEngine.ExecWrapper to static delegate property 
ConsoleCommandDispatcher.
Bugfix: Missing feature/functionality/implementation in Function.cs
Bugfix: Binding: ReflectOptimizer loses error information
Bugfix: issues with list.__rmul__
ExtensibleComplex now implements IRichComparable
__del__ support for new-style classes
Improvements to pass all of test_long except logs test
Entering a blank line in the console generates error
__bases__ is immutable when dealing with new-style classes
Implementing TrueCompare for ExtensibleComplex
More code coverage for the .net datatype operators
Bugfix: INumber doesn't handle all data types, therefore the datatypes must 
implemente the operators directly rather than delegating to INumber
Bugfix: ReverseXXX on float calculated non-reverse result in some cases
Bugfix: SingleOps didn't throw on division by zero
Bugfix: consistent ~ operator for all unsigned types
Bugfix: moved the tests into test_numtypes.py
Bugfix: PythonEngine.Evaluate should not change module name to "<eval>".
Bugfix: SuperConsole tab completion off end of cmd buffer should be detected 
and anchor position decremented per line scrolled.
Added AutoIndent and made AutoIndent, ColorfulConsole, and TabComplete 
orthogonal flags.
Removed HandleExceptions and PressAnyKeyToContinue flags from Console.
#ifdef out COM GAC crawling code.
Cleaned up code generation scripts
Increased code coverage for .net data type operators
Bugfix: fix for the case of ExtensibleLong ** UInt64 in which the UInt64 would 
get converted to double rather than staying integer.
Bugfix: Explicit interface properties are always getting long-names
Bugfix: Tuple hashing doesn't seem to call new-class's __hash__ function
Bugfix: support __coerce__ method in ops.
Implement socket module, enabling standard library tests to pass: 
BaseHTTPServer, DocXMLRPCServer, SimpleHTTPServer, SimpleXMLRPCServer, 
SocketServer, cgi, ielib, ftplib, httplib, imaplib, macurl2path, mimetypes, 
nntplib, poplib, robotparser, smtplib, and urllib. socket passes with 
modifications.

Bugfix: Threads now properly exit when SystemExit is raised
Bugfix: IP.Compiler.NewTypeMaker now handles types correctly when generating 
properties
Bugfix: CodePlex 446 - Compiler throw on invalid syntax
Add new IronPythonWindow.exe for launching Windows apps w/o console
Moved many classes to be private to IronPython, refactored namespaces
Bugfix: 357 - Subclassing dict, not overriding init, and passing k/w args throws
Bugfix: 424 - Implement DynamicType clr.GetPythonType(Type t)
Bugfix: 439 - System.Array.Resize throws IndexError
Bugfix: Fix __slots__ / __weakref__ / __dict__ issue where we pick the wrong 
base type
More .NET primitive type operations clean-up & test coverage
Support for 2.5 PEP 308 (enabled w/ -X:Python25)
Bugfix: PreParseRegex incorrectly identifying the '?' in r"\(? " as an 
extension instead of 0 or 1 left parens
Bugfix: ?# is not being recognized as an extension by PreParseRegEx
Bugfix: a list is equal to empty string and other sequence types, eg [3, 5] == 
''


_______________________________________________
users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to