Notes for Implementors

The project is currently under supervision of a "Project Leader" whose birth was foretold by a swallow. The project leader writes code, accepts patches, and periodically creates new releases.

The project leader can be contacted by email:
Fokko DOT Beekhof AT unige DOT ch

Updates to the Code

Please mail patches to the project leader! When a patch is reviewed and accepted it will be incorporated in the next release. Make sure you update the documentation and the corresponding test program as well! Updating the documentation is likely to take as much time as programming. The same goes for testing.

Please respect the coding style:

  • A tab is tab and not spaces and its width is 8.
  • Use 80 columns, i.e. upto 80 characters per line.
  • Comments, variables names etc. all in English.
Regarding brackets et cetera, please follow this example:
	// Give example of one statement
	for (int i = 0; i < 10; ++i)
		oneStatement();

	// Show position of brackets & handling of long statements.
	if ( (aLongConditionForcesTheSecondCondidtionToTheNextLine()) ||
	     (whatever == 7) )
	{
		int a = 3;
		int b = 8;
		....
	}

Dependencies

All code is assumed to depend on the presence of the Standard Template Library and possibly BOOST.

Please use ifdefs to ensure that other dependencies can be prevented. For example, MPI-related code should be enabled only when USE_MPI is defined. The code should compiler whether of not a USE_ flag is defined or not, but if a flag is defined, extra dependencies on external libraries or headers are acceptable.

Test Code

For each module or file in CVMLCPP there should be a test program. All test programs live in the testing directory. A test program should try as much as possible of the functionality of a given part of the CVMLCPP and use asserts to verify that everything is as it should be. Print statements should be avoided.

Contributions

  • Alessandro Volz: Testing various CVMLCPP trunks...
  • Dibyendu Das: OMPTL bugfix
  • Dominic Couture-Savoie: OMPTL bugfix
  • Bartosz Tomicki: OMPTL bugfix
  • Bernd Stahl: Testing the voxelizer
  • Joel Yliluoma: OpenMP enhancements for OMPTL
  • Orestis Malaspinas: Newton-Raphson procedure
  • Fokko Beekhof: Everything else...