Pre-release of PostSharp 1.0 SP1

by Gael Fraiteur on 24 Oct 2008

It is not a release, because I would need the bravest of you to test it (oh, come on, I tested it extensively in lab conditions!), but it's another significant step forward: PostSharp 1.0 SP1 is nearly ready.

The complete list of fixed issues is on our issue tracker. Half a dozen of bugs have been reported by the community, all of minor impact, which means that 1.0 RTM was already very stable. Here is the list of the most visible improvements:

  • Runtime performance improvements: Many of you have complained (yes) of poor runtime performance and I have to admin that they were right to a certain extend. A service pack was surely not the place to make great improvements, but I have found some points where little effort resulted in high effect:
    • OnMethodBoundaryAspect do not call "methodof" at each method invocation; this information is cached instead. That is, only if neither the method neither the type is generic! Alex Yakutin (dataobjects.net) measured that the call of "methodof" was the most important performance killer. It has been removed.
    • The same with OnFieldAccessAccess and "fieldof".
    • OnMethodInvocationAspect has now its own and optimal implementation of DynamicInvoke. Microsoft's implementation was shamefully slow since it all relied on reflection. PostSharp now emits optimal MSIL instruction so there is no reflection at all!

  • Side-by-side compatibility with the future PostSharp 1.5 CTP 2 due in a few days.
  • Breaking change: All PostSharp assemblies have now and will have version 1.0.0.0 (i.e. the build and revision numbers are always zero) and you need to require a specific version in Visual Studio. This was due to the SxS challenge with 1.5. It also means that you won't need to recompile plug-ins for each reversion of PostSharp; it will be enough to do it for each minor version.
  • Some annoying problem with debugging experience has been fixed: sometimes the debugging cursor did not really follow the actual code!
  • Some less visible issues you can see in our issue tracker.

I repeat, this is not the SP1 yet, this is a pre-release. I need a hundred of you to try it and to report bugs (eventually), then I will promote it to the SP1 release and update the download page. And now, what everyone expects, the download link. Which one? Oh, there is none, sorry. You have to download revision 459 or higher from https://download.postsharp.org/builds/1.0/.

Happy PostSharping!

-gael