Dino Viehland wrote: > Cool, I suspect it'll work fine on your laptop. Do you have Orcas beta 2 > installed or something else? >
Ha, I *do* have VS 2008 on my laptop, but the code *does* work on Vista on my Mac (running under parallels) so looks like it is an Orcas issue. Unfortunately this same issue stops the new import hook (that allows you to import CPython modules from IronPython - announcement to follow shortly) from working at all. :-) Michael http://www.manning.com/foord > -----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