On 12/27/07, Bruce Markham <[EMAIL PROTECTED]> wrote:
> I know my brain is frazzled, which it is most nights at 3am, even when I
> haven't been reading PCI specifications all day.
>
> But I do know, that if compile Assembly A with Generic Type 1. And Assembly
> B with Normal Type 2 that uses Generic Type 1, it won't be able to
> re-compile its own version of Generic Type 1 because Generic Type 1 will be
> machine language on the disk.
>
> And unless you want all programs to take up twice as much HDD because you
> want to have both IL and machine language sitting around, it doesn't scale
> well. (Especially if you have embedded resources.)

So,

Assembly 1:
public class SomeType
{
  public int i;
}

Assembly 2:
public class SomeType2<SomeType>
{
}

What you're saying is that after Assembly 1 was AOTed, and then
Assembly 2 was AOTed, it would be impossible to change the class
SomeType without having to re-AOT Assembly 2?

I think it's possible. When we AOT SomeType2, we shouldn't statically
embed information about SomeType into it at all. Simple a pointer.

But I suppose this brings up a lot of issues. Let's say we have this:

Assembly 1:
public class Type1
{
  int i = 5;
}

Assembly 2
public class Program
{
  public static int Main(string[] args)
  {
    Type1 a = new Type1();
    a.i = 100;
  }
}

and we AOT both of them. Now, if we change the definition of Type1,
let's say we get rid of the field i and replace it with a field j,
then Assembly 2 would have to be able to throw a runtime exception. If
we can do that, then I don't think there's any problem with AOTing
generic types.

Johann

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
SharpOS-Developers mailing list
SharpOS-Developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sharpos-developers

Reply via email to