Export to GitHub

ironclad - issue #34

Type 'IronPython.Runtime.Types.PythonType' cannot be marshaled as an unmanaged structure; no meaningful size or offset can be computed.


Posted on May 22, 2015 by Swift Panda

What steps will reproduce the problem? 1. Write this code in C#:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

using IronPython.Hosting;

namespace IronPythonTalonTest { class Program { static void Main(string[] args) { var pyEngine = Python.CreateEngine(); List<string> m_searchPaths = new List<string>(); m_searchPaths.Add(AppDomain.CurrentDomain.BaseDirectory + @"\talon-master"); m_searchPaths.Add(AppDomain.CurrentDomain.BaseDirectory + @"\Lib"); m_searchPaths.Add(@"D:\Downloads\ironclad-v2.6.0rc1-bin"); m_searchPaths.Add(@"D:\Downloads\regex-2015.05.10\"); dynamic scope = pyEngine.CreateScope(); pyEngine.SetSearchPaths(m_searchPaths); try { pyEngine.ExecuteFile(@"C:\Users\Zoneh\Documents\Visual Studio 2013\Projects\IronPythonTalonTest\IronPythonTalonTest\bin\Debug\talon-master\build\lib\test_script.py"); } catch (Exception ex) { var exc = ex; } } } }

  1. Write this code in test_script.py:

import ironclad import talon from talon import quotations talon.init() text = """Reply -----Original Message----- Quote""" reply = quotations.extract_from(text, 'text/plain') reply = quotations.extract_from_plain(text)

3. Run the code in C# What is the expected output? What do you see instead?

I expect to get a variable in my dynamic scope reply that has original message turned down.

Instead i get an exception in C#:

Type 'IronPython.Runtime.Types.PythonType' cannot be marshaled as an unmanaged structure; no meaningful size or offset can be computed.

What version of the product are you using? On what operating system? Latest 2.6.0rc1 IronClad. Windows 8.1 64bit

This is the stack trace:

at System.Runtime.InteropServices.Marshal.SizeOfHelper(Type t, Boolean throwIfNotMarshalable) at System.Runtime.InteropServices.Marshal.SizeOf(Object structure) at System.Runtime.InteropServices.Marshal.SizeOf[T](T structure) at Microsoft.Scripting.Interpreter.FuncCallInstruction2.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.LightLambda.Run4[T0,T1,T2,T3,TRet](T0 arg0, T1 arg1, T2 arg2, T3 arg3) at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2) at Microsoft.Scripting.Interpreter.FuncCallInstruction6.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.LightLambda.Run4[T0,T1,T2,T3,TRet](T0 arg0, T1 arg1, T2 arg2, T3 arg3) at IronPython.Compiler.Ast.CallExpression.Invoke1Instruction.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.LightLambda.Run1[T0,TRet](T0 arg0) at IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Scope scope) at IronPython.Compiler.RuntimeScriptCode.Run(Scope scope) at IronPython.Runtime.PythonContext.InitializeModule(String fileName, ModuleContext moduleContext, ScriptCode scriptCode, ModuleOptions options) at IronPython.Runtime.PythonContext.CompileModule(String fileName, String moduleName, SourceUnit sourceCode, ModuleOptions options, ScriptCode& scriptCode) at IronPython.Runtime.PythonContext.CompileModule(String fileName, String moduleName, SourceUnit sourceCode, ModuleOptions options) at IronPython.Runtime.Importer.LoadFromSourceUnit(CodeContext context, SourceUnit sourceCode, String name, String path) at IronPython.Runtime.Importer.LoadModuleFromSource(CodeContext context, String name, String path) at IronPython.Runtime.Importer.LoadPackageFromSource(CodeContext context, String name, String path) at IronPython.Runtime.Importer.LoadFromDisk(CodeContext context, String name, String fullName, String str) at IronPython.Runtime.Importer.ImportFromPathHook(CodeContext context, String name, String fullName, List path, Func5 defaultLoader) at IronPython.Runtime.Importer.ImportFromPath(CodeContext context, String name, String fullName, List path) at IronPython.Runtime.Importer.ImportTopAbsolute(CodeContext context, String name) at IronPython.Runtime.Importer.ImportModule(CodeContext context, Object globals, String modName, Boolean bottom, Int32 level) at IronPython.Modules.Builtin.__import__(CodeContext context, String name, Object globals, Object locals, Object fromlist, Int32 level) at Microsoft.Scripting.Interpreter.FuncCallInstruction7.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.LightLambda.Run7[T0,T1,T2,T3,T4,T5,T6,TRet](T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6) at System.Dynamic.UpdateDelegates.UpdateAndExecute6[T0,T1,T2,T3,T4,T5,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5) at IronPython.Runtime.Importer.ImportLightThrow(CodeContext context, String fullName, PythonTuple from, Int32 level) at IronPython.Runtime.Operations.PythonOps.ImportTop(CodeContext context, String fullName, Int32 level) at Microsoft.Scripting.Interpreter.FuncCallInstruction`4.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.LightLambda.Run2[T0,T1,TRet](T0 arg0, T1 arg1) at IronPython.Compiler.PythonScriptCode.RunWorker(CodeContext ctx) at IronPython.Compiler.PythonScriptCode.Run(Scope scope) at IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Scope scope) at IronPython.Compiler.RuntimeScriptCode.Run(Scope scope) at Microsoft.Scripting.SourceUnit.Execute(Scope scope, ErrorSink errorSink) at Microsoft.Scripting.SourceUnit.Execute(Scope scope) at Microsoft.Scripting.Hosting.ScriptSource.Execute(ScriptScope scope) at Microsoft.Scripting.Hosting.ScriptEngine.ExecuteFile(String path, ScriptScope scope) at Microsoft.Scripting.Hosting.ScriptEngine.ExecuteFile(String path) at IronPythonTalonTest.Program.Main(String[] args) in c:\Users\Zoneh\Documents\Visual Studio 2013\Projects\IronPythonTalonTest\IronPythonTalonTest\Program.cs:line 25

Status: New

Labels:
Type-Defect Priority-Medium