...
...
...
The code base for this project is under heavy and recent development. Please expect nothing from it for the time being; there is not yet a version that we consider "stable".
Bugs
Bugs should be filed in our bug tracker. Questions and comments can be sent to the developer mailing list: ramcloud-dev.
...
- GNU Make (Anything reasonably recent)
- GNU g++ (>= 4.4.6)
- git (>= 1.6.0)
- Perl (Anything reasonably recent)
- For mergedeps.pl, which automatically inserts included headers in source files into the make dependencies.
- Python 2.6, epydoc
- Boost
- If you're having issues with Boost on Ubuntu, check boost ticket #3844.
- pcre
- Doxygen 1.7.2
- protocol buffers
...
Install from sources: libevent-2.0.20-stable, protobuf-2.4.1, cryptopp560, gcc-4.4.6
Source Code
For
...
Core Developers
For those with accounts on fiz.stanford.edu, which currently hosts our git repository, clone from here for write access:
No Format |
---|
git clone gitssh://fiz.stanford.edu/git/ramcloud.git cd ramcloud git submodule update --init --recursive make logcabin ln -s ../../hooks/pre-commit .git/hooks/pre-commit |
(Notes: the git submodule update
retrieves additional repos needed to build RAMCloud, such as gtest and logcabin
; the ln -s
command arranges for various consistency checks to run during commits, such as ensuring the absence of carriage returns)Don't worry about having
For Read-Only Access
Use the same instructions as above, except replace "ssh:" with "git:" in the git clone
command. With this approach you don't need to have an account on fiz, and you can't push commts to the repository. With read-only access; it really shouldn't impede you. We'd prefer to pull changes from you or have you send patches (see git-format-patch). This lets us ensure that the fiz repo is generally in a working state and is making forward progress.
For Core Developers
For those with fiz accounts clone from here for write access:
No Format |
---|
git clone ssh://fiz.stanford.edu/git/ramcloud.git
cd ramcloud
git submodule update --init --recursive
make logcabin
ln -s ../../hooks/pre-commit .git/hooks/pre-commit
|
Compiling
...
, you can send us patches, or we can pull them from your repository.
Compiling
No Format |
---|
cd ramcloud
make -j12 |
By default, RAMCloud compiles with debugging symbols, which slows the system down considerably. If you want to make performance measurements, recompile without debugging symbols:
No Format |
---|
make clean
make -j12 DEBUG=no |
LogCabin
LogCabin is a distributed system that will provide a small amount of highly replicated, consistent storage. It will be used by the RAMCloud Coordinator mainly for fault tolerance.
...
- No commit should include changes for multiple issues. (Each commit in the push should complete or work towards a single issue.)
- Pushes should complete any issues they start, but individual commits within a push do not need to complete an issue.
- If at all possible, each commit should represent a version of the system that actually works (e.g., passes all unit tests and runs simple apps and system tests). This is important so that people can use
git bisect
to hunt down the commit that caused a bug: if commits are broken,git bisect
won't work. - All commit messages should be meaningful without looking at the diff. (By reading a commit message, you should get some idea of what was modified and what the intent was. If you can't fit this in one line, skip a line and then write more.)
...