IronPython

This release focuses primarily on fixing bugs resolving around compatibility with CPython, finalizing the public API surface, and improving the new method binder. There’s also some significant performance improvements as well as the runtime support required to use the pickle module. One of the most significant changes is the final updates to the hosting API. The hosting APIs have removed the concept of a ModuleScope and replaced it with a normal dictionary.

You can download the IronPython Beta 9 from the CodePlex IP download page.

An extended list of updates, bug fixes, etc… from Dino Viehland’s announcement made a few minutes ago to the IronPython mailing list is copied below,

Hello IronPython Community,

We have just released IronPython 1.0 Beta 9. This release focuses primarily on fixing bugs resolving around compatibility with CPython, finalizing the public API surface, and improving the new method binder. There’s also some significant performance improvements as well as the runtime support required to use the pickle module.
One of the most significant changes is the final updates to the hosting API. The hosting APIs have removed the concept of a ModuleScope and replaced it with a normal dictionary. Here is a sample of how you can use the new hosting APIs:

EngineOptions engineOptions = new EngineOptions();
engineOptions.ShowClrExceptions = true; // do some customization
PythonEngine engine = new PythonEngine(engineOptions);
Dictionary globals = new Dictionary();
globals[”x”] = 1; // set a global variable
EngineModule module = engine.CreateModule(”MyModule”, globals, true);
module.Globals[”y”] = 2; // set another global variable
Dictionary locals = new Dictionary();
locals[”z”] = 3; // set a local variable
engine.Compile(”result = x+y+z”).Execute(module, locals);
Console.WriteLine(engine.EvaluateAs(”result”, module, locals));

We’ve also added new PythonEngine.CreateMethod and PythonEngine.CreateLambda methods. These allow you to bind either a set of Python statements or a single expression to a delegate. The parameters of the delegate are exposed to the Python code, and the delegate can be re-bound to different modules at runtime providing a quick way to provide different inputs to your cached Python code.

Finally we’ve introduced a change to the clr.Reference type for passing values to reference and out parameters. This type is now a generic type that you instantiate like any other (e.g. clr.Reference[int]). It contains a Value property that is strongly typed and can be used for picking overloads amongst multiple out/ref parameters.

You can download the release from: http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=IronPython&ReleaseId=97

We’d like to thank everyone in the community for your bug reports and suggestions that helped make this a better release: Andrzej Krzywda, Brandon Furtwangler, cbrochu, Davy Mitchell, Greg Chapman, Paparipote, JesseK, Jonathan Jacobs, Jörgen Stenarson, Keith J. Farmer, Michael Foord, mfenniak, py_sunil, Seo Sanghyeon, sharerj, Syzmon Kobalczyk.

Thanks and keep in touch,
The IronPython Team