This package provides R with access to
Boost header files. Boost
provides free peer-reviewed portable C++ source libraries. A large part of
Boost is provided as C++ template code which is
resolved entirely at compile-time without linking.
This package aims to provide the most useful subset of
Boost libraries for template use among CRAN
packages. By placing these libraries in this package, we offer a more
efficient distribution system for CRAN as replication of this code in the
sources of other packages is avoided.
It can be used via the LinkingTo: field in the DESCRIPTION field of an R
package — and the R package infrastructure tools will then know how to set
include flags correctly on all architectures supported by R.
Note that this can be used solely by headers-only Boost libraries. This
covers most of Boost, but excludes some libraries which require linking for
parts or all of their functionality.
Coverage
As of release 1.84.0-0, the following Boost libraries are included:
The Rcpp Gallery contains several
examples under its boost tag including the introductory
first and
second. From the
first, a simple example to compute the
greatest common demoninator of two integers follows:
// [[Rcpp::depends(BH)]]
#include <Rcpp.h>
#include <boost/math/common_factor.hpp>
// [[Rcpp::export]]
int computeGCD(int a, int b) {
return boost::math::gcd(a, b);
}
Saving it as boostExample.cpp and simple sourcing this Rcpp::sourceCpp("boostExample.cpp")
produces the function computeGCD(). See the Rcpp Gallery for more
examples.
See Also
The mailing list
at R-Forge is a good place for questions,
comments and general discussion. The issue tracker
can be used for bugs.
Updating
We aim to maintain this package in a somewhat conservative fashion and do not always
immediately jump the newest Boost releases. Rather, we (used to) start from the
Debian sources for Boost
to ensure that we work with a version that is at the same time current yet
mature. But on occassion, and as needed, and more recently, we will also go
directly to Boost releases.
In general, we plan to keep the package up-to-date with Boost
upstream, but will not necessarily follow each and every new release as we
also value the merits of relative release stability.
If needed, the script local/script/CreateBoost.sh can be used to update a forked
version to a newer version of Boost.
But what about the size?
That used to be a concern, and we wrote:
The repo has a large footprint. We know. We erroneously thought that committing
the Boost tarballs would be a good idea. It wasn’t. First attempts at pruning
the history using bfg were not that
successful. If someone has a script doing this well we would take another
look.
Otherwise we recommend to just start from
CreateBoost.sh.
and lo and behold, we got help via
this script as
discussed here. The old tarballs are now removed;
six commits were filtered and the repo has a much saner size so it can be forked more easily.
Authors
Dirk Eddelbuettel, Jay Emerson and Michael Kane
License
This package is provided under the same license as Boost itself, the BSL-1.0
bh: Boost Headers for R
Synopsis
This package provides R with access to Boost header files. Boost provides free peer-reviewed portable C++ source libraries. A large part of Boost is provided as C++ template code which is resolved entirely at compile-time without linking.
This package aims to provide the most useful subset of Boost libraries for template use among CRAN packages. By placing these libraries in this package, we offer a more efficient distribution system for CRAN as replication of this code in the sources of other packages is avoided.
It can be used via the
LinkingTo:field in theDESCRIPTIONfield of an R package — and the R package infrastructure tools will then know how to set include flags correctly on all architectures supported by R.Note that this can be used solely by headers-only Boost libraries. This covers most of Boost, but excludes some libraries which require linking for parts or all of their functionality.
Coverage
As of release 1.84.0-0, the following Boost libraries are included:
Example
The Rcpp Gallery contains several examples under its
boosttag including the introductory first and second. From the first, a simple example to compute the greatest common demoninator of two integers follows:Saving it as
boostExample.cppand simple sourcing thisRcpp::sourceCpp("boostExample.cpp")produces the functioncomputeGCD(). See the Rcpp Gallery for more examples.See Also
The mailing list at R-Forge is a good place for questions, comments and general discussion. The issue tracker can be used for bugs.
Updating
We aim to maintain this package in a somewhat conservative fashion and do not always immediately jump the newest Boost releases. Rather, we (used to) start from the Debian sources for Boost to ensure that we work with a version that is at the same time current yet mature. But on occassion, and as needed, and more recently, we will also go directly to Boost releases.
In general, we plan to keep the package up-to-date with Boost upstream, but will not necessarily follow each and every new release as we also value the merits of relative release stability.
If needed, the script
local/script/CreateBoost.shcan be used to update a forked version to a newer version of Boost.But what about the size?
That used to be a concern, and we wrote:
and lo and behold, we got help via this script as discussed here. The old tarballs are now removed; six commits were filtered and the repo has a much saner size so it can be forked more easily.
Authors
Dirk Eddelbuettel, Jay Emerson and Michael Kane
License
This package is provided under the same license as Boost itself, the BSL-1.0