Dino Viehland wrote:
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 :)

Attached is a xap file. It has a very simple package compiled with Pyc - and importing it throws the same error.

Michael

-----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


--
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/blog


Attachment: app.xap
Description: Binary data

_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to