pkgsrc/math/R/Makefile

196 lines
6.4 KiB
Makefile
Raw Normal View History

2019-06-19 13:37:42 +02:00
# $NetBSD: Makefile,v 1.198 2019/06/19 11:37:42 jperkin Exp $
Update to 3.6.0 Upstream changes: CHANGES IN R 3.6.0: SIGNIFICANT USER-VISIBLE CHANGES: * Serialization format version 3 becomes the default for serialization and saving of the workspace (save(), serialize(), saveRDS(), compiler::cmpfile()). Serialized data in format 3 cannot be read by versions of R prior to version 3.5.0. Serialization format version 2 is still supported and can be selected by version = 2 in the save/serialization functions. The default can be changed back for the whole R session by setting environment variables R_DEFAULT_SAVE_VERSION and R_DEFAULT_SERIALIZE_VERSION to 2. For maximal back-compatibility, files vignette.rds and partial.rdb generated by R CMD build are in serialization format version 2, and resave by default produces files in serialization format version 2 (unless the original is already in format version 3). * The default method for generating from a discrete uniform distribution (used in sample(), for instance) has been changed. This addresses the fact, pointed out by Ottoboni and Stark, that the previous method made sample() noticeably non-uniform on large populations. See PR#17494 for a discussion. The previous method can be requested using RNGkind() or RNGversion() if necessary for reproduction of old results. Thanks to Duncan Murdoch for contributing the patch and Gabe Becker for further assistance. The output of RNGkind() has been changed to also return the 'kind' used by sample(). NEW FEATURES: * Sys.setFileTime() has been vectorized so arguments path and time of length greater than one are now supported. * axis() gets new option gap.axis = NA for specifying a multiplication factor for the minimal "gap" (distance) between axis labels drawn. Its default is 1 for labels _parallel_ to the axis, and 0.25 for perpendicular ones. Perpendicular labels no longer overlap, fixing bug PR#17384. * The default method of plot() gains new arguments xgap.axis = NA and ygap.axis = NA to be passed to the x- and y- axis(.., gap.axis=*) calls. * removeSource() now works not only for functions but also for some language objects. * as.call(), rep.int(), rep_len() and nchar() dispatch internally. * is(object, class2) looks for class2 in the calling namespace after looking in the namespace of class(object). * extendrange(.., f) with a length-2 f now extends separately to the left and the right. * lengths() dispatches internally to S4 methods. * download.file() on Windows now uses URLdecode() to determine the file extension, and uses binary transfer (mode = "wb") also for file extension .rds. The help page for download.file() now contains the same information on all platforms. * Setting C locale for collation _via_ environment variables LC_ALL and LC_COLLATE and _via_ a call to Sys.setlocale() now takes precedence over environment variable R_ICU_LOCALE. * There is a new function, nullfile(), to give the file name of the null system device (e.g., /dev/null) on the current platform. * There are two new options, keep.parse.data and keep.parse.data.pkgs, which control whether parse data are included into sources when keep.source or keep.source.pkgs is TRUE. By default, keep.parse.data.pkgs is now FALSE, which changes previous behavior and significantly reduces space and time overhead when sources are kept when installing packages. * In rapply(x, ..), x can also be "list-like" and of length >= 2^{31}. * trimws() gets new optional whitespace argument, allowing more extensive definitions of "space", such as including Unicode spaces (as wished in PR#17431). * weighted.mean() no longer coerces the weights to a double/numeric vector, since sum() now handles integer overflow. This makes weighted.mean() more polymorphic and endomorphic, but be aware that the results are no longer guaranteed to be a vector of type double. * When loading namespaces, S3 method registrations which overwrite previous registrations are now noted by default (using packageStartupMessage()). * compiler::cmpfile() gains a version argument, for use when the output file should be saved in serialization format 2. * The axis labeling in the default method of pairs() may now be toggled by new options horOdd and verOdd. * (Not Windows nor macOS.) Package tcltk now supports an environment variable R_DONT_USE_TK which if set disables Tk initialization. This is intended for use to circumvent errors in loading the package, e.g. with recent Linux running under an address sanitizer. * The numeric method of all.equal() gets optional arguments countEQ and formatFUN. If countEQ is true, the mean error is more sensible when many entries are *eq*ual. * outer(x,y, FUN = "*") is more efficient using tcrossprod(u,v) instead of u %*% t(v). * vcov(<mlm>) is more efficient via new optional arguments in summary.mlm(). * The default method of summary() gets an option to choose the _kind_ of quantile()s to use; wish of PR#17438. * Fitting multiple linear models _via_ lm() does work with _matrix_ offsets, as suggested in PR#17407. * The new functions mem.maxVSize() and mem.maxMSize() allow the maximal size of the vector heap and the maximal number of nodes allowed in the current R process to be queried and set. * news() gains support for NEWS.md files. * An effort has been started to have our reference manuals, i.e., all help pages. show platform-independent information (rather than Windows or Unix-alike specifics visible only on that platform). Consequently, the Windows version of X11() / x11() got identical formal arguments to the Unix one. * sessionInfo()$running has been factored out in a new variable osVersion. * slice.index() now also works for multi-dimensional margins. * untar() used with an external tar command assumes this supports decompression including xz and automagically detecting the compression type. This has been true of all mainstream implementations since 2009 (for GNU tar, since version 1.22): older implementations are still supported _via_ the new argument support_old_tars whose default is controlled by environment variable R_SUPPORT_OLD_TARS. (It looks like NetBSD and OpenBSD have 'older' tar commands for this purpose.) * The new function asplit() allow splitting an array or matrix by its margins. * New functions errorCondition() and warningCondition() provide a convenient way to create structured error and warning objects. .Deprecated() now signals a warning of class "deprecatedWarning", and .Defunct() now signals an error of class "defunctError". * Many 'package not found' errors are now signaled as errors of class "packageNotFoundError". * As an experimental feature, when loadNamespace() fails because the requested package is not available the error is initially signaled with a retry_loadNamespace restart available. This allows a calling handler to try to install the package and continue. * S3method() directives in NAMESPACE can now also be used to perform _delayed_ S3 method registration. * Experimentally, setting environment variable _R_CHECK_LENGTH_1_LOGIC2_ will lead to warnings (or errors if the variable is set to a 'true' value) when && or || encounter and use arguments of length more than one. * Added "lines" and "chars" coordinate systems to grconvertX() and grconvertY(). * getOption() is more efficient notably for the rare case when called with two arguments, from several contributors in PR#17394. * In .col(dim) and .row(dim), dim now may also be an integer-valued "double". * sQuote() and dQuote() get an explicit q argument with obvious default instead of using getOption("fancyQuotes") implicitly and unconditionally. * unzip() can list archives with comments and with spaces in file names even using an external unzip command. * Command line completion has a new setting rc.settings(dots = FALSE) to remove ... from the list of possible function arguments. * library() no longer checks packages with compiled code match R.version$platform. loadNamespace() never has, and increasingly the 'canonical name' does not reflect the important characteristics of compiled code. * The primitive functions drop() and unclass() now avoid duplicating their data for atomic vectors that are large enough, by returning ALTREP wrapper objects with adjusted attributes. R-level assignments to change attributes will also use wrapper objects to avoid duplicating data for larger atomic vectors. R functions like structure() and unname() will therefore not duplicate data in these settings. Generic vectors as produced by list() are not yet covered by this optimization but may be in due course. * In formals(), envir becomes an optional argument instead of being hardwired. * Instead of signalling an error for an invalid S4 object x, str(x) now gives a warning and subsequently still shows most parts of x, e.g., when slots are missing. * gamma(x) and lgamma(x) no longer warn when correctly returning Inf or underflowing to zero. This helps maximum likelihood and similar computations. * convertColor() is now vectorized, so a lot faster for converting many colours at once. The new argument vectorized to colorConverter() ensures that non-vectorized colour converters still work. (Thanks to Brodie Gaslam.) * download.file() and url() get new argument headers for custom HTTP headers, e.g., allowing to perform basic http authentication, thanks to a patch contributed by G'abor Cs'ardi. * File-based connection functions file(), gzfile(), bzfile() and xzfile() now signal an error when used on a directory. * For approx(), splinefun() _etc_, a new setting ties = c("ordered", <fun>) allows skipping the sorting and still treat ties. * format(x) gives a more user friendly error message in the case where no method is defined. A minimal method is provided in format.default(x) when isS4(x) is true. * which(x) now also works when x is a long vector, thanks to Suharto Anggono's PR#17201. *NB*: this may return a double result, breaking the previous guarantee of an integer result. * seq.default() is more careful to return an integer (as opposed to double) result when its arguments are large and/or classed objects; see comment #9 of Suharto Anggono's PR#17497. * The plot() method for lm and glm fits, plot.lm(), gains a new option iter.smooth with a default of 0 for binomial fits, no longer down-weighting when smoothing the residuals. * zip() passes its list of files _via_ standard input to the external command when too long for the command line (on some platforms). * data() gains an overwrite argument. * t.test() now also returns the standard error (in list component stderr). * model.matrix(*, contrasts.arg = CC) now warns about invalid contrasts.args. * Performance of substr() and substring() has been improved. * stopifnot() has been simplified thanks to Suharto Anggono's proposals to become considerably faster for cheap expressions. * The default 'user agent' has been changed when accessing http:// and https:// sites using libcurl. (A site was found which caused libcurl to infinite-loop with the previous default.) * sessionInfo() now also contains RNGkind() and prints it when it differs from the default; based on a proposal and patch by Gabe Becker in PR#17535. Also, RNGversion(getRversion()) works directly. * library() and require() now allow more control over handling search path conflicts when packages are attached. The policy is controlled by the new conflicts.policy option. * barplot() gets a formula method, thanks to a patch proposal by Arni Magnusson in PR#17521. * pmax() and pmin(x) now also work for long vectors, thanks to Suharto Anggono's PR#17533. * bxp() now warns when omitting duplicated arguments. * New hcl.colors() function to provide wide range of HCL-based colour palettes with much better perceptual properties than the existing RGB/HSV-based palettes like rainbow(). Also a new hcl.pals() function to list available palette names for hcl.colors(). Contributed by Achim Zeileis. * The default colours for image() and filled.contour() are now based on hcl.colors(). * The palette-generating functions rainbow(), gray.colors(), etc. get a new rev argument to facilitate reversing the order of colors. * New str2lang() and str2expression() as streamlined versions of parse(text=., keep.source=FALSE) allow to abstract typical call constructions, e.g., in formula manipulations. (Somewhat experimental) * Add update_PACKAGES() for incrementally updating a package repository index, instead of rebuilding the index from scratch. Thanks to Gabe Becker in PR#17544 for the patch, based on part of his switchr package. INSTALLATION on a UNIX-ALIKE: * The options selected for the C++ compiler default to the C++11 standard if supported, otherwise to the C++98 standard. * Visibility macros such as C_VISIBILITY can now be user-set (including to empty), e.g. in config.site. * Macro FCLIBS, which has sometimes been needed on Solaris, has been renamed to FCLIBS_XTRA. * Macro F77 is always set to the value of FC, so the latter should be set to user-select the Fortran compiler for both fixed-form and free-form Fortran. In particular, gfortran is now the first choice for F77, not f95. Macros FFLAGS and FCFLAGS remain distinct to allow for a compiler which needs a flag to select free- or fixed-form Fortran (most use the source-file extension to choose: .f is fixed-form and .f90 and .f95 are free-form). If only one of them is set, its value is used for both. * The special-casing of CFLAGS, CXXFLAGS and FFLAGS for Intel compilers on Linux has been removed: we do not have recent experience but the generic defaults now chosen are the same as those previously special-cased for x86_64. If necessary, override the defaults on the configure command line or in file config.site. * Long-untested configure support for HP-UX and very old versions of Linux has been removed. * configure --with-blas (without specifying a value) includes OpenBLAS in its search (before ATLAS and a generic BLAS). This follows recent versions of the ax_blas autoconf macro. * The configure macro MAKEINFO has been updated to TEXI2ANY. * Support for make install-strip has been enhanced. PACKAGE INSTALLATION: * Source package installation is by default 'staged': the package is installed into a temporary location under the final library directory and moved into place once the installation is complete. The benefit is that partially-installed packages are hidden from other R sessions. The overall default is set by environment variable R_INSTALL_STAGED. R CMD INSTALL has new options --staged-install and --no-staged-install, and packages can use the StagedInstall field in their DESCRIPTION file to opt out. (That opt-out is a temporary measure which may be withdrawn in future.) Staged installation requires either --pkglock or --lock, one of which is used by default. * The interpretation of source code with extension .f is changing. Previously this denoted FORTRAN 77 code, but current compilers no longer have a FORTRAN 77 mode and interpret it as 'fixed-form' Fortran 90 (or later where supported) code. Extensions .f90 and .f95 continue to indicate 'free-form' Fortran code. Legal FORTRAN 77 code is also legal fixed-form Fortran 9x; however this change legitimizes the use of later features, in particular to replace features marked 'obsolescent' in Fortran 90 and 'deleted' in Fortran 2018 which gfortran 8.x and later warn about. * Packages containing files in the src directory with extensions .f90 or .f95 are now linked using the C or C++ compiler rather than the Fortran 9x compiler. This is consistent with fixed-form Fortran code and allows mixing of C++ and free-form Fortran on most platforms. Consequentially, a package which includes free-form Fortran 9x code which uses OpenMP should include SHLIB_OPENMP_CFLAGS (or the CXXFLAGS version if they also include C++ code) in PKG_LIBS rather than SHLIB_OPENMP_FCFLAGS - fortunately on almost all current platforms they are the same flag. * Macro PKG_FFLAGS will be used for the compilation of both fixed-form and free-form Fortran code unless PKG_FCFLAGS is also set (in src/Makevars or src/Makevars.win). * The make macro F_VISIBILITY is now preferred for both fixed-form and free-form Fortran, for use in src/Makevars and similar. * R CMD INSTALL gains a new option --strip which (where supported) strips installed shared object(s): this can also be achieved by setting the environment variable _R_SHLIB_STRIP_ to a true value. The new option --strip-lib attempts stripping of static and shared libraries installed under lib. These are most useful on platforms using GNU binutils (such as Linux) and compiling with -g flags. * There is more support for installing UTF-8-encoded packages in a strict Latin-1 locale (and probably for other Latin locales): non-ASCII comments in R code (and NAMESPACE files) are worked around better. UTILITIES: * R CMD check now optionally checks makefiles for correct and portable use of the SHLIB_OPENMP_*FLAGS macros. * R CMD check now evaluates \Sexpr{} expressions (including those in macros) before checking the contents of Rd files and so detects issues both in evaluating the expressions and in the expanded contents. * R CMD check now lists missing packages separated by commas and with regular quotes such as to be useful as argument in calling install.packages(c(..)); from a suggestion by Marcel Ramos. * tools::Rd2latex() now uses UTF-8 as its default output encoding. * R CMD check now checks line endings of files with extension .hpp and those under inst/include. The check now includes that a non-empty file is terminated with a newline. R CMD build will correct line endings in such files. * R CMD check now tries re-building all vignettes rather than stopping at the first error: whilst doing so it adds 'bookmarks' to the log. By default (see the 'R Internals' manual) it re-builds each vignette in a separate process. It now checks for duplicated vignette titles (also known as 'index entries'): they are used as hyperlinks on CRAN package pages and so do need to be unique. * R CMD check has more comprehensive checks on the data directory and the functioning of data() in a package. * R CMD check now checks autoconf-generated configure files have their corresponding source files, including optionally attempting to regenerate them on platforms with autoreconf. * R CMD build has a new option --compression to select the compression used for the tarball. * R CMD build now removes src/*.mod files on all platforms. C-LEVEL FACILITIES: * New pointer protection C functions R_PreserveInMSet and R_ReleaseFromMSet have been introduced to replace UNPROTECT_PTR, which is not safe to mix with UNPROTECT (and with PROTECT_WITH_INDEX). Intended for use in parsers only. * NAMEDMAX has been raised to 7 to allow further protection of intermediate results from (usually ill-advised) assignments in arguments to BUILTIN functions. Properly written package code should not be affected. * R_unif_index is now considered to be part of the C API. * R_GetCurrentEnv() allows C code to retrieve the current environment. DEPRECATED AND DEFUNCT: * Argument compressed of untar() is deprecated - it is only used for external tar commands which increasingly for extraction auto-detect compression and ignore their zjJ flags. * var(f) and hence sd(f) now give an error for factor arguments; they gave a deprecation warning since R 3.2.3, PR#16564. * Package tools' vignetteDepends() has been deprecated (it called a function deprecated since Feb 2016), being partly replaced by newly exported vignetteInfo(). * The f77_f2c script has been removed: it no longer sufficed to compile the .f files in R. * The deprecated legacy support of make macros such as CXX1X has been removed: use the CXX11 forms instead. * Make macro F77_VISIBILITY is deprecated in favour of F_VISIBILITY. * Make macros F77, FCPIFCPLAGS and SHLIB_OPENMP_FCFLAGS are deprecated in favour of FC, FPICFLAGS and SHLIB_OPENMP_FFLAGS respectively. * $.data.frame had become an expensive version of the default method, so has been removed. (Thanks to Radford Neal for picking this up and to Duncan Murdoch for providing a patch.) BUG FIXES: * replayPlot(r) now also works in the same R session when r has been "reproduced" from serialization, typically after saving to and reading from an RDS file. * substr() and substring() now signal an error when the input is invalid UTF-8. * file.copy() now works also when its argument to is of length greater than one. * mantelhaen.test() no longer suffers from integer overflow in largish cases, thanks to Ben Bolker's PR#17383. * Calling setGeneric("foo") in a package no longer fails when the enclosing environment of the implicit generic foo() is .GlobalEnv. * untar(file("<some>.tar.gz"), *) now gives a better error message, suggesting to use gzfile() instead. * Method dispatch uses more relevant environments when looking up class definitions. * The documentation for identify() incorrectly claimed that the indices of identified points were returned in the order that the points were selected. identify() now has a new argument order to allow the return value to include the order in which points were identified; the documentation has been updated. Reported by Richard Rowe and Samuel Granjeaud. * order(...., decreasing=c(TRUE, FALSE)) could fail in some cases. Reported from StackOverflow via Karl Nordstr"om. * User macros in Rd files now accept empty and multi-line arguments. * Changes in print.*(), thanks to Lionel Henry's patches in PR#17398: * Printing lists, pairlists or attributes containing calls with S3 class no longer evaluate those. * Printing S4 objects within lists and pairlists dispatches with show() rather than print(), as with auto-printing. * The indexing tags (names or [[<n>]]) of recursive data structures are now printed correctly in complex cases. * Arguments supplied to print() are now properly forwarded to methods when printing lists, pairlists or attributes containing S3 objects. * The print parameters are now preserved when printing S3 objects or deparsing symbols and calls. Previously, printing lists containing S3 objects or expressions would reset these parameters. * Printing lists, pairlists or attributes containing functions now uses srcref attributes if present. * Calling install.packages() with a length zero pkgs argument now is a no-op (PR#17422). * unlist(x) now returns a correct factor when x is a nested list with factor leaves, fixing PR#12572 and PR#17419. * The documentation help(family) gives more details about the aic component, thanks to Ben Bolker's prompting. * The documentation for attributes and `attributes<-` now gives x as name of the first and main argument which the implementation has been requiring, fixing PR#17434. For consistency, the first argument name is also changed from obj to x for `mostattributes<-`. * strwidth() now uses par("font") as default font face (PR#17352). * plot(<table>, log="x") no longer warns about log. * The print() method for "htest" objects now formats the test statistic and parameter directly and hence no longer rounds to units _before_ the decimal point. Consequently, printing of t.test() results with a small number of digits now shows non-large df's to the full precision (PR#17444). * kruskal.test() and fligner.test() no longer erroneously insist on numeric g group arguments (PR#16719). * Printing a news db via the browser now does a much better job (PR#17433). * print.aov() missed column names in the multivariate case due to misspelling (reported by Chris Andrews). * axis() now creates valid at locations also for small subnormal number ranges in log scale plots. * format.POSIXlt() now also recycles the zone and gmtoff list components to full length when needed, and its internal C code detects have_zone in more cases. In some cases, this changes its output to become compatible with format.POSIXct(). * On Windows, detectCores() in package parallel now detects processors in all processor groups, not just the group R is running in (impacts particularly systems with more than 64 logical processors). Reported by Arunkumar Srinivasan. * On Windows, socketSelect() would hang with more than 64 sockets, and hence parallel::clusterApplyLB() would hang with more than 64 workers. Reported by Arunkumar Srinivasan. * as(1L, "double") now does coerce (PR#17457). * lm.influence(), influence.measures(), rstudent() etc now work (more) correctly for multivariate models ("mlm"), thanks to (anonymous) stackoverflow remarks. * sample.int(2.9, *, replace=TRUE) again behaves as documented and as in R < 3.0.0, namely identically to sample.int(2, ..). * Fixes to convertColor() for chromatic adaptation; thanks to Brodie Gaslam PR#17473. * Using \Sexpr[stage=install]{..} to create an Rd section no longer gives a warning in R CMD check; problem originally posted by G'abor Cs'ardi, then reported as PR#17479 with a partial patch by Duncan Murdoch. * Parse data now include a special node for equal assignment. * split.default() no longer relies on [[<-(), so it behaves as expected when splitting an object by a factor with the empty string as one of its levels. Thanks to Brad Friedman for the report. * Line numbers in messages about .Rd files are now more reliable, thanks to a patch from Duncan Murdoch. * In the numeric method for all.equal(), a numeric scale argument is now checked to be positive and allowed to be of length > 1. (The latter worked originally and with a warning in recent years). * Deferred string conversions now record the OutDec option setting when not equal to the default. Reported by Michael Sannella. * When y is numeric and f a factor, plot(y ~ f) nicely uses "y" and "f" as y- and x-labels. The more direct boxplot(y ~ f) now does too. The new argument ann = FALSE may be used to suppress these. * Subassignment to no/empty rows of a data frame is more consistent and typically a no-op in all cases instead of sometimes an error; part of Emil Bode's PR#17483. * Calls like formatC(*, zero.print = "< 0.001") no longer give an error and are further improved via new optional argument replace.zero. Reported by David Hugh-Jones. * methods::formalArgs("<fn>") now finds the same function as formals("<fn>"), fixing Emil Bode's PR#17499. * The methods package better handles duplicated class names across packages. * The default method of seq() now avoids integer overflow, thanks to the report and "cumsum" patch of Suharto Anggono's PR#17497. * sub() no longer loses encodings for non-ASCII replacements (PR#17509). * Fix for rotated raster image on X11 device. (Partial fix for PR#17148; thanks to Mikko Korpela). * formula(model.frame(frml, ..)) now returns frml in all cases, thanks to Bill Dunlap. The previous behavior is available as DF2formula(<model.frame>). * ar.ols() also returns scalar var.pred in univariate case (PR#17517). * normalizePath() now treats NA path as non-existent and normalizes it to NA. file.access() treats NA file name as non-existent. file.edit() and connection functions such as file() now treat NA file names as errors. * The internal regularize.values() auxiliary of approx(), splinefun() etc now warns again when there are ties and the caller did not specify ties. Further, it no longer duplicates x and y unnecessarily when x is already sorted (PR#17515). * strtoi("", base) now gives NA on all platforms, following its documentation. Reported by Michael Chirico. * In the definition of an S4 class, prototype elements are checked against the slots of the class, with giving a prototype for an undefined slot now being an error. (Reported by Bill Dunlap.) * From setClassUnion(), if environment variable _R_METHODS_SHOW_CHECKSUBCLASSES is set to true, the internal .checkSubclasses() utility prints debugging info to see where it is used. * max.col(m) with an m of zero columns now returns integer NA (instead of 1). * axTicks() no longer returns small "almost zero" numbers (in exponential format) instead of zero, fixing Ilario Gelmetti's PR#17534. * isSymmetric(matrix(0, dimnames=list("A","b"))) is FALSE again, as always documented. * The cairo_pdf graphics device (and other Cairo-based devices) now clip correctly to the right and bottom border. There was an off-by-one-pixel bug, reported by Lee Kelvin. * as.roman(3) <= 2:4 and all other comparisons now work, as do group "Summary" function calls such as max(as.roman(sample(20))) and as.roman(NA). (Partly reported by Bill Dunlap in PR#17542.) * reformulate("x", response = "sin(y)") no longer produces extra back quotes, PR#17359, and gains new optional argument env. * When reading console input from stdin with re-encoding (R --encoding=enc < input) the code on a Unix-alike now ensures that each converted input line is terminated with a newline even if re-encoding fails. * as.matrix.data.frame() now produces better strings from logicals, thanks to PR#17548 from Gabe Becker. * The S4 generic signature of rowSums(), rowMeans(), colSums() and colMeans() is restricted to "x". * match(x, tab) now works for long _character_ vectors x, thanks to PR#17552 by Andreas Kersting. * Class unions are unloaded when their namespace is unloaded (PR#17531, adapted from a patch by Brodie Gaslam). * selectMethod() is robust to ANY-truncation of method signatures (thanks to Herve Pages for the report).
2019-06-09 15:39:12 +02:00
DISTNAME= R-3.6.0
CATEGORIES= math
MASTER_SITES= ${MASTER_SITE_R_CRAN:=base/R-3/}
MAINTAINER= markd@NetBSD.org
HOMEPAGE= http://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
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
R: update to 3.4.2 CHANGES IN R 3.4.2: NEW FEATURES: * Setting the LC_ALL category in Sys.setlocale() invalidates any cached locale-specific day/month names and the AM/PM indicator for strptime() (as setting LC_TIME has since R 3.1.0). * The version of LAPACK included in the sources has been updated to 3.7.1, a bug-fix release. * The default for tools::write_PACKAGES(rds_compress=) has been changed to "xz" to match the compression used by CRAN. * c() and unlist() are now more efficient in constructing the names(.) of their return value, thanks to a proposal by Suharto Anggono. (PR#17284) CHANGES IN R 3.4.0: SIGNIFICANT USER-VISIBLE CHANGES: * (Unix-alike) The default methods for download.file() and url() now choose "libcurl" except for file:// URLs. There will be small changes in the format and wording of messages, including in rare cases if an issue is a warning or an error. For example, when HTTP re-direction occurs, some messages refer to the final URL rather than the specified one. Those who use proxies should check that their settings are compatible (see ?download.file: the most commonly used forms work for both "internal" and "libcurl"). * table() has been amended to be more internally consistent and become back compatible to R <= 2.7.2 again. Consequently, table(1:2, exclude = NULL) no longer contains a zero count for <NA>, but useNA = "always" continues to do so. * summary.default() no longer rounds, but its print method does resulting in less extraneous rounding, notably of numbers in the ten thousands. * factor(x, exclude = L) behaves more rationally when x or L are character vectors. Further, exclude = <factor> now behaves as documented for long. * Arithmetic, logic (&, |) and comparison (aka 'relational', e.g., <, ==) operations with arrays now behave consistently, notably for arrays of length zero. Arithmetic between length-1 arrays and longer non-arrays had silently dropped the array attributes and recycled. This now gives a warning and will signal an error in the future, as it has always for logic and comparison operations in these cases (e.g., compare matrix(1,1) + 2:3 and matrix(1,1) < 2:3). * The JIT ('Just In Time') byte-code compiler is now enabled by default at its level 3. This means functions will be compiled on first or second use and top-level loops will be compiled and then run. (Thanks to Tomas Kalibera for extensive work to make this possible.) For now, the compiler will not compile code containing explicit calls to browser(): this is to support single stepping from the browser() call. JIT compilation can be disabled for the rest of the session using compiler::enableJIT(0) or by setting environment variable R_ENABLE_JIT to 0. * xtabs() works more consistently with NAs, also in its result no longer setting them to 0. Further, a new logical option addNA allows to count NAs where appropriate. Additionally, for the case sparse = TRUE, the result's dimnames are identical to the default case's. * Matrix products now consistently bypass BLAS when the inputs have NaN/Inf values. Performance of the check of inputs has been improved. Performance when BLAS is used is improved for matrix/vector and vector/matrix multiplication (DGEMV is now used instead of DGEMM). One can now choose from alternative matrix product implementations _via_ options(matprod = ). The "internal" implementation is not optimized for speed but consistent in precision with other summations in R (using long double accumulators where available). "blas" calls BLAS directly for best speed, but usually with undefined behavior for inputs with NaN/Inf. NEW FEATURES: * User errors such as integrate(f, 0:1, 2) are now caught. * Add signature argument to debug(), debugonce(), undebug() and isdebugged() for more conveniently debugging S3 and S4 methods. (Based on a patch by Gabe Becker.) * Add utils::debugcall() and utils::undebugcall() for debugging the function that would be called by evaluating the given expression. When the call is to an S4 generic or standard S3 generic, debugcall() debugs the method that would be dispatched. A number of internal utilities were added to support this, most notably utils::isS3stdGeneric(). (Based on a patch by Gabe Becker.) And many more - see the NEWS file for details.
2017-10-21 04:40:56 +02:00
CONFIGURE_ARGS+= --with-lapack
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
CONFIGURE_ARGS+= --without-gnome # not yet stable
CONFIGURE_ARGS+= --with-system-zlib
CONFIGURE_ARGS+= --with-system-bzlib
CONFIGURE_ARGS+= --with-system-pcre
Changes 2.10.0: * Package help is now converted from Rd by the R-based converters that were first introduced in 2.9.0. * HTML help is now generated dynamically using an HTTP server running in the R process and listening on the loopback interface. * polygon(), pdf() and postscript() now have a parameter 'fillOddEven' (default FALSE), which controls the mode used for polygon fills of self-intersecting shapes. * New debugonce() function; further, getOption("deparse.max.lines") is now observed when debugging. * plot() methods for "stepfun" and hence "ecdf" no longer plot points by default for n >= 1000. * [g]sub(*, perl=TRUE) now also supports '\E' in order to *end* \U and \L case changes, thanks to a patch from Bill Dunlap. * factor(), `levels<-`(), etc, now ensure that the resulting factor levels are unique (as was always the implied intention). Factors with duplicated levels are still constructible by low-level means, but are now declared illegal. * New print() (S3) method for class "function", also used for auto-printing. Further, .Primitive functions now print and auto-print identically. * The print() and toLatex() methods for class "sessionInfo" now show the locale in a nicer format and have arguments to suppress locale information. * In addition to previously only round(), there are other 'Math' group (S3) methods for 'difftime', such as floor(), signif(), abs(), etc. * For completeness, old.packages() and available.packages() allow 'type' to be specified (you could always specify 'available' or 'contriburl'). * More...
2009-12-11 19:53:40 +01:00
CONFIGURE_ARGS+= --with-system-xz
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
# Use BLAS
.if exists(/System/Library/Frameworks/Accelerate.framework)
CONFIGURE_ARGS+= --with-blas="-framework Accelerate"
.else
CONFIGURE_ARGS+= --without-atlas
Changes 2.10.0: * Package help is now converted from Rd by the R-based converters that were first introduced in 2.9.0. * HTML help is now generated dynamically using an HTTP server running in the R process and listening on the loopback interface. * polygon(), pdf() and postscript() now have a parameter 'fillOddEven' (default FALSE), which controls the mode used for polygon fills of self-intersecting shapes. * New debugonce() function; further, getOption("deparse.max.lines") is now observed when debugging. * plot() methods for "stepfun" and hence "ecdf" no longer plot points by default for n >= 1000. * [g]sub(*, perl=TRUE) now also supports '\E' in order to *end* \U and \L case changes, thanks to a patch from Bill Dunlap. * factor(), `levels<-`(), etc, now ensure that the resulting factor levels are unique (as was always the implied intention). Factors with duplicated levels are still constructible by low-level means, but are now declared illegal. * New print() (S3) method for class "function", also used for auto-printing. Further, .Primitive functions now print and auto-print identically. * The print() and toLatex() methods for class "sessionInfo" now show the locale in a nicer format and have arguments to suppress locale information. * In addition to previously only round(), there are other 'Math' group (S3) methods for 'difftime', such as floor(), signif(), abs(), etc. * For completeness, old.packages() and available.packages() allow 'type' to be specified (you could always specify 'available' or 'contriburl'). * More...
2009-12-11 19:53:40 +01:00
CONFIGURE_ARGS+= --disable-BLAS-shlib
CONFIGURE_ARGS+= --with-blas
CONFIGURE_ARGS+= --without-blas_risc
CONFIGURE_ARGS+= --without-dxml
CONFIGURE_ARGS+= --without-libmoto
.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-ifluatex-[0-9]*:../../print/tex-ifluatex
#BUILD_DEPENDS+= tex-ifxetex-[0-9]*:../../print/tex-ifxetex
#BUILD_DEPENDS+= tex-latex-[0-9]*:../../print/tex-latex
#BUILD_DEPENDS+= tex-latexconfig-[0-9]*:../../print/tex-latexconfig
#BUILD_DEPENDS+= tex-mptopdf-[0-9]*:../../graphics/tex-mptopdf
#BUILD_DEPENDS+= tex-pdftex-def-[0-9]*:../../print/tex-pdftex
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
# 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"
.include "../../devel/pcre/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 "../../math/blas/buildlink3.mk"
R: update to 3.4.2 CHANGES IN R 3.4.2: NEW FEATURES: * Setting the LC_ALL category in Sys.setlocale() invalidates any cached locale-specific day/month names and the AM/PM indicator for strptime() (as setting LC_TIME has since R 3.1.0). * The version of LAPACK included in the sources has been updated to 3.7.1, a bug-fix release. * The default for tools::write_PACKAGES(rds_compress=) has been changed to "xz" to match the compression used by CRAN. * c() and unlist() are now more efficient in constructing the names(.) of their return value, thanks to a proposal by Suharto Anggono. (PR#17284) CHANGES IN R 3.4.0: SIGNIFICANT USER-VISIBLE CHANGES: * (Unix-alike) The default methods for download.file() and url() now choose "libcurl" except for file:// URLs. There will be small changes in the format and wording of messages, including in rare cases if an issue is a warning or an error. For example, when HTTP re-direction occurs, some messages refer to the final URL rather than the specified one. Those who use proxies should check that their settings are compatible (see ?download.file: the most commonly used forms work for both "internal" and "libcurl"). * table() has been amended to be more internally consistent and become back compatible to R <= 2.7.2 again. Consequently, table(1:2, exclude = NULL) no longer contains a zero count for <NA>, but useNA = "always" continues to do so. * summary.default() no longer rounds, but its print method does resulting in less extraneous rounding, notably of numbers in the ten thousands. * factor(x, exclude = L) behaves more rationally when x or L are character vectors. Further, exclude = <factor> now behaves as documented for long. * Arithmetic, logic (&, |) and comparison (aka 'relational', e.g., <, ==) operations with arrays now behave consistently, notably for arrays of length zero. Arithmetic between length-1 arrays and longer non-arrays had silently dropped the array attributes and recycled. This now gives a warning and will signal an error in the future, as it has always for logic and comparison operations in these cases (e.g., compare matrix(1,1) + 2:3 and matrix(1,1) < 2:3). * The JIT ('Just In Time') byte-code compiler is now enabled by default at its level 3. This means functions will be compiled on first or second use and top-level loops will be compiled and then run. (Thanks to Tomas Kalibera for extensive work to make this possible.) For now, the compiler will not compile code containing explicit calls to browser(): this is to support single stepping from the browser() call. JIT compilation can be disabled for the rest of the session using compiler::enableJIT(0) or by setting environment variable R_ENABLE_JIT to 0. * xtabs() works more consistently with NAs, also in its result no longer setting them to 0. Further, a new logical option addNA allows to count NAs where appropriate. Additionally, for the case sparse = TRUE, the result's dimnames are identical to the default case's. * Matrix products now consistently bypass BLAS when the inputs have NaN/Inf values. Performance of the check of inputs has been improved. Performance when BLAS is used is improved for matrix/vector and vector/matrix multiplication (DGEMV is now used instead of DGEMM). One can now choose from alternative matrix product implementations _via_ options(matprod = ). The "internal" implementation is not optimized for speed but consistent in precision with other summations in R (using long double accumulators where available). "blas" calls BLAS directly for best speed, but usually with undefined behavior for inputs with NaN/Inf. NEW FEATURES: * User errors such as integrate(f, 0:1, 2) are now caught. * Add signature argument to debug(), debugonce(), undebug() and isdebugged() for more conveniently debugging S3 and S4 methods. (Based on a patch by Gabe Becker.) * Add utils::debugcall() and utils::undebugcall() for debugging the function that would be called by evaluating the given expression. When the call is to an S4 generic or standard S3 generic, debugcall() debugs the method that would be dispatched. A number of internal utilities were added to support this, most notably utils::isS3stdGeneric(). (Based on a patch by Gabe Becker.) And many more - see the NEWS file for details.
2017-10-21 04:40:56 +02:00
.include "../../math/lapack/buildlink3.mk"
.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"