The canonical form [1] of an R package Makefile includes the
following:
- The first stanza includes R_PKGNAME, R_PKGVER, PKGREVISION (as
needed), and CATEGORIES.
- HOMEPAGE is not present but defined in math/R/Makefile.extension to
refer to the CRAN web page describing the package. Other relevant
web pages are often linked from there via the URL field.
This updates all current R packages to this form, which will make
regular updates _much_ easier, especially using pkgtools/R2pkg.
[1] http://mail-index.netbsd.org/tech-pkg/2019/08/02/msg021711.html
Each R package should include ../../math/R/Makefile.extension, which also
defines MASTER_SITES. Consequently, it is redundant for the individual
packages to do the same. Package-specific definitions also prevent
redefining MASTER_SITES in a single common place.
Upstream changes:
CHANGES IN bit VERSION 1.1-14
BUG FIXES
o bit[i] and bit[i]<-v now check for non-positive integers
which prevents a segfault when bit[NA] or bit[NA]<-v
CHANGES IN bit VERSION 1.1-13
USER VISIBLE CHANGES
o logical NA is now mapped to bit FALSE as in ff booleans
o extractor function '[.bit' with positive numeric subscripts
(integer, double, bitwhich) now behaves like '[.logical' and returns
NA for out-of-bound requests and no element for 0
o extractor function '[[.bit' with positive numeric (integer, double,
bitwhich) subscripts now behaves like '[[.logical' and throws an error
for out-of-bound requests
o extractor function '[.bit' with range index subscripts (ri)
subscripts now behaves like '[[.bit' and throws an error
for out-of-bound requests
o assignment functions '[<-.bit' and '[[<-.bit' with positive numeric
(integer, double, bitwhich) subscripts now behave like '[<-.logical' and
'[[<-.logical' and silently increase vector length if necessary
o assignment function '[<-.bit' with range index subscripts (ri) now
behaves like '[[<-.bit' and silently increases vector length if necessary
o rlepack() is now a generic with a method for class 'integer'
o rleunpack() is now a generic with a method for class 'rlepack'
o unique.rlepack() now gives correct results for unordered sequences
o anyDuplicated.rlepack() now returns the position of the first
duplicate and gives correct results for unordered sequences
TUNING
o The package can now compiled with 64bit words instead of 32bit words,
since we only measured a minor speedup, we left 32bit as the default.
BUG FIXES
o extractor and assignment functions now check for legal (positive)
subscript bounds, hence illegally large subscripts or zero no longer
cause memory violations
bitmapped vectors of booleans (no NAs), coercion from and to logicals,
integers and integer subscripts; fast boolean operators and fast
summary statistics. With 'bit' vectors you can store true binary
booleans {FALSE,TRUE} at the expense of 1 bit only, on a 32 bit
architecture this means factor 32 less RAM and ~ factor 32 more speed
on boolean operations. Due to overhead of R calls, actual speed gain
depends on the size of the vector: expect gains for vectors of size >
10000 elements. Even for one-time boolean operations it can pay-off to
convert to bit, the pay-off is obvious, when such components are used
more than once. Reading from and writing to bit is approximately as
fast as accessing standard logicals - mostly due to R's time for
memory allocation. The package allows to work with pre-allocated
memory for return values by calling .Call() directly: when evaluating
the speed of C-access with pre-allocated vector memory, coping from
bit to logical requires only 70% of the time for copying from logical
to logical; and copying from logical to bit comes at a performance
penalty of 150%. the package now contains further classes for
representing logical selections: 'bitwhich' for very skewed selections
and 'ri' for selecting ranges of values for chunked processing. All
three index classes can be used for subsetting 'ff' objects (ff-2.1-0
and higher).