Jameson "Chema" Quinn wrote: > > > I suggest taking a look at PyPy for Python, which will dynamic > recompile > Python to native code and likely give some good performance benefits. I > really can't stand JIT compilation and would prefer something that takes > advantage of Mono's own facilities, to centralize the effort in the JIT > at least (Mono has nice stuff), but IronPython is Microsoft Permissive > License which is not OSI approved. > > > Has anyone looked at Psyco on the XO? The point is, no generic mono JIT > is going to be as smart about guessing the 95% case for Python, as > something written specifically for Python. >
The CIL dynamic re-compiler has a well-developed optimizer and a bunch of other stuff, including an awesome garbage collector. The newer version use a compacting garbage collector IIRC; though Python might use reference counting internally (it might be better that way, but consider the interpreter itself would be in CIL and use reflection ...). It's basically Python -> CIL -> CIL optimizer, not Python -> CIL -> C# optimizer. Granted, yes, an optimizer aware of specific language ABI specifics (like classes for C++, functions and structures for C, ect) can pre-optimize and then let the lower level optimizer re-optimize the code better (I think that's how GCC does it, optimizes a Gimple tree based on language and then does a general optimization based on hardware); but a CIL reflection compiler could compile Python into an internal tree, optimize it, emit optimized CIL, and let Mono generate optimized x86 code (as in, optimize the generated x86 code). > Disclaimer: I have no experience to back this up. I have fuzzy understanding of compiler internals, nothing formal and nothing really great. Ask a gcc guy and a Mono guy. > > Jameson -- Bring back the Firefox plushy! http://digg.com/linux_unix/Is_the_Firefox_plush_gone_for_good https://bugzilla.mozilla.org/show_bug.cgi?id=322367 _______________________________________________ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel