Re: [IronPython] [python] Re: Embedding CPython Messes with the IronPython 2 Import Mechanism

2007-11-02 Thread Michael Foord
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 

Re: [IronPython] [python] Re: Embedding CPython Messes with the IronPython 2 Import Mechanism

2007-11-02 Thread Dino Viehland
Are you running on a beta of Orcas?  It could be an Orcas bug.

-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

Re: [IronPython] [python] Re: Embedding CPython Messes with the IronPython 2 Import Mechanism

2007-11-02 Thread Michael Foord
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

Re: [IronPython] [python] Re: Embedding CPython Messes with the IronPython 2 Import Mechanism

2007-11-02 Thread Dino Viehland
Cool, I suspect it'll work fine on your laptop.  Do you have Orcas beta 2 
installed or something else?

-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

Re: [IronPython] [python] Re: Embedding CPython Messes with the IronPython 2 Import Mechanism

2007-11-02 Thread Michael Foord
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