Skip to content
Bernhard Manfred Gruber edited this page Sep 29, 2023 · 19 revisions

Data-Parallel Programming with Vector Classes (Vc)

license language GitHub release

GCC Support Clang Support ICC Support MSVC Support

The following pages document background information on Vc and Vc development.

Documentation

Users of Vc will find the most important documentation in the API Documentation, which is generated via doxygen from the sources. Here are the most recent doxygen results:

Communication

There exist two mailinglists:

For more interactive discussions use IRC: ##Vc on freenode

You can also post questions in the issue tracker on GitHub.

Other useful pages

Hacking Vc

Repository Layout

master branch

Development progresses on the master branch. This branch is supposed to be rather stable and usable for developers that target a new release of Vc. The master branch is regularly compiled and tested in nightly builds.

feature branches

Features and non-trivial bug fixes are developed on branches. A branch name should be prefixed with the user name, a slash, and, if present, an issue number prefixed with gh-. E.g. a branch of the user fred on issue #13 is named fred/gh-13_summary_of_the_feature. Use underscores in place of spaces. I'd like to use no-break spaces (U+00A0 ' '), but that breaks on Windows; most notably AppVeyor CI will fail. (Note that spaces (U+0020) are not allowed in branch names.)

release branches

Naming

Release branches use the version number (including only the minor release number, but not the patch number) as the branch name.

Backporting

Since the release branch must diverge from the master branch (because of the different version numbers), backports should not be done via merges. Instead the following pattern can be quite useful (until the branches have diverged too much):

git checkout 1.0
git reset --hard origin/master
git rebase -i origin/1.0

Coding Style

TODO, but look at clang-format and the .clang-format file in the repository.

Commit Logs

TODO, but take a look here: http://chris.beams.io/posts/git-commit/

Dashboard & Continuous Builds

A CDash dashboard aggregates all results from nightly and continuous builds. Through GitHub integration AppVeyor and Travis will build and test the latest commits and pull requests. They submit all data to the CDash dashboard, as well.