| Dear Emacs, please make this -*-Text-*- mode! |
| |
| |
| This file covers NEWS for R 2.x.y. |
| See 'NEWS' (or doc/html/NEWS.html or doc/NEWS.Rd) for |
| subsequent changes and NEWS.0 and NEWS.1 for earlier ones. |
| |
| There is a change in format at 2.10.0: entries from |
| then on are generated from doc/NEWS.2.Rd. |
| |
| |
| CHANGES IN R VERSION 2.15.3: |
| |
| NEW FEATURES: |
| |
| • lgamma(x) for very small x (in the denormalized range) is no |
| longer Inf with a warning. |
| |
| • image() now sorts an unsorted breaks vector, with a warning. |
| |
| • The internal methods for tar() and untar() do a slightly more |
| general job for ‘ustar’-style handling of paths of more than 100 |
| bytes. |
| |
| • Packages compiler and parallel have been added to the reference |
| index (refman.pdf). |
| |
| • untar(tar = "internal") has some support for pax headers as |
| produced by e.g. gnutar --posix (which seems prevalent on |
| OpenSUSE 12.2) or bsdtar --format pax, including long path and |
| link names. |
| |
| • sQuote() and dQuote() now handle 0-length inputs. (Suggestion of |
| Ben Bolker.) |
| |
| • summaryRprof() returns zero-row data frames rather than throw an |
| error if no events are recorded, for consistency. |
| |
| • The included version of PCRE has been updated to 8.32. |
| |
| • The tcltk namespace can now be re-loaded after unloading. |
| |
| The Tcl/Tk event loop is inhibited in a forked child from package |
| parallel (as in e.g. mclapply()). |
| |
| • parallel::makeCluster() recognizes the value random for the |
| environment variable R_PARALLEL_PORT: this chooses a random value |
| for the port and reduces the chance of conflicts when multiple |
| users start a cluster at the same time. |
| |
| UTILITIES: |
| |
| • The default for TAR on Windows for R CMD build has been changed |
| to be internal if no tar command is on the path. |
| |
| This enables most packages to be built ‘out of the box’ without |
| Rtools: the main exceptions are those which need to be installed |
| to re-build vignettes and need Rtools for installation (usually |
| because they contain compiled code). |
| |
| C-LEVEL FACILITIES: |
| |
| • On a 64-bit Windows platform with enough RAM, R_alloc can now |
| allocate up to just under 32GB like other 64-bit platforms. |
| |
| DEPRECATED AND DEFUNCT: |
| |
| • Use of col2rgb(0) is deprecated (see the help page for its |
| limitations). |
| |
| • The deprecated intensities component returned by hist() is no |
| longer recognized by the plot() method and will be removed in R |
| 3.0.0. |
| |
| • real(), as.real() and is.real() are now formally deprecated and |
| give a warning. |
| |
| • This is formal notice that the non-API EISPACK entry points in R |
| will be removed shortly. |
| |
| INSTALLATION: |
| |
| • The configure tests for Objective C and Objective C++ now work on |
| Mac OS 10.8 with Xcode 4.5.2 (PR#15107). |
| |
| • The cairo-based versions of X11() now work with current versions |
| of cairographics (e.g. 1.12.10). (PR#15168) |
| |
| A workaround for earlier versions of R is to use X11.options(type |
| = "nbcairo"). |
| |
| • Configuration and R CMD javareconf now come up with a smaller set |
| of library paths for Java on Oracle-format JDK (including |
| OpenJDK). This helps avoid conflicts between libraries (such as |
| libjpeg) supplied in the JDK and system libraries. This can |
| always be overridden if needed: see the ‘R Installation and |
| Administration’ manual. |
| |
| BUG FIXES: |
| |
| • beta(a, b) could overflow to infinity in its calculations when |
| one of a and b was less than one. (PR#15075) |
| |
| • lbeta(a, b) no longer gives NaN if a or b is very small (in the |
| denormalized range). |
| |
| • bquote() is now able to substitute default arguments in |
| single-argument functions. (PR#15077) |
| |
| • browseEnv(html = FALSE) would segfault if called from R (not |
| R.app) on a CRAN-style Mac OS X build of R. |
| |
| • [[<- for lists (generic vectors) needed to increment NAMED count |
| when RHS is used more than once. (PR#15098) |
| |
| • On Windows, warnings about opening a file or pipe with a |
| non-ASCII description were sometimes output in UTF-8 rather than |
| in the current locale's character set. |
| |
| • The call() function did not duplicate its arguments. (PR#15115) |
| |
| • TukeyHSD() could give NA results with some na.action methods such |
| as na.exclude(). (Hinted at on R-help by John Fox.) |
| |
| • The deprecated svd(X, LINPACK = TRUE) could alter X in R |
| 2.15.[12]. (Reported by Bill Dunlap.) |
| |
| • Under Windows, file.link() and file.symlink() used the link name |
| twice, so would always fail. (Reported by Rui Barradas/Oliver |
| Soong). |
| |
| • summaryRprof(memory = "both") mixed up the units of Vcells and |
| Ncells: it now works in bytes. (PR#15138) |
| |
| • tools::Rd2HTML() would sometimes delete text. (PR#15134) |
| |
| • plot() failed for "table" objects containing just one entry. |
| (PR#15118) |
| |
| • embedFonts() needed to quote some filepaths. (PR#15149) |
| |
| • parallel::mccollect() handled NULL returns incorrectly (removing |
| the element rather than setting it to NULL). |
| |
| • The full reference index (fullrefman.pdf) was missing packages |
| compiler and parallel. |
| |
| • The report for optim(method = "L-BFGS-B", control = list(trace = |
| 1)) reported the last completed and not the current iteration, |
| unlike other methods and trace levels. (PR#15103) |
| |
| • qt(1e-12, 1.2) no longer gives NaN. |
| |
| • dt(1e160, 1.2, log=TRUE) no longer gives -Inf. |
| |
| • On Windows the untar() function now quotes the directory name |
| when using an external tar utility, so R CMD check will handle |
| pathnames containing spaces. |
| |
| • The version for Windows 8 and Windows Server 2012 is now |
| displayed by win.version(). (Reported by Gabor Grothendieck.) |
| |
| • The custom Windows installer target myR in the installer Makefile |
| did not work in 2.15.2. (Reported by Erich Neuwirth.) |
| |
| • aperm(matrix(1:6, 2, dimnames=list(A={}, B={})), "A") no longer |
| segfaults. |
| |
| • Expressions involving user defined operators were not always |
| deparsed faithfully. (PR#15179) |
| |
| • The enc2utf8() function converted NA_character_ to "NA" in |
| non-UTF-8 locales. (PR#15201) |
| |
| • The exclude argument to xtabs() was ignored for "factor" |
| arguments. |
| |
| • On Windows, work around an event-timing problem when the RGui |
| console was closed from the ‘X’ control and the closure |
| cancelled. (This would on some 64-bit systems crash R, typically |
| those with a slow GPU relative to the CPU.) |
| |
| • On unix Rscript will pass the r_arch setting it was compiled with |
| on to the R process so that the architecture of Rscript and that |
| of R will match unless overridden. |
| |
| • On Windows, basename(), dirname() and file.choose() have more |
| support for long non-ASCII file names with 260 or more bytes when |
| expressed in UTF-8. |
| |
| CHANGES IN R VERSION 2.15.2: |
| |
| NEW FEATURES: |
| |
| • The X11() window gains an icon: the latter may be especially |
| useful on Ubuntu's ‘Unity’ interface. |
| |
| The WM_CLASS should be set in circumstances where the Window |
| Manager failed to make use of X11 resource settings. |
| |
| (Contributed by Philip Johnson.) |
| |
| • The "Date" and "POSIXt" methods for cut() will accept an unsorted |
| breaks argument (as the default method does, although this was |
| undocumented). (Wish of PR#14961.) |
| |
| • Reference class methods (in the methods package) that use other |
| methods in an indirect way (e.g., by sapply()) must tell the code |
| analysis to include that method. They can now do so by invoking |
| $usingMethods(). |
| |
| • More Polish translations are available: for the RGui menus and |
| for several recommended packages. |
| |
| • Multistratum MANOVA works. In fact, it seems to have done so for |
| years in spite of the help page claiming it did not. |
| |
| • qqline() has new optional arguments distribution, probs and |
| qtype, following the example of lattice's panel.qqmathline(). |
| |
| • The handling of single quotes in the en@quot pseudo-language has |
| been slightly improved. Double quotes are no longer converted. |
| |
| • New functions checkPoFiles() and checkPoFile() have been added to |
| the tools package to check for consistency of format strings in |
| translation files. |
| |
| • model.matrix(~1, ...) now also contains the same rownames that |
| less trivial formulae produce. (Wish of PR#14992, changes the |
| output of several packages.) |
| |
| • Misuse of rep() on undocumented types of objects (e.g. calls) is |
| now reported as an error. |
| |
| • The included LAPACK has been updated to 3.4.1, with some patches |
| from the current SVN sources. (_Inter alia_, this resolves |
| PR#14692.) |
| |
| • file.copy(recursive = TRUE) has some additional checks on user |
| error leading to attempted infinite recursion (and on some |
| platforms to crashing R). |
| |
| • PCRE has been updated to version 8.31, a bug-fix release. |
| |
| • The included version of liblzma has been updated to version |
| 5.0.4, a minor bug-fix release. |
| |
| • New function .bincode(), a ‘bare-bones’ version of |
| cut.default(labels = FALSE) for use in packages with image() |
| methods. |
| |
| • The HTML manuals now use directional single quotes. |
| |
| • maintainer() now converts embedded new lines to spaces. It no |
| longer gives a non-obvious error for non-installed packages. |
| |
| • The X11() device has some protection against being used with |
| forked processes _via_ package parallel. |
| |
| • Setting the environment variable R_OSX_VALGRIND (to any value) |
| allows R to be run under valgrind on Mac OS 10.6 and 10.7 |
| (valgrind currently has very limited support for 10.8), provided |
| system() is not used (directly or indirectly). This should not |
| be needed for valgrind >= 3.8.1. |
| |
| • The model.frame() method for "lm" uses xlevels: this is safer if |
| data was supplied or model = FALSE was used and the levels of |
| factors used in the fit had been re-ordered since fitting. |
| |
| Similarly, model.frame(fm, data=<data>) copies across the |
| variables used for safe prediction from the fit. |
| |
| • Functions such as parLapply() in package parallel can make use of |
| a default cluster if one is set. (Reported by Martin Morgan.) |
| |
| • chol(pivot = TRUE, LINPACK = FALSE) is now available using LAPACK |
| 3.2 subroutine DPSTRF. |
| |
| • The functions .C(), .Call(), .External() and .Fortran() now check |
| that they are called with an unnamed first argument: the formal |
| arguments were changed from name= to .NAME= in R 2.13.0, but some |
| packages were still using the old name. This is currently a |
| warning, but will be an error in future. |
| |
| • step() no longer tries to improve a model with AIC of -Inf (a |
| perfect fit). |
| |
| • spline() and splinefun() gain a new method "hyman", an |
| implementation of Hyman's method of constructing monotonic |
| interpolation splines. (Based on contributions of Simon Wood and |
| Rob Hyndman.) |
| |
| • On Windows, the C stack size has been increased to 64MB (it has |
| been 10MB since the days of 32MB RAM systems). |
| |
| PERFORMANCE IMPROVEMENTS: |
| |
| • array() is now implemented in C code (for speed) when data is |
| atomic or an unclassed list (so it is known that as.vector(data) |
| will have no class to be used by rep()). |
| |
| • rep() is faster and uses less memory, substantially so in some |
| common cases (e.g. if times is of length one or length.out is |
| given, and each = 1). |
| |
| • findInterval(), tabulate(), cut(), hist() and image.default() all |
| use .Call() and are more efficient. |
| |
| • duplicated(), unique() and similar now support vectors of lengths |
| above 2^29 on 64-bit platforms. |
| |
| • Omitting PACKAGE in .C() etc calls was supposed to make use of |
| the DLL from the namespace within which the enclosing function |
| was defined. It was less successful in doing so than it might |
| be, and gave no indication it had failed. |
| |
| A new search strategy is very successful and gives a warning when |
| it fails. In most cases this is because the entry point is not |
| actually provided by that package (and so PACKAGE should be used |
| to indicate which package is intended) but in some the namespace |
| does not have a DLL specified by a useDynLib() directive so |
| PACKAGE is required. |
| |
| UTILITIES: |
| |
| • R CMD check now checks if a package can be loaded by |
| library(pkgname, lib.loc = "somewhere") without being on the |
| library search path (unless it is already installed in .Library, |
| when it always will be). |
| |
| • R CMD check --as-cran notes ‘hidden’ files and directories (with |
| names starting with a dot) that are not needed for the operation |
| of R CMD INSTALL or R CMD build: such files should be excluded |
| from the published tarball. |
| |
| • R CMD check (if checking subdirectories) checks that the R code |
| in any demos is ASCII and can be parsed, and warns if not. |
| |
| • When R CMD Rd2pdf is used with inputenx.sty, it allows further |
| characters (mainly for Eastern European languages) by including |
| ix-utf8enc.dfu (if available). (Wish of PR#14989.) |
| |
| • R CMD build now omits several types of hidden files/directories, |
| including inst/doc/.Rinstignore, vignettes/.Rinstignore, |
| (.Rinstignore should be at top level), .deps under src, |
| .Renviron, .Rprofile, .Rproj.user, .backups, .cvsignore, |
| .cproject, .directory, .dropbox, .exrc, .gdb.history, |
| .gitattributes, .gitignore, .gitmodules, .hgignore, .hgtags, |
| .htaccess, .latex2html-init, .project, .seed, .settings, |
| .tm_properties and various leftovers. |
| |
| • R CMD check now checks for .C(), .Call(), .External() and |
| .Fortran() calls in other packages, and gives a warning on those |
| found from R itself (which are not part of the API and change |
| without notice: many will be changed for R 3.0.0). |
| |
| C-LEVEL FACILITIES: |
| |
| • The limit for R_alloc on 64-bit platforms has been raised to just |
| under 32GB (from just under 16GB). |
| |
| • The misuse of .C("name", ..., PACKAGE = foo) where foo is an |
| arbitrary R object is now an error. |
| |
| The misuse .C("name",..., PACKAGE = "") is now warned about in R |
| CMD check, and will be an error in future. |
| |
| DEPRECATED AND DEFUNCT: |
| |
| • Use of array() with a 0-length dim argument is deprecated with a |
| warning (and was contrary to the documentation). |
| |
| • Use of tapply() with a 0-length INDEX list is deprecated with a |
| warning. |
| |
| • Translation packages are deprecated. |
| |
| • Calling rep() or rep.int() on a pairlist is deprecated and will |
| give a warning. In any case, rep() converted a pairlist to a |
| list so you may as well do that explicitly. |
| |
| • Entry point rcont2 is no longer part of the API, and will move to |
| package stats in R 3.0.0. |
| |
| • The ‘internal’ graphics device invoked by |
| .Call("R_GD_nullDevice", package = "grDevices") is about to be |
| removed: use pdf(file = NULL) instead. |
| |
| • eigen(EISPACK = TRUE), chol(pivot = FALSE, LINPACK = TRUE), |
| chol2inv(LINPACK = TRUE), solve(LINPACK = TRUE) and svd(LINPACK = |
| TRUE) are deprecated and give a warning. |
| |
| They were provided for compatibility with R 1.7.0 (Mar 2003)! |
| |
| • The ‘internal function’ kappa.tri() has been renamed to |
| .kappa_tri() so it is not inadvertently called as a method for |
| class "tri". |
| |
| • Functions sessionData() and browseAll() in package methods are on |
| a help page describing them as ‘deprecated’ and are now formally |
| deprecated. |
| |
| PACKAGE INSTALLATION: |
| |
| • For a Windows or Mac OS X binary package install, |
| install.packages() will check if a source package is available on |
| the same repositories, and report if it is a later version or |
| there is a source package but no binary package available. |
| |
| This check can be suppressed: see the help page. |
| |
| • install.packages(type = "both") has been enhanced. In |
| interactive use it will ask whether to choose the source version |
| of a package if the binary version is older and contains compiled |
| code, and also asks if source packages with no binary version |
| should be installed). |
| |
| INSTALLATION: |
| |
| • There is a new configure option --with-libtiff (mainly in case |
| the system installation needs to be avoided). |
| |
| • LAPACK 3.4.1 does use some Fortran 90 features, so g77 no longer |
| suffices. |
| |
| • If an external LAPACK is used, it must be version 3.2 or later. |
| |
| BUG FIXES: |
| |
| • On Windows, starting Rterm via R.exe caused Ctrl-C to misbehave. |
| (PR#14948) |
| |
| • The tools::latexToUtf8() function missed conversions that were |
| contained within braces. |
| |
| • Long timezone specifications (such as a file name preceded by :) |
| could crash as.POSIXlt. (PR#14945) |
| |
| • R CMD build --resave-data could fail if there was no data |
| directory but there was an R/sysdata.rda file. (PR#14947) |
| |
| • is.na() misbehaved on a 0-column data frame. (PR#14959) |
| |
| • anova.lmlist() failed if test was supplied. (PR#14960) |
| |
| It was unable to compute Cp tests for object of class "lm" (it |
| assumed class "glm"). |
| |
| • The formula method for sunflowerplot() now allows xlab and ylab |
| to be set. (Reported by Gerrit Eichner.) |
| |
| • The "POSIXt" and "Date" methods for hist() could fail on Windows |
| where adjustments to the right-hand boundary crossed a DST |
| transition time. |
| |
| • On Windows, the code in as.POSIXct() to handle incorrectly |
| specified isdst fields might have resulted in NA being returned. |
| |
| • aov() and manova() gave spurious warning about singular error |
| model in the multiresponse case. |
| |
| • In ns() and bs(), specifying knots = NULL is now equivalent to |
| omitting it, also when df is specified. (PR#14970) |
| |
| • sprintf() did not accept numbered arguments ending in zero. |
| (PR#14975) |
| |
| • rWishart() could overflow the C stack and maybe crash the R |
| process for dimensions of several hundreds or more. (Reported by |
| Michael Braun on R-sig-mac.) |
| |
| • Base package vignettes (e.g. vignette("Sweave")) were not fully |
| installed in builds of R from the tarball. |
| |
| • lchoose() and choose() could overflow the C stack and crash R. |
| |
| • When given a 0-byte file and asked to keep source references, |
| parse() read input from stdin() instead. |
| |
| • pdf(compress = TRUE) did not delete temporary files it created |
| until the end of the R session. (PR#14991) |
| |
| • logLik() did not detect the error of applying it to a |
| multiple-response linear model. (PR#15000) |
| |
| • file.copy(recursive = TRUE) did not always report FALSE for a |
| failure two or more directories deep. |
| |
| • qgeom() could return -1 for extremely small q. (PR#14967) |
| |
| • smooth.spline() used DUP = FALSE which allowed its compiled C |
| code to change the function: this was masked by the default |
| byte-compilation. (PR#14965) |
| |
| • In Windows, the GUI preferences for foreground color were not |
| always respected. (Reported by Benjamin Wells.) |
| |
| • On OS X, the Quartz versions of the bitmap devices did not |
| respect antialias = "none". (PR#15006) |
| |
| • unique() and similar would infinite-loop if called on a vector of |
| length > 2^29 (but reported that the vector was too long for 2^30 |
| or more). |
| |
| • parallel::stopCluster() now works with MPI clusters without snow |
| being on the search path. |
| |
| • terms.formula() could exhaust the stack, and the stack check did |
| not always catch this before the segfault. (PR#15013) |
| |
| • sort.list(method = "radix") could give incorrect results on |
| certain compilers (seen with clang on Mac OS 10.7 and Xcode |
| 4.4.1). |
| |
| • backsolve(T, b) gave incorrect results when nrows(b) > ncols(T) |
| and b had more than one column. |
| |
| It could segfault or give nonsense if k was specified as more |
| than ncols(T). |
| |
| • smooth.spline() did not check that a specified numeric spar was |
| of length 1, and gave corrupt results if it was of length 0. |
| |
| • Protection added to do_system. (PR#15025) |
| |
| • Printing of vectors with names > 1000 characters now works |
| correctly rather than truncating. (PR#15028) |
| |
| • qr() for a complex matrix did not pivot the column names. |
| |
| • --with-blas='-framework vecLib' now also works on OS X 10.8. |
| |
| • R CMD check no longer fails with an error if a DESCRIPTION file |
| incorrectly contains a blank line. (Reported by Bill Dunlap.) |
| |
| • install.packages(type = "both") could call chooseCRANmirror() |
| twice. |
| |
| • lm.wfit() could segfault in R 2.15.1 if all the weights were |
| zero. (PR#15044) |
| |
| • A malformed package name could cause R CMD INSTALL to write |
| outside the target library. |
| |
| • Some of the quality control functions (e.g. tools::checkFF()) |
| were wrongly identifying the source of S4 methods in a package |
| and so not checking them. |
| |
| • The default type of display by browseEnv() when using R.app on |
| Mac OS X has been incorrect for a long time. |
| |
| • The implementation of importMethodsFrom in a NAMESPACE file could |
| be confused and fail to find generics when importing from |
| multiple packages (reported and fixed by Michael Lawrence). |
| |
| • The detection of the C stack direction is better protected |
| against compiler optimization. (PR#15011) |
| |
| • Long custom line types would sometimes segfault on the |
| cairographics-based devices. (PR#15055) |
| |
| • tools::checkPoFile() unprotected too early in its C code and so |
| segfaulted from time to time. |
| |
| • The Fortran code underlying nlminb() could infinite-loop if any |
| of the input functions returned NA or NaN. This is now an error |
| for the gradient or Hessian, and a warning for the function (with |
| the value replaced by Inf). (In part, PR#15052.) |
| |
| • The code for creating coerce() methods could generate false notes |
| about ambiguous selection; the notes have been suppressed for |
| this function. |
| |
| • arima.sim() could give too long an output in some corner cases |
| (in part, PR#15068). |
| |
| • anova.glm() with test = "Rao" didn't work when models included an |
| offset. (Reported by Søren Feodor Nielsen.) |
| |
| • as.data.frame.matrix() could return invalid data frame with no |
| row.names attribute for 0-row matrix. (Reported by Hervé Pagès.) |
| |
| • Compilation with the vecLib or Accelerate frameworks on OS X |
| without using that also for LAPACK is more likely to be |
| successful. |
| |
| CHANGES IN R VERSION 2.15.1: |
| |
| NEW FEATURES: |
| |
| • source() now uses withVisible() rather than |
| .Internal(eval.with.vis). This sometimes alters tracebacks |
| slightly. |
| |
| • install.packages("pkg_version.tgz") on Mac OS X now has sanity |
| checks that this is actually a binary package (as people have |
| tried it with incorrectly named source packages). |
| |
| • splineDesign() and spline.des() in package splines have a new |
| option sparse which can be used for efficient construction of a |
| sparse B-spline design matrix (_via_ Matrix). |
| |
| • norm() now allows type = "2" (the ‘spectral’ or 2-norm) as well, |
| mainly for didactical completeness. |
| |
| • pmin() and pmax()) now also work when one of the inputs is of |
| length zero and others are not, returning a zero-length vector, |
| analogously to, say, +. |
| |
| • colorRamp() (and hence colorRampPalette()) now also works for the |
| boundary case of just one color when the ramp is flat. |
| |
| • .C() gains some protection against the misuse of character vector |
| arguments. (An all too common error is to pass character(N), |
| which initializes the elements to "", and then attempt to edit |
| the strings in-place, sometimes forgetting to terminate them.) |
| |
| • Calls to the new function globalVariables() in package utils |
| declare that functions and other objects in a package should be |
| treated as globally defined, so that CMD check will not note |
| them. |
| |
| • print(packageDescription(*)) trims the Collate field by default. |
| |
| • The included copy of zlib has been updated to version 1.2.7. |
| |
| • A new option "show.error.locations" has been added. When set to |
| TRUE, error messages will contain the location of the most recent |
| call containing source reference information. (Other values are |
| supported as well; see ?options.) |
| |
| • The NA warning messages from e.g. pchisq() now report the call to |
| the closure and not that of the .Internal. |
| |
| • Added Polish translations by Łukasz Daniel. |
| |
| PERFORMANCE IMPROVEMENTS: |
| |
| • In package parallel, makeForkCluster() and the multicore-based |
| functions use native byte-order for serialization (deferred from |
| 2.15.0). |
| |
| • lm.fit(), lm.wfit(), glm.fit() and lsfit() do less copying of |
| objects, mainly by using .Call() rather than .Fortran(). |
| |
| • .C() and .Fortran() do less copying: arguments which are raw, |
| logical, integer, real or complex vectors and are unnamed are not |
| copied before the call, and (named or not) are not copied after |
| the call. Lists are no longer copied (they are supposed to be |
| used read-only in the C code). |
| |
| • tabulate() makes use of .C(DUP = FALSE) and hence does not copy |
| bin. (Suggested by Tim Hesterberg.) It also avoids making a |
| copy of a factor argument bin. |
| |
| • Other functions (often or always) doing less copying include |
| cut(), dist(), the complex case of eigen(), hclust(), image(), |
| kmeans(), loess(), stl() and svd(LINPACK = TRUE). |
| |
| • There is less copying when using primitive replacement functions |
| such as names(), attr() and attributes(). |
| |
| DEPRECATED AND DEFUNCT: |
| |
| • The converters for use with .C() (see ?getCConverterDescriptions) |
| are deprecated: use the .Call() interface instead. There are no |
| known examples (they were never fully documented). |
| |
| UTILITIES: |
| |
| • For R CMD check, a few people have reported problems with |
| junctions on Windows (although they were tested on Windows 7, XP |
| and Server 2008 machines and it is unknown under what |
| circumstances the problems occur). Setting the environment |
| variable R_WIN_NO_JUNCTIONS to a non-empty value (e.g. in |
| ~/.R/check.Renviron) will force copies to be used instead. |
| |
| INSTALLATION: |
| |
| • R CMD INSTALL with _R_CHECK_INSTALL_DEPENDS_ set to a true value |
| (as done by R CMD check --as-cran) now restricts the packages |
| available when lazy-loading as well as when test-loading (since |
| packages such as ETLUtils and agsemisc had top-level calls to |
| library() for undeclared packages). |
| |
| This check is now also available on Windows. |
| |
| C-LEVEL FACILITIES: |
| |
| • C entry points mkChar and mkCharCE now check that the length of |
| the string they are passed does not exceed 2^31-1 bytes: they |
| used to overflow with unpredictable consequences. |
| |
| • C entry points R_GetCurrentSrcref and R_GetSrcFilename have been |
| added to the API to allow debuggers access to the source |
| references on the stack. |
| |
| WINDOWS-SPECIFIC CHANGES: |
| |
| • Windows-specific changes will now be announced in this file |
| (NEWS). Changes up and including R 2.15.0 remain in the CHANGES |
| file. |
| |
| • There are two new environment variables which control the |
| defaults for command-line options. |
| |
| If R_WIN_INTERNET2 is set to a non-empty value, it is as if |
| --internet2 was used. |
| |
| If R_MAX_MEM_SIZE is set, it gives the default memory limit if |
| --max-mem-size is not specified: invalid values being ignored. |
| |
| BUG FIXES: |
| |
| • lsfit() lost the names from the residuals. |
| |
| • More cases in which merge() could create a data frame with |
| duplicate column names now give warnings. Cases where names |
| specified in by match multiple columns are errors. |
| |
| • Nonsense uses such as seq(1:50, by = 5) (from package plotrix) |
| and seq.int(1:50, by = 5) are now errors. |
| |
| • The residuals in the 5-number summary printed by summary() on an |
| "lm" object are now explicitly labelled as weighted residuals |
| when non-constant weights are present. (Wish of PR#14840.) |
| |
| • tracemem() reported that all objects were copied by .C() or |
| .Fortran() whereas only some object types were ever copied. |
| |
| It also reported and marked as copies _some_ transformations such |
| as rexp(n, x): it no longer does so. |
| |
| • The plot() method for class "stepfun" only used the optional xval |
| argument to compute xlim and not the points at which to plot (as |
| documented). (PR#14864) |
| |
| • Names containing characters which need to be escaped were not |
| deparsed properly. (PR#14846) |
| |
| • Trying to update (recommended) packages in R_HOME/library without |
| write access is now dealt with more gracefully. Further, such |
| package updates may be skipped (with a warning), when a newer |
| installed version is already going to be used from .libPaths(). |
| (PR#14866) |
| |
| • hclust() is now fast again (as up to end of 2003), with a |
| different fix for the "median"/"centroid" problem. (PR#4195). |
| |
| • get_all_vars() failed when the data came entirely from vectors in |
| the global environment. (PR#14847) |
| |
| • R CMD check with _R_CHECK_NO_RECOMMENDED_ set to a true value (as |
| done by the --as-cran option) could issue false errors if there |
| was an indirect dependency on a recommended package. |
| |
| • formatC() uses the C entry point str_signif which could write |
| beyond the length allocated for the output string. |
| |
| • Missing default argument added to implicit S4 generic for |
| backsolve(). (PR#14883) |
| |
| • Some bugs have been fixed in handling load actions that could |
| fail to export assigned items or generate spurious warnings in |
| CMD check on loading. |
| |
| • For tiff(type = "windows"), the numbering of per-page files |
| except the last was off by one. |
| |
| • On Windows, loading package stats (which is done for a default |
| session) would switch line endings on stdout and stderr from CRLF |
| to LF. This affected Rterm and R CMD BATCH. |
| |
| • On Windows, the compatibility function x11() had not kept up with |
| changes to windows(), and issued warnings about bad parameters. |
| (PR#14880) |
| |
| • On Windows, the Sys.glob() function did not handle UNC paths as |
| it was designed to try to do. (PR#14884) |
| |
| • In package parallel, clusterApply() and similar failed to handle |
| a (pretty pointless) length-1 argument. (PR#14898) |
| |
| • Quartz Cocoa display reacted asynchronously to dev.flush() which |
| means that the redraw could be performed after the plot has been |
| already modified by subsequent code. The redraw is now done |
| synchronously in dev.flush() to allow animations without sleep |
| cycles. |
| |
| • Source locations reported in traceback() were incorrect when |
| byte-compiled code was on the stack. |
| |
| • plogis(x, lower = FALSE, log.p = TRUE) no longer underflows early |
| for large x (e.g. 800). |
| |
| • ?Arithmetic's “1 ^ y and y ^ 0 are 1, _always_” now also applies |
| for integer vectors y. |
| |
| • X11-based pixmap devices like png(type = "Xlib") were trying to |
| set the cursor style, which triggered some warnings and hangs. |
| |
| • Code executed by the built-in HTTP server no longer allows other |
| HTTP clients to re-enter R until the current worker evaluation |
| finishes, to prevent cascades. |
| |
| • The plot() and Axis() methods for class "table" now respect |
| graphical parameters such as cex.axis. (Reported by Martin |
| Becker.) |
| |
| • Under some circumstances package.skeleton() would give out |
| progress reports that could not be translated and so were |
| displayed by question marks. Now they are always in English. |
| (This was seen for CJK locales on Windows, but may have occurred |
| elsewhere.) |
| |
| • The evaluator now keeps track of source references outside of |
| functions, e.g. when source() executes a script. |
| |
| • The replacement method for window() now works correctly for |
| multiple time series of class "mts". (PR#14925) |
| |
| • is.unsorted() gave incorrect results on non-atomic objects such |
| as data frames. (Reported by Matthew Dowle.) |
| |
| • The value returned by tools::psnice() for invalid pid values was |
| not always NA as documented. |
| |
| • Closing an X11() window while locator() was active could abort |
| the R process. |
| |
| • getMethod(f, sig) produced an incorrect error message in some |
| cases when f was not a string). |
| |
| • Using a string as a “call” in an error condition with |
| options(showErrorCalls=TRUE) could cause a segfault. (PR#14931) |
| |
| • The string "infinity" allowed by C99 was not accepted as a |
| numerical string value by e.g. scan() and as.numeric(). |
| (PR#14933) |
| |
| • In legend(), setting some entries of lwd to NA was inconsistent |
| (depending on the graphics device) in whether it would suppress |
| those lines; now it consistently does so. (PR#14926) |
| |
| • by() failed for a zero-row data frame. (Reported by Weiqiang |
| Qian.) |
| |
| • The Yates' correction in chisq.test() could be bigger than the |
| terms it corrected, previously leading to an infinite test |
| statistic in some corner cases which are now reported as NaN. |
| |
| • xgettext() and related functions sometimes returned items that |
| were not strings for translation. (PR#14935) |
| |
| • plot(<lm>, which=5) now correctly labels the factor level |
| combinations for the special case where all h[i,i] are the same. |
| (PR#14837) |
| |
| • Sys.glob() caused a segfault if the first element of path was |
| NA_character. (PR#14990) |
| |
| CHANGES IN R VERSION 2.15.0: |
| |
| SIGNIFICANT USER-VISIBLE CHANGES: |
| |
| • The behaviour of unlink(recursive = TRUE) for a symbolic link to |
| a directory has changed: it now removes the link rather than the |
| directory contents (just as rm -r does). |
| |
| On Windows it no longer follows reparse points (including |
| junctions and symbolic links). |
| |
| NEW FEATURES: |
| |
| • Environment variable RD2DVI_INPUTENC has been renamed to |
| RD2PDF_INPUTENC. |
| |
| • .Deprecated() becomes a bit more flexible, getting an old |
| argument. |
| |
| • Even data-only packages without R code need a namespace and so |
| may need to be installed under R 2.14.0 or later. |
| |
| • assignInNamespace() has further restrictions on use apart from at |
| top-level, as its help page has warned. Expect it to be disabled |
| from programmatic use in the future. |
| |
| • system() and system2() when capturing output report a non-zero |
| status in the new "status" attribute. |
| |
| • kronecker() now has an S4 generic in package methods on which |
| packages can set methods. It will be invoked by X %x% Y if |
| either X or Y is an S4 object. |
| |
| • pdf() accepts forms like file = "|lpr" in the same way as |
| postscript(). |
| |
| • pdf() accepts file = NULL. This means that the device does NOT |
| create a PDF file (but it can still be queried, e.g., for font |
| metric info). |
| |
| • format() (and hence print()) on "bibentry" objects now uses |
| options("width") to set the output width. |
| |
| • legend() gains a text.font argument. (Suggested by Tim Paine, |
| PR#14719.) |
| |
| • nchar() and nzchar() no longer accept factors (as integer |
| vectors). (Wish of PR#6899.) |
| |
| • summary() behaves slightly differently (or more precisely, its |
| print() method does). For numeric inputs, the number of NAs is |
| printed as an integer and not a real. For dates and datetimes, |
| the number of NAs is included in the printed output (the latter |
| being the wish of PR#14720). |
| |
| The "data.frame" method is more consistent with the default |
| method: in particular it now applies zapsmall() to |
| numeric/complex summaries. |
| |
| • The number of items retained with options(warn = 0) can be set by |
| options(nwarnings=). |
| |
| • There is a new function assignInMyNamespace() which uses the |
| namespace of the function it is called from. |
| |
| • attach() allows the default name for an attached file to be |
| overridden. |
| |
| • bxp(), the work horse of boxplot(), now uses a more sensible |
| default xlim in the case where at is specified differently from |
| 1:n, see the discussion on R-devel, <URL: |
| https://stat.ethz.ch/pipermail/r-devel/2011-November/062586.html>. |
| |
| • New function paste0(), an efficient version of paste(*, sep=""), |
| to be used in many places for more concise (and slightly more |
| efficient) code. |
| |
| • Function setClass() in package methods now returns, invisibly, a |
| generator function for the new class, slightly preferred to |
| calling new(), as explained on the setClass help page. |
| |
| • The "dendrogram" method of str() now takes its default for |
| last.str from option str.dendrogram.last. |
| |
| • New simple fitted() method for "kmeans" objects. |
| |
| • The traceback() function can now be called with an integer |
| argument, to display a current stack trace. (Wish of PR#14770.) |
| |
| • setGeneric() calls can be simplified when creating a new generic |
| function by supplying the default method as the def argument. |
| See ?setGeneric. |
| |
| • serialize() has a new option xdr = FALSE which will use the |
| native byte-order for binary serializations. In scenarios where |
| only little-endian machines are involved (these days, close to |
| universal) and (un)serialization takes an appreciable amount of |
| time this may speed up noticeably transferring data between |
| systems. |
| |
| • The internal (un)serialization code is faster for long vectors, |
| particularly with XDR on some platforms. (Based on a suggested |
| patch by Michael Spiegel.) |
| |
| • For consistency, circles with zero radius are omitted by points() |
| and grid.circle(). Previously this was device-dependent, but |
| they were usually invisible. |
| |
| • NROW(x) and NCOL(x) now work whenever dim(x) looks appropriate, |
| e.g., also for more generalized matrices. |
| |
| • PCRE has been updated to version 8.30. |
| |
| • The internal R_Srcref variable is now updated before the browser |
| stops on entering a function. (Suggestion of PR#14818.) |
| |
| • There are ‘bare-bones’ functions .colSums(), .rowSums(), |
| .colMeans() and .rowMeans() for use in programming where ultimate |
| speed is required. |
| |
| • The formerly internal function .package_dependencies() from |
| package tools for calculating (recursive) (reverse) dependencies |
| on package databases has been renamed to package_dependencies() |
| and is now exported. |
| |
| • There is a new function optimHess() to compute the (approximate) |
| Hessian for an optim() solution if hessian = TRUE was forgotten. |
| |
| • .filled.contour() is a ‘bare-bones’ function to add a |
| filled-contour rectangular plot to an already prepared plot |
| region. |
| |
| • The stepping in debugging and single-step browsing modes has |
| changed slightly: now left braces at the start of the body are |
| stepped over for if statements as well as for for and while |
| statements. (Wish of PR#14814.) |
| |
| • library() no longer warns about a conflict with a function from |
| package:base if the function has the same code as the base one |
| but with a different environment. (An example is Matrix::det().) |
| |
| • When deparsing very large language objects, as.character() now |
| inserts newlines after each line of approximately 500 bytes, |
| rather than truncating to the first line. |
| |
| • New function rWishart() generates Wishart-distributed random |
| matrices. |
| |
| • Packages may now specify actions to be taken when the package is |
| loaded (setLoadActions()). |
| |
| • options(max.print = Inf) and similar now give an error (instead |
| of warnings later). |
| |
| • The "difftime" replacement method of units tries harder to |
| preserve other attributes of the argument. (Wish of PR#14839.) |
| |
| • poly(raw = TRUE) no longer requires more unique points than the |
| degree. (Requested by John Fox.) |
| |
| PACKAGE parallel: |
| |
| • There is a new function mcmapply(), a parallel version of |
| mapply(), and a wrapper mcMap(), a parallel version of Map(). |
| |
| • A default cluster can be registered by the new function |
| setDefaultCluster(): this will be used by default in functions |
| such as parLapply(). |
| |
| • clusterMap() has a new argument .scheduling to allow the use of |
| load-balancing. |
| |
| • There are new load-balancing functions parLapplyLB() and |
| parSapplyLB(). |
| |
| • makePSOCKCluster() has a new option useXDR = FALSE which can be |
| used to avoid byte-shuffling for serialization when all the nodes |
| are known to be little-endian (or all big-endian). |
| |
| PACKAGE INSTALLATION: |
| |
| • Non-ASCII vignettes without a declared encoding are no longer |
| accepted. |
| |
| • C/C++ code in packages is now compiled with -NDEBUG to mitigate |
| against the C/C++ function assert being called in production use. |
| Developers can turn this off during package development with |
| PKG_CPPFLAGS = -UNDEBUG. |
| |
| • R CMD INSTALL has a new option --dsym which on Mac OS X (Darwin) |
| dumps the symbols alongside the .so file: this is helpful when |
| debugging with valgrind (and especially when installing packages |
| into R.framework). [This can also be enabled by setting the |
| undocumented environment variable PKG_MAKE_DSYM, since R 2.12.0.] |
| |
| • R CMD INSTALL will test loading under all installed |
| sub-architectures even for packages without compiled code, unless |
| the flag --no-multiarch is used. (Pure R packages can do things |
| which are architecture-dependent: in the case which prompted |
| this, looking for an icon in a Windows R executable.) |
| |
| • There is a new option install.packages(type = "both") which tries |
| source packages if binary packages are not available, on those |
| platforms where the latter is the default. |
| |
| • The meaning of install.packages(dependencies = TRUE) has changed: |
| it now means to install the essential dependencies of the named |
| packages plus the Suggests, but only the essential dependencies |
| of dependencies. To get the previous behaviour, specify |
| dependencies as a character vector. |
| |
| • R CMD INSTALL --merge-multiarch is now supported on OS X and |
| other Unix-alikes using multiple sub-architectures. |
| |
| • R CMD INSTALL --libs-only now by default does a test load on |
| Unix-alikes as well as on Windows: suppress with --no-test-load. |
| |
| UTILITIES: |
| |
| • R CMD check now gives a warning rather than a note if it finds |
| inefficiently compressed datasets. With bzip2 and xz compression |
| having been available since R 2.10.0, it only exceptionally makes |
| sense to not use them. |
| |
| The environment variable _R_CHECK_COMPACT_DATA2_ is no longer |
| consulted: the check is always done if _R_CHECK_COMPACT_DATA_ has |
| a true value (its default). |
| |
| • Where multiple sub-architectures are to be tested, R CMD check |
| now runs the examples and tests for all the sub-architectures |
| even if one fails. |
| |
| • R CMD check can optionally report timings on various parts of the |
| check: this is controlled by environment variable |
| _R_CHECK_TIMINGS_ documented in ‘Writing R Extensions’. Timings |
| (in the style of R CMD BATCH) are given at the foot of the output |
| files from running each test and the R code in each vignette. |
| |
| • There are new options for more rigorous testing by R CMD check |
| selected by environment variables - see the ‘Writing R |
| Extensions’ manual. |
| |
| • R CMD check now warns (rather than notes) on undeclared use of |
| other packages in examples and tests: increasingly people are |
| using the metadata in the DESCRIPTION file to compute information |
| about packages, for example reverse dependencies. |
| |
| • The defaults for some of the options in R CMD check (described in |
| the ‘R Internals’ manual) have changed: checks for unsafe and |
| .Internal() calls and for partial matching of arguments in R |
| function calls are now done by default. |
| |
| • R CMD check has more comprehensive facilities for checking |
| compiled code and so gives fewer reports on entry points linked |
| into .so/.dll files from libraries (including C++ and Fortran |
| runtimes). |
| |
| Checking compiled code is now done on FreeBSD (as well as the |
| existing supported platforms of Linux, Mac OS X, Solaris and |
| Windows). |
| |
| • R CMD build has more options for --compact-vignettes: see R CMD |
| build --help. |
| |
| • R CMD build has a new option --md5 to add an MD5 file (as done by |
| CRAN): this is used by R CMD INSTALL to check the integrity of |
| the distribution. |
| |
| If this option is not specified, any existing (and probably |
| stale) MD5 file is removed. |
| |
| DEPRECATED AND DEFUNCT: |
| |
| • R CMD Rd2dvi is now defunct: use R CMD Rd2pdf. |
| |
| • Options such --max-nsize, --max-vsize and the function |
| mem.limits() are now defunct. (Options --min-nsize and |
| --min-vsize remain available.) |
| |
| • Use of library.dynam() without specifying all the first three |
| arguments is now disallowed. |
| |
| Use of an argument chname in library.dynam() including the |
| extension .so or .dll (which was never allowed according to the |
| help page) is defunct. This also applies to |
| library.dynam.unload() and to useDynLib directives in NAMESPACE |
| files. |
| |
| • The internal functions .readRDS() and .saveRDS() are now defunct. |
| |
| • The off-line help() types "postscript" and "ps" are defunct. |
| |
| • Sys.putenv(), replaced and deprecated in R 2.5.0, is finally |
| removed. |
| |
| • Some functions/objects which have been defunct for five or more |
| years have been removed completely. These include .Alias(), |
| La.chol(), La.chol2inv(), La.eigen(), Machine(), Platform(), |
| Version, codes(), delay(), format.char(), getenv(), httpclient(), |
| loadURL(), machine(), parse.dcf(), printNoClass(), provide(), |
| read.table.url(), restart(), scan.url(), symbol.C(), symbol.For() |
| and unix(). |
| |
| • The ENCODING argument to .C() is deprecated. It was intended to |
| smooth the transition to multi-byte character strings, but can be |
| replaced by the use of iconv() in the rare cases where it is |
| still needed. |
| |
| INSTALLATION: |
| |
| • Building with a positive value of --with-valgrind-instrumentation |
| now also instruments logical, complex and raw vectors. |
| |
| C-LEVEL FACILITIES: |
| |
| • Passing R objects other than atomic vectors, functions, lists and |
| environments to .C() is now deprecated and will give a warning. |
| Most cases (especially NULL) are actually coding errors. NULL |
| will be disallowed in future. |
| |
| .C() now passes a pairlist as a SEXP to the compiled code. This |
| is as was documented, but pairlists were in reality handled |
| differently as a legacy from the early days of R. |
| |
| • call_R and call_S are deprecated. They still exist in the |
| headers and as entry points, but are no longer documented and |
| should not be used for new code. |
| |
| BUG FIXES: |
| |
| • str(x, width) now obeys its width argument also for function |
| headers and other objects x where deparse() is applied. |
| |
| • The convention for x %/% 0L for integer-mode x has been changed |
| from 0L to NA_integer_. (PR#14754) |
| |
| • The exportMethods directive in a NAMESPACE file now exports S4 |
| generics as necessary, as the extensions manual said it does. |
| The manual has also been updated to be a little more informative |
| on this point. |
| |
| It is now required that there is an S4 generic (imported or |
| created in the package) when methods are to be exported. |
| |
| • Reference methods cannot safely use non-exported entries in the |
| namespace. We now do not do so, and warn in the documentation. |
| |
| • The namespace import code was warning when identical S4 generic |
| functions were imported more than once, but should not (reported |
| by Brian Ripley, then Martin Morgan). |
| |
| • merge() is no longer allowed (in some ways) to create a data |
| frame with duplicate column names (which confused PR#14786). |
| |
| • Fixes for rendering raster images on X11 and Windows devices when |
| the x-axis or y-axis scale is reversed. |
| |
| • getAnywhere() found S3 methods as seen from the utils namespace |
| and not from the environment from which it was called. |
| |
| • selectMethod(f, sig) would not return inherited group methods |
| when caching was off (as it is by default). |
| |
| • dev.copy2pdf(out.type = "cairo") gave an error. (PR#14827) |
| |
| • Virtual classes (e.g., class unions) had a NULL prototype even if |
| that was not a legal subclass. See ?setClassUnion. |
| |
| • The C prototypes for zdotc and zdotu in R_ext/BLAS.h have been |
| changed to the more modern style rather than that used by f2c. |
| (Patch by Berwin Turlach.) |
| |
| • isGeneric() produced an error for primitives that can not have |
| methods. |
| |
| • .C() or .Fortran() had a lack-of-protection error if the |
| registration information resulted in an argument being coerced to |
| another type. |
| |
| • boxplot(x=x, at=at) with non finite elements in x and non integer |
| at could not generate a warning but failed. |
| |
| • heatmap(x, symm=TRUE, RowSideColors=*) no longer draws the colors |
| in reversed order. |
| |
| • predict(<ar>) was incorrect in the multivariate case, for p >= 2. |
| |
| • print(x, max=m) is now consistent when x is a "Date"; also the |
| “reached ... max.print ..” messages are now consistently using |
| single brackets. |
| |
| • Closed the <li> tag in pages generated by Rd2HTML(). (PR#14841) |
| |
| • Axis tick marks could go out of range when a log scale was used. |
| (PR#14833) |
| |
| • Signature objects in methods were not allocated as S4 objects |
| (caused a problem with trace() reported by Martin Morgan). |
| |
| CHANGES IN R VERSION 2.14.2: |
| |
| NEW FEATURES: |
| |
| • The internal untar() (as used by default by R CMD INSTALL) now |
| knows about some pax headers which bsdtar (e.g., the default tar |
| for Mac OS >= 10.6) can incorrectly include in tar files, and |
| will skip them with a warning. |
| |
| • PCRE has been upgraded to version 8.21: as well as bug fixes and |
| greater Perl compatibility, this adds a JIT pattern compiler, |
| about which PCRE's news says ‘large performance benefits can be |
| had in many situations’. This is supported on most but not all R |
| platforms. |
| |
| • Function compactPDF() in package tools now takes the default for |
| argument gs_quality from environment variable GS_QUALITY: there |
| is a new value "none", the ultimate default, which prevents |
| GhostScript being used in preference to qpdf just because |
| environment variable R_GSCMD is set. If R_GSCMD is unset or set |
| to "", the function will try to find a suitable GhostScript |
| executable. |
| |
| • The included version of zlib has been updated to 1.2.6. |
| |
| • For consistency with the logLik() method, nobs() for "nls" files |
| now excludes observations with zero weight. (Reported by Berwin |
| Turlach.) |
| |
| UTILITIES: |
| |
| • R CMD check now reports by default on licenses not according to |
| the description in ‘Writing R Extensions’. |
| |
| • R CMD check has a new option --as-cran to turn on most of the |
| customizations that CRAN uses for its incoming checks. |
| |
| PACKAGE INSTALLATION: |
| |
| • R CMD INSTALL will now no longer install certain file types from |
| inst/doc: these are almost certainly mistakes and for some |
| packages are wasting a lot of space. These are Makefile, files |
| generated by running LaTeX, and unless the package uses a |
| vignettes directory, PostScript and image bitmap files. |
| |
| Note that only PDF vignettes have ever been supported: some of |
| these files come from DVI/PS output from the Sweave defaults |
| prior to R 2.13.0. |
| |
| BUG FIXES: |
| |
| • R configured with --disable-openmp would mistakenly set |
| HAVE_OPENMP (internal) and SUPPORT_OPENMP (in Rconfig.h) even |
| though no OpenMP flags were populated. |
| |
| • The getS3method() implementation had an old computation to find |
| an S4 default method. |
| |
| • readLines() could overflow a buffer if the last line of the file |
| was not terminated. (PR#14766) |
| |
| • R CMD check could miss undocumented S4 objects in packages which |
| used S4 classes but did not Depends: methods in their DESCRIPTION |
| file. |
| |
| • The HTML Help Search page had malformed links. (PR#14769) |
| |
| • A couple of instances of lack of protection of SEXPs have been |
| squashed. (PR#14772, PR#14773) |
| |
| • image(x, useRaster=TRUE) misbehaved on single-column x. |
| (PR#14774) |
| |
| • Negative values for options("max.print") or the max argument to |
| print.default() caused crashes. Now the former are ignored and |
| the latter trigger an error. (PR#14779) |
| |
| • The text of a function body containing more than 4096 bytes was |
| not properly saved by the parser when entered at the console. |
| |
| • Forgetting the #endif tag in an Rd file could cause the parser to |
| go into a loop. (Reported by Hans-Jorg Bibiko.) |
| |
| • str(*, ....., strict.width="cut") now also obeys list.len = n. |
| (Reported by Sören Vogel.) |
| |
| • Printing of arrays did not have enough protection (C level), |
| e.g., in the context of capture.output(). (Reported by Hervé |
| Pagès and Martin Morgan.) |
| |
| • pdf(file = NULL) would produce a spurious file named NA. |
| (PR#14808) |
| |
| • list2env() did not check the type of its envir argument. |
| (PR#14807) |
| |
| • svg() could segfault if called with a non-existent file path. |
| (PR#14790) |
| |
| • make install can install to a path containing + characters. |
| (PR#14798) |
| |
| • The edit() function did not respect the options("keep.source") |
| setting. (Reported by Cleridy Lennert.) |
| |
| • predict.lm(*, type="terms", terms=*, se.fit=TRUE) did not work. |
| (PR#14817) |
| |
| • There is a partial workaround for errors in the TRE |
| regular-expressions engine with named classes and repeat counts |
| of at least 2 in a MBCS locale (PR#14408): these are avoided when |
| TRE is in 8-bit mode (e.g. for useBytes = TRUE and when all the |
| data are ASCII). |
| |
| • The C function R_ReplDLLdo1() did not call top-level handlers. |
| |
| • The Quartz device was unable to detect window sessions on Mac OS |
| X 10.7 (Lion) and higher and thus it was not used as the default |
| device on the console. Since Lion any application can use window |
| sessions, so Quartz will now be the default device if the user's |
| window session is active and R is not run via ssh which is at |
| least close to the behavior in prior OS X versions. |
| |
| • mclapply() would fail in code assembling the translated error |
| message if some (but not all) cores encountered an error. |
| |
| • format.POSIXlt(x) raised an arithmetic exception when x was an |
| invalid object of class "POSIXlt" and parts were empty. |
| |
| • installed.packages() has some more protection against package |
| installs going on in parallel. |
| |
| • .Primitive() could be mis-used to call .Internal() entry points. |
| |
| CHANGES IN R VERSION 2.14.1: |
| |
| NEW FEATURES: |
| |
| • parallel::detectCores() is now able to find the number of |
| physical cores (rather than CPUs) on Sparc Solaris. |
| |
| It can also do so on most versions of Windows; however the |
| default remains detectCores(logical = TRUE) on that platform. |
| |
| • Reference classes now keep a record of which fields are locked. |
| $lock() with no arguments returns the names of the locked fields. |
| |
| • HoltWinters() reports a warning rather than an error for some |
| optimization failures (where the answer might be a reasonable |
| one). |
| |
| • tools::dependsOnPkg() now accepts the shorthand dependencies = |
| "all". |
| |
| • parallel::clusterExport() now allows specification of an |
| environment from which to export. |
| |
| • The quartz() device now does tilde expansion on its file |
| argument. |
| |
| • tempfile() on a Unix-alike now takes the process ID into account. |
| This is needed with multicore (and as part of parallel) because |
| the parent and all the children share a session temporary |
| directory, and they can share the C random number stream used to |
| produce the unique part. Further, two children can call |
| tempfile() simultaneously. |
| |
| • Option print in Sweave's RweaveLatex() driver now emulates |
| auto-printing rather than printing (which can differ for an S4 |
| object by calling show() rather than print()). |
| |
| • filled.contour() now accepts infinite values: previously it might |
| have generated invalid graphics files (e.g. containing NaN |
| values). |
| |
| INSTALLATION: |
| |
| • On 64-bit Linux systems, configure now only sets LIBnn to lib64 |
| if /usr/lib64 exists. This may obviate setting LIBnn explicitly |
| on Debian-derived systems. |
| |
| It is still necessary to set LIBnn = lib (or lib32) for 32-bit |
| builds of R on a 64-bit OS on those Linux distributions capable |
| for supporting that concept. |
| |
| • configure looks for inconsolata.sty, and if not found adjusts the |
| default R_RD4PDF to not use it (with a warning, since it is |
| needed for high-quality rendering of manuals). |
| |
| PACKAGE INSTALLATION: |
| |
| • R CMD INSTALL will now do a test load for all sub-architectures |
| for which code was compiled (rather than just the primary |
| sub-architecture). |
| |
| UTILITIES: |
| |
| • When checking examples under more than one sub-architecture, R |
| CMD check now uses a separate directory examples_arch for each |
| sub-architecture, and leaves the output in file |
| pkgname-Ex_arch.Rout. Some packages expect their examples to be |
| run in a clean directory .... |
| |
| BUG FIXES: |
| |
| • stack() now gives an error if no vector column is selected, |
| rather than returning a 1-column data frame (contrary to its |
| documentation). |
| |
| • summary.mlm() did not handle objects where the formula had been |
| specified by an expression. (Reported by Helios de Rosario |
| Martinez). |
| |
| • tools::deparseLatex(dropBraces=TRUE) could drop text as well as |
| braces. |
| |
| • colormodel = "grey" (new in R 2.14.0)) did not always work in |
| postscript() and pdf(). |
| |
| • file.append() could return TRUE for failures. (PR#14727) |
| |
| • gzcon() connections are no longer subject to garbage collection: |
| it was possible for this to happen when unintended (e.g. when |
| calling load()). |
| |
| • nobs() does not count zero-weight observations for glm() fits, |
| for consistency with lm(). This affects the BIC() values |
| reported for such glm() fits. (Spotted by Bill Dunlap.) |
| |
| • options(warn = 0) failed to end a (C-level) context with more |
| than 50 accumulated warnings. (Spotted by Jeffrey Horner.) |
| |
| • The internal plot.default() code did not do sanity checks on a |
| cex argument, so invalid input could cause problems. (Reported |
| by Ben Bolker.) |
| |
| • anyDuplicated(<array>, MARGIN=0) no longer fails. (Reported by |
| Hervé Pagès.) |
| |
| • read.dcf() removes trailing blanks: unfortunately on some |
| platforms this included \xa0 (non-breaking space) which is the |
| trailing byte of a UTF-8 character. It now only considers ASCII |
| space and tab to be ‘blank’. |
| |
| • There was a sign error in part of the calculations for the |
| variance returned by KalmanSmooth(). (PR#14738) |
| |
| • pbinom(10, 1e6, 0.01, log.p = TRUE) was NaN thanks to the buggy |
| fix to PR#14320 in R 2.11.0. (PR#14739) |
| |
| • RweaveLatex() now emulates auto-printing rather than printing, by |
| calling methods::show() when auto-printing would. |
| |
| • duplicated() ignored fromLast for a one-column data frame. |
| (PR#14742) |
| |
| • source() and related functions did not put the correct timestamp |
| on the source references; srcfilecopy() has gained a new argument |
| timestamp to support this fix. (PR#14750) |
| |
| • srcfilecopy() has gained a new argument isFile and now records |
| the working directory, to allow debuggers to find the original |
| source file. (PR#14826) |
| |
| • LaTeX conversion of Rd files did not correctly handle |
| preformatted backslashes. (PR#14751) |
| |
| • HTML conversion of Rd files did not handle markup within tabular |
| cells properly. (PR#14708) |
| |
| • source() on an empty file with keep.source = TRUE tried to read |
| from stdin(), in R 2.14.0 only. (PR#14753) |
| |
| • The code to check Rd files in packages would abort if duplicate |
| description sections were present. |
| |
| CHANGES IN R VERSION 2.14.0: |
| |
| SIGNIFICANT USER-VISIBLE CHANGES: |
| |
| • All packages must have a namespace, and one is created on |
| installation if not supplied in the sources. This means that any |
| package without a namespace must be re-installed under this |
| version of R (but previously-installed data-only packages without |
| R code can still be used). |
| |
| • The yLineBias of the X11() and windows() families of devices has |
| been changed from 0.1 to 0.2: this changes slightly the vertical |
| positioning of text in the margins (including axis annotations). |
| This is mainly for consistency with other devices such as |
| quartz() and pdf(). (Wish of PR#14538.) |
| |
| There is a new graphics parameter "ylbias" which allows the |
| y-line bias of the graphics device to be tweaked, including to |
| reproduce output from earlier versions of R. |
| |
| • Labeling of the p-values in various anova tables has been |
| rationalized to be either "Pr(>F)" or "Pr(>Chi)" (i.e. the |
| "Pr(F)", "Pr(Chi)" and "P(>|Chi|)" variants have been |
| eliminated). Code which extracts the p value _via_ indexing by |
| name may need adjustment. |
| |
| • :: can now be used for datasets made available for lazy-loading |
| in packages with namespaces (which makes it consistent with its |
| use for data-only packages without namespaces in earlier versions |
| of R). |
| |
| • There is a new package parallel. |
| |
| It incorporates (slightly revised) copies of packages multicore |
| and snow (excluding MPI, PVM and NWS clusters). Code written to |
| use the higher-level API functions in those packages should work |
| unchanged (apart from changing any references to their namespaces |
| to a reference to parallel, and links explicitly to multicore or |
| snow on help pages). |
| |
| It also contains support for multiple RNG streams following |
| L'Ecuyer _et al_ (2002), with support for both mclapply and snow |
| clusters. This replaces functions like clusterSetupRNG() from |
| snow (which are not in parallel). |
| |
| The version released for R 2.14.0 contains base functionality: |
| higher-level convenience functions are planned (and some are |
| already available in the ‘R-devel’ version of R). |
| |
| • Building PDF manuals (for R itself or packages, e.g. _via_ R CMD |
| check) by default requires the LaTeX package inconsolata: see the |
| section on ‘Making the manuals’ in the ‘R Installation and |
| Administration Manual’. |
| |
| • axTicks(*, log=TRUE) has changed in some cases to satisfy the |
| documented behavior and be consistent. |
| |
| NEW FEATURES: |
| |
| • txtProgressBar() can write to an open connection instead of the |
| console. |
| |
| • Non-portable package names ending in . are no longer allowed. |
| Nor are single-character package names (R was already |
| disallowed). |
| |
| • regexpr() and gregexpr() with perl = TRUE allows Python-style |
| named captures. (Wish and contribution of PR#14518.) |
| |
| • The placement of ‘plotmath’ text in the margins of plots done by |
| base graphics now makes the same vertical adjustment as ordinary |
| text, so using ordinary and plotmath text on the same margin line |
| will seem better aligned (but not exactly aligned, since ordinary |
| text has descenders below the baseline and plotmath places them |
| on the baseline). (Related to PR#14537.) |
| |
| • sunflowerplot() now has a formula interface. (Wish of PR#14541.) |
| |
| • iconv() has a new argument toRaw to handle encodings such as |
| UTF-16 with embedded nuls (as was possible before the CHARSXP |
| cache was introduced). |
| |
| It will also accept as input the type of list generated with |
| toRaw = TRUE. |
| |
| • Garbage-collecting an unused input text connection no longer |
| gives a warning (since it ‘connects’ to nothing outside R). |
| |
| • read.table() and scan() have gained a text argument, to allow |
| reading data from a (possibly literal) character string. |
| |
| • optim(*, method = .) now allows method = "Brent" as an interface |
| to optimize(), for use in cases such as mle() where optim() is |
| used internally. |
| |
| • mosaicplot() gains a border argument. (Wish of PR#14550.) |
| |
| • smooth.spline() gains a tol argument which controls how different |
| x values need to be to be treated as distinct. The default has |
| been changed to be more reliable for inputs whose range is small |
| compared to their maximum absolute value. (Wish of PR#14452.) |
| |
| • gl() runs faster by avoiding calling factor(). |
| |
| • The print() method for object.size() accepts B as well as b as an |
| abbreviation for ‘bytes’. |
| |
| • unlink() gains a force argument to work like rm -f and if |
| possible override restrictive permissions. |
| |
| • pbirthday() and qbirthday() now use exact calculations for |
| coincident = 2. |
| |
| • unzip() and unz() connections have been updated with support for |
| more recent Zip64 features (including large file sizes and bzip2 |
| compression, but not UTF-8 file names). |
| |
| unzip() has a new option to restore file times from those |
| recorded (in an unknown timezone) in the zip file. |
| |
| • update.packages() now accepts a character vector of package names |
| for the oldPkgs argument. (Suggestion of Tal Galili.) |
| |
| • The special reference class fields .self and .refClassDef are now |
| read-only to prevent corrupting the object. |
| |
| • decompose() now returns the original series as part of its value, |
| so it can be used (rather than reconstructed) when plotting. |
| (Suggestion of Rob Hyndman.) |
| |
| • Rao's efficient score test has been implemented for glm objects. |
| Specifically, the add1, drop1, and anova methods now allow test = |
| "Rao". |
| |
| • If a saved workspace (e.g. .RData) contains objects that cannot |
| be loaded, R will now start with an warning message and an empty |
| workspace, rather than failing to start. |
| |
| • strptime() now accepts times such as 24:00 for midnight at the |
| end of the day, for although these are disallowed by POSIX |
| 1003.1-2008, ISO 8601:2004 allows them. |
| |
| • Assignment of names() to S4 objects now checks for a |
| corresponding "names" slot, and generates a warning or an error |
| if that slot is not defined. See the section on slots in |
| ?Classes. |
| |
| • The default methods for is.finite(), is.infinite() and is.nan() |
| now signal an error if their argument is not an atomic vector. |
| |
| • The formula method for plot() no longer places package stats on |
| the search path (it loads the namespace instead). |
| |
| • There now is a genuine "function" method for plot() rather than |
| the generic dispatching internally to graphics::plot.function(). |
| It is now exported, so can be called directly as plot.function(). |
| |
| • The one-sided ks.test() allows exact = TRUE to be specified in |
| the presence of ties (but the approximate calculation remains the |
| default: the ‘exact’ computation makes assumptions known to be |
| invalid in the presence of ties). |
| |
| • The behaviour of curve(add = FALSE) has changed: it now no longer |
| takes the default x limits from the previous plot (if any): |
| rather they default to c(0, 1) just as the "function" method for |
| plot(). To get the previous behaviour use curve(add = NA), which |
| also takes the default for log-scaling of the x-axis from the |
| previous plot. |
| |
| • Both curve() and the plot() method for functions have a new |
| argument xname to facilitate plots such as sin(t) _vs_ t. |
| |
| • The local argument to source() can specify an environment as well |
| as TRUE (parent.env()) and FALSE (.GlobalEnv). It gives better |
| error messages for other values, such as NA. |
| |
| • vcov() gains methods for classes "summary.lm" and "summary.glm". |
| |
| • The plot() method for class "profile.nls" gains ylab and lty |
| arguments, and passes ... on to plot.default. |
| |
| • Character-string arguments such as the mode argument of vector(), |
| as.vector() and is.vector() and the description argument of |
| file() are required to be of length exactly one, rather than any |
| further elements being silently discarded. This helps catch |
| incorrect usage in programming. |
| |
| • The length argument of vector() and its wrappers such as |
| numeric() is required to be of length exactly one (other values |
| are now an error rather than giving a warning as previously). |
| |
| • vector(len) and length(x) <- len no longer accept TRUE/FALSE for |
| len (not that they were ever documented to, but there was |
| special-casing in the C code). |
| |
| • There is a new function Sys.setFileTime() to set the time of a |
| file (including a directory). See its help for exactly which |
| times it sets on various OSes. |
| |
| • The file times reported by file.info() are reported to sub-second |
| resolution on systems which support it. (Currently the POSIX |
| 2008 and FreeBSD/Darwin/NetBSD methods are detected.) |
| |
| • New function getCall(m) as an abstraction for m$call, enabling |
| update()'s default method to apply more universally. (NB: this |
| can be masked by existing functions in packages.) |
| |
| • Sys.info() gains a euser component to report the ‘effective’ user |
| on OSes which have that concept. |
| |
| • The result returned by try() now contains the original error |
| condition object as the "condition" attribute. |
| |
| • All packages with R code are lazy-loaded irrespective of the |
| LazyLoad field in the DESCRIPTION file. A warning is given if |
| the LazyLoad field is overridden. |
| |
| • Rd markup has a new \figure tag so that figures can be included |
| in help pages when converted to HTML or LaTeX. There are |
| examples on the help pages for par() and points(). |
| |
| • The built-in httpd server now allows access to files in the |
| session temporary directory tempdir(), addressed as the /session |
| directory on the httpd server. |
| |
| • Development versions of R are no longer referred to by the number |
| under which they might be released, e.g. in the startup banner, R |
| --version and sessionUtils(). The correct way to refer to a |
| development version of R is ‘R-devel’, preferably with the date |
| and SVN version number. |
| E.g. R-devel (2011-07-04 r56266) |
| |
| • There is a new function texi2pdf() in package tools, currently a |
| convenience wrapper for texi2dvi(pdf = TRUE). |
| |
| • There are two new options for typesetting PDF manuals from Rd |
| files. These are beramono and inconsolata, and used the named |
| font for monospaced output. They are intended to be used in |
| combination with times, and times,inconsolata,hyper is now the |
| default for the reference manual and package manuals. If you do |
| not have that font installed, you can set R_RD4PF to one of the |
| other options: see the ‘R Installation and Administration |
| Manual’. |
| |
| • Automatic printing for reference classes is now done by the |
| $show() method. A method is defined for class envRefClass and |
| may be overridden for user classes (see the ?ReferenceClasses |
| example). S4 show() methods should no longer be needed for |
| reference classes. |
| |
| • tools::Rdiff (by default) and R CMD Rdiff now ignore differences |
| in pointer values when comparing printed environments, compiled |
| byte code, etc. |
| |
| • The "source" attribute on functions created with keep.source=TRUE |
| has been replaced with a "srcref" attribute. The "srcref" |
| attribute references an in-memory copy of the source file using |
| the "srcfilecopy" class or the new "srcfilealias" class. |
| |
| *NB:* This means that functions sourced with keep.source = TRUE |
| and saved (e.g., by save() or readRDS()) in earlier versions of R |
| will no longer show the original sources (including comments). |
| |
| • New items User Manuals and Technical Papers have been added to |
| the HTML help main page. These link to vignettes in the base and |
| recommended packages and to a collection of papers about R |
| issues, respectively. |
| |
| • Documentation and messages have been standardized to use |
| “namespace” rather than “name space”. |
| |
| • setGeneric() now looks in the default packages for a non-generic |
| version of a function if called from a package with a namespace. |
| (It always did for packages without a namespace.) |
| |
| • Setting the environment variable _R_WARN_ON_LOCKED_BINDINGS_ will |
| give a warning if an attempt is made to change a locked binding. |
| |
| • \SweaveInput is now supported when generating concordances in |
| Sweave(). |
| |
| • findLineNum() and setBreakpoint() now allow the environment to be |
| specified indirectly; the latter gains a clear argument to allow |
| it to call untrace(). |
| |
| • The body of a closure can be one of further types of R objects, |
| including environments and external pointers. |
| |
| • The Rd2HTML() function in package tools now has a stylesheet |
| argument, allowing pages to be displayed in alternate formats. |
| |
| • New function requireNamespace() analogous to require(), returning |
| a logical value after attempting to load a namespace. |
| |
| • There is a new type of RNG, "L'Ecuyer-CMRG", implementing |
| L'Ecuyer (1999)'s ‘combined multiple-recursive generator’ |
| MRG32k3a. See the comments on ?RNG. |
| |
| • help.search() and ?? can now display vignettes and demos as well |
| as help pages. The new option "help.search.types" controls the |
| types of documentation and the order of their display. |
| |
| This also applies to HTML searches, which now give results in all |
| of help pages, vignettes and demos. |
| |
| • socketConnection() now has a timeout argument. It is now |
| documented that large values (package snow used a year) do not |
| work on some OSes. |
| |
| • The initialization of the random-number generator now uses the |
| process ID as well as the current time, just in case two R |
| processes are launched very rapidly on a machine with |
| low-resolution wall clock (some have a resolution of a second; |
| modern systems have microsecond-level resolution). |
| |
| • New function pskill() in the tools package to send a terminate |
| signal to one or more processes, plus constants such as SIGTERM |
| to provide a portable way to refer to signals (since the numeric |
| values are OS-dependent). |
| |
| • New function psnice() in the tools package to return or change |
| the ‘niceness’ of a process. (Refers to the ‘priority class’ on |
| Windows.) |
| |
| • list.dirs() gains a recursive argument. |
| |
| • An Authors@R field in a package DESCRIPTION file can now be used |
| to generate Author and Maintainer fields if needed, and to |
| auto-generate package citations. |
| |
| • New utility getElement() for accessing either a list component or |
| a slot in an S4 object. |
| |
| • stars() gains a col.lines argument, thanks to Dustin Sallings. |
| (Wish of PR#14657.) |
| |
| • New function regmatches() for extracting or replacing matched or |
| non-matched substrings from match data obtained by regexpr(), |
| gregexpr() and regexec(). |
| |
| • help(package = "pkg_name", help_type = "HTML") now gives HTML |
| help on the package rather than text help. (This gives direct |
| access to the HTML version of the package manual shown _via_ |
| help.start()'s ‘Packages’ menu.) |
| |
| • agrep() gains a fixed argument to optionally allow approximate |
| regular expression matching, and a costs argument to specify |
| possibly different integer match costs for insertions, deletions |
| and substitutions. |
| |
| • read.dcf() and write.dcf() gain a keep.white argument to indicate |
| fields where whitespace should be kept as is. |
| |
| • available.packages() now works around servers that fail to return |
| an error code when PACKAGES.gz does not exist. (Patch submitted |
| by Seth Schommer.) |
| |
| • readBin() can now read more than 2^31 - 1 bytes in a single call |
| (the previously documented limitation). |
| |
| • New function regexec() for finding the positions of matches as |
| well as all substrings corresponding to parenthesized |
| subexpressions of the given regular expression. |
| |
| • New function adist() in package utils for computing ‘edit’ |
| (generalized Levenshtein) distances between strings. |
| |
| • Class "raster" gains an is.na method to avoid confusion from the |
| misuse of the matrix method (such as PR#14618). |
| |
| • The identical() function gains an ignore.bytecode argument to |
| control comparison of compiled functions. |
| |
| • pmin and pmax now warn if an argument is partially recycled (wish |
| of PR#14638). |
| |
| • The default for image(useRaster=) is now taken from option |
| "preferRaster": for the small print see ?image. |
| |
| • str() now displays reference class objects and their fields, |
| rather than treating them as classical S4 classes. |
| |
| • New function aregexec() in package utils for finding the |
| positions of approximate string matches as well as all substrings |
| corresponding to parenthesized subexpressions of the given |
| regular expression. |
| |
| • download.file() has an extra argument to pass additional |
| command-line options to the non-default methods using |
| command-line utilities. |
| |
| cacheOK = FALSE is now supported for method = "curl". |
| |
| • interaction.plot(*, type = .) now also allows type "o" or "c". |
| |
| • axTicks(*, log=TRUE) did sometimes give more values than the |
| ticks in the corresponding graphics::axis(). By default, it now |
| makes use of the new (graphics-package independent) axisTicks() |
| which can make use of a new utility .axisPars(). Further, it now |
| returns a decreasing sequence (as for log=FALSE) when usr is |
| decreasing. |
| |
| • Using fix() or edit() on a R object (except perhaps a matrix or |
| data frame) writes its temporary file with extension .R so |
| editors which select their mode based on the extension will |
| select a suitable mode. |
| |
| GRAPHICS DEVICES: |
| |
| • The pdf() device makes use of Flate compression: this is |
| controlled by the new logical argument compress, and is enabled |
| by default. |
| |
| • Devices svg(), cairo_pdf() and cairo_ps() gain a family argument. |
| |
| On a Unix-alike X11() gains a family argument. This is one of |
| the x11.options() and so can be passed as an argument to the |
| bmp(), jpeg(), png() and tiff() devices. |
| |
| Analogous changes have been made on Windows, so all built-in R |
| graphics devices now have a family argument except pictex() |
| (which has no means to change fonts). |
| |
| • The bmp(), jpeg(), png() and tiff() devices now make use of the |
| antialias argument for type = "quartz". |
| |
| • There are several new built-in font mappings for X11(type = |
| "Xlib"): see the help on X11Fonts(). |
| |
| • There is a new type X11(type = "dbcairo") which updates the |
| screen less frequently: see its help page. |
| |
| • The X11() device now makes use of cursors to distinguish its |
| states. The normal cursor is an arrow (rather than a crosshair); |
| the crosshair is used when the locator is in use, and a watch |
| cursor is shown when plotting computations are being done. |
| (These are the standard names for X11 cursors: how they are |
| actually displayed depends on the window manager.) |
| |
| • New functions dev.hold() and dev.flush() for use with graphics |
| devices with buffering. These are used for most of the |
| high-level graphics functions such as boxplot(), so that the plot |
| is only displayed when the page is complete. |
| |
| Currently implemented for windows(buffered = TRUE), quartz() and |
| the cairographics-based X11() types with buffering (which are the |
| default on-screen devices). |
| |
| • New function dev.capture() for capture of bitmap snapshots of |
| image-based devices (a superset of the functionality provided by |
| grid.cap() in grid). |
| |
| • The default colormodel for pdf() and postscript() is now called |
| "srgb" to more accurately describe it. (Instead of "rgb", and in |
| the case of postscript() it no longer switches to and from the |
| gray colorspace, by default.) |
| |
| The colormodel for postscript() which does use both gray and sRGB |
| colorspaces is now called "srgb+gray". |
| |
| Plots which are known to use only black/white/transparent can |
| advantageously use colormodel = "gray" (just as before, but there |
| is now slightly more advantage in doing so). |
| |
| • postscript() with values colormodel = "rgb" and colormodel = |
| "rgb-nogray" give the behaviour prior to R 2.13.0 of uncalibrated |
| RGB, which under some circumstances can be rendered much faster |
| by a viewer. |
| |
| pdf(colormodel = "rgb") gives the behaviour prior to R 2.13.0 of |
| uncalibrated RGB, which under some circumstances can be rendered |
| faster by a viewer, and the files will be smaller (by about 9KB |
| if compression is not used). |
| |
| • The postscript() device only includes the definition of the sRGB |
| colorspace in the output file for the colormodels which use it. |
| |
| • The postscript() and pdf() devices now output greyscale raster |
| images (and not RGB) when colormodel = "gray". |
| |
| • postscript(colormodel = "gray") now accepts non-grey colours and |
| uses their luminance (as pdf() long has). |
| |
| • colormodel = "grey" is allowed as an alternative name for |
| postscript() and pdf(). |
| |
| • pdf() in the default sRGB colorspace outputs many fewer changes |
| of colorspace, which may speed up rendering in some viewing |
| applications. |
| |
| • There is a new function dev.capabilities() to query the |
| capabilities of the current device. The initial set of |
| capabilities are support for semi-transparent colours, rendering |
| and capturing raster images, the locator and for interactive |
| events. |
| |
| • For pdf(), maxRasters is increased as needed so the argument is |
| no longer used. |
| |
| SWEAVE & VIGNETTES: |
| |
| • Options keep.source = TRUE, figs.only = FALSE are now the |
| default. |
| |
| • The way the type of user-defined options is determined has |
| changed. Previously they were all regarded as logical: now the |
| type is determined by the value given at first use. |
| |
| • The allowed values of logical options are now precisely those |
| allowed for character inputs to as.logical(): this means that t |
| and f are no longer allowed (although T and F still are). |
| |
| • The preferred location for vignette sources is now the directory |
| vignettes and not inst/doc: R CMD build will now re-build |
| vignettes in directory vignettes and copy the .Rnw (etc) files |
| and the corresponding PDFs to inst/doc. Further files to be |
| copied to inst/doc can be specified _via_ the file |
| vignettes/.install_extras. |
| |
| • R CMD Sweave now supports a --driver option to select the Sweave |
| driver: the default is equivalent to --driver=RweaveLatex. |
| |
| • R CMD Sweave and R CMD Stangle support options --encoding and |
| --options. |
| |
| • The Rtangle() driver allows output = "stdout" or output = |
| "stderr" to select the output or message connection. This is |
| convenient for scripting using something like |
| |
| R CMD Stangle --options='output="stdout"' foo.Rnw > foo2.R |
| |
| • There is a new option pdf.compress controlling whether PDF |
| figures are generated using Flate compression (they are by |
| default). |
| |
| • R CMD Sweave now has a --pdf option to produce a PDF version of |
| the processed Sweave document. |
| |
| • It is no longer allowed to have two vignettes with the same |
| vignette basename (e.g. vig.Rnw and vig.Snw). (Previously one |
| vignette hid the other in the vignette() function.) |
| |
| C-LEVEL FACILITIES: |
| |
| • Function R_tmpnam2 has been added to the API to allow a temporary |
| filename to include a specified extension. |
| |
| PACKAGE INSTALLATION: |
| |
| • Package DESCRIPTION file field KeepSource forces the package to |
| be installed with keep.source = TRUE (or FALSE). (Suggestion of |
| Greg Snow. Note that as all packages are lazy-loaded, this is |
| now only relevant at installation.) |
| |
| There are corresponding options --with-keep.source and |
| --without-keep.source for R CMD INSTALL. |
| |
| • R CMD INSTALL has a new option --byte-compile to byte-compile the |
| packages during installation (since all packages are now |
| lazy-loaded). This can be controlled on a per-package basis by |
| the optional field ByteCompile in the DESCRIPTION file. |
| |
| • A package R code but without a NAMESPACE file will have a default |
| one created at R CMD build or R CMD INSTALL time, so all packages |
| will be installed with namespaces. A consequence of this is that |
| .First.lib() functions need to be copied to .onLoad() (usually) |
| or .onAttach(). For the time being, if there is an |
| auto-generated NAMESPACE file and no .onLoad() nor .onAttach() |
| function is found but .First.lib() is, it will be run as the |
| attach hook (unless the package is one of a list of known |
| exceptions, when it will be run as the load hook). |
| |
| • A warning is given if test-loading a package changes a locked |
| binding in a package other than itself. It is likely that this |
| will be disallowed in future releases. (There are _pro tem_ some |
| exceptions to the warning.) |
| |
| • A dependency on SVN revision is allowed for R, e.g. R (>= |
| r56550). This should be used in conjunction with a version |
| number, e.g. R (>= 2.14.0), R (>= r56550) to distinguish between |
| R-patched and R-devel versions with the same SVN revision. |
| |
| • installed.packages() now hashes the names of its cache files to |
| avoid very rare problems with excessively long path names. |
| (PR#14669) |
| |
| • A top-level COPYING file in a package is no longer installed |
| (file names LICENSE or LICENCE having long been preferred). |
| |
| UTILITIES: |
| |
| • R CMD check now gives an error if the R code in a vignette fails |
| to run, unless this is caused by a missing package. |
| |
| • R CMD check now unpacks tarballs in the same way as R CMD |
| INSTALL, including making use of the environment variable |
| R_INSTALL_TAR to override the default behaviour. |
| |
| • R CMD check performs additional code analysis of package startup |
| functions, and notifies about incorrect argument lists and |
| (incorrect) calls to functions which modify the search path or |
| inappropriately generate messages. |
| |
| • R CMD check now also checks compiled code for symbols |
| corresponding to functions which might terminate R or write to |
| stdout/stderr instead of the console. |
| |
| • R CMD check now uses a pdf() device when checking examples |
| (rather than postscript()). |
| |
| • R CMD check now checks line-endings of makefiles and |
| C/C++/Fortran sources in subdirectories of src as well as in src |
| itself. |
| |
| • R CMD check now reports as a NOTE what look like methods |
| documented with their full names even if there is a namespace and |
| they are exported. In almost all cases they are intended to be |
| used only as methods and should use the \method markup. In the |
| other rare cases the recommended form is to use a function such |
| as coefHclust which would not get confused with a method, |
| document that and register it in the NAMESPACE file by |
| s3method(coef, hclust, coefHclust). |
| |
| • The default for the environment variable _R_CHECK_COMPACT_DATA2_ |
| is now true: thus if using the newer forms of compression |
| introduced in R 2.10.0 would be beneficial is now checked (by |
| default). |
| |
| • Reference output for a vignette can be supplied when checking a |
| package by R CMD check: see ‘Writing R Extensions’. |
| |
| • R CMD Rd2dvi allows the use of LaTeX package inputenx rather than |
| inputenc: the value of the environment variable RD2DVI_INPUTENC |
| is used. (LaTeX package inputenx is an optional install which |
| provides greater coverage of the UTF-8 encoding.) |
| |
| • Rscript on a Unix-alike now accepts file names containing spaces |
| (provided these are escaped or quoted in the shell). |
| |
| • R CMD build on a Unix-alike (only) now tries to preserve dates on |
| files it copies from its input directory. (This was the |
| undocumented behaviour prior to R 2.13.0.) |
| |
| DEPRECATED AND DEFUNCT: |
| |
| • require() no longer has a save argument. |
| |
| • The gamma argument to hsv(), rainbow(), and rgb2hsv() has been |
| removed. |
| |
| • The --no-docs option for R CMD build --binary is defunct: use |
| --install-args instead. |
| |
| • The option --unsafe to R CMD INSTALL is defunct: use the |
| identical option --no-lock instead. |
| |
| • The entry point pythag formerly in Rmath.h is defunct: use |
| instead the C99 function hypot. |
| |
| • R CMD build --binary is formally defunct: R CMD INSTALL --build |
| has long been the preferred alternative. |
| |
| • zip.file.extract() is now defunct: use unzip() or unz() instead. |
| |
| • R CMD Rd2dvi without the --pdf option is now deprecated: only PDF |
| output will be supported in future releases (since this allows |
| the use of fonts only supported for PDF), and only R CMD Rd2pdf |
| will be available. |
| |
| • Options such as --max-nsize and the function mem.limits() are now |
| deprecated: these limits are nowadays almost never used, and are |
| reported by gc() when they are in use. |
| |
| • Forms like binomial(link = "link") for GLM families deprecated |
| since R 2.4.0 are now defunct. |
| |
| • The declarativeOnly argument to loadNamespace() (not relevant |
| since R 2.13.0) has been removed. |
| |
| • Use of library.dynam() without specifying all the first three |
| arguments is deprecated. (It is often called from a namespace, |
| and the defaults are only appropriate to a package.) |
| |
| Use of chname in library.dynam() with the extension .so or .dll |
| (which is clearly not allowed according to the help page) is |
| deprecated. This also applies to library.dynam.unload() and |
| useDynLib directives in NAMESPACE files. |
| |
| • It is deprecated to use mean(x) and sd(x) directly on data frames |
| (or also matrices, for sd) x, instead of simply using sapply. |
| |
| In the same spirit, median(x) now gives an error for a data frame |
| x (it often gave nonsensical results). |
| |
| • The keep.source argument to library() and require() is |
| deprecated: it was only used for packages installed without |
| lazy-loading, and now all packages are lazy-loaded. |
| |
| • Using a false value for the DESCRIPTION field LazyLoad is |
| deprecated. |
| |
| INSTALLATION: |
| |
| • The base and recommended packages are now byte-compiled |
| (equivalent to make bytecode in R 2.13.x). |
| |
| • Configure option --with-system-zlib now only makes use of the |
| basic interface of zlib and not the C function gzseek which has |
| shown erroneous behaviour in zlib 1.2.4 and 1.2.5. |
| |
| • The zlib in the R sources is now version 1.2.5. (This is safe |
| even on 32-bit Linux systems because only the basic interface is |
| now used.) |
| |
| • The .afm files in package grDevices are now installed as |
| compressed files (as long done on Windows), saving ca 2MB on the |
| installed size. |
| |
| • The non-screen cairo-based devices are no longer in the X11 |
| module and so can be installed without X11. (We have never seen |
| a Unix-alike system with cairographics installed but not X11, but |
| a user might select --without-x.) |
| |
| • Configure will try to use -fobjc-exceptions for the Objective-C |
| compiler (if present) to ensure that even compilers that do not |
| enable exceptions by default (such as vanilla gcc) can be used. |
| (Objective-C is currently only used on Mac OS X.) |
| |
| • The system call times is required. |
| |
| • The C99 functions acosh, asinh, atanh, snprintf and vsnprintf are |
| now required. |
| |
| • There is no longer support for making DVI manuals _via_ make dvi, |
| make install-dvi and similar. Only PDF manuals are supported (to |
| allow the use of fonts which are only available for PDF.) |
| |
| • The configure arguments used during configuration of R are |
| included as a comment in Makeconf for informative purposes on |
| Unix-alikes in a form suitable for shell execution. Note that |
| those are merely command-line arguments, they do not include |
| environment variables (one more reason to use configure variables |
| instead) or site configuration settings. |
| |
| • Framework installation now supports DESTDIR (Mac OS X only). |
| |
| • Java detection (R CMD javareconf) works around bogus |
| java.library.path property in recent Oracle Java binaries. |
| |
| BUG FIXES: |
| |
| • The locale category LC_MONETARY was only being set on startup on |
| Windows: that is now done on Unix-alikes where supported. |
| |
| • Reference class utilities will detect an attempt to modify |
| methods or fields in a locked class definition (e.g., in a |
| namespace) and generate an error. |
| |
| • The formula methods for lines(), points() and text() now work |
| even if package stats is not on the search path. |
| |
| • In principle, S4 classes from different packages could have the |
| same name. This has not previously worked. Changes have now |
| been installed that should allow such classes and permit methods |
| to use them. New functions className() and multipleClasses() are |
| related tools for programming. |
| |
| • Work around an issue in Linux (a system select call resetting tv) |
| which prevented internet operations from timing out properly. |
| |
| • Several stack trampling and overflow issues have been fixed in |
| TRE, triggered by agrep and friends with long patterns. |
| (PR#14627) |
| |
| • (“design infelicity”) Field assignments in reference classes are |
| now consistent with slots in S4 classes: the assigned value must |
| come from the declared class (if any) for the field or from a |
| subclass. |
| |
| • The methods objects constructed for "coerce" and "coerce<-" were |
| lacking some essential information in the generic, defined and |
| target slots; as() did not handle duplicate class definitions |
| correctly. |
| |
| • The parser no longer accepts the digit 8 in an octal character |
| code in a string, nor does it accept unterminated strings in a |
| file. (Reported by Bill Dunlap.) |
| |
| • The print() method for class "summary.aov" did not pass on |
| argument digits when summary() was called on a single object, and |
| hence used more digits than documented. |
| |
| • The X11() device's cairo back-end produced incorrect capture |
| snapshot images on big-endian machines. |
| |
| • loglin() gave a spurious error when argument margin consisted of |
| a single element of length one. (PR#14690) |
| |
| • loess() is better protected against misuse, e.g. zero-length |
| span. (PR#14691) |
| |
| • HoltWinters() checks that the optimization succeeded. (PR#14694) |
| |
| • The (undocumented) inclusion of superclass objects in default |
| initializing of reference classes overwrote explicit field |
| arguments. The bug is fixed, the feature documented and a test |
| added. |
| |
| • round(x, -Inf) now does something sensible (return zero rather |
| than NA). |
| |
| • signif(x, -Inf) now behaves as documented (signif(x, 1)) rather |
| than giving zero. |
| |
| • The "table" method for Axis() hardcoded side = 1, hence calls to |
| plot(<vector>, <table>) labelled the wrong axis. (PR#14699) |
| |
| • Creating a connection might fail under gctorture(TRUE). |
| |
| • stack() and unstack() converted character columns to factors. |
| |
| unstack() sometimes produced incorrect results (a list or a |
| vector) if the factor on which to un-split had only one level. |
| |
| • On some systems help(".C", help_type = "pdf") and similar |
| generated file names that TeX was unable to handle. |
| |
| • Non-blocking listening socket connections continued to report |
| isIncomplete() as true even when the peer had closed down and all |
| available input had been read. |
| |
| • The revised HTML search system now generates better hyperlinks to |
| help topics found: previously it gave problems with help pages |
| with names containing e.g. spaces and slashes. |
| |
| • A late change in R 2.13.2 broke \Sexpr expressions in Rd files. |
| |
| • The creation of ticks on log axes (including by axTicks()) |
| sometimes incorrectly omitted a tick at one end of the range by |
| rounding error in a platform-dependent way. This could be seen |
| in the examples for axTicks(), where with axis limits c(0.2, 88) |
| the tick for 0.2 was sometimes omitted. |
| |
| • qgamma() for small shape underflows to 0 rather than sometimes |
| giving NaN. (PR#8528, PR#14710) |
| |
| • mapply() now gives an explicit error message (rather than an |
| obscure one) if inputs of zero and positive length are mixed. |
| |
| • Setting a Hershey font family followed by string height query |
| would crash R. |
| |
| • R CMD javareconf -e would fail for some shells due to a shift |
| error. Also the resulting paths will no longer contain |
| $(JAVA_HOME) as that can result in an unintended substitution |
| based on Makeconf instead of the shell setting. |
| |
| CHANGES IN R VERSION 2.13.2: |
| |
| NEW FEATURES: |
| |
| • mem.limits() now reports values larger than the maximum integer |
| (previously documented to be reported as NA), and allows larger |
| values to be set, including Inf to remove the limit. |
| |
| • The print() methods for classes "Date", "POSIXct" and "POSIXlt" |
| respect the option "max.print" and so are much faster for very |
| long datetime vectors. (Suggestion of Yohan Chalabi.) |
| |
| • untar2() now works around errors generated with tar files that |
| use more than the standard 6 digits for the checksum. (PR#14654) |
| |
| • install.packages() with Ncpus > 1 guards against simultaneous |
| installation of indirect dependencies as well as direct ones. |
| |
| • Sweave now knows about a few more Windows' encodings (including |
| cp1250 and cp1257) and some inputenx encodings such as koi8-r. |
| |
| • postscript(colormodel = "rgb-nogray") no longer sets the sRGB |
| colorspace for each colour and so some viewers may render its |
| files much faster than the default colormodel ="rgb". |
| |
| • The default for pdf(maxRasters=) has been increased from 64 to |
| 1000. |
| |
| • readBin() now warns if signed = FALSE is used inappropriately |
| (rather than being silently ignored). |
| |
| It enforces the documented limit of 2^31-1 bytes in a single |
| call. |
| |
| • PCRE has been updated to version 8.13, a bug-fix release with |
| updated Unicode tables (version 6.0.0). An additional patch |
| (r611 from PCRE 8.20-to-be) has been added to fix a collation |
| symbol recognition issue. |
| |
| INSTALLATION: |
| |
| • It is possible to build in src/extra/xdr on more platforms. |
| (Needed since glibc 2.14 hides its RPC implementation.) |
| |
| • configure will find the Sun TI-RPC implementation of xdr (in |
| libtirpc) provided its header files are in the search path: see |
| the ‘R Installation and Administration Manual’. |
| |
| PACKAGE INSTALLATION: |
| |
| • Using a broad exportPattern directive in a NAMESPACE file is no |
| longer allowed to export internal objects such as .onLoad and |
| .__S3MethodsTable__. . |
| |
| These are also excluded from imports, along with .First.lib. |
| |
| BUG FIXES: |
| |
| • fisher.test() had a buglet: If arguments were factors with unused |
| levels, levels were dropped and you would get an error saying |
| that there should be at least two levels, inconsistently with |
| pre-tabulated data. (Reported by Michael Fay). |
| |
| • package.skeleton() will no longer dump S4 objects supplied |
| directly rather than in a code file. These cannot be restored |
| correctly from the dumped version. |
| |
| • Build-time expressions in help files did not have access to |
| functions in the package being built (with R CMD build). |
| |
| • Because quote() did not mark its result as being in use, |
| modification of the result could in some circumstances modify the |
| original call. |
| |
| • Plotting pch = '.' now guarantees at least a one-pixel dot if cex |
| > 0. |
| |
| • The very-rarely-used command-line option --max-vsize was |
| incorrectly interpreted as a number of Vcells and not in bytes as |
| documented. (Spotted by Christophe Rhodes.) |
| |
| • The HTML generated by Rd2HTML() comes closer to being standards |
| compliant. |
| |
| • filter(x, recursive = TRUE) gave incorrect results on a series |
| containing NAs. (Spotted by Bill Dunlap.) |
| |
| • Profiling stats::mle() fits with a fixed parameter was not |
| supported. (PR#14646) |
| |
| • retracemem() was still using positional matching. (PR#14650) |
| |
| • The quantile method for "ecdf" objects now works and is |
| documented. |
| |
| • xtabs(~ .., ..., sparse=TRUE) now also works together with an |
| exclude = .. specification. |
| |
| • decompose() computed an incorrect seasonal component for time |
| series with odd frequencies. |
| |
| • The pdf() device only includes the definition of the sRGB |
| colorspace in the output file for the "rgb" colormodel (and not |
| for "gray" nor "cmyk"): this saves ca 9KB in the output file. |
| |
| • .hasSlot() wrongly gave FALSE in some cases. |
| |
| • Sweave() with keep.source=TRUE could generate spurious NA lines |
| when a chunk reference appeared last in a code chunk. |
| |
| • \Sexpr[results=rd] in an .Rd file now first tries |
| parse_Rd(fragment=FALSE) to allow Rd section-level macros to be |
| inserted. |
| |
| • The print() method for class "summary.aov" did not pass on |
| arguments such as signif.stars when summary() was called on a |
| single object. (PR#14684) |
| |
| • In rare cases ks.test() could return a p-value very slightly less |
| than 0 by rounding error. (PR#14671) |
| |
| • If trunc() was called on a "POSIXlt" vector and the result was |
| subsetted, all but the first element was converted to NA. |
| (PR#14679) |
| |
| • cbind() and rbind() could cause memory corruption when used on a |
| combination of raw and logical/integer vectors. |
| |
| CHANGES IN R VERSION 2.13.1: |
| |
| NEW FEATURES: |
| |
| • iconv() no longer translates NA strings as "NA". |
| |
| • persp(box = TRUE) now warns if the surface extends outside the |
| box (since occlusion for the box and axes is computed assuming |
| the box is a bounding box). (PR#202) |
| |
| • RShowDoc() can now display the licences shipped with R, e.g. |
| RShowDoc("GPL-3"). |
| |
| • New wrapper function showNonASCIIfile() in package tools. |
| |
| • nobs() now has a "mle" method in package stats4. |
| |
| • trace() now deals correctly with S4 reference classes and |
| corresponding reference methods (e.g., $trace()) have been added. |
| |
| • xz has been updated to 5.0.3 (very minor bugfix release). |
| |
| • tools::compactPDF() gets more compression (usually a little, |
| sometimes a lot) by using the compressed object streams of PDF |
| 1.5. |
| |
| • cairo_ps(onefile = TRUE) generates encapsulated EPS on platforms |
| with cairo >= 1.6. |
| |
| • Binary reads (e.g. by readChar() and readBin()) are now supported |
| on clipboard connections. (Wish of PR#14593.) |
| |
| • as.POSIXlt.factor() now passes ... to the character method |
| (suggestion of Joshua Ulrich). [Intended for R 2.13.0 but |
| accidentally removed before release.] |
| |
| • vector() and its wrappers such as integer() and double() now warn |
| if called with a length argument of more than one element. This |
| helps track down user errors such as calling double(x) instead of |
| as.double(x). |
| |
| INSTALLATION: |
| |
| • Building the vignette PDFs in packages grid and utils is now part |
| of running make from an SVN checkout on a Unix-alike: a separate |
| make vignettes step is no longer required. |
| |
| These vignettes are now made with keep.source = TRUE and hence |
| will be laid out differently. |
| |
| • make install-strip failed under some configuration options. |
| |
| • Packages can customize non-standard installation of compiled code |
| via a src/install.libs.R script. This allows packages that have |
| architecture-specific binaries (beyond the package's shared |
| objects/DLLs) to be installed in a multi-architecture setting. |
| |
| SWEAVE & VIGNETTES: |
| |
| • Sweave() and Stangle() gain an encoding argument to specify the |
| encoding of the vignette sources if the latter do not contain a |
| \usepackage[]{inputenc} statement specifying a single input |
| encoding. |
| |
| • There is a new Sweave option figs.only = TRUE to run each figure |
| chunk only for each selected graphics device, and not first using |
| the default graphics device. This will become the default in R |
| 2.14.0. |
| |
| • Sweave custom graphics devices can have a custom function |
| foo.off() to shut them down. |
| |
| • Warnings are issued when non-portable filenames are found for |
| graphics files (and chunks if split = TRUE). Portable names are |
| regarded as alphanumeric plus hyphen, underscore, plus and hash |
| (periods cause problems with recognizing file extensions). |
| |
| • The Rtangle() driver has a new option show.line.nos which is by |
| default false; if true it annotates code chunks with a comment |
| giving the line number of the first line in the sources (the |
| behaviour of R >= 2.12.0). |
| |
| • Package installation tangles the vignette sources: this step now |
| converts the vignette sources from the vignette/package encoding |
| to the current encoding, and records the encoding (if not ASCII) |
| in a comment line at the top of the installed .R file. |
| |
| LICENCE: |
| |
| • No parts of R are now licensed solely under GPL-2. The licences |
| for packages rpart and survival have been changed, which means |
| that the licence terms for R as distributed are GPL-2 | GPL-3. |
| |
| DEPRECATED AND DEFUNCT: |
| |
| • The internal functions .readRDS() and .saveRDS() are now |
| deprecated in favour of the public functions readRDS() and |
| saveRDS() introduced in R 2.13.0. |
| |
| • Switching off lazy-loading of code _via_ the LazyLoad field of |
| the DESCRIPTION file is now deprecated. In future all packages |
| will be lazy-loaded. |
| |
| • The off-line help() types "postscript" and "ps" are deprecated. |
| |
| UTILITIES: |
| |
| • R CMD check on a multi-architecture installation now skips the |
| user's .Renviron file for the architecture-specific tests (which |
| do read the architecture-specific Renviron.site files). This is |
| consistent with single-architecture checks, which use |
| --no-environ. |
| |
| • R CMD build now looks for DESCRIPTION fields BuildResaveData and |
| BuildKeepEmpty for per-package overrides. See ‘Writing R |
| Extensions’. |
| |
| BUG FIXES: |
| |
| • plot.lm(which = 5) was intended to order factor levels in |
| increasing order of mean standardized residual. It ordered the |
| factor labels correctly, but could plot the wrong group of |
| residuals against the label. (PR#14545) |
| |
| • mosaicplot() could clip the factor labels, and could overlap them |
| with the cells if a non-default value of cex.axis was used. |
| (Related to PR#14550.) |
| |
| • dataframe[[row,col]] now dispatches on [[ methods for the |
| selected column. (Spotted by Bill Dunlap). |
| |
| • sort.int() would strip the class of an object, but leave its |
| object bit set. (Reported by Bill Dunlap.) |
| |
| • pbirthday() and qbirthday() did not implement the algorithm |
| exactly as given in their reference and so were unnecessarily |
| inaccurate. |
| |
| pbirthday() now solves the approximate formula analytically |
| rather than using uniroot() on a discontinuous function. |
| |
| The description of the problem was inaccurate: the probability is |
| a tail probability (‘2 _or more_ people share a birthday’) |
| |
| • Complex arithmetic sometimes warned incorrectly about producing |
| NAs when there were NaNs in the input. |
| |
| • seek(origin = "current") incorrectly reported it was not |
| implemented for a gzfile() connection. |
| |
| • c(), unlist(), cbind() and rbind() could silently overflow the |
| maximum vector length and cause a segfault. (PR#14571) |
| |
| • The fonts argument to X11(type = "Xlib") was being ignored. |
| |
| • Reading (e.g. with readBin()) from a raw connection was not |
| advancing the pointer, so successive reads would read the same |
| value. (Spotted by Bill Dunlap.) |
| |
| • Parsed text containing embedded newlines was printed incorrectly |
| by as.character.srcref(). (Reported by Hadley Wickham.) |
| |
| • decompose() used with a series of a non-integer number of periods |
| returned a seasonal component shorter than the original series. |
| (Reported by Rob Hyndman.) |
| |
| • fields = list() failed for setRefClass(). (Reported by Michael |
| Lawrence.) |
| |
| • Reference classes could not redefine an inherited field which had |
| class "ANY". (Reported by Janko Thyson.) |
| |
| • Methods that override previously loaded versions will now be |
| installed and called. (Reported by Iago Mosqueira.) |
| |
| • addmargins() called numeric(apos) rather than |
| numeric(length(apos)). |
| |
| • The HTML help search sometimes produced bad links. (PR#14608) |
| |
| • Command completion will no longer be broken if tail.default() is |
| redefined by the user. (Problem reported by Henrik Bengtsson.) |
| |
| • LaTeX rendering of markup in titles of help pages has been |
| improved; in particular, \eqn{} may be used there. |
| |
| • isClass() used its own namespace as the default of the where |
| argument inadvertently. |
| |
| • Rd conversion to latex mishandled multi-line titles (including |
| cases where there was a blank line in the \title section). (It |
| seems this happened only in 2.13.0 patched.) |
| |
| • postscript() with an sRGB colormodel now uses sRGB for raster |
| images (in R 2.13.[01] it used uncalibrated RGB). |
| |
| There is no longer an undocumented 21845-pixel limit on raster |
| images. |
| |
| CHANGES IN R VERSION 2.13.0: |
| |
| SIGNIFICANT USER-VISIBLE CHANGES: |
| |
| • replicate() (by default) and vapply() (always) now return a |
| higher-dimensional array instead of a matrix in the case where |
| the inner function value is an array of dimension >= 2. |
| |
| • Printing and formatting of floating point numbers is now using |
| the correct number of digits, where it previously rarely differed |
| by a few digits. (See “scientific” entry below.) This affects |
| _many_ *.Rout.save checks in packages. |
| |
| NEW FEATURES: |
| |
| • normalizePath() has been moved to the base package (from utils): |
| this is so it can be used by library() and friends. |
| |
| It now does tilde expansion. |
| |
| It gains new arguments winslash (to select the separator on |
| Windows) and mustWork to control the action if a canonical path |
| cannot be found. |
| |
| • The previously barely documented limit of 256 bytes on a symbol |
| name has been raised to 10,000 bytes (a sanity check). Long |
| symbol names can sometimes occur when deparsing expressions (for |
| example, in model.frame). |
| |
| • reformulate() gains a intercept argument. |
| |
| • cmdscale(add = FALSE) now uses the more common definition that |
| there is a representation in n-1 or less dimensions, and only |
| dimensions corresponding to positive eigenvalues are used. |
| (Avoids confusion such as PR#14397.) |
| |
| • Names used by c(), unlist(), cbind() and rbind() are marked with |
| an encoding when this can be ascertained. |
| |
| • R colours are now defined to refer to the sRGB color space. |
| |
| The PDF, PostScript, and Quartz graphics devices record this |
| fact. X11 (and cairo) and Windows just assume that your screen |
| conforms. |
| |
| • system.file() gains a mustWork argument (suggestion of Bill |
| Dunlap). |
| |
| • new.env(hash = TRUE) is now the default. |
| |
| • list2env(envir = NULL) defaults to hashing (with a suitably sized |
| environment) for lists of more than 100 elements. |
| |
| • text() gains a formula method. |
| |
| • IQR() now has a type argument which is passed to quantile(). |
| |
| • as.vector(), as.double() etc duplicate less when they leave the |
| mode unchanged but remove attributes. |
| |
| as.vector(mode = "any") no longer duplicates when it does not |
| remove attributes. This helps memory usage in matrix() and |
| array(). |
| |
| matrix() duplicates less if data is an atomic vector with |
| attributes such as names (but no class). |
| |
| dim(x) <- NULL duplicates less if x has neither dimensions nor |
| names (since this operation removes names and dimnames). |
| |
| • setRepositories() gains an addURLs argument. |
| |
| • chisq.test() now also returns a stdres component, for |
| standardized residuals (which have unit variance, unlike the |
| Pearson residuals). |
| |
| • write.table() and friends gain a fileEncoding argument, to |
| simplify writing files for use on other OSes (e.g. a spreadsheet |
| intended for Windows or Mac OS X Excel). |
| |
| • Assignment expressions of the form foo::bar(x) <- y and |
| foo:::bar(x) <- y now work; the replacement functions used are |
| foo::`bar<-` and foo:::`bar<-`. |
| |
| • Sys.getenv() gains a names argument so Sys.getenv(x, names = |
| FALSE) can replace the common idiom of as.vector(Sys.getenv()). |
| The default has been changed to not name a length-one result. |
| |
| • Lazy loading of environments now preserves attributes and locked |
| status. (The locked status of bindings and active bindings are |
| still not preserved; this may be addressed in the future). |
| |
| • options("install.lock") may be set to FALSE so that |
| install.packages() defaults to --no-lock installs, or (on |
| Windows) to TRUE so that binary installs implement locking. |
| |
| • sort(partial = p) for large p now tries Shellsort if quicksort is |
| not appropriate and so works for non-numeric atomic vectors. |
| |
| • sapply() gets a new option simplify = "array" which returns a |
| “higher rank” array instead of just a matrix when FUN() returns a |
| dim() length of two or more. |
| |
| replicate() has this option set by default, and vapply() now |
| behaves that way internally. |
| |
| • aperm() becomes S3 generic and gets a table method which |
| preserves the class. |
| |
| • merge() and as.hclust() methods for objects of class "dendrogram" |
| are now provided. |
| |
| • The character method of as.POSIXlt() now tries to find a format |
| that works for all non-NA inputs, not just the first one. |
| |
| • str() now has a method for class "Date" analogous to that for |
| class "POSIXt". |
| |
| • New function file.link() to create hard links on those file |
| systems (POSIX, NTFS but not FAT) that support them. |
| |
| • New Summary() group method for class "ordered" implements min(), |
| max() and range() for ordered factors. |
| |
| • mostattributes<-() now consults the "dim" attribute and not the |
| dim() function, making it more useful for objects (such as data |
| frames) from classes with methods for dim(). It also uses |
| attr<-() in preference to the generics name<-(), dim<-() and |
| dimnames<-(). (Related to PR#14469.) |
| |
| • There is a new option "browserNLdisabled" to disable the use of |
| an empty (e.g. via the ‘Return’ key) as a synonym for c in |
| browser() or n under debug(). (Wish of PR#14472.) |
| |
| • example() gains optional new arguments character.only and |
| give.lines enabling programmatic exploration. |
| |
| • serialize() and unserialize() are no longer described as |
| ‘experimental’. The interface is now regarded as stable, |
| although the serialization format may well change in future |
| releases. (serialize() has a new argument version which would |
| allow the current format to be written if that happens.) |
| |
| New functions saveRDS() and readRDS() are public versions of the |
| ‘internal’ functions .saveRDS() and .readRDS() made available for |
| general use. The dot-name versions remain available as several |
| package authors have made use of them, despite the documentation. |
| readRDS() no longer wraps non-file connections in a call to |
| gzcon(), for efficiency (see its documentation). |
| |
| saveRDS() supports compress = "xz". |
| |
| • Many functions when called with a not-open connection will now |
| ensure that the connection is left not-open in the event of |
| error. These include read.dcf(), dput(), dump(), load(), |
| parse(), readBin(), readChar(), readLines(), save(), writeBin(), |
| writeChar(), writeLines(), .readRDS(), .saveRDS() and |
| tools::parse_Rd(), as well as functions calling these. |
| |
| • Public functions find.package() and path.package() replace the |
| internal dot-name versions. |
| |
| • The default method for terms() now looks for a "terms" attribute |
| if it does not find a "terms" component, and so works for model |
| frames. |
| |
| • httpd() handlers receive an additional argument containing the |
| full request headers as a raw vector (this can be used to parse |
| cookies, multi-part forms etc.). The recommended full signature |
| for handlers is therefore function(url, query, body, headers, |
| ...). |
| |
| • file.edit() gains a fileEncoding argument to specify the encoding |
| of the file(s). |
| |
| • The format of the HTML package listings has changed. If there is |
| more than one library tree , a table of links to libraries is |
| provided at the top and bottom of the page. Where a library |
| contains more than 100 packages, an alphabetic index is given at |
| the top of the section for that library. (As a consequence, |
| package names are now sorted case-insensitively whatever the |
| locale.) |
| |
| • isSeekable() now returns FALSE on connections which have |
| non-default encoding. Although documented to record if ‘in |
| principle’ the connection supports seeking, it seems safer to |
| report FALSE when it may not work. |
| |
| • R CMD REMOVE and remove.packages() now remove file R.css when |
| removing all remaining packages in a library tree. (Related to |
| the wish of PR#14475: note that this file is no longer |
| installed.) |
| |
| • unzip() now has a unzip argument like zip.file.extract(). This |
| allows an external unzip program to be used, which can be useful |
| to access features supported by Info-ZIP's unzip version 6 which |
| is now becoming more widely available. |
| |
| • There is a simple zip() function, as wrapper for an external zip |
| command. |
| |
| • bzfile() connections can now read from concatenated bzip2 files |
| (including files written with bzfile(open = "a")) and files |
| created by some other compressors (such as the example of |
| PR#14479). |
| |
| • The primitive function c() is now of type BUILTIN. |
| |
| • plot(<dendrogram>, .., nodePar=*) now obeys an optional xpd |
| specification (allowing clipping to be turned off completely). |
| |
| • nls(algorithm="port") now shares more code with nlminb(), and is |
| more consistent with the other nls() algorithms in its return |
| value. |
| |
| • xz has been updated to 5.0.1 (very minor bugfix release). |
| |
| • image() has gained a logical useRaster argument allowing it to |
| use a bitmap raster for plotting a regular grid instead of |
| polygons. This can be more efficient, but may not be supported by |
| all devices. The default is FALSE. |
| |
| • list.files()/dir() gains a new argument include.dirs() to include |
| directories in the listing when recursive = TRUE. |
| |
| • New function list.dirs() lists all directories, (even empty |
| ones). |
| |
| • file.copy() now (by default) copies read/write/execute |
| permissions on files, moderated by the current setting of |
| Sys.umask(). |
| |
| • Sys.umask() now accepts mode = NA and returns the current umask |
| value (visibly) without changing it. |
| |
| • There is a ! method for classes "octmode" and "hexmode": this |
| allows xor(a, b) to work if both a and b are from one of those |
| classes. |
| |
| • as.raster() no longer fails for vectors or matrices containing |
| NAs. |
| |
| • New hook "before.new.plot" allows functions to be run just before |
| advancing the frame in plot.new, which is potentially useful for |
| custom figure layout implementations. |
| |
| • Package tools has a new function compactPDF() to try to reduce |
| the size of PDF files _via_ qpdf or gs. |
| |
| • tar() has a new argument extra_flags. |
| |
| • dotchart() accepts more general objects x such as 1D tables which |
| can be coerced by as.numeric() to a numeric vector, with a |
| warning since that might not be appropriate. |
| |
| • The previously internal function create.post() is now exported |
| from utils, and the documentation for bug.report() and |
| help.request() now refer to that for create.post(). |
| |
| It has a new method = "mailto" on Unix-alikes similar to that on |
| Windows: it invokes a default mailer via open (Mac OS X) or |
| xdg-open or the default browser (elsewhere). |
| |
| The default for ccaddress is now getOption("ccaddress") which is |
| by default unset: using the username as a mailing address |
| nowadays rarely works as expected. |
| |
| • The default for options("mailer") is now "mailto" on all |
| platforms. |
| |
| • unlink() now does tilde-expansion (like most other file |
| functions). |
| |
| • file.rename() now allows vector arguments (of the same length). |
| |
| • The "glm" method for logLik() now returns an "nobs" attribute |
| (which stats4::BIC() assumed it did). |
| |
| The "nls" method for logLik() gave incorrect results for zero |
| weights. |
| |
| • There is a new generic function nobs() in package stats, to |
| extract from model objects a suitable value for use in BIC |
| calculations. An S4 generic derived from it is defined in |
| package stats4. |
| |
| • Code for S4 reference-class methods is now examined for possible |
| errors in non-local assignments. |
| |
| • findClasses, getGeneric, findMethods and hasMethods are revised |
| to deal consistently with the package= argument and be consistent |
| with soft namespace policy for finding objects. |
| |
| • tools::Rdiff() now has the option to return not only the status |
| but a character vector of observed differences (which are still |
| by default sent to stdout). |
| |
| • The startup environment variables R_ENVIRON_USER, R_ENVIRON, |
| R_PROFILE_USER and R_PROFILE are now treated more consistently. |
| In all cases an empty value is considered to be set and will stop |
| the default being used, and for the last two tilde expansion is |
| performed on the file name. (Note that setting an empty value is |
| probably impossible on Windows.) |
| |
| • Using R --no-environ CMD, R --no-site-file CMD or R |
| --no-init-file CMD sets environment variables so these settings |
| are passed on to child R processes, notably those run by INSTALL, |
| check and build. R --vanilla CMD sets these three options (but |
| not --no-restore). |
| |
| • smooth.spline() is somewhat faster. With cv=NA it allows some |
| leverage computations to be skipped, |
| |
| • The internal (C) function scientific(), at the heart of R's |
| format.info(x), format(x), print(x), etc, for numeric x, has been |
| re-written in order to provide slightly more correct results, |
| fixing PR#14491, notably in border cases including when digits >= |
| 16, thanks to substantial contributions (code and experiments) |
| from Petr Savicky. This affects a noticeable amount of numeric |
| output from R. |
| |
| • A new function grepRaw() has been introduced for finding subsets |
| of raw vectors. It supports both literal searches and regular |
| expressions. |
| |
| • Package compiler is now provided as a standard package. See |
| ?compiler::compile for information on how to use the compiler. |
| This package implements a byte code compiler for R: by default |
| the compiler is not used in this release. See the ‘R |
| Installation and Administration Manual’ for how to compile the |
| base and recommended packages. |
| |
| • Providing an exportPattern directive in a NAMESPACE file now |
| causes classes to be exported according to the same pattern, for |
| example the default from package.skeleton() to specify all names |
| starting with a letter. An explicit directive to |
| exportClassPattern will still over-ride. |
| |
| • There is an additional marked encoding "bytes" for character |
| strings. This is intended to be used for non-ASCII strings which |
| should be treated as a set of bytes, and never re-encoded as if |
| they were in the encoding of the current locale: useBytes = TRUE |
| is automatically selected in functions such as writeBin(), |
| writeLines(), grep() and strsplit(). |
| |
| Only a few character operations are supported (such as substr()). |
| |
| Printing, format() and cat() will represent non-ASCII bytes in |
| such strings by a \xab escape. |
| |
| • The new function removeSource() removes the internally stored |
| source from a function. |
| |
| • "srcref" attributes now include two additional line number |
| values, recording the line numbers in the order they were parsed. |
| |
| • New functions have been added for source reference access: |
| getSrcFilename(), getSrcDirectory(), getSrcLocation() and |
| getSrcref(). |
| |
| • Sys.chmod() has an extra argument use_umask which defaults to |
| true and restricts the file mode by the current setting of umask. |
| This means that all the R functions which manipulate |
| file/directory permissions by default respect umask, notably R |
| CMD INSTALL. |
| |
| • tempfile() has an extra argument fileext to create a temporary |
| filename with a specified extension. (Suggestion and initial |
| implementation by Dirk Eddelbuettel.) |
| |
| There are improvements in the way Sweave() and Stangle() handle |
| non-ASCII vignette sources, especially in a UTF-8 locale: see |
| ‘Writing R Extensions’ which now has a subsection on this topic. |
| |
| • factanal() now returns the rotation matrix if a rotation such as |
| "promax" is used, and hence factor correlations are displayed. |
| (Wish of PR#12754.) |
| |
| • The gctorture2() function provides a more refined interface to |
| the GC torture process. Environment variables R_GCTORTURE, |
| R_GCTORTURE_WAIT, and R_GCTORTURE_INHIBIT_RELEASE can also be |
| used to control the GC torture process. |
| |
| • file.copy(from, to) no longer regards it as an error to supply a |
| zero-length from: it now simply does nothing. |
| |
| • rstandard.glm() gains a type argument which can be used to |
| request standardized Pearson residuals. |
| |
| • A start on a Turkish translation, thanks to Murat Alkan. |
| |
| • .libPaths() calls normalizePath(winslash = "/") on the paths: |
| this helps (usually) to present them in a user-friendly form and |
| should detect duplicate paths accessed via different symbolic |
| links. |
| |
| • download.file() can be now used with external methods even if |
| there are spaces in the URL or the target filename. |
| |
| • The first formal argument of .C(), .Fortran(), .Call() and |
| .External() is now referred to a .NAME rather than name: however |
| actual calls should have an unnamed first argument. |
| |
| SWEAVE CHANGES: |
| |
| • Sweave() has options to produce PNG and JPEG figures, and to use |
| a custom function to open a graphics device (see ?RweaveLatex). |
| (Based in part on the contribution of PR#14418.) |
| |
| • The default for Sweave() is to produce only PDF figures (rather |
| than both EPS and PDF). |
| |
| • Environment variable SWEAVE_OPTIONS can be used to supply |
| defaults for existing or new options to be applied after the |
| Sweave driver setup has been run. |
| |
| • The Sweave manual is now included as a vignette in the utils |
| package. |
| |
| • Sweave() handles keep.source=TRUE much better: it could duplicate |
| some lines and omit comments. (Reported by John Maindonald and |
| others.) |
| |
| C-LEVEL FACILITIES: |
| |
| • Because they use a C99 interface which a C++ compiler is not |
| required to support, Rvprintf and REvprintf are only defined by |
| R_ext/Print.h in C++ code if the macro R_USE_C99_IN_CXX is |
| defined when it is included. |
| |
| • pythag duplicated the C99 function hypot. It is no longer |
| provided, but is used as a substitute for hypot in the very |
| unlikely event that the latter is not available. |
| |
| • R_inspect(obj) and R_inspect3(obj, deep, pvec) are (hidden) |
| C-level entry points to the internal inspect function and can be |
| used for C-level debugging (e.g., in conjunction with the p |
| command in gdb). |
| |
| • Compiling R with --enable-strict-barrier now also enables |
| additional checking for use of unprotected objects. In |
| combination with gctorture() or gctorture2() and a C-level |
| debugger this can be useful for tracking down memory protection |
| issues. |
| |
| UTILITIES: |
| |
| • R CMD Rdiff is now implemented in R on Unix-alikes (as it has |
| been on Windows since R 2.12.0). |
| |
| • R CMD build no longer does any cleaning in the supplied package |
| directory: all the cleaning is done in the copy. |
| |
| It has a new option --install-args to pass arguments to R CMD |
| INSTALL for --build (but not when installing to rebuild |
| vignettes). |
| |
| There is new option, --resave-data, to call |
| tools::resaveRdaFiles() on the data directory, to compress |
| tabular files (.tab, .csv etc) and to convert .R files to .rda |
| files. The default, --resave-data=gzip, is to do so in a way |
| compatible even with years-old versions of R, but better |
| compression is given by --resave-data=best, requiring R >= |
| 2.10.0. |
| |
| It now adds a datalist file for data directories of more than |
| 1Mb. |
| |
| Patterns in .Rbuildignore are now also matched against all |
| directory names (including those of empty directories). |
| |
| There is a new option, --compact-vignettes, to try reducing the |
| size of PDF files in the inst/doc directory. Currently this |
| tries qpdf: other options may be used in future. |
| |
| When re-building vignettes and a inst/doc/Makefile file is found, |
| make clean is run if the makefile has a clean: target. |
| |
| After re-building vignettes the default clean-up operation will |
| remove any directories (and not just files) created during the |
| process: e.g. one package created a .R_cache directory. |
| |
| Empty directories are now removed unless the option |
| --keep-empty-dirs is given (and a few packages do deliberately |
| include empty directories). |
| |
| If there is a field BuildVignettes in the package DESCRIPTION |
| file with a false value, re-building the vignettes is skipped. |
| |
| • R CMD check now also checks for filenames that are |
| case-insensitive matches to Windows' reserved file names with |
| extensions, such as nul.Rd, as these have caused problems on some |
| Windows systems. |
| |
| It checks for inefficiently saved data/*.rda and data/*.RData |
| files, and reports on those large than 100Kb. A more complete |
| check (including of the type of compression, but potentially much |
| slower) can be switched on by setting environment variable |
| _R_CHECK_COMPACT_DATA2_ to TRUE. |
| |
| The types of files in the data directory are now checked, as |
| packages are _still_ misusing it for non-R data files. |
| |
| It now extracts and runs the R code for each vignette in a |
| separate directory and R process: this is done in the package's |
| declared encoding. Rather than call tools::checkVignettes(), it |
| calls tools::buildVignettes() to see if the vignettes can be |
| re-built as they would be by R CMD build. Option --use-valgrind |
| now applies only to these runs, and not when running code to |
| rebuild the vignettes. This version does a much better job of |
| suppressing output from successful vignette tests. |
| |
| The 00check.log file is a more complete record of what is output |
| to stdout: in particular contains more details of the tests. |
| |
| It now checks all syntactically valid Rd usage entries, and warns |
| about assignments (unless these give the usage of replacement |
| functions). |
| |
| .tar.xz compressed tarballs are now allowed, if tar supports them |
| (and setting environment variable TAR to internal ensures so on |
| all platforms). |
| |
| • R CMD check now warns if it finds inst/doc/makefile, and R CMD |
| build renames such a file to inst/doc/Makefile. |
| |
| INSTALLATION: |
| |
| • Installing R no longer tries to find perl, and R CMD no longer |
| tries to substitute a full path for awk nor perl - this was a |
| legacy from the days when they were used by R itself. Because a |
| couple of packages do use awk, it is set as the make (rather than |
| environment) variable AWK. |
| |
| • make check will now fail if there are differences from the |
| reference output when testing package examples and if environment |
| variable R_STRICT_PACKAGE_CHECK is set to a true value. |
| |
| • The C99 double complex type is now required. |
| |
| The C99 complex trigonometric functions (such as csin) are not |
| currently required (FreeBSD lacks most of them): substitutes are |
| used if they are missing. |
| |
| • The C99 system call va_copy is now required. |
| |
| • If environment variable R_LD_LIBRARY_PATH is set during |
| configuration (for example in config.site) it is used unchanged |
| in file etc/ldpaths rather than being appended to. |
| |
| • configure looks for support for OpenMP and if found compiles R |
| with appropriate flags and also makes them available for use in |
| packages: see ‘Writing R Extensions’. |
| |
| This is currently experimental, and is only used in R with a |
| single thread for colSums() and colMeans(). Expect it to be more |
| widely used in later versions of R. |
| |
| This can be disabled by the --disable-openmp flag. |
| |
| PACKAGE INSTALLATION: |
| |
| • R CMD INSTALL --clean now removes copies of a src directory which |
| are created when multiple sub-architectures are in use. |
| (Following a comment from Berwin Turlach.) |
| |
| • File R.css is now installed on a per-package basis (in the |
| package's html directory) rather than in each library tree, and |
| this is used for all the HTML pages in the package. This helps |
| when installing packages with static HTML pages for use on a |
| webserver. It will also allow future versions of R to use |
| different stylesheets for the packages they install. |
| |
| • A top-level file .Rinstignore in the package sources can list (in |
| the same way as .Rbuildignore) files under inst that should not |
| be installed. (Why should there be any such files? Because all |
| the files needed to re-build vignettes need to be under inst/doc, |
| but they may not need to be installed.) |
| |
| • R CMD INSTALL has a new option --compact-docs to compact any PDFs |
| under the inst/doc directory. Currently this uses qpdf, which |
| must be installed (see ‘Writing R Extensions’). |
| |
| • There is a new option --lock which can be used to cancel the |
| effect of --no-lock or --pkglock earlier on the command line. |
| |
| • Option --pkglock can now be used with more than one package, and |
| is now the default if only one package is specified. |
| |
| • Argument lock of install.packages() can now be use for Mac binary |
| installs as well as for Windows ones. The value "pkglock" is now |
| accepted, as well as TRUE and FALSE (the default). |
| |
| • There is a new option --no-clean-on-error for R CMD INSTALL to |
| retain a partially installed package for forensic analysis. |
| |
| • Packages with names ending in . are not portable since Windows |
| does not work correctly with such directory names. This is now |
| warned about in R CMD check, and will not be allowed in R 2.14.x. |
| |
| • The vignette indices are more comprehensive (in the style of |
| browseVignetttes()). |
| |
| DEPRECATED & DEFUNCT: |
| |
| • require(save = TRUE) is defunct, and use of the save argument is |
| deprecated. |
| |
| • R CMD check --no-latex is defunct: use --no-manual instead. |
| |
| • R CMD Sd2Rd is defunct. |
| |
| • The gamma argument to hsv(), rainbow(), and rgb2hsv() is |
| deprecated and no longer has any effect. |
| |
| • The previous options for R CMD build --binary (--auto-zip, |
| --use-zip-data and --no-docs) are deprecated (or defunct): use |
| the new option --install-args instead. |
| |
| • When a character value is used for the EXPR argument in switch(), |
| only a single unnamed alternative value is now allowed. |
| |
| • The wrapper utils::link.html.help() is no longer available. |
| |
| • Zip-ing data sets in packages (and hence R CMD INSTALL options |
| --use-zip-data and --auto-zip, as well as the ZipData: yes field |
| in a DESCRIPTION file) is defunct. |
| |
| Installed packages with zip-ed data sets can still be used, but a |
| warning that they should be re-installed will be given. |
| |
| • The ‘experimental’ alternative specification of a namespace via |
| .Export() etc is now defunct. |
| |
| • The option --unsafe to R CMD INSTALL is deprecated: use the |
| identical option --no-lock instead. |
| |
| • The entry point pythag in Rmath.h is deprecated in favour of the |
| C99 function hypot. A wrapper for hypot is provided for R 2.13.x |
| only. |
| |
| • Direct access to the "source" attribute of functions is |
| deprecated; use deparse(fn, control="useSource") to access it, |
| and removeSource(fn) to remove it. |
| |
| • R CMD build --binary is now formally deprecated: R CMD INSTALL |
| --build has long been the preferred alternative. |
| |
| • Single-character package names are deprecated (and R is already |
| disallowed to avoid confusion in Depends: fields). |
| |
| BUG FIXES: |
| |
| • drop.terms and the [ method for class "terms" no longer add back |
| an intercept. (Reported by Niels Hansen.) |
| |
| • aggregate preserves the class of a column (e.g. a date) under |
| some circumstances where it discarded the class previously. |
| |
| • p.adjust() now always returns a vector result, as documented. In |
| previous versions it copied attributes (such as dimensions) from |
| the p argument: now it only copies names. |
| |
| • On PDF and PostScript devices, a line width of zero was recorded |
| verbatim and this caused problems for some viewers (a very thin |
| line combined with a non-solid line dash pattern could also cause |
| a problem). On these devices, the line width is now limited at |
| 0.01 and for very thin lines with complex dash patterns the |
| device may force the line dash pattern to be solid. (Reported by |
| Jari Oksanen.) |
| |
| • The str() method for class "POSIXt" now gives sensible output for |
| 0-length input. |
| |
| • The one- and two-argument complex maths functions failed to warn |
| if NAs were generated (as their numeric analogues do). |
| |
| • Added .requireCachedGenerics to the dont.mind list for library() |
| to avoid warnings about duplicates. |
| |
| • $<-.data.frame messed with the class attribute, breaking any S4 |
| subclass. The S4 data.frame class now has its own $<- method, |
| and turns dispatch on for this primitive. |
| |
| • Map() did not look up a character argument f in the correct |
| frame, thanks to lazy evaluation. (PR#14495) |
| |
| • file.copy() did not tilde-expand from and to when to was a |
| directory. (PR#14507) |
| |
| • It was possible (but very rare) for the loading test in R CMD |
| INSTALL to crash a child R process and so leave around a lock |
| directory and a partially installed package. That test is now |
| done in a separate process. |
| |
| • plot(<formula>, data=<matrix>,..) now works in more cases; |
| similarly for points(), lines() and text(). |
| |
| • edit.default() contained a manual dispatch for matrices (the |
| "matrix" class didn't really exist when it was written). This |
| caused an infinite recursion in the no-GUI case and has now been |
| removed. |
| |
| • data.frame(check.rows = TRUE) sometimes worked when it should |
| have detected an error. (PR#14530) |
| |
| • scan(sep= , strip.white=TRUE) sometimes stripped trailing spaces |
| from within quoted strings. (The real bug in PR#14522.) |
| |
| • The rank-correlation methods for cor() and cov() with use = |
| "complete.obs" computed the ranks before removing missing values, |
| whereas the documentation implied incomplete cases were removed |
| first. (PR#14488) |
| |
| They also failed for 1-row matrices. |
| |
| • The perpendicular adjustment used in placing text and expressions |
| in the margins of plots was not scaled by par("mex"). (Part of |
| PR#14532.) |
| |
| • Quartz Cocoa device now catches any Cocoa exceptions that occur |
| during the creation of the device window to prevent crashes. It |
| also imposes a limit of 144 ft^2 on the area used by a window to |
| catch user errors (unit misinterpretation) early. |
| |
| • The browser (invoked by debug(), browser() or otherwise) would |
| display attributes such as "wholeSrcref" that were intended for |
| internal use only. |
| |
| • R's internal filename completion now properly handles filenames |
| with spaces in them even when the readline library is used. This |
| resolves PR#14452 provided the internal filename completion is |
| used (e.g., by setting rc.settings(files = TRUE)). |
| |
| • Inside uniroot(f, ...), -Inf function values are now replaced by |
| a maximally *negative* value. |
| |
| • rowsum() could silently over/underflow on integer inputs |
| (reported by Bill Dunlap). |
| |
| • as.matrix() did not handle "dist" objects with zero rows. |
| |
| CHANGES IN R VERSION 2.12.2 patched: |
| |
| NEW FEATURES: |
| |
| • max() and min() work harder to ensure that NA has precedence over |
| NaN, so e.g. min(NaN, NA) is NA. (This was not previously |
| documented except for within a single numeric vector, where |
| compiler optimizations often defeated the code.) |
| |
| BUG FIXES: |
| |
| • A change to the C function R_tryEval had broken error messages in |
| S4 method selection; the error message is now printed. |
| |
| • PDF output with a non-RGB color model used RGB for the line |
| stroke color. (PR#14511) |
| |
| • stats4::BIC() assumed without checking that an object of class |
| "logLik" has an "nobs" attribute: glm() fits did not and so BIC() |
| failed for them. |
| |
| • In some circumstances a one-sided mantelhaen.test() reported the |
| p-value for the wrong tail. (PR#14514) |
| |
| • Passing the invalid value lty = NULL to axis() sent an invalid |
| value to the graphics device, and might cause the device to |
| segfault. |
| |
| • Sweave() with concordance=TRUE could lead to invalid PDF files; |
| Sweave.sty has been updated to avoid this. |
| |
| • Non-ASCII characters in the titles of help pages were not |
| rendered properly in some locales, and could cause errors or |
| warnings. |
| |
| • checkRd() gave a spurious error if the \href macro was used. |
| |
| CHANGES IN R VERSION 2.12.2: |
| |
| SIGNIFICANT USER-VISIBLE CHANGES: |
| |
| • Complex arithmetic (notably z^n for complex z and integer n) gave |
| incorrect results since R 2.10.0 on platforms without C99 complex |
| support. This and some lesser issues in trigonometric functions |
| have been corrected. |
| |
| Such platforms were rare (we know of Cygwin and FreeBSD). |
| However, because of new compiler optimizations in the way complex |
| arguments are handled, the same code was selected on x86_64 Linux |
| with gcc 4.5.x at the default -O2 optimization (but not at -O). |
| |
| • There is a workaround for crashes seen with several packages on |
| systems using zlib 1.2.5: see the INSTALLATION section. |
| |
| NEW FEATURES: |
| |
| • PCRE has been updated to 8.12 (two bug-fix releases since 8.10). |
| |
| • rep(), seq(), seq.int() and seq_len() report more often when the |
| first element is taken of an argument of incorrect length. |
| |
| • The Cocoa back-end for the quartz() graphics device on Mac OS X |
| provides a way to disable event loop processing temporarily |
| (useful, e.g., for forked instances of R). |
| |
| • kernel()'s default for m was not appropriate if coef was a set of |
| coefficients. (Reported by Pierre Chausse.) |
| |
| • bug.report() has been updated for the current R bug tracker, |
| which does not accept emailed submissions. |
| |
| • R CMD check now checks for the correct use of $(LAPACK_LIBS) (as |
| well as $(BLAS_LIBS)), since several CRAN recent submissions have |
| ignored ‘Writing R Extensions’. |
| |
| INSTALLATION: |
| |
| • The zlib sources in the distribution are now built with all |
| symbols remapped: this is intended to avoid problems seen with |
| packages such as XML and rggobi which link to zlib.so.1 on |
| systems using zlib 1.2.5. |
| |
| • The default for FFLAGS and FCFLAGS with gfortran on x86_64 Linux |
| has been changed back to -g -O2: however, setting -g -O may still |
| be needed for gfortran 4.3.x. |
| |
| PACKAGE INSTALLATION: |
| |
| • A LazyDataCompression field in the DESCRIPTION file will be used |
| to set the value for the --data-compress option of R CMD INSTALL. |
| |
| • Files R/sysdata.rda of more than 1Mb are now stored in the |
| lazyload database using xz compression: this for example halves |
| the installed size of package Imap. |
| |
| • R CMD INSTALL now ensures that directories installed from inst |
| have search permission for everyone. |
| |
| It no longer installs files inst/doc/Rplots.ps and |
| inst/doc/Rplots.pdf. These are almost certainly left-overs from |
| Sweave runs, and are often large. |
| |
| DEPRECATED & DEFUNCT: |
| |
| • The ‘experimental’ alternative specification of a namespace via |
| .Export() etc is now deprecated. |
| |
| • zip.file.extract() is now deprecated. |
| |
| • Zip-ing data sets in packages (and hence R CMD INSTALL |
| --use-zip-data and the ZipData: yes field in a DESCRIPTION file) |
| is deprecated: using efficiently compressed .rda images and |
| lazy-loading of data has superseded it. |
| |
| BUG FIXES: |
| |
| • identical() could in rare cases generate a warning about |
| non-pairlist attributes on CHARSXPs. As these are used for |
| internal purposes, the attribute check should be skipped. |
| (Reported by Niels Richard Hansen). |
| |
| • If the filename extension (usually .Rnw) was not included in a |
| call to Sweave(), source references would not work properly and |
| the keep.source option failed. (PR#14459) |
| |
| • format.data.frame() now keeps zero character column names. |
| |
| • pretty(x) no longer raises an error when x contains solely |
| non-finite values. (PR#14468) |
| |
| • The plot.TukeyHSD() function now uses a line width of 0.5 for its |
| reference lines rather than lwd = 0 (which caused problems for |
| some PDF and PostScript viewers). |
| |
| • The big.mark argument to prettyNum(), format(), etc. was inserted |
| reversed if it was more than one character long. |
| |
| • R CMD check failed to check the filenames under man for Windows' |
| reserved names. |
| |
| • The "Date" and "POSIXt" methods for seq() could overshoot when to |
| was supplied and by was specified in months or years. |
| |
| • The internal method of untar() now restores hard links as file |
| copies rather than symbolic links (which did not work for |
| cross-directory links). |
| |
| • unzip() did not handle zip files which contained filepaths with |
| two or more leading directories which were not in the zipfile and |
| did not already exist. (It is unclear if such zipfiles are valid |
| and the third-party C code used did not support them, but |
| PR#14462 created one.) |
| |
| • combn(n, m) now behaves more regularly for the border case m = 0. |
| (PR#14473) |
| |
| • The rendering of numbers in plotmath expressions (e.g. |
| expression(10^2)) used the current settings for conversion to |
| strings rather than setting the defaults, and so could be |
| affected by what has been done before. (PR#14477) |
| |
| • The methods of napredict() and naresid() for na.action = |
| na.exclude fits did not work correctly in the very rare event |
| that every case had been omitted in the fit. (Reported by Simon |
| Wood.) |
| |
| • weighted.residuals(drop0=TRUE) returned a vector when the |
| residuals were a matrix (e.g. those of class "mlm"). (Reported |
| by Bill Dunlap.) |
| |
| • Package HTML index files <pkg>/html/00Index.html were generated |
| with a stylesheet reference that was not correct for static |
| browsing in libraries. |
| |
| • ccf(na.action = na.pass) was not implemented. |
| |
| • The parser accepted some incorrect numeric constants, e.g. 20x2. |
| (Reported by Olaf Mersmann.) |
| |
| • format(*, zero.print) did not always replace the full zero parts. |
| |
| • Fixes for subsetting or subassignment of "raster" objects when |
| not both i and j are specified. |
| |
| • R CMD INSTALL was not always respecting the ZipData: yes field of |
| a DESCRIPTION file (although this is frequently incorrectly |
| specified for packages with no data or which specify lazy-loading |
| of data). |
| |
| R CMD INSTALL --use-zip-data was incorrectly implemented as |
| --use-zipdata since R 2.9.0. |
| |
| • source(file, echo=TRUE) could fail if the file contained #line |
| directives. It now recovers more gracefully, but may still |
| display the wrong line if the directive gives incorrect |
| information. |
| |
| • atan(1i) returned NaN+Infi (rather than 0+Infi) on platforms |
| without C99 complex support. |
| |
| • library() failed to cache S4 metadata (unlike loadNamespace()) |
| causing failures in S4-using packages without a namespace (e.g. |
| those using reference classes). |
| |
| • The function qlogis(lp, log.p=TRUE) no longer prematurely |
| overflows to Inf when exp(lp) is close to 1. |
| |
| • Updating S4 methods for a group generic function requires |
| resetting the methods tables for the members of the group (patch |
| contributed by Martin Morgan). |
| |
| • In some circumstances (including for package XML), R CMD INSTALL |
| installed version-control directories from source packages. |
| |
| • Added PROTECT calls to some constructed expressions used in C |
| level eval calls. |
| |
| • utils:::create.post() (used by bug.report() and help.request()) |
| failed to quote arguments to the mailer, and so often failed. |
| |
| • bug.report() was naive about how to extract maintainer email |
| addresses from package descriptions, so would often try mailing |
| to incorrect addresses. |
| |
| • debugger() could fail to read the environment of a call to a |
| function with a ... argument. (Reported by Charlie Roosen.) |
| |
| • prettyNum(c(1i, NA), drop0=TRUE) or str(NA_complex_) now work |
| correctly. |
| |
| CHANGES IN R VERSION 2.12.1: |
| |
| NEW FEATURES: |
| |
| • The DVI/PDF reference manual now includes the help pages for all |
| the standard packages: splines, stats4 and tcltk were previously |
| omitted (intentionally). |
| |
| • <URL: http://www.rforge.net> has been added to the default set of |
| repositories known to setRepositories(). |
| |
| • xz-utils has been updated to version 5.0.0. |
| |
| • reshape() now makes use of sep when forming names during |
| reshaping to wide format. (PR#14435) |
| |
| • legend() allows the length of lines to be set by the end user |
| _via_ the new argument seg.len. |
| |
| • New S4 reference class utility methods copy(), field(), |
| getRefClass() and getClass() have been added to package methods. |
| |
| • When a character value is used for the EXPR argument in switch(), |
| a warning is given if more than one unnamed alternative value is |
| given. This will become an error in R 2.13.0. |
| |
| • StructTS(type = "BSM") now allows series with just two seasons. |
| (Reported by Birgit Erni.) |
| |
| INSTALLATION: |
| |
| • The PDF reference manual is now built as PDF version 1.5 with |
| object compression, which on platforms for which this is not the |
| default (notably MiKTeX) halves its size. |
| |
| • Variable FCLIBS can be set during configuration, for any |
| additional library flags needed when linking a shared object with |
| the Fortran 9x compiler. (Needed with Solaris Studio 12.2.) |
| |
| BUG FIXES: |
| |
| • seq.int() no longer sometimes evaluates arguments twice. |
| (PR#14388) |
| |
| • The data.frame method of format() failed if a column name was |
| longer than 256 bytes (the maximum length allowed for an R name). |
| |
| • predict(<lm object>, type ="terms", ...) failed if both terms and |
| interval were specified. (Reported by Bill Dunlap.) |
| |
| Also, if se.fit = TRUE the standard errors were reported for all |
| terms, not just those selected by a non-null terms. |
| |
| • The TRE regular expressions engine could terminate R rather than |
| give an error when given certain invalid regular expressions. |
| (PR#14398) |
| |
| • cmdscale(eig = TRUE) was documented to return n-1 eigenvalues but |
| in fact only returned k. It now returns all n eigenvalues. |
| |
| cmdscale(add = TRUE) failed to centre the return configuration |
| and sometimes lost the labels on the points. Its return value |
| was described wrongly (it is always a list and contains component |
| ac). |
| |
| • promptClass() in package methods now works for reference classes |
| and gives a suitably specialized skeleton of documentation. |
| |
| Also, callSuper() now works via the methods() invocation as well |
| as for initially specified methods. |
| |
| • download.file() could leave the destination file open if the URL |
| was not able to be opened. (PR#14414) |
| |
| • Assignment of an environment to functions or as an attribute to |
| other objects now works for S4 subclasses of "environment". |
| |
| • Use of [[<- for S4 subclasses of "environment" generated an |
| infinite recursion from the method. The method has been replaced |
| by internal code. |
| |
| • In a reference class S4 method, callSuper() now works in |
| initialize() methods when there is no explicit superclass method. |
| |
| • ! dropped attributes such as names and dimensions from a |
| length-zero argument. (PR#14424) |
| |
| • When list2env() created an environment it was missing a PROTECT |
| call and so was vulnerable to garbage collection. |
| |
| • Sweave() with keep.source=TRUE dropped comments at the start and |
| end of code chunks. It could also fail when \SweaveInput was |
| combined with named chunks. |
| |
| • The Fortran code used by nls(algorithm = "port") could |
| infinite-loop when compiled with high optimization on a modern |
| version of gcc, and SAFE_FFLAGS is now used to make this less |
| likely. (PR#14427, seen with 32-bit Windows using gcc 4.5.0 used |
| from R 2.12.0.) |
| |
| • sapply() with default simplify = TRUE and mapply() with default |
| SIMPLIFY = TRUE wrongly simplified language-like results, as, |
| e.g., in mapply(1:2, c(3,7), FUN = function(i,j) call(':',i,j)). |
| |
| • Backreferences to undefined patterns in [g]sub(pcre = TRUE) could |
| cause a segfault. (PR#14431) |
| |
| • The format() (and hence the print()) method for class "Date" |
| rounded fractional dates towards zero: it now always rounds them |
| down. |
| |
| • Reference S4 class creation could generate ambiguous inheritance |
| patterns under very special circumstances. |
| |
| • [[<- turned S4 subclasses of "environment" into plain |
| environments. |
| |
| • Long titles for help pages were truncated in package indices and |
| a few other places. |
| |
| • Additional utilities now work correctly with S4 subclasses of |
| "environment" (rm, locking tools and active bindings). |
| |
| • spec.ar() now also work for the "ols" method. (Reported by |
| Hans-Ruedi Kuensch.) |
| |
| • The initialization of objects from S4 subclasses of "environment" |
| now allocates a new environment object. |
| |
| • R CMD check has more protection against (probably erroneous) |
| example or test output which is invalid in the current locale. |
| |
| • qr.X() with column names and pivoting now also pivots the column |
| names. (PR#14438) |
| |
| • unit.pmax() and unit.pmin() in package grid gave incorrect |
| results when all inputs were of length 1. (PR#14443) |
| |
| • The parser for NAMESPACE files ignored misspelled directives, |
| rather than signalling an error. For 2.12.x a warning will be |
| issued, but this will be correctly reported as an error in later |
| releases. (Reported by Charles Berry.) |
| |
| • Fix for subsetting of "raster" objects when only one of i or j is |
| specified. |
| |
| • grid.raster() in package grid did not accept "nativeRaster" |
| objects (like rasterImage() does). |
| |
| • Rendering raster images in PDF output was resetting the clipping |
| region. |
| |
| • Rendering of raster images on cairo X11 device was wrong, |
| particularly when a small image was being scaled up using |
| interpolation. |
| |
| With cairo < 1.6, will be better than before, though still a |
| little clunky. With cairo >= 1.6, should be sweet as. |
| |
| • Several bugs fixed in read.DIF(): single column inputs caused |
| errors, cells marked as "character" could be converted to other |
| types, and (in Windows) copying from the clipboard failed. |
| |
| CHANGES IN R VERSION 2.12.0: |
| |
| NEW FEATURES: |
| |
| • Reading a package's CITATION file now defaults to ASCII rather |
| than Latin-1: a package with a non-ASCII CITATION file should |
| declare an encoding in its DESCRIPTION file and use that encoding |
| for the CITATION file. |
| |
| • difftime() now defaults to the "tzone" attribute of "POSIXlt" |
| objects rather than to the current timezone as set by the default |
| for the tz argument. (Wish of PR#14182.) |
| |
| • pretty() is now generic, with new methods for "Date" and "POSIXt" |
| classes (based on code contributed by Felix Andrews). |
| |
| • unique() and match() are now faster on character vectors where |
| all elements are in the global CHARSXP cache and have unmarked |
| encoding (ASCII). Thanks to Matthew Dowle for suggesting |
| improvements to the way the hash code is generated in unique.c. |
| |
| • The enquote() utility, in use internally, is exported now. |
| |
| • .C() and .Fortran() now map non-zero return values (other than |
| NA_LOGICAL) for logical vectors to TRUE: it has been an implicit |
| assumption that they are treated as true. |
| |
| • The print() methods for "glm" and "lm" objects now insert |
| linebreaks in long calls in the same way that the print() methods |
| for "summary.[g]lm" objects have long done. This does change the |
| layout of the examples for a number of packages, e.g. MASS. |
| (PR#14250) |
| |
| • constrOptim() can now be used with method "SANN". (PR#14245) |
| |
| It gains an argument hessian to be passed to optim(), which |
| allows all the ... arguments to be intended for f() and grad(). |
| (PR#14071) |
| |
| • curve() now allows expr to be an object of mode "expression" as |
| well as "call" and "function". |
| |
| • The "POSIX[cl]t" methods for Axis() have been replaced by a |
| single method for "POSIXt". |
| |
| There are no longer separate plot() methods for "POSIX[cl]t" and |
| "Date": the default method has been able to handle those classes |
| for a long time. This _inter alia_ allows a single date-time |
| object to be supplied, the wish of PR#14016. |
| |
| The methods had a different default ("") for xlab. |
| |
| • Classes "POSIXct", "POSIXlt" and "difftime" have generators |
| .POSIXct(), .POSIXlt() and .difftime(). Package authors are |
| advised to make use of them (they are available from R 2.11.0) to |
| proof against planned future changes to the classes. |
| |
| The ordering of the classes has been changed, so "POSIXt" is now |
| the second class. See the document ‘Updating packages for |
| changes in R 2.12.x’ on <URL: http://developer.r-project.org> for |
| the consequences for a handful of CRAN packages. |
| |
| • The "POSIXct" method of as.Date() allows a timezone to be |
| specified (but still defaults to UTC). |
| |
| • New list2env() utility function as an inverse of |
| as.list(<environment>) and for fast multi-assign() to existing |
| environment. as.environment() is now generic and uses list2env() |
| as list method. |
| |
| • There are several small changes to output which ‘zap’ small |
| numbers, e.g. in printing quantiles of residuals in summaries |
| from "lm" and "glm" fits, and in test statistics in |
| print.anova(). |
| |
| • Special names such as "dim", "names", etc, are now allowed as |
| slot names of S4 classes, with "class" the only remaining |
| exception. |
| |
| • File .Renviron can have architecture-specific versions such as |
| .Renviron.i386 on systems with sub-architectures. |
| |
| • installed.packages() has a new argument subarch to filter on |
| sub-architecture. |
| |
| • The summary() method for packageStatus() now has a separate |
| print() method. |
| |
| • The default summary() method returns an object inheriting from |
| class "summaryDefault" which has a separate print() method that |
| calls zapsmall() for numeric/complex values. |
| |
| • The startup message now includes the platform and if used, |
| sub-architecture: this is useful where different |
| (sub-)architectures run on the same OS. |
| |
| • The getGraphicsEvent() mechanism now allows multiple windows to |
| return graphics events, through the new functions |
| setGraphicsEventHandlers(), setGraphicsEventEnv(), and |
| getGraphicsEventEnv(). (Currently implemented in the windows() |
| and X11() devices.) |
| |
| • tools::texi2dvi() gains an index argument, mainly for use by R |
| CMD Rd2pdf. |
| |
| It avoids the use of texindy by texinfo's texi2dvi >= 1.157, |
| since that does not emulate 'makeindex' well enough to avoid |
| problems with special characters (such as (, {, !) in indices. |
| |
| • The ability of readLines() and scan() to re-encode inputs to |
| marked UTF-8 strings on Windows since R 2.7.0 is extended to |
| non-UTF-8 locales on other OSes. |
| |
| • scan() gains a fileEncoding argument to match read.table(). |
| |
| • points() and lines() gain "table" methods to match plot(). (Wish |
| of PR#10472.) |
| |
| • Sys.chmod() allows argument mode to be a vector, recycled along |
| paths. |
| |
| • There are |, & and xor() methods for classes "octmode" and |
| "hexmode", which work bitwise. |
| |
| • Environment variables R_DVIPSCMD, R_LATEXCMD, R_MAKEINDEXCMD, |
| R_PDFLATEXCMD are no longer used nor set in an R session. (With |
| the move to tools::texi2dvi(), the conventional environment |
| variables LATEX, MAKEINDEX and PDFLATEX will be used. |
| options("dvipscmd") defaults to the value of DVIPS, then to |
| "dvips".) |
| |
| • New function isatty() to see if terminal connections are |
| redirected. |
| |
| • summaryRprof() returns the sampling interval in component |
| sample.interval and only returns in by.self data for functions |
| with non-zero self times. |
| |
| • print(x) and str(x) now indicate if an empty list x is named. |
| |
| • install.packages() and remove.packages() with lib unspecified and |
| multiple libraries in .libPaths() inform the user of the library |
| location used with a message rather than a warning. |
| |
| • There is limited support for multiple compressed streams on a |
| file: all of [bgx]zfile() allow streams to be appended to an |
| existing file, but bzfile() reads only the first stream. |
| |
| • Function person() in package utils now uses a given/family scheme |
| in preference to first/middle/last, is vectorized to handle an |
| arbitrary number of persons, and gains a role argument to specify |
| person roles using a controlled vocabulary (the MARC relator |
| terms). |
| |
| • Package utils adds a new "bibentry" class for representing and |
| manipulating bibliographic information in enhanced BibTeX style, |
| unifying and enhancing the previously existing mechanisms. |
| |
| • A bibstyle() function has been added to the tools package with |
| default JSS style for rendering "bibentry" objects, and a |
| mechanism for registering other rendering styles. |
| |
| • Several aspects of the display of text help are now customizable |
| using the new Rd2txt_options() function. |
| options("help_text_width") is no longer used. |
| |
| • Added \href tag to the Rd format, to allow hyperlinks to URLs |
| without displaying the full URL. |
| |
| • Added \newcommand and \renewcommand tags to the Rd format, to |
| allow user-defined macros. |
| |
| • New toRd() generic in the tools package to convert objects to |
| fragments of Rd code, and added "fragment" argument to Rd2txt(), |
| Rd2HTML(), and Rd2latex() to support it. |
| |
| • Directory R_HOME/share/texmf now follows the TDS conventions, so |
| can be set as a texmf tree (‘root directory’ in MiKTeX parlance). |
| |
| • S3 generic functions now use correct S4 inheritance when |
| dispatching on an S4 object. See ?Methods, section on “Methods |
| for S3 Generic Functions” for recommendations and details. |
| |
| • format.pval() gains a ... argument to pass arguments such as |
| nsmall to format(). (Wish of PR#9574) |
| |
| • legend() supports title.adj. (Wish of PR#13415) |
| |
| • Added support for subsetting "raster" objects, plus assigning to |
| a subset, conversion to a matrix (of colour strings), and |
| comparisons (== and !=). |
| |
| • Added a new parseLatex() function (and related functions |
| deparseLatex() and latexToUtf8()) to support conversion of |
| bibliographic entries for display in R. |
| |
| • Text rendering of \itemize in help uses a Unicode bullet in UTF-8 |
| and most single-byte Windows locales. |
| |
| • Added support for polygons with holes to the graphics engine. |
| This is implemented for the pdf(), postscript(), |
| x11(type="cairo"), windows(), and quartz() devices (and |
| associated raster formats), but not for x11(type="Xlib") or |
| xfig() or pictex(). The user-level interface is the polypath() |
| function in graphics and grid.path() in grid. |
| |
| • File NEWS is now generated at installation with a slightly |
| different format: it will be in UTF-8 on platforms using UTF-8, |
| and otherwise in ASCII. There is also a PDF version, NEWS.pdf, |
| installed at the top-level of the R distribution. |
| |
| • kmeans(x, 1) now works. Further, kmeans now returns between and |
| total sum of squares. |
| |
| • arrayInd() and which() gain an argument useNames. For arrayInd, |
| the default is now false, for speed reasons. |
| |
| • As is done for closures, the default print method for the formula |
| class now displays the associated environment if it is not the |
| global environment. |
| |
| • A new facility has been added for inserting code into a package |
| without re-installing it, to facilitate testing changes which can |
| be selectively added and backed out. See ?insertSource. |
| |
| • New function readRenviron to (re-)read files in the format of |
| ~/.Renviron and Renviron.site. |
| |
| • require() will now return FALSE (and not fail) if loading the |
| package or one of its dependencies fails. |
| |
| • aperm() now allows argument perm to be a character vector when |
| the array has named dimnames (as the results of table() calls |
| do). Similarly, array() allows MARGIN to be a character vector. |
| (Based on suggestions of Michael Lachmann.) |
| |
| • Package utils now exports and documents functions |
| aspell_package_Rd_files() and aspell_package_vignettes() for |
| spell checking package Rd files and vignettes using Aspell, |
| Ispell or Hunspell. |
| |
| • Package news can now be given in Rd format, and news() prefers |
| these inst/NEWS.Rd files to old-style plain text NEWS or |
| inst/NEWS files. |
| |
| • New simple function packageVersion(). |
| |
| • The PCRE library has been updated to version 8.10. |
| |
| • The standard Unix-alike terminal interface declares its name to |
| readline as 'R', so that can be used for conditional sections in |
| ~/.inputrc files. |
| |
| • ‘Writing R Extensions’ now stresses that the standard sections in |
| .Rd files (other than \alias, \keyword and \note) are intended to |
| be unique, and the conversion tools now drop duplicates with a |
| warning. |
| |
| The .Rd conversion tools also warn about an unrecognized type in |
| a \docType section. |
| |
| • ecdf() objects now have a quantile() method. |
| |
| • format() methods for date-time objects now attempt to make use of |
| a "tzone" attribute with "%Z" and "%z" formats, but it is not |
| always possible. (Wish of PR#14358.) |
| |
| • tools::texi2dvi(file, clean = TRUE) now works in more cases (e.g. |
| where emulation is used and when file is not in the current |
| directory). |
| |
| • New function droplevels() to remove unused factor levels. |
| |
| • system(command, intern = TRUE) now gives an error on a Unix-alike |
| (as well as on Windows) if command cannot be run. It reports a |
| non-success exit status from running command as a warning. |
| |
| On a Unix-alike an attempt is made to return the actual exit |
| status of the command in system(intern = FALSE): previously this |
| had been system-dependent but on POSIX-compliant systems the |
| value return was 256 times the status. |
| |
| • system() has a new argument ignore.stdout which can be used to |
| (portably) ignore standard output. |
| |
| • system(intern = TRUE) and pipe() connections are guaranteed to be |
| available on all builds of R. |
| |
| • Sys.which() has been altered to return "" if the command is not |
| found (even on Solaris). |
| |
| • A facility for defining reference-based S4 classes (in the OOP |
| style of Java, C++, etc.) has been added experimentally to |
| package methods; see ?ReferenceClasses. |
| |
| • The predict method for "loess" fits gains an na.action argument |
| which defaults to na.pass rather than the previous default of |
| na.omit. |
| |
| Predictions from "loess" fits are now named from the row names of |
| newdata. |
| |
| • Parsing errors detected during Sweave() processing will now be |
| reported referencing their original location in the source file. |
| |
| • New adjustcolor() utility, e.g., for simple translucent color |
| schemes. |
| |
| • qr() now has a trivial lm method with a simple (fast) validity |
| check. |
| |
| • An experimental new programming model has been added to package |
| methods for reference (OOP-style) classes and methods. See |
| ?ReferenceClasses. |
| |
| • bzip2 has been updated to version 1.0.6 (bug-fix release). |
| --with-system-bzlib now requires at least version 1.0.6. |
| |
| • R now provides jss.cls and jss.bst (the class and bib style file |
| for the Journal of Statistical Software) as well as RJournal.bib |
| and Rnews.bib, and R CMD ensures that the .bst and .bib files are |
| found by BibTeX. |
| |
| • Functions using the TAR environment variable no longer quote the |
| value when making system calls. This allows values such as tar |
| --force-local, but does require additional quotes in, e.g., TAR = |
| "'/path with spaces/mytar'". |
| |
| DEPRECATED & DEFUNCT: |
| |
| • Supplying the parser with a character string containing both |
| octal/hex and Unicode escapes is now an error. |
| |
| • File extension .C for C++ code files in packages is now defunct. |
| |
| • R CMD check no longer supports configuration files containing |
| Perl configuration variables: use the environment variables |
| documented in ‘R Internals’ instead. |
| |
| • The save argument of require() now defaults to FALSE and save = |
| TRUE is now deprecated. (This facility is very rarely actually |
| used, and was superseded by the Depends field of the DESCRIPTION |
| file long ago.) |
| |
| • R CMD check --no-latex is deprecated in favour of --no-manual. |
| |
| • R CMD Sd2Rd is formally deprecated and will be removed in R |
| 2.13.0. |
| |
| PACKAGE INSTALLATION: |
| |
| • install.packages() has a new argument libs_only to optionally |
| pass --libs-only to R CMD INSTALL and works analogously for |
| Windows binary installs (to add support for 64- or 32-bit |
| Windows). |
| |
| • When sub-architectures are in use, the installed architectures |
| are recorded in the Archs field of the DESCRIPTION file. There |
| is a new default filter, "subarch", in available.packages() to |
| make use of this. |
| |
| Code is compiled in a copy of the src directory when a package is |
| installed for more than one sub-architecture: this avoid problems |
| with cleaning the sources between building sub-architectures. |
| |
| • R CMD INSTALL --libs-only no longer overrides the setting of |
| locking, so a previous version of the package will be restored |
| unless --no-lock is specified. |
| |
| UTILITIES: |
| |
| • R CMD Rprof|build|check are now based on R rather than Perl |
| scripts. The only remaining Perl scripts are the deprecated R |
| CMD Sd2Rd and install-info.pl (used only if install-info is not |
| found) as well as some maintainer-mode-only scripts. |
| |
| *NB:* because these have been completely rewritten, users should |
| not expect undocumented details of previous implementations to |
| have been duplicated. |
| |
| R CMD no longer manipulates the environment variables PERL5LIB |
| and PERLLIB. |
| |
| • R CMD check has a new argument --extra-arch to confine tests to |
| those needed to check an additional sub-architecture. |
| |
| Its check for “Subdirectory 'inst' contains no files” is more |
| thorough: it looks for files, and warns if there are only empty |
| directories. |
| |
| Environment variables such as R_LIBS and those used for |
| customization can be set for the duration of checking _via_ a |
| file ~/.R/check.Renviron (in the format used by .Renviron, and |
| with sub-architecture specific versions such as |
| ~/.R/check.Renviron.i386 taking precedence). |
| |
| There are new options --multiarch to check the package under all |
| of the installed sub-architectures and --no-multiarch to confine |
| checking to the sub-architecture under which check is invoked. |
| If neither option is supplied, a test is done of installed |
| sub-architectures and all those which can be run on the current |
| OS are used. |
| |
| Unless multiple sub-architectures are selected, the install done |
| by check for testing purposes is only of the current |
| sub-architecture (_via_ R CMD INSTALL --no-multiarch). |
| |
| It will skip the check for non-ascii characters in code or data |
| if the environment variables _R_CHECK_ASCII_CODE_ or |
| _R_CHECK_ASCII_DATA_ are respectively set to FALSE. (Suggestion |
| of Vince Carey.) |
| |
| • R CMD build no longer creates an INDEX file (R CMD INSTALL does |
| so), and --force removes (rather than overwrites) an existing |
| INDEX file. |
| |
| It supports a file ~/.R/build.Renviron analogously to check. |
| |
| It now runs build-time \Sexpr expressions in help files. |
| |
| • R CMD Rd2dvi makes use of tools::texi2dvi() to process the |
| package manual. It is now implemented entirely in R (rather than |
| partially as a shell script). |
| |
| • R CMD Rprof now uses utils::summaryRprof() rather than Perl. It |
| has new arguments to select one of the tables and to limit the |
| number of entries printed. |
| |
| • R CMD Sweave now runs R with --vanilla so the environment setting |
| of R_LIBS will always be used. |
| |
| C-LEVEL FACILITIES: |
| |
| • lang5() and lang6() (in addition to pre-existing lang[1-4]()) |
| convenience functions for easier construction of eval() calls. |
| If you have your own definition, do wrap it inside #ifndef lang5 |
| .... #endif to keep it working with old and new R. |
| |
| • Header R.h now includes only the C headers it itself needs, hence |
| no longer includes errno.h. (This helps avoid problems when it |
| is included from C++ source files.) |
| |
| • Headers Rinternals.h and R_ext/Print.h include the C++ versions |
| of stdio.h and stdarg.h respectively if included from a C++ |
| source file. |
| |
| INSTALLATION: |
| |
| • A C99 compiler is now required, and more C99 language features |
| will be used in the R sources. |
| |
| • Tcl/Tk >= 8.4 is now required (increased from 8.3). |
| |
| • System functions access, chdir and getcwd are now essential to |
| configure R. (In practice they have been required for some |
| time.) |
| |
| • make check compares the output of the examples from several of |
| the base packages to reference output rather than the previous |
| output (if any). Expect some differences due to differences in |
| floating-point computations between platforms. |
| |
| • File NEWS is no longer in the sources, but generated as part of |
| the installation. The primary source for changes is now |
| doc/NEWS.Rd. |
| |
| • The popen system call is now required to build R. This ensures |
| the availability of system(intern = TRUE), pipe() connections and |
| printing from postscript(). |
| |
| • The pkg-config file libR.pc now also works when R is installed |
| using a sub-architecture. |
| |
| • R has always required a BLAS that conforms to IE60559 arithmetic, |
| but after discovery of more real-world problems caused by a BLAS |
| that did not, this is tested more thoroughly in this version. |
| |
| BUG FIXES: |
| |
| • Calls to selectMethod() by default no longer cache inherited |
| methods. This could previously corrupt methods used by as(). |
| |
| • The densities of non-central chi-squared are now more accurate in |
| some cases in the extreme tails, e.g. dchisq(2000, 2, 1000), as a |
| series expansion was truncated too early. (PR#14105) |
| |
| • pt() is more accurate in the left tail for ncp large, e.g. |
| pt(-1000, 3, 200). (PR#14069) |
| |
| • The default C function (R_binary) for binary ops now sets the S4 |
| bit in the result if either argument is an S4 object. (PR#13209) |
| |
| • source(echo=TRUE) failed to echo comments that followed the last |
| statement in a file. |
| |
| • S4 classes that contained one of "matrix", "array" or "ts" and |
| also another class now accept superclass objects in new(). Also |
| fixes failure to call validObject() for these classes. |
| |
| • Conditional inheritance defined by argument test in |
| methods::setIs() will no longer be used in S4 method selection |
| (caching these methods could give incorrect results). See |
| ?setIs. |
| |
| • The signature of an implicit generic is now used by setGeneric() |
| when that does not use a definition nor explicitly set a |
| signature. |
| |
| • A bug in callNextMethod() for some examples with "..." in the |
| arguments has been fixed. See file |
| src/library/methods/tests/nextWithDots.R in the sources. |
| |
| • match(x, table) (and hence %in%) now treat "POSIXlt" consistently |
| with, e.g., "POSIXct". |
| |
| • Built-in code dealing with environments (get(), assign(), |
| parent.env(), is.environment() and others) now behave |
| consistently to recognize S4 subclasses; is.name() also |
| recognizes subclasses. |
| |
| • The abs.tol control parameter to nlminb() now defaults to 0.0 to |
| avoid false declarations of convergence in objective functions |
| that may go negative. |
| |
| • The standard Unix-alike termination dialog to ask whether to save |
| the workspace takes a EOF response as n to avoid problems with a |
| damaged terminal connection. (PR#14332) |
| |
| • Added warn.unused argument to hist.default() to allow suppression |
| of spurious warnings about graphical parameters used with |
| plot=FALSE. (PR#14341) |
| |
| • predict.lm(), summary.lm(), and indeed lm() itself had issues |
| with residual DF in zero-weighted cases (the latter two only in |
| connection with empty models). (Thanks to Bill Dunlap for |
| spotting the predict() case.) |
| |
| • aperm() treated resize = NA as resize = TRUE. |
| |
| • constrOptim() now has an improved convergence criterion, notably |
| for cases where the minimum was (very close to) zero; further, |
| other tweaks inspired from code proposals by Ravi Varadhan. |
| |
| • Rendering of S3 and S4 methods in man pages has been corrected |
| and made consistent across output formats. |
| |
| • Simple markup is now allowed in \title sections in .Rd files. |
| |
| • The behaviour of as.logical() on factors (to use the levels) was |
| lost in R 2.6.0 and has been restored. |
| |
| • prompt() did not backquote some default arguments in the \usage |
| section. (Reported by Claudia Beleites.) |
| |
| • writeBin() disallows attempts to write 2GB or more in a single |
| call. (PR#14362) |
| |
| • new() and getClass() will now work if Class is a subclass of |
| "classRepresentation" and should also be faster in typical calls. |
| |
| • The summary() method for data frames makes a better job of names |
| containing characters invalid in the current locale. |
| |
| • [[ sub-assignment for factors could create an invalid factor |
| (reported by Bill Dunlap). |
| |
| • Negate(f) would not evaluate argument f until first use of |
| returned function (reported by Olaf Mersmann). |
| |
| • quietly=FALSE is now also an optional argument of library(), and |
| consequently, quietly is now propagated also for loading |
| dependent packages, e.g., in require(*, quietly=TRUE). |
| |
| • If the loop variable in a for loop was deleted, it would be |
| recreated as a global variable. (Reported by Radford Neal; the |
| fix includes his optimizations as well.) |
| |
| • Task callbacks could report the wrong expression when the task |
| involved parsing new code. (PR#14368) |
| |
| • getNamespaceVersion() failed; this was an accidental change in |
| 2.11.0. (PR#14374) |
| |
| • identical() returned FALSE for external pointer objects even when |
| the pointer addresses were the same. |
| |
| • L$a@x[] <- val did not duplicate in a case it should have. |
| |
| • tempfile() now always gives a random file name (even if the |
| directory is specified) when called directly after startup and |
| before the R RNG had been used. (PR#14381) |
| |
| • quantile(type=6) behaved inconsistently. (PR#14383) |
| |
| • backSpline(.) behaved incorrectly when the knot sequence was |
| decreasing. (PR#14386) |
| |
| • The reference BLAS included in R was assuming that 0*x and x*0 |
| were always zero (whereas they could be NA or NaN in IEC 60559 |
| arithmetic). This was seen in results from tcrossprod, and for |
| example that log(0) %*% 0 gave 0. |
| |
| • The calculation of whether text was completely outside the device |
| region (in which case, you draw nothing) was wrong for screen |
| devices (which have [0, 0] at top-left). The symptom was (long) |
| text disappearing when resizing a screen window (to make it |
| smaller). (PR#14391) |
| |
| • model.frame(drop.unused.levels = TRUE) did not take into account |
| NA values of factors when deciding to drop levels. (PR#14393) |
| |
| • library.dynam.unload required an absolute path for libpath. |
| (PR#14385) |
| |
| Both library() and loadNamespace() now record absolute paths for |
| use by searchpaths() and getNamespaceInfo(ns, "path"). |
| |
| • The self-starting model NLSstClosestX failed if some deviation |
| was exactly zero. (PR#14384) |
| |
| • X11(type = "cairo") (and other devices such as png using |
| cairographics) and which use Pango font selection now work around |
| a bug in Pango when very small fonts (those with sizes between 0 |
| and 1 in Pango's internal units) are requested. (PR#14369) |
| |
| • Added workaround for the font problem with X11(type = "cairo") |
| and similar on Mac OS X whereby italic and bold styles were |
| interchanged. (PR#13463 amongst many other reports.) |
| |
| • source(chdir = TRUE) failed to reset the working directory if it |
| could not be determined - that is now an error. |
| |
| • Fix for crash of example(rasterImage) on x11(type="Xlib"). |
| |
| • Force Quartz to bring the on-screen display up-to-date |
| immediately before the snapshot is taken by grid.cap() in the |
| Cocoa implementation. (PR#14260) |
| |
| • model.frame had an unstated 500 byte limit on variable names. |
| (Example reported by Terry Therneau.) |
| |
| • The 256-byte limit on names is now documented. |
| |
| • Subassignment by [, [[ or $ on an expression object with value |
| NULL coerced the object to a list. |
| |
| CHANGES IN R VERSION 2.11.1 patched: |
| |
| NEW FEATURES: |
| |
| • install.packages() has a new optional argument INSTALL_opts which |
| can be used to pass options to R CMD INSTALL for source-package |
| installs. |
| |
| • R CMD check now runs the package-specific tests with LANGUAGE=en |
| to facilitate comparison to .Rout.save files. |
| |
| • sessionInfo() gives more detailed platform information, including |
| 32/64-bit and the sub-architecture if one is used. |
| |
| DEPRECATED & DEFUNCT: |
| |
| • The use of Perl configuration variables for R CMD check (as |
| previously documented in ‘Writing R Extensions’) is deprecated |
| and will be removed in R 2.12.0. Use the environment variables |
| documented in ‘R Internals’ instead. |
| |
| BUG FIXES: |
| |
| • R CMD Rd2dvi failed if run from a path containing space(s). This |
| also affected R CMD check, which calls Rd2dvi. |
| |
| • stripchart() could fail with an empty factor level. (PR#14317) |
| |
| • Text help rendering of \tabular{} has been improved: under some |
| circumstances leading blank columns were not rendered. |
| |
| • strsplit(x, fixed=TRUE) marked UTF-8 strings with the local |
| encoding when no splits were found. |
| |
| • weighted.mean(NA, na.rm=TRUE) and similar now returns NaN again, |
| as it did prior to R 2.10.0. |
| |
| • R CMD had a typo in its detection of whether the environment |
| variable TEXINPUTS was set (reported by Martin Morgan). |
| |
| • The command-line parser could mistake --file=size... for one of |
| the options for setting limits for Ncells or Vcells. |
| |
| • The internal strptime() could corrupt its copy of the timezone |
| which would then lead to spurious warnings. (PR#14338) |
| |
| • dir.create(recursive = TRUE) could fail if one of the components |
| existed but was a directory on a read-only file system. (Seen on |
| Solaris, where the error code returned is not even listed as |
| possible on the man page.) |
| |
| • The postscript() and pdf() devices will now allow lwd values less |
| than 1 (they used to force such values to be 1). |
| |
| • Fixed font face for CID fonts in pdf() graphics output. |
| (PR#14326) |
| |
| • GERaster() now checks for width or height of zero and does |
| nothing in those cases; previously the behaviour was undefined, |
| probably device-specific, and possibly dangerous. |
| |
| • wilcox.test(x, y, conf.int = TRUE) failed with an unhelpful |
| message if x and y were constant vectors, and similarly in the |
| one-sample case. (PR#14329) |
| |
| • Improperly calling Recall() from outside a function could cause a |
| segfault. (Reported by Robert McGehee.) |
| |
| • \Sexpr[result=rd] in an Rd file added a spurious newline, which |
| was displayed as extra whitespace when rendered. |
| |
| • require(save = TRUE) recorded the names of packages it failed to |
| load. |
| |
| • packageStatus() could return a data frame with duplicate row |
| names which could then not be printed. |
| |
| • txtProgressBar(style = 2) did not work correctly. |
| |
| txtProgressBar(style = 3) did not display until a non-minimum |
| value was set. |
| |
| • contour() did not display dashed line types properly when contour |
| lines were labelled. (Reported by David B. Thompson.) |
| |
| • tools::undoc() again detects undocumented data objects. Of |
| course, this also affects R CMD check. |
| |
| • ksmooth(x,NULL) no longer segfaults. |
| |
| • approxfun(), approx(), splinefun() and spline() could be confused |
| by x values that were different but so close as to print |
| identically. (PR#14377) |
| |
| CHANGES IN R VERSION 2.11.1: |
| |
| NEW FEATURES: |
| |
| • R CMD INSTALL checks if dependent packages are available early on |
| in the installation of source packages, thereby giving clearer |
| error messages. |
| |
| • R CMD INSTALL --build now names the file in the format used for |
| Mac OS X binary files on that platform. |
| |
| • BIC() in package stats4 now also works with multiple fitted |
| models, analogously to AIC(). |
| |
| DEPRECATED & DEFUNCT: |
| |
| • Use of file extension .C for C++ code in packages is now |
| deprecated: it has caused problems for some makes on |
| case-insensitive file systems (although it currently works with |
| the recommended toolkits). |
| |
| INSTALLATION: |
| |
| • Command gnutar is preferred to tar when configure sets TAR. This |
| is needed on Mac OS 10.6, where the default tar, bsdtar 2.6.2, |
| has been reported to produce archives with illegal extensions to |
| tar (according to the POSIX standard). |
| |
| BUG FIXES: |
| |
| • The C function mkCharLenCE now no longer reads past len bytes |
| (unlikely to be a problem except in user code). (PR#14246) |
| |
| • On systems without any default LD_LIBRARY_PATH (not even |
| /usr/local/lib), [DY]LIB_LIBRARY_PATH is now set without a |
| trailing colon. (PR#13637) |
| |
| • More efficient implementation of utf8ToInt() on long multi-byte |
| strings with many multi-byte characters. (PR#14262) |
| |
| • aggregate.ts() gave platform-dependent results due to rounding |
| error for ndeltat != 1. |
| |
| • package.skeleton() sometimes failed to fix filenames for .R or |
| .Rd files to start with an alphanumeric. (PR#14253) |
| |
| It also failed when only an S4 class without any methods was |
| defined. (PR#14280) |
| |
| • splinefun(method = "monoH.FC") was not quite monotone in rare |
| cases. (PR#14215) |
| |
| • Rhttpd no longer crashes due to SIGPIPE when the client closes |
| the connection prematurely. (PR#14266) |
| |
| • format.POSIXlt() could cause a stack overflow and crash when used |
| on very long vectors. (PR#14267) |
| |
| • Rd2latex() incorrectly escaped special characters in \usage |
| sections. |
| |
| • mcnemar.test() could alter the levels (dropping unused levels) if |
| passed x and y as factors (reported by Greg Snow). |
| |
| • Rd2pdf sometimes needed a further pdflatex pass to get |
| hyperlinked pages correct. |
| |
| • interaction() produced malformed results when levels were |
| duplicated, causing segfaults in split(). |
| |
| • cut(d, breaks = <n>) now also works for "Date" or "POSIXt" |
| argument d. (PR#14288) |
| |
| • memDecompress() could decompress incompletely rare xz-compressed |
| input due to incorrect documentation of xz utils. (Report and |
| patch from Olaf Mersmann.) |
| |
| • The S4 initialize() methods for "matrix", "array", and "ts" have |
| been fixed to call validObject(). (PR#14284) |
| |
| • R CMD INSTALL now behaves the same way with or without |
| --no-multiarch on platforms with only one installed architecture. |
| (It used to clean the src directory without --no-multiarch.) |
| |
| • [<-.data.frame was not quite careful enough in assigning (and |
| potentially deleting) columns right-to-left. (PR#14263) |
| |
| • rbeta(n, a, b) no longer occasionally returns NaN for a >> 1 > b. |
| (PR#14291) |
| |
| • pnorm(x, log.p = TRUE) could return NaN not -Inf for x near |
| (minus for lower.tail=TRUE) the largest representable number. |
| |
| • Compressed data files *.(txt|tab|csv).(gz|bz2|xz) were not |
| recognized for the list of data topics and hence for packages |
| using LazyData. (PR#14273) |
| |
| • textConnection() did an unnecessary translation on strings in a |
| foreign encoding (e.g. UTF-8 strings on Windows) and so was |
| slower than it could have been on very long input strings. |
| (PR#14286) |
| |
| • tools::Rd2txt() did not render poorly written Rd files |
| consistently with other renderers. |
| |
| It computed widths of strings that would be print()ed with |
| escapes incorrectly, for example in the computation of column |
| width for \tabular. |
| |
| • na.action() did not extract the na.action component as |
| documented. |
| |
| • do.call()ing NextMethod in erroneous ways no longer segfaults. |
| (PR#13487) |
| |
| CHANGES IN R VERSION 2.11.0: |
| |
| SIGNIFICANT USER-VISIBLE CHANGES: |
| |
| • Packages must have been installed under R >= 2.10.0, as the |
| current help system is the only one now supported. |
| |
| • A port to 64-bit Windows is now available as well as binary |
| package repositories: see the ‘R Administration and Installation |
| Manual’. |
| |
| • Argument matching for primitive functions is now done in the same |
| way as for interpreted functions except for the deliberate |
| exceptions |
| |
| |
| |
| call switch .C .Fortran .Call .External |
| |
| |
| all of which use positional matching for their first argument, |
| and also some internal-use-only primitives. |
| |
| • The default device for command-line R at the console on Mac OS X |
| is now quartz() and not X11(). |
| |
| NEW FEATURES: |
| |
| • The open modes for connections are now interpreted more |
| consistently. open = "r" is now equivalent to open = "rt" for |
| all connections. The default open = "" now means "rt" for all |
| connections except the compressed-file connections gzfile(), |
| bzfile() and xzfile() for which it means "rb". |
| |
| • R CMD INSTALL now uses the internal untar() function in package |
| utils: this ensures that all platforms can install bzip2- and |
| xz-compressed tarballs. In case this causes problems (as it has |
| on some Windows file systems when run from Cygwin tools) it can |
| be overridden by the environment variable R_INSTALL_TAR: setting |
| this to a modern external tar program will speed up unpacking of |
| large (tens of Mb or more) tarballs. |
| |
| • help(try.all.packages = TRUE) is much faster (although the time |
| taken by the OS to find all the packages the first time it is |
| used can dominate the time). |
| |
| • R CMD check has a new option --timings to record per-example |
| timings in file <pkg>.Rcheck/<pkg>-Ex.timings. |
| |
| • The TRE library has been updated to version 0.8.0 (minor |
| bugfixes). |
| |
| • grep[l], [g]sub and [g]regexpr now work in bytes in an 8-bit |
| locales if there is no marked UTF-8 input string: this will be |
| somewhat faster, and for [g]sub() give the result in the native |
| encoding rather than in UTF-8 (which returns to the behaviour |
| prior to R 2.10.0). |
| |
| • A new argument skipCalls has been added to browser() so that it |
| can report the original context when called by other debugging |
| functions. |
| |
| • More validity checking of UTF-8 and MBCS strings is done by |
| agrep() and the regular-expression matching functions. |
| |
| • The undocumented restriction on gregexpr() to length(text) > 0 |
| has been removed. |
| |
| • Package tcltk now sends strings to Tcl in UTF-8: this means that |
| strings with a marked UTF-8 encoding are supported in non-UTF-8 |
| locales. |
| |
| • The graphics engine now supports rendering of raster (bitmap) |
| images, though not all graphics devices can provide (full) |
| support. Packages providing graphics devices (e.g., Cairo, |
| RSvgDevice, cairoDevice) will need to be reinstalled. |
| |
| There is also support in the graphics engine for capturing raster |
| images from graphics devices (again not supported on all graphics |
| devices). |
| |
| • R CMD check now also checks if the package and namespace can be |
| unloaded: this provides a check of the .Last.lib() and |
| .onUnload() hook functions (unless --install=fake). |
| |
| • prop.table(x) now accepts a one-dimensional table for x. |
| |
| • A new function vapply() has been added, based on a suggestion |
| from Bill Dunlap. It requires that a template for the function |
| value be specified, and uses it to determine the output type and |
| to check for consistency in the function values. |
| |
| • The main HTML help page now links to a reformatted copy of this |
| NEWS file. (Suggested by Henrik Bengtsson.) Package index files |
| link to the package DESCRIPTION and NEWS files and a list of |
| demos when using dynamic help. |
| |
| • The [ method for class "AsIs" allows the next method to change |
| the underlying class. (Wish of Jens Oehlschlägel.) |
| |
| • write.csv[2] no longer allow argument append to be changed: as |
| ever, direct calls to write.table() give more flexibility as well |
| as more room for error. |
| |
| • The index page for HTML help for a package now collapses multiple |
| signatures for S4 methods into a single entry. |
| |
| • The use of .required by require() and detach() has been replaced |
| by .Depends which is set from the Depends field of a package |
| (even in packages with namespaces). By default detach() prevents |
| such dependencies from being detached: this can be overridden by |
| the argument force. |
| |
| • bquote() has been extended to work on function definitions. |
| (Wish of PR#14031). |
| |
| • detach() when applied to an object other than a package returns |
| the environment that has been detached, to parallel attach(). |
| |
| • readline() in non-interactive use returns "" and does not attempt |
| to read from the ‘terminal’. |
| |
| • New function file_ext() in package tools. |
| |
| • xtfrm() is now primitive and internally generic, as this allows |
| S4 methods to be set on it without name-space scoping issues. |
| |
| There are now "AsIs" and "difftime" methods, and the default |
| method uses unclass(x) if is.numeric(x) is true (which will be |
| faster but relies on is.numeric() having been set correctly for |
| the class). |
| |
| • is.numeric(x) is now false for a "difftime" object |
| (multiplication and division make no sense for such objects). |
| |
| • The default method of weighted.mean(x, w) coerces w to be numeric |
| (aka double); previously only integer weights were coerced. Zero |
| weights are handled specially so an infinite value with zero |
| weight does not force an NaN result. |
| |
| There is now a "difftime" method. |
| |
| • bug.report() now has arguments package and lib.loc to generate |
| bug reports about packages. When this is used, it looks for a |
| BugReports field in the package DESCRIPTION file, which will be |
| assumed to be a URL at which to submit the report, and otherwise |
| generates an email to the package maintainer. (Suggested by |
| Barry Rowlingson.) |
| |
| • quantile() now has a method for the date-time class "POSIXt", and |
| types 1 and 3 (which never interpolate) work for Dates and |
| ordered factors. |
| |
| • length(<POSIXlt>) now returns the length of the corresponding |
| abstract timedate-vector rather than always 9 (the length of the |
| underlying list structure). (Wish of PR#14073 and PR#10507.) |
| |
| • The readline completion backend no longer sorts possible |
| completions alphabetically (e.g., function argument names) if R |
| was built with readline >= 6. |
| |
| • select.list() gains a graphics argument to allow Windows/Mac |
| users to choose the text interface. This changes the behaviour |
| of new.packages(ask=TRUE) to be like update.packages(ask=TRUE) on |
| those platforms in using a text menu: use ask="graphics" for a |
| graphical menu. |
| |
| • New function chooseBioCmirror() to set the "BioC_mirror" option. |
| |
| • The R grammar now prevents using the argument name in signatures |
| of S4 methods for $ and $<-, since they will always be called |
| with a character string value for name. The implicit S4 generic |
| functions have been changed to reflect this: packages which |
| included name in the signature of their methods need to be |
| updated and re-installed. |
| |
| • The handling of the method argument of glm() has been refined |
| following suggestions by Ioannis Kosmidis and Heather Turner. |
| |
| • str() gains a new argument list.len with default 99, limiting the |
| number of list() items (per level), thanks to suggestions from |
| David Winsenius. |
| |
| • Having formal arguments of an S4 method in a different order from |
| the generic is now an error (the warning having been ignored by |
| some package maintainers for a long time). |
| |
| • New functions enc2native() and enc2utf8() convert character |
| vectors with possibly marked encodings to the current locale and |
| UTF-8 respectively. |
| |
| • Unrecognized escapes and embedded nuls in character strings are |
| now an error, not just a warning. Thus option "warnEscapes" is |
| no longer needed. rawToChar() now removes trailing nuls |
| silently, but other embedded nuls become errors. |
| |
| • Informational messages about masked objects displayed when a |
| package is attached are now more compact, using strwrap() instead |
| of one object per line. |
| |
| • print.rle() gains argument prefix. |
| |
| • download.file() gains a "curl" method, mainly for use on |
| platforms which have curl but not wget, but also for some |
| hard-to-access URLs. |
| |
| • In Rd, \eqn and \deqn will render in HTML (and convert to text) |
| upper- and lower-case Greek letters (entered as \alpha ...), |
| \ldots, ..., \ge and \le. |
| |
| • utf8ToInt() and intToUtf8() now map NA inputs to NA outputs. |
| |
| • file() has a new argument raw which may help if it is used with |
| something other than a regular file, e.g. a character device. |
| |
| • New function strtoi(), a wrapper for the C function strtol. |
| |
| • as.octmode() and as.hexmode() now allow inputs of length other |
| than one. |
| |
| The format() and print() methods for "octmode" now preserve names |
| and dimensions (as those for "hexmode" did). |
| |
| The format() methods for classes "octmode" and "hexmode" gain a |
| width argument. |
| |
| • seq.int() returns an integer result in some further cases where |
| seq() does, e.g. seq.int(1L, 9L, by = 2L). |
| |
| • Added \subsection{}{} macro to Rd syntax, for subsections within |
| sections. |
| |
| • n-dimensional arrays with dimension names can now be indexed by |
| an n-column character matrix. The indices are matched against |
| the dimension names. NA indices are propagated to the result. |
| Unmatched values and "" are not allowed and result in an error. |
| |
| • interaction(drop=TRUE) uses less memory (related to PR#14121). |
| |
| • summary() methods have been added to the "srcref" and "srcfile" |
| classes, and various encoding issues have been cleaned up. |
| |
| • If option "checkPackageLicense" is set to TRUE (not currently the |
| default), users will be asked to agree to non-known-to-be-FOSS |
| package licences at first use. |
| |
| • Checking setAs(a, b) methods only gives a message instead of a |
| warning, when one of a or b is unknown. |
| |
| • New function norm() to compute a matrix norm. norm() and also |
| backsolve() and sample() have implicit S4 generics. |
| |
| • Files Renviron.site and Rprofile.site can have |
| architecture-specific versions on systems with sub-architectures. |
| |
| • R CMD check now (by default) also checks Rd files for |
| auto-generated content in need of editing, and missing argument |
| descriptions. |
| |
| • aggregate() gains a formula method thanks to a contribution by |
| Arni Magnusson. The data frame method now allows summary |
| functions to return arbitrarily many values. |
| |
| • path.expand() now propagates NA values rather than converting |
| them to "NA". |
| |
| • file.show() now disallows NA values for file names, headers, and |
| pager. |
| |
| • The ‘fuzz’ used by seq() and seq.int() has been reduced from 1e-7 |
| to 1e-10, which should be ample for the double-precision |
| calculations used in R. It ensures that the fuzz never comes |
| into play with sequences of integers (wish of PR#14169). |
| |
| • The default value of RSiteSearch(restrict=) has been changed to |
| include vignettes but to exclude R-help. The R-help archives |
| available have been split, with a new option of "Rhelp10" for |
| those from 2010. |
| |
| • New function rasterImage() in the graphics package for drawing |
| raster images. |
| |
| • stats:::extractAIC.coxph() now omits aliased terms when computing |
| the degrees of freedom (suggestion of Terry Therneau). |
| |
| • cor() and cov() now test for misuse with non-numeric arguments, |
| such as the non-bug report PR#14207. |
| |
| • pchisq(ncp =, log.p = TRUE) is more accurate for probabilities |
| near one. E.g. pchisq(80, 4, ncp=1, log.p=TRUE). (Maybe what |
| was meant in PR#14216.) |
| |
| • maintainer() has been added, to give convenient access to the |
| name of the maintainer of a package (contributed by David Scott). |
| |
| • sample() and sample.int() allow zero items to be sampled from a |
| zero-length input. sample.int() gains a default value size=n to |
| be more similar to sample(). |
| |
| • switch() returned NULL on error (not previously documented on the |
| help page): it now does so invisibly, analogously to |
| if-without-else. |
| |
| It is now primitive: this means that argument EXPR is always |
| matched to the first argument and there is no danger of partial |
| matching to later named arguments. |
| |
| • Primitive functions UseMethod(), attr(), attr<-(), on.exit(), |
| retracemem() and substitute() now use standard argument matching |
| (rather than positional matching). This means that all |
| multi-argument primitives which are not internal now use standard |
| argument matching except where positional matching is desirable |
| (as for switch(), call(), .C() ...). |
| |
| • All the one-argument primitives now check that any name supplied |
| for their first argument is a partial match to the argument name |
| as documented on the help page: this also applies to replacement |
| functions of two arguments. |
| |
| • base::which() uses a new .Internal function when arr.ind is FALSE |
| resulting in a 10x speedup. Thanks to Patrick Aboyoun for |
| implementation suggestions. |
| |
| • Help conversion to text now uses the first part of \enc{}{} |
| markup if it is representable in the current output encoding. On |
| the other hand, conversion to LaTeX with the default |
| outputEncoding = "ASCII" uses the second part. |
| |
| • A new class "listOfMethods" has been introduced to represent the |
| methods in a methods table, to replace the deprecated class |
| "MethodsList". |
| |
| • any() and all() return early if possible. This may speed up |
| operations on long vectors. |
| |
| • strptime() now accepts "%z" (for the offset from UTC in the |
| RFC822 format of +/-hhmm). |
| |
| • The PCRE library has been updated to version 8.02, a bug-fix |
| release which also updates tables to Unicode 5.02. |
| |
| • Functions which may use a graphical select.list() (including |
| menu() and install.packages()) now check on a Unix-alike that Tk |
| can be started (and not just capabilities("tcltk") && |
| capabilities("X11")). |
| |
| • The parser no longer marks strings containing octal or hex |
| escapes as being in UTF-8 when entered in a UTF-8 locale. |
| |
| • On platforms with cairo but not Pango (notably Mac OS X) the |
| initial default X11() type is set to "Xlib": this avoids several |
| problems with font selection when done by cairo rather than Pango |
| (at least on Mac OS X). |
| |
| • New function arrayInd() such that which(x, arr.ind = TRUE) for an |
| array 'x' is now equivalent to arrayInd(which(x), dim(x), |
| dimnames(x)). |
| |
| DEPRECATED & DEFUNCT: |
| |
| • Bundles of packages are defunct. |
| |
| • stats::clearNames() is defunct: use unname(). |
| |
| • Basic regular expressions are defunct, and strsplit(), grep(), |
| grepl(), sub(), gsub(), regexpr() and gregexpr() no longer have |
| an extended argument. |
| |
| • methods::trySilent() is defunct. |
| |
| • index.search() (which was deprecated in 2.10.0) is no longer |
| exported and has a different argument list. |
| |
| • Use of multiple arguments to return() is now defunct. |
| |
| • The use of UseMethod() with more than two arguments is now |
| defunct. |
| |
| • In the methods package, the "MethodsList" metadata objects which |
| had been superseded by hash tables (environments) since R 2.8.0 |
| are being phased out. Objects of this class are no longer |
| assigned or used as metadata by the package. |
| |
| getMethods() is now deprecated, with its internal use replaced by |
| findMethods() and other changes. Creating objects from the |
| "MethodsList" class is also deprecated. |
| |
| • Parsing strings containing both octal/hex and Unicode escapes now |
| gives a warning and will become an error in R 2.12.0. |
| |
| INSTALLATION: |
| |
| • UTF-8 is now used for the reference manual and package manuals. |
| This requires LaTeX ‘2005/12/01’ or later. |
| |
| • configure looks for a POSIX compliant tr, Solaris's /usr/ucb/tr |
| having been found to cause Rdiff to malfunction. |
| |
| • configure is now generated with autoconf 2.65, which works better |
| on recent systems and on Mac OS X. |
| |
| PACKAGE INSTALLATION: |
| |
| • Characters in R source which are not translatable to the current |
| locale are now handled more tolerantly: these will be converted |
| to hex codes with a warning. Such characters are only really |
| portable if they appear in comments. |
| |
| • R CMD INSTALL now tests that the installed package can be loaded |
| (and backs out the installation if it cannot): this can be |
| suppressed by --no-test-load. This avoids installing/updating a |
| package that cannot be used: common causes of failures to load |
| are missing/incompatible external software and missing/broken |
| dependent packages. |
| |
| • Package installation on Windows for a package with a src |
| directory now checks if a DLL is created unless there is a |
| src/Makefile.win file: this helps catch broken installations |
| where the toolchain has not reported problems in building the |
| DLL. (Note: this can be any DLL, not just one named |
| <pkg-name>.dll.) |
| |
| BUG FIXES: |
| |
| • Using with(), eval() etc with a list with some unnamed elements |
| now works. (PR#14035) |
| |
| • The "quick" dispatch of S4 methods for primitive functions was |
| not happening, forcing a search each time. (Dispatch for |
| closures was not affected.) A side effect is that default values |
| for arguments in a method that do not have defaults in the |
| generic will now be ignored. |
| |
| • Trying to dispatch S4 methods for primitives during the search |
| for inherited methods slows that search down and potentially |
| could cause an infinite recursion. An internal switch was added |
| to turn off all such methods from findInheritedMethods(). |
| |
| • R framework installation (on Mac OS X) would not work properly if |
| a rogue Resources directory was present at the top level. Such a |
| non-symlink will now be renamed to Resources.old (and anything |
| previously named Resources.old removed) as part of the framework |
| installation process. |
| |
| • The checks for conforming S4 method arguments could fail when the |
| signature of the generic function omitted some of the formal |
| arguments (in addition to ...). Arguments omitted from the |
| method definition but conforming (per the documentation) should |
| now be ignored (treated as "ANY") in dispatching. |
| |
| • The computations for S4 method evaluation when ... was in the |
| signature could fail, treating ... as an ordinary symbol. This |
| has been fixed, for the known cases. |
| |
| • Various ar() fitting methods have more protection for singular |
| fits. |
| |
| • callNextMethod now works again with the drop= argument in [ |
| |
| • parse() and parse_Rd() miscounted columns when multibyte UTF-8 |
| characters were present. |
| |
| • Formatting of help pages has had minor improvements: extra blank |
| lines have been removed from the text format, and empty package |
| labels removed from HTML. |
| |
| • cor(A, B) where A is n x 1 and B a 1-dimensional array segfaulted |
| or gave an internal error. (The case cor(B, A) was PR#7116.) |
| |
| • cut.POSIXt() applied to a start value after the DST transition on |
| a DST-change day could give the wrong time for argument breaks in |
| units of days or longer. (PR#14208) |
| |
| • do_par() UNPROTECTed too early (PR#14214) |
| |
| • Subassignment x[[....]] <- y didn't check for a zero-length right |
| hand side, and inserted a rubbish value. (PR#14217) |
| |
| • fisher.test() no longer gives a P-value *very* slightly > 1, in |
| some borderline cases. |
| |
| • Internal function matchArgs() no longer modifies the general |
| purpose bits of the SEXPs that make up the formals list of R |
| functions. This fixes an invalid error message that would occur |
| when a garbage collection triggered a second call to matchArgs |
| for the same function _via_ a finalizer. |
| |
| • gsub() in 2.10.x could fail from stack overflow for extremely |
| long strings due to temporary data being allocated on the stack. |
| Also, gsub() with fixed=TRUE is in some circumstances |
| considerably faster. |
| |
| • Several primitives, including attributes(), attr<-() |
| interactive(), nargs() and proc.time(), did not check that they |
| were called with the correct number of arguments. |
| |
| • A potential race condition in list.files() when other processes |
| are operating on the directory has been fixed; the code now |
| dynamically allocates memory for file listings in a single pass |
| instead of making an initial count pass. |
| |
| • mean(x, trim=, na.rm = FALSE) failed to return NA if x contained |
| missing values. (Reported by Bill Dunlap.) |
| |
| • Extreme tail behavior of, pbeta() {and hence pf()}, e.g., |
| pbeta(x, 3, 2200, lower.tail=FALSE, log.p=TRUE) now returns |
| finite values instead of jumping to -Inf too early. (PR#14230). |
| |
| • parse(text=x) misbehaved for objects x that were not coerced |
| internally to character, notably symbols. (Reported to R-devel |
| by Bill Dunlap.) |
| |
| • The internal C function coerceSymbol now handles coercion to |
| character, and warns if coercion fails (rather than silently |
| returning NULL). This allows a name to be given where a |
| character vector is required in functions which coerce |
| internally. |
| |
| • The interpretation by strptime() of "%c" was non-standard (not |
| that it is ever advisable to use locale- and system-specific |
| input formats). |
| |
| • capabilities("X11") now works the same way on Mac OS X as on |
| other platforms (and as documented: it was always true for R |
| built with --with-aqua, as the CRAN builds are). |
| |
| • The X11() device with cairo but not Pango (notably Mac OS X) now |
| checks validity of text strings in UTF-8 locales (since Pango |
| does but cairo it seems does not). |
| |
| • read.fwf() misread multi-line records when n was specified. |
| (PR#14241) |
| |
| • all.equal(tolerance = e) passes the numeric tolerance also to the |
| comparison of the attributes. |
| |
| • pgamma(0, 0), a boundary case, now returns 0, its limit from the |
| left, rather than the limit from the right. |
| |
| • Issuing POST requests to the internal web server could stall the |
| request under certain circumstances. |
| |
| • gzcon( <textConnection> ), an error, no longer damages the |
| connection (in a way to have it segfault). (PR#14237) |
| |
| • All the results from hist() now use the nominal breaks not those |
| adjusted by the numeric ‘fuzz’: in recent versions the nominal |
| breaks were reported but the 'density' referred to the intervals |
| used in the calculation - which mattered very slightly for one of |
| the extreme bins. (Based on a report by Martin Becker.) |
| |
| • If xy[z].coords (used internally by many graphics functions) are |
| given a list as x, they now check that the list has suitable |
| names and give a more informative error message. (PR#13936) |
| |
| CHANGES IN R VERSION 2.10.1 patched: |
| |
| NEW FEATURES: |
| |
| • The handling of line textures in the postscript() and pdf() |
| devices was set up for round end caps (the only type which |
| existed at the time): it has now been adjusted for butt endcaps. |
| |
| • lchoose(a, k) is now defined as log(abs(choose(a,k))), |
| analogously to lfactorial(). |
| |
| • Although \eqn{} in Rd files is defined as a ‘verbatim’ macro, |
| many packages expected ... and \ldots to be interpreted there (as |
| was the case in R < 2.10.0), so this is now done (using an |
| ellipsis in HTML rendering). |
| |
| • Escaping of braces in quoted strings in R-code sections of Rd |
| files is allowed again. This had been changed for the new Rd |
| format in R 2.10.0 but was only documented on the developer site |
| and was handled inconsistently by the converters: text and |
| example conversion removed the escapes but HTML conversion did |
| not. |
| |
| • The PCRE library has been updated to version 8.01, a bug-fix |
| release. |
| |
| • tools::readNEWS() now accepts a digit as the first character of a |
| news section. |
| |
| BUG FIXES: |
| |
| • Using read.table(header=TRUE) on a header with an embedded new |
| line would copy part of the header into the data. (PR#14103) |
| |
| • qpois(p = 1, lambda = 0) now gives 0 as for all other p. |
| (PR#14135) |
| |
| • Functions related to string comparison (e.g. unique(), match()) |
| could cause crashes when used with strings not in the native |
| encoding, e.g. UTF-8 strings on Windows. (PR#14114 and PR#14125) |
| |
| • x[ , drop=TRUE] dropped an NA level even if it was in use. |
| |
| • The dynamic HTML help system reported the wrong MIME type for the |
| style sheet. |
| |
| • tools::codoc() (used by R CMD check) was missing cases where the |
| function had no arguments but was documented to have some. |
| |
| • Help links containing special characters (e.g. "?") were not |
| generated correctly when rendered in HTML. (PR#14155) |
| |
| • lchoose(a, k) no longer wrongly gives NaN for negative a. |
| |
| • ks.test() could give a p-value that was off by one observation |
| due to rounding error. (PR#14145) |
| |
| • readBin()/readChar() when reading millions of character strings |
| in a single call used excessive amounts of memory (which also |
| slowed them down). |
| |
| • R CMD SHLIB could fail if used with paths that were not |
| alphanumeric, e.g. contained +. (PR#14168) |
| |
| • sprintf() was not re-entrant, which potentially caused problems |
| if an as.character() method called it. |
| |
| • The quartz() device did not restore the clipping region when |
| filling the background for a new page. This could be observed in |
| multi-page bitmap output as stale outer regions of the plot. |
| |
| • p.adjust(method, n) now works correctly for the rare case n > |
| length(p), also when method differs from "bonferroni" or "none", |
| thanks to a patch from Gordon Smyth. |
| |
| • tools::showNonASCII() failed to detect non-ASCII characters if |
| iconv() (incorrectly) converted them to different ASCII |
| characters. (Seen on Windows only.) |
| |
| • tcrossprod() wrongly failed in some cases when one of the |
| arguments was a vector and the other a matrix. |
| |
| • [cr]bind(..., deparse.level=2) was not always giving names when |
| documented to do so. (Discovered whilst investigating PR#14189.) |
| |
| • match(incomparables=<non-NULL>) could in rare cases |
| infinite-loop. |
| |
| • poisson.test() needed to pass argument conf.level to |
| binom.test(). (PR#14195) |
| |
| • The "nls" method for df.residual() gave incorrect results for |
| models fitted with na.action = na.exclude. (PR#14194) |
| |
| • A change to options(scipen=) was only implemented when printing |
| next occurred, even though it should have affected intervening |
| calls to axis(), contour() and filledcontour(). |
| |
| • prettyNum(drop0trailing=TRUE) did not handle signs of imaginary |
| parts of complex numbers correctly (and this was used by str(): |
| PR#14201). |
| |
| • system.time() had the sys.child component wrong (copied |
| user.child instead) on systems with HAVE_GETRUSAGE. (PR#14210) |
| |
| • Changing both line texture and line cap (end) resulted in the |
| latter to be omitted form the PDF code. In addition, line cap |
| (end) and join are now set explicitly in PDF output to ensure |
| correct defaults. |
| |
| • The suppression of auto-rotation in bitmap() and dev2bitmap() |
| with the "pdfwrite" device was not working correctly. |
| |
| • plot(ecdf(), log="x") no longer gives an incorrect warning. |
| |
| • read.fwf() works again when argument file is a connection. |
| |
| • Startup files will now be found if their paths exceed 255 bytes. |
| (PR#14228) |
| |
| • contrasts<- (in the stats package) no longer has an undeclared |
| dependence on methods (introduced in 2.10.0). |
| |
| CHANGES IN R VERSION 2.10.1: |
| |
| NEW FEATURES: |
| |
| • The PCRE library has been updated to version 8.00. |
| |
| • R CMD INSTALL has new options --no-R, --no-libs, --no-data, |
| --no-help, --no-demo, --no-exec, and --no-inst to suppress |
| installation of the specified part of the package. These are |
| intended for special purposes (e.g. building a database of help |
| pages without fully installing all packages). |
| |
| • The documented line-length limit of 4095 bytes when reading from |
| the console now also applies also to parse(file="") (which |
| previously had a limit of around 1024 bytes). |
| |
| • A Bioconductor mirror can be set for use by setRepositories() |
| _via_ the option "BioC_mirror", e.g. the European mirror can be |
| selected by |
| options(BioC_mirror="http://bioconductor.statistik.tu-dortmund.de"). |
| |
| • Double-clicking in a tk_select.list() list box now selects the |
| item and closes the list box (as happens on the Windows |
| select.list() widget). |
| |
| INSTALLATION: |
| |
| • configure will be able to find a usable libtiff in some rare |
| circumstances where it did not previously (where libtiff needed |
| to be linked explicitly against -ljpeg). |
| |
| • Making refman.pdf works around a problem with the indexing with |
| hyperref 6.79d and later. |
| |
| DEPRECATED & DEFUNCT: |
| |
| • The extended argument is deprecated in strsplit(), grep(), |
| grepl(), sub(), gsub(), regexpr() and gregexpr() (not just the |
| value extended = FALSE) and will be removed in R 2.11.0. |
| |
| BUG FIXES: |
| |
| • trigamma(x) and other psigamma(x, n) calls are now accurate for |
| very large abs(x). (PR#14020) |
| |
| • [g]sub(perl=FALSE, fixed=FALSE) could use excessive stack space |
| when used with a very long vector containing some non-ASCII |
| strings. |
| |
| • The default method of weighted.mean(na.rm = TRUE) did not omit |
| weights for NA observations in 2.10.0. (PR#14032) |
| |
| • [g]regexpr(pattern, fixed = TRUE) returned match positions in |
| bytes (not characters) in an MBCS locale if pattern was a single |
| byte. |
| |
| [g]sub(fixed = TRUE) with a single-byte pattern could conceivably |
| have matched part of a multibyte character in a non-UTF-8 MBCS. |
| |
| • findLineNum() and setBreakpoint() would sometimes fail if the |
| specified file was not in the current directory. |
| |
| • Package tcltk's demo(tkdensity) was broken in 2.9.0 when demo() |
| was changed to set par(ask = TRUE). |
| |
| • gsub() with backrefs could fail on extremely long strings |
| (hundreds of thousands of characters) due to integer overflow in |
| a length calculation. |
| |
| • abline(untf=TRUE) now uses a better x-grid in log-scale, e.g., |
| for plot(c(1,300), c(1,300), log="xy"); abline(4,1, untf=TRUE). |
| |
| • detach()/unloadNamespace() arrange to flush the package's |
| lazyload cache of R objects once the package/namespace is no |
| longer needed. |
| |
| • There have been small fixes to the rendering of help, e.g. |
| \command is now rendered verbatim (so e.g. -- is not interpreted, |
| PR#14045). |
| |
| Also, there are many small changes to help files where the new |
| converters were not rendering them in the same way as before. |
| |
| • available.packages() would fail when run on a repository with no |
| packages meeting the filtering conditions. (PR#14042) |
| |
| • rep(x, times, each = 2) gave invalid results when the times |
| argument was a vector longer than x. Reported by Bill Dunlap. |
| |
| • An error when unloadNamespace() attempted to run the .onUnload() |
| function gave an error in the reporting function and so was not |
| reported properly. |
| |
| • Text help rendering did not handle very long input lines |
| properly. |
| |
| • promptMethods() generated signature documentation improperly. |
| |
| • pgamma(x, a, lower.tail=FALSE) and qgamma(...) are now |
| considerably more accurate in some regions for very small a. |
| qgamma() now correctly returns 0 instead of NaN in similar |
| extreme cases, and qgamma() no longer warns in the case of small |
| a, see (PR#12324). |
| |
| • unname() now also removes names from a zero length vector. |
| |
| • Printing results from ls.str() no longer evaluates unevaluated |
| calls. |
| |
| • complete.cases() failed on a 0-column data frame argument. |
| (Underlies PR#14066.) |
| |
| It could return nonsensical results if no input determined the |
| number of cases (seen in the no-segfault tests). |
| |
| • An error in nls() with a long formula could cause a segfault. |
| (PR#14059) |
| |
| • qchisq(p, df, ncp, lower.tail = FALSE) with ncp >= 80 was |
| inaccurate for small p (as the help page said): it is now less |
| inaccurate. (In part, PR#13999.) |
| |
| For ncp less than but close to 80, pchisq() and qchisq() are more |
| accurate for probabilities very close to 1 (a series expansion |
| was truncated slightly too early). |
| |
| pchisq(x, df, ncp) can no longer return values just larger than |
| one for large values of ncp. |
| |
| • intToUtf8() could fail when asked to produce 10Mb or more |
| strings, something it was never intended to do: unfortunately |
| Windows crashed R (other OSes reported a lack of resources). |
| (PR#14068) |
| |
| • chisq.test() could fail when given argument x or y which deparsed |
| to more than one line. (Reported by Laurent Gauthier.) |
| |
| • S4 methods are uncached whenever the namespace containing them is |
| unloaded (by unloadNamespace() as well as by detach(unload = |
| TRUE)). |
| |
| • The internal record-keeping by dyn.load/dyn.unload was |
| incomplete, which could crash R if a DLL that registered |
| .External routines had earlier been unloaded. |
| |
| • bessel[JY](x, nu) with nu a negative integer (a singular case) is |
| now correct, analogously to besselI(), see PR#13556. |
| |
| • tools::file_path_as_absolute() doubled the file separator when |
| applied to a file such as "/vmunix" or (on Windows) "d:/afile" in |
| a directory for which getwd() would return a path with a trailing |
| separator (largely cosmetic, as reasonable file systems handle |
| such a path correctly). (Perhaps what was meant by PR#14078.) |
| |
| • unsplit(drop = TRUE) applied to a data frame failed to pass drop |
| to the computation of row names. (PR#14084) |
| |
| • The "difftime" method of mean() ignored its na.rm argument. |
| |
| • tcltk::tk_select.list() is now more likely to remove the widget |
| immediately after selection is complete. |
| |
| • Adding/subtracting a "difftime" object to/from a "POSIXt" or |
| "Date" object works again (it was broken by the addition of |
| Ops.difftime). |
| |
| • Conversion to latex of an Rd file with no aliases failed. |
| |
| • wilcox.test(conf.int=TRUE) has achieved.level corrected and, for |
| exact=FALSE, now returns a estimate component which does not |
| depend on the alternative used. |
| |
| • help.search() failed when the package argument was specified. |
| (PR#14113) |
| |
| • switch(EXPR = "A") now returns NULL, as does switch(1) (which |
| used to signal an error). |
| |
| CHANGES IN R VERSION 2.10.0: |
| |
| SIGNIFICANT USER-VISIBLE CHANGES: |
| |
| • Package help is now converted from Rd by the R-based converters |
| that were first introduced in 2.9.0. This means |
| |
| • Packages that were installed by R-devel after 2009-08-09 |
| should not be used with earlier versions of R, and most |
| aspects of package help (including the runnable examples) |
| will be missing if they are so used. |
| |
| • Text, HTML and latex help and examples for packages installed |
| under the new system are converted on-demand from stored |
| parsed Rd files. (Conversions stored in packages installed |
| under R < 2.10.0 are used if no parsed Rd files are found. |
| It is recommended that such packages be re-installed.) |
| |
| • HTML help is now generated dynamically using an HTTP server |
| running in the R process and listening on the loopback interface. |
| |
| • Those worried about security implications of such a server |
| can disable it by setting the environment variable |
| R_DISABLE_HTTPD to a non-empty value. This disables |
| help.start() and HTML help (so text help is shown instead). |
| |
| • The Java/Javascript search engine has been replaced by an |
| HTML interface to help.search(). help.start() no longer has |
| an argument searchEngine as it is no longer needed. |
| |
| • The HTML help can now locate cross-references of the form |
| \link[pkg]{foo} and \link[pkg:foo]{bar} where foo is an alias |
| in the package, rather than the documented (basename of a) |
| filename (since the documentation has been much ignored). |
| |
| NEW FEATURES: |
| |
| • polygon(), pdf() and postscript() now have an argument |
| 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, from a code suggestion by John |
| Brzustowski. (PR#13647/8) |
| |
| • 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 new method is based on code |
| suggestions by Romain François. |
| |
| • 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 |
| arguments type to be specified (you could always specify |
| arguments available or contriburl). |
| |
| • available.packages() by default only returns information on the |
| latest versions of packages whose version requirements are |
| satisfied by the currently running R. |
| |
| • tools::write_PACKAGES() has a new argument latestOnly, which |
| defaults to TRUE when only the latest versions in the repository |
| will be listed in the index. |
| |
| • getOption() has a new argument default that is returned if the |
| specified option is not set. This simplifies querying a value |
| and checking whether it is NULL or not. |
| |
| • parse() now warns if the requested encoding is not supported. |
| |
| • The "table" method of as.data.frame() gains a stringsAsFactors |
| argument to allow the classifying factors to be returned as |
| character vectors rather than the default factor type. |
| |
| • If model.frame.default() encounters a character variable where |
| xlev indicates a factor, it now converts the variable to a factor |
| (with a warning). |
| |
| • curve() now returns a list containing the points that w§ere |
| drawn. |
| |
| • spineplot() now accepts axes = FALSE, for consistency with other |
| functions called by plot.factor(). |
| |
| • The Kendall and Spearman methods of cor.test() can optionally use |
| continuity correction when not computing exact p-values. (The |
| Kendall case is the wish of PR#13691.) |
| |
| • R now keeps track of line numbers during execution for code |
| sourced with options(keep.source = TRUE). The source reference |
| is displayed by debugging functions such as traceback(), |
| browser(), recover(), and dump.frames(), and is stored as an |
| attribute on each element returned by sys.calls(). |
| |
| • More functions now have an implicit (S4) generic definition. |
| |
| • quantile.default() now disallows factors (wish of PR#13631) and |
| its help documents what numeric-like properties its input need to |
| have to work correctly. |
| |
| • weighted.mean() is now generic and has "Date", "POSIXct" and |
| "POSIXlt" methods. |
| |
| • Naming subscripts (e.g. x[i=1, j=2]) in data.frame methods for [ |
| and [[ now gives a warning. (Names are ignored in the default |
| method, but could have odd semantics for other methods, and do |
| for the data.frame ones.) |
| |
| • as.data.frame() has an "aovproj" method. (Wish of PR#13505) |
| |
| • as.character(x) for numeric x no longer produces strings such as |
| "0.30", i.e., with trailing zeros. This change also renders |
| levels construction in factor() more consistent. |
| |
| • codocClasses(), which checks consistency of the documentation of |
| S4 class slots, now does so in considerably more cases. The |
| documentation of inherited slots (from superclasses) is now |
| optional. This affects R CMD check <pkg> when the package |
| defines S4 classes. |
| |
| • codoc() now also checks S4 methods for code/documentation |
| mismatches. |
| |
| • for(), while(), and repeat() loops now always return NULL as |
| their (invisible) value. This change was needed to address a |
| reference counting bug without creating performance penalties for |
| some common use cases. |
| |
| • The print() method for ls.str() results now obeys an optional |
| digits argument. |
| |
| • The method argument of glm() now allows user-contributed methods. |
| |
| • More general reorder.default() replaces functionality of |
| reorder.factor() and reorder.character(). |
| |
| • The function aspell() has been added to provide an interface to |
| the Aspell spell-checker. |
| |
| • Filters RdTextFilter() and SweaveTeXFilter() have been added to |
| the tools package to provide support for aspell() or other spell |
| checkers. |
| |
| • xtabs() with the new argument sparse = TRUE now returns a sparse |
| Matrix, using package Matrix. |
| |
| • contr.sum() etc gain an argument sparse which allows sparse |
| matrices to be returned. |
| |
| contrasts() also gains a sparse argument which it passes to the |
| actual contrast function if that has a formal argument sparse. |
| |
| contrasts(f, .) <- val now also works when val is a sparse |
| Matrix. It is planned that model.matrix() will work with such |
| factors f in the future. |
| |
| • readNEWS() will recognize a UTF-8 byte-order mark (BOM) in the |
| NEWS file. However, it is safer to use only ASCII code there |
| because not all editors recognize BOMs. |
| |
| • New utility function inheritedSlotNames() for S4 class |
| programming. |
| |
| • tabulate() now allows NAs to pass through (and be ignored). |
| |
| • If debug() is called on an S3 generic function then all methods |
| are debugged as well. |
| |
| • Outlier symbols drawn by boxplot() now obey the outlwd argument. |
| Reported by Jurgen Kluge. |
| |
| • svd(x) and eigen(x) now behave analogously to qr(x) in accepting |
| logical matrices x. |
| |
| • File NEWS is now in UTF-8, and has a BOM (often invisible) on the |
| first line, and Emacs local variables set for UTF-8 at the end. |
| RShowDoc("NEWS") should display this correctly, given suitable |
| fonts. |
| |
| • terms.formula(simplify = TRUE) now does not deparse the LHS and |
| so preserves non-standard responses such as `a: b` (requested by |
| Sundar Dorai-Raj). |
| |
| • New function news() for building and querying R or package news |
| information. |
| |
| • z^n for integer n and complex z is more accurate now if |n| <= |
| 65536. |
| |
| • factor(NULL) now returns the same as factor(character(0)) instead |
| of an error, and table(NULL) consequently does analogously. |
| |
| • as.data.frame.vector() (and its copies) is slightly faster by |
| avoiding a copy if there are no names (following a suggestion of |
| Tim Hesterberg). |
| |
| • writeLines(), writeBin() and writeChar() have a new argument |
| useBytes. If false, character strings with marked encodings are |
| translated to the current locale (as before) but if true they are |
| written byte-by-byte. |
| |
| • iconv() has a new argument mark which can be used (by experts) to |
| suppress the declaration of encodings. |
| |
| • DESCRIPTION file's LinkingTo specs are now recognized as |
| installation dependencies, and included in package management |
| computations. |
| |
| • Standardized DESCRIPTION file License specs are now available for |
| package management computations. |
| |
| • "\uxxxx" and "\Uxxxxxxxx" escapes can now be parsed to a UTF-8 |
| encoded string even in non-UTF-8 locales (this has been |
| implemented on Windows since R 2.7.0). The semantics have been |
| changed slightly: a string containing such escapes is always |
| stored in UTF-8 (and hence is suitable for portably including |
| Unicode text in packages). |
| |
| • New as.raw() method for "tclObj" objects (wish of PR#13758). |
| |
| • Rd.sty now makes a better job of setting email addresses, |
| including using a monospaced font. |
| |
| • textConnection() gains an encoding argument to determine how |
| input strings with marked encodings will be handled. |
| |
| • R CMD Rd2pdf is available as a shortcut for R CMD Rd2dvi --pdf. |
| |
| • R CMD check now checks links where a package is specified |
| (\link[pkg]{file} or \link[pkg:file]{topic}), if the package is |
| available. It notes if the package is not available, as in many |
| cases this is an error in the link. |
| |
| • identical() gains three logical arguments, which allow for even |
| more differentiation, notably -0 and 0. |
| |
| • legend() now can specify the border color of filled boxes, thanks |
| to a patch from Frederic Schutz. |
| |
| • Indexing with a vector index to [[ ]] has now been extended to |
| all recursive types. |
| |
| • Pairlists may now be assigned as elements of lists. (Lists could |
| always be created with pairlist elements, but [[<- didn't support |
| assigning them.) |
| |
| • The parser now supports C-preprocessor-like #line directives, so |
| error messages and source references may refer to the original |
| file rather than an intermediate one. |
| |
| • New functions findLineNum() and setBreakpoint() work with the |
| source references to find the location of source lines and set |
| breakpoints (using trace()) at those lines. |
| |
| • Namespace importing is more careful about warning on masked |
| generics, thanks to a patch by Yohan Chalabi. |
| |
| • detach() now has an argument character.only with the same meaning |
| as for library() or require(). |
| |
| • available.packages() gains a filters argument for specifying the |
| filtering operations performed on the packages found in the |
| repositories. A new built-in "license/FOSS" filter only retains |
| packages for which installation can proceed solely based on |
| packages which can be verified as Free or Open Source Software |
| (FOSS) employing the available license specifications. |
| |
| • In registering an S3 class by a call to setOldClass(), the data |
| part (e.g., the object type) required for the class can be |
| included as one of the superclasses in the Classes argument. |
| |
| • The argument f to showMethods() can be an expression evaluating |
| to a generic function, allowing methods to be shown for |
| non-exported generics and other nonstandard cases. |
| |
| • sprintf() now supports %o for octal conversions. |
| |
| • New function Sys.readlink() for information about symbolic links, |
| including if a file is a symbolic link. |
| |
| • Package tools has new functions checkRdaFiles() and |
| resaveRdaFiles() to report on the format of .rda/.RData data |
| files, and to re-save them in a different compressed format, |
| including choosing the most compact format available. |
| |
| A new INSTALL option, --resave-data, makes use of this. |
| |
| • File ~/.R/config is used in preference to ~/.Rconfig, and these |
| are now documented in ‘R Installation and Administration’. |
| |
| • Logic operations with complex numbers now work, as they were |
| always documented to, and as in S. |
| |
| • arrows() and segments() allow one of x1 or y1 to be omitted to |
| simplify the specification of vertical or horizontal lines |
| (suggestion of Tim Hesterberg). |
| |
| • approxfun() is faster by avoiding repeated NA checks (diagnosis |
| and patch by Karline Soetaert & Thomas Petzoldt). |
| |
| • There are the beginnings of a Nynorsk translation by Karl Ove |
| Hufthammer. |
| |
| • stripchart() allows par bg to be passed in for the background |
| colour for pch = 21 (wish of PR#13984). |
| |
| • New generic function .DollarNames() to enable class authors to |
| customize completion after the $ extractor. |
| |
| • load(), save(), dput() and dump() now open a not-yet-open |
| connection in the appropriate mode (as other functions using |
| connections directly already did). |
| |
| REGULAR EXPRESSIONS: |
| |
| • A different regular expression engine is used for basic and |
| extended regexps and is also for approximate matching. This is |
| based on the TRE library of Ville Laurikari, a modified copy of |
| which is included in the R sources. |
| |
| This is often faster, especially in a MBCS locale. |
| |
| Some known differences are that it is less tolerant of invalid |
| inputs in MBCS locales, and in its interpretation of undefined |
| (extended) regexps such as "^*". Also, the interpretation of |
| ranges such as [W-z] in caseless matching is no longer to map the |
| range to lower case. |
| |
| This engine may in future be used in ‘literal’ mode for fixed = |
| TRUE, and there is a compile-time option in src/main/grep.c to do |
| so. |
| |
| • The use of repeated boundary regexps in gsub() and gregexpr() as |
| warned about in the help page does not work in this engine (it |
| did in the previous one since 2005). |
| |
| • Extended (and basic) regexps now support same set of options as |
| for fixed = TRUE and perl = TRUE, including useBytes and support |
| for UTF-8-encoded strings in non-UTF-8 locales. |
| |
| • agrep() now has full support for MBCS locales with a modest speed |
| penalty. This enables help.search() to use approximate matching |
| character-wise rather than byte-wise. |
| |
| • [g]sub use a single-pass algorithm instead of matching twice and |
| so is usually faster. |
| |
| • The perl = TRUE versions now work correctly in a non-UTF-8 MBCS |
| locale, by translating the inputs to UTF-8. |
| |
| • useBytes = TRUE now inhibits the translation of inputs with |
| marked encodings. |
| |
| • strsplit() gains a useBytes argument. |
| |
| • The algorithm used by strsplit() has been reordered to batch by |
| elements of split: this can be much faster for fixed = FALSE (as |
| multiple compilation of regexps is avoided). |
| |
| • The help pages, including ?regexp, have been updated and should |
| be consulted for details of the new implementations. |
| |
| HELP & Rd FILE CHANGES: |
| |
| • A new dynamic HTML help system is used by default, and may be |
| controlled using tools::startDynamicHelp(). With this enabled, |
| HTML help pages will be generated on request, resolving links by |
| searching through the current .libPaths(). The user may set |
| options("help.ports") to control which IP port is used by the |
| server. |
| |
| • help.start() no longer sets options(htmlhelp = TRUE) (it used to |
| on Unix but not on Windows). Nor does it on Unix reset the |
| "browser" option if given an argument of that name. |
| |
| Arguments update and remote are now available on all platforms: |
| the default is update = FALSE since the http server will update |
| the package index at first use. |
| |
| • help() has a new argument help_type (with default set by the |
| option of that name) to supersede arguments offline, htmlhelp and |
| chmhelp (although for now they still work if help_type is unset). |
| There is a new type, "PDF" to allow offline PDF (rather than |
| PostScript). |
| |
| A function offline_help_helper() will be used if this exists in |
| the workspace or further down the search path, otherwise the |
| function of that name in the utils namespace is used. |
| |
| • Plain text help is now used as the fallback for HTML help (as it |
| always was for Compiled HTML help on Windows). |
| |
| • It is possible to ask for static HTML pages to be prebuilt _via_ |
| the configure option --enable-prebuilt-html. This may be useful |
| for those who wish to make HTML help available outside R, e.g. on |
| a local web site. |
| |
| • An experimental tag \Sexpr has been added to Rd files, to |
| evaluate expressions at build, install, or render time. |
| Currently install time and render time evaluation are supported. |
| |
| • Tags \if, \ifelse and \out have been added to allow |
| format-specific (or more general, using \Sexpr) conditional text |
| in man pages. |
| |
| • The parse_Rd() parser has been made more tolerant of coding |
| errors in Rd files: now all syntax errors are reported as |
| warnings, and an attempt is made to continue parsing. |
| |
| • parse_Rd() now has an argument fragment (default FALSE) to accept |
| small fragments of Rd files (so that \Sexpr can output Rd code |
| which is then parsed). |
| |
| • parse_Rd() now always converts its input to UTF-8. The Rd2* |
| rendering functions have a new argument, outputEncoding, which |
| controls how their output is encoded. |
| |
| • parse_Rd() no longer includes the newline as part of a "%"-style |
| comment. |
| |
| • There have been various bug fixes and code reorganization in the |
| Rd renderers Rd2HTML, Rd2latex, Rd2txt, and Rd2ex. |
| |
| All example files are now created with either ASCII or UTF-8 |
| encoding, and the encoding is only marked in the file if there is |
| any non-UTF-8 code (previously it was marked if the help file had |
| non-ASCII contents, possibly in other sections). |
| |
| • print.Rd() now adds necessary escape characters so that printing |
| and re-parsing an Rd object should produce an equivalent object. |
| |
| • parse_Rd() was incorrectly handling multiple backslashes in R |
| code strings, converting 4n+3 backslashes to 2n+1 instead of |
| 2n+2. |
| |
| • parse_Rd() now recognizes the \var tag within a quoted string in |
| R-like text. |
| |
| • parse_Rd() now treats the argument of \command as LaTeX-like, |
| rather than verbatim. |
| |
| COMPRESSION: |
| |
| • New function untar() to list or unpack tar archives, possibly |
| compressed. This uses either an external tar command or an |
| internal implementation. |
| |
| • New function tar() to create (possibly compressed) tar archives. |
| |
| • New functions memCompress() and memDecompress() for in-memory |
| compression and decompression. |
| |
| • bzfile() has a compress argument to select the amount of effort |
| put into compression when writing. |
| |
| • New function xzfile() for use with xz-compressed files. (This |
| can also read files compressed by some versions of lzma.) |
| |
| • gzfile() looks at the file header and so can now also read |
| bzip2-ed files and xz-compressed files. |
| |
| • There are the new options of save(compress = "bzip2") and "xz" to |
| use bzip2 or xz compression (which will be slower, but can give |
| substantially smaller files). Argument compression_level gives |
| finer control over the space/time tradeoffs. |
| |
| load() can read such saves (but only as from this version of R). |
| |
| • R CMD INSTALL/check and tools::writePACKAGES accept a wider range |
| of compressed tar archives. Precisely how wide depends on the |
| capabilities of the host system's tar command: they almost always |
| include .tar.bz2 archives, and with modern versions of tar other |
| forms of compression such as lzma and xz, and arbitrary |
| extensions. |
| |
| • R CMD INSTALL has a new option --data-compress to control the |
| compression used when lazy-loading data. New possibilities are |
| --data-compress=bzip2 which will give ca 15% better compression |
| at the expense of slower installation times, and |
| --data-compress=xz, often giving even better compression on large |
| datasets at the expense of much longer installation times. (The |
| latter is used for the recommended packages: it is particularly |
| effective for survival.) |
| |
| • file() for open = "", "r" or "rt" will automagically detect |
| compressed files (from gzip, bzip2 or xz). This means that |
| compressed files can be specified by file name (rather than _via_ |
| a gzfile() connection) to read.table(), readlines(), scan() and |
| so on. |
| |
| • data() can handle compressed text files with extensions |
| .{txt,tab,csv}.{gz,bz2,xz} . |
| |
| DEPRECATED & DEFUNCT: |
| |
| • png(type="cairo1") is defunct: the value is no longer recognized. |
| |
| • tools::Rd_parse() is defunct (as this version of R uses only Rd |
| version 2). |
| |
| • Use of file ~/.Rconf (which was deprecated in favour of |
| ~/.Rconfig in 2004) has finally been removed. |
| |
| • Bundles of packages are deprecated. See ‘Writing R Extensions’ |
| for the steps needed to unbundle a bundle. |
| |
| • help() arguments offline, htmlhelp and chmhelp are deprecated in |
| favour of help_type. |
| |
| • clearNames() (in package stats) is deprecated for unname(). |
| |
| • Basic regular expressions (extended = FALSE) are deprecated in |
| strsplit, grep and friends. There is a precise POSIX standard |
| for them, but it is not what recent RE engines implement, and it |
| seems that in almost all cases package authors intended fixed = |
| TRUE when using extended = FALSE. |
| |
| • methods::trySilent() is deprecated in favour of try(silent=TRUE) |
| or - more efficiently and flexibly - something like |
| tryCatch(error = function(e) e). |
| |
| • index.search() is deprecated: there are no longer directories of |
| types other than help. |
| |
| INSTALLATION: |
| |
| • cairo >= 1.2 is now required (1.2.0 was released in July 2006) |
| for cairo-based graphics devices (which remain optional). |
| |
| • A suitable iconv() is now required: support for configure option |
| --without-iconv has been withdrawn (it was deprecated in R |
| 2.5.0). |
| |
| • Perl is no longer ‘essential’. R can be built without it, but |
| scripts R CMD build, check, Rprof and Sd2d currently require it. |
| |
| • A system glob function is now essential (a working Sys.glob() has |
| been assumed since R 2.9.0 at least). |
| |
| • C99 support for MBCS is now required, and configure option |
| --disable-mbcs has been withdrawn. |
| |
| • Having a version of tar capable of automagically detecting |
| compressed archives is useful for utils::untar(), and so gtar (a |
| common name for GNU tar) is preferred to tar: set environment |
| variable TAR to specify a particular tar command. |
| |
| INTERNATIONALIZATION: |
| |
| • There is some makefile support for adding/updating translations |
| in packages: see po/README and ‘Writing R Extensions’. |
| |
| There is support for the use of dngettext for C-level |
| translations in packages: see ‘Writing R Extensions’. |
| |
| BUG FIXES: |
| |
| • Assigning an extra 0-length column to a data frame by DF[, "foo"] |
| <- value now works in most cases (by filling with NAs) or fails. |
| (It used to give a corrupt data frame.) |
| |
| • validObject() avoids an error during evaluation in the case of |
| various incorrect slot definitions. |
| |
| • n:m now returns a result of type "integer" in a few more boundary |
| cases. |
| |
| • The zap.ind argument to printCoefmat() did not usually work as |
| other code attempted to ensure that non-zero values had a |
| non-zero representation. |
| |
| • printCoefmat() formatted groups of columns together, not just the |
| cs.ind group but also the zap.ind group and a residual group. It |
| now formats all columns except the cs.ind group separately (and |
| zaps the zap.ind group column-by-column). The main effect will |
| be see in the output from print.anova(), as this grouped SS-like |
| columns in the zap.ind group. |
| |
| • R_ReplDLLinit() initializes the top-level jump so that some |
| embedded applications on Windows no longer crash on error. |
| |
| • identical() failed to take the encoding of character strings into |
| account, so identical byte patterns are not necessarily identical |
| strings, and similarly Latin-1 and UTF-8 versions of the same |
| string differ in byte pattern. |
| |
| • methods(f) used to warn unnecessarily for an S4 generic f which |
| had been created based on an existing S3 generic. |
| |
| • The check for consistent ordering of superclasses was not |
| ignoring all conditional relations (the symptom was usually |
| spurious warnings for classes extending "array"). |
| |
| • Trying to assign into a raw vector with an index vector |
| containing NAs could cause a segfault. Reported by Hervé Pagès. |
| |
| • Rscript could segfault if (by user error) its filename argument |
| was missing. Reported by Martin Morgan. |
| |
| • getAnywhere() (and functions that use it, including argument |
| completion in the console) did not handle special built-in |
| functions. Reported by Romain Francois. |
| |
| • order() was missing a PROTECT() call and so could segfault when |
| called on character data under certain (rare) circumstances |
| involving marked non-native encodings. |
| |
| • prettyNum(z, drop0trailing=TRUE) did not work correctly when z |
| was a complex vector. Consequently, str(z, ...) also did not. |
| (PR#13985) |
| |
| • make distclean removed too many files in etc/ if builddir = |
| srcdir. |
| |
| • R CMD replaced TEXINPUTS rather than appending to it (as |
| documented and intended). |
| |
| • help.start() no longer fails on unix when "browser" is a |
| function. |
| |
| • pbeta(x, ..., log.p = TRUE) is sometimes more accurate, e.g., for |
| very small x. |
| |
| • Unserializing a pre-2.8 workspace containing pure ASCII character |
| objects with a Latin-1 or UTF-8 encoding would corrupt the |
| CHARSXP cache. |
| |
| |
| ************************************************** |
| * * |
| * 2.9 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 2.9.2 patched |
| |
| |
| NEW FEATURES |
| |
| o On systems using ICU for collation (including Mac OS X), using |
| Sys.setlocale() to change the LC_COLLATE setting is more |
| likely to change the collation provided by ICU. |
| |
| |
| BUG FIXES |
| |
| o On systems using zipped data and help (Windows) the names of |
| datasets could clash with temporary filenames used when |
| running examples, causing errors. |
| |
| o as.complex() sometimes warned about NAs on coercions and |
| sometimes not (when the C function asComplex was used, e.g. on |
| list elements). (PR#13942) |
| |
| o cat() on an unopened connection could close it twice, and |
| with file() connections segfaulted on some systems. |
| |
| o Printing a list could segfault if the elements are nested too |
| deeply. |
| |
| |
| |
| CHANGES IN R VERSION 2.9.2 |
| |
| |
| NEW FEATURES |
| |
| o install.packages(NULL) now lists packages only once even if they |
| occur in more than one repository (as the latest compatible |
| version of those available will always be downloaded). |
| |
| o approxfun() and approx() now accept a 'rule' of length two, for |
| easy specification of different interpolation rules on left and |
| right. |
| |
| They no longer segfault for invalid zero-length specification |
| of 'yleft, 'yright', or 'f'. |
| |
| o seq_along(x) is now equivalent to seq_len(length(x)) even where |
| length() has an S3/S4 method; previously it (intentionally) |
| always used the default method for length(). |
| |
| o PCRE has been updated to version 7.9 (for bug fixes). |
| |
| o agrep() uses 64-bit ints where available on 32-bit platforms |
| and so may do a better job with complex matches. |
| (E.g. PR#13789, which failed only on 32-bit systems.) |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o R CMD Rd2txt is deprecated. (It is just a wrapper for |
| R CMD Rdconv -t txt.) |
| |
| o tools::Rd_parse() is deprecated and will be removed in 2.10.0 |
| (which will use only Rd version 2). |
| |
| |
| BUG FIXES |
| |
| o parse_Rd() still did not handle source reference encodings |
| properly. |
| |
| o The C utility function PrintValue no longer attempts to print |
| attributes for CHARSXPs as those attributes are used |
| internally for the CHARSXP cache. This fixes a segfault when |
| calling it on a CHARSXP from C code. |
| |
| o PDF graphics output was producing two instances of anything |
| drawn with the symbol font face. (Report from Baptiste Auguie.) |
| |
| o length(x) <- newval and grep() could cause memory corruption. |
| (PR#13837) |
| |
| o If model.matrix() was given too large a model, it could crash |
| R. (PR#13838, fix found by Olaf Mersmann.) |
| |
| o gzcon() (used by load()) would re-open an open connection, |
| leaking a file descriptor each time. (PR#13841) |
| |
| o The checks for inconsistent inheritance reported by setClass() |
| now detect inconsistent superclasses and give better warning |
| messages. |
| |
| o print.anova() failed to recognize the column labelled |
| P(>|Chi|) from a Poisson/binomial GLM anova as a p-value |
| column in order to format it appropriately (and as a |
| consequence it gave no significance stars). |
| |
| o A missing PROTECT caused rare segfaults during calls to |
| load(). (PR#13880, fix found by Bill Dunlap.) |
| |
| o gsub() in a non-UTF-8 locale with a marked UTF-8 input |
| could in rare circumstances overrun a buffer and so segfault. |
| |
| o R CMD Rdconv --version was not working correctly. |
| |
| o Missing PROTECTs in nlm() caused "random" errors. (PR#13381 by |
| Adam D.I. Kramer, analysis and suggested fix by Bill Dunlap.) |
| |
| o Some extreme cases of pbeta(log.p = TRUE) are more accurate |
| (finite values < -700 rather than -Inf). (PR#13786) |
| |
| pbeta() now reports on more cases where the asymptotic |
| expansions lose accuracy (the underlying TOMS708 C code was |
| ignoring some of these, including the PR#13786 example). |
| |
| o new.env(hash = TRUE, size = NA) now works the way it has been |
| documented to for a long time. |
| |
| o tcltk::tk_choose.files(multi = TRUE) produces better-formatted |
| output with filenames containing spaces. (PR#13875) |
| |
| o R CMD check --use-valgrind did not run valgrind on the package tests. |
| |
| o The tclvalue() and the print() and as.xxx methods for class |
| "tclObj" crashed R with an invalid object -- seen with an |
| object saved from an earlier session. |
| |
| o R CMD BATCH garbled options -d <debugger> (useful for |
| valgrind, although --debugger=valgrind always worked) |
| |
| o INSTALL with LazyData and Encoding declared in DESCRIPTION |
| might have left options("encoding") set for the rest of the |
| package installation. |
| |
| |
| |
| CHANGES IN R VERSION 2.9.1 |
| |
| |
| NEW FEATURES |
| |
| o New function anyDuplicated(x) returns 0 (= FALSE) or the index |
| of the first duplicated entry of x. |
| |
| o matplot(), matlines() and matpoints() now also obey a 'lend' |
| argument, determining line end styles. (Wish of PR#13619). |
| |
| o bw.SJ(), bw.bcv() and bw.ucv() now gain an optional 'tol' |
| argument allowing more accurate estimates. |
| |
| o new.packages() no longer regards packages with the same name |
| as a member of an installed bundle as 'new' (this is now |
| consistent with the dependency checks in install.packages()). |
| |
| It no longer reports on partially installed bundles (since |
| members can be updated individually if a bundle is unbundled). |
| |
| o old.packages() and hence updates.packages() will look for |
| updates to members of package bundles before updates to the |
| whole bundle: this allow bundles to be split and installations |
| updated. |
| |
| o nlminb() gives better non-convergence messages in some cases. |
| |
| o S3 method dispatch will support S4 class inheritance for S3 |
| methods, for primitives and via UseMethod(), if the argument |
| S3methods=TRUE is given to setClass(). S4 method dispatch |
| will use S3 per-object inheritance if S3Class() is set on the |
| object. See ?Methods and the paper referenced there. |
| |
| o R CMD INSTALL is more tolerant of (malformed) packages with a |
| 'man' directory but no validly named .Rd files. |
| |
| o R CMD check now reports where options are used that cause some |
| of the checks to be skipped. |
| |
| o RSiteSearch has been updated to be consistent with the new |
| layout of the search site itself, which now includes separate |
| options for vignettes, views, and r-sig-mixed-models, as well |
| as changed names for r-help. (Contributed by Jonathan Baron.) |
| |
| o That R CMD check makes use of a |
| <pkg>/tests/Examples/<pkg>-Ex.Rout.save file as a reference |
| result is now documented in 'Writing R Extensions'. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o print.atomic() (defunct since 1.9.0) has been removed since it |
| caused confusion for an S4 class union "atomic". |
| |
| o png(type="cairo1") is deprecated -- it was only needed for |
| platforms with 1.0 <= cairo < 1.2. |
| |
| |
| BUG FIXES |
| |
| o The ... argument was not handled properly when ... was found |
| in the enclosure of the current function, rather than in the |
| function header itself. (This caused integrate() to fail in |
| certain cases.) |
| |
| o col2rgb("#00000080", TRUE) would return the background colour. |
| (Reported by Hadley Wickham.) |
| |
| o interaction() now ensures that the levels of the result are unique. |
| |
| o packageDescription() and hence sessionInfo() now report the correct |
| package version also for a non-attached loaded namespace of |
| a version different from the default lib.loc. |
| |
| o smoothScatter() now also works when e.g. xlim[2] < xlim[1]. |
| |
| o Invalid use of sprintf() such as sprintf("%S%") now give an error |
| instead of a segmentation fault, as do very unusual cases such as |
| sprintf("%s", tryCatch(stop(), error=identity)). (It was |
| always documented that misuse could crash R in |
| platform-dependent ways.) |
| |
| o parse_Rd() would mishandle braces when they occurred at |
| the start of a line within an R string in an Rd file (reported |
| by Alex Couture-Beil) or when they occurred in an R comment |
| (reported by Mark Bravington). |
| |
| o readNEWS() missed version numbers with more than one digit. |
| |
| o building R --without-x no longer fails (PR#13665) |
| |
| o printCoefmat(cbind(0,1)) now works too (PR#13677) |
| |
| o bw.SJ(c(1:99, 1e6)) now works too. |
| |
| o Rd2txt() could not handle empty descriptions of items in an Rd |
| file (reported by Mark Bravington), and did not wrap long lists |
| of arguments if they were given in a single item. |
| |
| o stars() would do a partial plot when called with plot = FALSE; |
| it now consistently returns the locations of the stars. |
| |
| o Rd2latex() could not handle empty sections. |
| |
| o old.packages() and hence update.packages() would fail on a |
| repository which contained only one package but with multiple |
| versions of that package. |
| |
| o as.character.Rd() added extra braces when displaying two-argument |
| macros. (Report and fix by Manuel Eugster.) |
| |
| o unsplit() was misbehaving in the case of single-column data |
| frames. (Reported by Will Gray.) |
| |
| o as(I(1), "vector") and similar coercions from objects of |
| "unregistered" S3 classes now work. |
| |
| o srcref records produced by parse() and parse_Rd() did not record |
| the encoding of the source file. (Reported by Romain Francois.) |
| |
| o The X11 version of View() was misbehaving in MBCS locales, and |
| PgUp/PgDn now behave better, thanks to a patch from Ei-ji Nakama. |
| |
| o R CMD check looked at the environment variable PDFLATEX, but |
| as from R 2.8.1 R CMD Rd2dvi used R_PDFLATEXCMD in |
| preference, and that was set by R CMD (and not PDFLATEX). Now |
| R CMD check looks at R_PDFLATEXCMD. |
| |
| o sprintf() now signals an error when the result of single format |
| specification would be longer than the limit (8192 bytes); it would |
| return "somewhat random" results or segfault previously. (PR#13667) |
| Further, arguments of type "language" or "symbol" are no longer |
| allowed, as these, e.g., sprintf("%s", quote(list())), typically |
| lead to unexpected results or hard to understand error messages. |
| |
| o The new (in 2.9.0) 'stringsAsFactors' argument to expand.grid() |
| was not working: it now does work but has default TRUE for |
| backwards compatibility. |
| |
| o tcrossprod(<1d-array>, <matrix>) now does work when the arguments |
| are of compatible dimensions. |
| |
| o qbinom() now is accurate also in (large size, small prob) |
| cases. (PR#13711) |
| |
| o The calculation of the Spearman p-value in cor.test() is |
| slightly more accurate in some cases. (PR#13574) |
| |
| o The digamma(), trigamma() and psigamma() functions could be |
| inaccurate for values of x around 1e-15 due to cancellation. |
| (PR#13714). |
| |
| o median.default() was altered in 2.8.1 to use sum() rather |
| than mean(), although it was still documented to use mean(). |
| This caused problems for POSIXt objects, for which mean() but |
| not sum() makes sense, so the change has been reverted. |
| |
| o Assigning an extra 0-length column to a data frame by |
| DF$foo <- value gave a corrupt data frame rather than failing. |
| (PR#13724) This also happened for DF[["foo"]] <- value. |
| |
| o R CMD INSTALL no longer gives a spurious warning about old R |
| versions ignoring multiple dependencies, if the conditions are |
| known to be satisfied. |
| |
| o The test for setting dim() allowed a value with two or more |
| NAs to be set on a 0-length object. (PR#13729) Also, it |
| allowed an even number of negative values. |
| |
| o xtfrm(), rank(), sort() and order() did not always make use of |
| custom comparison methods specific to the class of elements |
| being sorted. |
| |
| o Increase NAMED value on 'seq' value in for() loop so loop code |
| cannot modify 'seq' value. |
| |
| o Prevent rectangles of size < 0.5 pixel from disappearing in |
| Quartz when using rastered backend. (PR#13744) |
| |
| o Printing _NA_complex_ had a low-level thinko; patch thanks to |
| Bill Dunlap. |
| |
| o CP1257 encoding for postscript/PDF has been corrected. (PR#13736) |
| |
| o aov() with an error term was evaluating the ... arguments in |
| 2.9.0 whilst checking their names, so could fail by evaluating |
| them in the wrong place. (PR#13733) |
| |
| o The print() method for arima() failed if all coefs were fixed. |
| |
| o R CMD INSTALL --no-latex was not implemented in 2.9.0 (only). |
| |
| o Added a needed PROTECT call in RunFinalizers to handle cases where |
| the routine is called recursively from a GC in a finalizer. |
| |
| o Constructing error messages about unused arguments in calls to |
| closures no longer evaluates the arguments. |
| |
| o qr(x, LAPACK=TRUE) did not coerce integer x to numeric. |
| |
| o qr.coef() misbehaved in the LAPACK case with a matrix RHS, so |
| that solve(qr(x, LAPACK=TRUE)) gave wrong results. (Found by |
| Avraham Adler, PR#13762 by Ravi Varadhan.) |
| |
| |
| |
| CHANGES IN R VERSION 2.9.0 |
| |
| |
| NEW FEATURES |
| |
| o Package 'Matrix' is now a recommended package contained in the |
| basic R distribution. It provides S4 classes and methods for |
| dense and sparse matrices, often by using the numerical |
| libraries Lapack and from the SuiteSparse collection CHOLMOD, |
| CSparse, and SPQR among others. |
| |
| o pdf() and postscript() gain a 'useKerning' argument to place |
| strings using kerning (which had previously been ignored in |
| display but not in strwidth), based in part on an idea and |
| code from Ei-ji Nakama. The default is TRUE. |
| |
| Kerning involving spaces is now ignored (it was previously |
| only used in the computation of string widths). |
| |
| o seq.default() and seq.int() ensure that the result is within the |
| interval [from, to] even when the last value would previously |
| have been slightly out of range because of the allowance for |
| rounding error in computing the number of elements. |
| |
| o boxplot() gains a simple 'matrix' method, enabling boxplot(mat) |
| instead of boxplot(data.frame(mat)). |
| |
| o zip.file.extract() gains an optional 'dir' argument (but use |
| unzip() instead). |
| |
| o source() with 'encoding' specified (and not as "unknown") marks |
| the encoding of character strings in Latin-1 and UTF-8 |
| locales. |
| |
| o parse(text=z) now marks the encoding of character strings in |
| Latin-1 and UTF-8 locales if 'z' is of known encoding (that is |
| all elements are either ASCII or marked as Latin-1 or UTF-8). |
| |
| o sprintf() does stricter error checking on input formats to |
| avoid passing invalid formats to the OS (which have a tendency |
| to crash under such inputs). |
| |
| o expand.grid() gains a 'stringsAsFactors' argument to ask for |
| automatic conversion of character vectors to factors (which |
| happened for many years but was not previously documented). |
| [This did not actually work prior to R 2.9.1.] |
| |
| o bxp() now computes the 'ylim' including the outliers only if |
| 'outline = TRUE'. (Wish of PR#13196) |
| |
| o barplot() gains a 'args.legend' argument. (Wish of PR#13265). |
| |
| o RweaveLatexSetup() now accepts all (and not just some) options |
| passed through from Sweave() |
| |
| o cumsum(x) and cumprod(x) for double precision x now use a long |
| double accumulator where available and so more closely match |
| sum() and prod() in potentially being more accurate. |
| |
| o plot() methods for "stepfun" (and hence "ecdf") gain an 'col' |
| argument, allowing to set all three colors simultaneously. |
| |
| o Iterating over a factor in a for loop now coerces to a character |
| vector (rather than using the integer codes). |
| |
| o data.frame() now recycles columns of list arguments, not just |
| vectors and factors. |
| |
| o plot.ts(plot.type="multiple") now makes use of *.lab and |
| *.axis graphical parameters (wish of PR#13134 and 13135). |
| |
| o Classes can be exported from a name space using the NAMESPACE |
| file directive 'exportClassPattern' which has the same syntax |
| as 'exportPattern'. |
| |
| o strftime() now converts its first argument with as.POSIXlt() |
| and so is no longer an alias for format.POSIXLt. |
| |
| o body<-() now treats list values consistently with other |
| types: they no longer need to be wrapped in a list() call. |
| |
| o option("pdfbrowser") is now set on Windows as well as on Unix-alikes. |
| |
| o object.size() now returns an object of class "object_size" and |
| has a print() method. |
| |
| o [col/row]Sums(), *Means() now have an additional '...' argument, |
| so that they can more easily be turned into generic functions. |
| |
| o Package 'tools' contains dependsOnPkgs() to compute reverse |
| dependencies. |
| |
| o Strict type checking is now turned on: this catches more |
| internal corruptions, and some badly written contributed code. |
| |
| o There are new functions in package 'tcltk', tk_choose.files(), |
| tk_choose.dir() and tk_messageBox(), analogues of functions |
| available on Windows (the last is an analogue of winDialog). |
| |
| o Sys.glob() now does tilde expansion on all platforms. |
| |
| o read.table() and friends gain a 'fileEncoding' argument to |
| make re-encoding of input just a little bit simpler. |
| |
| o grep() gains an 'invert' argument mimicking 'grep -v/--invert'. |
| |
| o strwrap() now allows a separate prefix for the first line. |
| |
| o grep() has a more efficient sibling grepl() that returns a |
| logical vector. |
| |
| o xfig() has new arguments 'defaultFont' and 'textSpecial' |
| contributed by Sebastian Fischmeister. |
| |
| o parse() and parse_Rd() now point to syntax errors in the |
| reported error context, and include the filename and line and |
| column numbers so smart text editors can jump to the error |
| location. |
| |
| o str(<1d-array>) now writes "[1:n(1d)]" instead of the previous |
| less clear "[, 1:n]". |
| |
| o New function testInstalledPackage() in package 'tools' allows |
| the examples (and if they were installed) any package-specific |
| tests to be run on an installed package. |
| |
| testInstalledPackages() can run all the examples and tests in |
| the standard and/or recommended packages. Also |
| testInstalledBasic() can run the basic tests (if installed). |
| |
| o file.copy() now has a 'recursive' argument. |
| |
| o Errors in setOldClass() will cause a previous definition to be restored. |
| |
| o Ambiguities in class inheritance and method selection resulting |
| from duplicates in superclasses are now resolved by requiring |
| (if possible) consistency with all the superclass inheritance. The |
| rules for method selection have been revised to take advantage of |
| the improved ordering. |
| See ?Methods and the reference there related to inheritance. |
| |
| o New function unzip() in package 'utils' to expand or list zip |
| archives. |
| |
| o Replacement functions for class() and oldClass() will unset |
| the S4 bit when the replacement can't be an S4 object; |
| oldClass() will return the S3 class for S4 objects with slot |
| .S3Class. |
| |
| o clip() takes extra steps to avoid the next graphics call |
| resetting the clip region. |
| |
| o New function sample.int() to provide documented access to the |
| internal part of sample() (sampling from seq_len(n)). |
| |
| o New version of withVisible() for better handling of cases like |
| withVisible(eval.parent(....)). Moved to package 'base' with a |
| view to replace .Internal(eval.with.vis) in source() later. |
| |
| o showClass() which is also used to auto-print class definitions, now |
| mentions the package where the class comes from, if there is one. |
| |
| o simulate(obj) now also works for "glm" objects and for weighted |
| fits, thanks in part to contributions from Ben Bolker and |
| Heather Turner. There is now a means to extend the methods |
| available for "glm" objects, as glm families can have an |
| optional 'simulate' component. |
| |
| o S4 classes that inherit from any of the "structure" classes or |
| from "vector" will turn on methods for all the "Ops" group of |
| functions when the package containing the classes is |
| loaded. See class?structure. |
| |
| o A mechanism now allows S4 classes to inherit from object types |
| "environment", "externalptr" and symbol ("name"). See ?setClass. |
| |
| o demo() gains 'echo' and 'ask' arguments, with defaults similar |
| to example(). |
| |
| o library() no longer checks for the packages merged during the |
| re-organization of 1.9.0. |
| |
| o New function poisson.test() in package 'stats' for exact test |
| of rates and rate ratios. |
| |
| o New function isdebugged() indicates whether its argument has the |
| debug flag set or not. |
| |
| o ls.str() [via print method] now also works when some objects in |
| the environment are missing(). |
| |
| o Subsetting S4-objects (without an explicit "[" method) no longer |
| preserves the class in cases like setClass("C", |
| contains="list"); This reverts a "bug fix" activated in R 2.8.0. |
| |
| o .packages() and .find.packages() no longer check the package |
| info for installed packages with dumped metadata, since this |
| was checked when the package was installed. .packages() only |
| considers such packages to be validly installed (any others |
| were installed in a long-obsolete version of R). Both changes |
| speed up searches in libraries of thousands of packages. |
| |
| o boxplot() uses butt line endings for its median line |
| (suggestion of Uwe Ligges, PR#13553). |
| |
| o S4 objects passed to a non-default S3 method will be converted |
| to a valid S3 object with the S3 class. See the section on |
| inheriting from non-S4 classes in ?Classes. |
| |
| o A new class "nonStructure" has been defined; classes that extend |
| a vector class but that should lose their slots under Math or |
| Ops functions should extend this class. See class?nonStructure. |
| |
| o axis.POSIXct() now plots in the timezone marked for its inputs |
| (if any) rather than in the local time. The latter was a |
| deliberate choice, but is easy to select by removing the |
| 'tzone' attribute. (Suggestion of Dan Kelley.) |
| |
| o A new function classesToAM() returns an adjacency matrix |
| representing the inheritance of the classes specified. Allows |
| better human examination of the patterns, e.g. by using the |
| matrix as input to one of the graph packages (see the |
| documentation). |
| |
| o X11options(antialias = "none") now works, for consistency with |
| X11(). |
| |
| o sprintf() now allows zero-length arguments (with a zero-length |
| result). (Suggestion of Bill Dunlap.) |
| |
| o unlink() is now able to remove broken symbolic links on |
| Unix-alikes. |
| |
| o New selectSuperClasses() utility in package 'methods'. |
| |
| o HoltWinters() now allows parameters alpha and beta to be fixed |
| at 0 and hence beta = FALSE and gamma = FALSE are used to |
| specify restricted models. |
| |
| o A new function smoothScatter() has been added to package |
| 'graphics'. It is appropriate for very dense scatter plots |
| and uses density estimation and color to reflect density of |
| plotting. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o allGenerics() is defunct. |
| |
| o Use of allocVector(CHARSXP ...) is defunct and gives an error. |
| |
| o The compatibility define for graphics structure NewDevDesc in |
| GraphicsDevice.h has been removed. |
| |
| o Support for versioned installs (R CMD INSTALL --with-package-versions |
| and install.packages(installWithVers = TRUE)) has been removed. |
| Packages installed with versioned names will be ignored. |
| |
| o The numeric and power(0.5) forms of argument to make.link() |
| which were deprecated in 2.4.0 are now defunct: use power() |
| directly. |
| |
| o Conversion to Sd and Ssgm by R CMD Rdconv is now defunct. |
| |
| o Support for R --gui=gnome is now defunct (and package |
| gnomeGUI has been withdrwan as it used a long-obsolete version |
| of GNOME). |
| |
| o R CMD SHLIB on Windows will call the first target (not 'all') in |
| Makevars[.win] in future versions: so make 'all' the first |
| target if you have any. |
| |
| |
| UTILITIES |
| |
| o R CMD build now also uses a Makevars[.win] file for cleaning |
| up src/. |
| |
| o R CMD Rd2dvi and R CMD check are now able to cope with Cyrillic |
| characters in UTF-8 if environment variable _R_CYRILLIC_TEX_ |
| is set to a non-empty value and the latex system has suitable |
| fonts (thanks to a hint from Alexey Shipunov). |
| |
| o New function rtags() in package 'utils' that provides etags-like |
| indexing capabilities for R code files. |
| |
| New front-end script R CMD rtags provides an interface to the |
| rtags() function (see R CMD rtags --help for details). |
| |
| o New environment variable R_TEXI2DVICMD to hold the path (if any) |
| to 'texi2dvi' found at configure time: this now provides the |
| default to option("texi2dvi"). |
| |
| o massage-Examples.pl has been replaced by the R function |
| tools:::massageExamples(). |
| |
| o R CMD REMOVE now uses remove.packages() and hence removes all |
| members of a bundle. |
| |
| o R CMD SHLIB is now an R script and has a new option -n aka |
| --dry-run to show what commands would be run. The same code |
| is used on Unix and Windows. |
| |
| o R CMD Rdconv has new options --package and --version to set the |
| corresponding fields in HTML conversion. |
| |
| o R CMD check runs the package tests with a custom startup file, |
| currently containing 'options(useFancyQuotes = FALSE)'. |
| |
| Those tests are run by an R script: using a tests/Makefile |
| (undocumented) no longer works. |
| |
| o R CMD config now knows about DYLIB_EXT and SHLIB_EXT, for use |
| in configure files. |
| |
| o R CMD BATCH has a new option --no-timing to suppress printing |
| out the session timing. |
| |
| o R CMD Rd2dvi can now work on an installed package. |
| |
| o R CMD check no longer loads package 'tcltk' when checking for |
| code problems, so more problems may be reported. |
| |
| o For R CMD SHLIB on Windows the default 'all' target only makes |
| the DLL, and no longer call targets 'before' and 'after'. |
| |
| |
| Rd CONVERSION |
| |
| o Rd files have an optional \Rdversion{} section, which if |
| missing defaults to 1.0. There is support for version 1.1, a |
| slightly modified version with the following changes: |
| |
| - The warnings for \code{} inside example are suppressed. |
| |
| - Whitespace between arguments in \item and \section is |
| accepted without a warning (see below). |
| |
| - $ is treated literally in text, even for latex conversions. |
| |
| - \ is only an escape before % { } \ . |
| |
| - \R, \dots and \ldots can be followed by {}, and it is |
| recommended that they when not followed by whitespace. |
| |
| - The obsolete interpretation of \Alpha etc is no longer done. |
| |
| o Rd conversion now handles ^ ~ < > | correctly in non-code |
| environments (such as \samp), and # and _ even in latex |
| conversion (but $ still needs to be escaped in version 1.0). |
| |
| o Whitespace between first and second arguments is now accepted |
| for \item and \section, e.g. \item{foo} {some value}. |
| Previously arguments after whitespace were silently ignored, |
| and a warning is given for version 1.0 files. |
| |
| o The Rd files created by prompt() and friends are declared to be |
| version 1.1. |
| |
| o \alias now supports the escaping of { as well as of %, and this |
| is recommended. |
| |
| o parse_Rd(), an experimental parser for Rd files, and Rd2txt(), |
| Rd2HTML(), Rd2latex() and Rd2ex(), even more experimental |
| converters, have been added to package 'tools'. |
| |
| o R CMD check runs the package's Rd files through parse_Rd() for a |
| stricter syntax check. This can be suppressed by setting |
| _R_CHECK_RD_PARSE_ to FALSE. |
| |
| o Added markup \verb, which displays like \code, but parses as |
| verbatim text. Currently only supported by parse_Rd() and |
| Rd2HTML(). |
| |
| |
| INSTALLATION |
| |
| o The shell used by the 'R' script and other shell scripts |
| intended to be run directly can be specified at installation |
| time by setting the (precious) configure variable R_SHELL. |
| |
| o libtool has been updated to 2.2.6a. |
| |
| o --with-ICU is now the default: this means that ICU will be |
| used for collation on Mac OS >= 10.4. |
| |
| o make install-tests can be used to install the test files, |
| to allowed an installed version of R to be tested -- see the |
| R-admin manual. This is also supported by the function |
| testInstalledPackages() in package 'tools'. |
| |
| o 'make install' using a parallel make should now work. |
| |
| o 'make check' now always re-makes and re-runs the package |
| examples, which are now collated in the locale's order (and |
| not ASCII order). |
| |
| o configure will now set the default optimization level for |
| gfortran on x86_64 Linux to -O as -O2 has caused problems with |
| gfortran 4.3.x. |
| |
| |
| PACKAGE INSTALLATION |
| |
| o install.packages() is able to infer that repos=NULL was |
| intended from the extension on the file name specified as 'pkgs'. |
| |
| On Mac OS X it now supports local binary packages with .tar.gz |
| extension. Nonetheless .tgz remains the preferred extension |
| and is expected in repositories. |
| |
| It now checks >= version dependencies for dependent packages, |
| and so will install a newer version of a dependency if needed |
| and available on the repositories. |
| |
| The library being installed into is considered when looking |
| for installed packages if it is not already part of |
| .libPaths() (as INSTALL already does). |
| |
| It has a new argument 'Ncpus' to support parallel installs of |
| source packages. |
| |
| o HTML links will be resolved first to the standard packages: this |
| avoids other installed packages diverting help on e.g. qr() |
| and plot() to themselves. The HTML files are only "touched" if |
| they have changed. |
| |
| o A check is done that the R files can be parsed: this both |
| prevents a broken package without lazy-loading from being |
| installed and gives better diagnostics. |
| |
| o install.packages() gains a 'configure.vars' argument, and both |
| this and 'configure.args' get their defaults from options(). |
| |
| o There is a unified R script for INSTALL on both Unix-alike and |
| Windows that takes option names used by either in the past. |
| |
| It adds --no-multiarch to disable building other than the main |
| sub-architecture, and allows multiple instances of |
| --configure-args and --configure-vars (which will be |
| concatenated). |
| |
| New option --install-tests will install any package-specific |
| tests. |
| |
| o Times in the Packaged: and Built: fields are now recorded in |
| UTC, and in most cases in ISO 8601 format. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o A helper function, asCharacterFactor, converts from factors to |
| character vectors. |
| |
| |
| BUG FIXES |
| |
| o The postscript() output for setting text is faster and smaller. |
| |
| o Subsetting a data frame with duplicate column names without |
| selecting columns (e.g. z[i,]) no longer makes the column |
| names unique. This was never documented, but some packages |
| have assumed it. |
| |
| o data.frame() no longer ignores row names on objects if the |
| first name is empty. (PR#13230: this has been the behaviour |
| for a long time, but apparently undocumented.) |
| |
| o deparse(control="S_compatible") now never uses backticks. |
| |
| o X-spline drawing is improved for cases where the control |
| points are located well off the edges of the device. |
| |
| The symptom of this problem is the error "reached MAXNUMPTS". |
| |
| o exists() with mode= "any" will no longer run an active binding's |
| function. |
| |
| o format(c(1 + 2i, NA)) no longer has extraneous space in " NA". |
| |
| o mood.test() could fail in 2.8.x on large samples because of |
| integer overflow. |
| |
| o heatmap() without a dendrogram could fail. (PR#13512) |
| |
| o Checks for missing values will no longer occasionally result in |
| an infinite loop or stack overflow error, depending on the |
| compiler. Active bindings are now always considered to be |
| non-missing. |
| |
| o Rd conversion was not accepting \p (as in \pkg} or (when using |
| Perl 5.10.x) \k (as in \kbd) in any preamble text in a |
| \value{} section, since those are nowadays interpreted by |
| Perl. (PR#13575) |
| |
| o if(as.raw(1)) TRUE now works as expected. (PR#13630) |
| Also, c(as.raw(12), TRUE) or c(raw(3), pi) do. |
| |
| o duplicated(<data frame>, incomparables = NA) now gives the |
| intended error message. (PR#13632) |
| |
| o name handling of as.data.frame() has been sanitized somewhat |
| |
| o Evaluating an assignment expression with a string on the left |
| hand side no longer destructively changes the string to a symbol |
| in the expression. |
| |
| |
| |
| ************************************************** |
| * * |
| * 2.8 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 2.8.1 patched |
| |
| |
| NEW FEATURES |
| |
| o R CMD check has a new argument '--install-args' to pass |
| command-line arguments to INSTALL. |
| E.g. --install-args="--docs=normal" on Windows if the HTML |
| Help Workshop is not installed. |
| |
| o R-Forge has been added to R_HOME/etc/repositories, so it will |
| be available interactively in setRepositories(). |
| |
| o The compiled loess() code has been updated to the current |
| version of dloess from Netlib. This includes patches from Ben |
| Tyner which correct some errors when degree = 0 and hence |
| solve PR#13570. |
| |
| |
| INSTALLATION |
| |
| o --with-ICU is now supported (and recommended) on Mac OS X using |
| Apple's supplied port. Note however that the locale category |
| LC_COLLATE cannot be changed whilst R is running on Apple's |
| version of ICU. |
| |
| Configure supports a wider range of ICU versions on other |
| OSes: version 3.0 should suffice, and 3.2, 3.8 and 4.0 have |
| been tested. |
| |
| |
| BUG FIXES |
| |
| o grid-based plots no longer reset the base text size to the |
| default 96dpi in cairo-based bitmap devices. |
| |
| o Rd conversion was incorrectly parsing \\\* and \\\{ (and other |
| cases with an odd number of backslashes greater than one). |
| |
| Text conversion of \code{\ etc} was incorrect (a single |
| backslash stands for itself inside \code). |
| |
| \code{} inside \examples{} is now fixed up (but the warning |
| remains, since it will be handled incorrectly in earlier |
| versions of R). |
| |
| o as.matrix.data.frame() could fail if coercion changed the |
| dimension of one of the columns (as e.g. the coercion of a "Surv" |
| object to a character vector does). |
| |
| o When extracting part of a complex list structure using [[]] |
| with a vector index, the extracted part was not marked for |
| duplication on change. (PR#13411) |
| |
| o Assigning an additional element to a pairlist/language element |
| by x[["foo"]] <- value did not name the additional element. |
| |
| o .Call() and .External() were not accepting "NativeSymbolInfo" |
| and "NativeSymbol" objects as claimed. (Patch from Olaf |
| Mersmann.) |
| |
| o codoc() was missing some default value mismatches with |
| unescaped backslashes, e.g. final="\\" needs to be written as |
| final="\\\\" in the Rd file. |
| |
| The reports on values now give strings in the original quoted |
| format (with \ and " escaped). |
| |
| o The $<- method for pairlists (including language objects) |
| failed to duplicate if NAMED was 2. |
| |
| o read.table(blank.lines.skip = FALSE) gave a final empty row on |
| files with less than 5 lines (PR#13433). |
| |
| o Workaround for a bug in some versions of iconv that was seen |
| with output lines of more than 10,000 bytes and with |
| re-encoding requested on an output connection. |
| |
| o The fullrefman.{dvi,pdf} duplicated part I in part II (at |
| least on some systems). |
| |
| o cbind() could crash with a zero-length input and a list result. |
| |
| o pdf(colormodel = "gray") was setting the stroke colour for fills. |
| |
| o file.show() with multiple files would only show multiple |
| copies of the first one. (PR#13469) |
| |
| o formatC(mode = "character") was documented to work, but |
| did not. (PR#13474) |
| |
| o besselI(x,.., expon.scaled=TRUE) now gives accurate results for |
| x < 1e5 whereas it previously underflowed for x >~= 1500. |
| Further, besselJ(x,..) also computes up to 1e5 (instead of 1e4). |
| |
| o str() was incorrectly warning about its option component |
| 'formatNum' set by strOptions(). |
| |
| o nls(algorithm = "port") did not accept the [factor] notation. |
| (PR#13650) |
| |
| o The relational (aka "comparison") operators are now binary, also in |
| a lower level sense, and an expression as "<"(1) is now erronous. |
| |
| o The 'offset' argument for lm() and glm() is not longer |
| documented to be allowed to be of length 1: this has not been |
| true for a long time. |
| |
| o format.info(x) is now also correct when x has no finite content. |
| |
| o predict.lm() now works correctly when the fit had more than |
| one offset (possibly specified both in the formula and as an |
| argument). This function is called by predict.glm(), so the |
| same isses are corrected there. |
| |
| o besselI(x, nu) with nu a negative integer (a singular case) is now |
| correct. (PR#13556) |
| |
| |
| |
| CHANGES IN R VERSION 2.8.1 |
| |
| |
| NEW FEATURES |
| |
| o sum() now has a method for "difftime" objects (via the Summary |
| group). |
| |
| max(), min() and range() applied to "difftime" object(s) now |
| return a result in the common units of the objects, if there |
| is one. |
| |
| o installed.packages() is now tolerant of malformed DESCRIPTION |
| files in installed packages (it ignores them, with a warning). |
| |
| o qt() now works for 0 < df < 1. |
| |
| o For consistency with matrix() and array(), dimnames(x) <- |
| list() removes the dimnames (as assigning NULL would do). |
| It was previously an error. |
| |
| o nlminb() copies names from 'start' to the parameter vector |
| used (for consistency with optim()). |
| |
| o legend() gains a 'title.col' argument: the title colour was |
| previously set from the first element of 'text.col' (which |
| remains the default). |
| |
| o In an Rd file, use of top-level \itemize{} inside a \value{} |
| block is unnecessary and almost always gave a faulty |
| conversion. Most cases are now detected and corrected, but |
| give a warning as such code will not work correctly in earlier |
| versins of R. |
| |
| Also, use of \code{} inside a code block such as \examples{} |
| will give a erroneous conversion that is now detected and |
| warned against. |
| |
| o Autoflushing of stdout is turned on when Rd processing, so |
| warnings/error are likely to appear in the right place in |
| redirected output (such as that from R CMD check). |
| |
| |
| UTILITIES |
| |
| o R_PDFLATEXCMD is added to the environment variables set by |
| 'R CMD' and is used by R CMD Rd2dvi. |
| |
| R_LATEXCMD, R_PDFLATEXCMD, R_MAKEINDEXCMD and R_DVIPSCMD |
| default to 'latex', 'pdflatex', 'makeindex' and 'dvips' |
| respectively if no suitable executable was found at configure |
| time (since they might well be available at run time, |
| particularly for binary installations of R). This affects |
| R CMD Rd2dvi and help(offline=TRUE). |
| |
| R CMD Rd2dvi now gives an explicit error message if latex (or |
| pdflatex) fails. |
| |
| R CMD Rd2dvi gains a --no-index argument: processing some |
| special characters on PDF indices gave errors which used to be |
| ignored. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o R CMD INSTALL --with-package-versions is deprecated (and |
| support has always been incomplete on Windows). |
| |
| So is install.packages(installWithVers = TRUE). |
| |
| o Rd conversion to Sd and Ssgm is now deprecated as we no longer |
| have any means to check the results (and Sd is long obsolete). |
| |
| |
| BUG FIXES |
| |
| o add1.glm() no longer warns if applied to a binomial glm with a |
| factor response. |
| |
| o aggregate.data.frame() now does something sensible with a |
| zero-column 'x' rather than failing with an obscure error |
| message. It gives an explicit error message if called with a |
| zero-row 'x'. |
| |
| o integrate() now accepts integer results from f(): as documented, |
| but only double was accepted. |
| |
| o contrib.url() produced an incorrect URL for the type |
| "mac.binary". |
| |
| o pairwise.wilcox.test() did not pass on the 'paired' argument |
| (caught by Matthias Kohl) |
| |
| o bmp(), jpeg(), and png() on unix with type="cairo" would segfault |
| on closure if the output file could not be opened. |
| |
| o tiff() on unix would not write the output file for the first page |
| when multiple pages were plotted. |
| |
| o str(1 + structure(1, class = "test")) no longer recurses indefinitely. |
| |
| o pf(x, .., ncp, lower.tail=FALSE, log=TRUE) is much more accurate |
| for large x now. |
| |
| o dev2bitmap() failed in 2.8.0 if 'taa' and 'gaa' were both NA. |
| |
| o Under rare circumstances equality tests for character strings |
| could fail to report equality in 2.8.0 in the same way as |
| 2.7.2. (This needed a current encoding of Latin-1 or UTF-8, |
| one string whose encoding was marked as that encoding and one |
| that was marked as "unknown". In that circumstance the two |
| strings are not actually known to be equal, but earlier |
| versions of R assumed that "unknown" meant the current |
| encoding, and this is done once again.) |
| |
| o R CMD config could echo messages from GNU make if called from |
| within a Makefile (as e.g. package Rcpp did), especially from |
| within a parallel make run. |
| |
| o Rounding error could affect window(extend=TRUE) when applied |
| to monthly series. (PR#13272) |
| |
| o Offline help on a Unix-alike now works even if options |
| "latexcmd" and "dvipscmd" contain spaces |
| (e.g. "dvips -Pmy_printer"). |
| |
| Informative error messages are given if running latex or dvips |
| fail. |
| |
| o Using plot.lm() on a "glm" object since 2.7.1 with which=5 |
| caused the Pearson rather than deviance residuals to be used |
| in which=2 or 3 (including in the default case). (Thanks to |
| Effie Greathouse and Greg Snow.) |
| |
| plot.lm() did not report on omitting observations with |
| leverage one if they also had residual exactly zero. This was |
| seen in example(occupationalStatus). |
| |
| o deparse(nlines=) no longer pads short results with blank |
| lines. (PR#13299) |
| |
| o legend(xpd=) now restores 'xpd' correctly. (PR#12756) |
| |
| o The "formula" method for lines() now works if 'subset' is |
| supplied and no 'data' argument (as that for points() did). |
| |
| o Sweave() now takes the defaults for the options 'pdf.version' |
| and 'pdf.encoding' of its RweaveLatex driver from pdf.options(). |
| |
| o prettyNum(x, drop0trailing=TRUE) treated "1.1e20" as "1.1e2" |
| and hence str() did as well, in 2.8.0 only. |
| |
| o dchisq(x, df, ncp) no longer hangs for large x and ncp > 0, |
| and is more accurate in some cases (PR#13309). |
| |
| o installed.packages(lib.loc = D, priority="NA") now also works when |
| D contains a single package. (PR#13332) |
| |
| o legend(...., merge=TRUE) now warns and has no effect in the |
| case where no line segments are drawn. (PR#13340) |
| |
| o transform.data.frame() works better when two or more columns are |
| added. |
| |
| o Deparsing argument lists with non-syntactic names (e.g. that for |
| transform()) now uses backticks rather than double quotes to |
| produce syntactically valid output. |
| |
| o matrix() failed to check for 0-length 'dimnames': it now |
| treats them as NULL (as array did). (PR#13361) |
| |
| o 0^NA is now NA, not Inf, consistent with x^NA, x != 1. |
| |
| o anova.mlm() did not work if T had only one row (including |
| e.g. the case M = ~1). |
| |
| o axis.POSIXct() mislabelled for some time ranges of a few hours |
| (reported by Martin Becker). |
| |
| o mantelhaen.test() with 'exact=FALSE' was not respecting |
| 'alternative'. It now does one-sided tests similarly to |
| prop.test(). |
| |
| o anova.mlm() had trouble with some designs where near-zero rows of |
| the tranformation matrix were not removed (caught by Nils Skutara). |
| |
| o Rd conversion was handling expressions like |
| '\item{foo}{see \eqn{x}}' (with one argument to \eqn |
| immediately followed by a right brace) incorrectly, sometimes |
| giving a spurious warning about 'missing text'. |
| |
| o R CMD INSTALL used the C locale to install the DESCRIPTION |
| file, and so escaped non-ASCII characters in packages with a |
| declared encoding of "latin1" or "UTF-8". (However, the |
| installed DESCRIPTION file was rarely used since the dumped |
| metadata are available.) |
| |
| o xspline() now respects inline par settings. |
| |
| It and grid.xspline() now handle the special case of only two |
| control points, and splines with control points that are |
| located well outside the device (e.g., a zoomed view of a |
| larger curve). (Both cases were giving the error "reached |
| MAXNUMPTS"). |
| |
| o In setClass("C", contains="list"); x <- new("C", 1:3), x[2:3] now |
| remains of class "C". So does rep(x, 2) or rep.int(x, 3). |
| [NOTE: This "feature" has been reverted for R 2.9.0, see above] |
| |
| o median.default() now also works for "numeric"-like vectors. |
| |
| o The pdf() device can now handle the case where an image uses a |
| very large number of colours with different levels of |
| semi-transparency (alpha-values). It used to segfault. |
| (Also PR#13264.) |
| |
| o window() failed to apply a fuzz to 'start' or 'end' and so |
| sometimes warned incorrectly for time series with 'freq' not a |
| power of two (e.g. 12 or 24). |
| |
| o unique.default() now preserves the "tzone" attribute on |
| "POSIXct" objects. |
| |
| o If all the packages had dependency lists of equal lengths, |
| occasionally install.packages() would compute an incorrect |
| sort order. |
| |
| o col(x, as.factor=TRUE) and row(x, as.factor=TRUE) would fail |
| if x had no column (row) names. It was documented |
| incorrectly, and now returns a matrix factor. |
| |
| o setRepositories() failed if "pkgType" was set to |
| "mac.binary.leopard". |
| |
| o formals<-() changed the body of the function if this was a |
| length-one list. |
| |
| o body<-() failed if the function had no arguments. It now |
| warns if discarding elements from a 'value' of type "expression". |
| |
| o qr.coef() failed in the complex case for non-square systems. |
| (PR#13305) |
| |
| o plot.dendrogram(horizontal=TRUE) did not not plot 'edgetext' |
| at the correct locations. (PR#13313) |
| |
| o The starting point for plot.acf(ci.type="ma") was lag 0 when it |
| should have been lag 1. (PR#13071) |
| |
| o There was an obscure bug with srcrefs, which could put the |
| parser into a condition giving "Error: bad value" on any input |
| |
| |
| |
| CHANGES IN R VERSION 2.8.0 |
| |
| |
| SIGNIFICANT USER-VISIBLE CHANGES |
| |
| o var(), cov(), cor(), sd() etc now by default (when 'use' is not |
| specified) return NA in many cases where they signalled an |
| error before. |
| |
| |
| NEW FEATURES |
| |
| o abbreviate() gains an optional argument 'strict' allowing cheap |
| and fast strict abbrevation. |
| |
| o The "lm" methods of add1(), anova() and drop1() warn if they are |
| mis-used on an essentially exact fit. |
| |
| o as.array() is now generic, gains a '...' argument. |
| |
| o New function as.hexmode() for converting integers in hex format. |
| format.hexmode() and as.character.hexmode() gain an 'upper.case' |
| argument. |
| |
| o bitmap() and dev2bitmap() gain support for anti-aliasing. |
| The default type has been changed to 'png16m', which supports |
| anti-aliasing. |
| |
| o Box.test() gains a 'fitdf' argument to adjust the degrees of |
| freedom if applied to residuals. |
| |
| o browseURL() has a new argument 'encodeIfNeeded' to use |
| URLencode() in cases where it seems likely that would be |
| helpful. (Unfortunately, those are hard to guess.) |
| |
| o by() gains a 'simplify' argument, passed to tapply(). |
| |
| o capabilities() gains a new argument "tiff" to report if tiff() |
| is operational. |
| |
| o chol2inv() now treats <numeric(1)> as a [1 x 1]-matrix. |
| |
| o cov() and cor() have the option 'use = "everything"' as default, |
| and so does var() with its default 'na.rm = FALSE'. This |
| returns NA instead of signalling an error for NA observations. |
| Another new option is 'use = "na.or.complete"' which is the default |
| for var(*, na.rm=FALSE). |
| var(double(0), na.rm= L) now returns NA instead of signalling an error, |
| for both L = TRUE or FALSE, as one consequence of these changes. |
| |
| o data.matrix() now tries harder to convert non-numeric columns, |
| via as.numeric() or as(, "numeric"). |
| |
| o dev.interactive() is able to recognize the standard screen |
| devices if getOption("device") is a function (as well as by name). |
| |
| o dev.new() gains a '...' argument which can be used to pass |
| named arguments which will be used if appropriate to the |
| device selected. |
| |
| o dimnames(x) <- value extends 'value' if it a list and too |
| short, and 'x' is an array. This allows constructions such as |
| dimnames(x)[[1]] <- 1:3 to work whether or not 'x' already has |
| dimnames. |
| |
| o format(), formatC() and prettyNum() gain a new argument |
| 'drop0trailing' which can be used to suppress trailing "0"s. |
| |
| o format() now works for environments; also print(env) and str(env) |
| share the same code for environments. |
| |
| o It is now possible to create and open a text-mode gzfile() |
| connection by explicitly using e.g. open="rt". |
| |
| o New help.request() function for compiling an e-mail to R-help |
| according to "the rules". It is built on the new utility, |
| create.post() on which also bug.report() is based now; both |
| thanks to a contribution by Heather Turner. |
| |
| o help.search() now assumes that non-ASCII items are in latin1 |
| if that makes sense (all known examples on CRAN are). |
| |
| o HoltWinters() and decompose() use a (statistically) more |
| efficient computation for seasonal fits (they used to waste |
| one period). |
| |
| o intToUtf8() and intToBits() now accept numeric vectors, |
| truncating them to integers. |
| |
| o is.unsorted() gains an argument 'strictly'. It now works for |
| classed objects with a >= or > method (as incorrectly |
| documented earlier). |
| |
| o library() no longer warns about the masking objects that are |
| identical(.,.) to those they mask. |
| |
| o lockBinding(), unlockBinding(), lockEnvironment() and |
| makeActiveBinding() now all return invisibly (they always |
| return NULL). |
| |
| o mood.test() now behaves better in the presence of ties. |
| |
| o na.action() now works on fits of classes "lm", "glm", .... |
| |
| o optim(.., method="SANN", .., trace=TRUE) is now customizable via |
| the 'REPORT' control argument, thanks to code proposals by |
| Thomas Petzoldt. |
| |
| o The 'factory-fresh' defaults for options("device") have been |
| changed to refer to the devices as functions in the grDevices |
| namespace and not as names. This makes it more likely that |
| the incorrect (since R 2.5.0) assumption in packages that |
| get(getOption("device"))() will work will catch users of those |
| packages. |
| |
| o pch=16 now has no border (for consistency with 15, 17, 18) and |
| hence is now different from pch=19. |
| |
| o pdf() has new arguments 'useDingbats' (set this to FALSE for use |
| with broken viewers) and 'colormodel'. It now only references |
| the ZapfDingbats font if it is used (for small opaque circles). |
| |
| The default PDF version is now 1.4, since viewers that do not |
| accept that are now rare. |
| |
| Different viewers were rendering consecutive text() calls on a |
| pdf() device in different ways where translucency was |
| involved. The PDF generated has been changed to force each |
| call to be rendered separately (which is the way xpdf or |
| ghostscript was rendering, but Acrobat was forming a |
| transparency group), which is consistent with other graphics |
| devices supporting semi-transparency. |
| |
| o plot.dendrogram() has new arguments (xlim, ylim) which allows |
| zooming into a hiearchical clustering dendrogram. |
| |
| o plot.ecdf() now defaults to pch=19 so as to better convey the |
| left-closed line segments. |
| |
| o plot.histogram() gains an 'ann' argument. (Wish from Ben Bolker.) |
| |
| o plot(<lm_obj>) now warns when it omits points with leverage one |
| from a plot. |
| |
| o Plotmath now recognizes 'aleph' and 'nabla' (the Adobe Symbol |
| 'gradient' glyph) as symbol names. |
| |
| o polyroot() no longer has a maximum degree. |
| |
| o The alpha/alphamax argument of the 'nls' and 'mle' profile() |
| methods is used to compute confidence limits for univariate |
| t-statistics rather than a confidence region for all the |
| parameters (and not just those being profiled). |
| |
| o quantile.default() allows 'probs' to stray just beyond [0, 1], |
| to allow for computed values. |
| |
| o New functions rawConnection() and rawConnectionValue() allow |
| raw vectors to be treated as connections. |
| |
| o read.dcf() now consistently gives an error for malformed DCF. |
| |
| o read.fwf() no longer passes its default for 'as.is' to |
| read.table(): this allows the latter's default to be used. |
| |
| o readBin(), writeBin(), readChar() and writeChar() now open a |
| connection which was not already open in an appropriate binary |
| mode rather than the default mode. |
| |
| readLines(), cat() and sink() now open a connection which was |
| not already open in an appropriate text mode rather than the |
| default mode. |
| |
| o readCitationFile() (and hence citation) now reads a package's |
| CITATION file in the package's declared encoding (if there is one). |
| |
| o The behaviour of readLines() for incomplete final lines on |
| binary-mode connections has been changed to be like blocking |
| rather than non-blocking text-mode connections. |
| |
| o A new reorder.character() method has been added. This allows |
| use of 'reorder(x, ...)' as a shorthand for |
| 'reorder(factor(x), ...)' when 'x' is a character vector. |
| |
| o round() now computes in long doubles where possible so the |
| results are more likely to be correct to representation error. |
| |
| o rug() now uses axis()'s new arguments from 2.7.2, hence no |
| longer draws an axis line. |
| |
| o save() (optionally, but by default) checks for the existence |
| of objects before opening the file/connection (wish of |
| PR#12543). |
| |
| o segments(), arrows() and rect() allow zero-length |
| coordinates. (Wish of PR#11192) |
| |
| o set.seed(kind=NULL) now takes 'kind' from a saved seed if the |
| workspace has been restored or .Random.seed has been set in |
| some other way. Previously it took the 'currently used' value, |
| which was "default" unless random numbers had been used in |
| the current session. Similarly for the values reported by |
| RNGkind(). (Related to PR#12567.) |
| |
| set.seed() gains a 'normal.kind' argument. |
| |
| o setEPS() and setPS() gain '...' to allow other arguments to be |
| passed to ps.options(), including overriding 'width' and 'height'. |
| |
| o setTimeLimit() function to set limits on the CPU |
| and/or elapsed time for each top-level computation, and |
| setSessionTimeLimit() to set limits for the rest of the session. |
| |
| o splinefun() has a new method = "monoH.FC" for monotone Hermite |
| spline interpolation. |
| |
| o sprintf() optionally supports the %a/%A notation of C99 (if the |
| platform does, including under Windows). |
| |
| o str()'s default method gains a 'formatNum' function argument which |
| is used for formatting numeric vectors. Note that this is very |
| slightly not backward compatible. |
| |
| o The summary() method for class "ecdf" now uses a print() |
| method rather than printing directly. |
| |
| o summary.manova() uses a stabler computation of the test |
| statistics, and gains a 'tol' argument to allow highly |
| correlated responses to be explored (with probable loss of |
| accuracy). Similar changes have been made to anova.mlm() and |
| anova.mlmlist(). |
| |
| o Sweave() now writes concordance information inside a |
| \Sconcordance LaTeX macro, which allows it to be inserted into |
| PDF output. |
| |
| o system.time() now uses lazy evaluation rather than |
| eval/substitute, which results in more natural scoping. (PR#11169) |
| |
| o In table(), 'exclude=NULL' now does something also for factor |
| arguments. A new 'useNA' argument allows you to control |
| whether to add NA levels unconditionally or only when present |
| in data. A new convenience function addNA() gives similar |
| functionality by adding NA levels to individual factors. |
| |
| o unlink() tries the literal pattern if it does not match with |
| wildcards interpreted -- this helps with e.g. unlink("a[b") |
| which previously needed to be unlink("a\\[b"). |
| |
| o update.packages() gains an argument 'oldPkgs', where |
| new.packages() and old.packages() get 'instPkgs'. These allow |
| consideration of only subsets of packages instead of all |
| installed ones. |
| |
| o which(b) is somewhat faster now, notably for named vectors, thanks |
| to a suggestion by Henrik Bengtsson. |
| |
| o New generic function xtfrm() as an auxiliary helper for |
| sort(), order() and rank(). This should return a numeric |
| vector that sorts in the same way as its input. The default |
| method supports any class with ==, > and is.na() methods but |
| specific methods can be much faster. |
| |
| As a side-effect, rank() will now work better on classed |
| objects, although possibly rather slowly. |
| |
| o X11() and capabilities("X11") now catch some X11 I/O errors that |
| previously terminated R. These were rare and have only be |
| seen with a misconfigured X11 setup on some versions of X11. |
| |
| |
| o The handling of nuls in character strings has been changed -- |
| they are no longer allowed, and attempting to create such a |
| string now gives a truncation warning (unless |
| options("warnEscapes") is false). |
| |
| o The user environment and profile files can now be specified via |
| environment variables 'R_ENVIRON_USER' and 'R_PROFILE_USER', |
| respectively. |
| |
| o ?pkg::topic and ?pkg:::topic now find help on 'topic' from |
| package 'pkg' (and not help on :: or :::). |
| |
| o ??topic now does help.search("topic"); variations such as |
| ??pkg::topic or field??topic are also supported. |
| |
| o There is support for using ICU (International Components for |
| Unicode) for collation, enabled by configure option --with-ICU |
| on a Unix-alike and by a setting in MkRules on Windows. |
| Function icuSetCollate() allows the collation rules (including |
| the locale) to be tuned. |
| |
| o If S4 method dispatch is on and S4 objects are found as |
| attributes, show() rather than print() is used to print the |
| S4 attributes. |
| |
| o Starting package tcltk without access to Tk (e.g. no available |
| display) is now a warning rather than an error, as Tcl |
| will still be usable. (On most platforms it was possible to |
| inhibit Tk by not having DISPLAY set, but not on Windows nor |
| Mac OS X builds with --with-aqua.) |
| |
| o Using $ on a non-subsettable object (such as a function) is |
| now an error (rather than returning NULL). |
| |
| o Hexadecimal numerical constants (such as 0xab.cdp+12) may now |
| contain a decimal point. |
| |
| o PCRE has been updated to version 7.8 (mainly bug fixes). |
| |
| |
| NEW FEATURES IN PACKAGE 'methods' |
| |
| o S3 classes that are registered by a call to setOldClass() now |
| have the S3 class as a special slot, and therefore so do |
| any S4 classes that contain them. This mechanism is used to |
| support S4 classes that extend S3 classes, to the extent |
| possible. See ?Classes, ?setOldClass, and ?S3Class. |
| |
| The treatment of special pseudo-classes "matrix", "array", and |
| "ts" as S4 classes has also been modified to be more |
| consistent and, within limitations imposed by special |
| treatment of these objects in the base code, to allow other |
| classes to contain them. See class?ts. |
| |
| A general feature added to implement "ts" and also |
| "data.frame" as S4 classes is that an S4 class definition can |
| be supplied to setOldClass() when the S3 class has known |
| attributes of known class. |
| |
| setOldClass() now saves all the S3 inheritance, allowing the |
| calls to be built up in stages, rather than including all the |
| S3 classes in each call. Also allows as(x,"S3") to generate |
| valid S3 inheritance from the stored definition. See ?S3. |
| |
| o S4 methods may now be defined corresponding to "...", by |
| creating a generic function that has "..." as its signature. |
| A method will be selected and called if all the arguments |
| matching "..." are from this class or a subclass. See ?dotsMethods. |
| |
| o New functions S3Part() and S3Class() provide access to the |
| corresponding S3 object and class for S4 classes that extend |
| either an S3 class or a basic R object type. |
| |
| o show(<class definition>) now also shows the class name. |
| |
| |
| INSTALLATION |
| |
| o If sub-architectures are used, a copy of Rscript is installed |
| in ${R_HOME}/bin/exec${R_ARCH} (since that in ${R_HOME}/bin |
| and /usr/bin might be overwritten in a subsequent installation). |
| |
| |
| PACKAGE INSTALLATION |
| |
| o LazyLoad: yes is now the default, so packages wanting to avoid |
| lazy loading must set 'LazyLoad: no' (or an equivalent value) in |
| the DESCRIPTION file. |
| |
| o R CMD INSTALL will now fail if it finds a non-executable |
| 'configure' script in the package -- this usually indicates a |
| file system with insufficient permissions. If a |
| non-executable 'cleanup' script is found and either |
| --clean or --preclean is used, a warning is given. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o Use in packages of the graphics headers Rdevices.h and |
| Rgraphics.h is defunct: they are no longer installed. |
| |
| o options("par.ask.default") is defunct in favour of |
| "device.ask.default". |
| |
| o The 'device-independent' family "symbol" is defunct: use |
| font=5 (base) or fontface=5 (grid) instead. |
| |
| o gammaCody() is defunct. |
| |
| o par("gamma") is defunct. |
| |
| o 'methods' package functions getAccess(), getAllMethods(), |
| getClassName(), getClassPackage(), getExtends(), |
| getProperties(), getPrototype(), getSubclasses, getVirtual(), |
| mlistMetaName(), removeMethodsObject() and seemsS4Object() are |
| defunct. |
| |
| o Use of a non-integer .Random.seed is now an error. (R itself |
| has never generated such values, but user code has, and |
| R >= 2.6.0 has given a warning.) |
| |
| o methods::allGenerics() is deprecated. |
| |
| o In package installation, SaveImage: yes is now ignored, and |
| any use of the field will give a warning. |
| |
| o unserialize() no longer accepts character strings as input. |
| |
| o The C macro 'allocString' has been removed -- use 'mkChar' and |
| variants. |
| |
| o Use of allocVector(CHARSXP ...) is deprecated and gives a warning. |
| |
| |
| UTILITIES |
| |
| o The default for 'stylepath' in Sweave's (default) RweaveLatex |
| driver is now FALSE rather than TRUE if |
| SWEAVE_STYLEPATH_DEFAULT is unset : see ?RweaveLatex. |
| To support this, tools::texi2dvi adds the R 'texmf' directory |
| to the input search path. |
| |
| o R CMD Rd2dvi now previews PDF output (as was documented) if |
| R_PDFVIEWER is set (as it will normally be on a Unix-alike but |
| not on Windows, where the file association is used by default). |
| |
| o R CMD check checks for binary executable files (which should not |
| appear in a source package), using a suitable 'file' if |
| available, else by name. |
| |
| o R CMD check now also uses codetools' checks on the body of S4 |
| methods. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o R_ReadConsole will now be called with a buffer size of 4096 |
| bytes (rather than 1024): maintainers of alternative |
| front-ends should check that they do not have a smaller limit. |
| |
| o Graphics structure NewDevDesc has been renamed to DevDesc. |
| For now there is a compatibility define in GraphicsDevice.h, |
| but it will be removed in R 2.9.0. |
| |
| o PROTECT and UNPROTECT macros now work even with R_NO_REMAP. |
| |
| |
| BUG FIXES |
| |
| o @ now gives an error (and not just a warning) if it is being |
| applied to a non-S4 object. |
| |
| o R CMD appends (not prepends) R's texmf path to TEXINPUTS. |
| |
| o Objects generated by new() from S4 classes should now all |
| satisfy isS4(object). Previously, prototypes not of object |
| type S4 would not be S4 objects. new() applied to basic, |
| non-S4 classes still will (and should) return non-S4 objects. |
| |
| o Functions writing to connections such as writeLines(), |
| writeBin(), writeChar(), save(), dput() and dump() now check |
| more carefully that the connections are opened for writing, |
| including connections that they open themselves. |
| |
| Similarly functions which read such as readLines(), scan(), |
| dcf() and parse() check connections for being open for reading. |
| |
| o Equality comparison of factors with <NA> levels now works |
| correctly again. |
| |
| o Repainting of open X11 View() windows is now done whilst an |
| X11 dataentry window is in use. |
| |
| o Indexing of data frames with NA column names and a numeric or |
| logical column index works again even if columns with NA names |
| are selected. |
| |
| o on.exit() has been fixed to use lexical scope in determining |
| where to evaluate the exit action when the on.exit expression |
| appears in a function argument. |
| |
| o rank() now consistently returns a double result for |
| ties.method = "average" and an integer result otherwise. |
| Previously the storage mode depended on 'na.last' and if any |
| NAs were present. |
| |
| o The "lm" methods of add1(), and drop1() now also work on a model |
| fit with na.action = na.exclude. |
| |
| o median(c(x = NA_real_)) no longer has spurious names(). |
| |
| o isoreg(x, y) now returns the correct result also when x has ties, |
| in all cases. |
| |
| o What na.action() does is now correctly documented. |
| |
| o source() with echo=TRUE now behaves like ordinary automatic |
| printing, by using methods::show() for S4 objects. |
| |
| o Several bugs fixed in `?` with topics: it previously died trying |
| to construct some error messages; for S4 methods, class "ANY" |
| should be used for omitted arguments and default methods. |
| |
| o trace() should create missing traceable classes in the global |
| environment, not in baseenv() where other classes will not be |
| found. |
| |
| o Class inheritance using explicit coerce= methods via setIs() |
| failed to coerce the argument in method dispatch. With this |
| fixed, a mechanism was needed to prohibit such inheritance |
| when it would break the generic function (e.g., |
| initialize). See ?setIs and ?setGeneric. |
| |
| o RSiteSearch() encodes its query (it seems this is occasionally |
| needed on some platforms, but encoding other fields is harmful). |
| |
| o 'incomparables' in match() was looking up indices in the wrong |
| table. |
| |
| o write.dcf() did not escape "." according to Debian policy |
| (PR#12816). |
| |
| o col2rgb() sometimes opened a graphics device unnecessarily, and |
| col2rgb(NA) did not return a transparent color, as documented. |
| |
| o pdf(family="Japan") [and other CIDfonts] no longer seg.faults |
| when writing "western" text strings. |
| |
| o as.list() applied to an environment now forces promises and |
| returns values. |
| |
| o Promises capturing calls to sys.parent() and friends did not |
| work properly when evaluated via method dispatch for internal |
| S3 generics. |
| |
| o The default "pkgType" option for non-CRAN builds of R on Mac OS X |
| is now correctly "source" as documented. |
| |
| o The default R_LIBS_USER path in AQUA builds now matches the |
| Mac-specifc path used by the Mac GUI: ~/Library/R/x.y/library |
| |
| o splinefun() with natural splines incorrectly evaluated derivatives |
| to the left of the first knot. (PR#13132, fix thanks to |
| Berwin Turlach) |
| |
| o anova(glm(..., y=FALSE)) now works. (PR#13098) |
| |
| o cut.Date(x, "weeks") could fail if x has only one unique value |
| which fell on a week boundary. (PR#13159) |
| |
| |
| |
| |
| ************************************************** |
| * * |
| * 2.7 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 2.7.2 patched |
| |
| |
| BUG FIXES |
| |
| o within(<dataframe>, { ... }) now also works when '...' removes |
| more than one column. |
| |
| o Attempting to open an X11() device on a non-existent display |
| when one is already open on another display now gives a |
| warning rather than terminating R via a fatal X11 error. |
| (PR#12628) |
| |
| o source() did not respect the setting of options("keep.source") |
| when setting source references. |
| |
| o seek() now clears the pushback on a text-mode connection if |
| used to set a new position. (PR#12640) |
| |
| o quartz() would segfault if asked to create a file for bitmap |
| output which could not be created. This applied also to the |
| type="quartz" versions of bmp(), jpeg(), png() and tiff(). |
| |
| o dnbinom(0, size, mu = <large>) suffered from cancellation in 2.7.2 |
| only. |
| |
| |
| |
| CHANGES IN R VERSION 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.0.x, |
| for x <= 6, to workaround a bug in interpreting the search |
| results pages. |
| |
| |
| BUG FIXES |
| |
| o Plotmath computed the glyph metrics for the wrong character (and |
| perhaps for a non-existent one) if this was a single-byte |
| character with the top bit set. An example was symbol("\300"). |
| |
| o sink() and cat() could divert output to a non-writable connection. |
| |
| o phyper(x, 0,0,0) no longer hangs for huge x and gives 1 for x >= 0. |
| (PR#11813) |
| |
| o plnorm(x, ..., log.p=TRUE) is now correct for x <= 0. (PR#11867) |
| |
| o <data.frame>[, ch] gives an error (again!) when ch is a string not |
| exactly matching the column names, thanks to an oral bug report by |
| Matthew Dowle. |
| |
| o data.frame(x=1:2, y=3:4, row.names=c("a","NA"))[c(2,NA),] has |
| correct row names c("NA","NA.1") again. |
| |
| o The GUI data editor for dataframes did not handle escape |
| characters in entries properly. (PR#11897) |
| |
| o PCRE has been updated to 7.7 (bugfix release). |
| |
| o package.skeleton() wrongly warned about invalid code_files names |
| when these were not in the current directory. |
| |
| o shapiro.test(c(0,0,1)) now has P value >= 0 (instead of barely |
| negative). |
| |
| o assign() now warns if given a character vector of length > 1, |
| rather than silently taking the first element. |
| |
| o rcond(<exactly singular matrix>) now gives 0 instead of an error. |
| |
| o There was a memory leak in C function ucstoutf8 used by some |
| graphics devices. |
| |
| o Plots of profile.mle() objects (package 'stats4') were |
| misbehaving when the 'which' argument had been used in their |
| calculation. |
| |
| o dnbinom(x, size, mu=*, ..) is now more accurate for very large |
| 'size'. The same applies to pnbinom() and rnbinom(). |
| |
| o axis() was ignoring par() mgp[3] if mgp was set in-line. |
| |
| o Closing an X11 View() or dataentry window via its frame's |
| close control now works better on some window managers. |
| |
| o Calling lapply() was not handling method dispatch correctly for |
| is.numeric(), is.matrix(), is.array(), log() and the Math2 |
| group. This affected data.matrix() which incorrectly regarded |
| "Date" and "POSIXct" objects as numeric, and has been adjusted |
| to do so as exceptions. |
| |
| o package.skeleton() was not looking for non-function objects in |
| its 'environment' argument. |
| |
| o nls() was only finding its 'weights' argument in the case when |
| all the variables in the formula were of the same length and |
| hence that model.frame() could be used. |
| |
| It was silently ignoring 'subset' and 'na.action' except in |
| that case. Now they are ignored only if 'data' is a list and |
| variables taken from 'data' are not all of the same length, |
| in which case a warning is given. |
| |
| o The 'mle' confint() method now takes 'level' into account when |
| setting 'alpha' for the profile. |
| |
| o within() was not handling correctly expressions that produced |
| NULL columns. (PR#11131) |
| |
| o dev.print() and dev.copy2{eps,pdf}() now ensure that the current |
| device is restored as the active device even if an error |
| occurs. (PR#9801) |
| |
| o as.Date() could fail to convert character strings representing |
| days on which midnight did not exist in the current timezone |
| (as happened in parts of Africa on 1960-01-01). |
| |
| o The automatic placement of legend() with 'title' and a |
| reversed 'x' axis was incorrect. (PR#12019) |
| |
| o The use of multiple packages in 'LinkingTo' works again, and |
| now works when the dependent packages are in the library to be |
| installed to (but not in the library path seen by R --vanilla). |
| |
| o bxp() (and hence boxplot) now respects in-line graphical |
| parameters 'xaxp'/'yaxp' as appropriate. (PR#11463) |
| |
| o barplot(log = "y") failed if there were NAs in the 'height' |
| argument. (PR#11585) |
| |
| o pbeta() is more accurate in some cases with extreme values of |
| 'ncp'. (PR#11277). |
| |
| o edit.data.frame() no longer fails if called on a 0-column |
| data frame and no column is created. |
| |
| o pchisq(x, df=0) was always one even for x < 0; similarly for |
| pgamma(x, alpha=0). |
| |
| o add1() and drop1() now return a P-value of NaN in cases with |
| df=0 for test="Chisq" (they gave NaN until pchisq was altered |
| in R 2.6.2). |
| |
| o The default methods of drop1() and add1() now re-evaluate in the |
| object's formula environment, rather than simply in the parent |
| (informal bug report by Werner Stahel). |
| |
| o The undocumented limit of 8191 bytes on comments (from # to |
| the end of the line) in R code has been removed. |
| |
| o qgamma() warns if used with shape < 1e-10, when it may be |
| unreliable. (PR#12324) |
| |
| o Installing a source package was not using the package's declared |
| encoding (if any) as a default encoding for the help.search() |
| database in Meta/hsearch.rds. This could cause packages with |
| a default encoding to have some of their entries rejected by |
| help.search() in a multi-byte locale (such as a UTF-8 locale). |
| |
| o duplicated() and unique() now handle 'incomparables' better, |
| and avoid occasional segfaults (PR#12551). |
| |
| o plot(isoreg(x, y)) now plots the points correctly when 'x' |
| is unssorted. |
| |
| o data.frame(row.names=NULL) once again behaves differently from |
| the default (as documented). |
| |
| |
| |
| CHANGES IN R VERSION 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 |
| |
| o Encoding<- on NA_character_ converted it to "NA". |
| |
| o Adobe Symbol was missing from the encodings in |
| tools::charset_to_Unicode. |
| |
| o diag(matrix(x, 0, 0)) now returns a 0-length vector of the |
| correct mode, instead of always numeric. |
| |
| o The parser sometimes accepted invalid quoted strings in a UTF-8 |
| locale. |
| |
| o plot.default(x, y) now dispatches to Axis() methods whether |
| y is NULL or not. |
| |
| o On Mac OS X, the Cocoa Quartz window could close without warning |
| under certain circumstances (specific autorelease pool flush). |
| |
| o Plotting symbols with separate border and fill colours (e.g., |
| plot(pch = 21)) now works with transparent 'col', but opaque |
| or semi-transparent 'bg'. Previously, if 'col' was |
| transparent then 'bg' was ignored and nothing was drawn. |
| |
| o file.path() did not work correctly in 2.7.0 if the components |
| had different encodings. |
| |
| o merge() failed if there were no common columns and one of the |
| inputs had zero rows. |
| |
| o expand.grid() failed if an input had length 0. |
| |
| o match() does again truncate strings at embedded nuls (as newly |
| documented in 2.7.0). |
| |
| o Because of a typo, 'pointsize' in png(type="cairo") (and jpeg, |
| bmp, tiff) devices was being interpreted in pixels not bigpoints. |
| |
| o is() was wrong for some S3 class objects with class of length |
| greater than one. |
| |
| o undoc() / codoc() were not checking all S4 methods in some cases. |
| |
| o Use of textConnection(NULL, mode="w") could segfault. |
| |
| o Use of strwidth/height(units="user") (the default) is again an |
| error before a user coordinate system has been set on the |
| device, rather than giving nonsensical values (the effect of |
| r31367). |
| |
| o Rare string width calculations in package grid were not |
| interpreting the string encoding correctly. |
| |
| o hasMethods(f, env) {without specified 'package'} now works better. |
| |
| o A missing PROTECT could cause segfaults on string |
| comparisons. (PR#11421) |
| |
| o str(structure(1, classID = "Pooh")) now works fine. |
| |
| o A missing PROTECT could cause segfaults in if() if coercion of |
| the condition was required or a warning was to be given. |
| |
| o plot(<table>) now uses a sensible default main title. |
| |
| o validObject() called with complete=TRUE did not use inherited |
| validity methods for slot classes. |
| |
| o Several bugs fixed in as(): the initial method lookup was not |
| using the table with inherited methods (so inheritance had to |
| be recomputed each time); coerce() should not be called |
| directly--it can insert invalid inherited methods; the |
| constructed as() methods were not retaining the function's |
| environment. |
| |
| o influence.measures(<glm-object>) now computes the same |
| Cook's distance approximations as cooks.distance(). |
| |
| o plot(<glm>, which=5) uses more correct Cook's distance contours; |
| (fix to fix to PR#9316). |
| |
| o pdf() and postscript() were not working correctly in 2.7.0 with |
| UTF-8 encoded data in a non-UTF-8 MBCS (e.g. EUC-JP on Unix, |
| CJK locales on Windows). |
| |
| o conformMethod(), called by setMethod(), now checks better about |
| argument names in wrong order. Whereas it only warns currently, |
| it is planned to become an error in the future. |
| |
| o The predict() method for prcomp() had an incorrect check for |
| the number of columns of 'newdata' if the columns were not named. |
| |
| o The axis() function now distinguishes between setting "at" to |
| NULL or a zero-length vector, treating the latter as a request |
| for no ticks. This corrects the handling of the "x" parameter |
| to rug(). |
| |
| o glob2rx("*[*") now produces a correct regular expression. |
| |
| o The canvas is no longer painted on copy or save in Cocoa Quartz. |
| |
| o identify() in Quartz can now be terminated by either using popup |
| menu equivalent (Ctrl-click or second mouse button) or by pressing |
| the <Esc> key. The latter was documented but did not work. |
| |
| o tools:::.check_package_depends() {called from 'R CMD check'} now |
| also works correctly when directory-name != package-name. |
| |
| o Source references were sometimes off by a line. |
| |
| o The quartz() parameter 'antialias' is no longer ignored. |
| |
| o The Quartz device is now trying hard to remove anti-aliasing |
| effects for rasterized backends in plots that use adjacent, |
| borderless rectangles such as image(). |
| |
| o The srcfilecopy() function now adds a timestamp to the object it |
| creates. |
| |
| o parse() would lose a token when run on stdin(). |
| |
| o socketConnection() was using internally the class "socket" |
| and not "sockconn", which caused a conflict with make.socket(). |
| (PR#11515) |
| |
| o Quartz is now trying harder to find the proper font for a given |
| family which resolves font issues on Mac OS X 10.4. Full font |
| names and PostScript names can be used interchangeably. (Note, |
| however that italic/oblique font faces of Helvetica are not |
| included in the Mac OS X 10.4 system). |
| |
| o qf() no longer gives NaN when one of df1 and df2 is large and |
| the other is infinite (including if both are infinite); it is more |
| accurate e.g. for qf(1e-18, 2,4). |
| |
| o qbeta(-1e10, 50, 40, log.p=TRUE) no longer hangs. |
| |
| o Cocoa Quartz backend autodetection of display DPI was not |
| correct for screens rotated by 90 or 270 degrees. |
| |
| o selectMethod("coerce", .) now uses a correct default for |
| 'useInherited', and hence no longer may mess up the method cache. |
| |
| o show() now also works on "unregistered" S3 class objects. |
| |
| o formatC(*, format="fg", flag="#") is no longer dropping trailing |
| zeros. |
| |
| o read.table(file = stdin()) with invalid input could leave the |
| connection in an invalid state and hence cause a later |
| segfault. (PR#11627) |
| |
| o read.DIF() did not obey the default 'stringsAsFactors = TRUE'. |
| |
| o The 'noquote' method for c() now works correctly with three or |
| more arguments. |
| |
| o symbol() in plotmath expressions works again with non-ASCII |
| input on devices that use UTF-8 for the symbol font. |
| |
| |
| |
| CHANGES IN R VERSION 2.7.0 |
| |
| |
| SIGNIFICANT USER-VISIBLE CHANGES |
| |
| o The default graphics device in non-interactive use is now |
| pdf() rather than postscript(). [PDF viewers are now |
| more widely available than PostScript viewers.] |
| |
| The default width and height for pdf() and bitmap() have been |
| changed to 7 (inches) to match the screen devices. |
| |
| o Most users of the X11() device will see a new device that has |
| different fonts, anti-aliasing of lines and fonts and |
| supports semi-transparent colours. |
| |
| o Considerable efforts have been made to make the default output |
| from graphics devices as similar as possible (and in |
| particular close to that from postscript/pdf). Many devices |
| were misinterpreting 'pointsize' in some way, for example as |
| being in device units (pixels) rather than in points. |
| |
| o Packages which include graphics devices need to be re-installed |
| for this version of R, with recently updated versions. |
| |
| |
| NEW FEATURES |
| |
| o The apse code used by agrep() has been updated to version |
| 0.16, with various bug fixes. |
| |
| agrep() now supports multibyte character sets. |
| |
| o any() and all() avoid coercing zero-length arguments (which |
| used a surprising amount of memory) since they cannot affect |
| the answer. |
| |
| Coercion of other than integer arguments now gives a warning |
| as this is often a mistake (e.g. writing all(pr) > 0 instead |
| of all(pr > 0) ). |
| |
| o as.Date(), as.POSIXct() and as.POSIXlt() now convert numeric |
| arguments (days or seconds since some epoch) provided the |
| 'origin' argument is specified. |
| |
| o New function as.octmode() to create objects such as file |
| permissions. |
| |
| o as.POSIXlt() is now generic, and it and as.POSIXct() gain a |
| '...' argument. The character/factor methods now accept a |
| 'format' argument (analogous to that for as.Date). |
| |
| o New function browseVignettes() lists available vignettes in an |
| HTML browser with links to PDF, Rnw, and R files. |
| |
| o There are new capabilities "aqua" (for the AQUA GUI and quartz() |
| device on Mac OS X) and "cairo" (for cairo-based graphics |
| devices). |
| |
| o New function checkNEWS() in package 'tools' that detects common |
| errors in NEWS file formatting. |
| |
| o deparse() gains a new argument 'nlines' to limit the number of |
| lines of output, and this is used internally to make several |
| functions more efficient. |
| |
| o deriv() now knows the derivatives of digamma(x), trigamma(x) |
| and psigamma(x, deriv) (wrt to x). |
| |
| o dir.create() has a new argument 'mode', used on Unix-alikes |
| (only) to set the permissions on the created directory. |
| |
| o Where an array is dropped to a length-one vector by drop() or |
| [, drop = TRUE], the result now has names if exactly one of |
| the dimensions was named. (This is compatible with S.) |
| Previously there were no names. |
| |
| o The 'incomparables' argument to duplicated(), unique() and |
| match() is now implemented, and passed to match() from merge(). |
| |
| o dyn.load() gains a 'DLLpath' argument to specify the path for |
| dependent DLLs: currently only used on Windows. |
| |
| o The spreadsheet edit() methods (and used by fix()) for data |
| frames and matrices now warn when classes are discarded. |
| |
| When editing a data frame, columns of unknown type (that is |
| not numeric, logical, character or factor) are now converted |
| to character (instead of numeric). |
| |
| o file.create() has a new argument 'showWarnings' (default TRUE) |
| to show an informative warning when creation fails, and |
| dir.create() warns under more error conditions. |
| |
| o New higher-order functions Find(), Negate() and Position(). |
| |
| o [dpqr]gamma(*, shape = 0) now work as limits of 'shape -> 0', |
| corresponding to the point distribution with all mass at 0. |
| |
| o An informative warning (in addition to the error message) will |
| be given when the basic, extended or perl mode of grep(), |
| strsplit() and friends fails to compile the pattern. |
| |
| o More study is done of perl=TRUE patterns in grep() and friends |
| when length(x) > 10: this should improve performance on long |
| vectors. |
| |
| o grep(), strsplit() and friends with fixed=TRUE or perl=TRUE |
| work in UTF-8 and preserve the UTF-8 encoding for UTF-8 inputs |
| where supported. |
| |
| o help.search() now builds the database about 3x times faster. |
| |
| o iconv() now accepts "UTF8" on all platforms (many did, but not |
| e.g. libiconv as used on Windows). |
| |
| o identity() convenience function to be used for programming. |
| |
| o In addition to warning when 'pkgs' is not found, |
| install.packages() now reports if it finds a valid package |
| with only a case mismatch in the name. |
| |
| o intToUtf8() now marks the Encoding of its output. |
| |
| o The function is() now works with S3 inheritance; that is, with |
| objects having multiple strings in the class attribute. |
| |
| o Extensions to condition number computation for matrices, notably |
| complex ones are provided, both in kappa() and the new rcond(). |
| |
| o list.files() gains a 'ignore.case' argument, to allow |
| case-insensitive matching on some Windows/MacOS file systems. |
| |
| o ls.str() and lsf.str() have slightly changed arguments and |
| defaults such that ls.str() {no arguments} works when debugging. |
| |
| o Under Unix, utils::make.packages.html() can now be used directly |
| to set up linked HTML help pages, optionally without creating |
| the package listing and search database (which can be much |
| faster). |
| |
| o new.packages() now knows about the front-end package gnomeGUI |
| (which does not install into a library). |
| |
| o optim(*, control = list(...)) now warns when '...' contains |
| unexpected names, instead of silently ignoring them. |
| |
| o The options "browser" and "editor" may now be set to functions, |
| just as "pager" already could. |
| |
| o packageDescription() makes use of installed metadata where |
| available (for speed, e.g. in make.packages.html()). |
| |
| o pairwise.t.test() and pairwise.wilcox.test() now more explicitly |
| allow paired tests. In the former case it is now flagged as an |
| error if both 'paired' and 'pool.SD' are set TRUE (formerly, |
| 'paired' was silently ignored), and one-sided tests are generated |
| according to 'alternative' also if 'pool.SD' is TRUE. |
| |
| o paste() and file.path() are now completely internal, for speed. |
| (This speeds up make.packages.html(packages=FALSE) |
| severalfold, for example.) |
| |
| o paste() now sets the encoding on the result under some |
| circumstances (see ?paste). |
| |
| o predict.loess() now works when loess() was fitted with |
| transformed explanatory variables, e.g, loess(y ~ log(x) + log(z)). |
| |
| o print(<data.frame>)'s new argument 'row.names' allows to suppress |
| printing rownames. |
| |
| o print() and str() now also "work" for 'logLik' vectors longer than |
| one. |
| |
| o Progress-bar functions txtProgressBar(), tkProgressBar() in |
| package tcltk and winProgressBar() (Windows only). |
| |
| o readChar() gains an argument 'useBytes' to allow it to read a |
| fixed number of bytes in an MBCS locale. |
| |
| o readNEWS() has been moved to the tools package. |
| |
| o round() and signif() now do internal argument matching if |
| supplied with two arguments and at least one is named. |
| |
| o New function showNonASCII() in package tools to aid detection |
| of non-ASCII characters in .R and .Rd files. |
| |
| o The [dpq]signrank() functions now typically use considerably |
| less memory than previously, thanks to a patch from Ivo |
| Ugrina. |
| |
| o spec.ar() now uses frequency(x) when calculating the |
| frequencies of the estimated spectrum, so that for monthly |
| series the frequencies are now per year (as for spec.pgram) |
| rather than per month as before. |
| |
| o spline() gets an 'xout' argument, analogously to approx(). |
| |
| o sprintf() now does all the conversions needed in a first pass if |
| length(fmt) == 1, and so can be many times faster if called |
| with long vector arguments. |
| |
| o [g]sub(useBytes = FALSE) now sets the encoding on changed |
| elements of the result when working on an element of known |
| encoding. (This was previously done only for perl = TRUE.) |
| |
| o New function Sys.chmod(), a wrapper for 'chmod' on platforms |
| which support it. (On Windows it handles only the read-only |
| bit.) |
| |
| o New function Sys.umask(), a wrapper for 'umask' on platforms |
| which support it. |
| |
| o New bindings ttk*() in package tcltk for the 'themed widgets' |
| of Tk 8.5. The tcltk demos make use of these widgets where |
| available. |
| |
| o write.table(d, row.names=FALSE) is faster when 'd' has millions of |
| rows; in particular for a data frame with automatic row names. |
| (Suggestion from Martin Morgan.) |
| |
| |
| o The parser limit on string size has been removed. |
| |
| o If a NEWS file is present in the root of a source package, it |
| is installed (analogously to LICENSE, LICENCE and COPYING). |
| |
| o Rd conversion to 'example' now quotes aliases which contain |
| spaces. |
| |
| o The handling of DST on dates outside the range 1902-2037 has |
| been improved. Dates after 2037 are assumed to have the same |
| DST rules as currently predicted for the 2030's (rather than |
| the 1970s), and dates prior to 1902 are assumed to have no DST |
| and the same offset as in 1902 (if known, otherwise as in the |
| 1970s). |
| |
| o On platforms where we can detect that mktime sets errno |
| (e.g. Solaris and the code used on Windows but not Linux nor |
| Mac OS X), 1969-12-31 23:59:59 GMT is converted from POSIXlt |
| to POSIXct as -1 and not NA. |
| |
| o The definition of 'whitespace' used by the parser is slightly |
| wider: it includes Unicode space characters on Windows and in |
| UTF-8 locales on machines which use Unicode wide characters. |
| |
| o The src/extra/intl sources have been updated to those from |
| gettext 0.17. |
| |
| o New flag --interactive on Unix-alikes forces the session to be |
| interactive (as --ess does on Windows). |
| |
| o x[<zero-length>] <- NULL is always a no-op: previously |
| type-checking was done on the replacement value and so this |
| failed, whereas we now assume NULL can be promoted to any |
| zero-length vector-like object. |
| |
| Other cases of a zero-length index are done more efficiently. |
| |
| o There is a new option in Rd markup of \donttest{} to mark |
| example code that should be run by example() but not tested |
| (e.g. because it might fail in some locales). |
| |
| o The error handler in the parser now reports line numbers for |
| more syntax errors (MBCS and Unicode encoding errors, line |
| length and context stack overflows, and mis-specified argument |
| lists to functions). |
| |
| o The "MethodsList" objects originally used for method selection |
| are being phased out. New utilities provide simpler |
| alternatives (see ?findMethods), and direct use of the mangled |
| names for the objects is now deprecated. |
| |
| o Creating new S4 class and method definitions in an environment |
| that could not be identified (as package, namespace or global) |
| previously generated an error. It now results in creating and |
| using an artificial package name from the current date/time, |
| with a warning. See ?getPackageName. |
| |
| o Unix-alikes now give a warning on startup if locale settings |
| fail. (The Windows port has long done so.) |
| |
| o Parsing and scanning of numerical constants is now done by R's |
| own C code. This ensures cross-platform consistency, and |
| mitigates the effects of setting LC_NUMERIC (within base R it |
| only applies to output -- packages may differ). |
| |
| The format accepted is more general than before and includes |
| binary exponents in hexadecimal constants: see |
| ?NumericConstants for details. |
| |
| o Dependence specifications for R or packages in the Depends |
| field in a DESCRIPTION file can now make use of operators |
| < > == and != (in addition to <= and >=): such packages will |
| not be installable nor loadable in R < 2.7.0. |
| |
| There can be multiple mentions of R or a package in the Depends |
| field in a DESCRIPTION file: only the first mention will be |
| used in R < 2.7.0. |
| |
| |
| GRAPHICS CHANGES |
| |
| o The default graphics devices in interactive and |
| non-interactive sessions are now configurable via environment |
| variables R_INTERACTIVE_DEVICE and R_DEFAULT_DEVICE |
| respectively. |
| |
| o New function dev.new() to launch a new copy of the default |
| graphics device (and taking care if it is "pdf" or |
| "postscript" not to trample on the file of an already running |
| copy). |
| |
| o dev.copy2eps() uses dev.displaylist() to detect screen |
| devices, rather than list them in the function. |
| |
| o New function dev.copy2pdf(), the analogue of dev.copy2eps(). |
| |
| o dev.interactive() no longer treats a graphics device as |
| interactive if it has a display list (but devices can still |
| register themselves on the list of interactive devices). |
| |
| o The X11() and windows() graphics devices have a new argument |
| 'title' to set the window title. |
| |
| o X11() now has the defaults for all of its arguments set by the |
| new function X11.options(), inter alia replacing options |
| "gamma", "colortype" and "X11fonts". |
| |
| o ps.options() now warns on unused option 'append'. |
| |
| xfig() no longer takes default arguments from ps.options(). |
| (This was not documented prior to 2.6.1 patched.) |
| |
| pdf() now takes defaults from the new function pdf.options() |
| rather that from ps.options() (and the latter was not |
| documented prior to 2.6.1 patched). |
| |
| The defaults for all arguments other than 'file' in |
| postscript() and pdf() can now be set by ps.options() or |
| pdf.options() |
| |
| o New functions setEPS() and setPS() as wrappers to ps.options() |
| to set appropriate defaults for figures for inclusion in other |
| documents and for spooling to a printer respectively. |
| |
| o The meaning of numeric 'pch' has been extended where MBCSes are |
| supported. Now negative integer values indicate Unicode |
| points, integer values in 32-127 represent ASCII characters, |
| and 128-255 are valid only in single-byte locales. |
| (Previously what happened with negative pch values was |
| undocumented: they were replaced by the current setting of |
| par("pch").) |
| |
| o Graphics devices can say if they can rotate text well |
| (e.g. postscript() and pdf() can) and if so the device's |
| native text becomes the default for contour labels rather than |
| using Hershey fonts. |
| |
| o The setting of the line spacing (par("cra")[2]) on the X11() and |
| windows() devices is now comparable with postscript() etc, and |
| roughly 20% smaller than before (it used to depend on the |
| locale for X11). (So is the pictex() device, now 20% larger.) |
| This affects the margin size in plots, and should result in |
| better-looking plots. |
| |
| o There is a per-device setting for whether new frames need |
| confirmation. This is controlled by either par("ask") or |
| grid.prompt() and affects all subsequent plots on the device |
| using base or grid graphics. |
| |
| o There is a new version of the X11() device based on cairo |
| graphics which is selected by type "cairo" or "nbcairo", and |
| is available on machines with cairo installed and preferably |
| pango (which most machines with gtk+ >= 2.8 will have). This |
| version supports translucent colours and normally does a |
| better job of font selection so it has been possible to |
| display (e.g.) English, Polish, Russian and Japanese text on |
| a single X11() window. It is the default where available. |
| |
| There is a companion function, savePlot(), to save the current |
| plot to a PNG file. |
| |
| On Unix-alikes, devices jpeg() and png() also accept |
| type = "cairo", and with that option do not need a running |
| X server. The meaning of capabilities("jpeg") and |
| capabilities("png") has changed to reflect this. On MacOS X, |
| there is a further type = "quartz". The default type is |
| selected by the new option "bitmapType", and is "quartz" or |
| "cairo" where available. |
| |
| Where cairo 1.2 or later is supported, there is a svg() device |
| to write SVG files, and cairo_pdf() and cairo_ps() devices to |
| write (possibly bitmap) PDF and postscript files via cairo. |
| |
| Some features require cairo >= 1.2, and some which are |
| nominally supported under 1.2 seem to need 1.4 to work well. |
| |
| o There are new bmp() and tiff() devices. |
| |
| o New function devSize() to report the size of the current |
| graphics device surface (in inches or device units). This |
| gives the same information as par("din"), but independent of |
| the graphics subsystem. |
| |
| o New base graphics function clip() to set the clipping region (in |
| user coordinates). |
| |
| o New functions grconvertX() and grconvertY() to convert between |
| coordinate systems in base graphics. |
| |
| o identify() recycles its 'labels' argument if necessary. |
| |
| o stripchart() is now a generic function, with default and |
| formula methods defined. Additional graphics parameters may |
| be included in the call. Formula handling is now |
| similar to boxplot(). |
| |
| o strwidth() and strheight() gain 'font' and 'vfont' arguments and |
| accept in-line pars such as 'family' in the same way as text() |
| does. (Longstanding wish of PR#776) |
| |
| o example(ask=TRUE) now applies to grid graphics (e.g. from |
| lattice) as well as to base graphics. |
| |
| o Option "device.ask.default" replaces "par.ask.default" now it |
| applies also to grid.prompt(). |
| |
| o plot.formula() only prompts between plots for interactive |
| devices (it used to prompt for all devices). |
| |
| o When plot.default() is called with y=NULL it now calls Axis() |
| with the 'y' it constructs rather than use the default axis. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o In package installation, SaveImage: yes is defunct and |
| lazyloading is attempted instead. |
| |
| o $ on an atomic vector or S4 object is now defunct. |
| |
| o Partial matching in [[ is now only performed if explicitly |
| requested (by exact=FALSE or exact=NA). |
| |
| o Command-line completion has been moved from package 'rcompgen' |
| to package 'utils': the former no longer exists as a separate |
| package in the R distribution. |
| |
| o The S4 pseudo-classes "single" and double have been removed. |
| (The S4 class for a REALSXP is "numeric": for back-compatibility |
| as(x, "double") coerces to "numeric".) |
| |
| o gpar(gamma=) in the grid package is now defunct. |
| |
| o Several S4 class definition utilities, get*(), have been said |
| to be deprecated since R 1.8.0; these are now formally deprecated. |
| Ditto for removeMethodsObject(). |
| |
| o Use of the graphics headers Rgraphics.h and Rdevices.h is |
| deprecated, and these will be unavailable in R 2.8.0. |
| (They are hardly used except in graphics devices, for which |
| there is an updated API in this version of R.) |
| |
| o options("par.ask.default") is deprecated in favour of |
| "device.ask.default". |
| |
| o The 'device-independent' family "symbol" is deprecated as it was |
| highly locale- and device-dependent (it only did something |
| useful in single-byte locales on most devices) and font=5 |
| (base) or fontface=5 (grid) did the job it was intended to do |
| more reliably. |
| |
| o gammaCody() is now formally deprecated. |
| |
| o Two low-level functions using MethodsList metadata objects |
| (mlistMetaName() and getAllMethods()) are deprecated. |
| |
| o Setting par(gamma=) is now deprecated, and the windows() |
| device (the only known example) no longer allows it. |
| |
| o The C macro 'allocString' will be removed in 2.8.0 -- use |
| 'mkChar', or 'allocVector' directly if really necessary. |
| |
| |
| INSTALLATION |
| |
| o Tcl/Tk >= 8.3 (released in 2000) is now required to build |
| package tcltk. |
| |
| o configure first tries TCL_INCLUDE_SPEC and TK_INCLUDE_SPEC |
| when looking for Tcl/Tk headers. (The existing scheme did |
| not work for the ActiveTcl package on Mac OS X.) |
| |
| o The Windows build only supports Windows 2000 or later (XP, |
| Vista, Server 2003 and Server 2008). |
| |
| o New option --enable-R-static-lib installs libR.a which can |
| be linked to a front-end via 'R CMD config --ldflags'. |
| The tests/Embedding examples now work with a static R |
| library. |
| |
| o Netscape (which was discontinued in Feb 2008) is no longer |
| considered when selecting a browser. |
| |
| o xdg-open (the freedesktop.org interface to |
| kfmclient/gnome-open/...) is considered as a possible browser, |
| after real browsers such as firefox, mozilla and opera. |
| |
| o The search for tclConfig.sh and tkConfig.sh now only looks in |
| directories with names containing $(LIBnn) in the hope of |
| finding the version for the appropriate architecture |
| (e.g. x86_64 or i386). |
| |
| o libtool has been updated to version 2.2. |
| |
| o Use of --with-system-zlib, --with-system-bzlib or |
| --with-system-pcre now requires version >= 1.2.3, 1.0.5, 7.6 |
| respectively, for security. |
| |
| |
| UTILITIES |
| |
| o Rdconv now removes empty sections including alias and keyword |
| entries, with a note. |
| |
| o Keyword entries are no longer mandatory in Rd files. |
| |
| o R CMD INSTALL now also installs tangled versions of all vignettes. |
| |
| o R CMD check now warns if spaces or non-ASCII characters are |
| used in file paths, since these are not in general portable. |
| |
| o R CMD check (via massage-Examples.pl) now checks all examples |
| with a 7 inch square device region on A4 paper, for |
| locale-independence and to be similar to viewing examples on |
| an on-screen device. |
| |
| If a package declares an encoding in the DESCRIPTION file, |
| the examples are assumed to be in that encoding when running |
| the tests. (This avoids errors in running latin1 examples in a |
| UTF-8 locale.) |
| |
| o R CMD check uses pdflatex (if available) to check the typeset |
| version of the manual, producing PDF rather than DVI. (This |
| is a better check since the package reference manuals on CRAN |
| are in PDF.) |
| |
| o R CMD Rd2dvi gains a --encoding argument to be passed to |
| R CMD Rdconv, to set the default encoding for conversions. |
| If this is not supplied and the files are package sources and |
| the DESCRIPTION file contains an Encoding field, that is used |
| for the default encoding. |
| |
| o available.packages() (and hence install.packages() etc) now |
| supports subdirectories in a repository, and |
| tools::write_PACKAGES() can now produce PACKAGES files |
| including subdirectories. |
| |
| o The default for 'stylepath' in Sweave's (default) RweaveLatex |
| driver can be set by the environment variable |
| SWEAVE_STYLEPATH_DEFAULT: see ?RweaveLatex. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o Both the Unix and Windows interfaces for embedding now make |
| use of 'const char *' declarations where appropriate. |
| |
| o Rprintf() and REprintf() now use 'const char *' for their format |
| argument -- this should reduce warnings when called from C++. |
| |
| o There is a new description of the interface for graphics |
| devices in the 'R Internals' manual, and several new entry |
| points. The API has been updated to version R_GE_version = 5, |
| and graphics devices will need to be updated accordingly. |
| |
| o Graphics devices can now select to be sent text in UTF-8, even |
| if the current locale is not UTF-8 (and so enable text entered |
| in UTF-8 to be plotted). This is used by postscript(), pdf() |
| and the windows() family of devices, as well as the new |
| cairo-based devices. |
| |
| o More Lapack routines are available (and declared in R_Ext/Lapack.h), |
| notably for (reciprocal) condition number estimation of complex |
| matrices. |
| |
| o Experimental utility R_has_slot supplementing R_do_slot. |
| |
| o There is a new public interface to the encoding info stored on |
| CHARSXPs, getCharCE and mkCharCE using the enumeration type |
| cetype_t. |
| |
| o A new header 'R_ext/Visibility.h' contains some definitions for |
| controlling the visibility of entry points, and how to control |
| visibility is now documented in 'Writing R Extensions'. |
| |
| |
| BUG FIXES |
| |
| o pt(x, df) is now even more accurate in some cases (e.g. 12 instead |
| of 8 significant digits), when x^2 << df, thanks to a remark from |
| Ian Smith, related to PR#9945. |
| |
| o co[rv](use = "complete.obs") now always gives an error if there |
| are no complete cases: they used to give NA if |
| method = "pearson" but an error for the other two methods. |
| (Note that this is pretty arbitrary, but zero-length vectors |
| always give an error so it is at least consistent.) |
| |
| Since sd(na.rm=TRUE) and var(na.rm=TRUE) both call cov(use = |
| "complete.obs"), this applies also to them. |
| |
| cor(use="pair") used to give diagonal 1 even if the variable |
| was completely missing for the rank methods but NA for the |
| Pearson method: it now gives NA in all cases. |
| |
| cor(use="pair") for the rank methods gave a matrix result with |
| dimensions > 0 even if one of the inputs had 0 columns. |
| |
| o Supplying edit.row.names = TRUE when editing a matrix without |
| row names is now an error and not a segfault. (PR#10500) |
| |
| o The error handler in the parser reported unexpected |
| & as && and | as ||. |
| |
| o ps.options(reset = TRUE) had not reset for a long time. |
| |
| o paste() and file.path() no longer allow NA_character_ for |
| their 'sep' and 'collapse' arguments. |
| |
| o by() failed for 1-column matrices and dataframes. (PR#10506) |
| However, to preserve the old behaviour, the default method |
| when operating on a vector still passes subsets of the vector |
| to FUN, and this is now documented. |
| |
| o Better behaviour of str.default() for non-default |
| 'strict.width' (it was calling str() rather than str.default() |
| internally); also, more useful handling of options("str"). |
| |
| o wilcox.test(exact=FALSE, conf.int=TRUE) could fail in some |
| extreme two-sample problems. (Reported by Wolfgang Huber.) |
| |
| o par(pch=) would accept a multi-byte string but only use the |
| first byte. This would lead to incorrect results in an MBCS |
| locale if a non-ASCII character was supplied. |
| |
| o There are some checks for valid C-style formats in, e.g. |
| png(filename=). (PR#10571) |
| |
| o vector() was misinterpreting some double 'length' values, e.g, |
| NaN and NA_real_ were interpreted as zero. Also, invalid |
| types of 'length' were interpreted as -1 and hence reported as |
| negative. (length<- shared the code and hence the same |
| misinterpretations.) |
| |
| o A basic class "S4" was added to correspond to the "S4" object |
| type, so that objects with this type will print, etc. The |
| class is VIRTUAL, since all actual S4 objects must have a real |
| class. |
| |
| o Classes with no slots that contain only VIRTUAL classes are now |
| VIRTUAL, as was intended but confused by having an empty S4 |
| object as prototype. ## backed out temporarily ## |
| |
| o format.AsIs() discarded dimnames, causing dataframes with matrix |
| variables to be printed without using the column names, unlike |
| what happens in S-PLUS (Tim Hesterberg, PR#10730). |
| |
| o xspline() and grid::grid.xspline() work in device coordinates |
| and now correct for anisotropy in the device coordinate |
| system. |
| |
| o grid.locator() now indicates to the graphics device that it is |
| is in 'graphics input' mode (as locator() and identify() |
| always have). This means that devices can now indicate the |
| 'graphics input' mode by e.g. a change of cursor. |
| |
| o Locales without encoding specification and non-UTF-8 locales |
| now work properly on Mac OS X. Note that locales without |
| encoding specification always use UTF-8 encoding in Mac OS X |
| (except for specials "POSIX" and "C") - this is different from |
| other operating systems. |
| |
| o iconv() now correctly handles to="" and from="" on Mac OS X. |
| |
| o In diag()'s argument list, drop the explicit default (' = n') |
| for 'ncol' which is ugly when making diag() generic. |
| |
| o S4 classes with the same name from different packages were not |
| recognized because of a bug in caching the new definition. |
| |
| o jpeg() and png() no longer maintain a display list, as they |
| are not interactive devices. |
| |
| o Using attr(x, "names") <- value (instead of the correct |
| names<-) with 'value' a pairlist (instead of the correct |
| character vector) worked incorrectly. (PR#10807) |
| |
| o Using [<- to add a column to a data frame dropped other |
| attributes whereas [[<- and $<- did not: now all preserve |
| attributes. (PR#10873) |
| |
| o File access functions such as file.exists(), file.info(), |
| dirname() and unlink() now treat an NA filename as a |
| non-existent file and not the file "NA". |
| |
| o r<foo>(), the random number generators, are now more consistent |
| in warning when NA's (specifically NaN's) are generated. |
| |
| o rnorm(n, mu = Inf) now returns rep(Inf, n) instead of NaN; |
| similar changes are applied to rlnorm(), rexp(), etc. |
| |
| o [l]choose() now warns when rounding non-integer 'k' instead of |
| doing so silently. (May help confused users such as PR#10766.) |
| |
| o gamma() was warning incorrectly for most negative values as being |
| too near a negative integer. This also affected other |
| functions making use of its C-level implementation. |
| |
| o dumpMethod() and dumpMethods() now work again. |
| |
| o package.skeleton() now also works for code_files with only |
| metadata (e.g. S4 setClass) definitions; it handles S4 classes and |
| methods, producing documentation and NAMESPACE exports if requested. |
| |
| o Some methods package utilities (implicitGeneric(), makeGeneric()) |
| will be more robust in dealing with primitive functions (not a |
| useful idea to call them with primitives, though) |
| |
| o Making a MethodsList from a function with no methods table will |
| return an empty list, rather than cause an error (questionably |
| a bug, but caused some obscure failures). |
| |
| o setAs() now catches 2 arguments in the method definition, if |
| they do not match the arguments of coerce(). |
| |
| o S4 methods with missing arguments in the definition are handled |
| correctly when non-signature arguments exist, and check for |
| conflicting local names in the method definition. |
| |
| o qgamma() and qchisq() could be inaccurate for small p, |
| e.g. qgamma(1.2e-10, shape = 19) was 2.52 rather than 2.73. |
| |
| o dbeta(.., ncp) is now more accurate for large ncp, and typically no |
| longer underflows for give.log = TRUE. |
| |
| o coerce() is now a proper S4 object and so prints correctly. |
| |
| o @ now checks it is being applied to an S4 object, and if not |
| gives a warning (which will become an error in 2.8.0). |
| |
| o dump() and friends now warn that all S4 objects (even those |
| based on vectors) are not source()able, with a stronger wording. |
| |
| o read.dcf(all = TRUE) was leaking connections. |
| |
| o scan() with a non-default separator could skip nul bytes, |
| including those entered as \0 with allowEscapes=TRUE. This |
| was different from the default separator. |
| |
| o determinant(matrix(,0,0)) now returns a correct "det" result; |
| also value 1 or 0 depending on 'logarithm', rather than numeric(0). |
| |
| o Name space 'grDevices' was not unloading its DLL when the |
| name space was unloaded. |
| |
| o getNativeSymbolInfo() was unaware of non-registered Fortran |
| names, because one of the C support routines ignored them. |
| |
| o load() again reads correctly character strings with embedded nuls. |
| (This was broken in 2.6.x, but worked in earlier versions.) |
| |
| |
| |
| |
| ************************************************** |
| * * |
| * 2.6 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 2.6.2 patched |
| |
| |
| BUG FIXES |
| |
| o src/extra/pcre has been updated to PCRE 7.6 (bugfix release). |
| |
| o unlink(..., recursive=TRUE) no longer crashes on some platforms |
| if a directory cannot be opened. |
| |
| o Loading in 2.6.2 a saved workspace could give an unimportant |
| warning in a non-UTF-8 multibyte locale (in particular a CJK |
| locale on Windows) which is now suppressed. |
| |
| o print() methods are more consistent in returning the original |
| argument invisibly. |
| |
| o Using the X11 data editor (e.g. via edit(), fix() or View()) |
| could crash if the 'End' key was used and all the columns |
| would have fitted into the window. |
| |
| o Creating a new page on an X11() device (by plot.new() or |
| grid.newpage()) did not flush out the XClearWindow call, so |
| the X11 window might not be refreshed immediately. |
| |
| o libtool has been updated to version 1.5.26, which avoids |
| many spurious configure warnings on Darwin/Mac OS X. |
| |
| o l10n_info() now recognizes how Darwin/Mac OS X reports |
| Latin-1 locales (as charset ISO8859-1 rather than ISO-8859-1). |
| |
| o Checking examples which used grid (e.g. via lattice) without |
| attaching grid no longer give errors from grid_plot_hook(). |
| |
| o kappa(m, exact=TRUE) no longer wrongly uses 'exact=FALSE' when m |
| is an 'lm' or 'qr' object because the kappa.tri(x, exact=TRUE) |
| now works correctly. |
| |
| o help(topic, offline=TRUE) misbehaved when there were multiple |
| matches to 'topic'. (PR#10859) |
| |
| o The 'multilib' changes on Linux broke the use of |
| sub-architectures without a main architecture. |
| |
| o source(echo=TRUE) would skip lines consisting entirely of the |
| letter t. (PR#10923) |
| |
| o bzip2 has been updated to 1.0.5 (security fix). |
| |
| |
| |
| CHANGES IN R VERSION 2.6.2 |
| |
| |
| NEW FEATURES |
| |
| o colnames(DF) is now also fast for large dataframes DF with |
| automatic row.names. Note that the correct usage is |
| names(DF). (PR#10470) |
| |
| o tools::texi2dvi() works around the failure of 'texi2dvi --quiet' |
| to be quiet in texinfo 4.11. |
| |
| o On Linux, parallel 32/64-bit installations are supported using |
| multilib. |
| |
| BUG FIXES |
| |
| o A compilation problem on one system where glob was not found |
| has been corrected. (PR#10468) |
| |
| o The "profile.nls" method of plot() was losing the x axis labels. |
| |
| o array() computed the total number of entries in the array before |
| coercing the dimensions to integer. (Reported by Allen McIntosh.) |
| |
| o persp() misreported errors in the y parameter. (Reported by Allen |
| McIntosh.) |
| |
| o source("clipboard", echo=TRUE) and file("clipboard", open="rt") |
| gave spurious errors. (Reported by Fernando Saldanha.) |
| |
| o attributes<-() stripped any existing attributes before checking |
| that all elements of the right-hand side had names. |
| |
| o rbinom(n, size, *) gave NaN when 'size > .Machine$integer.max'. |
| |
| o print.summary.lm() is now consistent in the capitalization of |
| "R-squared". |
| |
| o confint() misreported on some rank-deficient lm() models. |
| (PR#10496) This could also occur in the default method. |
| |
| o \code{\var{<name>}} was not rendered correctly to latex in Rd |
| files for non-alphabetic arguments <name>. |
| |
| o In 2.6.1, curve(*, add=TRUE) used a wrong default 'xlim' when x |
| coordinates were logged. |
| |
| o The Java-based search in help.start() now only requires a |
| JVM >= 1.4 (2.6.1 accidentally required >= 1.5). |
| |
| o The default method for range() was omitting 'na.rm' for |
| non-numeric objects such as those of class "Date". (PR#10508) |
| |
| o cut(x, breaks=<n>) misbehaved on a constant vector of negative |
| values. |
| |
| o bxp(), the plotting engine of boxplot(), no longer plots staple |
| ticks multiple times. (PR#10499) |
| |
| o The automatic detection of the domain for message translation |
| was not working correctly for messages in message(), warning() |
| and stop() in packages other than 'base'. |
| |
| o The profile.nls() function misbehaved when encountering |
| non-convergence of the "port" algorithm. |
| |
| o Under certain rare circumstances in R 2.6.x, log(), round() |
| and trunc() could alter their arguments in the caller. This |
| involved passing of empty '...' arguments, and was spotted |
| when using apply(x, 2, log). |
| |
| o par() no longer warns unnecessarily when asked to set new=FALSE |
| on an unused graphics device. |
| |
| o plot.formula() was not passing on '...' when used with a |
| one-sided formula. |
| |
| plot.formula() was not accepting expressions for annotations |
| passed to title(). (PR#10525) |
| |
| o pchisq(x, df=0, ncp=L) now returns the correct limit exp(-L/2) for |
| x=0 and is no longer returning NaN for x > 0, L < 80. (PR#10551) |
| |
| o Non-ASCII characters were only working correctly in Hershey |
| fonts if these were specified by the 'vfont' argument to |
| text() and not if specified as a font family. |
| |
| o There were several errors in Hershey$allowed, but the help |
| page listed the allowed combinations correctly. |
| |
| o text() no longer attempts to use 'vfont' with an expression |
| for 'labels' (it was documented not to work). |
| |
| o fisher.test(simulate.p.value = TRUE) gave incorrect answers |
| in some extremely degenerate problems. (PR#10558) |
| |
| o src/extra/pcre has been updated to PCRE 7.5 (bugfix release). |
| |
| o capture.output() completes an incomplete final line of |
| output when file = NULL. (PR#10534) |
| |
| o capture.output() now returns invisibly if output is written to |
| a file/connection. |
| |
| o format.AsIs() did not remove the "AsIs" class and so could go |
| into an infinite loop. |
| |
| o summary.mlm() lost the names of the coefficients when there |
| was only one. |
| |
| o Rdconv was not marking examples files with an encoding if |
| this was known from the package's DESCRIPTION file. |
| |
| o readChar() from a raw vector was reading a number of bytes, |
| not characters. |
| |
| o slotNames() was erroneously treating classes that extend |
| "character" as strings. |
| |
| o R no longer ignores SIGPIPE signals even in processes launched |
| by system(). Instead PR#1959 is handled by a simple error |
| handler which will give an error message in circumstances |
| where none was given before. |
| |
| o The AIC() S4 generic in package stats4 no longer disables |
| dispatch of S3 methods for AIC(). |
| |
| o The conflicts check in library() excluded all S4 generics, even |
| where they were unrelated to the function masked. It is now |
| more selective (although still too generous to S4 generics). |
| |
| o proc.time() was missing a protect and could misbehave if |
| provoked by gctorture(). (PR#10600) |
| |
| o The cut() and hist() methods for dates and datetimes are now |
| more accurate for intervals of "months" and "years", thanks to |
| Marc Schwarz. |
| |
| o url()/download.file() could segfault if the HTTP interaction |
| involved a redirect to an address starting with '/' on the |
| same server. |
| |
| o Memory allocations used in format() and in an internal utility |
| function could be off by one byte. (PR#10635) |
| |
| o isoreg(x, y) no longer segfaults when y has NAs. |
| |
| o split(x, g) always returns a list as documented. (It used to |
| return NULL for a zero-length 'x'.) |
| |
| o tapply(x, g, ...) misbehaved if the args were of zero length. |
| (PR#10644) |
| |
| o hist.POSIXt(*, xaxt = "n") no longer suppresses the y-axis. |
| |
| o strptime() crashed under certain locales on Mac OS X. |
| |
| o gregexpr() no longer segfaults when "" is given as the search |
| pattern. Thanks to Hervé Pagès for the bug report. |
| |
| o matplot(x, *) with default 'pch' did not plot columns from column |
| number 37 on (because the default pch was NA for those). (PR#10676) |
| |
| o print.htest() lost output when used within sink(file, split=TRUE). |
| |
| o Setting par(col.main=) also set par("col") to the same colour. |
| |
| o Anonymous fifos were broken (again). |
| |
| |
| |
| CHANGES IN R VERSION 2.6.1 |
| |
| |
| NEW FEATURES |
| |
| o The "data.frame" and "factor" methods for [[ now support |
| the 'exact' argument introduced in 2.6.0. |
| |
| o plot.lm() gains a new argument 'cex.caption' to allow the |
| size of the captions to be controlled. |
| |
| o A series of changes make the CHARSXP cache introduced in 2.6.0 |
| faster (and in some cases many times faster) in sessions with |
| a large number (e.g. a million) of unique character strings, |
| and also if there are many empty strings. |
| |
| o embedFonts(), bitmap() and dev2bitmap() explicitly turn off |
| auto-rotation in Ghostscript when generating PDF. |
| |
| o The canonical architecture is no longer checked when loading |
| packages using a non-empty sub-architecture, since it is |
| possible to (e.g.) build packages for i386-pc-linux-gnu on both |
| that architecture and on x86_64-unknown-linux-gnu. |
| |
| o Deparsing will (if option warnIncomplete is set) warn on |
| strings longer than the parser limit (8192 bytes). |
| |
| o url() now uses the UserAgent header in http transactions in |
| the same way as download.file() (making use of option |
| "HTTPUserAgent"). |
| |
| |
| BUG FIXES |
| |
| o iconv() is again able to translate character strings with |
| embedded nuls (such as those in UCS-2). |
| |
| o new.packages() and update.packages() failed when called on an |
| empty library, since old.packages() threw an error. |
| old.packages() now returns NULL (as documented) in that case. |
| |
| o Builds on Mac OS X 10.4 or higher now allocate enough space |
| in the binary headers to relocate dependent libraries into the |
| framework. |
| |
| o R CMD build now computes the exclusion list on the copy it |
| makes: this avoids problems if the original sources contain |
| symbolic links (which are resolved in the copy). Thanks to |
| Michael Lawrence for diagnosis and patch. |
| |
| o object.size() had slightly too low a size for objects of type "S4". |
| |
| o symbol() in plotmath expressions was only accepting valid |
| character strings, which made it impossible to specify symbols |
| such as aleph (obtained by symbol("\300")) in a UTF-8 locale. |
| |
| o An event handling issue caused autorepeat functions to |
| misbehave with tcltk (notably scrollbars). |
| |
| o plot(sin, -5, 5) gives ylab 'sin(x)' again, where it resulted |
| in 'x(x)' in 2.6.0. Further, plot(sin) again plots from |
| [0,1] also in cases where a previously used coordinate system |
| differs. |
| |
| o curve() with unspecified 'from', 'to' and 'xlim' now reuses the |
| previous x limits, and not slightly larger ones. |
| |
| o It was intended that R code filenames in packages should start |
| with an ASCII letter or digits (and R CMD INSTALL uses that), |
| but the test used in R CMD build ([A-Za-z0-9]) was |
| locale-specific (and excluded t to y in Estonian, for |
| example). (PR#10351) |
| |
| o 'R CMD build' could misbehave when faced with files with CRLF |
| line endings *and* no line ending on the final line of the |
| file, removing the last byte of the file. |
| |
| o DF[i, j] failed in 2.6.0 if j was a logical vector selecting a |
| single column. |
| |
| o Unix x11() would fail if a valid 'display' was specified but |
| DISPLAY was unset. (PR#10379) |
| |
| o postscript() was not always ignoring .Postscript.Options in |
| the workspace (where it should not have occurred). |
| |
| o help.search() would give an error if it found a badly |
| installed package, even if 'package' was not specified. |
| |
| o tclServiceMode() (package tcltk) now works under Unix-alikes. |
| (Although documented, it used only to work under Windows.) |
| |
| o As Mac OS X 10.5.x comes with incompatible /bin/sh shell, we |
| force SHELL=/bin/bash (which is ok) in that case. [Only for |
| 2.6.x: another solution is used in 2.7.0.] |
| |
| o Deliberately using malformed source attributes no longer |
| causes deparsing/printing of functions to crash R. (PR#10437) |
| |
| o R CMD check and R CMD INSTALL now work with (some) directory |
| names containing spaces. |
| |
| o choose(n, k) gave incorrect values for negative n and small k. |
| |
| o plot.ts(x,y) could use wrong default labels; fixed thanks to |
| Antonio, Fabio di Narzo. |
| |
| o reshape() got column names out of sync with contents in some |
| cases; found by Antonio Fabio Di Narzo. |
| |
| o ar(x) for short 'x' (i.e. length <= 10) could fail because the |
| default 'order.max' was >= length(x) which is non-sensical. |
| |
| o Keyboard events in getGraphicsEvent() could cause stack |
| imbalance errors. (PR#10453) |
| |
| |
| |
| CHANGES IN R VERSION 2.6.0 |
| |
| |
| SIGNIFICANT USER-VISIBLE CHANGES |
| |
| o integrate(), nlm(), nlminb(), optim(), optimize() and uniroot() |
| now have '...' much earlier in their argument list. This |
| reduces the chances of unintentional partial matching but |
| means that the later arguments must be named in full. |
| |
| o The default type for nchar() is now "chars". This is almost |
| always what was intended, and differs from the previous default |
| only for non-ASCII strings in a MBCS locale. There is a new |
| argument 'allowNA', and the default behaviour is now to throw |
| an error on an invalid multibyte string if type="chars" or |
| type="width". |
| |
| o Connections will be closed if there is no R object referring to |
| them. A warning is issued if this is done, either at garbage |
| collection or if all the connection slots are in use. |
| |
| |
| NEW FEATURES |
| |
| o abs(), sign(), sqrt(), floor(), ceiling(), exp() and the gamma, |
| trig and hyperbolic trig functions now only accept one |
| argument even when dispatching to a Math group method (which |
| may accept more than one argument for other group members). |
| |
| o abbreviate() gains a 'method' argument with a new option |
| "both.sides" which can make shorter abbreviations. |
| |
| o aggregate.data.frame() no longer changes the group variables |
| into factors, and leaves alone the levels of those which are |
| factors. (Inter alia grants the wish of PR#9666.) |
| |
| o The default 'max.names' in all.names() and all.vars() is now |
| -1 which means unlimited. This fixes PR#9873. |
| |
| o as.vector() and the default methods of as.character(), |
| as.complex(), as.double(), as.expression(), as.integer(), |
| as.logical() and as.raw() no longer duplicate in most cases |
| where the object is unchanged. (Beware: some code has been |
| written that invalidly assumes that they do duplicate, often |
| when using .C/.Fortran(DUP=FALSE).) |
| |
| o as.complex(), as.double(), as.integer(), as.logical() and |
| as.raw() are now primitive and internally generic for |
| efficiency. They no longer dispatch on S3 methods for |
| as.vector() (which was never documented). as.real() and |
| as.numeric() remain as alternative names for as.double(). |
| |
| expm1(), log(), log1p(), log2(), log10(), gamma(), lgamma(), |
| digamma() and trigamma() are now primitive. (Note that logb() |
| is not.) |
| |
| The Math2 and Summary groups (round, signif, all, any, max, min, |
| sum, prod, range) are now primitive. |
| |
| See under METHODS PACKAGE below for some consequences for S4 methods. |
| |
| o apropos() now sorts by name and not by position on the search |
| path. |
| |
| o attr() gains an 'exact = TRUE' argument to disable partial |
| matching. |
| |
| o bxp() now allows 'xlim' to be specified. (PR#9754) |
| |
| o C(f, SAS) now works in the same way as C(f, treatment), etc. |
| |
| o chol() is now generic. |
| |
| o dev2bitmap() has a new option to go via PDF and so allow |
| semi-transparent colours to be used. |
| |
| o dev.interactive() regards devices with the displaylist enabled |
| as interactive, and packages can register the names of their |
| devices as interactive via deviceIsInteractive(). |
| |
| o download.packages() and available.packages() (and functions |
| which use them) now support in 'repos' or 'contriburl' either |
| file: plus a general path (including drives on a UNC path on |
| Windows) or a file:/// URL in the same way as url(). |
| |
| o dQuote() and sQuote() are more flexible, with rendering |
| controlled by the new option 'useFancyQuotes'. This includes |
| the ability to have TeX-style rendering and directional quotes |
| (the so-called 'smart quotes') on Windows. The default is to |
| use directional quotes in UTF-8 locales (as before) and in the |
| Rgui console on Windows (new). |
| |
| o duplicated() and unique() and their methods in base gain an |
| additional argument 'fromLast'. |
| |
| o fifo() no longer has a default 'description' argument. |
| |
| fifo("") is now implemented, and works in the same way as file(""). |
| |
| o file.edit() and file.show() now tilde-expand file paths on all |
| interfaces (they used to on some and not others). |
| |
| o The find() argument is now named 'numeric' and not 'numeric.': |
| the latter was needed to avoid warnings about name clashes |
| many years ago, but partial matching was used. |
| |
| o stats:::.getXlevels() confines attention to factors since some |
| users expected R to treat unclass(<a factor>) as a numeric |
| vector. |
| |
| o grep(), strsplit() and friends now warn if incompatible sets |
| of options are used, instead of silently using the documented |
| priority. |
| |
| o gsub()/sub() with perl = TRUE now preserves attributes from the |
| argument x on the result. |
| |
| o is.finite() and is.infinite() are now S3 and S4 generic. |
| |
| o jpeg(), png(), bmp() (Windows), dev2bitmap() and bitmap() have |
| a new argument 'units' to specify the units of 'width' and |
| 'height'. |
| |
| o levels() is now generic (levels<- has been for a long time). |
| |
| o Loading serialized raw objects with load() is now considerably |
| faster. |
| |
| o New primitive nzchar() as a faster alternative to |
| nchar(x) > 0 (and avoids having to convert to wide chars in |
| a MBCS locale and hence consider validity). |
| |
| o The way old.packages() and hence update.packages() handle |
| packages with different versions in multiple package |
| repositories has been changed. The first package encountered |
| was selected, now the one with highest version number. |
| |
| o optim(method = "L-BFGS-B") now accepts zero-length parameters, |
| like the other methods. Also, method = "SANN" no longer |
| attempts to optimize in this case. |
| |
| o New options 'showWarnCalls' and 'showErrorCalls' to give a |
| concise traceback on warnings and errors. showErrorCalls=TRUE |
| is the default for non-interactive sessions. Option |
| 'showNCalls' controls how abbreviated the call sequence is. |
| |
| o New options 'warnPartialMatchDollar', 'warnPartialMatchArgs' |
| and 'warnPartialMatchAttr' to help detect the unintended use |
| of partial matching in $, argument matching and attr() |
| respectively. |
| |
| o A device named as a character string in options(device =) is now |
| looked for in the grDevices name space if it is not visible |
| from the global environment. |
| |
| o pmatch(x, y, duplicates.ok = TRUE) now uses hashing and so is |
| much faster for large x and y when most matches are exact. |
| |
| o qr() is now generic. |
| |
| o It is now a warning to have an non-integer object for |
| .Random.seed: this indicates a user had been playing with it, |
| and it has always been documented that users should only save |
| and restore it. |
| |
| o New higher-order functions Reduce(), Filter() and Map(). |
| |
| o [g]regexpr() gain an 'ignore.case' argument for consistency with |
| grep(). (This does change the positional matching |
| of arguments, but no instances of positional matching beyond |
| the second were found.) |
| |
| o relist() utility, an S3 generic with several methods, providing |
| an 'inverse' for unlist(); thanks to a code proposal from |
| Andrew Clausen. |
| |
| o require() now returns invisibly. |
| |
| o The interface to reshape() has been revised, allowing some |
| simplified forms that did not work before, and somewhat |
| improved error handling. A new argument 'sep' has been |
| introduced to replace simple usages of 'split' (the old |
| features are retained). |
| |
| o rmultinom() uses a high-precision accumulator where available, |
| and so is more likely to give the same result on different |
| platforms (although it is still possible to get different |
| results, and the result may differ from previous versions of R). |
| |
| o row() and col() now work on matrix-like objects such as data |
| frames, not just matrices. |
| |
| o Rprof() allows smaller values of 'interval' on machines that |
| support it: for example modern Linux systems support |
| interval = 0.001. |
| |
| o sample() now requires its first argument 'x' to be numeric |
| (in the sense of is.numeric()) as well as of length 1 and >= 1 |
| before it is regarded as shorthand for 1:x. |
| |
| o sessionInfo() now provides details about package name spaces |
| that are loaded but not attached. The output of sessionInfo |
| has been improved to make it easier to read when it is |
| inadvertently wrapped after being pasted into an email |
| message. |
| |
| o setRepositories() has a new argument 'ind' to allow selections |
| to be made programmatically. |
| |
| o sprintf() no longer has a output string length limit. |
| |
| o storage.mode<- is now primitive, and hence makes fewer copies |
| of an object (none if the mode is unchanged). It is a little |
| less general than mode<-, which remains available. (See also |
| the entry under DEFUNCT below.) |
| |
| o sweep() gains an argument 'check.margin = TRUE' which warns |
| about mismatched dimensions. |
| |
| o The mathematical annotation facility (plotmath) now recognises |
| a symbol() function which forces the font to be a symbol font. |
| This allows access to all characters in the Adobe Symbol |
| encoding within plotmath expressions. |
| |
| o For OSes that cannot unset environment variables, Sys.unsetenv() |
| sets the value to "", with a warning. |
| |
| o New function Sys.which(), an interface to 'which' on |
| Unix-alikes and an emulation on Windows. |
| |
| o On Unix-alikes, system(, intern = TRUE) reports on very long |
| lines that may be truncated, giving the line number of the |
| content being read. |
| |
| o termplot() has a default for 'ask' that uses dev.interactive(). |
| |
| It allows 'ylim' to be set, or computed to cover all the |
| plots to be made (the new default) or computed for each plot |
| (the previous default). |
| |
| o uniroot(f, *) is slightly faster for non-trivial f() because it |
| computes f(lower) and f(upper) only once, and it has new optional |
| arguments 'f.lower' and 'f.upper' by which the caller can pass these. |
| |
| o unlink() is now internal, using common POSIX code on all platforms. |
| |
| o unsplit() now works with lists of dataframes. |
| |
| o The vcov() methods for classes "gls" and "nlme" have migrated to |
| package 'nlme'. |
| |
| o vignette() has a new argument 'all' to choose between showing |
| vignettes in attached packages or in all installed packages. |
| |
| o New function within(), which is like with(), except that it |
| returns modified versions back of lists and data frames. |
| |
| o X11(), postscript() (and hence bitmap()), xfig(), jpeg(), png() |
| and the Windows devices win.print(), win.metafile() and bmp() |
| now warn (once at first use) if semi-transparent colours are |
| used (rather than silently treating them as fully |
| transparent). |
| |
| o New function xspline() to provide base graphics support of |
| X-splines (cf grid.xspline). |
| |
| o New function xyTable() does the 2D gridding "computations" used by |
| sunflowerplot(). |
| |
| |
| o Rd conversion to HTML and CHM now makes use of classes, which |
| are set in the stylesheets. Editing R.css will change the |
| styles used for \env, \option, \pkg etc. (CHM styles are set |
| at compilation time.) |
| |
| o The documented arguments of '%*%' have been changed to be x |
| and y, to match S and the implicit S4 generic. |
| |
| o If members of the Ops group (the arithmetic, logical and |
| comparison operators) and '%*%' are called as functions, |
| e.g. '>'(x, y), positional matching is always used. (It used |
| to be the case that positional matching was used for the |
| default methods, but names would be matched for S3 and S4 |
| methods and in the case of '!' the argument name differed |
| between S3 and S4 methods.) |
| |
| o Imports environments of name spaces are named (as |
| "imports:foo"), and so are known e.g. to environmentName(). |
| |
| o Package 'stats4' uses lazy-loading not SaveImage (which is now |
| deprecated). |
| |
| o Installing help for a package now parses the .Rd file only |
| once, rather than once for each type. |
| |
| o PCRE has been updated to version 7.2. |
| |
| o bzip2 has been updated to version 1.0.4. |
| |
| o gettext has been updated to version 0.16.1. |
| |
| o There is now a global CHARSXP cache, R_StringHash. CHARSXPs |
| are no longer duplicated and must not be modified in place. |
| Developers should strive to only use mkChar (and mkString) for |
| creating new CHARSXPs and avoid use of allocString. A new |
| macro, CallocCharBuf, can be used to obtain a temporary char |
| buffer for manipulating character data. This patch was |
| written by Seth Falcon. |
| |
| o The internal equivalents of as.complex, as.double, as.integer |
| and as.logical used to handle length=1 arguments now accept |
| character strings (rather than report that this is |
| 'unimplemented'). |
| |
| o Lazy-loading a package is now substantially more efficient (in |
| memory saved and load time). |
| |
| o Various performance improvements lead to a 45% reduction |
| in the startup time without 'methods' (and one-sixth with - |
| 'methods' now takes 75% of the startup time of a default session). |
| |
| o The [[ subsetting operator now has an argument 'exact' that |
| allows programmers to disable partial matching (which will in |
| due course become the default). The default value is exact=NA |
| which causes a warning to be issued when partial matching |
| occurs. When exact = TRUE, no partial matching will be |
| performed. When exact = FALSE, partial matching can occur and |
| no warning will be issued. This patch was written by Seth |
| Falcon. |
| |
| o Many of the C-level warning / error messages (e.g. from |
| subscripting) have been re-worked to give more detailed |
| information on either the location or the cause of the |
| problem. |
| |
| o The S3 and S4 Math groups have been harmonized. Functions |
| log1p(), expm1(), log10() and log2() are members of the S3 |
| group, and sign(), log1p(), expm1(), log2(), cummax(), |
| cummin(), digamma(), trigamma() and trunk() are members of the |
| S4 group. gammaCody() is no longer in the S3 Math group. |
| They are now all primitive. |
| |
| o The initialization of the random-number stream makes use of the |
| sub-second part of the current time where available. |
| |
| Initialization of the 1997 Knuth TAOCP generator is now done |
| in R code, avoiding some C code whose licence status has been |
| questioned. |
| |
| o The reporting of syntax errors has been made more user- |
| friendly. |
| |
| |
| METHODS PACKAGE |
| |
| o Packages using 'methods' have to have been installed in R 2.4.0 |
| or later (when various internal representations were changed). |
| |
| o Internally generic primitives no longer dispatch S4 methods on |
| S3 objects. |
| |
| o load() and restoring a workspace attempt to detect and warn on |
| the loading of pre-2.4.0 S4 objects. |
| |
| o Making functions primitive changes the semantics of S4 |
| dispatch: these no longer dispatch on classes based on types |
| but do dispatch whenever the function in the base name space is |
| called. |
| |
| This applies to as.complex(), as.integer(), as.logical(), |
| as.numeric(), as.raw(), expm1(), log(), log1p(), log2(), |
| log10(), gamma(), lgamma(), digamma() and trigamma(), as |
| well as the Math2 and Summary groups. |
| |
| Because all members of the group generics are now primitive, |
| they are all S4 generic and setting an S4 group generic does |
| at last apply to all members and not just those already made |
| S4 generic. |
| |
| as.double() and as.real() are identical to as.numeric(), and |
| now remain so even if S4 methods are set on any of them. |
| Since 'as.numeric' is the traditional name used in S4, |
| currently methods must be exported from a NAMESPACE for |
| 'as.numeric' only. |
| |
| o The S4 generic for '!' has been changed to have signature (x) |
| (was (e1)) to match the documentation and the S3 generic. |
| setMethod() will fix up methods defined for (e1), with a |
| warning. |
| |
| o The "structure" S4 class now has methods that implement the |
| concept of structures as described in the Blue Book--that |
| element-by-element functions and operators leave structure |
| intact unless they change the length. The informal behavior |
| of R for vectors with attributes was inconsistent. |
| |
| o The implicitGeneric() function and relatives have been added to |
| specify how a function in a package should look when methods are |
| defined for it. This will be used to ensure that generic versions |
| of functions in R core are consistent. See ?implicitGeneric. |
| |
| o Error messages generated by some of the functions in the methods |
| package provide the name of the generic to provide more |
| contextual information. |
| |
| o It is now possible to use setGeneric(useAsDefault = FALSE) to |
| define a new generic with the name of a primitive function |
| (but having no connection with the primitive). |
| |
| o showMethods() has a "smart" default for 'inherited' such that |
| showMethods(<genfun>, incl = TRUE) becomes a useful short cut. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o $ on an atomic vector now gives a warning that it is 'invalid'. |
| It remains deprecated, but may be removed in R >= 2.7.0. |
| |
| o storage.mode(x) <- "real" and storage.mode(x) <- "single" are |
| defunct: use instead storage.mode(x) <- "double" and |
| mode(x) <- "single". |
| |
| o In package installation, SaveImage: yes is deprecated in |
| favour of LazyLoad: yes. |
| |
| o seemsS4Object (methods package) is deprecated in favour of isS4(). |
| |
| o It is planned that [[exact=TRUE]] will become the default in |
| R 2.7.0. |
| |
| |
| UTILITIES |
| |
| o checkS3methods() (invoked by R CMD check) now checks the |
| arguments of methods for primitive members of the S3 group |
| generics. |
| |
| o R CMD check now does a recursive copy on the 'tests' directory. |
| |
| o R CMD check now warns on non-ASCII .Rd files without an |
| \encoding field, rather than just on ones that are definitely |
| not from an ISO-8859 encoding. This agrees with the |
| long-standing stipulation in 'Writing R Extensions', and |
| catches some packages with UTF-8 man pages. |
| |
| o R CMD check now warns on DESCRIPTION files with a non-portable |
| Encoding field, or with non-ASCII data and no Encoding field. |
| |
| o R CMD check now loads all the 'Suggests' and 'Enhances' |
| dependencies to reduce warnings about non-visible objects, and |
| also emulates standard functions (such as shell()) on |
| alternative R platforms. |
| |
| o R CMD check now (by default) attempts to latex the vignettes |
| rather than just weave and tangle them: this will give a NOTE |
| if there are latex errors. |
| |
| o R CMD check computations no longer ignore Rd \usage entries for |
| functions for extracting or replacing parts of an object, so S3 |
| methods should use the appropriate \method{} markup. |
| |
| o R CMD check now checks for CR (as well as CRLF) line endings in |
| C/C++/Fortran source files, and for non-LF line endings in |
| Makefile[.in] and Makevars[.in] in the package 'src' |
| directory. R CMD build will correct non-LF line endings in |
| source files and in the make files mentioned. |
| |
| o Rdconv now warns about unmatched braces rather than silently |
| omitting sections containing them. (Suggestion by Bill |
| Dunlap, PR#9649) |
| |
| Rdconv now renders (rather than ignores) \var{} inside \code{} |
| markup in latex conversion. |
| |
| R CMD Rdconv gains a --encoding argument to set the default |
| encoding for conversions. |
| |
| o The list of CRAN mirrors now has a new (manually maintained) |
| column "OK" which flags mirrors that seem to be OK, only those |
| are used by chooseCRANmirror(). The now exported function |
| getCRANmirrors() can be used to get all known mirrors or only |
| the ones that are OK. |
| |
| o R CMD SHLIB gains arguments --clean and --preclean to clean up |
| intermediate files after and before building. |
| |
| o R CMD config now knows about FC and FCFLAGS (used for F9x |
| compilation). |
| |
| o R CMD Rdconv now does a better job of rendering quotes in |
| titles in HTML, and \sQuote and \dQuote into text on Windows. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o New utility function alloc3DArray similar to allocMatrix. |
| |
| o The entry point R_seemsS4Object in Rinternals.h has not been |
| needed since R 2.4.0 and has been removed. Use IS_S4_OBJECT |
| instead. |
| |
| o Applications embedding R can use R_getEmbeddingDllInfo() to |
| obtain DllInfo for registering symbols present in the |
| application itself. |
| |
| o The instructions for making and using standalone libRmath have |
| been moved to the R Installation and Administration manual. |
| |
| o CHAR() now returns (const char *) since CHARSXPs should no |
| longer be modified in place. This change allows compilers to |
| warn or error about improper modification. Thanks to Hervé |
| Pagès for the suggestion. |
| |
| o acopy_string is a (provisional) new helper function that |
| copies character data and returns a pointer to memory |
| allocated using R_alloc. This can be used to create a copy of |
| a string stored in a CHARSXP before passing the data on to a |
| function that modifies its arguments. |
| |
| o asLogical, asInteger, asReal and asComplex now accept STRSXP |
| and CHARSXP arguments, and asChar accepts CHARSXP. |
| |
| o New entry point R_GE_str2col listed in R_ext/GraphicsEngine.h |
| for external graphics device developers. |
| |
| o doKeybd and doMouseevent are now exported in GraphicsDevice.h. |
| |
| o R_alloc now has first argument of type 'size_t' to support |
| 64-bit platforms (e.g. Win64) with a 32-bit 'long' type. |
| |
| o The type of the last two arguments of getMatrixDimnames (non-API |
| but mentioned in R-exts.texi and in Rinternals.h) has been |
| changed to 'const char **' (from char **). |
| |
| o R_FINITE now always resolves to the function call R_finite in |
| packages (rather than sometimes substituting isfinite). This |
| avoids some issues where R headers are called from C++ code |
| using features tested on the C compiler. |
| |
| o The advice to include R headers from C++ inside extern "C" {} |
| has been changed. It is nowadays better *not* to wrap the |
| headers, as they include other headers which on some OSes |
| should not be wrapped. |
| |
| o Rinternals.h no longer includes a substantial set of C headers. |
| All but ctype.h and errno.h are included by R.h which is supposed |
| to be used before Rinternals.h. |
| |
| o Including C system headers can be avoided by defining NO_C_HEADERS |
| before including R headers. This is intended to be used from |
| C++ code, and you will need to include C++ equivalents such as |
| <cmath> before the R headers. |
| |
| |
| INSTALLATION |
| |
| o The 'test-Lapack' test is now part of 'make check'. |
| |
| o The 'stat' system call is now required, along with 'opendir' |
| (which had long been used but not tested for). ('make check' |
| would have failed in earlier versions without these calls.) |
| |
| o 'evince' is now considered as a possible PDF viewer. |
| |
| o 'make install-strip' now also strips the DLLs in the standard |
| packages. |
| |
| o Perl 5.8.0 (released in July 2002) or later is now required. |
| (R 2.4.0 and later have in fact required 5.6.1 or later.) |
| |
| o The C function 'finite' is no longer used: we expect a C99 |
| compiler which will have 'isfinite'. (If that is missing, we |
| test separately for NaN, Inf and -Inf.) |
| |
| o A script/executable 'texi2dvi' is now required on Unix-alikes: |
| it is part of the texinfo distribution. |
| |
| o Files texinfo.tex and txi-en.tex are no longer supplied in |
| doc/manual (as the latest versions have an incompatible |
| licence). You will need to ensure that your texinfo and/or |
| TeX installations supply them. |
| |
| o wcstod is now required for MBCS support. |
| |
| o There are some experimental provisions for building on Cygwin. |
| |
| |
| PACKAGE INSTALLATION |
| |
| o The encoding declared in the DESCRIPTION file is now used as |
| the default encoding for .Rd files. |
| |
| o A standard for specifying package license information in the |
| DESCRIPTION License field was introduced, see 'Writing R |
| Extensions'. In addition, files LICENSE or LICENCE in a package |
| top-level source directory are now installed (so putting copies |
| into the 'inst' subdirectory is no longer necessary). |
| |
| o install.packages() on a Unix-alike now updates |
| doc/html/packages.html only if packages are installed to |
| .Library (by that exact name). |
| |
| o R CMD INSTALL --clean now runs SHLIB --clean to do the clean |
| up (unless there is a src/Makefile), and this will remove |
| $(OBJECTS) (which might have been redefined in Makevars). |
| |
| R CMD INSTALL --preclean cleans up the sources after a |
| previous installation (as if that had used --clean) before |
| attempting to install. |
| |
| R CMD INSTALL will now run R CMD SHLIB in the 'src' directory |
| if src/Makevars is present, even if there are no source files |
| with known extensions. |
| |
| o If there is a file src/Makefile, src/Makevars is now ignored |
| (it could be included by src/Makefile if desired), and it is |
| preceded by etc/Makeconf rather than share/make/shlib.mk. |
| Thus the makefiles read are R_HOME/etc/Makeconf, src/Makefile |
| in the package and then any personal Makevars files. |
| |
| o R CMD SHLIB used to support the use of 'OBJS' in Makevars, but |
| this was changed to 'OBJECTS' in 2001. The undocumented |
| alternative of 'OBJS' has finally been removed. |
| |
| o R CMD check no longer issues a warning about no data sets |
| being present if a lazyload db is found (as determined by the |
| presence of Rdata.rdb, Rdata.rds, and Rdata.rdx in the 'data' |
| subdirectory. |
| |
| |
| BUG FIXES |
| |
| o charmatch() and pmatch() used to accept non-integer values for |
| 'nomatch' even though the return value was documented to be |
| integer. Now 'nomatch' is coerced to integer (rather than the |
| result being coerced to the type of 'nomatch'). |
| |
| o match.call() no longer 'works' outside a function unless |
| 'definition' is supplied. (Under some circumstances it used |
| to 'work', matching itself.) |
| |
| o The formula methods of boxplot, cdplot, pairs and spineplot |
| now attach 'stats' so that model.frame() is visible where |
| they evaluate it. |
| |
| o Date-time objects are no longer regarded as numeric by |
| is.numeric(). |
| |
| o methods("Math") did not work if 'methods' was not attached. |
| |
| o readChar() read an extra empty item (or more than one) beyond |
| the end of the source; in some conditions it would terminate |
| early when reading an item of length 0. |
| |
| o Added a promise evaluation stack so interrupted promise |
| evaluations can be restarted. |
| |
| o R.version[1:10] now nicely prints. |
| |
| o In the methods package, prototypes are now inherited for the |
| .Data "slot"; i.e., for classes that contain one of the basic |
| data types. |
| |
| o <data frame>[[i, j]] now works if 'i' is character. |
| |
| o write.dcf() no longer writes NA fields (PR#9796), and works |
| correctly on empty descriptions. |
| |
| o pbeta(x, log.p = TRUE) now has improved accuracy in many cases, |
| and so have functions depending on it such as pt(), pf() and |
| pbinom(). |
| |
| o mle() had problems with the L-BFGS-B in the no-parameter case |
| and consequentially also when profiling 1-parameter models |
| (fix thanks to Ben Bolker). |
| |
| o Two bugs fixed in methods that in involve the "..." argument in |
| the generic function: previously failed to catch methods that |
| just dropped the "..."; and use of callGeneric() with no arguments |
| failed in some circumstances when "..." was a formal argument. |
| |
| o sequence() now behaves more reasonably, although not |
| back-compatibly for zero or negative input. |
| |
| o nls() now allows more peculiar but reasonable ways of being called, |
| e.g., with data=list(<uneven lengths>) or a model without variables. |
| |
| o match.arg() was not behaving as documented when |
| several.ok=TRUE (PR#9859), gave spurious warnings when 'arg' |
| had the wrong length and was incorrectly documented (exact |
| matches are returned even when there is more than one partial |
| match). |
| |
| o The data.frame method for split<-() was broken. |
| |
| o The test for -D__NO_MATH_INLINES was badly broken and returned |
| true on all non-glibc platforms and false on all glibc ones |
| (whether they were broken or not). |
| |
| o LF was missing after the last prompt when --quiet was used without |
| --slave. Use --slave when no final LF is desired. |
| |
| o Fixed bug in initialisation code in 'grid' package for |
| determining the boundaries of shapes. Problem reported |
| by Hadley Wickham; symptom was error message: |
| "Polygon edge not found". |
| |
| o str() is no longer slow for large POSIXct objects. Its output |
| is also slightly more compact for such objects; implementation |
| via new optional argument 'give.head'. |
| |
| o strsplit(*, fixed=TRUE), potentially iconv() and internal string |
| formatting is now faster for large strings, thanks to report |
| PR#9902 by John Brzustowski. |
| |
| o de.restore() gave a spurious warning for matrices (Ben Bolker) |
| |
| o plot(fn, xlim=c(a,b)) would not set "from" and "to" properly |
| when plotting a function. The argument lists to curve() and |
| plot.function() have been modified slightly as part of the |
| fix. |
| |
| o julian() was documented to work with POSIXt origins, but did |
| not work with POSIXlt ones. (PR#9908) |
| |
| o Dataset HairEyeColor has been corrected to agree with |
| Friendly (2000): the change involves the breakdown of the |
| Brown hair / Brown eye cell by Sex, and only totals over Sex |
| are given in the original source. |
| |
| o Trailing spaces are now consistently stripped from \alias{} |
| entries in .Rd files, and this is now documented. (PR#9915) |
| |
| o .find.packages(), packageDescription() and sessionInfo() |
| assumed that attached environments named "package:foo" were |
| package environments, although misguided users could use such |
| a name in attach(). |
| |
| o spline() and splinefun() with method = "periodic" could return |
| incorrect results when length(x) was 2 or 3. |
| |
| o getS3method() could fail if the method name contained a regexp |
| metacharacter such as "+". |
| |
| o help(<a character vector>) now uses the name and not the |
| value of the vector unless it has length exactly one, so |
| e.g. help(letters) now gives help on 'letters'. |
| (Related to PR#9927) |
| |
| o Ranges in chartr() now work better in CJK locales, thanks to |
| Ei-ji Nakama. |
| |
| |
| |
| |
| ************************************************** |
| * * |
| * 2.5 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 2.5.1 patched |
| |
| INSTALLATION |
| |
| o doc/manual now includes the texinfo support file epsf.tex which |
| basic TeX installations often omit. |
| |
| |
| BUG FIXES |
| |
| o Attempting to do in-memory serialization of an object requiring |
| more than 1Gb might have failed. |
| |
| o Using formals<- on a function whose body was NULL worked |
| incorrectly. (PR#9758) |
| |
| o logb() is now strictly a wrapper for log(), so if S4 methods |
| are set on log(), logb() will also dispatch on them. |
| |
| o conflicts(where=) did not work correctly. (PR#9760) |
| |
| o log(x, base) was intended to handle complex 'base' even for |
| real 'x', but there was a typo in the code to do so. |
| |
| o Syntax errors would sometimes misreport the error context. |
| |
| o qt(p, df=1) is now also correct for very small p. (PR#9804) |
| qt(p, df=2) ditto; also is more accurate for 0 < |p - 0.5| << 1. |
| qt(*, log.p=TRUE) now is finite and monotone (again!) where possible. |
| |
| o Several functions including those making use of printCoefmat(), |
| layout() and sortedXyData() now work correctly with |
| non-default settings of options("OutDec"). |
| |
| o S4 method dispatch for group generics (and %*%) failed to pass |
| arguments to methods as promises and so in some circumstances |
| methods could change their arguments. (Seen for the 'Math' |
| group with package Matrix.) |
| |
| o The print() method for "ts" now handles quarterly and monthly |
| series which do not start at the beginning of a quarter or |
| month respectively. |
| |
| o Deserializing raw objects saved using save(..., ascii=TRUE) |
| now works correctly. |
| |
| o ISOLatin7 encoding for postscript/PDF has been corrected. |
| (PR#9845) |
| |
| o rbind(x,y) and cbind(x,y) did not dispatch properly when x and |
| y had multiple S3-style classes. |
| |
| o The workaround for seeking on > 2Gb files did not work correctly |
| on Unix-alike 32-bit systems. (PR#9883) |
| |
| o We had identical(NaN, NA_real_) != identical(NA_real_, NaN), |
| spotted by Petr Savicky. |
| |
| |
| |
| CHANGES IN R VERSION 2.5.1 |
| |
| |
| NEW FEATURES |
| |
| o density(1:20, bw = "SJ") now works as bw.SJ() now tries a larger |
| search interval than the default (lower, upper) if it does not |
| find a solution within the latter. |
| |
| o The output of library() (no arguments) is now sorted by library |
| trees in the order of .libPaths() and not alphabetically. |
| |
| o R_LIBS_USER and R_LIBS_SITE feature possible expansion of |
| specifiers for R version specific information as part of the |
| startup process. |
| |
| o C-level warning calls now print a more informative context, |
| as C-level errors have for a while. |
| |
| o There is a new option "rl_word_breaks" to control the way the |
| input line is tokenized in the readline-based terminal |
| interface for object- and file-name completion. |
| This allows it to be tuned for people who use their space bar |
| vs those who do not. The default now allows filename-completion |
| with +-* in the filenames. |
| |
| o If the srcfile argument to parse() is not NULL, it will be added |
| to the result as a "srcfile" attribute. |
| |
| o It is no longer possible to interrupt lazy-loading (which was |
| only at all likely when lazy-loading environments), which |
| would leave the object being loaded in an unusable state. |
| This is a temporary measure: error-recovery when evaluating |
| promises will be tackled more comprehensively in 2.6.0. |
| |
| |
| INSTALLATION |
| |
| o 'make check' will work with --without-iconv, to accommodate |
| building on AIX where the system iconv conflicts with |
| libiconv and is not compatible with R's requirements. |
| |
| o There is support for 'DESTDIR': see the R-admin manual. |
| |
| o The texinfo manuals are now converted to HTML with a style |
| sheet: in recent versions of makeinfo the markup such as @file |
| was being lost in the HTML rendering. |
| |
| o The use of inlining has been tweaked to avoid warnings from |
| gcc >= 4.2.0 when compiling in C99 mode (which is the default |
| from configure). |
| |
| |
| BUG FIXES |
| |
| o as.dendrogram() failed on objects of class "dendrogram". |
| |
| o plot(type ="s") (or "S") with many (hundreds of thousands) |
| of points could overflow the stack. (PR#9629) |
| |
| o Coercing an S4 classed object to "matrix" (or other basic class) |
| failed to unset the S4 bit. |
| |
| o The 'useS4' argument of print.default() had been broken by an |
| unrelated change prior to 2.4.1. This allowed print() and |
| show() to bounce badly constructed S4 objects between |
| themselves indefinitely. |
| |
| o Prediction of the seasonal component in HoltWinters() was one |
| step out at one point in the calculations. |
| |
| decompose() incorrectly computed the 'random' component for a |
| multiplicative fit. |
| |
| o Wildcards work again in unlink() on Unix-alikes (they did not |
| in 2.5.0). |
| |
| o When qr() used pivoting, the coefficient names in qr.coef() were |
| not pivoted to match. (PR#9623) |
| |
| o UseMethod() could crash R if the first argument was not a |
| character string. |
| |
| o R and Rscript on Unix-alikes were not accepting spaces in -e |
| arguments (even if quoted). |
| |
| o Hexadecimal integer constants (e.g. 0x10L) were not being parsed |
| correctly on platforms where the C function atof did not |
| accept hexadecimal prefixes (as required by C99, but not |
| implemented in MinGW as used by R on Windows). (PR#9648) |
| |
| o libRlapack.dylib on Mac OS X had no version information and |
| sometimes an invalid identification name. |
| |
| o Rd conversion of \usage treated '\\' as a single backslash in |
| all but latex: it now acts consistently with the other |
| verbatim-like environments (it was never 'verbatim' despite |
| the documentation). |
| |
| \code{\.} is now rendered as '\.' in all formats, as |
| documented (it was not the case for latex conversion). |
| |
| codoc() (and checkDocStyle() and checkDocUsage()) now apply |
| the same transformations to \usage as Rd conversion does, |
| so {, % and \\ in strings in usages will now be related |
| correctly to the help files. |
| |
| o rbind() failed if the only data frame had 0 rows. (PR#9657) |
| |
| o <a data.frame>[i, j] could sometimes select the wrong column |
| when j is numeric if there are duplicate column names. |
| |
| o sample(x, size, replace=TRUE, prob) had a memory leak if |
| 10000 < size <= 100000. |
| |
| o x <- cbind(1:2); rownames(x) <- factor(c("A",NA)) now longer |
| segfaults. |
| |
| o R CMD BATCH no longer assumes Sys.unsetenv() is supported (it |
| is not on older Solaris systems). |
| |
| o median() returned a logical result when it was 'NA': it now |
| returns an NA of appropriate type (e.g. integer or double). |
| |
| o grep(fixed = TRUE, perl = TRUE) ignored 'fixed', although it |
| was documented to ignore 'perl' |
| Same for [g]regexpr and [g]sub. |
| |
| o getNamespaceExports("base") works again. |
| |
| o runmed(c(), 1) no longer segfaults. |
| |
| o qr.coef(QR, b) failed for an LAPACK-produced QR if b was |
| integer or for an over-determined system. |
| |
| qr.solve() for an under-determined system produces a |
| solution with 0 and not NA for columns which are unused. |
| |
| o segments() was not handling full transparency correctly in PDF. |
| (PR#9694) |
| |
| Nor was arrows(). |
| |
| o callGeneric() inside a method with extra arguments {and hence |
| currently defined via .local()} now works. |
| |
| o [g]sub(fixed=TRUE, useBytes=FALSE) could substitute in the |
| wrong place in an MBCS locale. |
| |
| gregexpr() could give incorrect answers in MBCS locales for |
| perl = TRUE or fixed = TRUE (unless useBytes = TRUE). |
| |
| o The legacy quartz() device no longer crashes in locator() |
| if the user attempts to close the window. |
| |
| o "CGGStackRestore: gstack underflow" warning is no longer shown |
| in legacy quartz() device. |
| |
| o formatC() now limits 'digits' to 50 to avoid problems in |
| C-level sprintf in some OSes. |
| |
| o seq.int(x, y, by=z) gave 'x' (and not an error) if |
| 0 > (y-x)/z > -1. |
| |
| o promptClass() now lists methods, including those for generics in |
| other attached packages. |
| |
| o Connection-related functions such as readBin() no longer crash |
| when supplied with a non-connection object. |
| |
| o as.character.srcref() didn't handle bad srcref objects cleanly. |
| |
| o predict.nls() no longer requires 'newdata' to contain exactly |
| the variable names needed to fit the model: variables used on |
| the LHS only are no longer required and further variables are |
| allowed. |
| |
| o plot.hclust() had a 'out by one' error, and ignored the last |
| object when computing the window region (and could overrun |
| arrays). |
| |
| o deriv() was creating results with double (and not integer) dims. |
| |
| o The unserialize code (e.g. as called by load()) looked for a |
| function findPackageEnv() to set a saved package environment. |
| This was missing, but is now supplied. |
| |
| o [cr]bind could segfault when creating a list matrix result. |
| (Reported by Martin Morgan.) |
| |
| o besselI(x, nu, exp=TRUE) and besselY(x, nu) could give wrong |
| answers for nu < 0. (Reported by Hiroyuki Kawakatsu.) |
| |
| o [g]sub could confuse a trailing byte '\' for a backreference |
| in MBCSs where '\' can occur as a trailing byte (not UTF-8 nor |
| EUC-JP, but SJIS and the CJK character sets used on Windows). |
| (PR#9751) |
| |
| |
| |
| CHANGES IN R VERSION 2.5.0 |
| |
| |
| USER-VISIBLE CHANGES |
| |
| o apropos(x) and find(x) now both only work for character 'x', |
| and hence drop all non-standard evaluation behaviour. |
| |
| o Data frames can have 'automatic' row names which are not |
| converted to dimnames by as.matrix(). (Consequently, e.g., |
| t(.) for such data frames has NULL column names.) This |
| change leads to memory reductions in several places, but can |
| break code which assumes character dimnames for data frames |
| derived from matrices. |
| |
| No existing R object is regarded as having 'automatic' row |
| names, and it may be beneficial to recreate such objects via |
| read.table() or data.frame(). |
| |
| o Using $ on an atomic vector now raises a warning, as does use |
| on an S4 class for which a method has not been defined. |
| |
| o The Unix-alike readline terminal interface now does |
| command-completion for R objects, incorporating the |
| functionality formerly in package 'rcompletion' by Deepayan |
| Sarkar. This can be disabled by setting the environment |
| variable R_COMPLETION=FALSE when starting R (e.g. in |
| ~/.Renviron). (Note that when this is enabled, filename |
| completion no longer works for file paths containing R |
| operators such as '+' and '-'.) |
| |
| |
| NEW FEATURES |
| |
| o abbreviate() no longer has an 8191 byte limit on the size of |
| strings it can handle. |
| |
| o abs(x) now returns integer for integer or logical arguments. |
| |
| o apropos() has a new argument 'ignore.case' which defaults to |
| TRUE, potentially matching more than previously, thanks to a |
| suggestion by Seth Falcon. |
| |
| o args(), str() and print() now give the argument lists of primitive |
| functions. |
| |
| o as.matrix() gains the '...' argument that several packages have |
| assumed it always had (and S-PLUS has). |
| |
| o Manipulation of integers as roman numerals via as.roman() in |
| package utils. |
| |
| o attr() no longer treats name = NA_character_ as meaning |
| name = "NA". |
| |
| o binom.test() now allows a 'fuzz' for calculated integer values |
| in its x and n arguments. |
| |
| o boxplot(*, notch = TRUE) now warns when notches are outside |
| hinges; related to PR#7690. |
| |
| o New function callCC() providing a downward-only version of |
| Scheme's call with current continuation. |
| |
| o capabilities() now has a "profmem" entry indicating whether |
| R has been compiled with memory profiling. |
| |
| o colnames<-() and rownames<-() now handle data frames explicitly, |
| so calling colnames<- on a data frame no longer alters the |
| representation of the row names. |
| |
| o commandArgs() has a new 'trailingOnly' argument to be used in |
| conjunction with --args. |
| |
| o contour() now passes graphical parameters in '...' to axis() |
| and box(). |
| |
| o New data set 'crimtab' on Student(1908)'s 3000 criminals. |
| |
| o cut.default() has a new argument 'ordered_result'. |
| |
| o .deparseOpts() has two new options: "keepNA" to ensure that |
| different types (logical, integer, double, character and |
| complex) of NAs are distinguished, and "S_compatible" to |
| suppress the use of R-specific features such as 123L and to |
| deparse integer values of a double vector with a trailing |
| decimal point. |
| |
| The 'keepInteger' option now uses the suffix 'L' rather than |
| as.integer() where possible (unless all entries are NA or |
| "S_compatible" is also set). |
| |
| Other deparse options can now be added to "all" (which has not |
| for some time actually switched on all options). |
| |
| Integer sequences m:n are now deparsed in that form. |
| |
| o deparse() and dput() now include "keepInteger" and "keepNA" in |
| their defaults for the 'control' argument. |
| |
| o detach() now takes another argument, unload, which indicates |
| whether or not to unload the package and then only cleans |
| up the S4 methods if the package successfully unloads. |
| |
| o There are new constants NA_integer_, NA_real_, NA_complex_ and |
| NA_character_ to denote NAs of those types, and they will be |
| used in deparsing in place of as.integer(NA) etc unless |
| .deparseOpts() includes "S_compatible". |
| |
| o dev.print() now recognizes 'screen devices' as all those with |
| an enabled display list, rather than a hard-coded set. |
| |
| o Objects of class "difftime" are now handled more flexibly. The |
| units of such objects can now be accessed via a units() |
| function, which also has a replacement form, and there are |
| conversion methods to and from numeric, which also allow the |
| specification of units. Objects of this class can also be |
| stored in data frames now. A format() method has been added, |
| and the print method was revised. |
| |
| o New function environmentName() to give the print name of |
| environments such as "namespace:base". |
| This is now used by str(). |
| |
| o New function env.profile() provides R level access to summary |
| statistics on environments. In a related patch, new.env() |
| now allows the user to specify an initial size for a hashed |
| environment. |
| |
| o file() can read the X11 clipboard selection as "X11_clipboard" |
| on suitable X11-using systems. |
| |
| o file("stdin") is now recognized, and refers to the process's |
| 'stdin' file stream whereas stdin() refers to the console. |
| These may differ, for example for a GUI console, an embedded |
| application of R or if --file= has been used. |
| |
| o file_test() is now also available in package utils. |
| (It is now private in package tools.) |
| |
| o file.show() gains an 'encoding' argument. |
| |
| o New functions formatUL() and formatOL() in package utils for |
| formatting unordered (itemize) and ordered (enumerate) lists. |
| |
| o The statistics reported when gcinfo(TRUE) are now of the amounts |
| used (in Mb) and not of the amounts free (which are not really |
| relevant when there are no hard limits, only gc trigger points). |
| |
| o New function get_all_vars() to retrieve all the |
| (untransformed) variables that the default method of |
| model.frame() would use to create the model frame. |
| |
| o interaction() has a new argument 'lex.order'. |
| |
| o initialize() (in methods) now tries to be smarter about |
| updating the new instance in place, thereby reducing |
| copying. |
| |
| o install.packages(dependencies = NA) is a new default, which is |
| to install essential dependencies when installing from |
| repositories to a single library. As a result of this change, |
| update.packages() will install any new dependencies of the |
| packages it is updating (alongside the package in the same |
| library tree). |
| |
| If 'lib' is not specified or is specified of length one and |
| the chosen location is not a writable directory, |
| install.packages() offers to create a personal library |
| directory for you if one does not already exist, and to |
| install there. |
| |
| o is.atomic, is.call, is.character, is.complex, is.double (== is.real), |
| is.environment, is.expression, is.function, is.integer, |
| is.list, is.logical, is.null, is.object, is.pairlist, |
| is.recursive, is.single and is.symbol (== is.name) are no |
| longer internally S3 generic, nor can S4 methods be written |
| for them. |
| |
| The "factor" methods of is.integer and is.numeric have been |
| replaced by internal code. |
| |
| o Added is.raw() for completeness. |
| |
| o l10n_info() also reports if the current locale is Latin-1. |
| |
| o levels<-(), names() and names<-() now dispatch internally for |
| efficiency and so no longer have S3 default methods. |
| |
| o .libPaths() now does both tilde and glob expansion. |
| |
| o Functions lm(), glm() loess(), xtabs() and the default method |
| of model.frame() coerce their 'formula' argument (if supplied) |
| to a formula. |
| |
| o max(), min() and range() now work with character vectors. |
| |
| o message() has a new argument 'appendLF' to handle messages |
| with and without newlines. There is a new message class |
| packageStartupMessage() that can be suppressed separately. |
| |
| o A new function, method.skeleton() writes a skeleton version of |
| a call to setMethod() to a file, with correct arguments and |
| format, given the name of the function and the method signature. |
| |
| o mode<- and storage.mode<- do slightly less copying. |
| |
| o nls.control(* , printEval = FALSE, warnOnly = FALSE) are two new |
| options to help better analyze (non-)convergence of nls(), |
| thanks to Kate Mullen. |
| |
| nls() and summary(nls()) now contain more information and also |
| print information about convergence. |
| |
| o options(device = ) now accepts a function object as well as |
| the name of a function. |
| |
| o pdf() supports new values for 'paper' of "US" (same as |
| "letter"), "a4r" and "USr" (the latter two meaning rotated to |
| landscape). postscript() also accepts paper = "US". |
| |
| o persp() now respects the graphical pars 'cex.axis', 'cex.lab', |
| 'font.axis' and 'font.lab'. |
| |
| o New faster internal functions pmax.int() and pmin.int() for |
| inputs which are atomic vectors without classes (called by |
| pmax/pmin where applicable). |
| |
| pmin/pmax are now more likely to work with classed objects: |
| they work with POSIXlt datetimes, for example. |
| |
| o postscript() now by default writes grey colors (including black |
| and white) via 'setgray', which gives more widely acceptable |
| output. There are options to write pure RGB, CMYK or gray via |
| the new argument 'colormodel'. |
| |
| o rbind.data.frame() now ignores all zero-row inputs, as well as |
| zero-column inputs (which it used to do, undocumented). This |
| is because read.table() can create zero-row data frames with |
| NULL columns, and those cannot be extended. |
| |
| o readChar() and writeChar() can now work with a raw vector. |
| |
| o read.table(), write.table() and allies have been moved to package |
| utils. |
| |
| o rgb() now accepts the red, green and blue components in a |
| single matrix or data frame. |
| |
| o New utility function RShowDoc() in package 'utils' to find and |
| display manuals and other documentation files. |
| |
| o New .row_names_info() utility function finds the number of rows |
| efficiently for data frames; consequently, dim.data.frame() |
| has become very fast for large data frames with 'automatic' |
| row names. |
| |
| o RSiteSearch() now also allows to search postings of the 'R-devel' |
| mailing list. |
| |
| o screeplot() is now (S3) generic with a default method, thanks |
| to a patch from Gavin Simpson. |
| |
| o Experimental 'verbose' argument for selectMethod(). Might be |
| replaced later by a better interface for method selection |
| inspection. |
| |
| o Added links to source files to the parsing routines, so that |
| source() can now echo the original source and comments (rather |
| than deparsing). This affects example() and Sweave() as well. |
| |
| o stack() and unstack() have been moved to package utils. |
| |
| o strptime() now sets the "tzone" attribute on the result if |
| tz != "". |
| |
| o str.default() typically prints fewer entries of logical vectors. |
| |
| o The RweaveLatex driver for Sweave() now supports two new |
| options: expand=FALSE, to show chunk references in the output, |
| and concordance=TRUE, to output the concordance between input |
| and output lines. |
| |
| o system() now takes the same set of arguments on all platforms, |
| with those which are not applicable being ignored with a |
| warning. Unix-alikes gain 'input' and 'wait', and Windows |
| gains 'ignore.stderr'. |
| |
| o system.time() and proc.time() now return an object of class |
| "proc_time" with a print() method that returns a POSIX-like |
| format with names. |
| |
| o Sys.getenv() has a new argument 'unset' to allow unset and set |
| to "" to be distinguished (if the OS does). The results of |
| Sys.getenv() are now sorted (by name). |
| |
| o New function Sys.glob(), a wrapper for the POSIX.2 function |
| glob(3) to do wildcard expansion (on systems which have it, |
| plus an emulation on Windows). |
| |
| o Sys.setenv() is a new (and preferred) synonym for Sys.putenv(). |
| The internal C code uses the POSIX-preferred 'setenv' rather |
| than 'putenv' where the former is available. |
| |
| o New function Sys.unsetenv() to remove environment variables |
| (on systems where unsetenv is implemented or putenv can remove |
| variables, such as on Windows). |
| |
| o text(), mtext(), strheight(), strwidth(), legend(), axis(), |
| title(), pie(), grid.text() and textGrob() all attempt to |
| coerce non-language annotation objects (in the sense of is.object) |
| to character vectors. This is principally intended to cover |
| factors and POSIXt and Date objects, and is done via the |
| new utility function as.graphicsAnnot() in package grDevices. |
| |
| o tcltk:tk_select.list() now chooses the width to fit the widest item. |
| |
| o {re,un}tracemem() are now primitives for efficiency and so |
| migrate from 'utils' to 'base'. |
| |
| o union(), interect(), setdiff() and setequal() now coerce their |
| arguments to be vectors (and they were documented only to |
| apply to vectors). |
| |
| o uniroot() now works if the zero occurs at one of the ends of |
| the interval (suggestion of Tamas Papp). |
| |
| o There is a new function View() for viewing matrix-like |
| objects in a spreadsheet, which can be left up whilst R is |
| running. |
| |
| o New function withVisible() allows R level access to the |
| visibility flag. |
| |
| o zip.file.extract() has been moved to package utils. |
| |
| |
| o A few more cases of subassignment work, e.g. <raw>[] <- <list> |
| and <vector>[] <- <expression>, with suitable coercion of the LHS. |
| |
| o There is a warning if \ is used unnecessarily in a string when |
| being parsed, e.g. "\." where probably "\\." was intended. |
| ("\." is valid, but the same as ".".) Thanks to Bill Dunlap |
| for the suggestion. |
| |
| o Introduced the suffix L for integer literals to create |
| integer rather than numeric values, e.g. 100L, 0x10L, 1e2L. |
| |
| o Set the parser to give verbose error messages in case of |
| syntax errors. |
| |
| o The class "LinearMethodsList" has been extended and will be |
| used to create list versions of methods, derived from the |
| methods tables (environments). The older recursive |
| "MethodsList" class will be deprecated (by the release of |
| 2.5.0 if possible). |
| |
| o There are more flexible ways to specify the default library |
| search path. In addition to R_LIBS and .Library, there are |
| .Library.site (defaults to R_HOME/site-library) and |
| R_LIBS_USER (defaults to a platform- and version-specific |
| directory in ~/R). See ?.libPaths for details. |
| |
| o LAPACK has been updated to version 3.1.0. This should cause |
| only small changes to the output, but do remember that the sign |
| of eigenvectors (and principal components) is indeterminate. |
| |
| o PCRE has been updated to version 7.0. |
| |
| o Several functions handle row names more efficiently: |
| |
| - read.table() and read.DIF() make use of integer row names |
| where appropriate, and avoid at least one copy in assigning |
| them. |
| |
| - data.frame() and the standard as.data.frame() methods avoid |
| generating long dummy row names and then discarding them. |
| |
| - expand.grid() and merge() generate compact 'automatic' row |
| names. |
| |
| - data.matrix() and as.matrix.data.frame() have a new argument |
| 'rownames.force' that by default drops 'automatic' row names. |
| |
| o <data frame>[i, j] is substantially more memory-efficient when |
| only a small part of the data frame is selected, especially |
| when (part of) a single column is selected. |
| |
| o Command-line R (and Rterm.exe under Windows) accepts the options |
| '-f filename', '--file=filename' and '-e expression' to follow |
| other script interpreters. These imply --no-save unless |
| --save is specified. |
| |
| o Invalid bytes in character strings in an MBCS now deparse/print |
| in the form "\xc1" rather than "<c1>", which means they can be |
| parsed/scanned. |
| |
| o Printing functions (without source attributes) and expressions |
| now preserves integers (using the L suffix) and NAs (using |
| NA_real_ etc where necessary). |
| |
| o The 'internal' objects .helpForCall, .tryHelp and topicName are |
| no longer exported from 'utils'. |
| |
| o The internal regex code has been upgraded to glibc 2.5 (from 2.3.6). |
| |
| o Text help now attempts to display files which have an \encoding |
| section in the specified encoding via file.show(). |
| |
| o R now attempts to keep track of character strings which are |
| known to be in Latin-1 or UTF-8 and print or plot them |
| appropriately in other locales. This is primarily intended |
| to make it possible to use data in Western European languages |
| in both Latin-1 and UTF-8 locales. Currently scan(), |
| read.table(), readLines(), parse() and source() allow |
| encodings to be declared, and console input in suitable |
| locales is also recognized. |
| |
| New function Encoding() can read or set the declared encodings |
| for a character vector. |
| |
| o There have been numerous performance improvements to the data |
| editor on both Windows and X11. In particular, resizing the |
| window works much better on X11. |
| |
| o Packages graphics and grid no longer require grDevices, as |
| they might be used only with third-party devices. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o symbol.C() and symbol.For() are defunct, and have been replaced |
| by wrappers that give a warning. |
| |
| o Calling a builtin function with an empty argument is now always |
| an error. |
| |
| o The autoloading of ts() is defunct. |
| |
| o The undocumented reserved word GLOBAL.ENV has been removed. |
| (It was yet another way to get the value of the symbol |
| .GlobalEnv.) |
| |
| o The deprecated behaviour of structure() in adding a class when |
| specifying with "tsp" or "levels" attributes is now defunct. |
| |
| o unix() is now finally defunct, having been deprecated for |
| at least seven years. |
| |
| o Sys.putenv() is now deprecated in favour of Sys.setenv(), |
| following the POSIX recommendation. |
| |
| o Building R with --without-iconv is deprecated. |
| |
| o Using $ on an atomic vector is deprecated (it was previously |
| valid and documented to return NULL). |
| |
| o The use of storage.mode<- for other than standard types (and |
| in particular for value "single") is deprecated: use mode<- |
| instead. |
| |
| |
| INSTALLATION |
| |
| o A suitable iconv (e.g. from glibc or GNU libiconv) is |
| required. For 2.5.x only you can build R without it by |
| configuring using --without-iconv. |
| |
| o There is support again for building on AIX (tested on 5.2 and 5.3) |
| thanks to Ei-ji Nakama. |
| |
| o Autoconf 2.60 or later is used to create 'configure'. This |
| makes a number of small changes, and incorporates the changes |
| to the detection of a C99-compliant C compiler backported for |
| 2.4.1. |
| |
| o Detection of a Java development environment was added such that |
| packages don't need to provide their own Java detection. Newly |
| added make variables are JAVAC, JAVAH, JAR and JAVA_CPPFLAGS. |
| |
| R CMD javareconf was updated to look for the corresponding |
| Java tools as well. |
| |
| In addition, Java detection honors user-supplied environment |
| variables JAVA_CPPFLAGS, JAVA_LIBS and JAVA_LD_LIBRARY_PATH. |
| |
| o Added workaround for reported non-POSIX sh on OSF1. (PR#9375) |
| |
| o 'make install-strip' now works, stripping the executables and |
| also the shared libraries and modules on platforms where |
| 'libtool' knows how to do so. |
| |
| o Building R as a shared library and standalone nmath now |
| installs pkg-config files 'libR.pc' and 'libRmath.pc' respectively. |
| |
| o Added test for insufficiently complete implementation of sigaction. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o Functions str2type, type2char and type2str are now available in |
| Rinternals.h. |
| |
| o Added support for Objective C in R and packages (if available). |
| |
| o R_ParseVector() has a new 4th argument 'SEXP srcfile' allowing |
| source references to be attached to the returned expression list. |
| |
| o Added ptr_R_WriteConsoleEx callback which allows consoles to |
| distinguish between regular output and errors/warnings. |
| To ensure backward compatibility it is only used if |
| ptr_R_WriteConsole is set to NULL. |
| |
| |
| UTILITIES |
| |
| o Additional Sweave() internal functions are exported to help |
| writing new drivers, and RweaveLatexRuncode() is now created |
| using a helper function (all from a patch submitted by Seth |
| Falcon). |
| |
| o The following additional flags are accessible from R CMD config: |
| OBJC, OBJCFLAGS, JAR, JAVA, JAVAC, JAVAH, JAVA_HOME, JAVA_LIBS |
| and JAVA_CPPFLAGS. |
| |
| o R CMD build now takes the package name from the DESCRIPTION |
| file and not from the directory. (PR#9266) |
| |
| o checkS3methods() (and hence R CMD check) now checks agreement |
| with primitive internal generics, and checks for additional |
| arguments in methods where the generic does not have a '...' |
| argument. |
| |
| codoc() now knows the argument lists of primitive functions. |
| |
| o R CMD INSTALL and R CMD REMOVE now use as the default library |
| (if -l is not specified) the first library that would be used |
| if R were run in the current environment (and they run R to |
| find it). |
| |
| o There is a new front-end Rscript which can be used for #! |
| scripts and similar tasks. See help("Rscript") and 'An |
| Introduction to R' for further details. |
| |
| o R CMD BATCH (not Windows) no longer prepends |
| 'invisible(options(echo = TRUE))' to the input script. This |
| was the default unless --slave is specified and the latter is |
| no longer overridden. |
| |
| On all OSes it makes use of the -f argument to R, so |
| file("stdin") can be used from BATCH scripts. |
| |
| On all OSes it reports proc.time() at the end of the script |
| unless q() is called with options to inhibit this. |
| |
| o R CMD INSTALL now prepends the installation directory (if |
| specified) to the library search path. |
| |
| o Package installation now re-encodes R files and the NAMESPACE |
| file if the DESCRIPTION file specifies an encoding, and sets |
| the encoding used for reading files in preparing for |
| LazyData. This will help if a package needs to be used in |
| (say) both latin1 and UTF-8 locales on different systems. |
| |
| o R CMD check now reports on non-ASCII strings in datasets. |
| (These are a portability issue, which can be alleviated by |
| marking their encoding: see 'Writing R Extensions'.) |
| |
| o Rdiff now converts CRLF endings in the target file, and |
| converts UTF-8 single quotes in either to ASCII quotes. |
| |
| o New recommended package 'codetools' by Luke Tierney provides |
| code-analysis tools. This can optionally be used by 'R CMD |
| check' to detect problems, especially symbols which are not |
| visible. |
| |
| o R CMD config now knows about LIBnn . |
| |
| o New recommended package 'rcompgen' by Deepayan Sarkar |
| provides support for command-line completion under the Unix |
| terminal interface (provided readline is enabled) and the |
| Windows Rgui and Rterm front ends. |
| |
| |
| BUG FIXES |
| |
| o gc() can now report quantities of 'Vcells' in excess of 16Gb on |
| 64-bit systems (rather than reporting NA). |
| |
| o Assigning class "factor" to an object now requires it has |
| integer (and not say double) codes. |
| |
| o structure() ensures that objects with added class "factor" have |
| integer codes. |
| |
| o The "formula" and "outer" attributes of datasets 'ChickWeight', |
| 'CO2', 'DNase', 'Indometh', 'Loblolly', 'Orange' and 'Theoph' |
| now have an empty environment and not the environment used to |
| dump the datasets in the package. |
| |
| o Dataset 'Seatbelts' now correctly has class c("mts", "ts"). |
| |
| o str() now labels classes on data frames more coherently. |
| |
| o Several 'special' primitives and .Internals could return |
| invisibly if the evaluation of an argument led to the |
| visibility flag being turned off. These included |
| as.character(), as.vector(), call(), dim(), dimnames(), |
| lapply(), rep(), seq() and seq_along(). Others (e.g. dput() |
| and print.default()) could return visibly when this was not |
| intended. |
| |
| o Several primitives such as dim() were not checking the number |
| of arguments supplied before method dispatch. |
| |
| o Tracing of primitive functions has been corrected. It should |
| now be the case that tracing either works or is not allowed |
| for all primitive functions. (Problems remain if you make a |
| primitive into a generic when it is being traced. To be fixed |
| later.) |
| |
| o max.col() now omits infinite values in determining the |
| relative tolerance. |
| |
| o R CMD Sweave and R CMD Stangle now respond to --help and --version |
| like other utilities. |
| |
| o .libPaths() adds only existing directories (as it was |
| documented to, but could add non-directories). |
| |
| o setIs() and setClassUnion() failed to find some existing |
| subclasses and produced spurious warnings, now fixed. |
| |
| o data.frame() ignored 'row.names' for 0-column data frames, and |
| no longer treats an explicit row.names=NULL differently from |
| the default value. |
| |
| o identical() looked at the internal structure of the |
| 'row.names' attribute, and not the value visible at R level. |
| |
| o abline(reg) now also correctly works with intercept-only lm |
| models, and abline() warns more when it's called illogically. |
| |
| o warning() was truncating messages at |
| getOption("warning.length") - 1 (not as documented), with no |
| indication. It now appends '[... truncated]'. |
| |
| o Stangle/Sweave were throwing spurious warnings if options |
| 'result' or 'strip.white' were unset. |
| |
| o all.equal() was ignoring 'check.attributes' for list and |
| expression targets, and checking only attributes on raw vectors. |
| Logical vectors were being compared as if they were numeric, |
| (with a mean difference being quoted). |
| |
| o Calculating the number of significant digits in a number was |
| itself subject to rounding errors for digits >= 16. The |
| calculation has been changed to err on the side of slightly |
| too few significant digits (but still at least 15) rather than |
| far too many. (An example is print(1.001, digits=16).) |
| |
| o unlink() on Unix-alikes failed for paths containing spaces. |
| |
| o substr() and friends treated NA 'start' or 'stop' incorrectly. |
| |
| o merge(x, y, all.y = TRUE) would sometimes incorrectly return |
| logical columns for columns only in y when there were no |
| common rows. |
| |
| o read.table(fn, col.names=) on an empty file returned NULL |
| columns, rather than logical(0) columns (which is what results |
| from reading a file with just a header). |
| |
| o grid.[xy]axis(label=logical(0)) failed. |
| |
| o expression() was unnecessarily duplicating arguments. |
| |
| o as.expression(<list>) returned a single-element expression |
| vector, which was not compatible with S: it now copies lists |
| element-by-element. |
| |
| o supsmu(periodic = TRUE) could segfault. (PR#9502, detection |
| and patch by Bill Dunlap.) |
| |
| o pmax/pmin called with only logical arguments did not coerce to |
| numeric, although they were documented to do so (as max/min |
| do). |
| |
| o methods() did not know that cbind() and rbind() are internally |
| generic. |
| |
| o dim(x) <- NULL removed the names of x, but this was always |
| undocumented. It is not clear that it is desirable but it is |
| S-compatible and relied on, so is now documented. |
| |
| o which(x, arr.ind = TRUE) did not return a matrix (as |
| documented) if 'x' was an array of length 0. |
| |
| o C-level duplicate() truncated CHARSXPs with embedded nuls. |
| |
| o Partial matching of attributes was not working as documented |
| in some cases if there were more than two partial matches or |
| if "names" was involved. |
| |
| o data(package=character(0)) was not looking in ./data as |
| documented. |
| |
| o summary.mlm() failed if some response names were "" (as can |
| easily happen if cbind() is used). |
| |
| o The postscript() and pdf() drivers shared an encoding list |
| but used slightly different formats. This caused problems if |
| both were used with the same non-default encoding in the same |
| session. (PR#9517) |
| |
| o The data editor was not allowing Inf, NA and NaN to be entered |
| in numerical columns. It was intended to differentiate |
| between empty cells and NAs, but did not do so: it now does |
| so for strings. |
| |
| o supsmu() could segfault if all cases had non-finite values. |
| (PR#9519) |
| |
| o plnorm(x, lower.tail=FALSE) was returning the wrong tail for |
| x <= 0. (PR#9520) |
| |
| o which.min() would not report a minimum of +Inf, and |
| analogously for which.max(). (PR#9522) |
| |
| o 'R CMD check' could fail with an unhelpful error when checking |
| Rd files for errors if there was only one file and that had a |
| serious error. (PR#9459) |
| |
| o try() has been reimplemented using tryCatch() to solve two |
| problems with the original implementation: (i) try() would run |
| non-NULL options("error") expressions for errors within a try, and |
| (ii) try() would catch user interrupts. |
| |
| o str(obj) could fail when obj contained a dendrogram. |
| |
| o Using <data frame>[, <last column>] <- NULL failed (PR#9565) |
| |
| o choose(n, k) could return non-integer values for integer n and |
| small k on some platforms. |
| |
| o nclass.scott(x) and nclass.FD(x) no longer return NaN when var(x) |
| or IQR(x) (respectively) is zero. |
| |
| hist() now allows breaks = 1 (which the above patch will |
| return), but not breaks = Inf (which gave an obscure error). |
| |
| o strptime("%j") now also works for the first days of Feb-Dec. |
| (PR#9577) |
| |
| o write.table() now recovers better if 'file' is an unopened |
| connection. (It used to open it for both the column names and |
| the data.) |
| |
| o Fixed bug in mosaicplot(sort=) introduced by undocumented |
| change in R 2.4.1 (changeset r39655). |
| |
| o contr.treatment(n=0) failed with a spurious error message. |
| (It remains an error.) |
| |
| o as.numeric() was incorrectly documented: it is identical to |
| as.double. |
| |
| o jitter(rep(-1, 3)) gave NaNs. (PR#9580) |
| |
| o max.col() was not random for a row of zeroes. (PR#9542) |
| |
| o ansari.test(conf.int=TRUE, exact=FALSE) failed. |
| |
| o trace() now works on S3 registered methods, by modifying the |
| version in the S3 methods table. |
| |
| o rep(length=1, each=0) segfaulted. |
| |
| o postscript() could overflow a buffer if used with a long |
| 'command' argument. |
| |
| o The internal computations to copy complete attribute lists did |
| not copy the flag marking S4 objects, so the copies no longer |
| behaved like S4 objects. |
| |
| o The C code of nlminb() was altering a variable without |
| duplicating it. (This did not affect nlminb() but would have |
| if the code was called from a different wrapper.) |
| |
| o smooth(kind = "3RS3R") (the current default) used .C(DUP = |
| FALSE) but altered its input argument. (This was masked by |
| duplication in as.double.) |
| |
| o The signature for the predefined S4 method for as.character() |
| was missing '...' . |
| |
| o readBin(<raw vector>) could read beyond the end of the vector |
| when size-changing was involved. |
| |
| o The C entry point PrintValue (designed to emulate auto-printing) |
| would not find show() for use on S4 objects, and did not have |
| the same search path (for show(), print() and print() methods) |
| as auto-printing. Also, auto-printing and print() of S4 |
| objects would fail to find 'show' if the methods name space was |
| loaded but the package was not attached (or otherwise not in |
| the search path). |
| |
| o print() (and auto-printing) now recognize S4 objects even when |
| 'methods' is not loaded, and print a short summary rather than |
| dump the internal structure. |
| |
| o Sweave and Stangle had problems due to partial matching of code |
| chunk names when run with split=TRUE. |
| |
| o install.packages() on a source package now ensures that |
| R CMD INSTALL sees the same library search path as |
| install.packages() did when computing dependencies. |
| |
| o density() now ensures its 'y' values are non-negative. (PR#8876) |
| |
| o is.finite() and is.infinite() (and many other primitives) |
| are not internally generic and so do not support S4 methods, |
| which can no longer be set. (PR#7951) |
| |
| o nls(algorithm = "port") now accepts a list 'start' argument, |
| as for the other methods (and as documented). |
| |
| o Standard errors from the "ar" method of predict() could be |
| wrong for the last p predictions for models near |
| non-stationarity. (PR#9614) |
| |
| |
| |
| |
| ************************************************** |
| * * |
| * 2.4 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 2.4.1 patched |
| |
| NEW FEATURES |
| |
| o The Simplified Chinese translations have been completed. |
| |
| |
| BUG FIXES |
| |
| o co.intervals() sometimes failed to cover the largest value. |
| |
| o tempfile() is now random across sessions as well as within a |
| session. (On some systems it would give the same hex suffix |
| at the start of each session.) |
| |
| o Added infinite recursion test to internal function isMissing. |
| (PR#9426) |
| |
| o The "Date" and "POSIXt" methods for cut() were not choosing |
| the first day of the year for breaks = "years". |
| (In part, PR#9433.) |
| |
| o R is now able to deparse/print invalid multibyte strings in |
| MBCS locales (such as UTF-8) using hex escapes. This means |
| that e.g. demo(Hershey) works in all such locales. |
| |
| o optimize() could give incorrect answers in some rare problems |
| with exact symmetry about the midpoint of the interval |
| supplied. (PR#9438) |
| |
| o The residuals from an lm() fit with no coefficients but an |
| offset were incorrect. |
| |
| o oneway.test() was expecting a literal formula and did not |
| accept a variable containing a formula. |
| |
| o The legacy Quartz device (used by console R) displayed its |
| window outside the screen estate in some dual-head setups. |
| Now it will be always displayed in the center of the main |
| screen. |
| |
| o read.ftable() was not functional on non-seekable connections |
| such as URLs. |
| |
| o Some large memory allocations could cause segfaults or |
| crashes (e.g. followup to PR#9557). |
| |
| o Sweave() would drop characters from the end of chunk names |
| ending in "R". (PR#9567) |
| |
| o library(), i.e. its internal checkConflicts(), now (again) prints |
| "The following object(s) are masked .." only once per masked package. |
| |
| o methods:::cbind(x) {one argument} now works, calling cbind2(x) |
| when 'x' is an S4 object. |
| |
| |
| |
| CHANGES IN R VERSION 2.4.1 |
| |
| |
| INSTALLATION |
| |
| o The extraction of info from Subversion for an SVN checkout now |
| also works for svn >= 1.4.0. However, on Windows the 'Last |
| Changed Date' will be in the local timezone, and not in GMT as |
| previously. |
| |
| o configure uses code borrowed from autoconf 2.60 to try harder to |
| ensure that a C99-compliant compiler is used. (It does so by |
| appending to CC.) This avoids problems with systems such as FC5 |
| which override CFLAGS and thereby lose flags such as -std=gnu99. |
| |
| |
| NEW FEATURES |
| |
| o rainbow(), heat.colors(), terrain.colors(), topo.colors() and |
| cm.colors() all gain an 'alpha' argument to be passed to hsv(). |
| |
| o dput() will give an incorrect representation of the row names |
| of a data frame with integer row names. This is now corrected |
| when the object is recreated. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o Using STRICT_R_HEADERS applies to more reported clashes with |
| Windows headers, including Calloc and Realloc. These and |
| Free need to be prefixed by R_ when STRICT_R_HEADERS is defined. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o The previously undocumented behaviour of structure() in adding a |
| class when specifying "tsp" or "levels" attributes is now |
| deprecated (with a warning). |
| |
| |
| BUG FIXES |
| |
| o Fixed warning() to use .dfltWarn intead of .dfltStop for default |
| handling (PR#9274). |
| |
| o R would slow down when the product of the length of a vector and |
| the length of a character vector used to subset it exceeded 2^31. |
| (PR#9280) |
| |
| o merge() now allows zero-row data frames. |
| |
| o add1.lm() had been broken by other changes for weighted fits. |
| |
| o axis.POSIXct() would sometimes give the wrong labels. |
| |
| o Help for a method call would fail. (PR#9291) |
| |
| o gzfile() returned an object of class "file" not "gzfile". (PR#9271) |
| |
| o load()ing from a connection had a logic bug in when it closed |
| the connection. (PR#9271) |
| |
| o The lowess() algorithm is unstable if the MAD of the residuals |
| becomes (effectively) zero: R now terminates the iterations at |
| that point. (This may result in quite different answers.) |
| |
| The 'delta' argument was incorrectly documented. (PR#9264) |
| |
| o abbreviate() would only work for strings of up to 8191 bytes, |
| but this was not checked. Now longer strings are errors. |
| |
| o Drawing X11 rotated text was buggy for VERY small (negative) |
| angle of rotation. Reported by Ben Bolker. (PR#9301) |
| |
| o The X11 data editor would crash in an MBCS locale if R was |
| compiled with FC's CFLAGS that add buffer overflow and |
| stack-smashing detection. |
| |
| o rect() was not accepting border=NA in some cases involving |
| cross-hatching. |
| |
| o Fixes to S4 group generics to ensure that the correct number of |
| active arguments are in the signature of the group and all |
| members. Also a fix to keep the 'groupMembers' slot up to date. |
| |
| o S4 group generic "Logic" (with '&', '|', but not '!') has been |
| created, following the green book (apart from '!'). |
| |
| o removeClass() now takes care to remove any subclass references |
| to the deleted class. |
| |
| o mle() (in stats4) might not have worked as intended when the |
| order of parameters in 'start' differed from that in the |
| log-likelihood. (PR#9313) |
| |
| o dotchart() now properly restores par() settings after itself. |
| |
| o system() on Mac OS X was blocking arbitrary signals during the |
| call although only SIGPROF was meant to be blocked. |
| |
| o methods cached via callNextMethod() and (sometimes) as() were |
| being cached as directly specified although in fact they were |
| inherited. Caused problems in later search for inherited methods. |
| |
| o str() works properly for method definitions and other S4-classed |
| function objects. |
| |
| o JAVA_LIBS are now set correctly on MacOS X. |
| |
| o Fix null-termination issue suspected of causing crash with Fedora |
| Extra RPMS (PR#9339, Justin Harrington, analysis and fix from Bill |
| Dunlap). |
| |
| o Name spaces restored via a saved session silently failed to cache |
| their methods because the methods package was not yet |
| attached. Fixed by attaching methods before restoring data. |
| |
| o rbind()ing a list to a data frame generated invalid row names, |
| which were an error in 2.4.0. (PR#9346) |
| |
| o boxplot.stats(x) now returns the correct minimum instead of an |
| error for x <- c(1,Inf,Inf,Inf), and hence boxplot(x) "works". |
| |
| o promptClass() now uses \linkS4class{<ClassName>} instead of |
| of \link{<ClassName>-class}. |
| |
| o gc() no longer reports nonsense values for the number of used |
| Vcells if the true value exceeds 2^31 (and hence over 16Gb of |
| heap is in use): it now reports NA. (PR#9345) |
| |
| o rapply() now detects more user errors in supplying arguments. (PR#9349) |
| |
| o boxplot() was ignoring argument 'boxfill'. (PR#9352) |
| |
| o plot.lm(which = 6, id.n = 0) did not work. (PR#9333) |
| |
| o .deparseOpts("delayPromises") was not matching the C code, |
| returning 64 rather than 32. |
| |
| o bxp() could use partial matching on 'pars' when finding |
| defaults for some of its parameters, e.g. a setting of 'cex.axis' |
| in 'pars' or inline was used to set a default for 'outcex'. |
| |
| o acf() now allows lag.max = 0 except when type="partial", and |
| forces the lag 0 autocorrelation to 1. (PR#9360) |
| |
| o hist(*, include.lowest=., right=., plot=FALSE) does not warn |
| anymore, (PR#9356) and more. |
| |
| o Some bugs in caching superclass/subclass relations and in |
| removing those relations on detach and on removeClass() have |
| been fixed. |
| |
| o readBin() could return one too many strings if 'n' was an |
| over-estimate. (PR#9361) |
| |
| o A request for an opaque colour in the pdf() device after a |
| translucent one did not set the transparency back to opaque in |
| 2.4.0. |
| |
| Semi-transparent background colours were not being plotted on |
| the pdf() device. |
| |
| o plot.lm(which=5) in the case of constant leverage re-ordered |
| the factor levels but not the residuals, so the labelling by |
| factor level was often incorrect. |
| |
| o packBits() was not accepting a logical argument. (PR#9374) |
| |
| o make install was omitting doc/FAQ and doc/RESOURCES. |
| |
| o A two-sample t.test(x, y, var.equal=TRUE) did not allow one of the |
| groups to be of size one. |
| |
| o The "ts" method for print() failed on some corrupted objects |
| of class "ts", e.g. those without a "tsp" attribute. |
| |
| o structure() reordered the "class" value given if there was a |
| "tsp" value specified. |
| |
| o pairs() now does pass appropriate parts of '...' to the |
| 'diag.panel' argument. (PR#9384) |
| |
| o plot.lm() was using an incorrect estimate of dispersion for |
| some GLMs (including family=binomial and family=poisson). |
| (PR#9316) |
| |
| o Subsetting operators were setting R_Visible too early, so |
| assignments in arguments could make the result invisible. |
| (PR#9263) |
| |
| o The tk-GUI was displaying a warning due to an extra comma in |
| the list of manuals (PR#9396) |
| |
| o packageDescription() now gives an explicit error on a corrupt |
| DESCRIPTION file. |
| |
| o There was a scoping issue with tcltk callbacks given as |
| unevaluated expressions. This has only been partially fixed, a |
| complete fix probably requires redesign. |
| |
| o trace() had its return value documented incorrectly and was |
| sometimes visible when it should not have been. |
| |
| o pchisq() would sometimes use the wrong tail when calculating |
| non-central probabilities with lower.tail = FALSE. (PR#9406) |
| |
| o rm() could remove the wrong objects when passed an expression. |
| (PR#9399) Now only names are allowed in the '...' argument, |
| and the incorrect documentation of what happened with |
| character objects is corrected. |
| |
| o url() was not supporting 'encoding' except on file:// URLs. |
| |
| |
| |
| CHANGES IN R VERSION 2.4.0 |
| |
| |
| USER-VISIBLE CHANGES |
| |
| o The startup message now prints first the version string and |
| then the copyright notice (to be more similar to R --version). |
| |
| o save() by default evaluates promise objects. The old behaviour |
| (to save the promise and its evaluation environment) can be |
| obtained by setting the new argument 'eval.promises' to FALSE. |
| (Note that this does not apply to promises embedded in |
| objects, only to top-level objects.) |
| |
| o The functions read.csv(), read.csv2(), read.delim(), |
| read.delim2() now default their 'comment.char' argument to "". |
| (These functions are designed to read files produced by other |
| software, which might use the # character inside fields, but |
| are unlikely to use it for comments.) |
| |
| o The bindings in the base environment/name space (currently the |
| same thing) are now locked. This means that the values of |
| base functions cannot be changed except via |
| assignInNamespace() and similar tricks. |
| |
| o [[ on a factor now returns a one-element factor (and not an |
| integer), as.list() on a factor returns a list of one-element |
| factors (and not of character vectors), and unlist() on a list |
| of factors returns a factor (and not an integer vector). |
| These changes may affect the results of sapply() and lapply() |
| applied to factors. |
| |
| o mauchly.test() now returns the W statistic (for comparability |
| with SAS and SPSS), rather than the z (which was accidentally |
| not named in the output) |
| |
| o sort(x, decreasing = FALSE, ...) is now a generic function. |
| This means that 'partial' is no longer the second argument, |
| and calls which used positional matching may be incorrect: we |
| try to detect them. |
| |
| o See the section on 'Changes to S4 methods': all packages |
| depending on 'methods' need to be re-installed. |
| |
| |
| NEW FEATURES |
| |
| o agrep(), grep(), strwrap(), strtrim(), substr() and |
| related functions now coerce arguments which should be |
| character via as.character() rather than internally (so method |
| dispatch takes place, e.g. for factors). |
| |
| chartr(), charfold(), tolower() and toupper() now coerce their |
| main argument if necessary to a character vector via |
| as.character(). |
| |
| Functions which work element-by-element on character vectors |
| to give a character result now preserve attributes including |
| names, dims and dimnames (as suggested by the Blue Book |
| p. 144). Such functions include charfold(), chartr(), gsub(), |
| strtrim(), sub(), substr(), tolower() and toupper(). (Note |
| that coercion of a non-character argument may lose the |
| attributes.) |
| |
| agrep(value = TRUE) preserves names for compatibility with |
| grep(). |
| |
| nchar() has always preserved dims/dimnames (undocumented |
| before) and now also preserves names. |
| |
| |
| o .Deprecated and .Defunct take a new parameter, msg, that allows |
| for the specification of the message printed and facilitates |
| deprecation of calling sequences etc. |
| |
| o .Fortran() will map 'name' to lower case, and will work with |
| 'name' containing underscores. |
| |
| o The default is now .saveRDS(compress = TRUE) |
| |
| o The :: operator now also works for packages without name spaces |
| that are on the search path. |
| |
| o [[ on a list does not duplicate the extracted element unless |
| necessary. (It did not duplicate in other cases, e.g. a |
| pairlist.) |
| |
| o argsAnywhere() works like args() on non-exported functions. |
| |
| o as.data.frame() gains a '...' argument. |
| |
| o Added an as.data.frame() method for class "ftable". |
| |
| o as.list(<an expression>) is now handled by internal code and |
| no longer loses attributes such as names. |
| |
| as.list(<a list>) no longer duplicates (unnecessarily). |
| |
| o as.POSIX[cl]t can now convert character strings containing |
| fractional seconds. |
| |
| o attach() can now attach a copy of an environment. |
| |
| o available.packages() and installed.packages() gain a 'fields' |
| argument thanks to Seth Falcon. |
| |
| o axis.POSIXct() uses a different algorithm for ranges of 2 to 50 |
| days that will mark days at midnight in the current timezone |
| (even if the graph crosses a DST change). |
| |
| o body<-() and formals<-() default to envir = environment(fun), |
| that is they do not by default change the environment. |
| (Previously they changed it to parent.frame().) |
| |
| o New function combn(x, m, ..) for computing on all combinations of |
| size 'm' (for small 'm' !). |
| |
| o The cumxxx() functions now handle logical/integer arguments |
| separately from numeric ones, and so return an integer result |
| where appropriate. |
| |
| o data.frame() has a new argument 'stringsAsFactor'. This and |
| the default for read.table(as.is=) are set from the new global |
| option 'stringsAsFactors' via the utility function |
| default.stringsAsFactors(). |
| |
| o dev.interactive() now has an optional argument 'orNone'. |
| |
| o df() now has a noncentrality argument 'ncp', based on a |
| contribution by Peter Ruckdeschel. |
| |
| o example() gains an argument 'ask' which defaults to "TRUE when |
| sensible", but the default can be overridden by setting option |
| 'example.ask'. |
| |
| o expand.grid() now has an argument 'KEEP.OUT.ATTRS' which can |
| suppress (the potentially expensive) "out.attrs" attribute. It no |
| longer returns an extraneous 'colnames' attribute. |
| |
| o The subset and subassign methods for factors now handle factor |
| matrices, and dim() can be set on a factor. |
| |
| o There is now a format() method for class "ftable". |
| |
| o head(x, n) and tail(x, n) now also work for negative arguments, |
| thanks to Vincent Goulet. |
| |
| o head.matrix() and tail.matrix() are no longer hidden, to be used |
| for building head() and tail() methods for other classes. |
| |
| o If help() finds multiple help files for a given topic, a menu |
| of titles is used to allow interactive choice. |
| |
| o help.search() now rebuilds the database if 'package' specifies a |
| package not in the saved database. |
| |
| o hist(*, plot = FALSE) now warns about unused arguments. |
| |
| o history() gains a 'pattern' argument as suggested by Romain |
| Francois. |
| |
| o integer(0) now prints as that rather than "numeric(0)" (it |
| always deparsed as "integer(0)"). |
| |
| o interaction(..., drop=TRUE) now gives the same result as |
| interaction(...)[,drop=TRUE] (it used to sometimes give a |
| different order for the levels). |
| |
| o lag.plot() produces a conventional plot (not setting mfrow) if |
| only one plot is to be produced. |
| |
| o lapply() does much less copying. Vector X are handled without |
| duplication, and other types are coerced via as.list(). (As a |
| result, package 'boot' runs its examples 4% faster.) |
| |
| lapply(<a pairlist>) now coerces to a list (rather than traverse |
| the pairlist from the beginning for each item). |
| |
| o legend() has new parameters 'box.lwd' and 'box.lty'. |
| |
| o lines() gains a simple method for isoreg() results. |
| |
| o load() no longer coerces pairlists to lists (which was |
| undocumented, but has been happening since 1998). |
| |
| o make.link() now returns an object of class "link-glm". |
| The GLM families accept an object of this class for their |
| 'link' argument, which allows user-specified link functions. |
| Also, quasi() allows user-specified variance functions. |
| |
| o mapply() uses names more analogously to lapply(), e.g.. |
| |
| o matplot() now accepts a 'bg' argument similarly to plot.default() etc. |
| |
| o median() is now generic, and its default method uses mean() |
| rather than sum() and so is more widely applicable (e.g. to dates). |
| |
| o Dummy functions memory.size() and memory.limit() are available |
| on Unix-alikes, for people who have not noticed that documentation |
| is Windows-specific. |
| |
| o merge() works more efficiently when there are relatively few |
| matches between the data frames (for example, for 1-1 |
| matching). The order of the result is changed for 'sort = FALSE'. |
| |
| o merge() now inserts row names as a character column and not a |
| factor: this makes the default sort order more comprehensible. |
| |
| o Raw, complex and character vectors are now allowed in model |
| frames (there was a previously undocumented restriction to |
| logical, integer and numeric types.). Character vectors in a |
| formula passed to model.matrix() are converted to factors and |
| coded accordingly. |
| |
| o modifyList() utility, typically for housekeeping nested lists. |
| |
| o x <- 1:20; y <- rnorm(x); nls(y ~ A*exp(-x^2/sig)) no longer |
| returns an unhelpful error message. In this and similar cases, it |
| now tries a wild guess for starting values. |
| |
| o Ops.difftime() now handles unary minus and plus. |
| |
| o Ops.Date() and Ops.POSIXt() now allow character arguments |
| (which are coerced to the appropriate class before comparison, |
| for Ops.POSIXt() using the current time zone). |
| |
| o There is a new option(max.contour.segments = 25000) which can be |
| raised to allow extremely complex contour lines in contour() |
| and contourLines(). (PR#9205) |
| |
| o options(max.print = N) where N defaults to 99999 now cuts printing |
| of large objects after about N entries. print(x, ..., max = N) |
| does the same for the default method and those building on |
| print.default(). |
| |
| options("menu.graphics") controls if graphical menus should be |
| used when available. |
| |
| options("par.ask.default") allows the default for par("ask") |
| to be set for a newly-opened device. (Defaults to FALSE, the |
| previous behaviour.) |
| |
| The way option("papersize") is set has been changed. On |
| platforms which support the LC_PAPER locale category, the |
| setting is taken first from the R_PAPERSIZE environment |
| variable at run time, then from the LC_PAPER category |
| ("letter" for _US and _CA locales and "a4" otherwise). On |
| other platforms (including Windows and older Unixen), the |
| choice is unchanged. |
| |
| o package.skeleton() gains arguments 'namespace' and |
| 'code_files'. |
| |
| o par(ask=TRUE) now only applies to interactive R sessions. |
| |
| o parse() now returns up to 'n' expressions, rather than fill |
| the expressions vector with NULL. (This is now compatible |
| with S.) |
| |
| o The 'version' argument for pdf() is now increased |
| automatically (with a warning) if features which need a higher |
| level are used. |
| |
| o pie() now allows expressions for 'labels', and empty slices. |
| |
| o There is a new '%.%' operator for mathematical annotations |
| (plotmath) which draws a centred multiplication dot |
| (a \cdot in LaTeX), thanks to Uwe Ligges. |
| |
| o predict.lm() gains a 'pred.var' argument. (Wishlist PR#8877.) |
| |
| o print.summary.{aov,glm,lm,nls} and print.{aov,glm} make use of |
| naprint() to report when na.action altered the model frame. |
| |
| o print.table(T, zero.print=ch) now also replaces 0 by ch when T is |
| non-integer with integer entries. |
| |
| o Recursive rapply() which is similar to lapply but used |
| recursively and can restrict the classes of elements to which |
| it is applied. |
| |
| o r2dtable() has been moved to package 'stats'. |
| |
| o New function read.DIF() to read Data Interchange Format files, |
| and (on Windows) this format from the clipboard. |
| |
| o New experimental function readNEWS() to read R's own "NEWS" file |
| and similarly formatted ones. |
| |
| o readLines() has a new argument 'warn' to suppress warnings: |
| the default behaviour is still to warn. |
| |
| o reg.finalizer() has a new argument 'onexit' to parallel the |
| C-level equivalent R_RegisterFinalizerEx. |
| |
| o rep() is now a primitive function and under some conditions |
| very much faster: rep.int() is still a little faster (but does |
| less). (Because it is primitive there are minor changes to the |
| call semantics: see the help page.) |
| |
| o The 'row.names' of a data frame may be stored internally as an |
| integer or character vector. This can result in considerably |
| more compact storage (and more logical row names from rbind) |
| when the row.names are 1:nrow(x). However, such data frames |
| are not compatible with earlier versions of R: this can be |
| ensured by supplying a character vector as 'row.names'. |
| |
| row.names() will always return a character vector, but direct |
| access to the attribute may not. |
| |
| The internal storage of row.names = 1:n just records 'n', for |
| efficiency with very long vectors. |
| |
| The "row.names" attribute must be a character or integer |
| vector, and this is now enforced by the C code. |
| |
| o The "data.frame" and "matrix" methods for rowsum() gain an 'na.rm' |
| argument. |
| |
| o Experimental support for memory-use profiling via Rprof(), |
| summaryRprof(), Rprofmem() and tracemem(). |
| |
| o save.image() [also called by sys.save.image() and hence from q()] |
| now defaults to saving compressed binary images. To revert to |
| the previous behaviour set option "save.image.defaults": see |
| ?save.image. |
| |
| o There is a new primitive seq.int() which is slightly more |
| restricted than seq() but often very much faster, and new |
| primitives seq_along() and seq_len() which are faster still. |
| |
| o serialize(connection = NULL) now returns a raw vector (and not |
| a character string). unserialize() accepts both old and new |
| formats (and has since 2.3.0). |
| |
| o setwd() now returns the previously current directory (invisibly). |
| |
| o The function sort() is now sort.int(), with a new generic |
| function sort() which behaves in the same way (except for the |
| order of its argument list) for objects without a class, and |
| relies on the '[' method for objects with a class (unless a |
| specific method has been written, as it has for class "POSIXlt"). |
| |
| o sort.list() now implements complex vectors (PR#9039), and how |
| complex numbers are sorted is now documented. |
| |
| o spline() and splinefun() now follow approx[fun] to have an argument |
| 'ties = mean' which makes them applicable also when 'x' has |
| duplicated values. |
| |
| o str(x) does not print the S3 "class" attribute when it is the |
| same as 'mode' (which is printed anyway, possibly abbreviated) |
| and it puts it beside mode for atomic objects such as S3 class |
| "table". |
| |
| o str(<data.frame>) now outputs 'data.frame' instead of |
| `data.frame'; this may affect some strict (Package) tests. |
| |
| o str() now takes also its defaults for 'vec.len' and 'digits.d' |
| from options('str') which can be set by the new strOptions(). |
| |
| o symnum() has a new argument 'numeric.x' particularly useful for |
| handling 0/1 data. |
| |
| o Sys.getlocale() and Sys.setlocale() support LC_MESSAGES, |
| LC_PAPER and LC_MEASUREMENT if the platform does. |
| |
| o Sweave has a new options 'pdf.encoding' and 'pdf.version' for |
| its Rweave driver. |
| |
| o The character vector used by an output textConnection() has |
| a locked binding whilst the connection is open. |
| |
| There is a new function textConnectionValue() to retrieve the |
| value of an output textConnection(). |
| |
| o traceback() gains a 'max.lines' argument. |
| .Traceback is no longer stored in the workspace. |
| |
| o warning(immediate. = TRUE) now applies to |
| getOption("warn") < 0 and not just == 0. |
| |
| o warnings() is now an accessor function for 'last.warning' (which |
| is no longer stored in the workspace) with a print() method. |
| |
| |
| o The internal internet download functions have some new |
| features from libxml 2.6.26. |
| |
| o There is an option "HTTPUserAgent" to set the User Agent in R |
| download requests etc. Patch from S. Falcon. |
| |
| o PCRE has been updated to version 6.7. |
| |
| o The C function substituteList now has tail recursion expanded |
| out, so C stack overflow is less likely. (PR#8141, fix by |
| Kevin Hendricks) |
| |
| o The (somewhat soft) 1023/4 byte limit on command lines is now |
| documented in 'An Introduction to R'. |
| |
| o The maximum number of open connections has been increased from |
| 50 to 128. |
| |
| o There is a new manual 'R Internals' on R internal stuctures |
| plus the former appendices of 'Writing R Extensions'. |
| |
| o The autoloads introduced at the package re-organization have been |
| almost completely removed: the one that remains is for ts(). |
| |
| o The setting of the various Java configuration variables has been |
| improved to refer to JAVA_HOME, and they are now documented in |
| the R-admin manual. |
| |
| o It is (again) possible to calculate prediction intervals from |
| "lm" objects for the original data frame, now with a warning |
| that the intervals refer to future observations. Weighted |
| intervals have also been implemented, with user-specifiable |
| weights. Warnings are given in cases where the default |
| behaviour might differ from user expectations. See the |
| ?predict.lm for details. |
| |
| |
| CHANGES TO S4 METHODS |
| |
| o The default prototype object for S4 classes will have its own |
| internal type in 2.4.0, as opposed to being an empty list (the |
| cause of several errors in the code up to 2.3.1). Note that old |
| binary objects, including class definitions, will be |
| inconsistent with the type, and should be recreated. |
| |
| o S4 method dispatch has been completely revised to use cached |
| generic functions and to search for the best match among |
| inherited methods. See ?Methods and |
| http://developer.r-project.org/howMethodsWork.pdf |
| |
| o Objects created from an S4 class are now marked by an internal flag, |
| tested by isS4() in R and by macro IS_S4_OBJECT() in C. This |
| is an efficient and reliable test, and should replace all |
| earlier heuristic tests. |
| |
| o Some changes have been made to automatic printing of S4 |
| objects, to make this correspond to a call to show(), as per |
| 'Programming with Data'. |
| |
| o S4 generic and class definitions are now cached when the related |
| package is loaded. This should improve efficiency and also |
| avoid anomalous situations in which a class or generic cannot |
| be found. |
| |
| o trace() now creates a new S4 class for the traced object if |
| required. This allows tracing of user-defined subclasses of |
| "function". |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o The re-named tcltk functions tkcmd, tkfile.tail, tkfile.dir, |
| tkopen, tkclose, tkputs, tkread are now defunct. |
| |
| o Argument 'col' of bxp() has been removed: use 'boxfill'. |
| |
| o Use of NULL as an environment is now an error. |
| |
| o postscriptFont() is defunct: use Type1Font(). |
| |
| o La.chol() and La.chol2inv() are defunct (they were the same as |
| the default options of chol() and chol2inv). |
| |
| o La.svd(method = "dgesvd") is defunct. |
| |
| o Files install.R and R_PROFILE.R in packages are now ignored |
| (with a warning). |
| |
| o The following deprecated command-line options to INSTALL have |
| been removed (use the fields in the DESCRIPTION file instead): |
| -s --save --no-save --lazy --no-lazy --lazy-data --no-lazy-data |
| |
| o Graphical parameter 'tmag' is obsolete. |
| |
| o mauchley.test() (package 'stats') is now defunct. |
| |
| o symbol.C() and symbol.For() are deprecated. They are required in |
| S for use with is.loaded(), but are not so required in R. |
| |
| o load()ing an object saved in one of the formats used prior to |
| R 1.4.0 is deprecated. Such objects should be re-saved in the |
| current format. |
| |
| o save(version = 1) is now deprecated. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o The convenience function ScalarLogical now coerces all |
| non-zero non-NA values to TRUE. |
| |
| o The vector accessor functions such as INTEGER, REAL and |
| SET_VECTOR_ELT now check that they are called on the |
| correct SEXPTYPE (or at least on a compatible one). See |
| `Writing R Extensions' for the details and for a stricter |
| test regime. |
| |
| o It is no longer possible to pass list variables to |
| .C(DUP = FALSE): it would have given rise to obscure garbage |
| collection errors. |
| |
| o allocString is now a macro, so packages using it will need to |
| be reinstalled. |
| |
| o R_ParseVector was returning with object(s) protected in the |
| parser if the status was PARSE_INCOMPLETE or PARSE_ERROR. |
| |
| o There is a new function Rf_endEmbeddedR to properly terminate |
| a session started by Rf_initEmbeddedR, and both are now |
| available on Windows as well as on Unix-alikes. These and |
| related functions are declared in a new header <Rembedded.h>. |
| |
| If R_TempDir is set when embedded R is initialized it is |
| assumed to point to a valid session temporary directory: see |
| `Writing R Extensions'. |
| |
| o There is a new interface allowing one package to make C routines |
| available to C code in other packages. The interface consists |
| of the routines R_RegisterCCallable and R_GetCCallable. These |
| functions are declared in <R_ext/Rdynload.h>. This interface |
| is experimental and subject to change. |
| |
| In addition, a package can arrange to make use of header |
| files in another (already installed) package via the |
| 'LinkingTo' field in the DESCRIPTION file: see 'Writing R |
| Extensions'. |
| |
| |
| UTILITIES |
| |
| o R CMD SHLIB now handles (as linker commands) -L*, -l* and *.a. |
| |
| o R CMD check now: |
| |
| - warns if there are non-ASCII characters in the R code (as |
| these will likely be syntax errors in some locale). |
| |
| - tests Rd cross-references by default, and tests for |
| (syntactically) valid CITATION metadata. |
| |
| - tests that the package can be loaded, and that the package |
| and name space (if there is one) can each be loaded in |
| startup code (before the standard packages are loaded). |
| |
| - tests for empty 'exec' or 'inst' directories. |
| |
| - checks if $(FLIBS) is used when $(BLAS_LIBS) is. |
| |
| - checks that all packages (except non-S4-using standard |
| packages) used in ::, :::, library() and require() calls are |
| declared in the DESCRIPTION file, and 'methods' is declared if |
| S4 classes or methods are set. |
| |
| - throws an error if the standard packages 'methods' and |
| 'stats4' are imported from in the NAMESPACE file and not |
| declared in the DESCRIPTION file. |
| |
| o The test script produced by massage-Examples.pl no longer |
| creates objects in the base environment. |
| |
| o New utilties R CMD Stangle and R CMD Sweave for extracting S/R |
| code from and processing Sweave documentation, respectively. |
| |
| o The DESCRIPTION file of packages may contain an 'Enhances:' |
| field. |
| |
| o An R CMD javareconf script has been added to allow Java |
| configuration to be updated even after R has been installed. |
| |
| |
| INSTALLATION |
| |
| o The C function realpath (used by normalizePath()) is hidden on |
| some systems and we try harder to find it. |
| |
| o There is a new option --enable-BLAS-shlib, which compiles the |
| BLAS into a dynamic library -lRblas and links against that. |
| For the pros and cons see the R-admin manual. |
| |
| The defaults are now --without-blas (so you have explicitly to |
| ask for an external BLAS), and --enable-BLAS-shlib unless |
| a usable external BLAS is found or on AIX or on MacOS X 10.2 |
| and earlier. |
| |
| o MacOS X did not like having LSAME in both BLAS and LAPACK |
| libraries, so it is no longer part of the R-internal LAPACK. |
| We now require an external BLAS to provide LSAME: it seems |
| that nowadays all do. |
| |
| o The configure test for 'whether mixed C/Fortran code can be |
| run' has been improved as on one system that test passed but |
| the Fortran run-time library was broken. |
| |
| o A precious configure variable DEFS can be set to pass defines |
| (e.g. -DUSE_TYPE_CHECKING_STRICT) to C code when compiling R. |
| |
| o There is now a test for visible __libc_stack_end on Linux |
| systems (since it is not visible on some recent glibc's |
| built from the sources). |
| |
| o MacOS X 10.4 and higher now use two-level namespaces, single |
| module in a shared library and allow undefined symbols to be |
| resolved at run-time. This implies that common symbols are now |
| allowed in package libraries. --enable-BLAS-shlib is supported |
| for internal BLAS, external BLAS framework and external static |
| BLAS. An external dynamic library BLAS is NOT supported. (But |
| it can be easily used by replacing internal BLAS library file |
| later.) MacOS X < 10.4 does not support --enable-BLAS-shlib. |
| |
| o Dynamic libraries and modules use a flat namespace on MacOS X |
| 10.4 and higher if either Xcode tools don't support dynamic |
| lookup (Xcode < 2.3) or the FORCE_FLAT_NAMESPACE environment |
| variable is set. (The latter was introduced temporarily for |
| testing purposes and may go away anytime.) |
| |
| o configure now defaults to 'run-time linking' on AIX |
| (and AIX < 4.2 is no longer allowed), using -bexpall rather |
| than export/import files. If this works, it allows R to be |
| built in the same way as other Unix-alikes, including with R |
| as a shared library and with a shared BLAS. |
| |
| o The "mac.binary" package type now defaults to universal |
| binary. If a repository supports architecture-specific Mac |
| binaries, they can be requested by using "mac.binary.xxx" in |
| contrib.url(), where xxx is the desired architecture. |
| |
| o There is a new configure option --enable-memory-profiling to |
| enable memory profiling with tracemem, Rprof, Rprofmem. |
| |
| |
| BUG FIXES |
| |
| o The name of a Fortran symbol reported to be missing by |
| .Fortran() is now the actual name. (What was reported to be |
| an 'entry point' was missing the common leading underscore.) |
| |
| o print() on a MBCS character string now works properly a |
| character at a time rather than a byte at time. (This does |
| not affect MBCSs like UTF-8 and the Windows DBCSes which have |
| non-ASCII lead bytes and always worked correctly.) |
| |
| o glm() now recalculates the null deviance whenever there is an |
| offset (even if it is exactly zero to avoid a discontinuity in |
| that case, since the calculations with and without offset are |
| done by different algorithms). |
| |
| o Amongst families, quasi() accepted an expression for link and |
| no other did. Now all accept an expression which evaluates to |
| a one-element character vector (although e.g. 'logit' is taken |
| as a name and not an expression). |
| |
| o trace() now accepts arguments where= and signature= for the |
| old-style trace (no tracer or exit, edit==FALSE) and just |
| prints a message on entry. Also the undocumented feature of |
| where=function now works for generic functions as well. |
| |
| o callNextMethod() failed for recursive use when the methods had |
| nonstandard argument lists. Now enforces the semantic rule |
| that the inheritance is fixed when the method containing the |
| callNextMethod() is installed. See Details in the documentation. |
| |
| o UseMethod() looked for the defining environment of 'generic' as |
| if it were the current function, although some functions are |
| generic for methods of a different generic. |
| |
| Lookup for S3 methods is confined to functions: previously a |
| non-function 'fun.class' could have masked a function of the |
| same name. |
| |
| o Line types (lty) specified as hex strings were documented not to |
| allow zero, but some devices accepted zero and handled it in a |
| device-dependent way. Now it is an error on all devices. |
| (PR#8914) |
| |
| o Subassignment for a time series can no longer extend the series: |
| it used to attempt to but failed to adjust the tsp attributes. |
| Now window() must be used. |
| |
| o Function AIC() in package 'stats4' was not dispatching correctly |
| on S4 classes via logLik() because of name space issues. |
| |
| o Subsetting LANGSXPs could break the call-by-value illusion. |
| (PR#7924) (patch from Kevin Hendricks). |
| |
| o parse() with n > 1 gave a syntax error if fewer than n statements |
| were available. |
| |
| o parse() with n > 1 gave strange results on some syntax errors. |
| (PR#8815) |
| |
| o lag.plot() now respects graphical parameters for the axes. |
| |
| o Using a wrong link in family() now gives more consistent error |
| messages. |
| |
| o sort.list(method="radix") works on factors again. |
| |
| o object.size() is more accurate for vector objects (it takes into |
| account the smaller header and also the fixed sizes used in |
| the node classes for small vector objects). |
| |
| o addmargins(T, ...) now returns a "table" when 'T' is a "table", as |
| its help page has always suggested. |
| |
| o remove() now explicitly precludes removing variables from |
| baseenv() and throws an error (this was previously ignored). |
| |
| o Saving the workspace at the end of a session now works as has |
| long been intended, that is it is saved only if something has |
| been added/deleted/changed during the current session. |
| |
| o The search for bindings in <<-, ->> and assign(inherits=TRUE) |
| was omitting the base package, although this was not |
| documented. Now the base package is included (but most |
| bindings there are locked). |
| |
| o dweibull(0, shape) was NaN not Inf for shape < 1. Also, the |
| help for dgamma and dweibull gave support as x > 0, but |
| returned non-zero values for x = 0. (PR#9080) |
| |
| o Subsetting arrays no longer preserves attributes (it was |
| removed for matrices in 1998). |
| |
| o The "factor" method of as.character() no longer maps level |
| "NA" to "<NA>" (a legacy of before there were NA character |
| strings). |
| |
| o terms(keep.order=TRUE) was not returning a valid "order" |
| attribute. |
| |
| o The DLL registration code was not freeing .External symbols. |
| |
| o The internet download routines expected URLs of less than 4096 |
| bytes, but did not check. Now this is checked, and http:// URLs |
| are allowed to be up to 40960 bytes. |
| |
| o parse(n=-1) threw a stack-imbalance error, and parse(n=3) did |
| not cope correctly with EOF during input. |
| |
| o Zero-column data frames had no names (rather than character(0)). |
| |
| o by() and acf() could get confused when they used very long |
| expressions as names. |
| |
| o residuals(<glm object>, type="working") was NA for cases with |
| zero weight (whereas they are well-defined even though the |
| case was not used during the fitting) and the actual value is |
| now returned. This allows residuals to be computed from fits |
| with 'y = FALSE'. |
| |
| The residuals in a fitted "glm" object are computed more |
| accurately: the previous formula was subject to cancellation. |
| |
| o loess() now checks the validity of its 'control' argument. |
| |
| o rownames(<0-row matrix>, do.NULL=FALSE) was wrong. (PR#9136) |
| |
| o apply() now works as documented when applied over 2 or more |
| margins with one of zero extent. (It used to drop dimensions.) |
| |
| o head() and tail() now also work row-wise for "table" and "ftable" |
| objects. |
| |
| o NextMethod() could throw an error/crash if called from a method |
| that was called directly rather than from a generic (so |
| .Method was unset). |
| |
| o order(x, na.last = NA) failed for a zero-length x. |
| |
| o grep(pat, x, value = TRUE, perl = L) preserved names for |
| L == TRUE && !is.na(pat) but not otherwise. Now it always does. |
| |
| o [rc]bind() now find registered methods and not just visible ones. |
| |
| o Printing a factor no longer ignores attributes such as names and |
| dim/dimnames. |
| |
| o Command-line arguments after --encoding were ignored. |
| |
| o The check for impossible confidence levels was off by one in |
| wilcox.test (PR#8557) |
| |
| o [[ on an environment could create aliases. (PR#8457) |
| |
| o pt() with a very small (or zero) non-centrality parameter could |
| give an unduly stringent warning about 'full precision was not |
| achieved'. (PR#9171) |
| |
| o writeChar() could segfault if 'nchars' was given silly values. |
| |
| o qt() and rt() did not work for vector 'ncp', and qt() did not |
| work for negative 'ncp'. |
| |
| o ns() failed to work correctly when 'x' was of length one. |
| |
| o identical() ignored tags on pairlists (including names of |
| attributes) and required an identical ordering for |
| attribute values in their pairlists. Now names are compared |
| on pairlists, and attribute sets are treated as unordered. |
| |
| o If they were unused arguments supplied to a closure, only |
| the first non-empty one was reported, despite the message. |
| |
| Unmatched empty arguments (such as f(1,,) for a function of |
| one argument) were ignored. They are now an error. |
| |
| o Calling a builtin with empty arguments used to silently remove |
| them (and this was undocumented). Now this is an error unless |
| builtin is c() or list() or there are only trailing empty |
| arguments, when it is a warning (for the time being: this will |
| be made an error in R 2.5.0). |
| |
| o install.packages() ignored 'configure.args' if the vector was |
| unnamed. |
| |
| o biplot() now works if there are missing values in the data. |
| |
| o biplot() now passes par() values to all four axes (not |
| just those on sides 1 and 2). |
| |
| o [.acf now handles an empty first index. |
| |
| o Deparsing uses backticks more consistently to quote |
| non-syntactic names. |
| |
| o Assigning to the symbol in a for() loop with a |
| list/expression/pairlist index could alter the index. Now the |
| loop variable is explicitly read-only. (PR#9216) |
| |
| o Using old.packages() (and hence update.packages()) on an empty |
| (or non-existent) library failed with an obscure message. |
| |
| o plot.xy() could segfault if supplied with an invalid 'col' |
| argument. (PR#9221) |
| |
| o menu() with graphics=TRUE attempted to use Tcl/Tk on unix even |
| if DISPLAY was not set (in which case Tk is not available and |
| so the attempt is bound to fail). |
| |
| o The print() method for 'dist' objects prints a matrix even for |
| n = 2. |
| |
| o The cumxxx functions were missing some PROTECTs and so could |
| segfault on long vectors (especially with names or where |
| coercion to numeric occurred). |
| |
| o The X11() device no longer produces (apparently spurious) |
| 'BadWindow (invalid Window parameter)' warnings when run from |
| Rcmdr. |
| |
| o legend() assumed that widths and heights of strings were positive, |
| which they need not be in user coordinates with reversed axes. |
| (In part, PR#9236) |
| |
| o The plot() methods for "profile.nls" objects could get |
| confused if 'which' had been used in the profile() call. (PR#9231) |
| |
| o boxplot() did not passed named arguments (except graphics |
| parameters) to bxp() as documented. (PR#9183) |
| |
| o Only genuinely empty statements act as 'return' in the |
| browser, not say those starting with a comment char. (PR#9063) |
| |
| o summary.mlm() incorrectly used accessor functions to fake an |
| "lm" object. (PR#9191) |
| |
| o prettyNum() was not preserving attributes, despite being |
| explicitly documented to. (PR#8695) |
| |
| o It was previously undocumented what happened if a graphical |
| parameter was passed in both '...' and 'pars' to boxplot() |
| and bxp(), and they behaved differently. Now those passed in |
| '...' have precedence in both cases. |
| |
| o A failed subassignment could leave behind an object '*tmp*'. |
| The fix also sometimes gives better error messages. |
| |
| o Using SIGUSR1 on Unix now always terminates a session, and no |
| longer is caught by browser contexts and restarts (such as try()). |
| |
| o In the 'graphics' package, in-line 'font=5' was being ignored |
| (report by Tom Cook). |
| |
| o nls() looked for non-parameter arguments in a function call in |
| the wrong scope (from the body of nls). |
| |
| o Printing of complex numbers could misbehave when one of the |
| parts was large (so scientific notation was used) and the |
| other was so much smaller that it had no significant digits |
| and should have been printed as zero (e.g. 1e80+3e44i). |
| |
| o Using install.packages with type="mac.binary" and target path |
| starting with ~ failed with a cryptic message while unpacking. |
| |
| o getwd() now works correctly when the working directory is |
| unavailable (e.g. unreadable). |
| |
| o The alternative hypothesis in wilcox.test() was labelled by an |
| unexplained quantity 'mu' which is now spelled out. |
| |
| The alternative hypothesis in ks.test() is clearer both in the |
| documentation and in the result. (PR#5360) |
| |
| |
| |
| ************************************************** |
| * * |
| * 2.3 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 2.3.1 patched |
| |
| |
| BUG FIXES |
| |
| o help.search() incorrectly documented where the data base was |
| saved and what was in it. |
| |
| o str(<data.frame>, strict.width=.) produced an extraneous first line. |
| |
| o Improve bessel[IJKY]() out-of-range checks; for instance, |
| besselI(0, nu) no longer warns. |
| |
| o cbind() on some non-vector objects (e.g. names) segfaulted. |
| |
| o xy.coords(numeric(0)) gave a misleading error message. |
| |
| o INSTALL has been changed to avoid a few problems with the |
| base (not XPG4) Solaris sed. |
| |
| o There were problems in src/main/printutils.c on some platforms |
| that did not have va_copy. |
| |
| o [pq]unif allowed infinite ranges but handled them |
| inconsistently. (PR#8958) |
| |
| [pq]unif claimed to allow min == max but did not do so. |
| |
| o Subassignment within raw arrays of 3 or more dimensions was not |
| implemented. |
| |
| o environment<-() did not even check if duplication was required. |
| |
| o rt() was wrong for non-central t-distributions. qt() was wrong |
| for non-central distributions far enough in the left tail |
| (reported by Long Qu). (PR#9050) |
| |
| o R CMD Rdconv --type=Ssgm no longer drops a \keyword{} if it is the |
| only one (one letter typo patch by Bill Dunlap). (PR#9051) |
| |
| o poly(x, y, .., raw = TRUE) now does follow 'raw'. |
| |
| o plot(0/ -1:1, type = "s") now works. (PR#9046) |
| |
| o write.table(row.names=FALSE) does now quote column names. (PR#9044) |
| |
| o rf() was wrong for non-central F (PR#9055). qf() was wrong for |
| non-central F with denominator df > 1e8. |
| |
| o The C function dummy_vfprint had a potential memory leak. This |
| showed up with some connections when used with output of more |
| than 100,000 bytes in a single call. |
| |
| o vignette() did not work if more than one vignette with the |
| same name was installed (PR#9069). |
| |
| o mget() did not check that 'ifnotfound' was a list, and worked |
| incorrectly if it was a list of length > 1. Now 'ifnotfound' |
| is (if possible) coerced to a list. |
| |
| o The internal check for conformance of time series assumed that the |
| 'tsp' attribute was integer, whereas it was enforced to be |
| numeric by the attribute-setting code. |
| |
| o Sweave() did not treat \begin{document} in comments correctly |
| (PR#9073). |
| |
| o diff(x) gave wrong result when x was "POSIXlt" object. |
| |
| o title() could crash R when passed a long non-character vector. |
| (PR#9115) |
| |
| o Functions rgb(), hsv() and hcl() lost names unless 'alpha' was |
| specified. (In part, PR#9118) |
| |
| o The residuals() method for "glm" failed unless 'y = TRUE' for |
| the fit: it now works for "working" and "partial" residuals |
| and gives a useful error message for other types. (PR#9124) |
| |
| o R CMD Rdconv did not close the .Rd file, which matters on Windows. |
| (PR#9126) |
| |
| o anova.mlm() could fail if applied to a single model. |
| |
| o stopifnot(<FALSE-expr>) now gives a better message for a *long* |
| expression. |
| |
| |
| |
| |
| CHANGES IN R VERSION 2.3.1 |
| |
| |
| NEW FEATURES |
| |
| o In lm() and glm(), offsets are allowed to be length 1 (and |
| if so are replicated to the number of cases). |
| |
| o The \uxxxx notation for Unicode characters in input strings |
| can now be used on any platform which supports MBCS, even if |
| the current locale is not MBCS (provided that the Unicode |
| character is valid in the current character set). |
| |
| o The quasibinomial() family now allows the "cauchit" link. (PR#8851) |
| |
| o edit.data.frame() no longer (silently) coerces character columns |
| to factor. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o The variables controlling stack checking are made available via |
| Rinterface.h to front-ends embedding R: see 'Writing R Extensions' |
| |
| o R_SignalHandlers (defined in Rinterface.h) can be set to 0 to |
| suppress the R signal handlers in front-ends embedding R. |
| |
| |
| INSTALLATION CHANGES |
| |
| o There have been a number of changes to help installation on |
| platforms that no one had beta-tested. |
| |
| - Changes related to older header files, e.g. on Redhat 8.0/9. |
| |
| - Problems with 'make install' on older (<3) versions of bash |
| on Solaris and elsewhere. |
| |
| - AIX 5.2/gcc issues with needing -lm when making modules X11 |
| and vfonts. |
| |
| - Some versions of Solaris and AIX had an fcntl.h that |
| redefined 'open' to be 'open64' and thereby broke |
| compilation of src/main/connections.c and elsewhere. |
| |
| o 'make uninstall' works better on a build using a named |
| subarchitecture. |
| |
| |
| BUG FIXES |
| |
| o min(), max(), sum() and prod() gave nonsensical answers with |
| an empty list or raw argument. |
| |
| o sum() on a data frame did not allow multiple arguments. (PR#8385) |
| |
| o charmatch() and pmatch() did not specify they applied only to |
| character vectors. Now they do, and attempt to coerce 'x' and |
| 'target' to character before attempting matching. |
| |
| o The Summary() methods for data.frame, Date, POSIXct, POSIXlt |
| and difftime all required an argument which can match 'x', |
| although the generics did not. |
| |
| o regexpr() now accepts 0-length 'text' inputs. |
| |
| o help.search() no longer errors out on a wrongly installed package |
| (with no "hsearch.rds" file). |
| |
| o The LaTeX version of the package reference manual was omitting |
| some topics, and was not sorting the foo-package topic first. |
| |
| o Serializing (e.g. via save()) is better protected against C |
| stack overflow, which will now abort the conversion but no |
| longer crashes the R process on some platforms. |
| |
| o rbind()ing dataframes with a single row could lead to a |
| corrupt data frame (a problem with the fix to PR#8506). |
| |
| o plot(lm(y ~ 1)) now works also for 'which = 5'. |
| |
| o dbeta(0, 1, a, 0) now correctly gives 'a' (limit) instead of 0, |
| and dbeta(0, a, b, ncp) now returns Inf instead of NaN. |
| |
| o demo(Hershey) was failing on the Cyrillic octal codes in locales |
| (e.g. UTF-8) in which these are invalid. |
| |
| o mean() on an integer (or logical) vector was treating NAs as |
| actual values (unless na.rm = TRUE). |
| |
| o mean() on a complex vector was calculated incorrectly in |
| code to improve precision (PR#8842, John Peters). |
| |
| o Graphical parameters bg, cex, col, lty, and lwd were being |
| checked as being of length one even by functions such as |
| title() that ignored them. (Functions such as lines() and |
| points() allow them to be of length > 1, so they might be |
| passed through ... to other high-level graphical functions |
| which then used to reject them.) |
| |
| o str() now is fast again for large character vectors. |
| |
| o edit() would default the environment of a function to .BaseEnv, |
| instead of to .GlobalEnv. |
| |
| o lm() and glm() coerce their 'weights' and 'offset' values to |
| vector to avoid problems with specifying them as 1D or n x 1 |
| arrays. |
| |
| o image() with one or both axes on log scales would give a |
| spurious warning; contour() would give an error. |
| |
| o legend() with log axes would place the title in the wrong place. |
| |
| o edit.data.frame() was not returning factors edited with |
| factor.mode="numeric" to factors. |
| |
| o edit.matrix() tried to set rownames and colnames from the |
| original matrix even if the sizes had been altered, and |
| ignored changes made to the column names. 'edit.row.names' has |
| a more sensible default (if the rownames are non-NULL). |
| |
| o bindingIsLocked() was returning invalid values of a logical |
| vector on some platforms. |
| |
| o merge.data.frame() did not make the column names unique (by |
| appending elements of 'suffixes') when performing a Cartesian |
| product. (PR#8676) |
| |
| o rbind.data.frame() matches up the names of columns (which was |
| undocumented), but failed to do so when checking if it was |
| dealing with a factor column. (PR#8868) |
| |
| If rbind() was used on data frames with duplicated names it |
| produced a corrupt data frame. |
| |
| o dt(x, df, ncp= not.0) no longer gives erratic values for |
| |x| < ~1e-12. (PR#8874) |
| |
| o \code{\linkS4class{.}} now works. |
| |
| o ccf() aligns time series by ts.intersect() rather than |
| ts.union() and so is less likely to need a non-default |
| na.action. (PR#8893) |
| |
| o optim(method="CG") could return a value that did not |
| correspond to $par for very badly behaved functions on which |
| the second phase of the line search failed. (PR#8786) |
| |
| o print.ts() could fail on a corrupt time series: it now warns and |
| does the best it can. |
| |
| |
| |
| |
| CHANGES IN R VERSION 2.3.0 |
| |
| |
| USER-VISIBLE CHANGES |
| |
| o In the grid package there are new 'arrow' arguments to |
| grid.line.to(), grid.lines(), and grid.segments() |
| (grid.arrows() has been deprecated). |
| |
| The new 'arrow' arguments have been added BEFORE |
| the 'name', 'gp' and 'vp' arguments so existing code that |
| specifies any of these arguments *by position* (not by name) |
| will fail. |
| |
| o all.equal() is more stringent, see the PR#8191 bug fix below. |
| |
| o The data frame argument to transform() is no longer called 'x', |
| but '_data'. Since this is an invalid name, it is less likely |
| to clash with names given to transformed variables. (People |
| were getting into trouble with transform(data, x=y+z).) |
| |
| |
| NEW FEATURES |
| |
| o arima.sim() has a new argument 'start.innov' for compatibility |
| with S-PLUS. (If not supplied, the output is unchanged from |
| previous versions in R.) |
| |
| o arrows() has been changed to be more similar to segments(): |
| for example col=NA omits the arrow rather than as previously |
| (undocumented) using par("col"). |
| |
| o as.list() now accepts symbols (as given by as.symbol() aka |
| as.name()). |
| |
| o atan2() now allows one complex and one numeric argument. |
| |
| o The 'masked' warnings given by attach() and library() now only |
| warn for functions masking functions or non-functions masking |
| non-functions. |
| |
| o New function Axis(), a generic version of axis(), with Date and |
| POSIX[cl]t methods. This is used by most of the standard |
| plotting functions (boxplot, contour, coplot, filled.contour, |
| pairs, plot.default, rug, stripchart) which will thus label x |
| or y axes appropriately. |
| |
| o pbeta() now uses TOMS708 in all cases and so is more accurate |
| in some (e.g. when lower.tail = FALSE and when one of the |
| shape parameters is very small). |
| |
| o [qr]beta(), [qr]f() and [qr]t() now have a non-centrality parameter. |
| |
| o [rc]bind and some more cases of subassignment are implemented |
| for raw matrices. (PR#8529 and PR#8530) |
| |
| o The number of lines of deparsed calls printed by browser() and |
| traceback() can be limited by the option "deparse.max.lines". |
| (Wish of PR#8638.) |
| |
| o New canCoerce() utility function in "methods" package. |
| |
| o [pq]chisq() are considerably more accurate for moderate (up to |
| 80) values of ncp, and lower.tail = FALSE is fully supported |
| in that region. (They are somewhat slower than before.) |
| |
| o chol(pivot = TRUE) now gives a warning if used on a (numerically) |
| non-positive-definite matrix. |
| |
| o chooseCRANmirror() consults the CRAN master (if accessible) to |
| find an up-to-date list of mirrors. |
| |
| o cov.wt() is more efficient for 'cor = TRUE' and has a new 'method' |
| argument which allows 'Maximum Likelihood'. |
| |
| o do.call() gains an 'envir' argument. |
| |
| o eigen() applied to an asymmetric real matrix now uses a |
| tolerance to decide if the result is complex (rather than |
| expecting the imaginary parts of the eigenvalues to be exactly |
| zero). |
| |
| o New function embedFonts() for embedding fonts in PDF or |
| PostScript graphics files. |
| |
| o fisher.test() now uses p-values computed via hypergeometric |
| distributions for all 2 by 2 tables. This might be slightly |
| slower for a few cases, but works much better for tables with |
| some large counts. |
| |
| There is a new option to simulate the p-value for larger than |
| 2 x 2 tables. |
| |
| o for() now supports raw vectors as the set of indices. |
| |
| o getNativeSymbolInfo() is vectorized for the 'name' argument. It |
| returns a named list of NativeSymbolInfo objects, but is |
| backward compatible by default when called with a character |
| vector of length 1, returning the NativeSymbolInfo object. |
| |
| o help.search() no longer attempts to handle packages installed |
| prior to R 2.0.0, and reports the current path to the |
| package (rather than where it was originally installed: this |
| information is not shown by the print() method). |
| |
| o Added "hexmode" to parallel "octmode". |
| |
| o install.packages() now does tilde expansion on file paths |
| supplied as 'pkgs'. |
| |
| o install.packages() has additional arguments 'configure.args' and |
| 'clean' which allow the caller to provide additional arguments |
| to the underlying R CMD INSTALL shell command when installing |
| source packages on a Unix-alike. |
| |
| o is.loaded() has a new argument 'type' to confine the search to |
| symbols for .C, .Fortran, .Call or .External: by default it |
| looks for a symbol which will match any of them. It is now |
| internal and not primitive, so argument matching works in the |
| usual way. |
| |
| o The symmetry test for matrices used in eigen() has been ``exported'' |
| as the 'matrix' method of a new S3-generic 'isSymmetric(). |
| |
| o .leap.seconds and the internal adjustment code now know about |
| the 23rd leap second on 2005-12-31: the internal code uses a |
| run-time test to see if the OS does. |
| |
| o The 'col' argument of legend() now defaults to par("col") |
| (which defaults to "black", the previous default), so that |
| the lines/symbols are shown in the legend in the colour that |
| is used on the plot. |
| |
| o log2() and log10() call C functions of the same name if |
| available, and will then be more likely to be precise to |
| machine accuracy. |
| |
| o new.packages() gains a ... argument to pass e.g. 'destdir' to |
| install.packages(). (Wish of PR#8239.) |
| |
| o nls() now supports 'weights'. |
| |
| o The vector passed as the first argument of the 'fn' and 'gr' |
| arguments of optim() has the names (if any) given to argument |
| 'par'. |
| |
| o options(expressions) is temporarily increased by 500 during |
| error-handling. This enables e.g. traceback() to work when |
| the error is reaching the limit on the nesting of expressions. |
| |
| o page() accepts general R objects, not just names (and |
| previously undocumented) character strings. This allows the |
| object to be specified as a call, for example. More options |
| are allowed in its '...' argument. |
| |
| o pairs() allows a wider class of inputs, including data frames |
| with date and date-time columns. |
| |
| o par() and the in-line use of graphical parameters produce more |
| informative error messages, distinguishing between |
| non-existent pars and inappropriate use of valid pars. |
| |
| Graphical parameters 'family', 'lend', 'ljoin' and 'lmitre' |
| can now be set in-line. |
| |
| There is no longer a warning if non-settable pars are used |
| in-line, but there is an appropriate warning if unknown pars |
| are passed. |
| |
| The length limit for the 'family' parameter has been increased |
| to 200 bytes, to allow for the names of some CID-keyed fonts |
| in multi-byte locales. |
| |
| o The pdf() device now allows 'family' to be specified in the same |
| generality as postscript(). |
| |
| o The pdf() device writes /FontDescriptor entries for all fonts |
| except the base 14, and does not write font entries for unused |
| fonts. |
| |
| o Plotmath allows 'vartheta', 'varphi' and 'varsigma' (or 'stigma') |
| as synonyms for 'theta1', 'phi1' and 'sigma1', and the help |
| page has a note for TeX users. |
| |
| o plot.xy() now takes its default arguments from the |
| corresponding par() settings, so points(type="l") and |
| lines(type="p") behave in the same way (and more obviously, |
| also for type="b"). |
| |
| o poly() has a new argument 'raw', mainly for pedagogical purposes. |
| |
| o The class "POSIXlt" now supports fractional seconds (as |
| "POSIXct" has always done). The printing of fractional seconds |
| is controlled by the new option "digits.secs", and by default is off. |
| |
| o postscript() supports family = "ComputerModernItalic" for |
| Computer Modern with italic (rather than slanted) faces. |
| |
| o The postscript()/pdf() font metrics for the 14 standard fonts |
| (only, not the rest of the common 35) have been updated to |
| versions from late 1999 which cover more glyphs. There are |
| also a few differences in the metrics and hence the output |
| might be slightly different in some cases. |
| |
| o The way families can be specified for postscript() and pdf() |
| has been expanded to include CID-keyed fonts, with new |
| functions Type1Font() and CIDFont() to set up such fonts |
| families. |
| |
| o prettyNum() has new arguments 'preserve.width' and 'zero.print'. |
| When the former is not "none", as in calls from format() and |
| formatC(), the resulting strings are kept at the desired width |
| when possible even after adding of 'big.mark' or 'small.mark'. |
| |
| o proc.time() and system.time() now record times to 1ms accuracy |
| where available (most Unix-like systems). |
| |
| o The initialization methods for the quasi() family have been |
| changed to depend on the variance function, and in particular |
| to work better for the "mu(1-mu)" variance function. (PR#8486) |
| |
| o read.table() gains a 'flush' argument passed to scan(). |
| |
| o require() now takes a 'lib.loc' argument. |
| |
| o The second argument 'size' to sample() is required to have |
| length 1, so that errors when supplying arguments are more |
| easily detected. |
| |
| o The default is now compress = !ascii in save() (but not save.image). |
| |
| o scan() and write.table() now have some interruptibility, which |
| may be useful when processing very large files. |
| |
| o A new heuristic test, seemsS4Object() is supplied, along with a |
| similar C-level test, R_seemsS4Object(object). The test |
| detects probable S4 objects by their class's attribute. See |
| the help page. |
| |
| o S3 classes can now be made non-virtual S4 classes by supplying a |
| prototype object in the arguments to setOldClass(). |
| |
| o splinefun() returns a function that now also has a 'deriv' argument |
| and can provide up to the 3rd derivative of the interpolating |
| spline, thanks to Berwin Turlach. |
| |
| o stopifnot(A) now gives a better error message when A has NAs, and |
| uses "not all TRUE" when A has length >= 2. |
| |
| o str()'s default method has a new argument 'strict.width' which can |
| be used to produce strict 'width' conforming output. A new |
| options(str = list(strict.width = *)) setting allows to control |
| this for a whole session. |
| |
| o summary.nls() has a new argument 'correlation' that defaults |
| to FALSE (like summary.lm). |
| |
| o Sys.sleep() has sub-millisecond resolution on Unix-alikes |
| with gettimeofday(). |
| |
| o Sys.time() now has sub-millisecond accuracy on systems |
| supporting the POSIX call gettimeofday, and clock-tick |
| accuracy on Windows. |
| |
| o The new function timestamp() adds a time stamp to the saved |
| command history on consoles which support it. |
| |
| o New function tcrossprod() for efficiently computing x %*% t(x) |
| and x %*% t(y). |
| |
| o The suffix used by tempfile() is now in hex on all platforms |
| and guaranteed to be at least 6 hex digits (usually 8). |
| |
| o trace() now works more consistently and more like its |
| documentation, in particular the assertions about old tracing |
| being removed for new. For debugging purposes (of R) a |
| mechanism for debugging the trace computations themselves was |
| added. See trace.R. |
| |
| o The implementation of trace() has beem made more general by |
| calling a function to do the trace interaction, and recover() |
| now detects trace calls to trim the irrelevant code underneath. |
| |
| o unserialize() can now also read a byte stream from a raw vector. |
| |
| o The useDynLib() directive in the NAMESPACE file now accepts the |
| names of the native/foreign symbols that are to be resolved in |
| the DLL for use in .C/.Call/.Fortran/.External calls. These |
| can be used as regular R variables instead of the (routine |
| name, PACKAGE) pairs currently recommended. Alternative names |
| can be given for the R variables mapping to these symbols. |
| The native routine registration information can also be used |
| directly via useDynLib(name, .registration = TRUE). See the |
| 'Writing R Extensions' manual for more details. |
| |
| checkFF() (package 'tools') has been updated accordingly. |
| |
| o validObject() has an option complete=TRUE that recursively |
| checks the objects in the slots. Not used when new(...) |
| checks validity. |
| |
| o New Vectorize() function, a wrapper for mapply(). |
| |
| o write.ftable() has gained an argument 'append = FALSE' (thanks to |
| Stephen Weigand). |
| |
| o On Unix-alikes, X11() now has arguments to request the initial |
| position of the window, and 'gamma' defaults to the value of |
| getOptions("gamma"). These changes are consistent with the |
| windows() device. |
| |
| o X11() and the Unix-alike data entry window can have properties |
| (including geometry) set by X resources: see their help files. |
| |
| o xy.coords() & xyz.coords() now have NULL defaults for their 'y' or |
| 'y' and 'z' arguments. This is more consistent with their earlier |
| documentation, and may be convenient for using them. |
| |
| |
| o Non-syntactic names of list elements are now printed quoted by |
| backticks rather than double quotes. |
| |
| o There is some basic checking for imminent C stack overflow (when |
| the evaluation depth and the user interrupts are checked). |
| On systems with suitable OS support (not Windows), segfaults |
| from C stack overflow are caught and treated as an R error. |
| |
| New function Cstack_info() reports on stack size and usage. |
| |
| options(expressions) reverts to the default of 5000 now |
| stack checking is in place. |
| |
| o Package tcltk does not try to initialize Tk on Unix-alikes |
| unless a DISPLAY variable is present. This allows packages |
| dependent on tcltk to be installed without access to an X server. |
| |
| o The code used to guess timezone offsets where not supplied by |
| the OS uses a different algorithm that is more likely to guess |
| the summer-time transitions correctly. |
| |
| o Package tools contains translation tables 'Adobe_glyphs' and |
| 'charset_to_Unicode'. |
| |
| o Changed the environment tree to be rooted in an empty |
| environment, available as emptyenv(). baseenv() has been |
| modified to return an environment with emptyenv() as parent, |
| rather than NULL. |
| |
| o gettext has been updated to 0.14.5. |
| |
| o PCRE has been updated to version 6.4. |
| |
| o The method $.DLLInfo resolves the specified symbol in the DLL, |
| returning a NativeSymbolInfo object. Use [[ to access the actual |
| values in the DLLInfo object. |
| |
| o On systems with either vasprintf or both va_copy and a vsnprintf |
| which reports the size of buffer required, connections such as |
| gzfile() and bzfile() can now write arbitrarily long lines, |
| not just 100000 chars. |
| |
| o The R session temporary directory is now set in C code using |
| the same algorithm whether or not the shell front-end is used |
| and on all platforms. This looks at environment variables |
| TMPDIR, TMP and TEMP in turn, and checks if they point to a |
| writable directory. |
| |
| o Some of the classical tests put unnecessary restrictions on the |
| LHS in the formula interface (e.g., t.test(x+y ~ g) was not |
| allowed). |
| |
| o On suitably equipped Unix-alike systems, segfaults, illegal |
| operations and bus errors are caught and there is a simple |
| error-handler which gives the user some choice as to what to |
| do in interactive use. |
| |
| On Windows access violations and illegal instructions are |
| caught with a simple error handler. |
| |
| o Tracebacks now include calls such as .C/.Fortran/.Call, which |
| will help if errors occur in R code evaluated by compiled code |
| and in tracebacks presented by the segfault etc handlers. |
| |
| o Treatment of signature objects and method definition objects has |
| been modified to give cleaner printing and more consistency in |
| the treatment of signatures. A sometimes useful utility, |
| methodSignatureMatrix(), is now exported. |
| |
| o Printing the results of codoc() from package tools now helpfully |
| summarizes the found code/documentation mismatches. |
| |
| o R refrains from printing a final EOL upon exiting the main loop |
| if the quiet flag is on and if the save action is known (e.g. this |
| is true for --slave). |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o The deprecated and undocumented use of atan() with two arguments |
| has been removed: instead use atan2(). |
| |
| o write.table0() is defunct in favour of write.table(). |
| |
| o format.char() is defunct in favour of format.default(). |
| |
| o Support for the long-deprecated (and no longer documented) |
| arguments --min-vsize --min-nsize --max-vsize --max-nsize |
| --vsize --nsize of R CMD BATCH has been removed. |
| |
| o The 'debian' subdirectory has been removed from the sources. |
| |
| o The 'vfont' argument of axis() and mtext() has been removed: |
| use par(family=) instead. |
| |
| o The unused graphical parameter "type" has been removed: it |
| invited confusion with the 'type' argument to default methods |
| of plot(), points() and lines(). |
| |
| o nlsMethod() and profiler() are no longer exported from the stats |
| name space (and nlsMethod.plinear() is no longer registered as |
| a method, as nlsMethod() was not generic). |
| |
| o The re-named tcltk functions tkcmd, tkfile.tail, tkfile.dir, |
| tkopen, tkclose, tkputs, tkread are now formally deprecated. |
| |
| o Argument 'col' of bxp() is now formally deprecated. |
| |
| o Use of NULL as an environment is deprecated and gives a warning. |
| |
| o postscriptFont() is deprecated in favour of Type1Font() (which |
| is just a change of name). |
| |
| o La.chol() and La.chol2inv() are deprecated (they have since R |
| 1.7.0 been the same as the default options of chol() and chol2inv). |
| |
| o La.svd(method = "dgesvd") is deprecated. |
| |
| o The use of install.R and R_PROFILE.R files in packages is |
| deprecated: use the DESCRIPTION file instead to arrange to |
| save an image or to load dependent packages. |
| |
| The following command-line options to INSTALL are deprecated |
| (use the fields in the DESCRIPTION file instead): |
| -s --save --no-save --lazy --no-lazy --lazy-data --no-lazy-data |
| |
| o Graphical parameter 'tmag' (which is long unused) is deprecated. |
| |
| |
| INTERNATIONALIZATION |
| |
| A set of patches supplied by Ei-ji Nakama has been incorporated. |
| |
| o New postscript encodings for CP1253, CP1257 and Greek (ISO 8859-7). |
| |
| o Support for East Asian CID-keyed fonts in pdf() and postscript(). |
| Although these usually contain Latin characters no accurate |
| AFMs are available and so CID-keyed fonts are intended only |
| for use with CJK characters. |
| |
| o Wide-character width functions wc[s]width are provided that |
| overcome problems found with OS-supplied ones (and those |
| previously used by R on Windows). This means that |
| double-width CJK characters are now supported on all |
| platforms. It seems that the width of some characters (and |
| not just CJK characters) depends on which CJK locale's fonts |
| are in use and also on the OS. |
| |
| Revised wide-character classification functions are |
| provided for use on Windows, AIX and MacOS X to replace |
| deficient OS-supplied ones. |
| |
| o There is support for MBCS charsets in the pictex() graphics |
| device, and rotated (by 90 degrees) text may work better. |
| |
| o The \u (and \U except on Windows) notation for characters which |
| is supported by the parser in all MBCS charsets is now always |
| interpreted as a Unicode point, even on platforms which do not |
| encode wchar_t in Unicode. These are now a syntax error in |
| single-byte locales. |
| |
| o The default encoding for postscript() and pdf() is chosen to |
| be suitable for the current locale, if that is a single-byte |
| locale which is supported. This covers European (including |
| Greek) and Cyrillic languages. |
| |
| In UTF-8 locales, a suitable single-byte encoding is chosen |
| for postscript() and pdf(), and text translated to it. |
| |
| o xfig() gains an 'encoding' argument. |
| |
| o There are some message translations into Spanish. |
| |
| |
| INSTALLATION CHANGES |
| |
| o The encoding files for pdf()/postscript() have been moved to |
| directory 'enc' in package 'grDevices'. |
| |
| o Support for MBCS is only enabled if iconv is found and it |
| supports enough conversions. (libiconv does.) |
| |
| o In an MBCS locale, make check now translates the graphics |
| examples from Latin-1. This ensures that they will work |
| correctly in UTF-8: it is possible that in other MBCS locales |
| they will now fail (rather than work completely incorrectly). |
| |
| o There is a new test, 'test-Docs', which as part of 'make |
| check-devel' tests the code in the documentation. Currently |
| it runs doc/manual/R-{exts,intro}.R and the compiled code in |
| R-exts.c. |
| |
| o The workaround to allow an external LAPACK-containing BLAS |
| such as libsunperf to be used with the internal LAPACK has |
| been removed. If you have such a library you may now need |
| to use --with-lapack. It is no longer possible to use some |
| older versions of libsunperf, e.g. Forte 7 on 64-bit builds. |
| |
| o A substitute for mkdtemp is provided, so it is now always |
| used for R_TempDir. |
| |
| o Most of the functions checked for by 'configure' also have |
| declarations checked for in the appropriate header. |
| |
| o The top-level documentation files AUTHORS COPYING.LIB COPYRIGHTS |
| FAQ RESOURCES THANKS have been moved to doc, and COPYING and NEWS |
| are installed there. The file Y2K has been removed from the |
| distribution. |
| |
| o The extension .lo is no longer used in building R (only in |
| the optional build of libRmath.so): this allows a considerable |
| simplification of the Makefiles. |
| |
| o Direct support for f2c has been removed: it can still be used |
| via a script which makes it look like a Fortran compiler. |
| (src/scripts/f77_f2c is an example of such a script.) |
| |
| o There is a new flag SAFE_FFLAGS which is used for the |
| compilation of dlamc.f. It is set by configure for known |
| problem cases (recent g77 and gfortran), but can be overridden |
| by the user. |
| |
| o The standard autoconf macros for large-file support are now used, |
| and these are enabled unless --disable-largefile is specified. |
| This replaces --enable-linux-lfs (and is now selected by default). |
| |
| o Visibility attributes are used where supported (gcc4/gfortran on |
| some platforms, also gcc3/g77 on FC3 and partially elsewhere). |
| The main benefit should be faster loading (and perhaps better |
| optimized code) in some of the dynamic shared objects (e.g. |
| libR.so and stats.so). |
| |
| o The *PICFLAGS are taken to be -fpic rather than -fPIC where |
| possible. This will make no difference on most platforms: |
| -fPIC is needed on Sparc (and still used there), but -fpic |
| should give slightly better performance on PowerPC (although |
| -fPIC is used on PPC64 as it is needed to build libR.so there). |
| |
| o More use is made of inlining for small utility functions such |
| as isReal. Because this can only be done portably with C99 |
| constructs (and we know of no actual implementation), this is |
| only done for the GNU C compiler. |
| |
| o There is an experimental feature to allow shared installations |
| of sub-architectures. See the R-admin manual. |
| |
| o All platforms now use R's internal implementation of strptime, |
| which allows fractional seconds. (The major platforms were |
| already using it.) |
| |
| o The dlcompat work-around for old Mac OS X systems (<= 10.2) |
| has been removed. External dlcompat must be installed if needed. |
| |
| |
| UTILITIES |
| |
| o R CMD check now uses an install log by default. |
| |
| o R CMD check works for packages whose package name is different |
| from the directory name in which it is located. |
| |
| o R CMD INSTALL now uses more randomness in the temporary |
| directory name even on systems without mktemp -d. |
| |
| o R CMD f77 has been removed now f2c is no longer supported. |
| |
| o The version string shown in the startup message and by |
| "R --version", and that stored in variable R.version.string |
| are now in exactly the same format. |
| |
| o The base name of a help file needs to be valid as part of a file:// |
| URL, so R CMD check now checks the names are ASCII and do not |
| contain % . |
| |
| o R CMD check now warns about unknown sections in Rd files, and |
| invalid names for help, demo and R files, as well as unlikely |
| file names in the 'src' directory. The latter is controlled |
| by option --check-subdirs and by default is done if checking a |
| tarball without a configure script. |
| |
| R CMD build excludes invalid files in the 'man', 'R' and 'demo' |
| subdirectories. |
| |
| o \usepackage[noae]{Sweave} in the header of an Sweave file |
| supresses auto-usage of the ae package ("almost European" |
| fonts) and T1 input encoding. |
| |
| |
| DOCUMENTATION |
| |
| o Rd format now allows \var{} markup inside \code{} and \examples{}. |
| |
| o Markup such as --, ---, < and > is handled better when |
| converting .Rd files to [C]HTML. |
| |
| o There is new markup \link[=dest]{name} to generate a link to topic |
| 'dest' which is shown as 'name', and \linkS4class{abc} which |
| expands to \link[=abc-class]{abc}, for cross-referencing the |
| recommended form of documentation for S4 classes. |
| |
| |
| PACKAGE INSTALLATION |
| |
| o There is now some support for Fortran 90/95 code in packages: |
| see `Writing R Extensions'. |
| |
| o Installation of man sources and demos is now done by R code. |
| The restrictions on the names of help files, R files and |
| of demos are now enforced (see `Writing R Extensions'). |
| |
| o Packages which contain compiled code can now have more than |
| one dot in their name even on Windows. |
| |
| o The Meta/hsearch.rds database saved now contains LibPath="". |
| This information is now always recreated when help.search() is |
| run, but the field is retained for back-compatibility. |
| |
| o update.packages() now has a '...' argument to be passed to |
| install.packages(), including the formerly separate arguments |
| 'destdir' and 'installWithVers'. |
| |
| o Make macros AR and RANLIB are now declared in etc/Makeconf for |
| use by packages which wish to make static libraries. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o qgamma and rgamma in Rmath.h now check for non-positive arguments. |
| |
| o The BLAS which ships with R now contains the complete set of |
| double-complex BLAS routines, rather than just those used in R. |
| |
| <R_ext/BLAS.h> has been corrected to add the missing |
| double-precision BLAS functions drotmg and drotm, and to |
| exclude lsame (which is a Lapack auxiliary function and is now |
| declared in <R_ext/Lapack.h>). It also includes the double |
| complex routines added for this release of R provided Fortran |
| doublecomplex is usable on the platform. |
| |
| o <R_ext/BLAS.h> and <R_ext/Lapack.h> now declare all the entry |
| points as 'extern'. |
| |
| o The flag SAFE_FFLAGS is made available to packages via |
| etc/Makeconf and R CMD config. It can be used where |
| optimization needs to be defeated, e.g. in LAPACK setup. |
| |
| o getNativeSymbolInfo has a withRegistrationInfo argument which |
| causes the address field to be a reference to the registration |
| information if it is available for that symbol. If the |
| registration information is not available, the address is a |
| reference to the native symbol. The default is FALSE which is |
| backward compatible, returning just the address of the symbol |
| and ignoring registration information. |
| |
| o errorcall and warningcall are now declared in <Rinternals.h> |
| (they might be needed in front-ends). |
| |
| o R_FlushConsole and R_ProcessEvents are now declared in <R.h>. |
| |
| o The R_Sock* functions supporting socket connections are no |
| longer declared in R-ftp-http.h as they are not loaded into R |
| itself, and are now hidden in the module's DLL on suitable systems. |
| |
| |
| BUG FIXES |
| |
| o Quoted arguments to the R script after --args are now |
| passed quoted to the R executable and so will be shown as |
| expected by commandArgs(). (They were previously split at |
| whitespace even inside quotes on Unix-alikes but not on |
| Windows.) |
| |
| o axis() now supports pars 'xaxp'/'yaxp' as inline arguments. |
| |
| o sort() now does not return inappropriate attributes such as |
| "dim" and "tsp": it only returns names. |
| |
| sort(x, partial=) no longer returns unsorted names, and drops |
| names (since it is supplied for efficiency). |
| |
| o Use of non-central F in pf() gives accurate values for larger ncp. |
| |
| o R CMD build --binary does a better job of cleaning up after |
| failure to re-make vignettes. |
| |
| o reg-test-1.R tested system(intern=TRUE) which depends on popen |
| and so is not supported on all platforms. |
| |
| o Changed apparent mis-spelling of "Gibraltar" in dataset 'eurodist'. |
| |
| o sysconf() is now used to find the number of clock ticks/second: |
| under some circumstances glibc reported CLK_TCK = 60 when the |
| true value was 100. |
| |
| o identical() was not allowing for embedded nuls in character |
| strings. (NB: the comparison operators including == do not, |
| and never will.) |
| |
| o The profile() and profiler() methods for "nls" objects now |
| support algorithm = "plinear" and algorithm = "port". |
| |
| o The signal handlers for signals USR1 and USR2 where not |
| restored if the signal arrived when interrupts were suspended. |
| |
| o Certain combinations of S4 inheritance could cause inherited |
| methods to override some directly specified methods. |
| |
| o Some cases of named signatures in calls to setMethod() caused errors. |
| |
| o all.equal() is now more consistent and "picky" about mismatching |
| attributes, in particular names(); this is a part of the |
| propositions by Andy Piskorkski (PR#8191). |
| |
| o load() when applied to a connection leaves it open/not as it |
| found it, and checks explicitly for having a binary readable |
| connection. |
| |
| o The p-values given by stat.anova() (called from several |
| anova() methods) are now NA (rather than spurious) if |
| non-nested models give rise to changes in deviance with a |
| different sign from changes in degrees of freedom. |
| |
| o Built-ins were reported as the relevant call in C-level error()s |
| iff R profiling was in progress. Now they are never reported. |
| |
| o Too-long signatures (with no names) were not being caught |
| in setMethod(). |
| |
| o Slot names in prototype() are being more thoroughly checked. |
| |
| o signif() is more likely to follow the 'round to even' rule for |
| exactly representable numbers, e.g. signif(0.25, 1). (Related |
| to PR#8452.) |
| |
| o nls() now works correctly with some low-dimensional fits, |
| e.g. with one or zero non-linear parameters. |
| |
| o glm() could give an inappropriate error message if all |
| possible coefficients were invalid (e.g. a log-linear binomial |
| model with no intercept and a not all positive predictor). |
| |
| o solve() gives clearer error messages for some incorrect usages. |
| (PR#8494 and similar) |
| |
| o The gaussian() family was missing the 'valideta' component |
| (which could be needed for the "inverse" link function). |
| |
| The starting values supplied by the gaussian family could be |
| invalid for the "log" and "inverse" link functions. This is |
| now reported. |
| |
| o data.matrix() did not work correctly on zero-row data frames. |
| (PR#8496 and other problems.) |
| |
| o The DSC comments in the files from postscript(onefile=FALSE) now |
| label all files as having page 1 of 1, as some other software |
| seems to expect that. |
| |
| o The axis labels chosen for logarithmic axis are now less |
| likely to be linear and inappropriate (when the range is more |
| than 10 and less than 100). (PR#1235) |
| |
| o Staircase lines (types "s" and "S") are now drawn |
| continuously rather than a point at a time and so line types, |
| mitring and so on work. (PR#2630) |
| |
| o Calling par(mfg) before doing any plotting resulted in NewPage |
| never being called on the device, which in turn resulted in |
| incorrect output for postcript() and pdf() devices. (Reported |
| by Marc Schwartz in discussion of the non-bug PR#7820.) |
| |
| o terms.formula needed to add parentheses to formulae with |
| terms containing '|'. (PR#8462) |
| |
| o pbirthday() and qbirthday() now also work for very improbable |
| events {those you are typically *not* interested in}. |
| |
| o Only source help files starting with an upper- or lower-case |
| letter or digit and extension .Rd or .rd are documented to be |
| processed. This is more liberal in that starting with a digit |
| is now also allowed, but rule is now enforced. |
| |
| o nls(algorthm="port") was always taking positive numeric |
| differences and so could exceed the upper bounds. |
| |
| o methods:::.asEnvironmentPackage() was not allowing for |
| versioned installs. |
| |
| o .find.package() now reports which package(s) it cannot find in |
| the case it stops with an error. |
| |
| o The standard Unix-alike version of file.show() gives an |
| informative message if it cannot open a file rather than the |
| (possibly incorrect) 'NO FILE'. |
| |
| o window() did not allow non-overlapping ranges with |
| extend = TRUE. (PR#8545) |
| |
| o pbinom(size = 0) now returns correct values (not NaN). (PR#8560) |
| |
| o [dp]binom(x, *) for x < 0 now always returns 0. (PR#8700) |
| analogous change in pgeom(), pnbinom() and ppois(). |
| |
| o [dqpr]geom and [dpqr]nbinom() now all consistently accept prob = 1 |
| but not prob = 0. qgeom(prob=1) now gives the correct values |
| (not -1). |
| |
| o INSTALL on Unix-alikes was not loading dependent packages when |
| preparing for lazy-loading. |
| |
| o qcauchy(1) now gives +Inf instead of just a very large number. |
| |
| o df(0, f1, *) now properly returns Inf, 1, or 0 for f1 < , = , or > 2. |
| |
| o qbinom(), qnbinom() and qpois() now use a better search and |
| normally reach the answer very quickly when it is large |
| (instead of being slow or infinite-looping). |
| |
| o pt(x, df) lost accuracy in the far tails (when |x| > 1e154) for |
| small df (like df = 0.001 for which such extremes are not unlikely). |
| |
| o dbeta(x, a, b) underflowed internally and incorrectly gave 0 |
| for very small x and a. |
| |
| o None of the warnings about convergence failures or loss of |
| precision in nmath (distribution and special functions) were |
| being reported to the R user. |
| |
| o dnt was missing from standalone nmath (under Unix-alikes). |
| |
| o split() now accepts factors with numeric (but not storage mode |
| integer) codes. |
| |
| o The utilities such as 'check' now report active version numbers |
| again, as SVN 'last changed revision' numbers. |
| |
| o addmargins() did not accept a name for 'FUN', only an expression. |
| |
| o '+' for POSIXt objects now takes the tzone from whichever |
| object has it, so date+x is the same as x+date if x is numeric. |
| |
| o mean.default() and var() compute means with an additional pass |
| and so are often more accurate, e.g. the variance of a |
| constant vector is (almost) always zero and the mean of such a |
| vector will be equal to the constant value to machine |
| precision. (PR#1228) |
| |
| sum(), prod(), mean(), rowSums() and friends use a long double |
| accumulator where available and so may be more accurate. (This |
| is particularly helpful on systems such as Sparc and AMD64 |
| where long double gives considerably greater exponent range |
| and precision than double.) |
| |
| o read.dcf() now gives a warning on malformed lines. |
| |
| o add1.[g]lm now try harder to use the environment of the |
| formula in the orginal fit to look for objects such as the |
| 'data' and 'subset' arguments. |
| |
| o gaussian()$aic was inconsistent with e.g. the lm results from |
| AIC() and extractAIC() for weighted fits: it treated the weights |
| as case weights and not variance factors. |
| |
| o system() on Unix-alikes ignored non-logical values of 'intern' and |
| treated 'intern = NA' as true. |
| |
| o as.table() now produces non-NA rownames when converting a |
| matrix of more than 26 rows. (PR#8652) |
| |
| o Partial sorting used an algorithm that was intended only for a |
| few values of 'partial' and so could be far slower than a full |
| sort. It now switches to a barebones full sort for more than |
| 10 values of 'partial' and uses a more efficient recursive |
| implementation for 2...10. |
| |
| o summary.glm() returned an estimate of dispersion of Inf for a |
| gaussian glm with zero residual degrees of freedom and then |
| treated that as a known value. It now uses the estimate NaN, |
| which is consistent with summary.lm(). |
| |
| o Sys.sleep() on Unix-alikes was restricted to about 2147 seconds |
| and otherwise might never have returned. (PR#8678) |
| |
| o is(obj, Cl) could wrongly report TRUE when Cl was a classUnion and |
| multiple inheritance was involved. |
| |
| o confint[.lm / .default] used label "100 %" for level = 0.999 |
| |
| o Empty entries (i.e., extraneous ",") in NAMESPACE files now give |
| a better error message early at parsing time instead of a less |
| comprehensible one later at load time. |
| |
| o all.equal(n1, n2) could erroneously return NA when n1, n2 |
| contained large integers. |
| |
| o anova.mlm() didn't handle multi-df effects properly in the |
| single-model case (PR#8679) |
| |
| o anova.mlm() had its colnames mangled by data.frame() (needed |
| check.names=FALSE). |
| |
| o summary.glm() gave an NA estimate of dispersion for fits with |
| zero weights. (PR#8720) |
| |
| o qhyper() had too small a tolerance for right-continuity on |
| some platforms so was not always an inverse to phyper(). |
| |
| o rownames<-.data.frame() and dimnames<-.data.frame() tested the |
| length(s) of the replacement value(s) before coercion, which |
| can change the length (e.g. for class "POSIXlt"). |
| |
| o max() and min() ignored the largest/smallest representable |
| integer, as well as Inf/-Inf. (PR#8731) |
| |
| o write.table() assumed factors had integer codes: it now allows |
| malformed factors with numeric codes (and otherwise throws an |
| error). |
| |
| o Worked around a Solaris restriction which meant that |
| Sys.sleep() was only effective for times of up to one second. |
| |
| o sink(, split=TRUE) now works correctly, but is allowed only on |
| platforms that support va_copy or __va_copy. (PR#8716) |
| |
| o factanal(), prcomp() and princomp() now only check that columns |
| in the model frame that will be used are numeric (they |
| previously also checked columns which were part of negative terms |
| in the formula). |
| |
| o Misuse of $ in apply could corrupt memory. (PR#8718) |
| |
| o apply() could fail if the function returned NULL (e.g. if |
| there was a single row). |
| |
| o registerS3method() failed due to a typo. (It was almost never |
| used.) |
| |
| o Registering an S3 method for an S3 generic in another package |
| that was converted to an S4 generic in the same package as the |
| S3 method, registered the method in the wrong place. |
| |
| o Recall() used lookup for the function in use and so could fail |
| if that was an S3 method not on the search path. |
| |
| o Rdconv -t Ssgm failed if it encountered \link[opt]{arg}. |
| |
| o uniroot() did not give a warning (as documented) if it failed |
| to converge in 'maxiter' steps. (PR#8751) |
| |
| o eapply() (and as.list.environment()) did not work for the base |
| environment/name space. (PR#8761) |
| |
| o Added protection in configure against systems for which using |
| xmkmf fails to report a C or C++ compiler. |
| |
| o expand.grid() was constructing a data frame 'by hand' and so |
| setting integer row.names (which are documented to be |
| character). It now sets character row names, and |
| row.names.data.frame() coerces to character. |
| |
| o qbeta() used == on volatile doubles for its convergence test, |
| which failed with gcc 3.3.x on ix86 Linux. We now use a less |
| fragile test (and lose a negligible amount of accuracy). |
| |
| o ls.str() was missing inherits=FALSE, and so could have |
| reported on an object of the same name but a different mode in |
| the enclosure of the given environment. |
| |
| o logLik.nls assumed that sigma^2 had been estimated, but did |
| not count this in the 'df' attribute. |
| |
| |
| |
| |
| ************************************************** |
| * * |
| * 2.2 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 2.2.1 patched |
| |
| |
| INSTALLATION CHANGES |
| |
| |
| o The macro SOCKLEN_T has been replaced by R_SOCKLEN_T to work |
| around a problem with the headers of AIX 5.3. |
| |
| |
| BUG FIXES |
| |
| o sub(fixed = TRUE) could get wrong the length of the character |
| string for elements of the result after the first. |
| |
| o legend() worked out which elements of 'lty' were valid before |
| resizing 'lty', and so could fail if 'lty' was a different |
| length from 'legend'. |
| |
| o str(<dendrogram>) sometimes used much too many spaces (in 2.2.x). |
| |
| o eigen(eispack=TRUE) accessed areas off the matrix in some |
| circumstances (some asymmetric matrices with both complex |
| conjugate pair and real eigenvalues). |
| |
| o strptime() in 2.2.1 sometimes did not set $isdst when it was |
| previously set. |
| |
| o Another case of infinite influence has been worked around. |
| (An addendum to PR#8367.) |
| |
| o qr.coef() worked incorrectly with multiple rhs in the |
| LAPACK-using cases. (PR#8476/8) |
| |
| o rbind.data.frame() gave a corrupt data frame if one of the |
| named arguments was a zero-row data frame. (PR#8506) |
| |
| o Checks for NULL in the rho argument of the C-level findVar |
| function have been added. |
| |
| o The C-level substitute function was handling NULL in its 'rho' |
| argument incorrectly. |
| |
| o The code for pgamma() introduced in 2.1.0 failed for large |
| values of 'shape' where the previous code was perfectly |
| acceptable, despite the claim to be uniformly better. For |
| example, pgamma(0.9e100, 1e100) was NaN. (PR#8528) |
| |
| o There was no command 'ls' in browser() nor 'next' in debug(), |
| despite the documentation (which has been corrected). |
| Command 'where' in the browser() no longer changes to |
| step-though mode. |
| |
| o factor.scope() could report incorrectly that interaction terms |
| were not in the upper scope when such terms in the model and |
| the upper scope had different orders for the main effects. |
| (Another manifestation of PR#7842.) |
| |
| o The "lm" method of drop1() was giving incorrect results for |
| weighted fits (since deviance.lm() was called on a non-"lm" object). |
| |
| o dotchart() was miscalculating the space for the labels in the |
| left margin. (PR#8681) |
| |
| o r <- glm(.....); all.equal(r,r) # now gives TRUE instead of an error |
| |
| o plot.acf() with a multiple time series was sometimes |
| miscalculating the 'ylim' value for the plot after the first. |
| (PR#8705) |
| |
| |
| |
| CHANGES IN R VERSION 2.2.1 |
| |
| |
| USER-VISIBLE CHANGES |
| |
| o options("expressions") has been reduced to 1000: the limit |
| of 5000 introduced in 2.1.0 was liable to give crashes from C |
| stack overflow. |
| |
| |
| NEW FEATURES |
| |
| o Use of 'pch' (e.g. in points) in the symbol font 5 is now |
| interpreted in the single-byte encoding used by that font. |
| Similarly, strwidth now recognizes that font 5 has a different |
| encoding from that of the locale. (These are likely to affect |
| the answer only in MBCS locales such as UTF-8.) |
| |
| o The URW font metrics have been updated to versions from late |
| 2002 which cover more glyphs, including Cyrillic. |
| |
| o New postscript encodings for CP1250 (Windows East European), |
| ISO Latin-7 (8859-13, Latvian, Lithuanian and Maori), Cyrillic |
| (8859-5), KOI8-R, KOI8-U and CP1251. |
| |
| o configure has more support for the Intel and Portland Group |
| compilers on ix86 and x86_64 Linux. |
| |
| o R CMD INSTALL will clean up if interrupted (e.g. by ctrl-C from |
| the keyboard). |
| |
| o There is now a comprehensive French translation of the messages, |
| thanks to Philippe Grosjean, Frederic Lehobey, Jean Thioulouse |
| and Emmanuel Paradis. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o The undocumented use of atan() with two arguments is deprecated: |
| instead use atan2() (as documented). |
| |
| o The 'vfont' argument of axis() and mtext() is deprecated |
| (it currently warns and does nothing). |
| |
| o The function mauchley.test() is deprecated (was a misspelling) |
| and replaced by mauchly.test() |
| |
| |
| BUG FIXES |
| |
| o The malloc's of AIX and OSF/1 which return NULL for size 0 |
| are now catered for in src/main/regex.c. |
| |
| o Names of list elements which are missing are now printed as |
| $<NA> and not $"NA" (which is how the non-missing name "NA" is |
| printed). (Brought up in discussion of PR#8161.) |
| |
| o help.start() was not linking R.css for use by its front page and |
| immediate links (2.2.0 only). |
| |
| o Indexing by character NA matched the name "NA". |
| |
| o The arith-true test used random inputs and did not set the seed, so |
| it could fail very occasionally. |
| |
| o arima() with 'fixed' supplied and p=0 for the non-seasonal |
| part could give spurious warnings about 'some AR parameters |
| were fixed'. |
| |
| o summary.matrix() could give an infinite recursion on some |
| classed objects (e.g. those of class "Surv"). |
| |
| o The 255th character in an 8-bit character set was not handled |
| correctly as a letter on some platforms where C char is |
| signed: for example it was printed as \377 and not allowed in |
| variable names. (Spotted by Alexey Shipunov in Russian |
| encodings.) |
| |
| o Conversion from POSIXct to POSIXlt is done more accurately |
| around the change of DST in years not supported by the OS |
| (pre-1970 on Windows and some others, and in the far past or |
| future). |
| |
| o chisq.test(cbind(1:0, c(7,16)), simulate.p = TRUE) gave wrong |
| P-values on some platforms. (PR#8224) |
| |
| o pdf() was not writing details of the encoding to the file |
| correctly. (Spotted by Alexey Shipunov in Russian encodings.) |
| |
| o image() was failing with an error when plotting a matrix |
| of all NA values. (PR#8228) |
| |
| image() could fail if called with add=FALSE (the default) and |
| length(x)=1 for either x or y, as it uses the plot coordinates of |
| the previous plot (if any). |
| |
| o tools::checkMD5sums was not accepting file names with spaces in. |
| |
| o The plot() method for TukeyHSD() needed updating after adding |
| adjusted p-values. (PR#8229) |
| |
| o read.fwf() did not work for header = TRUE. (PR#8226) |
| |
| o diag() failed when its argument had NA values in its dimnames. |
| |
| o [g]sub(pcre=TRUE) did not work correctly with \U and \L in a |
| UTF-8 locale, even on the example on the help page. |
| |
| o promptMethods() was failing if the "methods" argument was supplied. |
| |
| o is.loaded() now finds Fortran symbols whether or not the |
| registration mechanism has been used. |
| |
| o ISODateTime() mistakenly corrected non-existent times (when |
| DST was being started) in the current time zone. |
| |
| o Some replacement operations on data frames gave incorrect |
| answers, e.g. DF[3:4, "y"] if column "y" did not exist or was |
| a matrix. |
| |
| o getGraphicsEvent() would cause memory corruption if passed an |
| empty prompt. |
| |
| o qr() and chol() now pivot the colnames of the result when |
| pivoting is used. (PR#8258) |
| |
| o example(points) omitted pch=0, although it was valid and |
| said in the text to be illustrated. |
| |
| o plot.default() had an unused 'lab' argument, thereby preventing |
| the 'lab' graphics parameter being passed through '...' . |
| |
| o Although polygon(col = NA) was the stated default, specifying |
| NA was not equivalent to omitting the argument (but col=NULL |
| was equivalent). |
| |
| o Im(-1) was pi. (PR#8272, a side effect from all previous |
| versions of R returning the same value for Im and Arg of |
| non-complex numbers.) |
| |
| o symbols(fg) defaulted to colour 1, not par("col") as documented. |
| It does now defaults to par("col"). |
| |
| o par("family") did not check the length of the value (up to 49 |
| bytes) and so could segfault. |
| |
| o aggregate.ts() did not allow for rounding in frequencies such |
| as 1/5. |
| |
| o prcomp(tol=) was not dropping the sdev's corresponding to |
| dropped columns. |
| |
| o Subassignment of a vector which increased the length of the |
| vector _and_ had the wrong length of replacement could |
| occasionally segfault. (This has been there since at least |
| mid 1997.) |
| |
| o The registration of .Fortran symbols was broken: these could |
| only be looked up if there were also .Call symbols registered! |
| |
| o R CMD build was incorrectly rejecting the recommended form of |
| name for a translation package, 'Translation-ll'. (PR#8314) |
| |
| o numericDeriv() gave nonsense results unless the variables were |
| real, which was not checked. |
| |
| o predict.prcomp() would sometimes give an error when predicting |
| a single observation. (PR#8324) |
| |
| o mapply() could segfault if MoreArgs was not a list. (PR#8332) |
| |
| o The arith-true test used identical() on floating-point results, |
| and this allowed a failure when the relative difference was |
| less than .Machine$double.eps but non-zero. |
| |
| o qbinom() was not accepting p = -Inf when log.p = TRUE, although |
| it is a legitimate value. |
| |
| o write.csv[2] only accepted logical constants for 'row.names', and |
| now accepts variables. |
| |
| o Conversion of .Rd files did not correctly match braces |
| enclosing a whole argument, e.g. \eqn{{\bf a}}{a}. |
| |
| o The C function pythag (used if hypot was not available) would |
| infinite-loop on systems with effective optimizing compilers. |
| |
| o Writing long formats (more than 1000 bytes) with connections |
| that use dummy_vfprintf could fail on some systems. The limit |
| has been changed to 100000 bytes pending a more complete fix in R |
| 2.3.0. |
| |
| o Making in src/nmath/standalone without making R was not |
| making Rmath.h. |
| |
| o Both the R front-end and INSTALL could find the attempted |
| temporary directory name already in use on platforms without |
| mktemp (and a genuine Bourne shell /bin/sh, not bash). Now |
| both the process ID and a timestamp are used to create the |
| directory name. |
| |
| o [dpqr]gamma now return NaN for an invalid 'shape' parameter |
| (rather than throw an error), for consistency with other |
| distribution functions. |
| |
| o t() now longer drops dimnames 'list(NULL,NULL)' or 'list(NULL)'. |
| |
| o Influence measures such as rstandard() and cooks.distance() |
| could return infinite values rather than NaN for a case which |
| was fitted exactly. Similarly, plot.lm() could fail on such |
| examples. plot.lm(which = 5) had to be modified to only plot |
| cases with hat < 1. (PR#8367) |
| |
| lm.influence() was incorrectly reporting 'coefficients' and |
| 'sigma' as NaN for cases with hat = 1, and on some platforms |
| not detecting hat = 1 correctly. |
| |
| o Rmath.h for standalone Rmath was not recording HAVE_WORKING_LOG, |
| so R_log was not available on platforms defining it. |
| |
| o HoltWinters() was using a slightly incorrect formula in the C code. |
| |
| o dir.create() could be confused by a trailing slash on the |
| path, and by paths containing drives on Windows. |
| |
| o The search for tcl/tkConfig.sh looked in 'lib' before 'lib64' |
| directories (and not at all in /usr/local/lib64) and so might |
| prefer 32- to 64-bit versions if both are available. |
| |
| o nlminb() used an uninitialized variable unless bounds were supplied, |
| and so failed on 64-bit Solaris. |
| |
| |
| |
| CHANGES IN R VERSION 2.2.0 |
| |
| |
| USER-VISIBLE CHANGES |
| |
| o plot(<lm object>) uses a new default 'which = 5' |
| for the fourth panel when 'which' is not specified. |
| |
| o The SVN revision number will appear after the date in the |
| welcome message. The date shown is now the date of the last |
| change to the sources rather than the date the sources were |
| prepared. |
| |
| o is.null(expression()) now returns FALSE. Only NULL gives TRUE |
| in is.null(). |
| |
| o graphics::xy.coords, xyz.coords and n2mfrow have been moved to |
| the grDevices name space (to be available for grid as well). |
| |
| graphics::boxplot.stats, contourLines, nclass.*, and chull |
| have been moved to the grDevices name space. The C code |
| underlying chull() has been moved to package grDevices. |
| |
| o split(x, f), split<-() and unsplit() now by default split by all |
| levels of a factor f, even when some are empty. |
| Use split(x, f, drop = TRUE) if you want the old behavior of |
| dropping empty levels. split() and split<-() are S3 generic |
| functions with new arguments 'drop' and '...' and all methods now |
| should have 'drop' and '...' arguments as well. |
| |
| o The default for 'allowEscapes' in both read.table() and scan() |
| has been changed to FALSE. |
| |
| o The default for 'gcFirst' in system.time() is now TRUE. |
| |
| |
| NEW FEATURES |
| |
| o .Platform has a new component 'path.sep', the separator used |
| between paths in environment variables such as PATH and TEXINPUTS. |
| |
| o anova.mlm() now handles the single-model case. |
| |
| o Hexadecimal values are now allowed for as.numeric() and |
| as.integer() on all platforms, and as integer constants in R code. |
| |
| o attach() now prints an information message when objects are |
| masked on the search path by or from a newly attached database. |
| |
| o axis() now returns 'at' positions. |
| |
| o axis() has a new argument 'hadj' to control horizontal |
| adjustment of labels. |
| |
| o axis.Date() and axis.POSIXct() now accept a 'labels' argument |
| (contributed by Gavin Simpson). |
| |
| o barplot() now has arguments 'log = ""' and 'add = FALSE' |
| (as in barplot2() from package 'gplots'). |
| |
| o baseenv() has been added, to return the base environment. This |
| is currently still NULL, but will change in a future release. |
| |
| o boxplot() now responds to supplying 'yaxs' (via bxp()). |
| (Wish of PR#8072.) |
| |
| o capabilities() has a new component 'NLS'. |
| |
| o cbind() and rbind() now react to 'deparse.level' = {0,1,2} |
| (as in another system not unlike R). |
| |
| o Experimental versions of cbind() and rbind() in methods package, |
| based on new generic function cbind2(x,y) and rbind2(). This will |
| allow the equivalent of S4 methods for cbind() and rbind() --- |
| currently only after an explicit activation call, see ?cbind2. |
| |
| o New functions cdplot() and spineplot() for conditional density |
| plots and spine plots or spinograms. Spine plots are now used |
| instead of bar plots for x-y scatterplots where y is a factor. |
| |
| o checkDocFiles() in package 'tools' now checks for bad \usage |
| lines (syntactically invalid R code). |
| |
| o The nonparametric variants of cor.test() now behave better in |
| the presence of ties. The "spearman" method uses the asymptotic |
| approximation in that case, and the "kendall" method likewise, |
| but adds a correction for ties (this is not necessary in the |
| Spearman case). |
| |
| o The X11 dataentry() now has support for X Input Methods |
| (contributed by Ei-ji Nakama). |
| |
| o density() is now an S3 generic where density.default() {former |
| density()} has new argument 'weights' for specifying observation |
| masses different than the default 1/N -- based on a suggestion and |
| code from Adrian Baddeley. |
| |
| o download.packages() now carries on if it encounters a download |
| error (e.g. a repository with a corrupt index). |
| |
| o dump() now skips missing objects with a warning rather than |
| throw an error. |
| |
| o Added "POSIXlt" methods for duplicated() and unique(). |
| |
| o Function encoded_text_to_latex() in package tools translates |
| Latin 1,2,9 and UTF-8 encoded character vectors to LaTeX |
| escape sequences where appropriate. |
| |
| o encodeString() allows justify = "none" for consistency with |
| format.default(). Some argument names have been lengthened |
| for clarity. |
| |
| o file(), fifo() and pipe() now (if possible) report a reason |
| if they fail to open a connection. |
| |
| o format.default() now has a 'width' argument, and 'justify' can |
| now centre character strings. |
| |
| format.default() has new arguments 'na.encode' to control |
| whether NA character strings are encoded (true by default), |
| and 'scientific' to control the use of fixed/scientific |
| notation for real/complex numbers. |
| |
| How format() works on a list is now documented, and uses |
| arguments consistently with their usage on an atomic vector. |
| |
| o format.info() now has a 'digits' argument, and is documented |
| to work for all atomic vectors (it used to work for all but |
| raw vectors.). |
| |
| o New function glob2rx() for translating `wildcard' aka `globbing' |
| to regular expressions. |
| |
| o There is a new function gregexpr() which generalizes regexpr() |
| to search for all matches in each of the input strings (not |
| just the first match). |
| |
| o [g]sub() now have a 'useBytes' argument like grep() and regexpr(). |
| |
| o [g]sub(perl = TRUE) support \L and \U in the replacement. |
| |
| o iconv() has been moved from 'utils' to 'base'. |
| |
| o identify()'s default method has additional arguments 'atpen' |
| and 'tolerance' (following S). |
| |
| o KalmanForecast() and KalmanLike() now have an optional argument |
| fast=FALSE to prevent their arguments being modified. |
| |
| o Exact p-values are available in ks.test() for the one-sided and |
| two-sided one-sample Kolmogorov-Smirnov tests. |
| |
| o labels() now has a method for "dist" objects (replacing that |
| for names() which was withdrawn in 2.1.0). |
| |
| o library() now explicitly checks for the existence of |
| directories in 'lib.loc': this avoids some warning messages. |
| |
| o loadNamespace(keep.source=) now applies only to that name space |
| and not others it might load to satisfy imports: this is now |
| consistent with library(). |
| |
| o match.arg() has a new argument 'several.ok = FALSE'. |
| |
| o max.col() has a new argument for non-random behavior in the |
| case of ties. |
| |
| o memory.profile() now uses the type names returned by typeof() |
| and no longer has two unlabelled entries. |
| |
| o methods() now warns if it appears to have been called on a |
| non-generic function. |
| |
| o The default mosaicplot() method by default draws grey boxes. |
| |
| o nlminb(), similar to that in S-PLUS, added to package 'stats'. |
| |
| o New algorithm "port" (the nl2sol algorithm available in the |
| Port library on netlib) added to the nls() function in the |
| 'stats' package. |
| |
| o object.size() now supports more types, including external |
| pointers and weak references. |
| |
| o options() now returns its result in alphabetical order, and is |
| documented more comprehensively and accurately. (Now all |
| options used in base R are documented, including |
| platform-specific ones.) |
| |
| Some options are now set in the package which makes use of |
| them (grDevices, stats or utils) if not already set when the |
| package is loaded. |
| |
| o New option("OutDec") to set the decimal point for output conversions. |
| |
| o New option("add.smooth") to add smoothers to a plot, currently |
| only used by plot.lm(). |
| |
| o pie() has new optional arguments 'clockwise' and 'init.angle'. |
| |
| o plot.lm() has two new plots (for 'which' = 5 or 6), plotting |
| residuals or cook distances versus (transformed) leverages - unless |
| these are constant. Further, the new argument 'add.smooth' adds a |
| loess smoother to the point plots by default, and 'qqline = TRUE' |
| adds a qqline() to the normal plot. |
| The default for 'sub.caption' has been improved for long calls. |
| |
| o R.home() has been expanded to return the paths to components |
| (which can as from this version be installed elsewhere). |
| |
| o readbin() and writeBin() now support raw vectors as well as |
| filenames and connections. |
| |
| o read.dcf() can now read gzipped files. |
| |
| o read.table() now passes 'allowEscapes' to scan(). |
| |
| o sample(x, size, prob, replace = TRUE) now uses a faster |
| algorithm if there are many reasonably probable values. (This |
| does mean the results will be different from earlier versions |
| of R.) The speedup is modest unless 'x' is very large _and_ |
| 'prob' is very diffuse so that thousands of distinct values |
| will be generated with an appreciable frequency. |
| |
| o scatter.smooth() now works a bit more like other plotting |
| functions (e.g., accepts a data frame for argument 'x'). |
| Improvements suggested by Kevin Wright. |
| |
| o signif() on complex numbers now rounds jointly to give the |
| requested number of digits in the larger component, not |
| independently for each component. |
| |
| o New generic function simulate() in the 'stats' package with |
| methods for some classes of fitted models. |
| |
| o smooth.spline() has a new argument 'keep.data' which allows to |
| provide residuals() and fitted() methods for smoothing splines. |
| |
| o Attempting source(file, chdir=TRUE) with a URL or connection |
| for 'file' now gives a warning and ignores 'chdir'. |
| |
| o source() closes its input file after parsing it rather than |
| after executing the commands, as used to happen prior to |
| 2.1.0. (This is probably only significant on Windows where |
| the file is locked for a much shorter time.) |
| |
| o split(), split<-(), unsplit() now have a new argument 'drop = FALSE', |
| by default not dropping empty levels; this is *not* back compatible. |
| |
| o sprintf() now supports asterisk `*' width or precision |
| specification (but not both) as well as `*1$' to `*99$'. Also the |
| handling of `%' as conversion specification terminator is now |
| left to the system and doesn't affect following specifications. |
| |
| o The plot method for stl() now allows the colour of the range |
| bars to be set (default unchanged at "light gray"). |
| |
| o Added tclServiceMode() function to the tcltk package to allow |
| updating to be suspended. |
| |
| o terms.formula() no longer allows '.' in a formula unless there |
| is a (non-empty) 'data' argument or 'allowDotAsName = TRUE' is |
| supplied. We have found several cases where 'data' had not |
| been passed down to terms() and so '.' was interpreted as a |
| single variable leading to incorrect results. |
| |
| o New functions trans3d(), the 3D -> 2D utility from persp()'s |
| example, and extendrange(), both in package 'grDevices'. |
| |
| o TukeyHSD() now returns p-values adjusted for multiple comparisons |
| (based on a patch contributed by Fernando Henrique Ferraz P. da Rosa). |
| |
| o New functions URLencode() and URLdecode(), particularly for use |
| with file:// URLs. These are used by e.g. browse.env(), |
| download.file(), download.packages() and various help() print |
| methods. |
| |
| o Functions utf8ToInt() and intToUtf8() to work with UTF-8 |
| encoded character strings (irrespective of locale or OS-level |
| UTF-8 support). |
| |
| o [dqp]wilcox and wilcox.test work better with one very large sample |
| size and an extreme first argument. |
| |
| o write() has a new argument 'sep'. |
| |
| o write.csv[2] now also support row.names = FALSE. |
| |
| |
| |
| o The specification of the substitutions done when processing |
| Renviron files is more liberal: see ?Startup. It now |
| accepts forms like R_LIBS=${HOME}/Rlibrary:${WORKGRP}/R/lib . |
| |
| o Added recommendation that packages have an overview man page |
| <pkg>-package.Rd, and the promptPackage() function to create a |
| skeleton version. |
| |
| o Replacement indexing of a data frame by a logical matrix index |
| containing NAs is allowed in a few more cases, in particular |
| always when the replacement value has length one. |
| |
| o Conversion of .Rd files to latex now handles encoding more |
| comprehensively, including some support for UTF-8. |
| |
| o The internal regex code has been upgraded to glibc-2.3.5. |
| Apart from a number of bug fixes, this should be somewhat |
| faster, especially in UTF-8 locales. |
| |
| o PCRE has been updated to version 6.2. |
| |
| o zlib has been updated to version 1.2.3. |
| |
| o bzip2 has been updated to version 1.0.3. |
| |
| o Complex arithmetic is now done by C99 complex types where |
| supported. This is likely to boost performance, but is |
| subject to the accuracy with which it has been implemented. |
| |
| o The printing of complex numbers has changed, handling numbers |
| as a whole rather than in two parts. So both real and |
| imaginary parts are shown to the same accuracy, with the |
| 'digits' parameter referring to the accuracy of the larger |
| component, and both components are shown in fixed or |
| scientific notation (unless one is entirely zero when it is |
| always shown in fixed notation). |
| |
| o Error messages from .C() and .Fortran(), and from parsing errors, |
| are now more informative. |
| |
| o The date and date-time functions work better with dates more |
| than 5000 years away from 1970-01-01 (by making dubious |
| assumptions about the calendar in use). |
| |
| o There is now a traditional Chinese translation, and a much more |
| extensive Russian translation. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o Capability "IEEE754" is defunct. |
| |
| o loadURL() is defunct: use load(url()). |
| |
| o delay() is defunct: use delayedAssign() instead. |
| |
| o The 'CRAN' argument to update.packages(), old.packages(), |
| new.packages(), download.packages() and install.packages() is |
| defunct in favour of 'repos'. |
| |
| o write.table0() is deprecated in favour of the much faster |
| write.table(). |
| |
| o format.char() is deprecated in favour of format.default(). |
| |
| o R_HOME/etc/Rprofile is no longer looked for if |
| R_HOME/etc/Rprofile.site does not exist. (This has been |
| undocumented since R 1.4.0.) |
| |
| o CRAN.packages() is deprecated in favour of available.packages(). |
| |
| o Rd.sty no longer processes pre-2.0.0 conversions containing \Link. |
| |
| o The stubs for the defunct device GNOME/gnome have been removed. |
| |
| o print.matrix() (which has been identical to print.default since |
| R 1.7.0) has been removed. |
| |
| |
| INSTALLATION |
| |
| o LDFLAGS now defaults to -L/usr/local/lib64 on most Linux |
| 64-bit OSes (but not ia64). The use of lib/lib64 can be |
| overridden by the new variable LIBnn. |
| |
| o The default installation directory is now ${prefix}/${LIBnn}/R, |
| /usr/local/lib64/R on most 64-bit Linux OSes and /usr/local/lib/R |
| elsewhere. |
| |
| o The places where the doc, include and share directory trees are |
| installed can be specified independently: see the R-admin manual. |
| |
| o We now test for wctrans_t, as apparently some broken OSes have |
| wctrans but not wctrans_t (which is required by the relevant |
| standards) . |
| |
| o Any external BLAS found is now tested to see if the complex |
| routine zdotu works correctly: this provides a compatibility |
| test of compiler return conventions. |
| |
| o Installation without NLS is now cleaner, and does not install |
| any message catalogues. |
| |
| o src/modules/lapack/dlamc.f is now compiled with -ffloat-store |
| if f2c/gcc are used, as well as if g77 is used. |
| |
| o All the Fortran code has been checked to be fully F77 |
| compliant so there are no longer any warnings from F95 |
| compilers such as gfortran. |
| |
| o The (not-recommended) options --with-system-zlib, |
| --with-system-bzlib and -with-system-pcre now have 'system' in |
| the name. |
| |
| o If a Java runtime environment is detected at configure time |
| its library path is appended to LD_LIBRARY_PATH or equivalent. |
| New Java-related variables JAVA_HOME (path to JRE/JDK), JAVA_PROG |
| (path to Java interpreter), JAVA_LD_PATH (Java library path) |
| and JAVA_LIBS (flags to link against JNI) are made available |
| in Makeconf. |
| |
| o Ei-ji Nakama was contributed a patch for FPU control with the |
| Intel compilers on ix86 Linux. |
| |
| |
| MAC OS X INSTALLATION |
| |
| o --with-blas="-framework vecLib" --with-lapack and |
| --with-aqua are now the default configure options. |
| |
| o The default framework version name was changed to not contain |
| the patch level (i.e. it is now 2.2 instead of 2.2.0). Also |
| it can be overridden at configure time by setting FW_VERSION |
| to the desired name. |
| |
| o The Rmath stand-alone library is now correctly installed inside |
| the R.framework if R was configured as a framework. In |
| addition, make install-Rmath-framework will install a |
| stand-alone Rmath framework in /Library/Frameworks (unless |
| overridden by RMATH_FRAMEWORK_DIR specifying full framework |
| path and name including the .framework extension). |
| |
| |
| PACKAGE INSTALLATION |
| |
| o The encoding for a packages' 00Index.html is chosen from the |
| Encoding: field (if any) of the DESCRIPTION file and from the |
| \encoding{} fields of any Rd files with non-ASCII titles. |
| If there are conflicts, first-found wins with a warning. |
| |
| o R_HOME/doc/html/packages.html is now remade by R not Perl code. |
| This may result in small changes in layout and a change in |
| encoding (to UTF-8 where supported). |
| |
| o The return value of new.packages() is now updated for any |
| packages which may be installed. |
| |
| o available.packages() will read a compressed PACKAGES.gz file in |
| preference to PACKAGES if available on the repository: this |
| will reduce considerably the download time on a dialup connection. |
| |
| The downloaded information about a repository is cached for the |
| current R session. |
| |
| o The information about library trees found by |
| installed.packages() is cached for the current session, and |
| updated only if the modification date of the top-level |
| directory has been changed. |
| |
| o A data index is now installed for a package with a 'data' dir |
| but no 'man' dir (even though it will have undocumented data objects). |
| |
| o contrib.url path for type="mac.binary" has changed from |
| bin/macosx/<version> to bin/macosx/<arch>/contrib/<version> |
| where <arch> corresponds to R.version$arch |
| |
| |
| UTILITIES |
| |
| o checkFF() used by R CMD check has since R 2.0.0 not reported |
| missing PACKAGE arguments when testing installed packages with |
| name spaces. It now |
| |
| - treats installed and source packages in the same way. |
| |
| - reports missing arguments unless they are in a function in |
| the name space with a useDynLib declaration (as the |
| appropriate DLL for such calls can be searched for). |
| |
| o Rd2dvi sets the encoding(s) used appropriately. If UTF-8 |
| encoding is used, latex >= 2003/12/01 is required. |
| |
| o codoc() allows help files named pkg_name-defunct.Rd to have |
| undocumented arguments (and not just base-defunct.Rd). |
| |
| |
| C-LEVEL FACILITIES |
| |
| o C function massdist() {called from density()} has new argument |
| 'xmass' (= weights). |
| |
| o Raw vectors passed to .C() are now passed as unsigned char * |
| rather than as SEXPs. (Wish of Keith Frost, PR#7853) |
| |
| o The search for symbols in a .C/.Call/... call without a |
| package argument now searches for an enclosing name space and |
| so finds functions defined within functions in a name space. |
| |
| o R_max_col() has new (5th) argument '*ties_meth' allowing |
| non-random behavior in the case of ties. |
| |
| o The header files have been rationalized: the BLAS routine |
| LSAME is now declared in BLAS.h not Linpack.h, Applic.h no |
| longer duplicates routines from Linpack.h, and Applic.h is |
| divided into API and non-API sections. |
| |
| o memory.c has been instrumented so that Valgrind can track R's |
| internal memory management. To use this, configure using |
| --with-valgrind-instrumentation=level |
| where level is 1 or 2. Both levels will find more bugs with |
| gctorture(TRUE). Level 2 makes Valgrind run extremely slowly. |
| |
| o Some support for raw vectors has been added to Rdefines.h. |
| |
| o R_BaseEnv has been added, to refer to the base environment. |
| This is currently equal to R_NilValue, but it will change in |
| a future release. |
| |
| |
| BUG FIXES |
| |
| o %/% has been adjusted to make x == (x %% y) + y * ( x %/% y ) |
| more likely in cases when extended-precision registers were |
| interfering. |
| |
| o Operations on POSIXct objects (such as seq(), max() and |
| subsetting) try harder to preserve time zones and warn if |
| inconsistent time zones are used. |
| |
| o as.function.default() no longer asks for a bug report when |
| given an invalid body. (PR#1880, PR#7535, PR#7702) |
| |
| o Hershey fonts and grid output (and therefore lattice output) |
| now rescale correctly in fit-to-window resizing on a Windows |
| graphics device. Line widths also scale now. |
| |
| o Plotmath has more support for multibyte characters (contributed |
| by Ei-ji Nakama). |
| |
| o The X11() device now hints the window manager so that decorations |
| appear reliably under e.g. the GNOME WM (contributed |
| by Ei-ji Nakama). |
| |
| o Subsetting a matrix or an array as a vector used to attempt to |
| use the row names to name the result, even though the |
| array might be longer than the row names. Now this is only |
| done for 1D arrays when it is done in all cases, even matrix |
| indexing. (Tidies up after the fix to PR#937.) |
| |
| o Constants in mathlib are declared 'const static double' to |
| avoid performance issues with the Intel Itanium compiler. |
| |
| o The parser checks the format of numeric constants more |
| thoroughly so for example '123E-' is no longer valid. |
| |
| o contourLines() no longer requires an open device (used to |
| start a device unnecessarily). Fix suggested by Barry Rowlingson. |
| |
| o capabilities() used partial matching but was not documented |
| to: it no longer does so. |
| |
| o kernel(1,0) printed wrongly; kernel(<name-string>, *) now returns |
| a named kernel in all cases; plot(kernel(.),..) is more flexible. |
| |
| o qgamma(1,s) didn't give +Inf for some s. |
| |
| o installed.packages() and download.packages() now always |
| return a matrix as documented, possibly with 0 rows (rather than |
| a 0-length character vector or NULL). |
| |
| o Arithmetic operations on data frames no longer coerce the |
| names to syntatically valid names. |
| |
| o Units are now properly recycled in grid layouts |
| when 'widths' or 'heights' are shorter than the number of |
| columns or rows (PR#8014). |
| |
| o DF <- data.frame(A=1:2, B=3:4); DF[1, 1:3] <- NULL gave a wrong |
| error message. |
| |
| o spline()/spinefun()'s C code had a memory access buglet which |
| never lead to incorrect results. (PR#8030) |
| |
| o sum() was promoting logical arguments to double not integer |
| (as min() and other members of its group do). |
| |
| o loess() had a bug causing it to occasionally miscalculate |
| standard errors (PR#7956). Reported by Benjamin Tyner, fixed |
| by Berwin Turlach. |
| |
| o library(keep.source=) was ignored if the package had a |
| name space (the setting of options("keep.source.pkgs") was |
| always used). |
| |
| o hist.POSIXct() and hist.Date() now respect par("xaxt"). |
| |
| o The 'vfont' argument was not supported correctly in title(), |
| mtext(), and axis(). The 'vfont' argument is superseded by |
| the par(family=) approach introduced in 2.0.0. This bug-fix |
| just updates the warning messages and documentation to |
| properly reflect the new order of things. |
| |
| o The C-level function PrintGenericVector could overflow if |
| asked to print a length-1 character vector of several thousand |
| characters. This could happen when printing a list matrix, |
| and was fatal up to 2.1.1 and silently truncated in 2.1.1 patched. |
| |
| o What happened for proc.time() and system.time() on |
| (Unix-alike) systems which do not support timing was |
| incorrectly documented. (They both exist but throw an error.) |
| Further, systen.time() would give an error in its on.exit |
| expression. |
| |
| o weighted.residuals() now does sensible things for glm() fits: |
| in particular it now agrees with an lm() fit for a Gaussian glm() |
| fit. (PR#7961). |
| |
| o The 'lm' and 'glm' methods for add1() took the weights and |
| offset from the original fit, and so gave errors in the |
| (dubious) usage where the upper scope resulted in a smaller |
| number of cases to fit (e.g. by omitting missing values in new |
| variables). (PR#8049) |
| |
| o demo() had a 'device' argument that did nothing (although it |
| was documented to): it has been removed. |
| |
| o Setting new levels on a factor dropped all existing |
| attributes, including class "ordered". |
| |
| o format.default(justify="none") now by default converts NA |
| character strings, as the other values always did. |
| |
| o format.info() often gave a different field width from format() |
| for character vectors (e.g. including missing values or |
| non-printable characters). |
| |
| o axis() now ensures that if 'labels' are supplied as character |
| strings or expressions then 'at' is also supplied (since the |
| calculated value for 'at' can change under resizing). |
| |
| o Defining S4 methods for "[" had resulted in changed behavior of S3 |
| dispatch in a very rare case which no longer happens. |
| |
| o Fixed segfault when PostScript font loading fails, e.g., when |
| R is unable to find afm files (reported by Ivo Welch). |
| |
| o R CMD BATCH <file> now also works when <file> does not end in a |
| newline on Unix-alike platforms. |
| |
| o terms.formula() got confused if the 'data' argument was a list with |
| non-syntactic names. |
| |
| o prompt() and hence package.skeleton() now produce *.Rd files that |
| give no errors (but warnings) when not edited, much more often. |
| |
| o promptClass() and promptMethods() now also escape "%" e.g. in '%*%' |
| and the latter gives a message about the file written. |
| |
| o wilcox.test() now warns when conf.level is set higher than |
| achievable, preventing errors (PR#3666) and incorrect answers |
| with extremely small sample sizes. |
| |
| o The default (protection pointer) stack size (the default for |
| '--max-ppsize') has been increased from 10000 to 50000 in order to |
| match the increased default options("expressions") (in R 2.1.0). |
| |
| o The R front-end was expecting --gui=tk not Tk as documented, |
| and rejecting --gui=X11. |
| |
| o Rdconv -t latex protected only the first << and >> in a chunk |
| against conversion to guillemets. |
| |
| o callNextMethod() and callGeneric() have fixes related to |
| handling arguments. |
| |
| o ls.diag() now works for fits with missing data. (PR#8139) |
| |
| o window.default() had an incorrect tolerance and so sometimes |
| created too short a series if 'start' or 'end' were zero. |
| |
| o Some (fairly pointless) cases of reshape left a |
| temporary id variable in the result (PR#8152) |
| |
| o R CMD build used 'tar xhf' which is invalid on FreeBSD systems |
| (and followed tar chf, so there could be no symbolic links in |
| the tarball). |
| |
| o Subassignment of length zero vectors to NULL gave garbage |
| answers. (PR#8157) |
| |
| o Automatic coercion of raw vectors to lists was missing, so for a |
| list (or data frame) z, z[["a"]] <- raw_vector did not work |
| and now does. This also affected DF$a <- raw_vector for a |
| data frame DF. |
| |
| o The internal code for commandArgs() was missing PROTECTs. |
| |
| o The width for strwrap() was used as one less than specified. |
| |
| o R CMD INSTALL was not cleaning up after an unsuccessful |
| install of a non-bundle which was not already installed. |
| |
| |
| |
| |
| ************************************************** |
| * * |
| * 2.1 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 2.1.1 patched |
| |
| |
| BUG FIXES |
| |
| o runmed(x, k = -1) now gives an error instead of a seg.fault. |
| |
| o File creation errors in pdf(), postscript(), xfig() resulted |
| in a pointer being freed twice. (Reported by Matt McCall) |
| |
| o model.matrix(~ .^2, data=foo) now works as most people would |
| expect (it used to expand '.' after using the a^2 = a rule). |
| |
| o ftable() and xtabs() had a check for interactions that would |
| not work correctly with '.' in the formula. |
| |
| o The formula method for pairs() was ignoring the na.action argument. |
| |
| o scan() with the default separator (only) was stripping backslashes |
| inside quoted string inputs even if allowEscapes = FALSE. |
| |
| o The "col" parameter to pairs() is now treated consistently with |
| plot(): it affects the data, not the axes. (Patch submitted |
| by Olaf Mersmann) |
| |
| o Sweave failed for \Sexpr{character(0)}. Sweave-test-1.Rnw |
| contained a print() statement that is no longer needed. |
| |
| o Typo meant that R_alloc was limited to 2^31 not 2^34 on 64-bit |
| builds of R. |
| |
| o pgamma(Inf, shape) did not terminate for shape = 1.1 and some |
| other values (but not all) (PR#8001). This affected |
| pchisq(Inf, df1) and pf(Inf, df1, Inf) for some values of df1. |
| |
| o regexpr("[a-z]", ...) could cause a buffer overrun with multi-byte |
| character sets, leading to random errors later. |
| |
| o Installing a package with a 'data' directory which contains |
| files but those files generate no objects (e.g. the BioC |
| package makecdfenv) created an incorrectly formatted data |
| index that data(package="pkg") could not read. |
| |
| o density(1/(0:2)) now works again (PR#8033). |
| |
| o make.names() was not respecting the allow_=FALSE argument. |
| |
| o Arg(-1) now gives pi, not 0; Arg(0i + -1) always worked. |
| |
| o --enable-linux-lfs had been broken at 2.1.0. |
| |
| o Printing was not allowing for double-width characters in its |
| layout. |
| |
| o axTicks() is now also correct for reverse axis. (PR#7973) |
| |
| o signif() rounded some numnbers near 1e-308 to the wrong |
| number of places (this showed up in the print-tests.R), and made |
| unnecessary rounding errors on some platforms on e.g. signif(18000, 3). |
| |
| o window() was sometimes failing incorrectly due to representation |
| errors when the new and old deltat were not both integers |
| (e.g. multiples of 0.1). |
| |
| o The 'lm' methods for add1() and drop1() ignored offsets (which |
| were added for lm() after they written). (PR#8049) |
| |
| o atan2(0+1i, 0+0i) was incorrectly NA (from a typo in complex.c). |
| |
| o The POSIXct method for as.Date() was rounding part days |
| before 1970-01-01 upwards rather than discarding them. |
| |
| o qpois() was using an incorrect starting point and so could be |
| unnecessarily slow for large lambda. (PR#8058) |
| |
| o Formatting of complex numbers with nsmall > 0 could be |
| incorrect (and was in print-tests.Rout) because of a typo. |
| |
| o The test for new levels when predicting using model.frame() |
| sometimes reported levels that were not actually used. |
| |
| o order(c("5","6",NA,"4",NA), na.last=FALSE) was incorrect. |
| |
| o Coercion to raw could give spurious messages about discarding |
| imaginary parts. |
| |
| Coercion of a list to raw was behaving inconsistently for |
| out-of-range values (and not warning). |
| |
| o cor.test(method = "spearman") gave NA p-values for _very_ long |
| vectors. (PR#8087) |
| |
| o Switching to the Mersenne-Twister RNG could cause a segfault on |
| first use. |
| |
| A user-supplied RNG without user_unif_{nseed,seedloc} was |
| being re-initialized at each call. |
| |
| o Reading very short tables from stdin() with read.table would |
| fail because of a typo. |
| |
| |
| |
| |
| CHANGES IN R VERSION 2.1.1 |
| |
| |
| NEW FEATURES |
| |
| o bug.report() now reports the locale in use. |
| |
| o upgrade.packageStatus() allows user input "c" to cancel the |
| upgrade, just as update.packages() does. |
| |
| o glm() now accepts 1D arrays (e.g. tables) as a response, |
| dropping them to a vector whilst preserving names. |
| |
| o df() with one infinite df now works (to match pf()). |
| |
| o Added tclServiceMode() function to the tcltk package to allow |
| updating to be suspended. |
| |
| o The Encoding: field of a DESCRIPTION file is now documented, |
| and used by packageDescription() and library(help=). |
| |
| o There has been progress on translations: existing translations |
| have been revised and expanded, and French and Korean have |
| been added. |
| |
| The Windows installer supports a wide range of languages for |
| installation. |
| |
| |
| BUG FIXES |
| |
| o lm(qr=FALSE) now works. |
| |
| o predict.glm() not longer loses names for "response" predictions. |
| (PR#7792) |
| |
| o Typo in menu(graphics=TRUE) meant it failed on Unix if tcltk |
| was not available. |
| |
| o When names.dist() was removed, the result of cmdscale() lost |
| its rownames. The example also lost the labels. |
| |
| o R CMD check assumed 'tar' was GNU tar and so supported -z. |
| |
| o read.table() was not handing escaped quotes inside quoted fields |
| in the first five lines of the file. (PR#7789) |
| |
| It was also not handling correctly EOF in the first five lines |
| when reading from stdin(). (PR#7772) |
| |
| o 'make uninstall' was incomplete. |
| |
| o make.packages.html() called by help.start() was failing if |
| there were installed packages with help titles invalid in the |
| current locale. |
| |
| o printCoefmat(signif.legend = FALSE) was non-functional. (PR#7802) |
| |
| o Some as.date.frame() methods failed because the expression |
| deparsed into multiple lines. (PR#7808) |
| |
| o setRepositories() had a typo. (PR#7810) |
| |
| o Printing arrays/data frames with multibyte characters in the |
| column labels was sometimes misaligned or using excessive space. |
| (PR#7803) |
| |
| o The Tcl/Tk console did not support multibyte characters. |
| |
| o as.POSIXlt() could give infinite recursion if passed a corrupt |
| "POSIXct" object (generated by an incorrect call to c.POSIXct, |
| PR#7826). |
| |
| o update.packages() was not passing 'type' correctly to |
| install.packages(). |
| |
| o Printing the result of an unbalanced model.tables() call |
| sometimes got confused if terms() had rearranged interaction |
| terms. (PR#7829) |
| |
| o .Platform$pkgType was wrong on the CRAN MacOS X build, and |
| .install.macbinary() was missing. |
| |
| o as.personList() as used by citation() got confused by names |
| containing "and". (PR#7797) |
| |
| o Subscripting an array by a matrix containing zero or negative |
| values or the wrong number of columns was not handled |
| consistently. (PR#7824) |
| |
| o select.list(multiple=TRUE) now detects and tries again for invalid |
| text input. |
| |
| o add1.[g]lm could give strange results with interaction terms |
| when the model and the upper scope had different orders for |
| the main effects. (PR#7842) |
| |
| o A bug had sneaked into the anova.mlmlist() code, affecting the |
| Greenhouse-Geisser epsilon. Code wrongly assumed a matrix to |
| be symmetric. (Thanks to Bela Bauer.) |
| |
| o anova.mlmlist() and mauchley.test() are now more tolerant to rank |
| deficiency in the M and X matrices (also when they are implicitly |
| generated via model.matrix()). |
| |
| o anova.mlm had a scoping issue (PR#7898) |
| |
| o pf() with infinite df is allowed again. It is now more accurate |
| for extreme ratios of dfs, especially when there is a |
| non-centrality parameter. |
| |
| o df() was inaccurate for large df (1e16 or greater). |
| |
| o dt() was inaccurate for large df (1e9 or greater) with a |
| non-centrality parameter. |
| |
| o runmed(*, algorithm="Turlach") seg.faulted in rare cases. |
| |
| o strwrap() now makes a reasonable job of text that is invalid in the |
| current locale. |
| |
| o Reading with encoding "UCS-2LE" will remove any Byte Order |
| Mark, as most implementations of iconv fail to handle BOMs |
| (which are present in 'Windows Unicode' files). |
| |
| o unique() for a list was incorrectly reporting `unimplemented'. |
| |
| o The parser's contextstack was not protected against overflow, |
| e.g. more than 50 unmatched '('. (PR#7859) |
| |
| o source(file, chdir = TRUE) was not checking that 'file' was a |
| filepath (rather than a URL). For 2.1.0 only, it did not work |
| even if 'file' was a filepath. |
| |
| o Hershey fonts were being sized based on pixels not points so came |
| out too small on devices where pixels were noticeably different |
| from points (e.g., win.printer() and high-resolution screens). |
| |
| Fix means that default size of Hershey fonts may be slightly |
| different, for example, smaller by default on PostScript and PDF. |
| |
| o The branch cuts in the complex versions of the inverse |
| trigonometric and hyperbolic functions were non-standard. |
| (PR#7871) |
| |
| o truncate() on file() connections was limited to files < 2Gb. It |
| now works for larger files at least on 64-bit OSes and others |
| where ftruncate supports such files. (Related to PR#7879) |
| |
| o proj.aovlist() did not work correctly on objects fitted from a |
| data frame with row names. |
| |
| o The coding standards recommendations had |
| nuke-trailing-whitespace where newer versions of ESS need |
| ess-nuke-trailing-whitespace. (PR#7888) |
| |
| o package.skeleton() missed the first newline in the DESCRIPTION file. |
| |
| o pbirthday() reported p = 1 too often when coincident > 2. |
| |
| o plot(1:3, exp(1:3), log = "y", ylim = c(30,1)) {reversed |
| log-scale axis} now works, based on Uwe Ligges' suggestions. |
| (PR#7894) |
| |
| o install.packages() was aborting when a package in a bundle was |
| chosen from a menu. It failed if more than one package in a |
| bundle was chosen from the command line. |
| |
| o qcauchy() suffered from underflow in the extreme tails. (PR#7902) |
| |
| o Printing of raw matrices/arrays was not implemented. (PR#7912) |
| |
| o getCallingDLL()'s default first argument did not correspond to |
| its description and has been changed. The mismatch caused |
| symbols in .C/.Call/.Fortran calls without a PACKAGE= argument |
| to be potentially looked up in the wrong name space. |
| |
| o Binary save() of raw vectors was not working correctly on |
| big-endian platforms. (PR#7812) |
| |
| o as.Date.factor() now accepts a format argument. |
| |
| o Workaround added for FreeBSD which does not have alloca.h _and_ |
| does not allow alloca() to be declared. |
| |
| o identify() now respects 'cex'. (PR#660) |
| |
| Warnings from identify() are now printed immediately even on |
| consoles with delayed printing. |
| |
| |
| |
| CHANGES IN R VERSION 2.1.0 |
| |
| |
| USER-VISIBLE CHANGES |
| |
| o box plots {by boxplot() or bxp()} now have the median line three |
| times the normal line width in order to distinguish it from the |
| quartile ones. |
| |
| o Unix-alike versions of R can now be used in UTF-8 locales on |
| suitably equipped OSes. See the internationalization section |
| below. |
| |
| o The meaning of 'encoding' for a connection has changed: See the |
| internationalization section below. |
| |
| o There has been some rationalization of the format of |
| warning/error messages, to make them easier to translate. |
| Generally names of functions and arguments are single-quoted, |
| and classes double-quoted. |
| |
| o Reading text files with embedded "\" (as in Windows file names) |
| may now need to use scan(* , allowEscapes = FALSE), see also below. |
| |
| |
| NEW FEATURES |
| |
| o %% now warns if its accuracy is likely to be affected by lack |
| of precision (as in 1e18 %% 11, the unrealistic expectation of |
| PR#7409), and tries harder to return a value in range when it is. |
| |
| o abbreviate() now warns if used with non-ASCII chars, as the |
| algorithm is designed for English words. |
| |
| o The default methods for add1() and drop1() check for changes |
| in the number of cases in use. |
| |
| The "lm" and "glm" methods for add1() quoted the <none> model |
| on the original fitted values when using (with a warning) a |
| smaller set of cases for the expanded models. |
| |
| o Added alarm() function to generate a bell or beep or visual alert. |
| |
| o all/any() now attempt to coerce their arguments to logical, as |
| documented in the Blue Book. This means e.g. any(list()) works. |
| |
| o New functions for multivariate linear models: anova.mlm(), |
| SSD(), estVar(), mauchley.test() (for sphericity). |
| |
| vcov() now does something more sensible for "mlm" class objects. |
| |
| o as.data.frame.table() has a new argument 'responseName' |
| (contributed by Bill Venables). |
| |
| o as.dist() and cophenetic() are now generic, and the latter has a |
| new method for objects of class "dendrogram". |
| |
| o as.ts() is now generic. |
| |
| o binomial() has a new "cauchit" link (suggested by Roger Koenker). |
| |
| o chisq.test() has a new argument 'rescale.p'. It is now possible |
| to simulate (slowly) the P value also in the 1D case |
| (contributed by Rolf Turner). |
| |
| o choose(n,k) and lchoose(.) now also work for arbitrary (real) n |
| in accordance with the general binomial theorem. choose(*,k) |
| is more accurate (and faster) for small k. |
| |
| o Added colorRamp() and colorRampPalette() functions for color |
| interpolation. |
| |
| o colSums()/rowSums() now allow arrays with a zero-length extent |
| (requested by PR#7775). |
| |
| o confint() has stub methods for classes "glm" and "nls" that |
| invoke those in package MASS. This avoids using the "lm" |
| method for "glm" objects if MASS is not attached. |
| |
| confint() has a default method using asymptotic normality. |
| |
| o contr.SAS() has been moved from the 'nlme' package to the |
| 'stats' package. |
| |
| o New function convertColors() maps between color spaces. |
| colorRamp() uses it. |
| |
| o The cov() function in the non-Pearson cases now ranks data after |
| removal of missing values, not before. The pairwise-complete |
| method should now be consistent with cor.test. (Code |
| contributed by Shigenobu Aoki.) |
| |
| o Added delayedAssign() function to replace delay(), which is now |
| deprecated. |
| |
| o dir.create() has a new argument 'recursive' serving the same |
| purpose as Unix's mkdir -p. |
| |
| o do.call() now takes either a function or a character string as |
| its first argument. The supplied arguments can optionally be |
| quoted. |
| |
| o duplicated() and unique() now accept "list" objects, but are |
| fast only for simple list objects. |
| |
| o ecdf() now has jumps of the correct size (a multiple of 1/n) |
| if there are ties. (Wished by PR#7292). |
| |
| o eff.aovlist() assumed orthogonal contrasts for any term |
| with more than one degree of freedom: this is now documented |
| and checked for. Where each term only occurs in only one |
| stratum the efficiencies are all one: this is detected and |
| orthogonal contrasts are not required. |
| |
| o New function encodeString() to encode character strings in the |
| same way that printing does. |
| |
| o file("clipboard") now work for reading the primary selection on |
| Unix-alikes with an active X11 display. (It has long worked |
| for reading and writing under Windows.) The secondary |
| selection can also be read: see ?file. |
| |
| file() now allows mode "w+b" as well as "w+". |
| |
| o file.append() has been tuned, including for the case of |
| appending many files to a single file. |
| |
| o Functions flush.console() and select.list() are now available |
| on all platforms. There is a Tcl/Tk-based version of |
| select.list() called tk_select.list() in package tcltk. |
| |
| o gc() now reports maximum as well as current memory use. |
| |
| o A new function getGraphicsEvent() has been added which will allow |
| mouse or keyboard input from a graphics device. (NB: currently |
| only the Windows screen device supports this function. This |
| should improve before the 2.1.0 release.) |
| |
| o New functions gray.colors()/grey.colors() for gray color |
| palettes. |
| |
| o grep(), gsub(), sub() and regexpr() now always attempt to |
| coerce their 'pattern', 'x', 'replacement' and 'text' |
| arguments to character. Previously this was undocumented but |
| done by [g]sub() and regexpr() for some values of their |
| other arguments. (Wish of PR#7742.) |
| |
| o gsub/sub() have a new 'fixed' method. |
| |
| o New function hcl() for creating colors for a given hue, |
| chroma and luminance (i.e. perceptual hsv). |
| |
| o isTRUE() convenience function to be used for programming. |
| |
| o kmeans() now returns an object of class "kmeans" which has a |
| print() method. |
| |
| Two alternative algorithms have been implemented. |
| |
| If the number of centres is supplied, it has a new option of |
| multiple random starts. |
| |
| o The limits on the grid size in layout() are now documented, and |
| have been raised somewhat by using more efficient internal |
| structures. |
| |
| o legend() now accepts positioning by keyword, e.g. "topleft", |
| and can put a title within the legend. (Suggested by Elizabeth |
| Purdom in PR#7400.) |
| |
| o mahalanobis() now has a '...' argument which is passed to solve() |
| for computing the inverse of the covariance matrix, this replaces |
| the former 'tol.inv' argument. |
| |
| o menu() uses a multi-column layout if possible for more than |
| 10 choices. |
| |
| menu(graphics = TRUE) is implemented on most platforms via |
| select.list() or tk_select.list(). |
| |
| o New function message() in 'base' for generating "simple" |
| diagnostic messages, replacing such a function in the |
| 'methods' package. |
| |
| o na.contiguous() is now (S3) generic with first argument |
| renamed to 'object'. |
| |
| o New function normalizePath() to find canonical paths (and on |
| Windows, canonical names of components). |
| |
| o The default in options("expressions") has been increased to 5000, |
| and the maximal settable value to 500000. |
| |
| o p.adjust() has a new method "BY". |
| |
| o pbeta() now uses a different algorithm for large values of at |
| least one of the shape parameters, which is much faster and is |
| accurate and reliable for very large values. (This affects |
| pbinom(), pf(), qbeta() and other functions using pbeta at C |
| level.) |
| |
| o pch="." now by default produces a rectangle at least 0.01" per |
| side on high-resolution devices. (It used to be one-pixel |
| square even on high-resolution screens and Windows printers, |
| but 1/72" on postscript() and pdf() devices.) Additionally, |
| the size is now scalable by 'cex'; see ?points and note that |
| the details are subject to change. |
| |
| o pdf() now responds to the 'paper' and 'pagecentre' |
| arguments. The default value of 'paper' is "special" |
| for backward-compatibility (this is different from the |
| default for postscript()). |
| |
| o plot.data.frame() tries harder to produce sensible plots for |
| non-numeric data frames with one or two columns. |
| |
| o The predict() methods for "prcomp" and "princomp" now match |
| the columns of 'newdata' to the original fit using column |
| names if these are available. |
| |
| o New function recordGraphics() to encapsulate calculations |
| and graphics output together on graphics engine display list. |
| To be used with care. |
| |
| o New function RSiteSearch() to query R-related resources |
| on-line (contributed by Jonathan Baron and Andy Liaw). |
| |
| o scan() arranges to share storage of duplicated character |
| strings read in: this can dramatically reduce the memory |
| requirements for large character vectors which will |
| subsequently be turned into factors with relatively few |
| levels. For a million items this halved the time and reduced |
| storage by a factor of 20. |
| |
| scan() has a new argument 'allowEscapes' (default TRUE) that |
| controls when C-style escapes in the input are interpreted. |
| Previously only \n and \r were interpreted, and then only |
| within quoted strings when no separator was supplied. |
| |
| scan() used on an open connection now pushes back on the |
| connection its private `ungetc' and so is safer to use to |
| read partial lines. |
| |
| o scatter.smooth() and loess.smooth() now handle missing values |
| in their inputs. |
| |
| o seq.Date() and seq.POSIXt() now allow 'to' to be before 'from' |
| if 'by' is negative. |
| |
| o sprintf() has been enhanced to allow the POSIX/XSI specifiers |
| like "%2$6d", and also accepts "%x" and "%X". |
| |
| sprintf() does limited coercion of its arguments. |
| |
| sprintf() accepts vector arguments and operates on them in |
| parallel (after re-cycling if needed). |
| |
| o New function strtrim() to trim character vectors to a display |
| width, allowing for double-width characters in multi-byte |
| character sets. |
| |
| o subset() now has a method for matrices, similar to that for |
| data frames. |
| |
| o Faster algorithm in summaryRprof(). |
| |
| o sunflowerplot() has new arguments 'col' and 'bg'. |
| |
| o sys.function() now has argument 'which' (as has long been |
| presaged on its help page). |
| |
| o Sys.setlocale("LC_ALL", ) now only sets the locale categories |
| which R uses, and Sys.setlocale("LC_NUMERIC", ) now gives a |
| warning (as it can cause R to malfunction). |
| |
| o unclass() is no longer allowed for environments and external |
| pointers (since these cannot be copied and so unclass() was |
| destructive of its argument). You can still change the |
| "class" attribute. |
| |
| o File-name matching is no longer case-insensitive with unz() |
| connections, even on Windows. |
| |
| o New argument 'immediate.' to warning() to send an immediate |
| warning. |
| |
| o New convenience wrappers write.csv() and write.csv2(). |
| |
| o There is a new version for write.table() which is implemented in C. |
| For simple matrices and data frames this is several times |
| faster than before, and uses negligible memory compared to the |
| object size. |
| |
| The old version (which no longer coerces a matrix to a data |
| frame and then back to a matrix) is available for now as |
| write.table0(). |
| |
| o The functions xinch(), yinch(), and xyinch() have been moved |
| from package 'grDevices' into package 'graphics'. |
| |
| |
| o Plotmath now allows underline in expressions. (PR#7286, |
| contributed by Uwe Ligges.) |
| |
| o BATCH on Unix no longer sets --gui="none" as the X11 module |
| is only loaded if needed. |
| |
| o The X11 module (and the hence X11(), jpeg() and png() devices |
| and the X-based dataentry editor) is now in principle |
| available under all Unix GUIs except --gui="none", and this is |
| reflected in capabilities(). |
| |
| capabilities("X11") determines if an X server can be accessed, |
| and so is more likely to be accurate. |
| |
| o Printing of arrays now honours the 'right' argument if there |
| are more than two dimensions. |
| |
| o Tabular printing of numbers now has headers right-justified, as |
| they were prior to version 1.7.0 (spotted by Rob Baer). |
| |
| o Lazy-loading databases are now cached in memory at first use: |
| this enables R to run much faster from slow file systems such |
| as USB flash drives. There is a small (less than 2Mb) |
| increase in default memory usage. |
| |
| o The implicit class structure for numeric vectors has been |
| changed, so that integer/real vectors try first methods for |
| class "integer"/"double" and then those for class "numeric". |
| |
| The implicit classes for matrices and arrays have been changed |
| to be "matrix"/"array" followed by the class(es) of the |
| underlying vector. |
| |
| o splines::splineDesign() now allows the evaluation of a B-spline |
| basis everywhere instead of just inside the "inner" knots, by |
| setting the new argument `outer.ok = TRUE'. |
| |
| o Hashing has been tweaked to use half as much memory as before. |
| |
| o Readline is not used for tilde expansion when R is run with |
| --no-readline, nor from embedded applications. Then "~name" |
| is no longer expanded, but "~" still is. |
| |
| o The regular expression code is now based on that in glibc 2.3.3. |
| It has stricter conformance to POSIX, so metachars such as |
| { } + * may need to be escaped where before they did not |
| (but could have been). |
| |
| o New encoding 'TeXtext.enc' improves the way postscript() works |
| with Computer Modern fonts. |
| |
| o Replacement in a non-existent column of a data frame tries |
| harder to create a column of the correct length and so avoid a |
| corrupt data frame. |
| |
| o For Windows and readline-based history, the saved file size is |
| re-read from R_HISTSIZE immediately before saving. |
| |
| o Collected warnings during start-up are now printed before the |
| initial prompt rather than after the first command. |
| |
| o Changes to package 'grid': |
| |
| - preDrawDetails(), drawDetails(), and postDrawDetails() |
| methods are now recorded on the graphics engine |
| display list. This means that calculations within these |
| methods are now run when a device is resized or |
| when output is copied from one device to another. |
| |
| - Fixed bug in grid.text() when 'rot' argument has length 0. |
| (privately reported by Emmanuel Paradis) |
| |
| - New getNames() function to return just the names of all top-level |
| grobs on the display list. |
| |
| - Recording on the grid display list is turned off within |
| preDrawDetails(), drawDetails(), and postDrawDetails() methods. |
| |
| - Grid should recover better from errors or user-interrupts |
| during drawing (i.e., not leave you in a strange viewport |
| or with strange graphical parameter settings). |
| |
| - New function grid.refresh() to redraw the grid display list. |
| |
| - New function grid.record() to capture calculations |
| with grid graphics output. |
| |
| - grobWidth and grobHeight ("grobwidth" and "grobheight" units) |
| for primitives (text, rects, etc, ...) are now |
| calculated based on a bounding box for the relevant grob. |
| |
| NOTE: this has changed the calculation of the size of a scalar |
| rect (or circle or lines). |
| |
| - New arguments 'warn' and 'wrap' for function grid.grab() |
| |
| - New function grid.grabExpr() which captures the output from |
| an expression (i.e., not from the current scene) without |
| doing any drawing (i.e., no impact on the current scene). |
| |
| - upViewport() now (invisibly) returns the path that it goes up |
| (suggested by Ross Ihaka). |
| |
| - The 'gamma' gpar has been deprecated (this is a device property |
| not a property of graphical objects; suggested by Ross Ihaka). |
| |
| - New 'lex' gpar; a line width multiplier. |
| |
| - grid.text() now handles any language object as mathematical |
| annotation (instead of just expressions). |
| |
| - plotViewport() has default value for 'margins' argument (that match |
| the default value for par(mar)). |
| |
| - The 'extension' argument to dataViewport() can now be vector, |
| in which case the first value is used to extend the xscale and |
| the second value is used to extend the y scale. |
| (suggested by Ross Ihaka). |
| |
| - All 'just' arguments (for viewports, layouts, rectangles, text) |
| can now be numeric values (typically between 0 [left] and 1 [right]) |
| as well as character values ("left", "right", ...). |
| |
| For rectangles and text, there are additional 'hjust' and 'vjust' |
| arguments which allow numeric vectors of justification in |
| each direction (e.g., so that several pieces of text can have |
| different justifications). |
| (suggested by Ross Ihaka) |
| |
| - New 'edits' argument for grid.xaxis() and grid.yaxis() to |
| allow specification of on-the-fly edits to axis children. |
| |
| - applyEdit(x, edit) returns x if target of edit (i.e., child |
| specified by a gPath) cannot be found. |
| |
| - Fix for calculation of length of max/min/sum unit. Length is |
| now (correctly) reported as 1 (was reported as length of first arg). |
| |
| - Viewport names can now be any string (they used to have to be a |
| valid R symbol). |
| |
| - The 'label' argument for grid.xaxis() and grid.yaxis() can now |
| also be a language object or string vector, in which case it |
| specifies custom labels for the tick marks. |
| |
| |
| INTERNATIONALIZATION |
| |
| o Unix-alike versions of R can now be used in UTF-8 and other |
| multi-byte locales on suitably equipped OSes if configured |
| with option --enable-mbcs (which is the default). [The |
| changes to font handling in the X11 module are based on the |
| Japanization patches of Ei-ji Nakama.] |
| |
| Windows versions of R can be used in `East Asian' locales on |
| suitable versions of Windows. |
| |
| See the 'Internationalization' chapter in the 'Installation |
| and Administration' manual. |
| |
| o New command-line flag --encoding to specify the encoding to |
| be assumed for stdin (but not for a console). |
| |
| o New function iconv() to convert character vectors between |
| encodings, on those OSes which support this. See the new |
| capabilities("iconv"). |
| |
| o The meaning of 'encoding' for a connection has changed: it now |
| allows any charset encoding supported by iconv on the |
| platform, and can re-encode output as well as input. |
| |
| As the new specification is a character string and the old was |
| numeric, this should not cause incorrect operation. |
| |
| o New function localeToCharset() to find/guess encoding(s) from |
| the locale name. |
| |
| o nchar() returns the true number of bytes stored (including any |
| embedded nuls), this being 2 for missing values. It has an |
| optional argument 'type' with possible non-default values |
| "chars" and "width" to give the number of characters or the |
| display width in columns. |
| |
| o Characters can be entered in hexadecimal as e.g. \x9c, and in |
| UTF-8 and other multibyte locales as \uxxxx, \u{xxxx}, |
| \Uxxxxxxxx or \U{xxxxxxxx}. Non-printable Unicode characters |
| are displayed C-style as \uxxxx or \Uxxxxxxxx. |
| |
| o LC_MONETARY is set to the locale, which affects the result of |
| Sys.localeconv(), but nothing else in R itself. (It could |
| affect add-on packages.) |
| |
| o source() now has an 'encoding' argument which can be used to |
| make it try out various possible encodings. This is made use |
| of by example() which will convert (non-UTF-8) Latin-1 example |
| files in a UTF-8 locale. |
| |
| o read/writeChar() work in units of characters, not bytes. |
| |
| o .C() now accepts an ENCODING= argument where re-encoding is |
| supported by the OS. See `Writing R Extensions'. |
| |
| o delimMatch (tools) now reports match positions and lengths in |
| units of characters, not bytes. The delimiters can be |
| strings, not just single ASCII characters. |
| |
| o .Rd files can indicate via a \encoding{} argument the encoding |
| that should be assumed for non-ASCII characters they contain. |
| |
| o Phrases in .Rd files can be marked by \enc{}{} to show a |
| transliteration to ASCII for use in e.g. text help. |
| |
| o The use of 'pch' in points() now allows for multi-byte character |
| sets: in such a locale a glyph can either be specified as a |
| multi-byte single character or as a number, the Unicode point. |
| |
| o New function l10n_info() reports on aspects of the |
| locale/charset currently in use. |
| |
| o scan() is now aware of double-byte locales such as Shift-JIS |
| in which ASCII characters can occur as the second ('trail') |
| byte. |
| |
| o Functions sQuote() and dQuote() use the Unicode directional |
| quotes if in a UTF-8 locale. |
| |
| o The infrastructure is now in place for C-level error and warning |
| messages to be translated and used on systems with Native |
| Language Support. This has been used for the startup message |
| in English and to translate Americanisms such as 'color' into |
| English: translations to several other languages are under |
| way, and some are included in this release. |
| |
| See 'Writing R Extensions' for how to make use of this in a |
| package: all the standard packages have been set up to do |
| translation, and the 'language' 'en@quot' is implemented to |
| allow Unicode directional quotes in a UTF-8 locale. |
| |
| o R-level stop(), warning() and message() messages can be |
| translated, as can other messages via the new function |
| gettext(). Tools xgettext() and xgettext2pot() are provided in |
| package tools to help manage error messages. |
| |
| gettextf() is a new wrapper to call sprintf() using |
| gettext() on the format string. |
| |
| o Function ngettext() allows the management of singular and |
| plural forms of messages. |
| |
| |
| UTILITIES |
| |
| o New functions mirror2html() and checkCRAN(). |
| |
| o R CMD check has a new option '--use-valgrind'. |
| |
| o R CMD check now checks that Fortran and C++ files have LF |
| line endings, as well as C files. It also checks Makevars[.in] |
| files for portable compilation flags. |
| |
| o R CMD check will now work on a source tarball and prints out |
| information about the version of R and the package. |
| |
| o tools:::.install_package_code_files() (used to collate R files |
| when installing packages) ensures files are separated by a |
| line feed. |
| |
| o vignette() now returns an object of class "vignette" whose |
| print() method opens the corresponding PDF file. The edit() |
| method can be used to open the code of the vignette in an |
| editor. |
| |
| o R CMD INSTALL on Unix has a new option '--build' matching |
| that on Windows, to package as tarball the installed package. |
| |
| o R CMD INSTALL on Unix can now install binary bundles. |
| |
| o R CMD build now changes src files to LF line endings if necessary. |
| |
| o R CMD build now behaves consistently between source and binary |
| builds: in each case it prepares a source directory and then |
| either packages that directory as a tarball or calls R CMD |
| INSTALL --build on the prepared sources. |
| |
| This means that R CMD build --binary now respects |
| .Rbuildignore and will rebuild vignettes (unless the option |
| --no-vignettes is used). For the latter, it now installs the |
| current sources into a temporary library and uses that version |
| of the package/bundle to rebuild the vignettes. |
| |
| o R CMD build now reports empty directories in the source tree. |
| |
| o New function write_PACKAGES() in package 'tools' to help with |
| preparing local package repositories. (Based on a contribution |
| by Uwe Ligges.) How to prepare such repositories is |
| documented in the 'R Installation and Administration' manual. |
| |
| o package.skeleton() adds a bit more to DESCRIPTION. |
| |
| o Sweave changes: |
| |
| - \usepackage[nogin]{Sweave} in the header of an Sweave file |
| supresses auto-setting of the graphical parameter like width |
| of graphics. |
| |
| - The new \SweaveInput{} command works similar to LaTeX's |
| \input{} command. |
| |
| - Option value strip.white=all strips all blank lines from the |
| output of a code chunk. |
| |
| - Code chunks with eval=false are commented out by Stangle() and |
| hence no longer tested by R CMD check. |
| |
| |
| DOCUMENTATION |
| |
| o File doc/html/faq.html no longer exists, and doc/manual/R-FAQ.html |
| (which has active links to other manuals) is used instead. |
| (If makeinfo >= 4.7 is not available, the version on CRAN is |
| linked to.) |
| |
| o Manual 'Writing R Extensions' has further details on writing |
| new front-ends for R using the new public header files. |
| |
| o There are no longer any restrictions on characters in the |
| \name{} field of a .Rd file: in particular _ is supported. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o There are new public C/C++ header files Rinterface.h and |
| R_ext/RStartup.h for use with external GUIs. |
| |
| o Added an onExit() function to graphics devices, to be executed |
| upon user break if non-NULL. |
| |
| o ISNAN now works even in C++ code that undefines the 'isnan' macro. |
| |
| o R_alloc's limit on 64-bit systems has been raised from just |
| under 2^31 bytes (2Gb) to just under 2^34 (16Gb), and is now checked. |
| |
| o New math utility functions log1pmx(x), lgamma1p(x), |
| logspace_add(logx, logy), and logspace_sub(logx, logy). |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o The aqua module for MacOS X has been removed: --with-aqua now |
| refers to the unbundled Cocoa GUI. |
| |
| o Capabilities "bzip2", "GNOME", "libz" and "PCRE" are defunct. |
| |
| o The undocumented use of UseMethod() with no argument was |
| deprecated in 2.0.1 and is now regarded as an error. |
| |
| o Capability "IEEE754" is deprecated. |
| |
| o The 'CRAN' argument to update.packages(), old.packages(), |
| new.packages(), download.packages() and install.packages() is |
| deprecated in favour of 'repos', which replaces it as a |
| positional argument (so this is only relevant for calls with |
| named args). |
| |
| o The S3 methods for getting and setting names of "dist" objects |
| have been removed (as they provided names with a different |
| length from the "dist" object itself). |
| |
| o Option "repositories" is no longer used and so not set. |
| |
| o loadURL() is deprecated in favour of load(url()). |
| |
| o delay() is deprecated. Use delayedAssign() instead. |
| |
| |
| INSTALLATION CHANGES |
| |
| o New configure option --enable-mbcs to enable support for |
| UTF-8 locales, on by default. |
| |
| o R_XTRA_[CF]FLAGS are now used during the configuration tests, |
| and [CF]PICFLAGS if --enable-R-shlib was specified. This |
| ensures that features such as inlining are only used if the |
| compilation flags specified support them. (PR#7257) |
| |
| o Files FAQ, RESOURCES, doc/html/resources.html are no longer in |
| the SVN sources but are made by 'make dist'. |
| |
| o The GNOME GUI is unbundled, now provided as a package on CRAN. |
| |
| o Configuring without having the recommended packages is now an |
| error unless --with-recommended-packages=no (or equivalent) is used. |
| |
| o Configuring without having the X11 headers and libraries is now |
| an error unless --with-x=no (or equivalent) is used. |
| |
| o Configure tries harder to find a minimal set of FLIBS. Under |
| some circumstances this may remove from R_LD_LIBRARY_PATH |
| path elements that ought to have specified in LDFLAGS (but |
| were not). |
| |
| o The C code for most of the graphics device drivers and their |
| afm files are now in package grDevices. |
| |
| o R is now linked against ncurses/termlib/termcap only if |
| readline is specified (now the default) and that requires it. |
| |
| o Makeinfo 4.7 or later is now required for building the HTML and |
| Info versions of the manuals. |
| |
| |
| PACKAGE INSTALLATION CHANGES |
| |
| o There are new types of packages, identified by the Type field |
| in the DESCRIPTION file. For example the GNOME console is now |
| a separate package (on CRAN), and translations can be |
| distributed as packages. |
| |
| o There is now support of installing from within R both source and |
| binary packages on MacOS X and Windows. Most of the R |
| functions now have a 'type' argument defaulting to |
| getOption("pkgType") and with possible values "source", |
| "win.binary" and "mac.binary". The default is "source" except |
| under Windows and the CRAN GUI build for MacOS X. |
| |
| o install.packages() and friends now accept a vector of URLs for |
| 'repos' or 'contriburl' and get the newest available version of |
| a package from the first repository on the list in which it is |
| found. The argument 'CRAN' is still accepted, but deprecated. |
| |
| install.packages() on Unix can now install from local .tar.gz |
| files via repos = NULL (as has long been done on Windows). |
| |
| install.packages() no longer asks if downloaded packages |
| should be deleted: they will be deleted at the end of the |
| session anyway (and can be deleted by the user at any time). |
| |
| If the repository provides the information, install.packages() |
| will now accept the name of a package in a bundle. |
| |
| If 'pkgs' is omitted install.packages() will use a listbox to |
| display the available packages, on suitable systems. |
| |
| 'dependencies' can be a character vector to allow only some |
| levels of dependencies (e.g. not "Suggests") to be requested. |
| |
| o There is a new possible value update.packages(ask="graphics") |
| that uses a widget to (de)select packages, on suitable systems. |
| |
| o The option used is now getOption("repos") not getOption("CRAN") |
| and it is initially set to a dummy value. Its value can be a |
| character vector (preferably named) giving one or several |
| repositories. |
| |
| A new function chooseCRANmirror() will select a CRAN mirror. |
| This is called automatically if the contrib.url() encounters |
| the initial dummy value of getOption("repos") |
| |
| A new function setRepositories() can be used to create |
| getOption("repos") from a (platform-specific) list of known |
| repositories. |
| |
| o New function new.packages() to report uninstalled packages |
| available at the requested repositories. This also reports |
| incomplete bundles. It will optionally install new packages. |
| |
| o New function available.packages(), similar to CRAN.packages() |
| but for use with multiple repositories. Both now only report |
| packages whose R version requirements are met. |
| |
| o update.packages() and old.packages() have a new option |
| 'checkBuilt' to allow packages installed under earlier |
| versions of R to be updated. |
| |
| o remove.packages() can now remove bundles. |
| |
| o The Contains: field of the DESCRIPTION file of package bundles |
| is now installed, so later checks can find out if the bundle |
| is complete. |
| |
| o packageStatus() is now built on top of *.packages, and gains a |
| 'method' argument. It defaults to the same repositories as |
| the other tools, those specified by getOption("repos"). |
| |
| |
| BUG FIXES |
| |
| o Configuring for Tcl/Tk makes use of ${TK_LIB_SPEC} ${TK_LIBS} |
| not ${TK_LIB_SPEC} ${TK_XLIBSW}, which is correct for |
| recent versions of Tk, but conceivably not for old |
| tkConfig.sh files. |
| |
| o detach() was not recomputing the S4 methods for primitives |
| correctly. |
| |
| o Methods package now has class "expression" partly fixed in basic |
| classes, so S4 classes can extend these (but "expression" is |
| pretty broken as a vector class in R). |
| |
| o Collected warnings had messages with unneeded trailing space. |
| |
| o S4 methods for primitive functions must be exported from |
| name spaces; this is now done automatically. |
| Note that is.primitive() is now in "base", not "methods". |
| |
| o Package grid: |
| |
| - Fixed bug in grid.text() when "rot" argument has length 0. |
| (reported by Emmanuel Paradis) |
| |
| o .install_package_vignette_index() created an index even in an |
| empty 'doc' directory. |
| |
| o The print() method for factors now escapes characters in the |
| levels in the same way as they are printed. |
| |
| o str() removed any class from environment objects. |
| |
| str() no longer interprets control characters in character |
| strings and factor levels; also no longer truncates factor |
| levels unless they are longer than 'nchar.max'. |
| Truncation of such long strings is now indicated ''outside'' |
| the string. |
| |
| str(<S4.object>) was misleading for the case of a single slot. |
| |
| str() now also properly displays S4 class definitions (such as |
| returned by getClass(). |
| |
| o print.factor(quote=TRUE) was not quoting levels, causing |
| ambiguity when the levels contained spaces or quotes. |
| |
| o R CMD check was confused by a trailing / on a package name. |
| |
| o write.table() was writing incorrect column names if the data |
| frame contained any matrix-like columns. |
| |
| o write.table() was not quoting row names for a 0-column x. |
| |
| o t(x)'s default method now also preserves names(dimnames(x)) for |
| 1D arrays 'x'. |
| |
| o r <- a %*% b no longer produces names(dimnames(r)) == c("", "") |
| unless one of a or b has named dimnames. |
| |
| o Some .Internal functions that were supposed to return invisibly |
| did not. This was behind PR#7397 and PR#7466. |
| |
| o eval(expr, NULL, encl) now looks up variables in encl, as |
| eval(expr, list(), encl) always did |
| |
| o Coercing as.data.frame(NULL) to a pairlist caused an error. |
| |
| o p.adjust(p, ..) now correctly works when `p' contains NAs (or when |
| it is of length 0 or length 2 for method = "hommel"). |
| |
| o 'methods' initialization was calling a function intended for |
| .Call() with .C(). |
| |
| o optim() needed a check that the objective function returns a |
| value of length 1 (spotted by Ben Bolker). |
| |
| o X11() was only scaling its fonts to pointsize if the dpi |
| was within 0.5 of 100dpi. |
| |
| o X11() font selection was looking for any symbol font, and |
| sometimes got e.g. bold italic if the server has such a font. |
| |
| o dpois(*, lambda=Inf) now returns 0 (or -Inf for log). |
| |
| o Using pch="" gave a square (pch=0)! Now it is regarded as the |
| same as NA, which was also undocumented but omits the point. |
| |
| o Base graphics now notices (ab)lines which have a zero |
| coordinate on log scale, and omits them. (PR#7559) |
| |
| o stop() and warning() now accept NULL as they are documented |
| to do (although this seems of little use and is equivalent to ""). |
| |
| o weighted.mean() now checks the length of the weight vector w. |
| |
| o getAnywhere() was confused by names with leading or trailing dots |
| (spotted by Robert McGehee) |
| |
| o eval() was not handling values from return() correctly. |
| |
| o par(omd) is now of the form c(x1, x2, y1, y2) to match the |
| documentation and for S-PLUS compatibility. |
| |
| [Previously, par(omd) was of the form c(bottom, left, top, right) |
| like par(oma) and par(omi)] |
| |
| o formatC() did not check its 'flag' argument, and could |
| segfault if it was incorrect. (PR#7686) |
| |
| o Contrasts needed to be coerced to numeric (e.g. from integer) |
| inside model.matrix. (PR#7695) |
| |
| o socketSelect() did not check for buffered input. |
| |
| o Reads on a non-blocking socket with no available data were |
| not handled properly and could result in a segfault. |
| |
| o The "aovlist" method for se.contrast() failed in some very |
| simple cases that were effectively not multistratum designs, |
| e.g. only one treatment occurring in only one stratum. |
| |
| o pgamma() uses completely re-written algorithms, and should work |
| for all (even very extreme) arguments; this is based on Morten |
| Welinder's contribution related to PR#7307. |
| |
| o dpois(10, 2e-308, log=TRUE) and similar cases gave -Inf. |
| |
| o x <- 2^(0:1000); plot(x, x^.9, type="l", log="xy")# and |
| x <- 2^-(1070:170); plot(x, x^.9, type="l", log="xy")# now both work |
| |
| o summary.lm() asked for a report on a reasonable occurrence, but |
| the check failed to take account of NAs. |
| |
| o lm() was miscalculating 'df.residual' for empty models with a |
| matrix response. |
| |
| o summary.lm() now behaves more sensibly for empty models. |
| |
| o plot.window() was using the wrong sign when adjusting |
| xlim/ylim for positive 'asp' and a reversed axis. |
| |
| o If malloc() fails when allocating a large object the allocator now |
| does a gc and tries the malloc() again. |
| |
| o packageSlot() and getGroupMembers() are now exported from the |
| 'methods' package as they should from documentation and the |
| Green Book. |
| |
| o rhyper() was giving numbers slightly too small, due to a bug in the |
| original algorithm. (PR#7314) |
| |
| o gsub() was sometimes incorrectly matching ^ inside a string, |
| e.g. gsub("^12", "x", "1212") was "xx". |
| |
| o [g]sub(perl = TRUE) was giving random results for a 0-length |
| initial match. (PR#7742) |
| |
| o [g]sub was ignoring most 0-length matches, including all initial |
| ones. Note that substitutions such as gsub("[[:space:]]*", " |
| ", ...) now work as they do in 'sed' (whereas the effect was |
| previously the same as gsub("[[:space:]]+", " ", ...)). |
| (In part PR#7742) |
| |
| o Promises are now evaluated when extracted from an environment |
| using '$' or '[[ ]]'. |
| |
| o reshape(direction="wide") had some sorting problems when |
| guessing time points (PR#7669) |
| |
| o par() set 'xaxp' before 'xlog' and 'yaxp' before 'ylog', |
| causing PR#831. |
| |
| o The logic in tclRequire() to check the availability of a Tcl |
| package turned out to be fallible. It now uses a try()-and-see |
| mechanism instead. |
| |
| o Opening a unz() connection on a non-existent file left a file |
| handle in use. |
| |
| o "dist" objects of length 0 failed to print. |
| |
| o INSTALL and the libR try harder to find a temporary directory |
| (since there might be one left over with the same PID). |
| |
| o acf() could cause a segfault with some datasets. (PR#7771) |
| |
| o tan(1+LARGEi) now gives 0+1i rather than 0+NaNi (PR#7781) |
| |
| o summary(data.frame(mat = I(matrix(1:8, 4)))) does not go into |
| infinite recursion anymore. |
| |
| o writeBin() performed byte-swapping incorrectly on complex |
| vectors, also swapping real and imaginary parts. (PR#7778) |
| |
| o read.table() sometimes discarded as blank lines containing |
| only white space, even if sep=",". |
| |
| |
| |
| ************************************************** |
| * * |
| * 2.0 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 2.0.1 patched |
| |
| |
| |
| NEW FEATURES |
| |
| o warnings() now looks only in the workspace for `last.warning' |
| (suggested by PR#7363). |
| |
| o The search for browsers now starts with firefox, and has mozilla |
| ahead of netscape. |
| |
| |
| PACKAGE INSTALLATION CHANGES |
| |
| o A package DESCRIPTION file which contains a Built field (it |
| should not!) is now worked around, with loud warnings. |
| |
| |
| BUG FIXES |
| |
| o split() was accepting raw and list vectors as input, but |
| not populating the output correctly. |
| |
| split() now handles vectors with names internally and so is |
| almost as fast as on vectors without names (and maybe 100x |
| faster than before). |
| |
| o subset() now throws an error if its 'subset' argument is not |
| logical whereas it could appear to work and give wrong answers |
| with e.g. a numeric 'subset' argument. |
| |
| o sum(), max(), min(), prod(), any() and all() were incorrectly |
| using partial matching for their na.rm argument. |
| |
| o kmeans() now ensures that the initial cluster centers it chooses |
| are distinct. |
| |
| o text()'s default method could segfault if passed 0-length coordinates. |
| |
| o R CMD INSTALL (Unix) was sometimes leaving a temporary dir |
| behind. (PR#7230) |
| |
| o read.table() could fail when the row.names were looking like numbers. |
| |
| o seq(length= <n>) now always returns "integer" storage. |
| |
| o labels.lm was broken. (PR#7417) |
| |
| o The hashing used for character vectors in object.size() was |
| inefficient for vectors with thousands of identical values not |
| sharing the same storage (an unusual case). |
| |
| o data.matrix() now warns if applied to a data frame with |
| classed columns. |
| |
| o Plotting histograms where the expression used to deparse to |
| multiple lines now gives a sensible default title. (PR#7421) |
| |
| o The print method for getDLLRegisteredRoutines() was badly |
| designed, and failed for all the standard packages' DLLs. |
| |
| o getDLLRegisteredRoutines.character() was broken. |
| |
| o write.table(x, row.names=FALSE) was incorrect for a 0-column x. |
| |
| o write.table() assumed dec = "," if it was not ".". |
| |
| o morley.tab used by R-intro was not installed on Unix since 2.0.0 |
| (it was on Windows). |
| |
| o gsub(perl=TRUE) returned a string which printed with trailing |
| garbage if there was a match at the beginning whose |
| replacement was shorter. (PR#7479) |
| |
| Similarly, the result was truncated if a replacement at the |
| beginning was longer. |
| |
| o Some PDF readers do not define PDFDocEncoding, so pdf()'s |
| ISOLatin1 encoding is now derived from WinAnsi rather than |
| PDFDocEncoding. |
| |
| o xfig() had not been updated for the 2.0.0 alpha changes. |
| Using more than one plot with a non-white background and with |
| onefile=FALSE could segfault. |
| |
| o sprintf() did not check for buffer overflow on character |
| strings. (PR#7554) |
| |
| o The error message when evaluation depth was exceeded itself |
| caused an error in deparsing and so was not shown. |
| |
| o The 'datalist' file was not being used during installation |
| (2.0.1 only). |
| |
| o replications() was wrongly reporting lack of balance in |
| designs with interactions (and had since unique() gained a |
| matrix method). |
| |
| |
| |
| CHANGES IN R VERSION 2.0.1 |
| |
| |
| NEW FEATURES |
| |
| o Platform equivalence in library() is tested by a new function |
| testPlatformEquivalence() which ignores the 'vendor' field and |
| can be customized by cognescenti. |
| |
| o The assignment form of split() allows recycling of vectors |
| within the value list. In particular, things like |
| split(x, g) <- lapply(split(x, g), mean) |
| now work |
| |
| |
| DOCUMENTATION |
| |
| o Manual `Writing R Extensions' has new sections on writing |
| portable packages and on writing new front-ends for R -- the |
| latter will be more comprehensive in R 2.1.0 which has new |
| public header files. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o The aqua module in MacOS X is deprecated. |
| |
| o Capabilities "bzip2", "GNOME", "libz" and "PCRE" are deprecated. |
| |
| o The GNOME GUI on Unix-alikes is deprecated as part of R; |
| it will be available in another form as from R 2.1.0. |
| |
| o The undocumented use of UseMethod() with no argument is now |
| formally deprecated. |
| |
| |
| INSTALLATION CHANGES |
| |
| o Building on Alpha OSF/1 no longer forces the C flag -std1, |
| which appears to be no longer needed. (PR#7257) |
| |
| o The compiler flag -mieee-fp is no longer used on i386 Linux |
| (these days it is only passed to the linker and was only |
| invoked for compilation steps). |
| |
| o -D__NO_MATH_INLINES is only used on older ix86 glibc-based |
| systems which need it (tested at configure time). This leads to |
| small improvements in speed and accuracy on modern systems. |
| |
| o If makeinfo >= 4.5 is not available, warnings are given that |
| some of the HTML manuals will be missing, and the index page |
| given by help.start() will link to CRAN versions of those manuals. |
| |
| o Files aclocal.m4 and acinclude.m4 used in maintainer builds |
| are not longer included in the distribution. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o It was not clear in 'Writing R Extensions' that some of the |
| entry points in the 'Utilities' section were not declared in |
| <R.h> (they were in <R_ext/Applic.h>). Now all the entry |
| points in that section are declared in <R_ext/Utils.h>, |
| included by <R.h>. |
| |
| |
| BUG FIXES |
| |
| o The grid.grab() function in package grid would throw an error |
| if there were no viewports pushed (now returns NULL). |
| |
| o model.frame.default() takes row names from the response |
| variable if that has suitable names and there is no 'data' |
| argument. (This follows S but was not previously implemented |
| in R.) |
| |
| o write.table() was not respecting the 'dec' argument for complex |
| numbers. |
| |
| o write.table() printed a mixture of numeric and complex numbers |
| as all complex. (PR#7260) |
| |
| o R CMD INSTALL failed with versioned installs on packages which |
| save images (only). |
| |
| o dlogis() gave NaN not 0 for large negative arguments. |
| |
| o Importing from another name space was broken for versioned |
| installs, incorrectly reporting something like |
| "package 'imported_from' does not have a name space". |
| |
| o The GNOME interface under Linux/Unix was broken. (PR#7276) |
| |
| o For the jpeg/png devices under Linux/Unix, under certain rare |
| circumstances clipping needed to be cleared before starting a |
| new page. (PR#7270, which has been the case since the devices |
| were introduced in 1.1.0.) |
| |
| o First lattice plot (first grid.newpage() call) did not start |
| a new page IF there had been a previous traditional graphics |
| plot (on the same device). |
| |
| o Using install.packages() to install the same package to more |
| than one library gave an incorrect warning message. (If there |
| were two or more such packages it might give an error.) |
| |
| o .packages(all.available=TRUE) returned packages with an invalid |
| version field in their DESCRIPTION whereas .find.packages() and |
| packageDescription() did not. Now all do not. |
| |
| o packageDescription() now correctly reports that a package does |
| not exist, rather than that its DESCRIPTION file is 'missing |
| or broken'. |
| |
| o 'make dist' from builddir != sourcedir was copying not linking |
| recommended packages to *.tgz. |
| |
| o Slots in prototype objects can inherit from locally defined |
| classes (which were not being found correctly before). |
| |
| o Several fixes to the behavior of as() when there are either |
| coerce= or replace= methods supplied in a call to |
| setIs(). Related fixes to setIs() to handle correctly previous |
| methods, if there were any. |
| |
| o splinefun(1[0], 1[0])(1) doesn't segfault anymore (PR#7290). |
| spline() and splinefun() now also work with missing values by |
| omiting them. |
| |
| o ecdf() was failing on inputs containing NAs. (Part of PR#7292) |
| |
| o tools:::.install_package_description was splitting the Built: |
| field across lines on platforms with very long names. |
| |
| o capabilities() was wrong for the Aqua GUI on MacOS X. |
| |
| o Using Rprof() with a non-writable 'file' argument is now a |
| non-fatal error and does not abort R. |
| |
| o binom.test() did not deparse its arguments early enough such |
| that the reported data were ugly if x was a table. |
| |
| o Systems based on glibc, including those using R's substitute for |
| strptime, were handling strptime("2001", "%Y") incorrectly, in |
| some cases crashing. R's substitute code has been corrected |
| (but problems may remain if glibc is used). See the ?strptime |
| for what should happen (which is system-specific). |
| |
| o untrace() after trace() failed if package 'methods' was attached. |
| (PR#7301) |
| |
| o summary.stepfun() was reporting for n > 6 summaries of the |
| knots and levels as the actual values. Both print() and |
| summary() methods called the constant values "step heights", |
| although they were not the heights of the steps. |
| |
| o is.na/is.nan() were giving spurious warnings if applied to a |
| raw vector. |
| |
| o is.atomic() gave incorrect result (false) for a raw vector. |
| |
| o rank() and order() accepted raw and list inputs, but did not |
| give a sensible answer (always 1:n). Similarly, partial sorts |
| of a raw vector were accepted but did nothing. |
| |
| o require() without a version argument tried for an unversioned |
| load of a package even though a versioned install was already |
| loaded. This often led to a message that a required package |
| was being loaded when it was not actually being loaded. |
| |
| o str(<S4.object>) made use of attributes() instead of slot(), |
| and hence didn't properly print NULL slots. |
| |
| o contrib.url() now handles URLs ending in '/' correctly. |
| |
| o str() removed any class from externalptr objects. |
| |
| o logLik() and hence AIC() failed or gave incorrect answers |
| on "lm" fits with na.action = na.exclude (and perhaps other |
| na.actions's except na.omit and na.fail). |
| |
| o pmax() and pmin() sometimes used NAs in internal subassignments, |
| and sometimes these failed. |
| |
| o Subassigning an expression, e.g. expr[2] <- 1, could leave an |
| invalid object and so cause a segfault. (PR#7326) |
| |
| o download/install.packages() would misbehave if there was more |
| than one version of a package in a repository. |
| |
| o sort(partial=) silently ignored some other arguments: using |
| 'decreasing' or 'index.return' or supplying a factor are now |
| errors. |
| |
| o The ave() function had trouble if the grouping contained |
| unused levels. |
| |
| o read.fwf() got confused by skip > 0 and could infinite loop |
| under some circumstances. (PR#7350) |
| |
| o upgrade(x, ask = FALSE) was broken for a "packageStatus" object. |
| |
| o Class "raw" had been omitted from the list of basic classes in |
| the "methods" package and so could not be used in S4 classes. |
| |
| o Function getGroupMembers(), part of the definition of S4 |
| classes, had been promised for release 2.0, but slipped through. |
| |
| o toLatex(sessionInfo()) produced incorrect LaTeX on some |
| platforms due to special characters in the platform |
| identifier. |
| |
| |
| |
| CHANGES IN R VERSION 2.0.0 |
| |
| |
| USER-VISIBLE CHANGES |
| |
| o The stub packages from 1.9.x have been removed: the library() |
| function selects the new home for their code. |
| |
| o `Lazy loading' of R code has been implemented, and is used for |
| the standard and recommended packages by default. Rather than |
| keep R objects in memory, they are kept in a database on disc |
| and only loaded on first use. This accelerates startup (down |
| to 40% of the time for 1.9.x) and reduces memory usage -- the |
| latter is probably unimportant of itself, but reduces |
| commensurately the time spent in garbage collection. |
| |
| Packages are by default installed using lazy loading if they |
| have more than 25Kb of R code and did not use a saved image. |
| This can be overridden by INSTALL --[no-]lazy or via a field |
| in the DESCRIPTION file. Note that as with --save, any other |
| packages which are required must be already installed. |
| |
| As the lazy-loading databases will be consulted often, R |
| will be slower if run from a slow network-mounted disc. |
| |
| o All the datasets formerly in packages 'base' and 'stats' have |
| been moved to a new package 'datasets'. data() does the |
| appropriate substitution, with a warning. However, calls to |
| data() are not normally needed as the data objects are visible |
| in the 'datasets' package. |
| |
| Packages can be installed to make their data objects visible |
| via R CMD INSTALL --lazy-data or via a field in the |
| DESCRIPTION file. |
| |
| o Package 'graphics' has been split into 'grDevices' (the graphics |
| devices shared between base and grid graphics) and 'graphics' |
| (base graphics). Each of the 'graphics' and 'grid' packages |
| load 'grDevices' when they are attached. Note that |
| ps.options() has been moved to grDevices and user hooks may |
| need to be updated. |
| |
| o The semantics of data() have changed (and were incorrectly |
| documented in recent releases) and the function has been moved |
| to package 'utils'. Please read the help page carefully if |
| you use the 'package' or 'lib.loc' arguments. |
| |
| data() now lists datasets, and not just names which data() accepts. |
| |
| o Dataset 'phones' has been renamed to 'WorldPhones'. |
| |
| o Datasets 'sunspot.month' and 'sunspot.year' are available |
| |
| |
| ********************************************************* |
| * * |
| * News of 1.x.y is in file 'NEWS.1' * |
| * * |
| ********************************************************* |
| |
| |
| %%% Local Variables: |
| %%% mode: text |
| %%% coding: utf-8 |
| %%% End: |
| |