Re: [IronPython] -X:EnableProfiler and DLR hosting API
Thank you for the answer :) I found this article which tells me that a script can now enable the profiler from within itself: http://blogs.msdn.com/curth/archive/2009/04/11/profiler-part-ii-poor-man-s-code-coverage.aspx http://blogs.msdn.com/curth/archive/2009/04/11/profiler-part-ii-poor-man-s-code-coverage.aspxSo I used that method instead, like this: def begin_profiler(): import clr clr.EnableProfiler(True) clr.ClearProfilerData() def end_profiler(): ticks_to_ms = 0.1 clr.EnableProfiler(False) # show top 20 sorted by exclusive time for p in itertools.islice(sorted(filter(lambda item: item.Calls != 0, clr.GetProfilerData(True)), key=lambda item: -item.InclusiveTime), 20): print '%s\n%f\t%f\t%d' % (p.Name, p.InclusiveTime * ticks_to_ms, p.ExclusiveTime * ticks_to_ms, p.Calls) Seems to work very well :) /Mads ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
Re: [IronPython] FW: App_Script Problem in latest IronPython for ASP.Net
I've reproduced this issue. Microsoft.Web.Scripting seems to be doing the right thing ... detecting changes in App_Script and calling runtime.ExecuteFile(path) for the files that changed. However, that's not having any effect. This definitely works stand-alone, so I'll drill into this more. Thanks for the bug report though! ~js From: users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] On Behalf Of Adam Brand Sent: Tuesday, August 04, 2009 9:15 AM To: Discussion of IronPython Subject: Re: [IronPython] FW: App_Script Problem in latest IronPython for ASP.Net Thanks. The previous release had the correct behavior, so hopefully it isn't hard to do. Adam Adam Brand SilverKey Technologies From: users-boun...@lists.ironpython.commailto:users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.commailto:users-boun...@lists.ironpython.com] On Behalf Of Jimmy Schementi Sent: Tuesday, August 04, 2009 9:13 AM To: Discussion of IronPython Subject: Re: [IronPython] FW: App_Script Problem in latest IronPython for ASP.Net Not yet, sorry. I think I can fix that for the next release and make them reload if they've been modified, but I haven't checked if there is a way to do that today. I'll take a look now... ~Jimmy Sent from my phone On Aug 4, 2009, at 8:57 AM, Adam Brand ad...@silverkeytech.commailto:ad...@silverkeytech.com wrote: Any update on this? On Fri, Jun 12, 2009 at 2:47 PM, Jimmy Schementi jimmy.scheme...@microsoft.commailto:jimmy.scheme...@microsoft.com wrote: Not sure if it's by design or just failing to reload it correctly. I'll take a look shortly. From: users-boun...@lists.ironpython.commailto:users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.commailto:users-boun...@lists.ironpython.com] On Behalf Of Adam Brand Sent: Friday, June 12, 2009 8:54 AM To: Discussion of IronPython Subject: [IronPython] FW: App_Script Problem in latest IronPython for ASP.Nethttp://ASP.Net Does anyone have any insight into this? Thanks, Adam Adam Brand SilverKey Technologies From: Adam Brand [mailto:ad...@silverkeytech.commailto:ad...@silverkeytech.com] Sent: Sunday, May 31, 2009 7:53 AM To: 'Discussion of IronPython' Subject: App_Script Problem in latest IronPython for ASP.Nethttp://ASP.Net I've noticed that with the latest bits for IronPython for ASP.Nethttp://ASP.Net, files in app_script only seem to be revisited when the app pool is restarted. For example, if I have a file called hello_world.py in App_Script, and delete that file, the app still executes code in that file as if it were there. If I change a line in the file, that line is not shown as changed until I restart the app pool. Is this by design, a bug, or something I'm doing wrong? Thanks, Adam ___ Users mailing list Users@lists.ironpython.commailto:Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com -- Adam Brand Managing Partner SilverKey Technologies Direct: +1-312-239-6722 Main: +1-312-951-7525 Skype: adamsilverkey Email: ad...@silverkeytech.commailto:ad...@silverkeytech.com www.silverkeytech.comhttp://www.silverkeytech.com ___ Users mailing list Users@lists.ironpython.commailto: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
Re: [IronPython] -X:EnableProfiler and DLR hosting API (2.6b2)
All the options should be the same as the command line options. So they're documented via ipy.exe /? :) -Original Message- From: users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] On Behalf Of Michael Foord Sent: Wednesday, August 05, 2009 4:07 PM To: Discussion of IronPython Subject: Re: [IronPython] -X:EnableProfiler and DLR hosting API (2.6b2) David DiCato wrote: You have to pass the required options to Python.CreateEngine, like so: var options = new Dictionarystring, object(); options[EnableProfiler] = ScriptingRuntimeHelpers.True; ver engine = Python.CreateEngine(options); Are these options for IronPython 2.6 documented anywhere? Michael Hope this helps, - David *From:* users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] *On Behalf Of *Mads Weitling *Sent:* Wednesday, August 05, 2009 12:54 AM *To:* users@lists.ironpython.com *Subject:* [IronPython] -X:EnableProfiler and DLR hosting API (2.6b2) Hi all and many thanks to Dino Viehland for answering my previous question re: sys.builtin_module_names and embedding. I am trying to use the IronPython profiler (http://blogs.msdn.com/curth/archive/2009/03/29/an-ironpython-profiler .aspx) from an embedded interpreter but cannot figure out how to pass the -X:EnableProfiler to my ScriptEngine instance. _engine = Python.CreateEngine(); Debug.WriteLine(_engine.Runtime.Setup.HostArguments.IsReadOnly); // prints True _engine.Runtime.Setup.HostArguments.Add(-X:EnableProfiler) // throws an System.NotSupportedException How do I set up the Runtime.Setup.HostArguments before calling Python.CreateEngine()? /Mads -- -- ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com -- http://www.ironpythoninaction.com/ http://www.voidspace.org.uk/blog ___ 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
Re: [IronPython] -X:EnableProfiler and DLR hosting API (2.6b2)
Dino Viehland wrote: All the options should be the same as the command line options. So they're documented via ipy.exe /? :) C:\compilec:\Program Files\IronPython 2.6\ipy.exe /? File /? does not exist. -Original Message- From: users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] On Behalf Of Michael Foord Sent: Wednesday, August 05, 2009 4:07 PM To: Discussion of IronPython Subject: Re: [IronPython] -X:EnableProfiler and DLR hosting API (2.6b2) David DiCato wrote: You have to pass the required options to Python.CreateEngine, like so: var options = new Dictionarystring, object(); options[EnableProfiler] = ScriptingRuntimeHelpers.True; ver engine = Python.CreateEngine(options); Are these options for IronPython 2.6 documented anywhere? Michael Hope this helps, - David *From:* users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] *On Behalf Of *Mads Weitling *Sent:* Wednesday, August 05, 2009 12:54 AM *To:* users@lists.ironpython.com *Subject:* [IronPython] -X:EnableProfiler and DLR hosting API (2.6b2) Hi all and many thanks to Dino Viehland for answering my previous question re: sys.builtin_module_names and embedding. I am trying to use the IronPython profiler (http://blogs.msdn.com/curth/archive/2009/03/29/an-ironpython-profiler .aspx) from an embedded interpreter but cannot figure out how to pass the -X:EnableProfiler to my ScriptEngine instance. _engine = Python.CreateEngine(); Debug.WriteLine(_engine.Runtime.Setup.HostArguments.IsReadOnly); // prints True _engine.Runtime.Setup.HostArguments.Add(-X:EnableProfiler) // throws an System.NotSupportedException How do I set up the Runtime.Setup.HostArguments before calling Python.CreateEngine()? /Mads -- -- ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com -- http://www.ironpythoninaction.com/ http://www.voidspace.org.uk/blog ___ 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 -- http://www.ironpythoninaction.com/ http://www.voidspace.org.uk/blog ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
Re: [IronPython] -X:EnableProfiler and DLR hosting API (2.6b2)
Err, I guess I mean -?. I think we have a bug to support /? :) -Original Message- From: users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] On Behalf Of Michael Foord Sent: Thursday, August 06, 2009 8:31 AM To: Discussion of IronPython Subject: Re: [IronPython] -X:EnableProfiler and DLR hosting API (2.6b2) Dino Viehland wrote: All the options should be the same as the command line options. So they're documented via ipy.exe /? :) C:\compilec:\Program Files\IronPython 2.6\ipy.exe /? File /? does not exist. -Original Message- From: users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] On Behalf Of Michael Foord Sent: Wednesday, August 05, 2009 4:07 PM To: Discussion of IronPython Subject: Re: [IronPython] -X:EnableProfiler and DLR hosting API (2.6b2) David DiCato wrote: You have to pass the required options to Python.CreateEngine, like so: var options = new Dictionarystring, object(); options[EnableProfiler] = ScriptingRuntimeHelpers.True; ver engine = Python.CreateEngine(options); Are these options for IronPython 2.6 documented anywhere? Michael Hope this helps, - David *From:* users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] *On Behalf Of *Mads Weitling *Sent:* Wednesday, August 05, 2009 12:54 AM *To:* users@lists.ironpython.com *Subject:* [IronPython] -X:EnableProfiler and DLR hosting API (2.6b2) Hi all and many thanks to Dino Viehland for answering my previous question re: sys.builtin_module_names and embedding. I am trying to use the IronPython profiler (http://blogs.msdn.com/curth/archive/2009/03/29/an-ironpython-profile r .aspx) from an embedded interpreter but cannot figure out how to pass the -X:EnableProfiler to my ScriptEngine instance. _engine = Python.CreateEngine(); Debug.WriteLine(_engine.Runtime.Setup.HostArguments.IsReadOnly); // prints True _engine.Runtime.Setup.HostArguments.Add(-X:EnableProfiler) // throws an System.NotSupportedException How do I set up the Runtime.Setup.HostArguments before calling Python.CreateEngine()? /Mads - - -- ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com -- http://www.ironpythoninaction.com/ http://www.voidspace.org.uk/blog ___ 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 -- http://www.ironpythoninaction.com/ http://www.voidspace.org.uk/blog ___ 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
Re: [IronPython] -X:EnableProfiler and DLR hosting API (2.6b2)
Dino Viehland wrote: Err, I guess I mean -?. I think we have a bug to support /? :) Thanks Michael -Original Message- From: users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] On Behalf Of Michael Foord Sent: Thursday, August 06, 2009 8:31 AM To: Discussion of IronPython Subject: Re: [IronPython] -X:EnableProfiler and DLR hosting API (2.6b2) Dino Viehland wrote: All the options should be the same as the command line options. So they're documented via ipy.exe /? :) C:\compilec:\Program Files\IronPython 2.6\ipy.exe /? File /? does not exist. -Original Message- From: users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] On Behalf Of Michael Foord Sent: Wednesday, August 05, 2009 4:07 PM To: Discussion of IronPython Subject: Re: [IronPython] -X:EnableProfiler and DLR hosting API (2.6b2) David DiCato wrote: You have to pass the required options to Python.CreateEngine, like so: var options = new Dictionarystring, object(); options[EnableProfiler] = ScriptingRuntimeHelpers.True; ver engine = Python.CreateEngine(options); Are these options for IronPython 2.6 documented anywhere? Michael Hope this helps, - David *From:* users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] *On Behalf Of *Mads Weitling *Sent:* Wednesday, August 05, 2009 12:54 AM *To:* users@lists.ironpython.com *Subject:* [IronPython] -X:EnableProfiler and DLR hosting API (2.6b2) Hi all and many thanks to Dino Viehland for answering my previous question re: sys.builtin_module_names and embedding. I am trying to use the IronPython profiler (http://blogs.msdn.com/curth/archive/2009/03/29/an-ironpython-profile r .aspx) from an embedded interpreter but cannot figure out how to pass the -X:EnableProfiler to my ScriptEngine instance. _engine = Python.CreateEngine(); Debug.WriteLine(_engine.Runtime.Setup.HostArguments.IsReadOnly); // prints True _engine.Runtime.Setup.HostArguments.Add(-X:EnableProfiler) // throws an System.NotSupportedException How do I set up the Runtime.Setup.HostArguments before calling Python.CreateEngine()? /Mads - - -- ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com -- http://www.ironpythoninaction.com/ http://www.voidspace.org.uk/blog ___ 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 -- http://www.ironpythoninaction.com/ http://www.voidspace.org.uk/blog ___ 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 -- http://www.ironpythoninaction.com/ http://www.voidspace.org.uk/blog ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
[IronPython] IronPython 2.6 CodePlex Source Update
This is an automated email letting you know that sources have recently been pushed out. You can download these newer sources directly from http://ironpython.codeplex.com/SourceControl/changeset/view/57787. MODIFIED SOURCES $/IronPython/IronPython_Main/Src/Tests/interop/net/type/test_clrtype.py $/IronPython/IronPython_Main/Src/Tests/Modes/ConsoleFlags.ps1 $/IronPython/IronPython_Main/Src/Tests/regressions.py $/IronPython/IronPython_Main/Src/Tests/test_sys.py $/IronPython/IronPython_Main/Src/Tests/test_python25.py $/IronPython/IronPython_Main/Src/Tests/test_namebinding.py ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
Re: [IronPython] Accessing scope variables
The only way I can think of doing this today would be to use our Parser And PythonWalker classes to parse the func def and then walk it and look for NameExpressions. You'd also need to look for GlobalStatement's, AssignmentStatement, and AugmentedAssignmentStatement to know if it was a global or not. OTOH if we fixed this bug (which you can vote on): http://ironpython.codeplex.com/WorkItem/View.aspx?WorkItemId=15398 you could walk the function objects, get their func_code, and then look at co_names: x = 42 def f(): print x y = 42 c = f.func_code c.co_varnames ('y',) c.co_names ('x',) Which looks like it has the global names which would be resolved against your scope. I've slowly been fixing more and more of function code but haven't gotten to this one yet :( -Original Message- From: users-boun...@lists.ironpython.com [mailto:users- boun...@lists.ironpython.com] On Behalf Of Sree Pillai Sent: Thursday, August 06, 2009 11:57 AM To: users@lists.ironpython.com Subject: [IronPython] Accessing scope variables Hello, We are hosting IronPython in our Windows forms-based application to allow our customers to write scripts. We allow customers to use our own variables within the script. public class Variable { string Name; int Value; .. } .. Variable v1 = new Variable(Length, 10); // Create a variable with Name=Length and Value=10 vars.Add(v1); Variable v2 = new Variable(Width, 10); vars.Add(v1); vars.Add(v2); We set custom variables in scriptScope like this. .. foreach (IVariable aVariable in vars) { scriptScope.SetVariable(aVariable.Name, aVariable); } .. With this, user can write a function like this def CalcArea() : return Length * Width In our application, we are dealing with hundreds of variables and functions. As the user deletes or modifies a Variable (here Length and Width), they would like to know where the variables are used. In this example, the variable Length and Width are used in CalcArea function. I can't find a way to identify the list of custom variables used within a function using the API. Any suggestions? Thanks a lot. Sree ___ 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
[IronPython] Reflection.Emit from IronPython: What is the equivalent of typeof() in C# ?
Hello, I'm attempting to drive the Reflection.Emit API from IronPython. In C# typical Reflection.Emit use makes use typeof(...) facility in C#, to enable the determination of types without needing an instance of that type. For example, to create an array of .NET CTS Strings in IL from C# one might do: generator.Emit(OpCodes.Newarr, typeof(string)); where the second argument to Emit is the element type of the array. I've tried various alternatives from IronPython, including generator.Emit(OpCodes.Newarr, System.Type.GetType('System.String')) generator.Emit(OpCodes.Newarr, str().GetType()) generator.Emit(OpCodes.Newarr, System.String().GetType()) generator.Emit(OpCodes.Newarr, clr.GetClrType(System.String)) however, all of these result in RuntimeType[] rather than String[] in the generated CIL. How do I get typeof(System.String) from IronPython? Rob Robert Smallshire rob...@smallshire.org.uk http://smallshire.org.uk/ Currently in Norway (UTC +2 hours) ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
Re: [IronPython] Reflection.Emit from IronPython: What is the equivalent of typeof() in C# ?
clr.GetClrType('') ? (on an instance of a string) Michael Robert Smallshire wrote: Hello, I'm attempting to drive the Reflection.Emit API from IronPython. In C# typical Reflection.Emit use makes use typeof(...) facility in C#, to enable the determination of types without needing an instance of that type. For example, to create an array of .NET CTS Strings in IL from C# one might do: generator.Emit(OpCodes.Newarr, typeof(string)); where the second argument to Emit is the element type of the array. I've tried various alternatives from IronPython, including generator.Emit(OpCodes.Newarr, System.Type.GetType('System.String')) generator.Emit(OpCodes.Newarr, str().GetType()) generator.Emit(OpCodes.Newarr, System.String().GetType()) generator.Emit(OpCodes.Newarr, clr.GetClrType(System.String)) however, all of these result in RuntimeType[] rather than String[] in the generated CIL. How do I get typeof(System.String) from IronPython? Rob Robert Smallshire rob...@smallshire.org.uk http://smallshire.org.uk/ Currently in Norway (UTC +2 hours) ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com -- http://www.ironpythoninaction.com/ http://www.voidspace.org.uk/blog ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
Re: [IronPython] Reflection.Emit from IronPython: What is the equivalent of typeof() in C# ?
Hi Michael, I'm afraid not: clr.GetClrType('') TypeError: expected Type, got str My hopes were momentarily raised when I discovered that your otherwise very comprehensive book mentions typeof in the index (page 398) - but then I found that you only use it from C#. Cheers, Rob clr.GetClrType('') ? (on an instance of a string) Michael Robert Smallshire wrote: Hello, I'm attempting to drive the Reflection.Emit API from IronPython. In C# typical Reflection.Emit use makes use typeof(...) facility in C#, to enable the determination of types without needing an instance of that type. For example, to create an array of .NET CTS Strings in IL from C# one might do: generator.Emit(OpCodes.Newarr, typeof(string)); where the second argument to Emit is the element type of the array. I've tried various alternatives from IronPython, including generator.Emit(OpCodes.Newarr, System.Type.GetType('System.String')) generator.Emit(OpCodes.Newarr, str().GetType()) generator.Emit(OpCodes.Newarr, System.String().GetType()) generator.Emit(OpCodes.Newarr, clr.GetClrType(System.String)) however, all of these result in RuntimeType[] rather than String[] in the generated CIL. How do I get typeof(System.String) from IronPython? Rob Robert Smallshire rob...@smallshire.org.uk http://smallshire.org.uk/ Currently in Norway (UTC +2 hours) ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com -- http://www.ironpythoninaction.com/ http://www.voidspace.org.uk/blog ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
Re: [IronPython] Reflection.Emit from IronPython: What is the equivalent of typeof() in C# ?
Try: clr.GetClrType(type('')) David Fugate Microsoft - IronPython http://knowbody.livejournal.com -Original Message- From: users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] On Behalf Of Robert Smallshire Sent: Thursday, August 06, 2009 1:53 PM To: 'Michael Foord'; 'Discussion of IronPython' Subject: Re: [IronPython] Reflection.Emit from IronPython: What is the equivalent of typeof() in C# ? Hi Michael, I'm afraid not: clr.GetClrType('') TypeError: expected Type, got str My hopes were momentarily raised when I discovered that your otherwise very comprehensive book mentions typeof in the index (page 398) - but then I found that you only use it from C#. Cheers, Rob clr.GetClrType('') ? (on an instance of a string) Michael Robert Smallshire wrote: Hello, I'm attempting to drive the Reflection.Emit API from IronPython. In C# typical Reflection.Emit use makes use typeof(...) facility in C#, to enable the determination of types without needing an instance of that type. For example, to create an array of .NET CTS Strings in IL from C# one might do: generator.Emit(OpCodes.Newarr, typeof(string)); where the second argument to Emit is the element type of the array. I've tried various alternatives from IronPython, including generator.Emit(OpCodes.Newarr, System.Type.GetType('System.String')) generator.Emit(OpCodes.Newarr, str().GetType()) generator.Emit(OpCodes.Newarr, System.String().GetType()) generator.Emit(OpCodes.Newarr, clr.GetClrType(System.String)) however, all of these result in RuntimeType[] rather than String[] in the generated CIL. How do I get typeof(System.String) from IronPython? Rob Robert Smallshire rob...@smallshire.org.uk http://smallshire.org.uk/ Currently in Norway (UTC +2 hours) ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com -- http://www.ironpythoninaction.com/ http://www.voidspace.org.uk/blog ___ 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
Re: [IronPython] Reflection.Emit from IronPython: What is the equivalent of typeof() in C# ?
You can also just use the type like System.String to avoid having to create an instance of the type. import System import clr clr.GetClrType(System.String) System.RuntimeType object at 0x002B [System.String] -Original Message- From: users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] On Behalf Of Dave Fugate Sent: Thursday, August 06, 2009 2:07 PM To: rob...@smallshire.org.uk; Discussion of IronPython; 'Michael Foord' Subject: Re: [IronPython] Reflection.Emit from IronPython: What is the equivalent of typeof() in C# ? Try: clr.GetClrType(type('')) David Fugate Microsoft - IronPython http://knowbody.livejournal.com -Original Message- From: users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] On Behalf Of Robert Smallshire Sent: Thursday, August 06, 2009 1:53 PM To: 'Michael Foord'; 'Discussion of IronPython' Subject: Re: [IronPython] Reflection.Emit from IronPython: What is the equivalent of typeof() in C# ? Hi Michael, I'm afraid not: clr.GetClrType('') TypeError: expected Type, got str My hopes were momentarily raised when I discovered that your otherwise very comprehensive book mentions typeof in the index (page 398) - but then I found that you only use it from C#. Cheers, Rob clr.GetClrType('') ? (on an instance of a string) Michael Robert Smallshire wrote: Hello, I'm attempting to drive the Reflection.Emit API from IronPython. In C# typical Reflection.Emit use makes use typeof(...) facility in C#, to enable the determination of types without needing an instance of that type. For example, to create an array of .NET CTS Strings in IL from C# one might do: generator.Emit(OpCodes.Newarr, typeof(string)); where the second argument to Emit is the element type of the array. I've tried various alternatives from IronPython, including generator.Emit(OpCodes.Newarr, System.Type.GetType('System.String')) generator.Emit(OpCodes.Newarr, str().GetType()) generator.Emit(OpCodes.Newarr, System.String().GetType()) generator.Emit(OpCodes.Newarr, clr.GetClrType(System.String)) however, all of these result in RuntimeType[] rather than String[] in the generated CIL. How do I get typeof(System.String) from IronPython? Rob Robert Smallshire rob...@smallshire.org.uk http://smallshire.org.uk/ Currently in Norway (UTC +2 hours) ___ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com -- http://www.ironpythoninaction.com/ http://www.voidspace.org.uk/blog ___ 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