Posts

Showing posts with the label ironclad

Catching up with Jeff Hardy and Django on IronPython

Jeff Hardy is an IronPython MVP and a Python community member who has invested a lot of time in getting standard Python libraries available for IronPython. Some of his recent work has been with both Django and the zlib module . It's been a while since we've reported on his work, so this post gets us up to date with what Jeff has been working on: IronPython.Zlib The zlib module is a C extension for Python. Because it is in the Python standard library it is used by many other libraries, like setuptools, making it an important part of the Python infrastructure. Unfortunately not all of the standard library C extensions have been ported to IronPython. The problem of C extensions is one of the major drawbacks of alternative implementations of Python; both Jython and PyPy have the same problem. Even if your code is 'pure-Python' it may not run on alternative implementations if it uses C extensions. For IronPython one solution is to use Ironclad , an open source project cr...

Ironclad 2.6 and Spare Batteries for IronPython

Ironclad is a compatibility layer that allows you to use Python C extensions with IronPython. Ironclad is open source and development has been funded by Resolver Systems and it is integrated into Resolver One to allow you to use Numpy within Resolver One spreadsheets . Ironclad works by implementing the Python C API in a combination of C#, C and Python. Although Ironclad only works on 32 bit Windows at the moment the implementation has been done in such a way that porting it to run on other platforms (with Mono) and 64 bit would be relatively easy. Patches welcomed! Recent development has changed the implementation to use gcc-xml to access and transform the Python C source code. By reusing as much of the original implementation as possible it minimizes the amount that needs to be 'hand-coded'. It leaves only a (moderately) small core that would need to be reimplemented if Jython, PyPy (or other implementations) wanted to reuse Ironclad. The C# would need to be re-coded ...

Numerical Computing in IronPython (with and without Ironclad)

John Cook posted a couple of entries on getting started with IronPython, which I linked to in the last IronPython-URLs selection post . Since he made those entries he's been posting a bit more on IronPython, and specifically numerical computing with Python and IronPython. IronPython Article on Codeplex Computing Normal Probabilities in IronPython John has written an article on CodeProject showing standalone code for computing normal probabilities in IronPython. The algorithm is based on formula 7.1.26 from Handbook of Mathematical Functions by Abramowitz and Stegun, affectionately known as "A&S." The algorithm given in A&S is for computing the error function erf(x) . The error function is related to the the function Phi by a simple transformation. (The corresponding function in SciPy is scipy.special.erf .) Because this code has no dependencies other than the standard math module, it should run anywhere Python runs. It has been tested on Python 2.5, Python 3.0, an...

Ironclad 0.8.1 Released

Following hot on the heels of the 0.8 release, William has managed another update to Ironclad . Ironclad is an open source project by Resolver Systems which reimplements the Python C API to allow you to use Python C extensions from IronPython. He posted the following announcement: I'm fairly pleased to announce the release of Ironclad v0.8.1; it's not an enormous technical leap above v0.8, but it does now enables you to import and use SciPy and Matplotlib with IronPython on Win32 (with some restrictions; see project page). Downloads of the source and binaries, plus more details, are available at the Ironclad Google Code Project Page -- please do play with it, and let me know if you have any problems. It's a fairly momentous release; the reason that William is only fairly pleased maybe because the release has been eclipsed by him becoming a father! Congratulations William. The list of C extensions that have now been tried with Ironclad has now been extended to: numpy 1.2 ...

Ironclad Screencast and NumPy in Resolver One

Following on from the release of Ironclad 0.8 it is now possible to run through the NumPy tutorial at the IronPython interactive interpreter. Resolver Systems also has exciting news about using NumPy inside the spreadsheet. We have a four minute screencast showing off both of these things: NumPy integration in Resolver One using Ironclad The screencast demonstrates using NumPy arrays of up to a million numbers inside the spreadsheet grid, with impressive performance despite being early days in the integration. For two dimensional arrays the grid is a natural representation; and multi-dimensional arrays can be sliced through the user interface. The spreadsheet part of the screencast uses the new beta version of Resolver One, which is built on IronPython 2: Do you want to try Resolver One 1.4 Beta? New features in version 1.4 include: We’ve moved over to IronPython 2.0. This brings you some immediate advantages, including bugfixes to the core scripting language, new supported core lib...

Ironclad 0.8 Released: Python C Extensions from IronPython

Ironclad is a project by Resolver Systems to allow the use of Python C extensions from IronPython. Ironclad provides a compatibility layer for the Python C API, allowing extensions to be imported from IronPython. The goal is to allow the use of Numpy within Resolver One spreadsheets , but Ironclad is open source and available under the MIT license. The core developer of Ironclad, William Reade, has just announced the release of Ironclad 0.8. This is an important release as many extension libraries are now usable with Ironclad. In fact now you can run through the whole Numpy tutorial using the IronPython interactive interpreter! As usual, sources and windows binaries are available from the project page: Ironclad Project Page I'm delighted to announce the release of Ironclad v0.8 -- the all-singing, all-dancing CPython API compatibility layer for IronPython -- available now from the Ironclad Project Page . Notable improvements over the last release include: Ironclad is now a neat...

