Dino Viehland wrote: > Cool, I suspect it'll work fine on your laptop. Do you have Orcas beta 2 > installed or something else? >
Sorry - have to try this on the laptop tomorrow, time for bed now. On this machine I have Visual Studio 2008 beta 2. Michael > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael Foord > Sent: Friday, November 02, 2007 4:33 PM > To: Discussion of IronPython > Subject: Re: [IronPython] [python] Re: Embedding CPython Messes with the > IronPython 2 Import Mechanism > > Dino Viehland wrote: > >> Are you running on a beta of Orcas? It could be an Orcas bug. >> >> > I have the Orcas beta installed (which I guess means yes). > > I don't have it on my laptop - I can try with that. > > Michael > > >> -----Original Message----- >> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dino Viehland >> Sent: Friday, November 02, 2007 4:12 PM >> To: Discussion of IronPython >> Subject: Re: [IronPython] [python] Re: Embedding CPython Messes with the >> IronPython 2 Import Mechanism >> >> I'm not sure what's going on here - I've pinged the CLR dev who owns this >> feature. In some patches (at some point) post v2.0.50727.42 there were some >> changes made to Ref.Emit w.r.t. ModuleBuilder's vs. Modules - this looks >> like it could be a regression related to those changes. But I don't >> understand the big picture here. >> >> As a work around you might be able to run in -X:GenerateAsSnippets mode. In >> v2.0 this results in about a 10% perf degrade (last time I measured at >> least, and this was against Pystone) but stops us from generating types to >> create modules. So ultimately we won't create an assembly and won't go down >> this code path. Of course, that may just be putting off the inevitable. >> >> Another possiblity might be grepping Python.NET to see if they're doing >> anything weird w/ Module or Assembly objects, although I wouldn't know >> exactly what to look for. >> >> -----Original Message----- >> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael Foord >> Sent: Friday, November 02, 2007 3:33 PM >> To: Discussion of IronPython >> Subject: Re: [IronPython] [python] Re: Embedding CPython Messes with the >> IronPython 2 Import Mechanism >> >> You asked for it. :-) >> >> IronPython console: IronPython 2.0A5 (2.0.11011.00) on .NET 2.0.50727.1378 >> Copyright (c) Microsoft Corporation. All rights reserved. >> >>> import clr >> >>> clr.AddReference('Python.Runtime') >> >>> from Python.Runtime import PythonEngine >> >>> engine = PythonEngine() >> >>> engine.Initialize() >> >>> import xyzz >> Unable to cast object of type 'System.Reflection.Module' to type >> 'System.Reflect >> ion.Emit.ModuleBuilder'. >> at System.Reflection.Emit.AssemblyBuilderData.GetInMemoryAssemblyModule() >> at System.AppDomain.InternalDefineDynamicAssembly(AssemblyName name, >> Assembly >> BuilderAccess access, String dir, Evidence evidence, PermissionSet >> requiredPermi >> ssions, PermissionSet optionalPermissions, PermissionSet >> refusedPermissions, Sta >> ckCrawlMark& stackMark, IEnumerable`1 unsafeAssemblyAttributes) >> at System.AppDomain.DefineDynamicAssembly(AssemblyName name, >> AssemblyBuilderA >> ccess access) >> at Microsoft.Scripting.Generation.AssemblyGen..ctor(String >> moduleName, String >> outDir, String outFile, AssemblyGenAttributes generationAttributes, >> PortableExe >> cutableKinds peKind, ImageFileMachine machine) >> at >> Microsoft.Scripting.Generation.StaticFieldModuleGenerator.CreateModuleAsse >> mbly(ScriptCode scriptCode) >> at >> Microsoft.Scripting.Generation.StaticFieldModuleGenerator.CreateSlotFactor >> y(ScriptCode scriptCode) >> at >> Microsoft.Scripting.Generation.OptimizedModuleGenerator.CreateStorageAlloc >> ator(ScriptCode scriptCode) >> at >> Microsoft.Scripting.Generation.OptimizedModuleGenerator.GenerateScriptMeth >> ods() >> at >> Microsoft.Scripting.Generation.OptimizedModuleGenerator.GenerateScope() >> at Microsoft.Scripting.ScriptDomainManager.CreateModule(String name, >> ScriptMo >> duleKind kind, Scope scope, ScriptCode[] scriptCodes) >> at Microsoft.Scripting.ScriptDomainManager.CompileModule(String name, >> ScriptM >> oduleKind kind, Scope scope, CompilerOptions options, ErrorSink >> errorSink, Sourc >> eUnit[] sourceUnits) >> at Microsoft.Scripting.ScriptDomainManager.CompileModule(String name, >> SourceU >> nit sourceUnit) >> at IronPython.Runtime.Importer.LoadModuleFromSource(CodeContext >> context, Stri >> ng name, String path) >> at IronPython.Runtime.Importer.ImportFromPath(CodeContext context, >> String nam >> e, String fullName, List path) >> at IronPython.Runtime.Importer.ImportTopAbsolute(CodeContext context, >> String >> name) >> at IronPython.Runtime.Importer.ImportModule(CodeContext context, >> String modNa >> me, Boolean bottom) >> at IronPython.Runtime.Builtin.__import__(CodeContext context, String >> name, Ob >> ject globals, Object locals, Object fromList) >> at _stub_##2(Object[] , DynamicSite`6 , CodeContext , Object , String >> , IAttr >> ibutesCollection , IAttributesCollection , PythonTuple ) >> at Microsoft.Scripting.Actions.DynamicSite`6.Invoke(CodeContext >> context, T0 a >> rg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4) >> at IronPython.Runtime.Operations.PythonOps.ImportTop(CodeContext >> context, Str >> ing fullName) >> at ##18(Object[] , CodeContext ) >> at Microsoft.Scripting.ScriptCode.Run(CodeContext codeContext, >> Boolean tryEva >> luate) >> at Microsoft.Scripting.ScriptCode.Run(ScriptModule module) >> at Microsoft.Scripting.Hosting.CompiledCode.Evaluate(IScriptModule >> module) >> at Microsoft.Scripting.Hosting.ScriptEngine.ExecuteCommand(String >> code, IScri >> ptModule module) >> at Microsoft.Scripting.Shell.CommandLine.RunOneInteraction() >> at Microsoft.Scripting.Shell.CommandLine.TryInteractiveAction() >> at IronPython.Hosting.PythonCommandLine.TryInteractiveAction() >> at Microsoft.Scripting.Shell.CommandLine.RunInteractiveLoop() >> TypeError: Unable to cast object of type 'System.Reflection.Module' to >> type 'Sys >> tem.Reflection.Emit.ModuleBuilder'. >> >> >>> >> >> >> Dino Viehland wrote: >> >> >>> Could you run with -X:ExceptionDetail and report back the stack trace? >>> That'll let us know where the exception is actually coming from. >>> >>> -----Original Message----- >>> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael Foord >>> Sent: Friday, November 02, 2007 3:25 PM >>> To: Discussion of IronPython >>> Subject: [IronPython] Embedding CPython Messes with the IronPython 2 Import >>> Mechanism >>> >>> Hello Guys, >>> >>> Not sure what is going on here, nor whether it indicates a bug in >>> IronPython, but it is certainly odd. Loading a CPython interpreter >>> through the Python.NET assembly seems to change the IronPython (2a5) >>> import machinery. >>> >>> I have a test module 'xyzz.py' that has an unused name 'wibble'. >>> Unsurprisingly, attempting to import this into IronPython 2.0a5 raises a >>> name error: >>> >>> IronPython console: IronPython 2.0A5 (2.0.11011.00) on .NET 2.0.50727.1378 >>> Copyright (c) Microsoft Corporation. All rights reserved. >>> >>> import xyzz >>> Traceback (most recent call last): >>> File , line 0, in ##7 >>> File , line 0, in _stub_##2 >>> File C:\compile\cext\trunk\cext\xyzz.py, line 1, in Initialize >>> NameError: name 'wibble' is not defined >>> >>> >>> Executing the following code, (using the 'Python.Runtime' assembly from >>> Python.NET with Python 2.4): >>> >>> IronPython console: IronPython 2.0A5 (2.0.11011.00) on .NET 2.0.50727.1378 >>> Copyright (c) Microsoft Corporation. All rights reserved. >>> >>> import clr >>> >>> clr.AddReference('Python.Runtime') >>> >>> >>> >>> from Python.Runtime import PythonEngine >>> >>> engine = PythonEngine() >>> >>> engine.Initialize() >>> >>> >>> >>> import xyzz >>> Traceback (most recent call last): >>> File , line 0, in ##18 >>> File , line 0, in _stub_##2 >>> File mscorlib, line unknown, in DefineDynamicAssembly >>> File mscorlib, line unknown, in InternalDefineDynamicAssembly >>> TypeError: Unable to cast object of type 'System.Reflection.Module' to >>> type 'Sys >>> tem.Reflection.Emit.ModuleBuilder'. >>> >>> Just importing the 'PythonEngine' isn't enough. The problem only happens >>> if the PythonEngine is instantiated and initialized. >>> >>> All the best, >>> >>> >>> Michael >>> >>> >>> _______________________________________________ >>> Users mailing list >>> Users@lists.ironpython.com >>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >>> _______________________________________________ >>> Users mailing list >>> Users@lists.ironpython.com >>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >>> >>> >>> >>> >> _______________________________________________ >> Users mailing list >> Users@lists.ironpython.com >> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >> _______________________________________________ >> Users mailing list >> Users@lists.ironpython.com >> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >> _______________________________________________ >> Users mailing list >> Users@lists.ironpython.com >> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >> >> >> > > _______________________________________________ > Users mailing list > Users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > _______________________________________________ > Users mailing list > Users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > _______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com