Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
84 lines (45 sloc) 1.82 KB

Coding Style

These are guidelines for new code. Some of existing hasn't been updated to these conventions yet.

Whitespace (all languages):

  • indentation is 4 spaces

  • never use tabs as indents

  • otherwise tab equals to 8 spaces

  • separate classes with two empty lines

Naming convention:

  • camelCase for functions/methods

  • UpperCase for structures/classes

  • lowercase for namespaces/modules

  • UPPER_CASE for #defines

  • single underscore prefix for variables/functions in automatically generated code


  • enclose single statement if clauses in { }, specially for automatically generated code

  • } else {

  • use inlines for functions/methods which are called with high-frequency


  • lower_case commands

  • space between ( and precedent name

When in doubt, be consistent with the existing code.

Commit policy

Feature development:

  • Existing features in master branch should not degrade at any time, for any platform. (Unless it is not widely used and there is agreement.)

  • It's fine to add new features for only some platforms.

  • Non-trivial changes should be staged in a branch, to enable peer-review and regression testing. Branch should be deleted once code has been merged.

  • Releases are tagged commits from master. There are no stable branches.

Backwards compatibility:

  • Backwards binary compatibility with old traces must be always maintained: all tools, including glretrace, must handle old traces without regressions.

  • No backwards compatibility guarantees for derived data (ASCII dumps, state, images, etc).

  • There should be no gratuitous change to command line tool interfaces, but no guarantees are given.

Regression testing

There is a regression test suite under development in .

Something went wrong with that request. Please try again.