SymbolSource compatability

While adding projects to our repository we have come across two main issues that prevent us form adding a particular project:

  1. Official binaries are compiled with symbol generation disabled.
  2. Releases are made rarely, instead encouraging users to use nightly builds.
  3. Binary releases are published without corresponding source distributions and source repositories are not tagged with the release.

These could all be considered bad practises on their own, but in case of SymbolSource these are often dealbreakers preventing us from supporting symbols and sources for a particular release.

Let's take a look at each of these issues.

Symbol generation

To enable symbol generation during a release build it is necessary to use the switch /debug:pdbonly. For the debug configuration this will be enabled by default. Some people will fear that the usage of a /debug switch will lower performance of their code. In the .NET world this is not true, as the intermediate language code resulting from compilation will be exactly the same as with symbol generation disabled.

For a more detailed explanation take a look at this article:

http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/06/19/do-pdb-files-affect-performance.aspx

Without symbol generation enabled for a particular library, Visual Studio will not attempt to load its PDB file from any source - including any symbol servers configured.

Rare releases

Making an official release, even when it is only an Alpha, Beta or Release Candidate version, always requires some level of confidence in the code and readiness to support it one way or another. Smaller projects sometimes encourage their users to use nightly build instead. Unfortunately we are not able to track these builds at SymbolSource, as it is both very time and space consuming.

Matching source

Getting the right source code to upload to SymbolSource can be difficult, especially when there is no official source distribution for a particular release to download, and the project repository is not tagged with the release. The only option then is to cross-reference using dates or check each revision to find matching source. There is no guarantee that we will be able to fing the exact set of sources used to compile the offical release.

Letting us know

The last but not least - we need to be aware of the project and/or release you are interested in. Let us know if you think something should be added to SymbolSource!

Posted by Marcin Mikołajczak (TripleEmcoder) on Wednesday, March 03, 2010

blog comments powered by Disqus