[IronPython] Announcing IronPython 2.6.1 RC1

Martin (gzlist) gzlist at googlemail.com
Thu Feb 11 01:09:24 CET 2010


On 10/02/2010, David DiCato <ddicato at microsoft.com> wrote:
>
> In addition, we've made a substantial improvement in import time. Not only
> does this reduce startup time, but can speed up the importing of large,
> definition-heavy modules by up to 50%.

This is an good improvement, has reduced the running time of a minimal
test suite I use from 45 seconds to 30 seconds.

> IronPython 2.6.1 RC1 includes fixes for well over 50 bugs, large and small.

Unfortunately, testing this it seems that the support for
os.O_TEMPORARY that Dino implemented is not sufficient to solve the
tempfile problem:
<http://ironpython.codeplex.com/WorkItem/View.aspx?WorkItemId=23936>

The remaining issue seems to be that os.fdopen doesn't take
'ownership' of the underlying file. So, though explicitly calling
'close' on the file it returns works, it will never get collected, so
tempfiles still pile up:

IronPython 2.6.1 (2.6.10920.0) on .NET 2.0.50727.3082
Type "help", "copyright", "credits" or "license" for more information.
>>> import os, gc
>>> f = file("test", "w")
>>> del f
>>> gc.collect()
217732
>>> os.remove("test") # this works fine, the file has been closed
>>> fd = os.open("test", os.O_WRONLY | os.O_CREAT)
>>> f = os.fdopen(fd, "w")
>>> del f
>>> gc.collect()
93588
>>> os.remove("test") # this fails, the fd is keeping the file alive
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
WindowsError: [Errno 13] The process cannot access the file because it
is being used by another process
>>> os.close(fd)
>>> os.remove("test")

Don't know how much work that'd be to resolve, but would be good to
get it in 2.6.2 at least.

Martin



More information about the Ironpython-users mailing list