pkgsrc/math/R/Makefile

199 lines
6.7 KiB
Makefile
Raw Normal View History

2021-12-08 17:01:42 +01:00
# $NetBSD: Makefile,v 1.229 2021/12/08 16:05:31 adam Exp $
#
# If updating this package, please try to ensure PLIST.Darwin is kept in sync
# to avoid unnecessarily breaking macOS users.
#
Update to 4.1.2 Upstream changes: CHANGES IN R 4.1.2: C-LEVEL FACILITIES: * The workaround in headers R.h and Rmath.h (using namespace std;) for the Oracle Developer Studio compiler is no longer needed now C++11 is required so has been removed. A couple more usages of log() (which should have been std::log()) with an int argument are reported on Solaris. * The undocumented limit of 4095 bytes on messages from the S-compatibility macros PROBLEM and MESSAGE is now documented and longer messages will be silently truncated rather than potentially causing segfaults. * If the R_NO_SEGV_HANDLER environment variable is non-empty, the signal handler for SEGV/ILL/BUS signals (which offers recovery user interface) is not set. This allows more reliable debugging of crashes that involve the console. DEPRECATED AND DEFUNCT: * The legacy S-compatibility macros PROBLEM, MESSAGE, ERROR, WARN, WARNING, RECOVER, ... are deprecated and will be hidden in R 4.2.0. R's native interface of Rf_error and Rf_warning has long been preferred. BUG FIXES: * .mapply(F, dots, .) no longer segfaults when dots is not a list and uses match.fun(F) as always documented; reported by Andrew Simmons in PR#18164. * hist(<Date>, ...) and hist(<POSIXt>, ...) no longer pass arguments for rect() (such as col and density) to axis(). (Thanks to Sebastian Meyer's PR#18171.) * \Sexpr{ch} now preserves Encoding(ch). (Thanks to report and patch by Jeroen Ooms in PR#18152.) * Setting the RNG to "Marsaglia-Multicarry" e.g., by RNGkind(), now warns in more places, thanks to Andr'e Gillibert's report and patch in PR#18168. * gray(numeric(), alpha=1/2) no longer segfaults, fixing PR#18183, reported by Till Krenz. * Fixed dnbinom(x, size=<very_small>, .., log=TRUE) regression, reported by Martin Morgan. * as.Date.POSIXlt(x) now keeps names(x), thanks to Davis Vaughan's report and patch in PR#18188. * model.response() now strips an "AsIs" class typically, thanks to Duncan Murdoch's report and other discussants in PR#18190. * try() is considerably faster in case of an error and long call, as e.g., from some do.call(). Thanks to Alexander Kaever's suggestion posted to R-devel. * qqline(y = <object>) such as y=I(.), now works, see also PR#18190. * Non-integer mgp par() settings are now handled correctly in axis() and mtext(), thanks to Mikael Jagan and Duncan Murdoch's report and suggestion in PR#18194. * formatC(x) returns length zero character() now, rather than "" when x is of length zero, as documented, thanks to Davis Vaughan's post to R-devel. * removeSource(fn) now retains (other) attributes(fn).
2021-11-04 15:38:47 +01:00
DISTNAME= R-4.1.2
2021-12-08 17:01:42 +01:00
PKGREVISION= 1
CATEGORIES= math
R: update to 4.0.2 CHANGES IN R 4.0.0: SIGNIFICANT USER-VISIBLE CHANGES: * Packages need to be (re-)installed under this version (4.0.0) of R. * matrix objects now also inherit from class "array", so e.g., class(diag(1)) is c("matrix", "array"). This invalidates code incorrectly assuming that class(matrix_obj)) has length one. S3 methods for class "array" are now dispatched for matrix objects. * There is a new syntax for specifying _raw_ character constants similar to the one used in C++: r"(...)" with ... any character sequence not containing the sequence )". This makes it easier to write strings that contain backslashes or both single and double quotes. For more details see ?Quotes. * R now uses a stringsAsFactors = FALSE default, and hence by default no longer converts strings to factors in calls to data.frame() and read.table(). A large number of packages relied on the previous behaviour and so have needed/will need updating. * The plot() S3 generic function is now in package base rather than package graphics, as it is reasonable to have methods that do not use the graphics package. The generic is currently re-exported from the graphics namespace to allow packages importing it from there to continue working, but this may change in future. Packages which define S4 generics for plot() should be re-installed and package code using such generics from other packages needs to ensure that they are imported rather than rely on their being looked for on the search path (as in a namespace, the base namespace has precedence over the search path). See ${PREFIX}/lib/R/doc/NEWS for full changes.
2020-07-16 04:22:55 +02:00
MASTER_SITES= ${MASTER_SITE_R_CRAN:=base/R-4/}
2019-10-20 05:29:10 +02:00
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://www.R-project.org/
COMMENT= Statistical language for data analysis and graphics
LICENSE= gnu-gpl-v2
USE_GCC_RUNTIME= yes
BUILD_TARGET= all info
INSTALL_TARGET= install install-info
TEST_TARGET= check
USE_LANGUAGES= c c++ fortran
USE_LIBTOOL= yes
USE_TOOLS+= aclocal autoconf autoreconf automake gmake gzip:run
USE_TOOLS+= makeinfo perl:run pkg-config sed unzip:run
TEXINFO_REQD= 5.1
INFO_FILES= yes
PTHREAD_AUTO_VARS= yes
GNU_CONFIGURE= yes
GNU_CONFIGURE_ICONV= no
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
CONFIGURE_ARGS+= --with-readline
CONFIGURE_ARGS+= --with-tcltk
CONFIGURE_ARGS+= --with-tcl-config=${BUILDLINK_PREFIX.tcl}/lib/tclConfig.sh
CONFIGURE_ARGS+= --with-tk-config=${BUILDLINK_PREFIX.tk}/lib/tkConfig.sh
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
PLIST_VARS+= x11
# Disable Mac OS specific support used by R.app
.if ${OPSYS} == "Darwin"
CONFIGURE_ARGS+= --disable-R-framework
CONFIGURE_ARGS+= --with-aqua
CONFIGURE_ARGS+= --without-x
.else
USE_TOOLS+= xmkmf
CONFIGURE_ARGS+= --with-x
PLIST.x11= yes
.endif
# Think about making this consistent with Numpy, using a full
# BLAS/LAPACK by default and only on request accelerate. Just
# BLAS_ACCEPTED= ${_BLAS_TYPES} accelerate.framework
# (here and in buildlink3.mk) and deleting the first conditional
# branch might work, given that R knows what todo with
# -framework Accelerate. Someone on Darwin really needs to test.
.if exists(/System/Library/Frameworks/Accelerate.framework)
CONFIGURE_ARGS+= --with-blas="-framework Accelerate"
CONFIGURE_ARGS+= --with-lapack # contained in the above
.else
# Could be two distinct libraries. Note that, at least int the past,
# R folks were not fond of linking external lapack.
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
CONFIGURE_ARGS+= --with-blas=${BLAS_LIBS:Q}
CONFIGURE_ARGS+= --with-lapack=${LAPACK_LIBS:Q}
.endif
# Work around missing MAIN__() definition used in -lF77 by AC_CHECK_LIB.
Update to R 2.7.2 NEW FEATURES o sprintf() returns elements of the result in UTF-8 when the format or any character input has a corresponding element declared as UTF-8. Similarly for paste(), elements of the result are in UTF-8 when any input to that element is declared as UTF-8. o axis() has new arguments 'col.ticks' and 'lwd.ticks' to allow the colour and line width of ticks to be set separately from that of the line (e.g. to set one or the other to transparent or zero width). o legend() has a new argument 'box.col' to set the colour of the enclosing box. o legend() gains a 'xpd' argument to make it easier to place a legend in the margins or outer margins. o stripchart() now passes '...' to title() (as well as to plot.default() and axis()). (Wish of PR#12202) o help.search() has new argument 'searchEngine' to go directly to the search form: this is needed by users of Firefox 3 to workaround a bug in interpreting the search results pages. + BUG FIXES 2.7.1 NEW FEATURES o tools::texi2dvi() has a new argument 'texinputs' to allow the TeX and bibtex input paths to be specified (even on MiKTeX). o dev.copy2pdf() gains an 'out.type' argument to allow it to be used with cairo_pdf() or quartz(type = "pdf"). o poly() has additional checks against user error (as in PR#11243). o The Mac OS quartz() device draws contiguous lines much faster. o A field containing just a sign is no longer regarded as numeric (it was on all platforms in 2.7.0, but not on most in earlier versions of R). Similarly, '.' is now always non-numeric. o CITATION files are now read in Latin-1: quite a few were failing if used in a multibyte locale such as UTF-8. o The DESCRIPTION file of a package can specify an 'OS_type' field as either 'unix' or 'windows' to confine installation to that OS type. o HoltWinters() now uses optimize() rather than optim for one-parameter problems which should be more reliable (PR#11469). o axis() now respects the setting of par("xpd") when clipping. o The 'factor' method of format() now preserves names, dims and dimnames in the same way as for character and numeric inputs. (PR#11512) o read.DIF(*, transpose=TRUE) now allows to correctly read DIF files produced by some versions of Excel. DEPRECATED & DEFUNCT o The use of unserialize() on character strings is deprecated: that was a format used in R < 2.4.0. o The use of embedded nuls in character strings is deprecated: They will no longer be allowed in R 2.8.0. UTILITIES o R CMD check checks for possible check directories in the sources -- in mid-2008 there were about 20 examples on CRAN. o R CMD build tries harder to clean up the inst/doc directory from the remnants of earlier builds. It also removes any directories with extension .Rcheck, and files .DS_Store and ._* (created by tar on Mac OS X under some circumstances: it now sets environment variables to ask for such files not to be created by that tar.) + BUG FIXES
2008-08-31 14:37:27 +02:00
# and other failures due to not linking to support libs during testing
CONFIGURE_ENV+= ac_cv_lib_blas_dgemm=yes
CONFIGURE_ENV+= ac_cv_lib_blas_dgemm_=yes
Update to R 2.7.2 NEW FEATURES o sprintf() returns elements of the result in UTF-8 when the format or any character input has a corresponding element declared as UTF-8. Similarly for paste(), elements of the result are in UTF-8 when any input to that element is declared as UTF-8. o axis() has new arguments 'col.ticks' and 'lwd.ticks' to allow the colour and line width of ticks to be set separately from that of the line (e.g. to set one or the other to transparent or zero width). o legend() has a new argument 'box.col' to set the colour of the enclosing box. o legend() gains a 'xpd' argument to make it easier to place a legend in the margins or outer margins. o stripchart() now passes '...' to title() (as well as to plot.default() and axis()). (Wish of PR#12202) o help.search() has new argument 'searchEngine' to go directly to the search form: this is needed by users of Firefox 3 to workaround a bug in interpreting the search results pages. + BUG FIXES 2.7.1 NEW FEATURES o tools::texi2dvi() has a new argument 'texinputs' to allow the TeX and bibtex input paths to be specified (even on MiKTeX). o dev.copy2pdf() gains an 'out.type' argument to allow it to be used with cairo_pdf() or quartz(type = "pdf"). o poly() has additional checks against user error (as in PR#11243). o The Mac OS quartz() device draws contiguous lines much faster. o A field containing just a sign is no longer regarded as numeric (it was on all platforms in 2.7.0, but not on most in earlier versions of R). Similarly, '.' is now always non-numeric. o CITATION files are now read in Latin-1: quite a few were failing if used in a multibyte locale such as UTF-8. o The DESCRIPTION file of a package can specify an 'OS_type' field as either 'unix' or 'windows' to confine installation to that OS type. o HoltWinters() now uses optimize() rather than optim for one-parameter problems which should be more reliable (PR#11469). o axis() now respects the setting of par("xpd") when clipping. o The 'factor' method of format() now preserves names, dims and dimnames in the same way as for character and numeric inputs. (PR#11512) o read.DIF(*, transpose=TRUE) now allows to correctly read DIF files produced by some versions of Excel. DEPRECATED & DEFUNCT o The use of unserialize() on character strings is deprecated: that was a format used in R < 2.4.0. o The use of embedded nuls in character strings is deprecated: They will no longer be allowed in R 2.8.0. UTILITIES o R CMD check checks for possible check directories in the sources -- in mid-2008 there were about 20 examples on CRAN. o R CMD build tries harder to clean up the inst/doc directory from the remnants of earlier builds. It also removes any directories with extension .Rcheck, and files .DS_Store and ._* (created by tar on Mac OS X under some circumstances: it now sets environment variables to ask for such files not to be created by that tar.) + BUG FIXES
2008-08-31 14:37:27 +02:00
CONFIGURE_ENV+= r_cv_complete_blas=yes
# Broken test for bzlib >= 1.0.5 in R 2.7.0
CONFIGURE_ENV+= r_cv_have_bzlib=yes
# Override zlib 1.2.5 requirement
CONFIGURE_ENV+= r_cv_header_zlib_h=yes
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}
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}
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=""
# We don't want "lib64"
CONFIGURE_ENV+= LIBnn=lib
# 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
# R_PAPERSIZE can be: A4, Letter, Legal, Executive
.if defined(PAPERSIZE)
R_PAPERSIZE?= ${PAPERSIZE}
.else
R_PAPERSIZE?= A4
.endif
.if (${R_PAPERSIZE} == "Letterdj")
R_PAPERSIZE= Letter
.endif
CONFIGURE_ENV+= R_PAPERSIZE=${R_PAPERSIZE:Q}
# 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}
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-iftex>=1.0d:../../print/tex-iftex
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
#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
SUBST_CLASSES+= fixwrap
SUBST_STAGE.fixwrap= post-build
SUBST_FILES.fixwrap= libtool
SUBST_SED.fixwrap= -e "s,${WRAPPER_BINDIR}/libtool,${PKG_LIBTOOL},g"
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
# 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
pre-configure:
${RUN} cd ${WRKSRC} && autoreconf -fvi || echo Ignore the warnings from autoreconf
# 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},,'`; \
install_name_tool -id $${libdir}/$${libname} $${lib}; \
done
.endif
.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"
.include "../../devel/gettext-lib/buildlink3.mk"
.include "../../devel/glib2/buildlink3.mk"
.include "../../devel/pango/buildlink3.mk"
R: update to 4.0.2 CHANGES IN R 4.0.0: SIGNIFICANT USER-VISIBLE CHANGES: * Packages need to be (re-)installed under this version (4.0.0) of R. * matrix objects now also inherit from class "array", so e.g., class(diag(1)) is c("matrix", "array"). This invalidates code incorrectly assuming that class(matrix_obj)) has length one. S3 methods for class "array" are now dispatched for matrix objects. * There is a new syntax for specifying _raw_ character constants similar to the one used in C++: r"(...)" with ... any character sequence not containing the sequence )". This makes it easier to write strings that contain backslashes or both single and double quotes. For more details see ?Quotes. * R now uses a stringsAsFactors = FALSE default, and hence by default no longer converts strings to factors in calls to data.frame() and read.table(). A large number of packages relied on the previous behaviour and so have needed/will need updating. * The plot() S3 generic function is now in package base rather than package graphics, as it is reasonable to have methods that do not use the graphics package. The generic is currently re-exported from the graphics namespace to allow packages importing it from there to continue working, but this may change in future. Packages which define S4 generics for plot() should be re-installed and package code using such generics from other packages needs to ensure that they are imported rather than rely on their being looked for on the search path (as in a namespace, the base namespace has precedence over the search path). See ${PREFIX}/lib/R/doc/NEWS for full changes.
2020-07-16 04:22:55 +02:00
.include "../../devel/pcre2/buildlink3.mk"
# uses callback interface
.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"
.include "../../mk/jpeg.buildlink3.mk"
.include "../../graphics/png/buildlink3.mk"
.include "../../graphics/tiff/buildlink3.mk"
.if !exists(/System/Library/Frameworks/Accelerate.framework)
.include "../../mk/blas.buildlink3.mk"
.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"
.include "../../x11/tk/buildlink3.mk"
.if ${OPSYS} != "Darwin"
.include "../../x11/libXt/buildlink3.mk"
.endif
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; }
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"