CXXR is currently released only in source (.tar.gz) form: the
current release is 0.38-2.13.1. Earlier
releases, as well as the 'bleeding edge' development version, can be obtained
from the Subversion
repository; see the refactoring history for
what has changed from release to release.
Note for Subversion users regarding 0.26-2.10.1 and later:
if you svn update a working directory which previously contained
0.25-2.9.2 or earlier it is necessary 'manually' to delete the directories
library/*/R-ex beneath trunk; otherwise make
check will glean examples from obsolete manual pages.
Note for Subversion users regarding 0.36-2.13.1 and later:
if you svn update a working directory which previously contained 0.35-2.12.1 or
earlier you may find it necessary to delete manually the files
src/main/gramRd.{c,d}. In 0.36-2.13.1, gramRd.c is
superseded by gramRd.cpp.
As of release 0.12-2.6.2, CXXR makes use of the Boost libraries, available from www.boost.org. Boost is available as a package as part of many Linux distributions. It is available in prepackaged form for Mac OS from www.macports.org.
To build CXXR, follow the instructions in the INSTALL file in
the top-level directory. Then invoke CXXR by running bin/R from
within the build directory; the usual R options are available. At this early
stage of development, installing CXXR is definitely not recommended - it would
overwrite your standard R installation - and consequently make
install will simply give a warning message and fail.
Please note that as downloaded, CXXR will compile without any C++ compiler optimisation and with a number of additional runtime checks enabled, and as a result CXXR will run considerably slower than CR: you will notice this even during the build process. However, you are strongly advised to use this configuration until you are confident that CXXR is running correctly on your platform and with your application, packages etc. After that, see the FAQ on how to rebuild for maximum performance.
(all on 32-bit Intel, unless otherwise stated):
make check-devel OK (using packages
gcc-4.3.0-8, glibc-2.8-8,
libstdc++-4.3.0-8). (Last checked for CXXR
0.36-2.13.1.)gcc-4.5-19.1,
glibc-2.11.3-12.19.1,
libstdc++45-4.5.1-20101208-9.8) This is currently my main
development platform. Builds and checks OK. make check-devel
OK. tools::testInstalledPackages(types=c("tests",
"vignettes"))) OK.gcc-4.2-24,
glibc-2.6.1-18.3). However, some checks may fail with C++
optimisation level -O2.gcc 4.3.2-1ubuntu11,
libc6 2.8~20080505-0ubuntu9, libstdc++6
4.3.2-1ubuntu12).make check is OK. (Beware that some Apple header
files, in particular CFBundle.h, are inconsistent with
non-Xcode versions of gcc, and give rise to the error
message "format string argument not a string type".)tr1::unordered_map included with gcc 4.0.1 is broken; this
was the version of gcc supplied with Xcode at release 3.1.3. For CXXR to
build, it is necessary to use a later version of gcc, such as the
gcc43 package of MacPorts; some tweaking is then necessary
for the CXXR build process to use the right compilers and the right
libraries. Not checked with recent releases.connections.cpp (and possibly other files) fail to compile
owing to an inconsistency vis-à-vis the system header files.
(Not recently retested.) Let me know if this causes you problems;
otherwise fixing it is low priority.The file src/include/CXXR/config.hpp can be edited to define
(or leave undefined) various C/C++ preprocessor variables, which configure
debugging and optimisation options. Refer the the doxygen documentation of this file for further
information.