In our on-going efforts to rid the world of VB6 we have now released version 7.1 of the Visual Basic Upgrade Companion, which includes some notable improvements. If you want to skip all this and just get the new bits, click here.
So what's new and cool? First of all, let me say that the actual migration process itself is complex and computationally intensive. We basically create a symbolic representation of the entire application and recursively run optimization passes to generate the best possible code. Since this is non-trivial from a CPU standpoint a big (ie 10^6 to 10^8 lines of code) application can take a LONG time to migrate. "Long" as in start it before you go home at night and let it run for hours.
Today you can now download version 7.1, which supports parallel migration. Taking advantage of multi-core CPUs, each VB6 project can run as a separate migration thread in parallel on a different core, up to the number of cores available. In testing on real-world apps, we've seen overall time reductions of as much as 60 percent using parallel migration. This is not enabled by default; you can find the option on the "Upgrade" tab of the VBUC. Note also that if you only have one monolithic VB6 project it will still only run in one core, even if you turn this option on.
There are also some new and significant improvements toward the goal of being able to run a migration that will compile without any errors. While this is an elusive goal to say the least, over the last few releases the VBUC product team has made some remarkable progress. Using actual customer code as a test bed, they have found and eliminated hundreds of patterns that previously would generate a compile error for each occurence in the solution. This means--for a large application--fixing a single pattern can eliminate many many compile errors, speeding up the effort after migration to get the .NET application up and running. For VBUC 7.1 we added about 6MLOC to our current test bed of real-world customer code and elminated 80% of the post-migration compiler errors, in addition to the existing improvements from the last two versions.
Finally, as always, we have checked in a whole slew of very granular improvements in code quality to improve the migrated application and make your job easier. The full details are in the release notes, included in the download.