Do you have a simple repro XAP you can send me and I'll take a look? I'm not entirely sure I'll know what's going on as CoreCLR isn't the CLR I'm used to debugging but it's not that different :)
> -----Original Message----- > From: users-boun...@lists.ironpython.com [mailto:users- > boun...@lists.ironpython.com] On Behalf Of Michael Foord > Sent: Tuesday, April 21, 2009 2:41 AM > To: Discussion of IronPython > Subject: Re: [IronPython] Compiling with Pyc for Silverlight > > Dino Viehland wrote: > > You're compiling to a DLL and then trying to import (vs compiling to > an EXE)? > > > > > > Yes - it's support packages we're trying to compile. I would have > thought that compiling an exe for Silverlight was a lost cause... :-) > > There are two motivations, mainly speeding up import time but also > source code obfuscation. If the assembly is genuinely serializable then > we may at least achieve the second, so long as it doesn't make import > time worse. > > Michael > > >> -----Original Message----- > >> From: users-boun...@lists.ironpython.com [mailto:users- > >> boun...@lists.ironpython.com] On Behalf Of Michael Foord > >> Sent: Monday, April 20, 2009 3:07 PM > >> To: Discussion of IronPython > >> Subject: Re: [IronPython] Compiling with Pyc for Silverlight > >> > >> Michael Foord wrote: > >> > >>> Jb Evain wrote: > >>> > >>>> Hey Michael, > >>>> > >>>> On 4/20/09, Michael Foord <fuzzy...@voidspace.org.uk> wrote: > >>>> > >>>> > >>>>> I guess a full IL writer would be needed - which means back to > >>>>> Cecil and > >>>>> the like and seeing if parts of them could be run on Silverlight. > >>>>> *sigh* > >>>>> > >>>>> > >>>> You just want to change the references to an assembly from the > >>>> > >> desktop > >> > >>>> version to the SL version? With Cecil it's like: > >>>> > >>>> var assembly = AssemblyFactory.GetAssembly (file); > >>>> foreach (var reference in assembly.MainModule.AssemblyReferences) > { > >>>> if (!IsTargetAssembly (reference)) > >>>> continue; > >>>> > >>>> reference.Version = new Version (2, 0, 5, 0); > >>>> } > >>>> AssemblyFactory.SaveAssembly (assembly, file); > >>>> > >>>> Now it doesn't guarantee that the resulting assembly is coherent, > >>>> visibility wise, as you may have used methods that are not visible > >>>> > >> or > >> > >>>> not existent in SL. > >>>> > >>>> > >>>> > >>> Thanks for that - if it would work it would be really useful, > >>> > >> however... > >> > >>> I think I've done the equivalent of this using ildasm / ilasm. I've > >>> disassembled the assembly to IL, then replaced the references with > >>> > >> the > >> > >>> references to Silverlight assemblies and re-assembled. > >>> > >>> The resulting assembly throws exactly the same error - which makes > me > >>> think that the assemblies compiled by Pyc are using things that > >>> > >> aren't > >> > >>> available in Silverlight. *However* - > >>> Microsoft.Runtime.CompilerServices.StrongBox does exist in > >>> Silverlight. I think I'll try the whole process again just to see. > My > >>> guess is that rewriting would require an intimate knowledge of the > >>> differences between the CoreCLR and standard .NET. > >>> > >>> > >> No - I've rerun the whole process from compiling with Pyc through to > >> replacing the references in the il and reassembling. Same error. > Shame. > >> > >> SystemError: Could not load type > >> 'Microsoft.Runtime.CompilerServices.StrongBox`1' from assembly > >> 'Microsoft.Scripting.Core, Version=2.0.5.0, Culture=neutral, > >> PublicKeyToken=31bf3856ad364e35'.app.py > >> > >> Michael Foord > >> > >> > >>> I can't import it in a Silverlight application though (the > following > >>> code does work on the desktop version of IronPython): > >>> > >>> import clr > >>> clr.AddReference('Microsoft.Scripting') > >>> clr.AddReference('Microsoft.Scripting.Core') > >>> from Microsoft.Runtime.CompilerServices import StrongBox > >>> > >>> ImportError: No module named Runtime > >>> > >>> Michael > >>> > >>> > >> -- > >> 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/ > > _______________________________________________ > 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