Ironclad 0.7 Released

Following swiftly on heels of the IronPython 2 RC 2 and DLR 0.9 is a new release of Ironclad. Ironclad is an Open Source project by Resolver Systems , and is an implementation of the Python C API in C#. It allows you to use Python C extensions from IronPython, and our goal is to be able to use Numpy within Resolver One spreadsheets. The latest release is version 0.7 and includes several major advances since the last release. Ironclad 0.7 Release Announcement Download Windows Binaries for Release 0.7 Ironclad Discussion Group Major advances in the release include: Huge chunks of numpy can now be imported and used Lots of the numpy tests now pass (from core, fft, lib, linalg and random subpackages) - the distribution includes a test runner that runs the tests we have enabled so far Major performance improvements (several orders of magnitude faster in some areas) Ironclad works with IronPython 2 RC 2 and it no longer creates a separate Python engine, nor does it break the importing of .N...

Ironclad 0.6 Released and numpy in Resolver One

Since I last updated this blog (yes I've fallen behind in the last couple of weeks - I'll catch up soon) a lot has happened with Resolver One . Resolver One is a spreadsheet development environment created by Resolver Systems and built on IronPython. Version 1.2 was released not long ago. This includes several major new features, including one called ' RunWorkbook ' that greatly helps with our goal of making spreadsheet system design modular, maintainable and resusable. Part of our plan for Resolver One includes being able to use numpy (a C extension). At PyCon UK William Reade demonstrated working with numpy arrays containing one million items from inside Resolver One. This was using an experimental version of Resolver One ported to run on IronPython 2, along with Ironclad - our open source project that allows you to use Python C extensions from IronPython. The Resolver Systems blog includes links to the slides for Giles Thomas's PyCon UK talk and William's ...

IronPython Projects and Ironclad on Mono

There have been a few new projects using IronPython announced recently, plus Seo has been working on getting Ironclad to run on Mono. Ironclad Ironclad is a project to get Python C extensions working with IronPython. Although the project was created with a cross-platform implementation in mind, it is currently Windows only. Seo Sanghyeon has just posted the start of a patch for Mono compatibility to the Ironclad mailing list . He is hoping that the Mono port will pass the Ironclad test suite within a week. sysevlog.py More of a script than a project, but still cool. It receives Unix syslog packets and store them as Windows eventlog - in 44 lines of IronPython. Blog entry (Japanese) IronPython (2) Script mysecs Joseph Jude has started an IronPython project called 'mysecs' to track how much time he spends in different applications. It is a desktop and web web applications to " measure/analyse time spent in a day ": mysecs Google Code Homepage ryPDF Report Tools Ryan ...

Ironclad 0.5 Released - Use numpy from IronPython

Ironclad is an Open Source project created by Resolver Systems to allow you to use Python C extensions from IronPython. It is basically a reimplementation of the Python C API in C#. William Reade, the main developer of Ironclad, has just announced the release of version 0.5. Ironclad 0.5 Announcement Ironclad Project Homepage Download Ironclad Source and Windows Binaries Ironclad Mailing List The exciting thing is that with the latest release (and commenting out a single line in numpy) you can now import numpy from Ironpython and create and use integer arrays! There is still a lot of work to do, but this is great progress. From the announcement: Our original goal for 0.5 was to import numpy, from IronPython, and do something with it. With one monstrous caveat, we have reached that goal; the problem is that you need to comment out line 532 of numpy.core.numerictypes.py before it'll import. That line reads " _unicodesize = array('u','U1').itemsize ", and ...

New Releases: Resolver One & Ironclad

Both Resolver One and the Ironclad project have had new releases in the last week. Resolver One 1.1 Released - performance & memory use improvements, new features and bugfixes for the IronPython spreadsheet development environment Ironclad 0.4 Released - Ironclad allows you to use C extensions for CPython within IronPython. This release includes an import hook that allows you to seamlessly import C extensions. The next step is to get Numpy to import!

Ironclad 0.3 Released (Use CPython Extensions from IronPython)

William Reade of Resolver Systems has announced the release of Ironclad 0.3. Ironclad is a project to allow you to use CPython extensions from IronPython, and the improvement in this release is proper garbage collection for " managed objects of unmanaged types " (objects that come from a C extension!). This involves integrating the reference counting that the C extensions use with .NET garbage collection. You can read about the project, and a high level overview of the new object lifetime management system on my blog: Ironclad 0.3 Released (Use CPython Extensions from IronPython)

Ironclad 0.1 Released:

William Reade (and an able team of companions from Resolver Systems ) have been working on a project to allow you to use Python C extensions from IronPython. The first release is now available (still very much a work in progress) as a google code project , and you can read the details on my blog: Ironclad 0.1 released: Python C Extensions for IronPython