[Mono-dev] Re: Edit and Continue
David Srbecky
dsrbecky at gmail.com
Wed Aug 10 15:55:45 EDT 2005
Anyone please?
Regarding the Atsushi Eno's comment about legality of using the
Microsoft's metadata format: I do not think it is a problem since:
1) The specification is going to be released soon anyway
2) We do not really need it anyway - Mono's own format can be used.
Regards,
David Srbecky
David Srbecky wrote:
> Hello,
>
> My name is David Srbecky and I am working on SharpDevelop 2.0 debugger.
> The debugger is getting nearly finished, but it is still missing one
> 'cool' feature - edit and continue. The support for Edit and Continue
> (EnC) from the side of Microsoft runtime is good enough, but there is no
> support at all from the compiler side - all the functionality is private
> and mostly part of VS. This effectively means that to support EnC, I
> must write my own compiler. I would never try to that, but fortunately
> there is mono to save the day. I would like to use the mono compiler to
> produce the necessary deltas, which I must feed to MS runtime. The
> problem is the I know neither the internals of mono compiler nor the
> internals of System.Reflection.Emit and implementing support of EnC
> would be a tedious or impossible task for me.
>
> I have already contacted Marek Safar and after some long discussions we
> have concluded that it might be technically possible.
>
> .NET Framework 2.0 really does not support many 'edits' - adding private
> methods/fields to classes and modifying bodies of existing methods more
> or less sum it up and I would like to make work only the second one.
>
> All I need is probably just one function 'RecompileFunction' in the mono
> compiler, which would be used like that:
>
> Driver.Main(new string[] {"MyProgram.cs"});
> // I run the program
> byte[] deltaIL, deltaMetadata;
> Driver.RecompileFunction(
> "MyClass.MyMethod", // Function name
> "return \"Hello\"; ", // New body of function
> out deltaIL, // Produced IL code
> out deltaMetadata // Changed metadata
> );
> // I send the deltas to the runtime
>
> The deltaIL is really nothing more then just the IL code of the compiled
> function. deltaMetadata is a bit more complicated but it seems to me
> that it has the same format as metadata saved in an assembly.
>
> We had *long* discussions with Marek relating to that mono compiler will
> not run on MS runtime and SharpDevelop will not run on mono runtime, but
> I think we got the solution: everyone runs in its own runtime and .NET
> Remoting connects the programs. I have written a little "Hello,
> compiler!" application and it seems to work.
>
> Are there any developers that are willing to help me please?
>
> Regards,
> David Srbecky
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 254 bytes
Desc: OpenPGP digital signature
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050810/4eae2ca4/attachment.bin
More information about the Mono-devel-list
mailing list