[Mono-list] Ask Microsoft: Mono support

Jonathan Pryor jonpryor@vt.edu
Wed, 27 Oct 2004 06:57:07 -0400

On Wed, 2004-10-27 at 06:45, George Birbilis wrote:
> I don't consider viewing an assembly's publicly exposed methods/fields etc. 
> to be reverse engineering
> If you decompile though and copy/paste code parts etc. then it is reverse 
> engineering and could potentially cause problems similar to the Linux-SCO 
> stuff

Reverse engineering includes more than decompiling object code.

Writing a test program, executing it under .NET, and getting Mono to
behave the same way *also* counts as reverse engineering.

And it's because of reverse engineering that typeof(System.Enum).IsClass
is false (that's what .NET does), even though all the documentation
suggests it should be true.

Just grep the mcs source for LAMESPEC.  These are also places where we
needed to observe .NET's behavior to ensure compatibility.

Writing test programs and observing behavior is a form of reverse
engineering.  Period.  Fortunately reverse engineering is perfectly
legal, legally protected, and necessary for competition.

 - Jon