2019-06-19 13:37:42 +02:00
|
|
|
# $NetBSD: Makefile,v 1.198 2019/06/19 11:37:42 jperkin Exp $
|
1998-12-04 12:36:03 +01:00
|
|
|
|
Update to 3.6.0
Upstream changes:
CHANGES IN R 3.6.0:
SIGNIFICANT USER-VISIBLE CHANGES:
* Serialization format version 3 becomes the default for
serialization and saving of the workspace (save(), serialize(),
saveRDS(), compiler::cmpfile()). Serialized data in format 3
cannot be read by versions of R prior to version 3.5.0.
Serialization format version 2 is still supported and can be
selected by version = 2 in the save/serialization functions. The
default can be changed back for the whole R session by setting
environment variables R_DEFAULT_SAVE_VERSION and
R_DEFAULT_SERIALIZE_VERSION to 2. For maximal
back-compatibility, files vignette.rds and partial.rdb generated
by R CMD build are in serialization format version 2, and resave
by default produces files in serialization format version 2
(unless the original is already in format version 3).
* The default method for generating from a discrete uniform
distribution (used in sample(), for instance) has been changed.
This addresses the fact, pointed out by Ottoboni and Stark, that
the previous method made sample() noticeably non-uniform on large
populations. See PR#17494 for a discussion. The previous method
can be requested using RNGkind() or RNGversion() if necessary for
reproduction of old results. Thanks to Duncan Murdoch for
contributing the patch and Gabe Becker for further assistance.
The output of RNGkind() has been changed to also return the
'kind' used by sample().
NEW FEATURES:
* Sys.setFileTime() has been vectorized so arguments path and time
of length greater than one are now supported.
* axis() gets new option gap.axis = NA for specifying a
multiplication factor for the minimal "gap" (distance) between
axis labels drawn. Its default is 1 for labels _parallel_ to the
axis, and 0.25 for perpendicular ones.
Perpendicular labels no longer overlap, fixing bug PR#17384.
* The default method of plot() gains new arguments xgap.axis = NA
and ygap.axis = NA to be passed to the x- and y- axis(..,
gap.axis=*) calls.
* removeSource() now works not only for functions but also for some
language objects.
* as.call(), rep.int(), rep_len() and nchar() dispatch internally.
* is(object, class2) looks for class2 in the calling namespace
after looking in the namespace of class(object).
* extendrange(.., f) with a length-2 f now extends separately to
the left and the right.
* lengths() dispatches internally to S4 methods.
* download.file() on Windows now uses URLdecode() to determine the
file extension, and uses binary transfer (mode = "wb") also for
file extension .rds.
The help page for download.file() now contains the same
information on all platforms.
* Setting C locale for collation _via_ environment variables LC_ALL
and LC_COLLATE and _via_ a call to Sys.setlocale() now takes
precedence over environment variable R_ICU_LOCALE.
* There is a new function, nullfile(), to give the file name of the
null system device (e.g., /dev/null) on the current platform.
* There are two new options, keep.parse.data and
keep.parse.data.pkgs, which control whether parse data are
included into sources when keep.source or keep.source.pkgs is
TRUE. By default, keep.parse.data.pkgs is now FALSE, which
changes previous behavior and significantly reduces space and
time overhead when sources are kept when installing packages.
* In rapply(x, ..), x can also be "list-like" and of length >=
2^{31}.
* trimws() gets new optional whitespace argument, allowing more
extensive definitions of "space", such as including Unicode
spaces (as wished in PR#17431).
* weighted.mean() no longer coerces the weights to a double/numeric
vector, since sum() now handles integer overflow. This makes
weighted.mean() more polymorphic and endomorphic, but be aware
that the results are no longer guaranteed to be a vector of type
double.
* When loading namespaces, S3 method registrations which overwrite
previous registrations are now noted by default (using
packageStartupMessage()).
* compiler::cmpfile() gains a version argument, for use when the
output file should be saved in serialization format 2.
* The axis labeling in the default method of pairs() may now be
toggled by new options horOdd and verOdd.
* (Not Windows nor macOS.) Package tcltk now supports an
environment variable R_DONT_USE_TK which if set disables Tk
initialization. This is intended for use to circumvent errors in
loading the package, e.g. with recent Linux running under an
address sanitizer.
* The numeric method of all.equal() gets optional arguments countEQ
and formatFUN. If countEQ is true, the mean error is more
sensible when many entries are *eq*ual.
* outer(x,y, FUN = "*") is more efficient using tcrossprod(u,v)
instead of u %*% t(v).
* vcov(<mlm>) is more efficient via new optional arguments in
summary.mlm().
* The default method of summary() gets an option to choose the
_kind_ of quantile()s to use; wish of PR#17438.
* Fitting multiple linear models _via_ lm() does work with _matrix_
offsets, as suggested in PR#17407.
* The new functions mem.maxVSize() and mem.maxMSize() allow the
maximal size of the vector heap and the maximal number of nodes
allowed in the current R process to be queried and set.
* news() gains support for NEWS.md files.
* An effort has been started to have our reference manuals, i.e.,
all help pages. show platform-independent information (rather
than Windows or Unix-alike specifics visible only on that
platform). Consequently, the Windows version of X11() / x11()
got identical formal arguments to the Unix one.
* sessionInfo()$running has been factored out in a new variable
osVersion.
* slice.index() now also works for multi-dimensional margins.
* untar() used with an external tar command assumes this supports
decompression including xz and automagically detecting the
compression type. This has been true of all mainstream
implementations since 2009 (for GNU tar, since version 1.22):
older implementations are still supported _via_ the new argument
support_old_tars whose default is controlled by environment
variable R_SUPPORT_OLD_TARS. (It looks like NetBSD and OpenBSD
have 'older' tar commands for this purpose.)
* The new function asplit() allow splitting an array or matrix by
its margins.
* New functions errorCondition() and warningCondition() provide a
convenient way to create structured error and warning objects.
.Deprecated() now signals a warning of class "deprecatedWarning",
and .Defunct() now signals an error of class "defunctError".
* Many 'package not found' errors are now signaled as errors of
class "packageNotFoundError".
* As an experimental feature, when loadNamespace() fails because
the requested package is not available the error is initially
signaled with a retry_loadNamespace restart available. This
allows a calling handler to try to install the package and
continue.
* S3method() directives in NAMESPACE can now also be used to
perform _delayed_ S3 method registration.
* Experimentally, setting environment variable
_R_CHECK_LENGTH_1_LOGIC2_ will lead to warnings (or errors if the
variable is set to a 'true' value) when && or || encounter and
use arguments of length more than one.
* Added "lines" and "chars" coordinate systems to grconvertX() and
grconvertY().
* getOption() is more efficient notably for the rare case when
called with two arguments, from several contributors in PR#17394.
* In .col(dim) and .row(dim), dim now may also be an integer-valued
"double".
* sQuote() and dQuote() get an explicit q argument with obvious
default instead of using getOption("fancyQuotes") implicitly and
unconditionally.
* unzip() can list archives with comments and with spaces in file
names even using an external unzip command.
* Command line completion has a new setting rc.settings(dots =
FALSE) to remove ... from the list of possible function
arguments.
* library() no longer checks packages with compiled code match
R.version$platform. loadNamespace() never has, and increasingly
the 'canonical name' does not reflect the important
characteristics of compiled code.
* The primitive functions drop() and unclass() now avoid
duplicating their data for atomic vectors that are large enough,
by returning ALTREP wrapper objects with adjusted attributes.
R-level assignments to change attributes will also use wrapper
objects to avoid duplicating data for larger atomic vectors. R
functions like structure() and unname() will therefore not
duplicate data in these settings. Generic vectors as produced by
list() are not yet covered by this optimization but may be in due
course.
* In formals(), envir becomes an optional argument instead of being
hardwired.
* Instead of signalling an error for an invalid S4 object x, str(x)
now gives a warning and subsequently still shows most parts of x,
e.g., when slots are missing.
* gamma(x) and lgamma(x) no longer warn when correctly returning
Inf or underflowing to zero. This helps maximum likelihood and
similar computations.
* convertColor() is now vectorized, so a lot faster for converting
many colours at once. The new argument vectorized to
colorConverter() ensures that non-vectorized colour converters
still work. (Thanks to Brodie Gaslam.)
* download.file() and url() get new argument headers for custom
HTTP headers, e.g., allowing to perform basic http
authentication, thanks to a patch contributed by G'abor Cs'ardi.
* File-based connection functions file(), gzfile(), bzfile() and
xzfile() now signal an error when used on a directory.
* For approx(), splinefun() _etc_, a new setting ties =
c("ordered", <fun>) allows skipping the sorting and still treat
ties.
* format(x) gives a more user friendly error message in the case
where no method is defined. A minimal method is provided in
format.default(x) when isS4(x) is true.
* which(x) now also works when x is a long vector, thanks to
Suharto Anggono's PR#17201. *NB*: this may return a double
result, breaking the previous guarantee of an integer result.
* seq.default() is more careful to return an integer (as opposed to
double) result when its arguments are large and/or classed
objects; see comment #9 of Suharto Anggono's PR#17497.
* The plot() method for lm and glm fits, plot.lm(), gains a new
option iter.smooth with a default of 0 for binomial fits, no
longer down-weighting when smoothing the residuals.
* zip() passes its list of files _via_ standard input to the
external command when too long for the command line (on some
platforms).
* data() gains an overwrite argument.
* t.test() now also returns the standard error (in list component
stderr).
* model.matrix(*, contrasts.arg = CC) now warns about invalid
contrasts.args.
* Performance of substr() and substring() has been improved.
* stopifnot() has been simplified thanks to Suharto Anggono's
proposals to become considerably faster for cheap expressions.
* The default 'user agent' has been changed when accessing http://
and https:// sites using libcurl. (A site was found which caused
libcurl to infinite-loop with the previous default.)
* sessionInfo() now also contains RNGkind() and prints it when it
differs from the default; based on a proposal and patch by Gabe
Becker in PR#17535. Also, RNGversion(getRversion()) works
directly.
* library() and require() now allow more control over handling
search path conflicts when packages are attached. The policy is
controlled by the new conflicts.policy option.
* barplot() gets a formula method, thanks to a patch proposal by
Arni Magnusson in PR#17521.
* pmax() and pmin(x) now also work for long vectors, thanks to
Suharto Anggono's PR#17533.
* bxp() now warns when omitting duplicated arguments.
* New hcl.colors() function to provide wide range of HCL-based
colour palettes with much better perceptual properties than the
existing RGB/HSV-based palettes like rainbow().
Also a new hcl.pals() function to list available palette names
for hcl.colors().
Contributed by Achim Zeileis.
* The default colours for image() and filled.contour() are now
based on hcl.colors().
* The palette-generating functions rainbow(), gray.colors(), etc.
get a new rev argument to facilitate reversing the order of
colors.
* New str2lang() and str2expression() as streamlined versions of
parse(text=., keep.source=FALSE) allow to abstract typical call
constructions, e.g., in formula manipulations. (Somewhat
experimental)
* Add update_PACKAGES() for incrementally updating a package
repository index, instead of rebuilding the index from scratch.
Thanks to Gabe Becker in PR#17544 for the patch, based on part of
his switchr package.
INSTALLATION on a UNIX-ALIKE:
* The options selected for the C++ compiler default to the C++11
standard if supported, otherwise to the C++98 standard.
* Visibility macros such as C_VISIBILITY can now be user-set
(including to empty), e.g. in config.site.
* Macro FCLIBS, which has sometimes been needed on Solaris, has
been renamed to FCLIBS_XTRA.
* Macro F77 is always set to the value of FC, so the latter should
be set to user-select the Fortran compiler for both fixed-form
and free-form Fortran. In particular, gfortran is now the first
choice for F77, not f95.
Macros FFLAGS and FCFLAGS remain distinct to allow for a compiler
which needs a flag to select free- or fixed-form Fortran (most
use the source-file extension to choose: .f is fixed-form and
.f90 and .f95 are free-form).
If only one of them is set, its value is used for both.
* The special-casing of CFLAGS, CXXFLAGS and FFLAGS for Intel
compilers on Linux has been removed: we do not have recent
experience but the generic defaults now chosen are the same as
those previously special-cased for x86_64.
If necessary, override the defaults on the configure command line
or in file config.site.
* Long-untested configure support for HP-UX and very old versions
of Linux has been removed.
* configure --with-blas (without specifying a value) includes
OpenBLAS in its search (before ATLAS and a generic BLAS). This
follows recent versions of the ax_blas autoconf macro.
* The configure macro MAKEINFO has been updated to TEXI2ANY.
* Support for make install-strip has been enhanced.
PACKAGE INSTALLATION:
* Source package installation is by default 'staged': the package
is installed into a temporary location under the final library
directory and moved into place once the installation is complete.
The benefit is that partially-installed packages are hidden from
other R sessions.
The overall default is set by environment variable
R_INSTALL_STAGED. R CMD INSTALL has new options --staged-install
and --no-staged-install, and packages can use the StagedInstall
field in their DESCRIPTION file to opt out. (That opt-out is a
temporary measure which may be withdrawn in future.)
Staged installation requires either --pkglock or --lock, one of
which is used by default.
* The interpretation of source code with extension .f is changing.
Previously this denoted FORTRAN 77 code, but current compilers no
longer have a FORTRAN 77 mode and interpret it as 'fixed-form'
Fortran 90 (or later where supported) code. Extensions .f90 and
.f95 continue to indicate 'free-form' Fortran code.
Legal FORTRAN 77 code is also legal fixed-form Fortran 9x;
however this change legitimizes the use of later features, in
particular to replace features marked 'obsolescent' in Fortran 90
and 'deleted' in Fortran 2018 which gfortran 8.x and later warn
about.
* Packages containing files in the src directory with extensions
.f90 or .f95 are now linked using the C or C++ compiler rather
than the Fortran 9x compiler. This is consistent with fixed-form
Fortran code and allows mixing of C++ and free-form Fortran on
most platforms.
Consequentially, a package which includes free-form Fortran 9x
code which uses OpenMP should include SHLIB_OPENMP_CFLAGS (or the
CXXFLAGS version if they also include C++ code) in PKG_LIBS
rather than SHLIB_OPENMP_FCFLAGS - fortunately on almost all
current platforms they are the same flag.
* Macro PKG_FFLAGS will be used for the compilation of both
fixed-form and free-form Fortran code unless PKG_FCFLAGS is also
set (in src/Makevars or src/Makevars.win).
* The make macro F_VISIBILITY is now preferred for both fixed-form
and free-form Fortran, for use in src/Makevars and similar.
* R CMD INSTALL gains a new option --strip which (where supported)
strips installed shared object(s): this can also be achieved by
setting the environment variable _R_SHLIB_STRIP_ to a true value.
The new option --strip-lib attempts stripping of static and
shared libraries installed under lib.
These are most useful on platforms using GNU binutils (such as
Linux) and compiling with -g flags.
* There is more support for installing UTF-8-encoded packages in a
strict Latin-1 locale (and probably for other Latin locales):
non-ASCII comments in R code (and NAMESPACE files) are worked
around better.
UTILITIES:
* R CMD check now optionally checks makefiles for correct and
portable use of the SHLIB_OPENMP_*FLAGS macros.
* R CMD check now evaluates \Sexpr{} expressions (including those
in macros) before checking the contents of Rd files and so
detects issues both in evaluating the expressions and in the
expanded contents.
* R CMD check now lists missing packages separated by commas and
with regular quotes such as to be useful as argument in calling
install.packages(c(..)); from a suggestion by Marcel Ramos.
* tools::Rd2latex() now uses UTF-8 as its default output encoding.
* R CMD check now checks line endings of files with extension .hpp
and those under inst/include. The check now includes that a
non-empty file is terminated with a newline.
R CMD build will correct line endings in such files.
* R CMD check now tries re-building all vignettes rather than
stopping at the first error: whilst doing so it adds 'bookmarks'
to the log. By default (see the 'R Internals' manual) it
re-builds each vignette in a separate process.
It now checks for duplicated vignette titles (also known as
'index entries'): they are used as hyperlinks on CRAN package
pages and so do need to be unique.
* R CMD check has more comprehensive checks on the data directory
and the functioning of data() in a package.
* R CMD check now checks autoconf-generated configure files have
their corresponding source files, including optionally attempting
to regenerate them on platforms with autoreconf.
* R CMD build has a new option --compression to select the
compression used for the tarball.
* R CMD build now removes src/*.mod files on all platforms.
C-LEVEL FACILITIES:
* New pointer protection C functions R_PreserveInMSet and
R_ReleaseFromMSet have been introduced to replace UNPROTECT_PTR,
which is not safe to mix with UNPROTECT (and with
PROTECT_WITH_INDEX). Intended for use in parsers only.
* NAMEDMAX has been raised to 7 to allow further protection of
intermediate results from (usually ill-advised) assignments in
arguments to BUILTIN functions. Properly written package code
should not be affected.
* R_unif_index is now considered to be part of the C API.
* R_GetCurrentEnv() allows C code to retrieve the current
environment.
DEPRECATED AND DEFUNCT:
* Argument compressed of untar() is deprecated - it is only used
for external tar commands which increasingly for extraction
auto-detect compression and ignore their zjJ flags.
* var(f) and hence sd(f) now give an error for factor arguments;
they gave a deprecation warning since R 3.2.3, PR#16564.
* Package tools' vignetteDepends() has been deprecated (it called a
function deprecated since Feb 2016), being partly replaced by
newly exported vignetteInfo().
* The f77_f2c script has been removed: it no longer sufficed to
compile the .f files in R.
* The deprecated legacy support of make macros such as CXX1X has
been removed: use the CXX11 forms instead.
* Make macro F77_VISIBILITY is deprecated in favour of
F_VISIBILITY.
* Make macros F77, FCPIFCPLAGS and SHLIB_OPENMP_FCFLAGS are
deprecated in favour of FC, FPICFLAGS and SHLIB_OPENMP_FFLAGS
respectively.
* $.data.frame had become an expensive version of the default
method, so has been removed. (Thanks to Radford Neal for picking
this up and to Duncan Murdoch for providing a patch.)
BUG FIXES:
* replayPlot(r) now also works in the same R session when r has
been "reproduced" from serialization, typically after saving to
and reading from an RDS file.
* substr() and substring() now signal an error when the input is
invalid UTF-8.
* file.copy() now works also when its argument to is of length
greater than one.
* mantelhaen.test() no longer suffers from integer overflow in
largish cases, thanks to Ben Bolker's PR#17383.
* Calling setGeneric("foo") in a package no longer fails when the
enclosing environment of the implicit generic foo() is
.GlobalEnv.
* untar(file("<some>.tar.gz"), *) now gives a better error message,
suggesting to use gzfile() instead.
* Method dispatch uses more relevant environments when looking up
class definitions.
* The documentation for identify() incorrectly claimed that the
indices of identified points were returned in the order that the
points were selected. identify() now has a new argument order to
allow the return value to include the order in which points were
identified; the documentation has been updated. Reported by
Richard Rowe and Samuel Granjeaud.
* order(...., decreasing=c(TRUE, FALSE)) could fail in some cases.
Reported from StackOverflow via Karl Nordstr"om.
* User macros in Rd files now accept empty and multi-line
arguments.
* Changes in print.*(), thanks to Lionel Henry's patches in
PR#17398:
* Printing lists, pairlists or attributes containing calls with
S3 class no longer evaluate those.
* Printing S4 objects within lists and pairlists dispatches
with show() rather than print(), as with auto-printing.
* The indexing tags (names or [[<n>]]) of recursive data
structures are now printed correctly in complex cases.
* Arguments supplied to print() are now properly forwarded to
methods when printing lists, pairlists or attributes
containing S3 objects.
* The print parameters are now preserved when printing S3
objects or deparsing symbols and calls. Previously, printing
lists containing S3 objects or expressions would reset these
parameters.
* Printing lists, pairlists or attributes containing functions
now uses srcref attributes if present.
* Calling install.packages() with a length zero pkgs argument now
is a no-op (PR#17422).
* unlist(x) now returns a correct factor when x is a nested list
with factor leaves, fixing PR#12572 and PR#17419.
* The documentation help(family) gives more details about the aic
component, thanks to Ben Bolker's prompting.
* The documentation for attributes and `attributes<-` now gives x
as name of the first and main argument which the implementation
has been requiring, fixing PR#17434. For consistency, the first
argument name is also changed from obj to x for
`mostattributes<-`.
* strwidth() now uses par("font") as default font face (PR#17352).
* plot(<table>, log="x") no longer warns about log.
* The print() method for "htest" objects now formats the test
statistic and parameter directly and hence no longer rounds to
units _before_ the decimal point. Consequently, printing of
t.test() results with a small number of digits now shows
non-large df's to the full precision (PR#17444).
* kruskal.test() and fligner.test() no longer erroneously insist on
numeric g group arguments (PR#16719).
* Printing a news db via the browser now does a much better job
(PR#17433).
* print.aov() missed column names in the multivariate case due to
misspelling (reported by Chris Andrews).
* axis() now creates valid at locations also for small subnormal
number ranges in log scale plots.
* format.POSIXlt() now also recycles the zone and gmtoff list
components to full length when needed, and its internal C code
detects have_zone in more cases. In some cases, this changes its
output to become compatible with format.POSIXct().
* On Windows, detectCores() in package parallel now detects
processors in all processor groups, not just the group R is
running in (impacts particularly systems with more than 64
logical processors). Reported by Arunkumar Srinivasan.
* On Windows, socketSelect() would hang with more than 64 sockets,
and hence parallel::clusterApplyLB() would hang with more than 64
workers. Reported by Arunkumar Srinivasan.
* as(1L, "double") now does coerce (PR#17457).
* lm.influence(), influence.measures(), rstudent() etc now work
(more) correctly for multivariate models ("mlm"), thanks to
(anonymous) stackoverflow remarks.
* sample.int(2.9, *, replace=TRUE) again behaves as documented and
as in R < 3.0.0, namely identically to sample.int(2, ..).
* Fixes to convertColor() for chromatic adaptation; thanks to
Brodie Gaslam PR#17473.
* Using \Sexpr[stage=install]{..} to create an Rd section no longer
gives a warning in R CMD check; problem originally posted by
G'abor Cs'ardi, then reported as PR#17479 with a partial patch by
Duncan Murdoch.
* Parse data now include a special node for equal assignment.
* split.default() no longer relies on [[<-(), so it behaves as
expected when splitting an object by a factor with the empty
string as one of its levels. Thanks to Brad Friedman for the
report.
* Line numbers in messages about .Rd files are now more reliable,
thanks to a patch from Duncan Murdoch.
* In the numeric method for all.equal(), a numeric scale argument
is now checked to be positive and allowed to be of length > 1.
(The latter worked originally and with a warning in recent
years).
* Deferred string conversions now record the OutDec option setting
when not equal to the default. Reported by Michael Sannella.
* When y is numeric and f a factor, plot(y ~ f) nicely uses "y" and
"f" as y- and x-labels. The more direct boxplot(y ~ f) now does
too. The new argument ann = FALSE may be used to suppress these.
* Subassignment to no/empty rows of a data frame is more consistent
and typically a no-op in all cases instead of sometimes an error;
part of Emil Bode's PR#17483.
* Calls like formatC(*, zero.print = "< 0.001") no longer give an
error and are further improved via new optional argument
replace.zero. Reported by David Hugh-Jones.
* methods::formalArgs("<fn>") now finds the same function as
formals("<fn>"), fixing Emil Bode's PR#17499.
* The methods package better handles duplicated class names across
packages.
* The default method of seq() now avoids integer overflow, thanks
to the report and "cumsum" patch of Suharto Anggono's PR#17497.
* sub() no longer loses encodings for non-ASCII replacements
(PR#17509).
* Fix for rotated raster image on X11 device. (Partial fix for
PR#17148; thanks to Mikko Korpela).
* formula(model.frame(frml, ..)) now returns frml in all cases,
thanks to Bill Dunlap. The previous behavior is available as
DF2formula(<model.frame>).
* ar.ols() also returns scalar var.pred in univariate case
(PR#17517).
* normalizePath() now treats NA path as non-existent and normalizes
it to NA. file.access() treats NA file name as non-existent.
file.edit() and connection functions such as file() now treat NA
file names as errors.
* The internal regularize.values() auxiliary of approx(),
splinefun() etc now warns again when there are ties and the
caller did not specify ties. Further, it no longer duplicates x
and y unnecessarily when x is already sorted (PR#17515).
* strtoi("", base) now gives NA on all platforms, following its
documentation. Reported by Michael Chirico.
* In the definition of an S4 class, prototype elements are checked
against the slots of the class, with giving a prototype for an
undefined slot now being an error. (Reported by Bill Dunlap.)
* From setClassUnion(), if environment variable
_R_METHODS_SHOW_CHECKSUBCLASSES is set to true, the internal
.checkSubclasses() utility prints debugging info to see where it
is used.
* max.col(m) with an m of zero columns now returns integer NA
(instead of 1).
* axTicks() no longer returns small "almost zero" numbers (in
exponential format) instead of zero, fixing Ilario Gelmetti's
PR#17534.
* isSymmetric(matrix(0, dimnames=list("A","b"))) is FALSE again, as
always documented.
* The cairo_pdf graphics device (and other Cairo-based devices) now
clip correctly to the right and bottom border.
There was an off-by-one-pixel bug, reported by Lee Kelvin.
* as.roman(3) <= 2:4 and all other comparisons now work, as do
group "Summary" function calls such as max(as.roman(sample(20)))
and as.roman(NA). (Partly reported by Bill Dunlap in PR#17542.)
* reformulate("x", response = "sin(y)") no longer produces extra
back quotes, PR#17359, and gains new optional argument env.
* When reading console input from stdin with re-encoding (R
--encoding=enc < input) the code on a Unix-alike now ensures that
each converted input line is terminated with a newline even if
re-encoding fails.
* as.matrix.data.frame() now produces better strings from logicals,
thanks to PR#17548 from Gabe Becker.
* The S4 generic signature of rowSums(), rowMeans(), colSums() and
colMeans() is restricted to "x".
* match(x, tab) now works for long _character_ vectors x, thanks to
PR#17552 by Andreas Kersting.
* Class unions are unloaded when their namespace is unloaded
(PR#17531, adapted from a patch by Brodie Gaslam).
* selectMethod() is robust to ANY-truncation of method signatures
(thanks to Herve Pages for the report).
2019-06-09 15:39:12 +02:00
|
|
|
DISTNAME= R-3.6.0
|
2017-10-18 18:14:30 +02:00
|
|
|
CATEGORIES= math
|
|
|
|
MASTER_SITES= ${MASTER_SITE_R_CRAN:=base/R-3/}
|
2000-04-19 17:30:05 +02:00
|
|
|
|
2017-10-18 18:14:30 +02:00
|
|
|
MAINTAINER= markd@NetBSD.org
|
|
|
|
HOMEPAGE= http://www.R-project.org/
|
|
|
|
COMMENT= Statistical language for data analysis and graphics
|
|
|
|
LICENSE= gnu-gpl-v2
|
2000-04-19 17:30:05 +02:00
|
|
|
|
2014-03-13 12:08:49 +01:00
|
|
|
USE_GCC_RUNTIME= yes
|
|
|
|
|
2013-04-06 05:16:50 +02:00
|
|
|
BUILD_TARGET= all info
|
|
|
|
INSTALL_TARGET= install install-info
|
2003-12-03 13:05:18 +01:00
|
|
|
TEST_TARGET= check
|
2011-12-04 19:42:02 +01:00
|
|
|
USE_LANGUAGES= c c++ fortran
|
2005-12-02 00:11:26 +01:00
|
|
|
USE_LIBTOOL= yes
|
2019-06-14 12:37:04 +02:00
|
|
|
USE_TOOLS+= aclocal autoconf autoreconf automake gmake gzip:run
|
|
|
|
USE_TOOLS+= makeinfo perl:run pkg-config sed unzip:run
|
2015-05-30 14:31:01 +02:00
|
|
|
TEXINFO_REQD= 5.1
|
2013-04-06 05:16:50 +02:00
|
|
|
INFO_FILES= yes
|
2000-04-19 17:30:05 +02:00
|
|
|
|
2011-03-29 20:07:50 +02:00
|
|
|
PTHREAD_AUTO_VARS= yes
|
|
|
|
|
2005-09-28 22:52:18 +02:00
|
|
|
GNU_CONFIGURE= yes
|
Update R to version 1.6.1.
Pkgsrc changes:
Now builds the libR.so and provides a buildlink2.mk for packages that want
to use it. From suggestions from Kent Polk.
Recommended library set is now included in the base package.
Changes:
CHANGES IN R VERSION 1.6.1
NEW FEATURES
o Added a few "trivial and obviously missing" functions to tcltk:
tkchooseDirectory, tkpopup, tkdialog, tkread
o barplot() has a new argument `axis.lty', which if set to 1
allows the pre-1.6.0 behaviour of plotting the axis and tick
marks for the categorical axis. (This was apparently not
intentional, but axis() used to ignore lty=0.)
The argument `border' is no longer ".NotYetUsed".
CHANGES IN R VERSION 1.6.0
USER-VISIBLE CHANGES
o The default colour palette now has "grey" instead of "white"
in location 8. See palette().
o grid(nx) behaves differently (but the same as in R versions <= 0.64).
NEW FEATURES
o Preparations for name space support:
o The objects created in the methods package to represent
classes, generic functions, method definitions, and
inheritance relations now themselves belong to true classes. In
particular, the "classRepresentation" objects follow the description
in "Programming with Data" (section 7.6).
o Other additions and changes to the methods package:
o New methods ([[, print, str) and extended plot() method
(incl. logical `horiz') for "dendrogram" class.
o sprintf() now checks the agreement between formats and object
types, and handles special values (NA, Inf, ...) correctly.
o chol() now uses a tolerance for non-positive-definiteness and
so should give more consistent results across platforms.
o New function agrep() for approximate (fuzzy) string matching.
o help.search() can now use both approximate (fuzzy) and regular
expression matching. By default, if the pattern to be matched
consists of only alphanumeric characters, whitespace or a dash,
approximate matching is used.
o axis() has three new optional arguments `col', `lty', and `lwd'
all for drawing the axis line and tick marks.
o Function vcov() (formerly in MASS), a generic function to
return the variance-covariance matrix of the parameter
estimates of a fitted model.
o duplicated() and unique() have methods for matrices and arrays
(based on ideas from Jens Oehlschl<E4>gel).
o Internally memory sizes and counts of cons cells are now stored
in unsigned longs. This allows memory limits to be set and
objects created in the range 2-4Gb on 32-bit platforms, and
allows 64-bit platforms to use much larger amounts of memory.
o Command-line flags to set memory can now use the suffix `G'
for gigabytes. The setting of maximum vsize is now only
limited by the platform's address space.
o All warning and error messages are truncated to a length set
by options(warning.length=), defaulting to 1000. (Previously
most (but not quite all) were truncated at 8192 characters.)
o [dpqr]gamma() check for shape parameter > 0.
o as.POSIX[cl]t can now convert logical NAs.
o All installed packages (even those shipped with R) are
given a `Built' field in the DESCRIPTION file.
o as.data.frame() now coerces logical matrices into logical
columns (rather than factors).
o [[<-.data.frame no longer coerces character replacement values
to factor. This is consistent with using $ to replace and
with S4.
o library() attempts to detect improperly installed packages, so
as from this version an installed package must have a
DESCRIPTION file and that file must have been stamped with a
`Built:' line (which was introduced in 1.2.0). Under
Unix-alikes, the platform is checked against that used for
installation.
o print.factor() has new arguments `max.levels' (with a smart default)
and `width'. print.ordered() is no longer needed.
o RNGkind() has an additional option for normal random generators:
"Inversion".
o data.frame() recycles factors and "AsIs" objects as well as
atomic vectors.
o rect() accepts additional graphics parameters through a ...
argument (in the same way as polygon).
o strwidth/strheight() now coerce their first argument in exactly
the same way text() does, so a wider range of inputs is allowed.
o prompt()'s default and data.frame methods have a new 3rd argument
`name' allowing them to used more easily in scripts and loops.
o rgb() has a new `maxColorValue' argument, allowing r,g,b in [0,M],
particularly in {0:255}, efficiently and non-error-prone.
o summaryRprof() provides the functionality of R CMD Rprof in R
code, though more slowly.
o pdf() now uses PDF not R code for clipping, which ensures that
partially visible text strings are (partially) shown.
o Each R session uses a per-session temporary directory which
is removed at normal termination. The directory name is given
by the tempdir() function, and filenames returned by
tempfile() will be within that directory.
o help.start() on Unix now uses a .R subdirectory of the
per-session temporary directory and not ~/.R. A side effect
is that ~/.R is now never deleted by R.
o cbind/rbind() used to ignore all zero-length vectors, an
undocumented quirk for S-compatibility. This caused problems
when combining zero-extent matrices and zero-length vectors, and
now zero-length vectors are ignored unless the result would
have zero rows/columns.
o plot.spec(x) now also works for other x than AR and Pgram results.
o New functions La.chol() and La.chol2inv() for Cholesky
decomposition and inverse of positive definite matrices using
Lapack.
o Changes to the tcltk package
o New function axTicks() returning tick mark locations like axis().
o grid() has a more sensible default behavior. Tick axis alignment
only happens when no numbers of grid cells are specified. New
arguments lwd and equilogs; nx/ny = NA for not drawing, see ?grid.
o installed.packages() has a new argument `priority'.
o termplot() uses factor levels rather than 1,2,3... for x-axis.
o The trace() function has been robustified and a new function
tracingState() added to turn tracing temporarily on and off.
o New cophenetic() in "mva" as utility for hierarchical clustering.
o p.adjust() has two new methods, 'Hommel' and 'FDR', contributed
by Gordon Smyth <smyth@wehi.edu.au>.
o stars() now has add and plot arguments.
and lots of bug fixes.
2002-12-10 12:58:10 +01:00
|
|
|
CONFIGURE_ARGS+= --enable-R-shlib
|
2000-08-12 01:02:37 +02:00
|
|
|
CONFIGURE_ARGS+= --with-readline
|
R: update to 3.4.2
CHANGES IN R 3.4.2:
NEW FEATURES:
* Setting the LC_ALL category in Sys.setlocale() invalidates any
cached locale-specific day/month names and the AM/PM indicator
for strptime() (as setting LC_TIME has since R 3.1.0).
* The version of LAPACK included in the sources has been updated to
3.7.1, a bug-fix release.
* The default for tools::write_PACKAGES(rds_compress=) has been
changed to "xz" to match the compression used by CRAN.
* c() and unlist() are now more efficient in constructing the
names(.) of their return value, thanks to a proposal by Suharto
Anggono. (PR#17284)
CHANGES IN R 3.4.0:
SIGNIFICANT USER-VISIBLE CHANGES:
* (Unix-alike) The default methods for download.file() and url()
now choose "libcurl" except for file:// URLs. There will be
small changes in the format and wording of messages, including in
rare cases if an issue is a warning or an error. For example,
when HTTP re-direction occurs, some messages refer to the final
URL rather than the specified one.
Those who use proxies should check that their settings are
compatible (see ?download.file: the most commonly used forms work
for both "internal" and "libcurl").
* table() has been amended to be more internally consistent and
become back compatible to R <= 2.7.2 again. Consequently,
table(1:2, exclude = NULL) no longer contains a zero count for
<NA>, but useNA = "always" continues to do so.
* summary.default() no longer rounds, but its print method does
resulting in less extraneous rounding, notably of numbers in the
ten thousands.
* factor(x, exclude = L) behaves more rationally when x or L are
character vectors. Further, exclude = <factor> now behaves as
documented for long.
* Arithmetic, logic (&, |) and comparison (aka 'relational', e.g.,
<, ==) operations with arrays now behave consistently, notably
for arrays of length zero.
Arithmetic between length-1 arrays and longer non-arrays had
silently dropped the array attributes and recycled. This now
gives a warning and will signal an error in the future, as it has
always for logic and comparison operations in these cases (e.g.,
compare matrix(1,1) + 2:3 and matrix(1,1) < 2:3).
* The JIT ('Just In Time') byte-code compiler is now enabled by
default at its level 3. This means functions will be compiled on
first or second use and top-level loops will be compiled and then
run. (Thanks to Tomas Kalibera for extensive work to make this
possible.)
For now, the compiler will not compile code containing explicit
calls to browser(): this is to support single stepping from the
browser() call.
JIT compilation can be disabled for the rest of the session using
compiler::enableJIT(0) or by setting environment variable
R_ENABLE_JIT to 0.
* xtabs() works more consistently with NAs, also in its result no
longer setting them to 0. Further, a new logical option addNA
allows to count NAs where appropriate. Additionally, for the
case sparse = TRUE, the result's dimnames are identical to the
default case's.
* Matrix products now consistently bypass BLAS when the inputs have
NaN/Inf values. Performance of the check of inputs has been
improved. Performance when BLAS is used is improved for
matrix/vector and vector/matrix multiplication (DGEMV is now used
instead of DGEMM).
One can now choose from alternative matrix product
implementations _via_ options(matprod = ). The "internal"
implementation is not optimized for speed but consistent in
precision with other summations in R (using long double
accumulators where available). "blas" calls BLAS directly for
best speed, but usually with undefined behavior for inputs with
NaN/Inf.
NEW FEATURES:
* User errors such as integrate(f, 0:1, 2) are now caught.
* Add signature argument to debug(), debugonce(), undebug() and
isdebugged() for more conveniently debugging S3 and S4 methods.
(Based on a patch by Gabe Becker.)
* Add utils::debugcall() and utils::undebugcall() for debugging the
function that would be called by evaluating the given expression.
When the call is to an S4 generic or standard S3 generic,
debugcall() debugs the method that would be dispatched. A number
of internal utilities were added to support this, most notably
utils::isS3stdGeneric(). (Based on a patch by Gabe Becker.)
And many more - see the NEWS file for details.
2017-10-21 04:40:56 +02:00
|
|
|
CONFIGURE_ARGS+= --with-lapack
|
2001-07-23 15:14:44 +02:00
|
|
|
CONFIGURE_ARGS+= --with-tcltk
|
2002-09-09 02:59:00 +02:00
|
|
|
CONFIGURE_ARGS+= --with-tcl-config=${BUILDLINK_PREFIX.tcl}/lib/tclConfig.sh
|
|
|
|
CONFIGURE_ARGS+= --with-tk-config=${BUILDLINK_PREFIX.tk}/lib/tkConfig.sh
|
2001-07-23 15:14:44 +02:00
|
|
|
CONFIGURE_ARGS+= --without-gnome # not yet stable
|
2005-12-11 15:37:12 +01:00
|
|
|
CONFIGURE_ARGS+= --with-system-zlib
|
|
|
|
CONFIGURE_ARGS+= --with-system-bzlib
|
|
|
|
CONFIGURE_ARGS+= --with-system-pcre
|
Changes 2.10.0:
* Package help is now converted from Rd by the R-based converters
that were first introduced in 2.9.0.
* HTML help is now generated dynamically using an HTTP server
running in the R process and listening on the loopback interface.
* polygon(), pdf() and postscript() now have a parameter
'fillOddEven' (default FALSE), which controls the mode used for
polygon fills of self-intersecting shapes.
* New debugonce() function; further,
getOption("deparse.max.lines") is now observed when debugging.
* plot() methods for "stepfun" and hence "ecdf" no longer plot
points by default for n >= 1000.
* [g]sub(*, perl=TRUE) now also supports '\E' in order to *end*
\U and \L case changes, thanks to a patch from Bill Dunlap.
* factor(), `levels<-`(), etc, now ensure that the resulting factor
levels are unique (as was always the implied intention). Factors
with duplicated levels are still constructible by low-level means,
but are now declared illegal.
* New print() (S3) method for class "function", also used for
auto-printing. Further, .Primitive functions now print and
auto-print identically.
* The print() and toLatex() methods for class "sessionInfo" now
show the locale in a nicer format and have arguments to
suppress locale information.
* In addition to previously only round(), there are other 'Math'
group (S3) methods for 'difftime', such as floor(), signif(), abs(), etc.
* For completeness, old.packages() and available.packages() allow
'type' to be specified (you could always specify 'available'
or 'contriburl').
* More...
2009-12-11 19:53:40 +01:00
|
|
|
CONFIGURE_ARGS+= --with-system-xz
|
2001-07-23 15:14:44 +02:00
|
|
|
|
Update to R 3.0.3. update from wen heping.
CHANGES IN R 3.0.3:
NEW FEATURES:
* On Windows there is support for making .texi manuals using
texinfo 5.0 or later: the setting is in file
src/gnuwin32/MkRules.dist.
A packaging of the Perl script and modules for texinfo 5.2 has
been made available at <URL:
http://www.stats.ox.ac.uk/pub/Rtools/>.
* write.table() now handles matrices of 2^31 or more elements, for
those with large amounts of patience and disc space.
* There is a new function, La_version(), to report the version of
LAPACK in use.
* The HTML version of 'An Introduction to R' now has links to PNG
versions of the figures.
* There is some support to produce manuals in ebook formats. (See
doc/manual/Makefile. Suggested by Mauro Cavalcanti.)
* On a Unix-alike Sys.timezone() returns NA if the environment
variable TZ is unset, to distinguish it from an empty string
which on some OSes means the UTC time zone.
* The backtick may now be escaped in strings, to allow names
containing them to be constructed, e.g. `\``.
* read.table(), readLines() and scan() now warn when an embedded
nul is found in the input.
* KalmanForecast(fast = FALSE) is now the default, and the help
contains an example of how fast = TRUE can be used in this
version. (The usage will change in 3.1.0.)
* strptime() now checks the locale only when locale-specific
formats are used and caches the locale in use: this can halve the
time taken on OSes with slow system functions (e.g. OS X).
* strptime() and the format() methods for classes "POSIXct",
"POSIXlt" and "Date" recognize strings with marked encodings:
this allows, for example, UTF-8 French month names to be read on
(French) Windows.
* iconv(to = "utf8") is now accepted on all platforms (some
implementations did already, but GNU libiconv did not: however
converted strings were not marked as being in UTF-8). The
official name, "UTF-8" is still preferred.
* available.packages() is better protected against corrupt metadata
files.
* Finalizers are marked to be run at garbage collection, but run
only at a somewhat safer later time (when interrupts are
checked). This circumvents some problems with finalizers running
arbitrary code during garbage collection (the known instances
being running options() and (C-level) path.expand()
re-entrantly).
2014-03-14 21:15:38 +01:00
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
.if ${OPSYS} == "NetBSD" || ${OPSYS} == "FreeBSD"
|
|
|
|
CONFIGURE_ARGS+= --enable-long-double=no
|
|
|
|
.endif
|
|
|
|
|
Update to R 3.1.0
NEW FEATURES:
* type.convert() (and hence by default read.table()) returns a
character vector or factor when representing a numeric input as a
double would lose accuracy. Similarly for complex inputs.
If a file contains numeric data with unrepresentable numbers of
decimal places that are intended to be read as numeric, specify
colClasses in read.table() to be "numeric".
* tools::Rdiff(useDiff = FALSE) is closer to the POSIX definition
of diff -b (as distinct from the description in the man pages of
most systems).
* New function anyNA(), a version of any(is.na(.)) which is fast
for atomic vectors, based on a proposal by Tim Hesterberg.
* arrayInd(*, useNames = TRUE) and, analogously, which(*, arr.ind =
TRUE) now make use of names(.dimnames) when available.
* is.unsorted() now also works for raw vectors.
* The "table" method for as.data.frame() (also useful as
as.data.frame.table()) now passes sep and base arguments to
provideDimnames().
* uniroot() gets new optional arguments, notably extendInt,
allowing to auto-extend the search interval when needed. The
return value has an extra component, init.it.
* switch(f, ...) now warns when f is a factor, as this typically
happens accidentally where the useR meant to pass a character
string, but f is treated as integer (as always documented).
* The parser has been modified to use less memory.
* The way the unary operators (+ - !) handle attributes is now more
consistent. If there is no coercion, all attributes (including
class) are copied from the input to the result: otherwise only
names, dims and dimnames are.
* colorRamp() and colorRampPalette() now allow non-opaque colours
and a ramp in opacity via the new argument alpha = TRUE.
(Suggested by Alberto Krone-Martins, but optionally as there are
existing uses which expect only RGB values.)
* grid.show.layout() and grid.show.viewport() get an optional vp.ex
argument.
* There is a new function find_gs_cmd() in the tools package to
locate a GhostScript executable. (This is an enhanced version of
a previously internal function there.)
* object.size() gains a format() method.
* There is a new family, "ArialMT", for the pdf() and postscript()
devices. This will only be rendered correctly on viewers which
have access to Monotype TrueType fonts (which are sometimes
requested by journals).
* The text and PDF news files, including NEWS and NEWS.2, have been
moved to the doc directory.
* combn(x, simplify = TRUE) now gives a factor result for factor
input x (previously user error).
* Added utils::fileSnapshot() and utils::changedFiles() functions
to allow snapshots and comparison of directories of files.
* make.names(names, unique=TRUE) now tries to preserve existing
names.
* New functions cospi(x), sinpi(x), and tanpi(x), for more accurate
computation of cos(pi*x), etc, both in R and the C API. Using
these gains accuracy in some cases, e.g., inside lgamma() or
besselI().
* print.table(x, zero.print = ".") now also has an effect when x is
not integer-valued.
* There is more support to explore the system's idea of time-zone
names. Sys.timezone() tries to give the current system setting
by name (and succeeds at least on Linux, OS X, Solaris and
Windows), and OlsonNames() lists the names in the system's Olson
database. Sys.timezone(location = FALSE) gives the previous
behaviour.
* Platforms with a 64-bit time_t type are allowed to handle
conversions between the "POSIXct" and "POSIXlt" classes for
date-times outside the 32-bit range (before 1902 or after 2037):
the existing workarounds are used on other platforms. (Note that
time-zone information for post-2037 is speculative at best, and
the OS services are tested for known errors and so not used on OS
X.)
Currently time_t is usually long and hence 64-bit on Unix-alike
64-bit platforms: however it several cases the time-zone database
is 32-bit. On R for Windows it is 64-bit (for both architectures
as from this version).
* The "save.defaults" option can include a value for
compression_level.
* colSums() and friends now have support for arrays and data-frame
columns with 2^31 or more elements.
* as.factor() is faster when f is an unclassed integer vector (for
example, when called from tapply()).
* fft() now works with longer inputs, from the 12 million
previously supported up to 2 billion.
* Complex svd() now uses LAPACK subroutine ZGESDD, the complex
analogue of the routine used for the real case.
* Sweave now outputs .tex files in UTF-8 if the input encoding is
declared to be UTF-8, regardless of the local encoding. The
UTF-8 encoding may now be declared using a LaTeX comment
containing the string %\SweaveUTF8 on a line by itself.
* file.copy() gains a copy.date argument.
* Printing of date-times will make use of the time-zone
abbreviation in use at the time, if known. For example, for
Paris pre-1940 this could be LMT, PMT, WET or WEST. To enable
this, the "POSIXlt" class has an optional component "zone"
recording the abbreviation for each element.
For platforms which support it, there is also a component
"gmtoff" recording the offset from GMT where known.
* (On Windows, by default on OS X and optionally elsewhere.) The
system C function strftime has been replaced by a more
comprehensive version with closer conformance to the POSIX 2008
standard.
* dnorm(x, log = FALSE) is more accurate (but somewhat slower) for
|x| > 5.
* Some versions of the tiff() device have further compression
options.
* read.table(), readLines() and scan() have a new argument to
influence the treatment of embedded nuls.
* Avoid duplicating the right hand side values in complex
assignments when possible. This reduces copying of replacement
values in expressions such as Z$a <- a0 and ans[[i]] <- tmp: some
package code has relied on there being copies.
Also, a number of other changes to reduce copying of objects; all
contributed by or based on suggestions by Michael Lawrence.
* The fast argument of KalmanLike(), KalmanRun() and
KalmanForecast() has been replaced by update, which instead of
updating mod in place, optionally returns the updated model in an
attribute "mod" of the return value.
* arima() and makeARIMA() get a new optional argument SSinit,
allowing the choice of a different *s*tate *s*pace initialization
which has been observed to be more reliable close to
non-stationarity.
* warning() has a new argument noBreaks., to simplify
post-processing of output with options(warn = 1).
* pushBack() gains an argument encoding, to support reading of
UTF-8 characters using scan(), read.table() and related functions
in a non-UTF-8 locale.
* all.equal.list() gets a new argument use.names which by default
labels differing components by names (if they match) rather than
by integer index. Saved R output in packages may need to be
updated.
* The methods for all.equal() and attr.all.equal() now have
argument check.attributes after ... so it cannot be partially nor
positionally matched (as it has been, unintentionally).
A side effect is that some previously undetected errors of
passing empty arguments (no object between commas) to all.equal()
are detected and reported.
There are explicit checks that check.attributes is logical,
tolerance is numeric and scale is NULL or numeric. This catches
some unintended positional matching.
The message for all.equal.numeric() reports a "scaled difference"
only for scale != 1.
* all.equal() now has a "POSIXt" method replacing the "POSIXct"
method.
* The "Date" and "POSIXt" methods of seq() allows by = "quarter"
for completeness (by = "3 months" always worked).
* file.path() removes any trailing separator on Windows, where they
are invalid (although sometimes accepted). This is intended to
enhance the portability of code written by those using POSIX file
systems (where a trailing / can be used to confine path matching
to directories).
* New function agrepl() which like grepl() returns a logical
vector.
* fifo() is now supported on Windows.
* sort.list(method = "radix") now allows negative integers
* Some functionality of print.ts() is now available in
.preformat.ts() for more modularity.
* mcparallel() gains an option detach = TRUE which allows execution
of code independently of the current session. It is based on a
new estranged = TRUE argument to mcfork() which forks child
processes such that they become independent of the parent
process.
* The pdf() device omits circles and text at extremely small sizes,
since some viewers were failing on such files.
* The rightmost break for the "months", "quarters" and "years"
cases of hist.POSIXlt() has been increased by a day.
* The handling of DF[i,] <- a where i is of length 0 is improved.
* hclust() gains a new method "ward.D2" which implements Ward's
method correctly. The previous "ward" method is "ward.D" now,
with the old name still working. Thanks to research and
proposals by Pierre Legendre.
* The sunspot.month dataset has been amended and updated from the
official source, whereas the sunspots and sunspot.year datasets
will remain immutable. The documentation and source links have
been updated correspondingly.
* The summary() method for "lm" fits warns if the fit is
essentially perfect, as most of the summary may be computed
inaccurately (and with platform-dependent values).
Programmers who use summary() in order to extract just a
component which will be reliable (e.g. $cov.unscaled) should wrap
their calls in suppressWarnings().
2014-05-04 00:29:42 +02:00
|
|
|
.if ${OPSYS} != "Linux"
|
|
|
|
USE_GNU_ICONV= yes # latin1 support, iconvlist
|
|
|
|
.endif
|
|
|
|
|
2017-10-18 18:14:30 +02:00
|
|
|
PLIST_VARS+= x11
|
|
|
|
|
2008-07-21 01:18:28 +02:00
|
|
|
# Disable Mac OS specific support used by R.app
|
2017-10-18 18:14:30 +02:00
|
|
|
.if ${OPSYS} == "Darwin"
|
2008-07-21 01:18:28 +02:00
|
|
|
CONFIGURE_ARGS+= --disable-R-framework
|
2017-10-18 18:14:30 +02:00
|
|
|
CONFIGURE_ARGS+= --with-aqua
|
|
|
|
CONFIGURE_ARGS+= --without-x
|
|
|
|
.else
|
|
|
|
USE_TOOLS+= xmkmf
|
|
|
|
CONFIGURE_ARGS+= --with-x
|
|
|
|
PLIST.x11= yes
|
|
|
|
.endif
|
2008-07-21 01:18:28 +02:00
|
|
|
|
2018-03-06 02:43:44 +01:00
|
|
|
# Use BLAS
|
|
|
|
.if exists(/System/Library/Frameworks/Accelerate.framework)
|
|
|
|
CONFIGURE_ARGS+= --with-blas="-framework Accelerate"
|
|
|
|
.else
|
2000-08-12 01:02:37 +02:00
|
|
|
CONFIGURE_ARGS+= --without-atlas
|
Changes 2.10.0:
* Package help is now converted from Rd by the R-based converters
that were first introduced in 2.9.0.
* HTML help is now generated dynamically using an HTTP server
running in the R process and listening on the loopback interface.
* polygon(), pdf() and postscript() now have a parameter
'fillOddEven' (default FALSE), which controls the mode used for
polygon fills of self-intersecting shapes.
* New debugonce() function; further,
getOption("deparse.max.lines") is now observed when debugging.
* plot() methods for "stepfun" and hence "ecdf" no longer plot
points by default for n >= 1000.
* [g]sub(*, perl=TRUE) now also supports '\E' in order to *end*
\U and \L case changes, thanks to a patch from Bill Dunlap.
* factor(), `levels<-`(), etc, now ensure that the resulting factor
levels are unique (as was always the implied intention). Factors
with duplicated levels are still constructible by low-level means,
but are now declared illegal.
* New print() (S3) method for class "function", also used for
auto-printing. Further, .Primitive functions now print and
auto-print identically.
* The print() and toLatex() methods for class "sessionInfo" now
show the locale in a nicer format and have arguments to
suppress locale information.
* In addition to previously only round(), there are other 'Math'
group (S3) methods for 'difftime', such as floor(), signif(), abs(), etc.
* For completeness, old.packages() and available.packages() allow
'type' to be specified (you could always specify 'available'
or 'contriburl').
* More...
2009-12-11 19:53:40 +01:00
|
|
|
CONFIGURE_ARGS+= --disable-BLAS-shlib
|
2003-12-04 14:42:37 +01:00
|
|
|
CONFIGURE_ARGS+= --with-blas
|
2000-08-12 01:02:37 +02:00
|
|
|
CONFIGURE_ARGS+= --without-blas_risc
|
2000-04-19 17:30:05 +02:00
|
|
|
CONFIGURE_ARGS+= --without-dxml
|
2000-08-12 01:02:37 +02:00
|
|
|
CONFIGURE_ARGS+= --without-libmoto
|
2018-03-06 02:43:44 +01:00
|
|
|
.endif
|
2000-08-12 01:02:37 +02:00
|
|
|
|
2001-07-23 15:14:44 +02:00
|
|
|
# Work around missing MAIN__() definition used in -lF77 by AC_CHECK_LIB.
|
2008-08-31 14:37:27 +02:00
|
|
|
# and other failures due to not linking to support libs during testing
|
2001-07-23 15:14:44 +02:00
|
|
|
CONFIGURE_ENV+= ac_cv_lib_blas_dgemm=yes
|
|
|
|
CONFIGURE_ENV+= ac_cv_lib_blas_dgemm_=yes
|
2008-08-31 14:37:27 +02:00
|
|
|
CONFIGURE_ENV+= r_cv_complete_blas=yes
|
2000-08-12 01:02:37 +02:00
|
|
|
|
2008-04-26 04:39:27 +02:00
|
|
|
# Broken test for bzlib >= 1.0.5 in R 2.7.0
|
|
|
|
CONFIGURE_ENV+= r_cv_have_bzlib=yes
|
2016-09-08 22:41:25 +02:00
|
|
|
# Override zlib 1.2.5 requirement
|
|
|
|
CONFIGURE_ENV+= r_cv_header_zlib_h=yes
|
2008-04-26 04:39:27 +02:00
|
|
|
|
Changes 2.10.0:
* Package help is now converted from Rd by the R-based converters
that were first introduced in 2.9.0.
* HTML help is now generated dynamically using an HTTP server
running in the R process and listening on the loopback interface.
* polygon(), pdf() and postscript() now have a parameter
'fillOddEven' (default FALSE), which controls the mode used for
polygon fills of self-intersecting shapes.
* New debugonce() function; further,
getOption("deparse.max.lines") is now observed when debugging.
* plot() methods for "stepfun" and hence "ecdf" no longer plot
points by default for n >= 1000.
* [g]sub(*, perl=TRUE) now also supports '\E' in order to *end*
\U and \L case changes, thanks to a patch from Bill Dunlap.
* factor(), `levels<-`(), etc, now ensure that the resulting factor
levels are unique (as was always the implied intention). Factors
with duplicated levels are still constructible by low-level means,
but are now declared illegal.
* New print() (S3) method for class "function", also used for
auto-printing. Further, .Primitive functions now print and
auto-print identically.
* The print() and toLatex() methods for class "sessionInfo" now
show the locale in a nicer format and have arguments to
suppress locale information.
* In addition to previously only round(), there are other 'Math'
group (S3) methods for 'difftime', such as floor(), signif(), abs(), etc.
* For completeness, old.packages() and available.packages() allow
'type' to be specified (you could always specify 'available'
or 'contriburl').
* More...
2009-12-11 19:53:40 +01:00
|
|
|
CONFIGURE_ENV+= GETWD=${TOOLS_PWD_CMD}
|
2005-06-11 04:37:00 +02:00
|
|
|
CONFIGURE_ENV+= lt_cv_path_LD=${LD:Q}
|
Changes 2.10.0:
* Package help is now converted from Rd by the R-based converters
that were first introduced in 2.9.0.
* HTML help is now generated dynamically using an HTTP server
running in the R process and listening on the loopback interface.
* polygon(), pdf() and postscript() now have a parameter
'fillOddEven' (default FALSE), which controls the mode used for
polygon fills of self-intersecting shapes.
* New debugonce() function; further,
getOption("deparse.max.lines") is now observed when debugging.
* plot() methods for "stepfun" and hence "ecdf" no longer plot
points by default for n >= 1000.
* [g]sub(*, perl=TRUE) now also supports '\E' in order to *end*
\U and \L case changes, thanks to a patch from Bill Dunlap.
* factor(), `levels<-`(), etc, now ensure that the resulting factor
levels are unique (as was always the implied intention). Factors
with duplicated levels are still constructible by low-level means,
but are now declared illegal.
* New print() (S3) method for class "function", also used for
auto-printing. Further, .Primitive functions now print and
auto-print identically.
* The print() and toLatex() methods for class "sessionInfo" now
show the locale in a nicer format and have arguments to
suppress locale information.
* In addition to previously only round(), there are other 'Math'
group (S3) methods for 'difftime', such as floor(), signif(), abs(), etc.
* For completeness, old.packages() and available.packages() allow
'type' to be specified (you could always specify 'available'
or 'contriburl').
* More...
2009-12-11 19:53:40 +01:00
|
|
|
CONFIGURE_ENV+= lt_cv_path_SED=${TOOLS_SED}
|
|
|
|
CONFIGURE_ENV+= ac_cv_path_R_GZIPCMD=${TOOLS_GZIP_CMD}
|
2007-09-08 15:44:48 +02:00
|
|
|
CONFIGURE_ENV+= ac_cv_path_R_UNZIPCMD=${TOOLS_PATH.unzip}
|
2010-05-06 09:33:40 +02:00
|
|
|
CONFIGURE_ENV+= r_cv_prog_f77_flag_mieee=no
|
Update to R 3.0.2
* The NEWS files have been re-organized.
This file contains news for R >= 3.0.0: news for the 0.x.y, 1.x.y
and 2.x.y releases is in files NEWS.0, NEWS.1 and NEWS.2. The
latter files are now installed when R is installed. An HTML
version of news from 2.10.0 to 2.15.3 is available as
doc/html/NEWS.2.html.
* sum() for integer arguments now uses an integer accumulator of at
least 64 bits and so will be more accurate in the very rare case
that a cumulative sum exceeds 2^53 (necessarily summing more than
4 million elements).
* The example() and tools::Rd2ex() functions now have parameters to
allow them to ignore \dontrun markup in examples. (Suggested by
Peter Solymos.)
* str(x) is considerably faster for very large lists, or factors
with 100,000 levels, the latter as in PR#15337.
* col2rgb() now converts factors to character strings not integer
codes (suggested by Bryan Hanson).
* tail(warnings()) now works, via the new `[` method.
* There is now support for the LaTeX style file zi4.sty which has
in some distributions replaced inconsolata.sty.
* unlist(x) now typically returns all non-list xs unchanged, not
just the "vector" ones. Consequently, format(lst) now also works
when the list lst has non-vector elements.
* The tools::getVignetteInfo() function has been added to give
information about installed vignettes.
* New assertCondition(), etc. utilities in tools, useful for
testing.
* Profiling now records non-inlined calls from byte-compiled code
to BUILTIN functions.
* Various functions in stats and elsewhere that use non-standard
evaluation are now more careful to follow the namespace scoping
rules. E.g. stats::lm() can now find stats::model.frame() even
if stats is not on the search path or if some package defines a
function of that name.
* If an invalid/corrupt .Random.seed object is encountered in the
workspace it is ignored with a warning rather than giving an
error. (This allows R itself to rely on a working RNG, e.g. to
choose a random port.)
* seq() and seq.int() give more explicit error messages if called
with invalid (e.g. NaN) inputs.
* When parse() finds a syntax error, it now makes partial parse
information available up to the location of the error. (Request
of Reijo Sund.)
* Methods invoked by NextMethod() had a different dynamic parent to
the generic. This was causing trouble where S3 methods invoked
via lazy evaluation could lose track of their generic.
(PR#15267)
* Code for the negative binomial distribution now treats the case
size == 0 as a one-point distribution at zero.
* abbreviate() handles without warning non-ASCII input strings
which require no abbreviation.
* read.dcf() no longer has a limit of 8191 bytes per line. (Wish of
PR#15250.)
* formatC(x) no longer copies the class of x to the result, to
avoid misuse creating invalid objects as in PR#15303. A warning
is given if a class is discarded.
* Dataset npk has been copied from MASS to allow more tests to be
run without recommended packages being installed.
* The initialization of the regression coefficients for
non-degenerate differenced models in arima() has been changed and
in some examples avoids a local maximum. (PR#15396)
* termplot() now has an argument transform.x to control the display
of individual terms in the plot. (PR#15329)
* format() now supports digits = 0, to display nsmall decimal
places.
* There is a new read-only par() parameter called "page", which
returns a logical value indicating whether the next plot.new()
call will start a new page.
* Processing Sweave and Rd documents to PDF now renders backticks
* utils::modifyList() gets a new argument keep.null allowing NULL
components in the replacement to be retained, instead of causing
corresponding components to be deleted.
* tools::pkgVignettes() gains argument check; if set to TRUE, it
will warn when it appears a vignette requests a non-existent
vignette engine.
2014-02-06 11:57:21 +01:00
|
|
|
CONFIGURE_ENV+= ac_cv_path_PDFLATEX=""
|
2005-06-11 04:37:00 +02:00
|
|
|
|
2011-05-06 21:42:48 +02:00
|
|
|
# We don't want "lib64"
|
|
|
|
CONFIGURE_ENV+= LIBnn=lib
|
|
|
|
|
2004-05-08 00:47:26 +02:00
|
|
|
# Package assumes it can append to files (specifically DESCRIPTION) that have
|
|
|
|
# been installed SHAREMODE
|
|
|
|
SHAREMODE= 644
|
|
|
|
|
2016-02-25 16:26:55 +01:00
|
|
|
CONFIGURE_ARGS.Darwin+= --disable-openmp
|
2014-02-17 18:11:07 +01:00
|
|
|
|
1998-12-04 12:36:03 +01:00
|
|
|
# R_PAPERSIZE can be: A4, Letter, Legal, Executive
|
|
|
|
.if defined(PAPERSIZE)
|
2000-04-19 17:30:05 +02:00
|
|
|
R_PAPERSIZE?= ${PAPERSIZE}
|
1999-06-09 02:45:08 +02:00
|
|
|
.else
|
2000-04-19 17:30:05 +02:00
|
|
|
R_PAPERSIZE?= A4
|
1999-05-26 01:45:05 +02:00
|
|
|
.endif
|
1998-12-04 12:36:03 +01:00
|
|
|
.if (${R_PAPERSIZE} == "Letterdj")
|
2000-04-19 17:30:05 +02:00
|
|
|
R_PAPERSIZE= Letter
|
1998-12-04 12:36:03 +01:00
|
|
|
.endif
|
2005-12-05 21:49:47 +01:00
|
|
|
CONFIGURE_ENV+= R_PAPERSIZE=${R_PAPERSIZE:Q}
|
1998-12-04 12:36:03 +01:00
|
|
|
|
2000-08-12 01:02:37 +02:00
|
|
|
# These macros are used during the build, so strip off the -o,-g flags.
|
|
|
|
INSTALL_DATA= ${INSTALL} ${COPY} -m ${SHAREMODE}
|
|
|
|
INSTALL_SCRIPT= ${INSTALL} ${COPY} -m ${BINMODE}
|
2000-04-19 17:30:05 +02:00
|
|
|
|
Update to R 3.0.2
* The NEWS files have been re-organized.
This file contains news for R >= 3.0.0: news for the 0.x.y, 1.x.y
and 2.x.y releases is in files NEWS.0, NEWS.1 and NEWS.2. The
latter files are now installed when R is installed. An HTML
version of news from 2.10.0 to 2.15.3 is available as
doc/html/NEWS.2.html.
* sum() for integer arguments now uses an integer accumulator of at
least 64 bits and so will be more accurate in the very rare case
that a cumulative sum exceeds 2^53 (necessarily summing more than
4 million elements).
* The example() and tools::Rd2ex() functions now have parameters to
allow them to ignore \dontrun markup in examples. (Suggested by
Peter Solymos.)
* str(x) is considerably faster for very large lists, or factors
with 100,000 levels, the latter as in PR#15337.
* col2rgb() now converts factors to character strings not integer
codes (suggested by Bryan Hanson).
* tail(warnings()) now works, via the new `[` method.
* There is now support for the LaTeX style file zi4.sty which has
in some distributions replaced inconsolata.sty.
* unlist(x) now typically returns all non-list xs unchanged, not
just the "vector" ones. Consequently, format(lst) now also works
when the list lst has non-vector elements.
* The tools::getVignetteInfo() function has been added to give
information about installed vignettes.
* New assertCondition(), etc. utilities in tools, useful for
testing.
* Profiling now records non-inlined calls from byte-compiled code
to BUILTIN functions.
* Various functions in stats and elsewhere that use non-standard
evaluation are now more careful to follow the namespace scoping
rules. E.g. stats::lm() can now find stats::model.frame() even
if stats is not on the search path or if some package defines a
function of that name.
* If an invalid/corrupt .Random.seed object is encountered in the
workspace it is ignored with a warning rather than giving an
error. (This allows R itself to rely on a working RNG, e.g. to
choose a random port.)
* seq() and seq.int() give more explicit error messages if called
with invalid (e.g. NaN) inputs.
* When parse() finds a syntax error, it now makes partial parse
information available up to the location of the error. (Request
of Reijo Sund.)
* Methods invoked by NextMethod() had a different dynamic parent to
the generic. This was causing trouble where S3 methods invoked
via lazy evaluation could lose track of their generic.
(PR#15267)
* Code for the negative binomial distribution now treats the case
size == 0 as a one-point distribution at zero.
* abbreviate() handles without warning non-ASCII input strings
which require no abbreviation.
* read.dcf() no longer has a limit of 8191 bytes per line. (Wish of
PR#15250.)
* formatC(x) no longer copies the class of x to the result, to
avoid misuse creating invalid objects as in PR#15303. A warning
is given if a class is discarded.
* Dataset npk has been copied from MASS to allow more tests to be
run without recommended packages being installed.
* The initialization of the regression coefficients for
non-degenerate differenced models in arima() has been changed and
in some examples avoids a local maximum. (PR#15396)
* termplot() now has an argument transform.x to control the display
of individual terms in the plot. (PR#15329)
* format() now supports digits = 0, to display nsmall decimal
places.
* There is a new read-only par() parameter called "page", which
returns a logical value indicating whether the next plot.new()
call will start a new page.
* Processing Sweave and Rd documents to PDF now renders backticks
* utils::modifyList() gets a new argument keep.null allowing NULL
components in the replacement to be retained, instead of causing
corresponding components to be deleted.
* tools::pkgVignettes() gains argument check; if set to TRUE, it
will warn when it appears a vignette requests a non-existent
vignette engine.
2014-02-06 11:57:21 +01:00
|
|
|
## to build NEWS.pdf
|
|
|
|
#BUILD_DEPENDS+= tex-latex-bin-[0-9]*:../../print/tex-latex-bin
|
|
|
|
#BUILD_DEPENDS+= tex-metafont-[0-9]*:../../fonts/tex-metafont
|
|
|
|
#BUILD_DEPENDS+= tex-ae-[0-9]*:../../fonts/tex-ae
|
|
|
|
#BUILD_DEPENDS+= tex-ec-[0-9]*:../../fonts/tex-ec
|
|
|
|
#BUILD_DEPENDS+= tex-tools-[0-9]*:../../print/tex-tools
|
|
|
|
#BUILD_DEPENDS+= tex-url-[0-9]*:../../print/tex-url
|
|
|
|
#BUILD_DEPENDS+= tex-oberdiek-[0-9]*:../../print/tex-oberdiek
|
|
|
|
#BUILD_DEPENDS+= tex-amsfonts-[0-9]*:../../fonts/tex-amsfonts
|
|
|
|
#BUILD_DEPENDS+= tex-cm-[0-9]*:../../fonts/tex-cm
|
|
|
|
#BUILD_DEPENDS+= tex-cm-super-[0-9]*:../../fonts/tex-cm-super
|
|
|
|
#BUILD_DEPENDS+= tex-fontname-[0-9]*:../../fonts/tex-fontname
|
|
|
|
#BUILD_DEPENDS+= tex-graphics-[0-9]*:../../print/tex-graphics
|
|
|
|
#BUILD_DEPENDS+= tex-hyperref-[0-9]*:../../print/tex-hyperref
|
|
|
|
#BUILD_DEPENDS+= tex-ifluatex-[0-9]*:../../print/tex-ifluatex
|
|
|
|
#BUILD_DEPENDS+= tex-ifxetex-[0-9]*:../../print/tex-ifxetex
|
|
|
|
#BUILD_DEPENDS+= tex-latex-[0-9]*:../../print/tex-latex
|
|
|
|
#BUILD_DEPENDS+= tex-latexconfig-[0-9]*:../../print/tex-latexconfig
|
|
|
|
#BUILD_DEPENDS+= tex-mptopdf-[0-9]*:../../graphics/tex-mptopdf
|
|
|
|
#BUILD_DEPENDS+= tex-pdftex-def-[0-9]*:../../print/tex-pdftex
|
2011-12-12 07:49:26 +01:00
|
|
|
|
2014-09-24 12:53:22 +02:00
|
|
|
SUBST_CLASSES+= fixwrap
|
|
|
|
SUBST_STAGE.fixwrap= post-build
|
|
|
|
SUBST_FILES.fixwrap= libtool
|
2015-06-22 15:21:59 +02:00
|
|
|
SUBST_SED.fixwrap= -e "s,${WRAPPER_BINDIR}/libtool,${PKG_LIBTOOL},g"
|
2011-12-11 19:41:47 +01:00
|
|
|
|
Update to 3.3.1
Upstream changes:
CHANGES IN R 3.3.1:
BUG FIXES:
* R CMD INSTALL and hence install.packages() gave an internal error
installing a package called description from a tarball on a
case-insensitive file system.
* match(x, t) (and hence x %in% t) failed when x was of length one,
and either character and x and t only differed in their Encoding
or when x and t where complex with NAs or NaNs. (PR#16885.)
* unloadNamespace(ns) also works again when ns is a 'namespace', as
from getNamespace().
* rgamma(1,Inf) or rgamma(1, 0,0) no longer give NaN but the
correct limit.
* length(baseenv()) is correct now.
* pretty(d, ..) for date-time d rarely failed when "halfmonth" time
steps were tried (PR#16923) and on 'inaccurate' platforms such as
32-bit windows or a configuration with --disable-long-double; see
comment #15 of PR#16761.
* In text.default(x, y, labels), the rarely(?) used default for
labels is now correct also for the case of a 2-column matrix x
and missing y.
* as.factor(c(a = 1L)) preserves names() again as in R < 3.1.0.
* strtrim(""[0], 0[0]) now works.
* Use of Ctrl-C to terminate a reverse incremental search started
by Ctrl-R in the readline-based Unix terminal interface is now
supported for readline >= 6.3 (Ctrl-G always worked). (PR#16603)
* diff(<difftime>) now keeps the "units" attribute, as subtraction
already did, PR#16940.
CHANGES IN R 3.3.0:
SIGNIFICANT USER-VISIBLE CHANGES:
* nchar(x, *)'s argument keepNA governing how the result for NAs in
x is determined, gets a new default keepNA = NA which returns NA
where x is NA, except for type = "width" which still returns 2,
the formatting / printing width of NA.
* All builds have support for https: URLs in the default methods
for download.file(), url() and code making use of them.
Unfortunately that cannot guarantee that any particular https:
URL can be accessed. For example, server and client have to
successfully negotiate a cryptographic protocol (TLS/SSL, ...)
and the server's identity has to be verifiable _via_ the
available certificates. Different access methods may allow
different protocols or use private certificate bundles: we
encountered a https: CRAN mirror which could be accessed by one
browser but not by another nor by download.file() on the same
Linux machine.
NEW FEATURES:
* The print method for methods() gains a byclass argument.
* New functions validEnc() and validUTF8() to give access to the
validity checks for inputs used by grep() and friends.
* Experimental new functionality for S3 method checking, notably
isS3method().
Also, the names of the R 'language elements' are exported as
character vector tools::langElts.
* str(x) now displays "Time-Series" also for matrix (multivariate)
time-series, i.e. when is.ts(x) is true.
* (Windows only) The GUI menu item to install local packages now
accepts *.tar.gz files as well as *.zip files (but defaults to
the latter).
* New programmeR's utility function chkDots().
* D() now signals an error when given invalid input, rather than
silently returning NA. (Request of John Nash.)
* formula objects are slightly more "first class": e.g., formula()
or new("formula", y ~ x) are now valid. Similarly, for "table",
"ordered" and "summary.table". Packages defining S4 classes with
the above S3/S4 classes as slots should be reinstalled.
* New function strrep() for repeating the elements of a character
vector.
* rapply() preserves attributes on the list when how = "replace".
* New S3 generic function sigma() with methods for extracting the
estimated standard deviation aka "residual standard deviation"
from a fitted model.
* news() now displays R and package news files within the HTML help
system if it is available. If no news file is found, a visible
NULL is returned to the console.
* as.raster(x) now also accepts raw arrays x assuming values in
0:255.
* Subscripting of matrix/array objects of type "expression" is now
supported.
* type.convert("i") now returns a factor instead of a complex value
with zero real part and missing imaginary part.
* Graphics devices cairo_pdf() and cairo_ps() now allow non-default
values of the cairographics 'fallback resolution' to be set.
This now defaults to 300 on all platforms: that is the default
documented by cairographics, but apparently was not used by all
system installations.
* file() gains an explicit method argument rather than implicitly
using getOption("url.method", "default").
* Thanks to a patch from Tomas Kalibera, x[x != 0] is now typically
faster than x[which(x != 0)] (in the case where x has no NAs, the
two are equivalent).
* read.table() now always uses the names for a named colClasses
argument (previously names were only used when colClasses was too
short). (In part, wish of PR#16478.)
* (Windows only) download.file() with default method = "auto" and a
ftps:// URL chooses "libcurl" if that is available.
* The out-of-the box Bioconductor mirror has been changed to one
using https://: use chooseBioCmirror() to choose a http:// mirror
if required.
* The data frame and formula methods for aggregate() gain a drop
argument.
* available.packages() gains a repos argument.
* The undocumented switching of methods for url() on https: and
ftps: URLs is confined to method = "default" (and documented).
* smoothScatter() gains a ret.selection argument.
* qr() no longer has a ... argument to pass additional arguments to
methods.
* [ has a method for class "table".
* It is now possible (again) to replayPlot() a display list
snapshot that was created by recordPlot() in a different R
session.
It is still not a good idea to use snapshots as a persistent
storage format for R plots, but it is now not completely silly to
use a snapshot as a format for transferring an R plot between two
R sessions.
The underlying changes mean that packages providing graphics
devices (e.g., Cairo, RSvgDevice, cairoDevice, tikzDevice) will
need to be reinstalled.
Code for restoring snapshots was contributed by Jeroen Ooms and
JJ Allaire.
Some testing code is available at <URL:
https://github.com/pmur002/R-display-list>.
* tools::undoc(dir = D) and codoc(dir = D) now also work when D is
a directory whose normalizePath()ed version does not end in the
package name, e.g. from a symlink.
* abbreviate() has more support for multi-byte character sets - it
no longer removes bytes within characters and knows about Latin
vowels with accents. It is still only really suitable for (most)
European languages, and still warns on non-ASCII input.
abbreviate(use.classes = FALSE) is now implemented, and that is
more suitable for non-European languages.
* match(x, table) is faster (sometimes by an order of magnitude)
when x is of length one and incomparables is unchanged, thanks to
Peter Haverty (PR#16491).
* More consistent, partly not back-compatible behavior of NA and
NaN coercion to complex numbers, operations less often resulting
in complex NA (NA_complex_).
* lengths() considers methods for length and [[ on x, so it should
work automatically on any objects for which appropriate methods
on those generics are defined.
* The logic for selecting the default screen device on OS X has
been simplified: it is now quartz() if that is available even if
environment variable DISPLAY has been set by the user.
The choice can easily be overridden _via_ environment variable
R_INTERACTIVE_DEVICE.
* On Unix-like platforms which support the getline C library
function, system(*,intern = TRUE) no longer truncates (output)
lines longer than 8192 characters, thanks to Karl Millar.
(PR#16544)
* rank() gains a ties.method = "last" option, for convenience (and
symmetry).
* regmatches(invert = NA) can now be used to extract both
non-matched and matched substrings.
* data.frame() gains argument fix.empty.names; as.data.frame.list()
gets new cut.names, col.names and fix.empty.names.
* plot(x ~ x, *) now warns that it is the same as plot(x ~ 1, *).
* recordPlot() has new arguments load and attach to allow package
names to be stored as part of a recorded plot. replayPlot() has
new argument reloadPkgs to load/attach any package names that
were stored as part of a recorded plot.
* S4 dispatch works within calls to .Internal(). This means
explicit S4 generics are no longer needed for unlist() and
as.vector().
* Only font family names starting with "Hershey" (and not "Her" as
before) are given special treatment by the graphics engine.
* S4 values are automatically coerced to vector (via as.vector)
when subassigned into atomic vectors.
* findInterval() gets a left.open option.
* The version of LAPACK included in the sources has been updated to
3.6.0, including those 'deprecated' routines which were
previously included. _Ca_ 40 double-complex routines have been
added at the request of a package maintainer.
As before, the details of what is included are in
src/modules/lapack/README and this now gives information on
earlier additions.
* tapply() has been made considerably more efficient without
changing functionality, thanks to proposals from Peter Haverty
and Suharto Anggono. (PR#16640)
* match.arg(arg) (the one-argument case) is faster; so is
sort.int(). (PR#16640)
* The format method for object_size objects now also accepts
"binary" units such as "KiB" and e.g., "Tb". (Partly from
PR#16649.)
* Profiling now records calls of the form foo::bar and some similar
cases directly rather than as calls to <Anonymous>. Contributed
by Winston Chang.
* New string utilities startsWith(x, prefix) and endsWith(x,
suffix). Also provide speedups for some grepl("^...",*) uses
(related to proposals in PR#16490).
* Reference class finalizers run at exit, as well as on garbage
collection.
* Avoid parallel dependency on stats for port choice and random
number seeds. (PR#16668)
* The radix sort algorithm and implementation from data.table
(forder) replaces the previous radix (counting) sort and adds a
new method for order(). Contributed by Matt Dowle and Arun
Srinivasan, the new algorithm supports logical, integer (even
with large values), real, and character vectors. It outperforms
all other methods, but there are some caveats (see ?sort).
* The order() function gains a method argument for choosing between
"shell" and "radix".
* New function grouping() returns a permutation that stably
rearranges data so that identical values are adjacent. The
return value includes extra partitioning information on the
groups. The implementation came included with the new radix
sort.
* rhyper(nn, m, n, k) no longer returns NA when one of the three
parameters exceeds the maximal integer.
* switch() now warns when no alternatives are provided.
* parallel::detectCores() now has default logical = TRUE on all
platforms - as this was the default on Windows, this change only
affects Sparc Solaris.
Option logical = FALSE is now supported on Linux and recent
versions of OS X (for the latter, thanks to a suggestion of Kyaw
Sint).
* hist() for "Date" or "POSIXt" objects would sometimes give
misleading labels on the breaks, as they were set to the day
before the start of the period being displayed. The display
format has been changed, and the shift of the start day has been
made conditional on right = TRUE (the default). (PR#16679)
* R now uses a new version of the logo (donated to the R Foundation
by RStudio). It is defined in .svg format, so will resize
without unnecessary degradation when displayed on HTML
pages-there is also a vector PDF version. Thanks to Dirk
Eddelbuettel for producing the corresponding X11 icon.
* New function .traceback() returns the stack trace which
traceback() prints.
* lengths() dispatches internally.
* dotchart() gains a pt.cex argument to control the size of points
separately from the size of plot labels. Thanks to Michael
Friendly and Milan Bouchet-Valat for ideas and patches.
* as.roman(ch) now correctly deals with more diverse character
vectors ch; also arithmetic with the resulting roman numbers
works in more cases. (PR#16779)
* prcomp() gains a new option rank. allowing to directly aim for
less than min(n,p) PC's. The summary() and its print() method
have been amended, notably for this case.
* gzcon() gains a new option text, which marks the connection as
text-oriented (so e.g. pushBack() works). It is still always
opened in binary mode.
* The import() namespace directive now accepts an argument except
which names symbols to exclude from the imports. The except
expression should evaluate to a character vector (after
substituting symbols for strings). See Writing R Extensions.
* New convenience function Rcmd() in package tools for invoking R
CMD tools from within R.
* New functions makevars_user() and makevars_site() in package
tools to determine the location of the user and site specific
Makevars files for customizing package compilation.
UTILITIES:
* R CMD check has a new option --ignore-vignettes for use with
non-Sweave vignettes whose VignetteBuilder package is not
available.
* R CMD check now by default checks code usage (_via_ codetools)
with only the base package attached. Functions from default
packages other than base which are used in the package code but
not imported are reported as undefined globals, with a suggested
addition to the NAMESPACE file.
* R CMD check --as-cran now also checks DOIs in package CITATION
and Rd files.
* R CMD Rdconv and R CMD Rd2pdf each have a new option
--RdMacros=pkglist which allows Rd macros to be specified before
processing.
DEPRECATED AND DEFUNCT:
* The previously included versions of zlib, bzip2, xz and PCRE have
been removed, so suitable external (usually system) versions are
required (see the 'R Installation and Administration' manual).
* The unexported and undocumented Windows-only devices cairo_bmp(),
cairo_png() and cairo_tiff() have been removed. (These devices
should be used as e.g. bmp(type = "cairo").)
* (Windows only) Function setInternet2() has no effect and will be
removed in due course. The choice between methods "internal" and
"wininet" is now made by the method arguments of url() and
download.file() and their defaults can be set _via_ options. The
out-of-the-box default remains "wininet" (as it has been since R
3.2.2).
* [<- with an S4 value into a list currently embeds the S4 object
into its own list such that the end result is roughly equivalent
to using [[<-. That behavior is deprecated. In the future, the
S4 value will be coerced to a list with as.list().
* Package tools' functions package.dependencies(), pkgDepends(),
etc are deprecated now, mostly in favor of package_dependencies()
which is both more flexible and efficient.
INSTALLATION and INCLUDED SOFTWARE:
* Support for very old versions of valgrind (e.g., 3.3.0) has been
removed.
* The included libtool script (generated by configure) has been
updated to version 2.4.6 (from 2.2.6a).
* libcurl version 7.28.0 or later with support for the https
protocol is required for installation (except on Windows).
* BSD networking is now required (except on Windows) and so
capabilities("http/ftp") is always true.
* configure uses pkg-config for PNG, TIFF and JPEG where this is
available. This should work better with multiple installs and
with those using static libraries.
* The minimum supported version of OS X is 10.6 ('Snow Leopard'):
even that has been unsupported by Apple since 2012.
* The configure default on OS X is --disable-R-framework: enable
this if you intend to install under /Library/Frameworks and use
with R.app.
* The minimum preferred version of PCRE has since R 3.0.0 been 8.32
(released in Nov 2012). Versions 8.10 to 8.31 are now deprecated
(with warnings from configure), but will still be accepted until
R 3.4.0.
* configure looks for C functions __cospi, __sinpi and __tanpi and
uses these if cospi _etc_ are not found. (OS X is the main
instance.)
* (Windows) R is now built using gcc 4.9.3. This build will
require recompilation of at least those packages that include C++
code, and possibly others. A build of R-devel using the older
toolchain will be temporarily available for comparison purposes.
During the transition, the environment variable R_COMPILED_BY has
been defined to indicate which toolchain was used to compile R
(and hence, which should be used to compile code in packages).
The COMPILED_BY variable described below will be a permanent
replacement for this.
* (Windows) A make and R CMD config variable named COMPILED_BY has
been added. This indicates which toolchain was used to compile R
(and hence, which should be used to compile code in packages).
PACKAGE INSTALLATION:
* The make macro AWK which used to be made available to files such
as src/Makefile is no longer set.
C-LEVEL FACILITIES:
* The API call logspace_sum introduced in R 3.2.0 is now remapped
as an entry point to Rf_logspace_sum, and its first argument has
gained a const qualifier. (PR#16470)
Code using it will need to be reinstalled.
Similarly, entry point log1pexp also defined in Rmath.h is
remapped there to Rf_log1pexp
* R_GE_version has been increased to 11.
* New API call R_orderVector1, a faster one-argument version of
R_orderVector.
* When R headers such as R.h and Rmath.h are called from C++ code
in packages they include the C++ versions of system headers such
as <cmath> rather than the legacy headers such as <math.h>.
(Headers Rinternals.h and Rinterface.h already did, and inclusion
of system headers can still be circumvented by defining
NO_C_HEADERS, including as from this version for those two
headers.)
The manual has long said that R headers should *not* be included
within an extern "C" block, and almost all the packages affected
by this change were doing so.
* Including header S.h from C++ code would fail on some platforms,
and so gives a compilation error on all.
* The deprecated header Rdefines.h is now compatible with defining
R_NO_REMAP.
* The connections API now includes a function R_GetConnection()
which allows packages implementing connections to convert R
connection objects to Rconnection handles used in the API. Code
which previously used the low-level R-internal getConnection()
entry point should switch to the official API.
BUG FIXES:
* C-level asChar(x) is fixed for when x is not a vector, and it
returns "TRUE"/"FALSE" instead of "T"/"F" for logical vectors.
* The first arguments of .colSums() etc (with an initial dot) are
now named x rather than X (matching colSums()): thus error
messages are corrected.
* A coef() method for class "maov" has been added to allow vcov()
to work with multivariate results. (PR#16380)
* method = "libcurl" connections signal errors rather than
retrieving HTTP error pages (where the ISP reports the error).
* xpdrows.data.frame() was not checking for unique row names; in
particular, this affected assignment to non-existing rows via
numerical indexing. (PR#16570)
* tail.matrix() did not work for zero rows matrices, and could
produce row "labels" such as "[1e+05,]".
* Data frames with a column named "stringsAsFactors" now format and
print correctly. (PR#16580)
* cor() is now guaranteed to return a value with absolute value
less than or equal to 1. (PR#16638)
* Array subsetting now keeps names(dim(.)).
* Blocking socket connection selection recovers more gracefully on
signal interrupts.
* The data.frame method of rbind() construction row.names works
better in borderline integer cases, but may change the names
assigned. (PR#16666)
* (X11 only) getGraphicsEvent() miscoded buttons and missed mouse
motion events. (PR#16700)
* methods(round) now also lists round.POSIXt.
* tar() now works with the default files = NULL. (PR#16716)
* Jumps to outer contexts, for example in error recovery, now make
intermediate jumps to contexts where on.exit() actions are
established instead of trying to run all on.exit() actions before
jumping to the final target. This unwinds the stack gradually,
releases resources held on the stack, and significantly reduces
the chance of a segfault when running out of C stack space. Error
handlers established using withCallingHandlers() and
options("error") specifications are ignored when handling a C
stack overflow error as attempting one of these would trigger a
cascade of C stack overflow errors. (These changes resolve
PR#16753.)
* The spacing could be wrong when printing a complex array.
(Report and patch by Lukas Stadler.)
* pretty(d, n, min.n, *) for date-time objects d works again in
border cases with large min.n, returns a labels attribute also
for small-range dates and in such cases its returned length is
closer to the desired n. (PR#16761) Additionally, it finally
does cover the range of d, as it always claimed.
* tsp(x) <- NULL did not handle correctly objects inheriting from
both "ts" and "mts". (PR#16769)
* install.packages() could give false errors when
options("pkgType") was "binary". (Reported by Jose Claudio
Faria.)
* A bug fix in R 3.0.2 fixed problems with locator() in X11, but
introduced problems in Windows. Now both should be fixed.
(PR#15700)
* download.file() with method = "wininet" incorrectly warned of
download file length difference when reported length was unknown.
(PR#16805)
* diag(NULL, 1) crashed because of missed type checking.
(PR#16853)
2016-07-26 06:53:33 +02:00
|
|
|
BUILDLINK_API_DEPENDS.bzip2+= bzip2>=1.0.5
|
2005-01-12 23:50:20 +01:00
|
|
|
|
2018-11-12 15:40:20 +01:00
|
|
|
# failed to convert strong functions and variables: Invalid type identifier
|
|
|
|
CTF_FILES_SKIP+= lib/R/library/mgcv/libs/mgcv.so
|
|
|
|
|
2019-06-19 13:37:42 +02:00
|
|
|
# Exposes PKG_CONFIG_LIBDIR buildlink paths in a comment.
|
|
|
|
CHECK_WRKREF_SKIP+= lib/R/etc/Makeconf
|
|
|
|
|
2017-10-06 22:47:37 +02:00
|
|
|
pre-configure:
|
|
|
|
${RUN} cd ${WRKSRC} && autoreconf -fvi
|
|
|
|
|
2015-09-11 15:16:16 +02:00
|
|
|
# Fix library names. Relies on build system using -headerpad_max_install_names.
|
|
|
|
.if ${OPSYS} == "Darwin"
|
|
|
|
.PHONY: fix-darwin-install-name
|
|
|
|
post-install: fix-darwin-install-name
|
|
|
|
fix-darwin-install-name:
|
|
|
|
${FIND} ${DESTDIR}${PREFIX} -name "*.so" | while read lib; do \
|
|
|
|
libname=`basename $${lib}`; \
|
|
|
|
libdir=`dirname $${lib} | sed -e 's,${DESTDIR},,'`; \
|
2016-02-19 22:57:42 +01:00
|
|
|
install_name_tool -id $${libdir}/$${libname} $${lib}; \
|
2015-09-11 15:16:16 +02:00
|
|
|
done
|
|
|
|
.endif
|
|
|
|
|
2005-01-12 23:50:20 +01:00
|
|
|
.include "../../archivers/bzip2/buildlink3.mk"
|
Changes 2.10.0:
* Package help is now converted from Rd by the R-based converters
that were first introduced in 2.9.0.
* HTML help is now generated dynamically using an HTTP server
running in the R process and listening on the loopback interface.
* polygon(), pdf() and postscript() now have a parameter
'fillOddEven' (default FALSE), which controls the mode used for
polygon fills of self-intersecting shapes.
* New debugonce() function; further,
getOption("deparse.max.lines") is now observed when debugging.
* plot() methods for "stepfun" and hence "ecdf" no longer plot
points by default for n >= 1000.
* [g]sub(*, perl=TRUE) now also supports '\E' in order to *end*
\U and \L case changes, thanks to a patch from Bill Dunlap.
* factor(), `levels<-`(), etc, now ensure that the resulting factor
levels are unique (as was always the implied intention). Factors
with duplicated levels are still constructible by low-level means,
but are now declared illegal.
* New print() (S3) method for class "function", also used for
auto-printing. Further, .Primitive functions now print and
auto-print identically.
* The print() and toLatex() methods for class "sessionInfo" now
show the locale in a nicer format and have arguments to
suppress locale information.
* In addition to previously only round(), there are other 'Math'
group (S3) methods for 'difftime', such as floor(), signif(), abs(), etc.
* For completeness, old.packages() and available.packages() allow
'type' to be specified (you could always specify 'available'
or 'contriburl').
* More...
2009-12-11 19:53:40 +01:00
|
|
|
.include "../../archivers/xz/buildlink3.mk"
|
2005-09-20 14:47:14 +02:00
|
|
|
.include "../../converters/libiconv/buildlink3.mk"
|
2005-12-02 00:11:26 +01:00
|
|
|
.include "../../devel/gettext-lib/buildlink3.mk"
|
2017-12-01 04:19:30 +01:00
|
|
|
.include "../../devel/glib2/buildlink3.mk"
|
2017-10-18 18:14:30 +02:00
|
|
|
.include "../../devel/pango/buildlink3.mk"
|
2005-01-12 23:50:20 +01:00
|
|
|
.include "../../devel/pcre/buildlink3.mk"
|
2013-07-15 04:02:17 +02:00
|
|
|
# uses callback interface
|
2005-01-12 23:50:20 +01:00
|
|
|
.include "../../devel/readline/buildlink3.mk"
|
|
|
|
.include "../../devel/zlib/buildlink3.mk"
|
Changes 2.10.0:
* Package help is now converted from Rd by the R-based converters
that were first introduced in 2.9.0.
* HTML help is now generated dynamically using an HTTP server
running in the R process and listening on the loopback interface.
* polygon(), pdf() and postscript() now have a parameter
'fillOddEven' (default FALSE), which controls the mode used for
polygon fills of self-intersecting shapes.
* New debugonce() function; further,
getOption("deparse.max.lines") is now observed when debugging.
* plot() methods for "stepfun" and hence "ecdf" no longer plot
points by default for n >= 1000.
* [g]sub(*, perl=TRUE) now also supports '\E' in order to *end*
\U and \L case changes, thanks to a patch from Bill Dunlap.
* factor(), `levels<-`(), etc, now ensure that the resulting factor
levels are unique (as was always the implied intention). Factors
with duplicated levels are still constructible by low-level means,
but are now declared illegal.
* New print() (S3) method for class "function", also used for
auto-printing. Further, .Primitive functions now print and
auto-print identically.
* The print() and toLatex() methods for class "sessionInfo" now
show the locale in a nicer format and have arguments to
suppress locale information.
* In addition to previously only round(), there are other 'Math'
group (S3) methods for 'difftime', such as floor(), signif(), abs(), etc.
* For completeness, old.packages() and available.packages() allow
'type' to be specified (you could always specify 'available'
or 'contriburl').
* More...
2009-12-11 19:53:40 +01:00
|
|
|
.include "../../graphics/cairo/buildlink3.mk"
|
2010-12-23 12:44:24 +01:00
|
|
|
.include "../../mk/jpeg.buildlink3.mk"
|
2005-01-12 23:50:20 +01:00
|
|
|
.include "../../graphics/png/buildlink3.mk"
|
2008-04-26 04:39:27 +02:00
|
|
|
.include "../../graphics/tiff/buildlink3.mk"
|
2018-03-06 02:43:44 +01:00
|
|
|
.if !exists(/System/Library/Frameworks/Accelerate.framework)
|
2005-01-12 23:50:20 +01:00
|
|
|
.include "../../math/blas/buildlink3.mk"
|
R: update to 3.4.2
CHANGES IN R 3.4.2:
NEW FEATURES:
* Setting the LC_ALL category in Sys.setlocale() invalidates any
cached locale-specific day/month names and the AM/PM indicator
for strptime() (as setting LC_TIME has since R 3.1.0).
* The version of LAPACK included in the sources has been updated to
3.7.1, a bug-fix release.
* The default for tools::write_PACKAGES(rds_compress=) has been
changed to "xz" to match the compression used by CRAN.
* c() and unlist() are now more efficient in constructing the
names(.) of their return value, thanks to a proposal by Suharto
Anggono. (PR#17284)
CHANGES IN R 3.4.0:
SIGNIFICANT USER-VISIBLE CHANGES:
* (Unix-alike) The default methods for download.file() and url()
now choose "libcurl" except for file:// URLs. There will be
small changes in the format and wording of messages, including in
rare cases if an issue is a warning or an error. For example,
when HTTP re-direction occurs, some messages refer to the final
URL rather than the specified one.
Those who use proxies should check that their settings are
compatible (see ?download.file: the most commonly used forms work
for both "internal" and "libcurl").
* table() has been amended to be more internally consistent and
become back compatible to R <= 2.7.2 again. Consequently,
table(1:2, exclude = NULL) no longer contains a zero count for
<NA>, but useNA = "always" continues to do so.
* summary.default() no longer rounds, but its print method does
resulting in less extraneous rounding, notably of numbers in the
ten thousands.
* factor(x, exclude = L) behaves more rationally when x or L are
character vectors. Further, exclude = <factor> now behaves as
documented for long.
* Arithmetic, logic (&, |) and comparison (aka 'relational', e.g.,
<, ==) operations with arrays now behave consistently, notably
for arrays of length zero.
Arithmetic between length-1 arrays and longer non-arrays had
silently dropped the array attributes and recycled. This now
gives a warning and will signal an error in the future, as it has
always for logic and comparison operations in these cases (e.g.,
compare matrix(1,1) + 2:3 and matrix(1,1) < 2:3).
* The JIT ('Just In Time') byte-code compiler is now enabled by
default at its level 3. This means functions will be compiled on
first or second use and top-level loops will be compiled and then
run. (Thanks to Tomas Kalibera for extensive work to make this
possible.)
For now, the compiler will not compile code containing explicit
calls to browser(): this is to support single stepping from the
browser() call.
JIT compilation can be disabled for the rest of the session using
compiler::enableJIT(0) or by setting environment variable
R_ENABLE_JIT to 0.
* xtabs() works more consistently with NAs, also in its result no
longer setting them to 0. Further, a new logical option addNA
allows to count NAs where appropriate. Additionally, for the
case sparse = TRUE, the result's dimnames are identical to the
default case's.
* Matrix products now consistently bypass BLAS when the inputs have
NaN/Inf values. Performance of the check of inputs has been
improved. Performance when BLAS is used is improved for
matrix/vector and vector/matrix multiplication (DGEMV is now used
instead of DGEMM).
One can now choose from alternative matrix product
implementations _via_ options(matprod = ). The "internal"
implementation is not optimized for speed but consistent in
precision with other summations in R (using long double
accumulators where available). "blas" calls BLAS directly for
best speed, but usually with undefined behavior for inputs with
NaN/Inf.
NEW FEATURES:
* User errors such as integrate(f, 0:1, 2) are now caught.
* Add signature argument to debug(), debugonce(), undebug() and
isdebugged() for more conveniently debugging S3 and S4 methods.
(Based on a patch by Gabe Becker.)
* Add utils::debugcall() and utils::undebugcall() for debugging the
function that would be called by evaluating the given expression.
When the call is to an S4 generic or standard S3 generic,
debugcall() debugs the method that would be dispatched. A number
of internal utilities were added to support this, most notably
utils::isS3stdGeneric(). (Based on a patch by Gabe Becker.)
And many more - see the NEWS file for details.
2017-10-21 04:40:56 +02:00
|
|
|
.include "../../math/lapack/buildlink3.mk"
|
2018-03-06 02:43:44 +01:00
|
|
|
.endif
|
Update to 3.3.1
Upstream changes:
CHANGES IN R 3.3.1:
BUG FIXES:
* R CMD INSTALL and hence install.packages() gave an internal error
installing a package called description from a tarball on a
case-insensitive file system.
* match(x, t) (and hence x %in% t) failed when x was of length one,
and either character and x and t only differed in their Encoding
or when x and t where complex with NAs or NaNs. (PR#16885.)
* unloadNamespace(ns) also works again when ns is a 'namespace', as
from getNamespace().
* rgamma(1,Inf) or rgamma(1, 0,0) no longer give NaN but the
correct limit.
* length(baseenv()) is correct now.
* pretty(d, ..) for date-time d rarely failed when "halfmonth" time
steps were tried (PR#16923) and on 'inaccurate' platforms such as
32-bit windows or a configuration with --disable-long-double; see
comment #15 of PR#16761.
* In text.default(x, y, labels), the rarely(?) used default for
labels is now correct also for the case of a 2-column matrix x
and missing y.
* as.factor(c(a = 1L)) preserves names() again as in R < 3.1.0.
* strtrim(""[0], 0[0]) now works.
* Use of Ctrl-C to terminate a reverse incremental search started
by Ctrl-R in the readline-based Unix terminal interface is now
supported for readline >= 6.3 (Ctrl-G always worked). (PR#16603)
* diff(<difftime>) now keeps the "units" attribute, as subtraction
already did, PR#16940.
CHANGES IN R 3.3.0:
SIGNIFICANT USER-VISIBLE CHANGES:
* nchar(x, *)'s argument keepNA governing how the result for NAs in
x is determined, gets a new default keepNA = NA which returns NA
where x is NA, except for type = "width" which still returns 2,
the formatting / printing width of NA.
* All builds have support for https: URLs in the default methods
for download.file(), url() and code making use of them.
Unfortunately that cannot guarantee that any particular https:
URL can be accessed. For example, server and client have to
successfully negotiate a cryptographic protocol (TLS/SSL, ...)
and the server's identity has to be verifiable _via_ the
available certificates. Different access methods may allow
different protocols or use private certificate bundles: we
encountered a https: CRAN mirror which could be accessed by one
browser but not by another nor by download.file() on the same
Linux machine.
NEW FEATURES:
* The print method for methods() gains a byclass argument.
* New functions validEnc() and validUTF8() to give access to the
validity checks for inputs used by grep() and friends.
* Experimental new functionality for S3 method checking, notably
isS3method().
Also, the names of the R 'language elements' are exported as
character vector tools::langElts.
* str(x) now displays "Time-Series" also for matrix (multivariate)
time-series, i.e. when is.ts(x) is true.
* (Windows only) The GUI menu item to install local packages now
accepts *.tar.gz files as well as *.zip files (but defaults to
the latter).
* New programmeR's utility function chkDots().
* D() now signals an error when given invalid input, rather than
silently returning NA. (Request of John Nash.)
* formula objects are slightly more "first class": e.g., formula()
or new("formula", y ~ x) are now valid. Similarly, for "table",
"ordered" and "summary.table". Packages defining S4 classes with
the above S3/S4 classes as slots should be reinstalled.
* New function strrep() for repeating the elements of a character
vector.
* rapply() preserves attributes on the list when how = "replace".
* New S3 generic function sigma() with methods for extracting the
estimated standard deviation aka "residual standard deviation"
from a fitted model.
* news() now displays R and package news files within the HTML help
system if it is available. If no news file is found, a visible
NULL is returned to the console.
* as.raster(x) now also accepts raw arrays x assuming values in
0:255.
* Subscripting of matrix/array objects of type "expression" is now
supported.
* type.convert("i") now returns a factor instead of a complex value
with zero real part and missing imaginary part.
* Graphics devices cairo_pdf() and cairo_ps() now allow non-default
values of the cairographics 'fallback resolution' to be set.
This now defaults to 300 on all platforms: that is the default
documented by cairographics, but apparently was not used by all
system installations.
* file() gains an explicit method argument rather than implicitly
using getOption("url.method", "default").
* Thanks to a patch from Tomas Kalibera, x[x != 0] is now typically
faster than x[which(x != 0)] (in the case where x has no NAs, the
two are equivalent).
* read.table() now always uses the names for a named colClasses
argument (previously names were only used when colClasses was too
short). (In part, wish of PR#16478.)
* (Windows only) download.file() with default method = "auto" and a
ftps:// URL chooses "libcurl" if that is available.
* The out-of-the box Bioconductor mirror has been changed to one
using https://: use chooseBioCmirror() to choose a http:// mirror
if required.
* The data frame and formula methods for aggregate() gain a drop
argument.
* available.packages() gains a repos argument.
* The undocumented switching of methods for url() on https: and
ftps: URLs is confined to method = "default" (and documented).
* smoothScatter() gains a ret.selection argument.
* qr() no longer has a ... argument to pass additional arguments to
methods.
* [ has a method for class "table".
* It is now possible (again) to replayPlot() a display list
snapshot that was created by recordPlot() in a different R
session.
It is still not a good idea to use snapshots as a persistent
storage format for R plots, but it is now not completely silly to
use a snapshot as a format for transferring an R plot between two
R sessions.
The underlying changes mean that packages providing graphics
devices (e.g., Cairo, RSvgDevice, cairoDevice, tikzDevice) will
need to be reinstalled.
Code for restoring snapshots was contributed by Jeroen Ooms and
JJ Allaire.
Some testing code is available at <URL:
https://github.com/pmur002/R-display-list>.
* tools::undoc(dir = D) and codoc(dir = D) now also work when D is
a directory whose normalizePath()ed version does not end in the
package name, e.g. from a symlink.
* abbreviate() has more support for multi-byte character sets - it
no longer removes bytes within characters and knows about Latin
vowels with accents. It is still only really suitable for (most)
European languages, and still warns on non-ASCII input.
abbreviate(use.classes = FALSE) is now implemented, and that is
more suitable for non-European languages.
* match(x, table) is faster (sometimes by an order of magnitude)
when x is of length one and incomparables is unchanged, thanks to
Peter Haverty (PR#16491).
* More consistent, partly not back-compatible behavior of NA and
NaN coercion to complex numbers, operations less often resulting
in complex NA (NA_complex_).
* lengths() considers methods for length and [[ on x, so it should
work automatically on any objects for which appropriate methods
on those generics are defined.
* The logic for selecting the default screen device on OS X has
been simplified: it is now quartz() if that is available even if
environment variable DISPLAY has been set by the user.
The choice can easily be overridden _via_ environment variable
R_INTERACTIVE_DEVICE.
* On Unix-like platforms which support the getline C library
function, system(*,intern = TRUE) no longer truncates (output)
lines longer than 8192 characters, thanks to Karl Millar.
(PR#16544)
* rank() gains a ties.method = "last" option, for convenience (and
symmetry).
* regmatches(invert = NA) can now be used to extract both
non-matched and matched substrings.
* data.frame() gains argument fix.empty.names; as.data.frame.list()
gets new cut.names, col.names and fix.empty.names.
* plot(x ~ x, *) now warns that it is the same as plot(x ~ 1, *).
* recordPlot() has new arguments load and attach to allow package
names to be stored as part of a recorded plot. replayPlot() has
new argument reloadPkgs to load/attach any package names that
were stored as part of a recorded plot.
* S4 dispatch works within calls to .Internal(). This means
explicit S4 generics are no longer needed for unlist() and
as.vector().
* Only font family names starting with "Hershey" (and not "Her" as
before) are given special treatment by the graphics engine.
* S4 values are automatically coerced to vector (via as.vector)
when subassigned into atomic vectors.
* findInterval() gets a left.open option.
* The version of LAPACK included in the sources has been updated to
3.6.0, including those 'deprecated' routines which were
previously included. _Ca_ 40 double-complex routines have been
added at the request of a package maintainer.
As before, the details of what is included are in
src/modules/lapack/README and this now gives information on
earlier additions.
* tapply() has been made considerably more efficient without
changing functionality, thanks to proposals from Peter Haverty
and Suharto Anggono. (PR#16640)
* match.arg(arg) (the one-argument case) is faster; so is
sort.int(). (PR#16640)
* The format method for object_size objects now also accepts
"binary" units such as "KiB" and e.g., "Tb". (Partly from
PR#16649.)
* Profiling now records calls of the form foo::bar and some similar
cases directly rather than as calls to <Anonymous>. Contributed
by Winston Chang.
* New string utilities startsWith(x, prefix) and endsWith(x,
suffix). Also provide speedups for some grepl("^...",*) uses
(related to proposals in PR#16490).
* Reference class finalizers run at exit, as well as on garbage
collection.
* Avoid parallel dependency on stats for port choice and random
number seeds. (PR#16668)
* The radix sort algorithm and implementation from data.table
(forder) replaces the previous radix (counting) sort and adds a
new method for order(). Contributed by Matt Dowle and Arun
Srinivasan, the new algorithm supports logical, integer (even
with large values), real, and character vectors. It outperforms
all other methods, but there are some caveats (see ?sort).
* The order() function gains a method argument for choosing between
"shell" and "radix".
* New function grouping() returns a permutation that stably
rearranges data so that identical values are adjacent. The
return value includes extra partitioning information on the
groups. The implementation came included with the new radix
sort.
* rhyper(nn, m, n, k) no longer returns NA when one of the three
parameters exceeds the maximal integer.
* switch() now warns when no alternatives are provided.
* parallel::detectCores() now has default logical = TRUE on all
platforms - as this was the default on Windows, this change only
affects Sparc Solaris.
Option logical = FALSE is now supported on Linux and recent
versions of OS X (for the latter, thanks to a suggestion of Kyaw
Sint).
* hist() for "Date" or "POSIXt" objects would sometimes give
misleading labels on the breaks, as they were set to the day
before the start of the period being displayed. The display
format has been changed, and the shift of the start day has been
made conditional on right = TRUE (the default). (PR#16679)
* R now uses a new version of the logo (donated to the R Foundation
by RStudio). It is defined in .svg format, so will resize
without unnecessary degradation when displayed on HTML
pages-there is also a vector PDF version. Thanks to Dirk
Eddelbuettel for producing the corresponding X11 icon.
* New function .traceback() returns the stack trace which
traceback() prints.
* lengths() dispatches internally.
* dotchart() gains a pt.cex argument to control the size of points
separately from the size of plot labels. Thanks to Michael
Friendly and Milan Bouchet-Valat for ideas and patches.
* as.roman(ch) now correctly deals with more diverse character
vectors ch; also arithmetic with the resulting roman numbers
works in more cases. (PR#16779)
* prcomp() gains a new option rank. allowing to directly aim for
less than min(n,p) PC's. The summary() and its print() method
have been amended, notably for this case.
* gzcon() gains a new option text, which marks the connection as
text-oriented (so e.g. pushBack() works). It is still always
opened in binary mode.
* The import() namespace directive now accepts an argument except
which names symbols to exclude from the imports. The except
expression should evaluate to a character vector (after
substituting symbols for strings). See Writing R Extensions.
* New convenience function Rcmd() in package tools for invoking R
CMD tools from within R.
* New functions makevars_user() and makevars_site() in package
tools to determine the location of the user and site specific
Makevars files for customizing package compilation.
UTILITIES:
* R CMD check has a new option --ignore-vignettes for use with
non-Sweave vignettes whose VignetteBuilder package is not
available.
* R CMD check now by default checks code usage (_via_ codetools)
with only the base package attached. Functions from default
packages other than base which are used in the package code but
not imported are reported as undefined globals, with a suggested
addition to the NAMESPACE file.
* R CMD check --as-cran now also checks DOIs in package CITATION
and Rd files.
* R CMD Rdconv and R CMD Rd2pdf each have a new option
--RdMacros=pkglist which allows Rd macros to be specified before
processing.
DEPRECATED AND DEFUNCT:
* The previously included versions of zlib, bzip2, xz and PCRE have
been removed, so suitable external (usually system) versions are
required (see the 'R Installation and Administration' manual).
* The unexported and undocumented Windows-only devices cairo_bmp(),
cairo_png() and cairo_tiff() have been removed. (These devices
should be used as e.g. bmp(type = "cairo").)
* (Windows only) Function setInternet2() has no effect and will be
removed in due course. The choice between methods "internal" and
"wininet" is now made by the method arguments of url() and
download.file() and their defaults can be set _via_ options. The
out-of-the-box default remains "wininet" (as it has been since R
3.2.2).
* [<- with an S4 value into a list currently embeds the S4 object
into its own list such that the end result is roughly equivalent
to using [[<-. That behavior is deprecated. In the future, the
S4 value will be coerced to a list with as.list().
* Package tools' functions package.dependencies(), pkgDepends(),
etc are deprecated now, mostly in favor of package_dependencies()
which is both more flexible and efficient.
INSTALLATION and INCLUDED SOFTWARE:
* Support for very old versions of valgrind (e.g., 3.3.0) has been
removed.
* The included libtool script (generated by configure) has been
updated to version 2.4.6 (from 2.2.6a).
* libcurl version 7.28.0 or later with support for the https
protocol is required for installation (except on Windows).
* BSD networking is now required (except on Windows) and so
capabilities("http/ftp") is always true.
* configure uses pkg-config for PNG, TIFF and JPEG where this is
available. This should work better with multiple installs and
with those using static libraries.
* The minimum supported version of OS X is 10.6 ('Snow Leopard'):
even that has been unsupported by Apple since 2012.
* The configure default on OS X is --disable-R-framework: enable
this if you intend to install under /Library/Frameworks and use
with R.app.
* The minimum preferred version of PCRE has since R 3.0.0 been 8.32
(released in Nov 2012). Versions 8.10 to 8.31 are now deprecated
(with warnings from configure), but will still be accepted until
R 3.4.0.
* configure looks for C functions __cospi, __sinpi and __tanpi and
uses these if cospi _etc_ are not found. (OS X is the main
instance.)
* (Windows) R is now built using gcc 4.9.3. This build will
require recompilation of at least those packages that include C++
code, and possibly others. A build of R-devel using the older
toolchain will be temporarily available for comparison purposes.
During the transition, the environment variable R_COMPILED_BY has
been defined to indicate which toolchain was used to compile R
(and hence, which should be used to compile code in packages).
The COMPILED_BY variable described below will be a permanent
replacement for this.
* (Windows) A make and R CMD config variable named COMPILED_BY has
been added. This indicates which toolchain was used to compile R
(and hence, which should be used to compile code in packages).
PACKAGE INSTALLATION:
* The make macro AWK which used to be made available to files such
as src/Makefile is no longer set.
C-LEVEL FACILITIES:
* The API call logspace_sum introduced in R 3.2.0 is now remapped
as an entry point to Rf_logspace_sum, and its first argument has
gained a const qualifier. (PR#16470)
Code using it will need to be reinstalled.
Similarly, entry point log1pexp also defined in Rmath.h is
remapped there to Rf_log1pexp
* R_GE_version has been increased to 11.
* New API call R_orderVector1, a faster one-argument version of
R_orderVector.
* When R headers such as R.h and Rmath.h are called from C++ code
in packages they include the C++ versions of system headers such
as <cmath> rather than the legacy headers such as <math.h>.
(Headers Rinternals.h and Rinterface.h already did, and inclusion
of system headers can still be circumvented by defining
NO_C_HEADERS, including as from this version for those two
headers.)
The manual has long said that R headers should *not* be included
within an extern "C" block, and almost all the packages affected
by this change were doing so.
* Including header S.h from C++ code would fail on some platforms,
and so gives a compilation error on all.
* The deprecated header Rdefines.h is now compatible with defining
R_NO_REMAP.
* The connections API now includes a function R_GetConnection()
which allows packages implementing connections to convert R
connection objects to Rconnection handles used in the API. Code
which previously used the low-level R-internal getConnection()
entry point should switch to the official API.
BUG FIXES:
* C-level asChar(x) is fixed for when x is not a vector, and it
returns "TRUE"/"FALSE" instead of "T"/"F" for logical vectors.
* The first arguments of .colSums() etc (with an initial dot) are
now named x rather than X (matching colSums()): thus error
messages are corrected.
* A coef() method for class "maov" has been added to allow vcov()
to work with multivariate results. (PR#16380)
* method = "libcurl" connections signal errors rather than
retrieving HTTP error pages (where the ISP reports the error).
* xpdrows.data.frame() was not checking for unique row names; in
particular, this affected assignment to non-existing rows via
numerical indexing. (PR#16570)
* tail.matrix() did not work for zero rows matrices, and could
produce row "labels" such as "[1e+05,]".
* Data frames with a column named "stringsAsFactors" now format and
print correctly. (PR#16580)
* cor() is now guaranteed to return a value with absolute value
less than or equal to 1. (PR#16638)
* Array subsetting now keeps names(dim(.)).
* Blocking socket connection selection recovers more gracefully on
signal interrupts.
* The data.frame method of rbind() construction row.names works
better in borderline integer cases, but may change the names
assigned. (PR#16666)
* (X11 only) getGraphicsEvent() miscoded buttons and missed mouse
motion events. (PR#16700)
* methods(round) now also lists round.POSIXt.
* tar() now works with the default files = NULL. (PR#16716)
* Jumps to outer contexts, for example in error recovery, now make
intermediate jumps to contexts where on.exit() actions are
established instead of trying to run all on.exit() actions before
jumping to the final target. This unwinds the stack gradually,
releases resources held on the stack, and significantly reduces
the chance of a segfault when running out of C stack space. Error
handlers established using withCallingHandlers() and
options("error") specifications are ignored when handling a C
stack overflow error as attempting one of these would trigger a
cascade of C stack overflow errors. (These changes resolve
PR#16753.)
* The spacing could be wrong when printing a complex array.
(Report and patch by Lukas Stadler.)
* pretty(d, n, min.n, *) for date-time objects d works again in
border cases with large min.n, returns a labels attribute also
for small-range dates and in such cases its returned length is
closer to the desired n. (PR#16761) Additionally, it finally
does cover the range of d, as it always claimed.
* tsp(x) <- NULL did not handle correctly objects inheriting from
both "ts" and "mts". (PR#16769)
* install.packages() could give false errors when
options("pkgType") was "binary". (Reported by Jose Claudio
Faria.)
* A bug fix in R 3.0.2 fixed problems with locator() in X11, but
introduced problems in Windows. Now both should be fixed.
(PR#15700)
* download.file() with method = "wininet" incorrectly warned of
download file length difference when reported length was unknown.
(PR#16805)
* diag(NULL, 1) crashed because of missed type checking.
(PR#16853)
2016-07-26 06:53:33 +02:00
|
|
|
.include "../../www/curl/buildlink3.mk"
|
2005-01-12 23:50:20 +01:00
|
|
|
.include "../../x11/tk/buildlink3.mk"
|
|
|
|
|
2017-10-18 18:14:30 +02:00
|
|
|
.if ${OPSYS} != "Darwin"
|
|
|
|
.include "../../x11/libXt/buildlink3.mk"
|
|
|
|
.endif
|
|
|
|
|
2007-03-14 12:50:17 +01:00
|
|
|
INSTALL_TEMPLATES+= ../../math/R/files/pkg-index.tmpl
|
|
|
|
DEINSTALL_TEMPLATES+= ../../math/R/files/pkg-index.tmpl
|
|
|
|
PRINT_PLIST_AWK+= /^lib\/R\/doc\/html\/packages.html$$/ { next; }
|
|
|
|
|
2008-04-26 04:39:27 +02:00
|
|
|
.include "../../mk/pthread.buildlink3.mk"
|
1998-12-04 12:36:03 +01:00
|
|
|
.include "../../mk/bsd.pkg.mk"
|