Just out of curiosity, what's the perf like when you utilize the "-X:Interpret" flag?
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Christian Muirhead Sent: Friday, June 20, 2008 4:57 AM To: Discussion of IronPython Subject: [IronPython] upgrading to ip 2b3 in Resolver One Hi guys - I mentioned the other day that I was doing some work towards us porting Resolver One to IP 2b3. I've got it working (mostly), but hit some bumps along the way that I figured it would be worth mentioning here: * As I noted before, passing in arguments to the hosted engine was a bit obscure (although it sounds like the API for this is a work in progress). * Another thing I saw here was that you can't set __name__ in a scope when running a script loaded from a source file - that is, this: ScriptSource source = engine.CreateScriptSourceFromFile("test.py"); ScriptScope scope = e.CreateScope(); scope.SetVariable("__name__", "__main__"); source.Execute(scope); when test.py contains print __name__ prints "test" * Can't assign to an instance's __doc__ attribute - we use this for our documentation generation in one place. (This works in IP 1.1.1, and CPython.) Shouldn't be hard to work around in the meantime. * We get deprecation warnings when we access protected members of C# classes from IP subclasses - I can understand this for code outside of subclasses (which shouldn't work but does in IP 1.1.1), but it would be nice if it still worked from code in a subclass. (This would be easy to work around for us - the protected members are all on dialogs we define in C#, so we can change them to public if we need to.) D'oh - I was just about to tell you about a weird thing I had seen where calling ScriptScope.SetVariable(name, value) when value is None fails - it dispatches to the (string, ObjectHandle) overload for some reason. Then I realised that the problem was that I was trying to use the C# API from IP, when I could just call setattr with the scope instead. That works fine. (And now I remember the .Overloads property to select between them.) Now that it's working, the performance is about 4x slower than under 1.1.1. I'm in the process of drilling down into that for specific operations that are drastically different - hopefully they'll be nicely isolated. Thanks, Christian -- Christian Muirhead Resolver Systems [EMAIL PROTECTED] We're hiring! http://www.resolversystems.com/jobs/ Resolver Systems Ltd 17a Clerkenwell Road, London EC1M 5RD, UK VAT No.: GB 893 5643 79 Registered in England and Wales as company number 5467329. Registered address: 843 Finchley Road, London NW11 8NA, UK _______________________________________________ Users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com _______________________________________________ Users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
