Download Carpet

Available Versions

Carpet is distributed under the GNU General Public License (GPL). It might be released under the GNU Lesser General Public License (LGPL) in the future, to match the distribution terms of Cactus.

There are currently three different versions of Carpet available:

Version 1 has been unchanged for quite some time. There are no plans to make any further changes to this version unless a catastrophic error is detected.

Version 2 is the current stable version. We do not plan to make further changes to this version unless a serious error is detected.

Version 3 is the upcoming next stable version. This version will probably be released in a few week. After its release, we will only correct errors, so that its users have a stable platform to rely on. We recommend this version for the casual user and for production runs.

The development version will always see changes, some of which might surprise you. You should not use it without keeping close contact to the developers.

Getting Carpet

Carpet is a driver for Cactus. It works as a part of Cactus, and you will need to have the developers' version of Cactus installed before you can use Carpet. Please look at the Cactus web pages for an introduction to Cactus and for installation instructions.

Carpet consists of several arrangements, each living in a directory. The arrangement Carpet contains the basic driver part that everybody needs. The arrangement CarpetExtra contains useful add-ons and some example code. Development of new thorns happens in the CarpetDev arrangement, which means that the code in there is not to be trusted. And finally, there is a graveyard arrangement CarpetAttic of things that only used to be useful and are now in a state of decay.

Version 1 (outdated)

Version 1 of Carpet is available via anonymous CVS:

        cd Cactus/arrangements
        cvs -d :pserver:cvs_anon@cvs.carpetcode.org:/home/cvs/carpet login
        cvs -d :pserver:cvs_anon@cvs.carpetcode.org:/home/cvs/carpet checkout Carpet
        cvs -d :pserver:cvs_anon@cvs.carpetcode.org:/home/cvs/carpet checkout CarpetExtra
        cvs -d :pserver:cvs_anon@cvs.carpetcode.org:/home/cvs/carpet checkout CarpetDev

The password for anonymous CVS access is anon. Instructions for dealing with CVS are available everywhere on the web, e.g. also on the Cactus pages.

Version 2 (outdated)

Version 2 of Carpet is available via anonymous darcs:

        cd Cactus
        darcs get http://www.carpetcode.org/~darcs/carpet-stable-2/
        cd arrangements
        ln -s ../carpet-stable-2/Carpet* .

(Don't miss the dot after the Carpet* in the last line.) Instructions for using darcs are given below. You can also have a look at the version 2 source tree in your web browser.

Version 3

Version 3 of Carpet is available via anonymous darcs:

        cd Cactus
        darcs get http://www.carpetcode.org/~darcs/carpet-stable-3/
        cd arrangements
        ln -s ../carpet-stable-3/Carpet* .

(Don't miss the dot after the Carpet* in the last line.) Instructions for using darcs are given below. You can also have a look at the version 3 source tree in your web browser.

Development Version

The development version of Carpet is available via anonymous darcs:

        cd Cactus
        darcs get http://www.carpetcode.org/~darcs/carpet/
        cd arrangements
        ln -s ../carpet/Carpet* .

(Don't miss the dot after the Carpet* in the last line.) Instructions for using darcs are given below. You can also have a look at the development source tree in your web browser.

You can also obtain the darcs repository using wget instead of darcs. For this, use the command

        wget -r -nH -np --cut-dirs=1 -R "index.html*" http://www.carpetcode.org/\~darcs/carpet/

This copies the darcs repository into a subdirectory called carpet, in much the same way as the darcs get command above would. That is, you also end up with a fully functional local repository.

Write Access

Write access to Carpet is via ssh. Once you have an account, you get e.g. the development version via

        cd Cactus
        darcs get darcs@cvs.carpetcode.org:/home/darcs/carpet
        cd arrangements
        ln -s ../carpet/Carpet* .

(Don't miss the dot after the Carpet* in the last line.) Instructions for using darcs are given below.

You can also obtain the darcs repository using rsync instead of darcs. For this, use the command

        rsync -Paz darcs@cvs.carpetcode.org:carpet .

This copies the darcs repository into a subdirectory called carpet, in much the same way as the darcs get command above would. That is, you also end up with a fully functional local repository.

We thank the Institut für Astronomie und Astrophysik of the Universität Tübingen for hosting the CVS and darcs servers.


Using Darcs

Carpet is managed in a darcs repository instead of a CVS repository. Darcs has a number of advantages over CVS for us developers, such as:

and then some more, as described in the darcs manual.

Another prime source of information about darcs is the darcs wiki, especially its Getting Started pages, and the Frequently Asked Questions.

If darcs is not already installed on your system, you need to do so. This is described on the darcs home page, and some links to binaries are given in the darcs wiki. If you have problems installing or using darcs in general, then you should ask on the darcs mailing list, which I (Erik Schnetter) read regularly.

Convenient SSH key management

Ssh has two mechanisms for authentication, typing a password, or using ssh keys. When you use ssh keys, your private key is (should) usually be protected by a password. That means that you have to type this password every time you log into a different machine. Some people protect their private ssh key with an empty password --- this way, they don't have to type a password, but this is not very secure. If somebody is able to copy the private ssh key, they have access to your remote accounts. In this way, intruders can hop from one machine to the next. (This is not just a theoretical risk.)

Ssh-agent is a convenient way to make things safe yet convenient. It is an agent that starts automatically when you log in, and asks you for your ssh key password. It remembers this password in memory, and whenever you use ssh to log into a remote account, ssh contacts the ssh-agent for the password to the key. If that password works, you don't have to type anything.

I use the following lines in my .bash_profile to make this happen:

keychain id_dsa
test -f $HOME/.keychain/$(hostname)-sh && source $HOME/.keychain/$(hostname)-sh > /dev/null

Keychain starts the ssh-agent. Keychain can also handle gpg key passwords for your encrypted and/or signed emails.

Updating the Repository from the Master

At some time you will want to update your version of Carpet and incorporate some changes from the main Carpet repository. You do this with the command

cd Cactus/carpet-stable-2
darcs pull

which will look for new changes, and then ask you which of these you want to obtain. Normally, you will want all changes.

Working with Darcs

We also have some instructions on how to develop Carpet with darcs.


Go back to the Carpet home page.


Valid XHTML 1.0!


Erik Schnetter
Last modified: Sun Feb 04 2007