After having been hosted for several years on SourceForge (under CVS), as of 2005/06/21 PLearn development has been moved to BerliOS (http://developer.berlios.de) that offered the benefits of a faster hosting with the more modern Subversion (SVN) version control system. The latest version is always available through SVN access.
If you just want to hack PLearn locally, you can do an anonymous checkout (no need for a BerliOS account) with
svn checkout svn://svn.berlios.de/plearn/trunk PLearn
Make sure you first move any older version of PLearn out of the way, for ex. by renaming it PLearn.old You can then check-out a fresh copy of PLearn with the following instruction:
svn checkout svn+ssh://USERNAME@svn.berlios.de/svnroot/repos/plearn/trunk PLearnwhere you replace "USERNAME" by your Berlios username. You will be asked for your Berlios password twice.
If you don't want to be bothered with svn asking passwords, clisk on Account Maintenance on the left panel of your BerliOS personal page, and on Edit keys on the bottom of the Maintenance page. You can copy your ssh public key there. (Note: your ssh public key is normally found in your /.ssh/*.pub If it's not there, you can do a ssh-keygen). As for many changes within BerliOS, it may take a while before this is propagated and taken into account.
We also suggest that you edit your ~/.subversion/config
and look for
the line containing global-ignores
: uncomment it and add OBJS in the list
of ignored patterns, to avoid being annoyed with these directories when
doing a svn status command. You'll also have to uncomment the line
[miscellany]
three lines above.
From within your local PLearn directory:
Unlike CVS, most subversion commands are recursive by default. Check the help for a particular command before using it if you are unsure.
For more details, there is a excellent free subversion book online available at: http://svnbook.red-bean.com/en/1.1/index.html
If you don't have the time to at least peruse the whole book, I would still strongly recommend that you at least read appendix A: Subversion for CVS users: http://svnbook.red-bean.com/en/1.1/apa.html
Your checked out PLearn has the following high level directory structure:
scripts/
commands/
contains the source code (as .cc files) of PLearn "executables" to be
compiled with pymake. If you look at the plearn_*.cc
files closely, you will
notice that they are all built in the same manner, simply including a
number of things they need, and invoking a single function
plearn_main
. So they only differ in the functionalities they
#include. They have been arranged according to the external
library dependencies that will be needed to compile and link each of them. In short:
plearn_noblas
depends only on NSPR, boost (if you don't have blas, it must be compiled with pymake -noblas plearn_noblas
)
plearn_lapack
depends on NSPR, boost, BLAS, LAPACK
plearn_curses
depends on NSPR, boost, BLAS, LAPACK, ncurses
plearn_python
depends on NSPR, boost, BLAS, LAPACK, ncurses, python runtime libraries
plearn_noblas
has the smallest number of requirements, it should be the
easiest to get to compile and link. But several important learning algorithms require LAPACK.
plearn_lapack
will contain the most useful 99% of PLearn.
commands/PLearnCommands/
contains the source code for all PLearn
commands. These commands are included in the above plearn_*
programs and can be invoked with these programs in a command-line fashion.
commands/language/
contains some programs for manipulating language
corpus and WordNet related stuff.
python_modules/
PYTHONPATH
.
plearn/
subdirectory, which allows to import plearn.foobar
from python.
doc/
examples/
test_suite
plearn/
plearn_learners/
plearn_learners_experimental/
plearn_torch/
pylearn/
The plearn*
directories contain C++ source code (.h and .cc), and as your root PLearn directory is in the -I
directive of
the compilation commands, this allows to include relevant files by
directives such as, for ex:
#include<plearn/base/Object.h> #include<plearn/io/PStream.h> #include<plearn_learners/generic/PLearner.h>