Few times ago, Miguel asked me a little tool, which basically round-trip an assembly using Cecil. It's sole purpose is to test the ability of Cecil to read and write without errors any assembly. I'll use it here to demonstrate the results of today's work. If ever you want to have a look at it, you'll find it in svn here: /trunk/cecil/tools
C:\cecil›dir Volume in drive C has no label. Volume Serial Number is 50F3-EB89 Directory of C:\cecil 03/27/2006 06:12 PM ‹DIR› . 03/27/2006 06:12 PM ‹DIR› .. 01/30/2006 12:20 PM 311,296 C5.dll 03/27/2006 06:10 PM 3,584 cecil-roundtrip.exe 03/27/2006 06:03 PM 382,464 Mono.Cecil.dll 3 File(s) 697,344 bytes 2 Dir(s) 10,192,011,264 bytes free C:\cecil›cecil-roundtrip.exe C5.dll C5.rt.dll Assembly C5, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null successfully roundtripped to C5.rt.dll C:\cecil›peverify C5.rt.dll Microsoft (R) .NET Framework PE Verifier. Version 2.0.50727.42 Copyright (c) Microsoft Corporation. All rights reserved. All Classes and Methods in C5.rt.dll Verified. C:\cecil›
Sorry for the Windows output but heh, their peverify and ildasm are much better than ours.
So, what can we see here? The point is that Cecil (SVN HEAD) is now able to round-trip without any error the most terrifying assembly for generics stuff: the great C5 library. There is now very few things missing inside Cecil to reach the 2.0 ready status.
You know what? I'm happy!