IronPython 1.0 - Bugs or Features?
dinov at exchange.microsoft.com
Thu Sep 7 01:16:03 CEST 2006
Yes, IronPython generates IL which the JIT will then compile when the method is invoked - so our parse/compile time is slower due to this. We've experimented w/ a fully interpreted mode (which can be enabled with -X:FastEval) where we walk the generated AST instead of compiling it, but that mode doesn't necessarily pass all the tests (and would get worse performance for long running code).
There are other issues w/ startup time as well besides this though that we need to fix (for example we load all the types in mscorlib & System before we drop you into the interpreter, which is a lot of types to be loading...). I suspect that for a small code snippet it's issues like these that are the most noticeable.
From: python-list-bounces+dinov=microsoft.com at python.org [mailto:python-list-bounces+dinov=microsoft.com at python.org] On Behalf Of Super Spinner
Sent: Wednesday, September 06, 2006 4:03 PM
To: python-list at python.org
Subject: Re: IronPython 1.0 - Bugs or Features?
Claudio Grondi wrote:
> tjreedy wrote:
> > "Claudio Grondi" <claudio.grondi at freenet.de> wrote in message
> > news:edn23m$s6$1 at newsreader2.netcologne.de...
> >>I also erroneously assumed, that the first problem was detected
> >>during parsing ... so, by the way: how can I distinguish an error
> >>raised while parsing the code and an error raised when actually running the code?
> > Parsing detects and reports syntax errors and maybe something else
> > if you use non-ascii chars without matching coding cookie. Other
> > errors are runtime.
> Let's consider
> print '"Data ê"'
> In CPython 2.4.2 there is in case of non-ascii character:
> sys:1: DeprecationWarning: Non-ASCII character '\xea' in file
> C:\IronPython-1.0-BugsOrFeatures.py on line 3, but no encoding
> declared; see http://www.python.org/peps/pep-0263.html for details
> "Data♀♂ Û"
> IronPython does not raise any warning and outputs:
> "Data♀♂ ?"
> So it seems, that IronPython is not that close to CPython as I have it
> It takes much more time to run this above simple script in IronPython
> as in CPython - it feels as IronPython were extremely busy with
> starting itself.
> Claudio Grondi
IronPython is a .NET language, so does that mean that it invokes the JIT before running actual code? If so, then "simple short scripts"
would take longer with IronPython "busy starting itself" loading .NET and invoking the JIT. This effect would be less noticable, the longer the program is. But I'm just guessing; I've not used IronPython.
More information about the Python-list