It would require some additional features be implemented in .NET core to support it.
On Thu, Apr 5, 2018 at 9:23 AM Josiah Kiehl <jki...@riotgames.com> wrote: > Got it. Thanks for the answers. I'll hang on to this work for future when > compile module works in .net core. Is that an eventual plan? > > On Thu, Apr 5, 2018, 6:45 AM Stéphane Lozier <stephane.loz...@gmail.com> > wrote: > >> It sounds like you were already doing what I was suggesting trying. The >> "full framework" version is what you get when you install using the MSI. >> The zip file in releases link contains the .NET Core version of the >> interpreter but like I said it doesn't support CompileModule. >> >> I think you may be out of luck on this since there's currently no way to >> compile the code for .NET Core and the assembly generated using full .NET >> doesn't work... >> >> Stéphane >> >> On Wed, Apr 4, 2018 at 1:38 PM, Josiah Kiehl <jki...@riotgames.com> >> wrote: >> >>> Oh! I understand now, thanks for clarifying. Yes, that's the problem. >>> You mentioned that there is a "full framework" version I could compile my >>> dlls with? I poked around the releases and I wasn't sure what you were >>> referencing, specifically. >>> >>> I installed via the 2.7.8 msi from here: >>> https://github.com/IronLanguages/ironpython2/releases. Is there a >>> release with dotnet core or can I build one? >>> >>> I did notice that I can't compile via running the compile script in the >>> embedded IronPython in dotnet core, as CompileModule is not supported. >>> >>> Thanks so much for answering my questions, this is extremely helpful. >>> Josiah >>> >>> On Wed, Apr 4, 2018, 6:16 AM Stéphane Lozier <stephane.loz...@gmail.com> >>> wrote: >>> >>>> I assumed you were using .NET Core when you said you were using dotnet >>>> 2.0.3. So you are compiling using ipy.exe (which is a .NET 4.5 app) and >>>> then using the assembly from a .NET Core 2.0 application? The .NET Core API >>>> doesn't expose System.Runtime.CompilerServices.Closure so that might be the >>>> reason things are failing... >>>> >>>> Stéphane >>>> >>>> On Tue, Apr 3, 2018 at 5:53 PM, Josiah Kiehl <jki...@riotgames.com> >>>> wrote: >>>> >>>>> Sorry if I'm not understanding... when you say "full framework >>>>> version", do you mean the stand alone executable, ipy.exe? >>>>> >>>>> I compiled the dll with ipy.exe running a simple script: >>>>> >>>>> > ipy compile.py >>>>> >>>>> # compile.py >>>>> import clr >>>>> >>>>> clr.CompileModules("compiled.dll", "test.py") >>>>> >>>>> This works just fine. >>>>> >>>>> Then I tried to load "compiled.dll" via the embedded IronPython in a >>>>> simple dotnet CLI app and it produces the above error: >>>>> >>>>> ScriptEngine engine = Python.CreateEngine(); >>>>> >>>>> engine.Runtime.LoadAssembly(Assembly.LoadFile(@"C:\some\path\compiled.dll")); >>>>> var scope = engine.Runtime.ImportModule("test"); >>>>> >>>>> Is that what's not supported? Loading the dll in the embedded >>>>> IronPython? >>>>> >>>>> Thanks for your help, I am super hopeful I can get this working. >>>>> Josiah >>>>> >>>>> On Tue, Apr 3, 2018 at 2:39 PM Stéphane Lozier < >>>>> stephane.loz...@gmail.com> wrote: >>>>> >>>>>> The .NET Core version of IronPython does not support assembly >>>>>> generation. I haven't tried it myself, but you could probably compile the >>>>>> assembly using the full framework version and then run it with .NET Core >>>>>> 2.0 (assuming you're not using unsupported APIs). >>>>>> >>>>>> Stéphane >>>>>> >>>>>> >>>>>> On Tue, Apr 3, 2018, 5:16 PM Josiah Kiehl, <jki...@riotgames.com> >>>>>> wrote: >>>>>> >>>>>>> Oh, I'm on dotnet 2.0.3, if that's relevant information. >>>>>>> >>>>>>> On Tue, Apr 3, 2018 at 2:15 PM Josiah Kiehl <jki...@riotgames.com> >>>>>>> wrote: >>>>>>> >>>>>>>> I'm trying to execute this example code: >>>>>>>> >>>>>>>> https://stackoverflow.com/questions/32639893/call-dll-function-from-c-sharp-ironpython >>>>>>>> >>>>>>>> I realize the posted question is a few years old at this point... >>>>>>>> has something changed in how python, compiled to a DLL via >>>>>>>> clr.CompileModule, is loaded? >>>>>>>> >>>>>>>> I'm getting this error when I run the code in the example at the >>>>>>>> above link: >>>>>>>> Unhandled Exception: System.TypeLoadException: Could not load type >>>>>>>> 'System.Runtime.CompilerServices.Closure' from assembly 'System.Core, >>>>>>>> Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. >>>>>>>> at DLRCachedCode.test$1(CodeContext $globalContext, FunctionCode >>>>>>>> $functionCode) >>>>>>>> at IronPython.Compiler.OnDiskScriptCode.Run() >>>>>>>> >>>>>>>> (full stack: >>>>>>>> https://gist.github.com/capoferro/5a730088582b8cd36591be510d6ca2fc) >>>>>>>> >>>>>>>> My ipy.exe, which did the compilation, is 2.7.8.0 and my embedded >>>>>>>> IronPython is 2.7.8.1, though I get the same error on 2.7.8.0. >>>>>>>> >>>>>>>> Am I missing something obvious or is there a better example to use? >>>>>>>> >>>>>>>> My end goal is to be able to take a python module defined in a file >>>>>>>> (foo.py) with some functions defined, compile it into a dll via >>>>>>>> CompileModule, then load it directly from the dll via ImportModule to >>>>>>>> skip >>>>>>>> the performance hit of interpreting the Python at runtime. >>>>>>>> >>>>>>>> Thanks! >>>>>>>> Josiah >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>> Ironpython-users mailing list >>>>>>> Ironpython-users@python.org >>>>>>> https://mail.python.org/mailman/listinfo/ironpython-users >>>>>>> >>>>>> >>>> >> _______________________________________________ > Ironpython-users mailing list > Ironpython-users@python.org > https://mail.python.org/mailman/listinfo/ironpython-users >
_______________________________________________ Ironpython-users mailing list Ironpython-users@python.org https://mail.python.org/mailman/listinfo/ironpython-users