CHANGES | R Documentation |
R CMD Sweave
and R CMD Stangle
did not run.
The fix for https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14583PR#14583 caused inconsistent behaviour in other areas, e.g. https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14628PR#14628, extra lines appearing in image displays, and uneven bases on histograms https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14632PR#14632.
Opening large numbers of windows()
graphics devices
could cause some of them to fail to redraw (https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14668PR#14668).
R CMD build
no longer attempts to preserve file
permissions on Windows, because Windows (unlike POSIX-compliant
OSes) stops read-only files being deleted in version-control
directories.
shell.exec()
now interprets files relative to the current
working directory (rather than R_HOME).
file.info()
now accepts ‘file’ names with
trailing directory separators, even though such names are invalid
on Windows.
The windows()
family of devices now supports()
per-pixel alpha for raster images.
Launching the PDF manuals from the Rgui menus did not work on some versions of Windows.
The windows() screen device would sometimes fail to plot
(visibly) points with pch="."
. https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14583PR#14583
system()
and related functions sometimes failed
when run in ‘Rgui’.
Saving to PDF from the menu of a windows()
device
used defaults for family
, fg
and bg
from
ps.options()
rather than pdf.options()
(but
the factory-fresh defaults were the same).
Shutting down the R session cleaned up the temporary
directory before closing all graphics devices. On Windows this
necessitated changing the working directory, so some devices
(e.g. tiff()
) could write files in the wrong directory if
closed during shutdown. The order has been reversed.
Windows 2000 is no longer supported. (It went end-of-life in July 2010.)
win_iconv
has been updated: this version has a change
in the behaviour with BOMs on UTF-16 and UTF-32 files – it
removes BOMs when reading and adds them when writing. (This is
consistent with Microsoft applications, but Unix versions of
iconv
usually ignore them.)
Support for repository type win64.binary (used for 64-bit Windows binaries for R 2.11.x only) has been removed.
The installers no longer put an ‘Uninstall’ item on the start menu (to conform to current Microsoft UI guidelines).
Running R always sets the environment variable R_ARCH (as it does on a Unix-alike from the shell-script front-end).
The defaults for options("browser")
and
options("pdfviewer")
are now set from environment variables
R_BROWSER and R_PDFVIEWER respectively (as on a
Unix-alike). A value of "false"
suppresses display (even
if there is no false.exe
present on the path).
If options("install.lock")
is set to TRUE
,
binary package installs are protected against failure similar to
the way source package installs are protected.
file.exists()
and unlink()
have more support
for files > 2GB.
The versions of R.exe
in
‘R_HOME/bin/i386,x64/bin’ now support options such as
R --vanilla CMD
: there is no comparable interface for
‘Rcmd.exe’.
A few more file operations will now work with >2GB files.
The environment variable R_HOME in an R session now
uses slash as the path separator (as it always has when set by
Rcmd.exe
).
Rgui
has a new menu item for the PDF
‘Sweave User Manual’.
zip.unpack() is deprecated: use unzip()
.
There is support for libjpeg-turbo via
setting JPEGDIR
to that value in ‘MkRules.local’.
Support for jpeg-6b has been removed.
The sources now work with libpng-1.5.1, jpegsrc.v8c (which are used in the CRAN builds) and tiff-4.0.0beta6 (CRAN builds use 3.9.1). It is possible that they no longer work with older versions than libpng-1.4.5.
Workaround for the incorrect values given by Windows'
casinh
function on the branch cuts.
Bug fixes for drawing raster objects on windows()
. The
symptom was the occasional raster image not being drawn, especially
when drawing multiple raster images in a single expression.
Thanks to Michael Sumner for report and testing.
Printing extremely long string values could overflow the stack and cause the GUI to crash. (https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14543PR#14543)
Building badly-written vignettes which used the default
device (pdf(file = "Rplots.pdf")
could leave the device
open and hence the file ‘Rplots.pdf’ could not be removed on
Windows: all devices are now closed.
In some circumstances the caret (cursor) could be positioned incorrectly. (https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14460PR#14460)
When loading ‘Rconsole’ from disk, a spurious warning message was sometimes shown.
In R 2.12.1, system()
sometimes passed an empty
input stream to the new process rather than allowing user input.
The internal method for untar()
does a better job of
unravelling symbolic links in the tarball (but still with many
limitations).
The graphical dialog version of select.list()
could
cause later dialogs to fail if Windows events were not processed
between the calls.
system()
and system2()
with output redirected
to a character vector now give a warning if the command returns a
non-zero error code. (This is what a Unix-alike does as from R
2.12.0.)
system()
and system2()
no longer discard
output from the command to stdout and stderr as often as they used
to, and more cases of system2()
are implemented.
stdout
is now flushed after echoing the input line.
The internal implementation of tar()
(package
utils) is now supported on Windows.
The MSI installer is now made by an R script, and there is now support for 64-bit builds. (Unlike the Inno Setup installer, there are separate MSI installers for 32- and 64-bit Windows.)
It is now built using WiX 3.x
rather than WiX
2.0
. (As a result it is about 25% smaller.)
Some warning/error messages from dyn.load()
could be
masked in Rgui
on Windows 7, as that OS can return
messages containing carriage returns and Rgui
does not
support overwriting.
Filenames could not be specified using backslashes in
Sweave()
.
In R 2.12.0, system(intern = TRUE)
captured
‘stderr’ on Rterm
when it was documented to only do
so on Rgui
.
Rgui
in R 2.12.0 (only) did not always handle lines
containing carriage returns (\r) correctly: sometimes
random characters where shown.
Since carriage returns have been supported in Rgui
,
the cursor positioning after outputting a line containing a
carriage return had been unreliable.
A sub-architecture is used for 32-bit (i386) as well as 64-bit (x64) builds. 32-bit packages containing compiled code need to re-installed for this release (64-bit packages built for 2.11.x will most likely still work).
Architecture-specific files (such as ‘Rgui.exe’ and ‘Rscript.exe’) are now in ‘R_HOME/bin/i386’ or ‘R_HOME/bin/x64’.
Because many people expect it, there is an executable ‘R_HOME/bin/R.exe’, which accepts --arch and launches either ‘R_HOME/bin/i386/R.exe’ or ‘R_HOME/bin/x64/R.exe’, and analogously for ‘Rscript.exe’. If not specified by their argument --arch, these check the environment variable R_ARCH for the architecture to use.
The Rgui
console now has an optional blinking
caret (cursor) to assist screen readers for the visually
impaired.
normalizePath()
now signals a warning instead of an
error when the input path does not exist. It attempts partial
normalization, or if that fails, returns the original input.
All the Rcmd
sub-commands except config
and
Sd2d
are now handled internally rather by shell scripts.
Rcmd
has a new sub-command texify
to run
MiKTeX's ‘texify.exe’ with arguments to find files such as
‘Sweave.sty’. See the examples in ?Sweave
.
system(intern = FALSE)
now returns 127
(the
same as Unix-alikes) rather than -1
if the command cannot
be run, and (like Unix-alikes) no longer gives a warning.
Rscript -e
and similar use a temporary file, and
now work harder to ensure that filename is not the same as some
other simultaneous R process.
The preferred toolchain for 32-bit builds (including
packages) is now based on gcc 4.5.0
: see the ‘R
Installation and Administration Manual’.
It is now possible to build R and the standard installer without Perl: only maintainer-mode tasks now need Perl.
The 32- and 64-bit distributions have been merged:
There is a combined installer (called ‘R-<version>-win.exe’). When used under 32-bit Windows this works as before and installs 32-bit R. When used under 64-bit Windows there are options to install either or both of 32- and 64-bit R: the default is to install both.
The default package type is "win.binary"
on both 32- and
64-bit builds: a single repository contains binary packages for
both architectures. This is in place for CRAN, CRAN extras and
BioC: type = "win64.binary"
can still be used for any
repositories which follow the R 2.11.x convention. With the
default filters (see ?available.packages
) packages will
only be offered if they are available for the current
architecture.
The default personal library, e.g. ‘~/R/win-library/2.12’ is now the same for both 32- and 64-bit R.
The recommended 64-bit toolchain has been changed to one that does not add leading underscores. See http://www.murdoch-sutherland.com/Rtools/ or http://www.stats.ox.ac.uk/pub/Rtools/. Any static or import libraries for external software used in installing packages will need to be re-compiled for this toolchain, but the use of DLLs is unaffected.
For those building R from the sources, the 64-bit
Tcl
binary distribution for 2.12.x is in file
‘R64a_Tcl_8-5-8.zip’ and contains e.g. directory
‘Tcl/bin64’ and not ‘Tcl/bin’.
The deprecated environment variable RHOME is no longer
set when a package is installed: use R_HOME instead (and
depend on R (>= 2.9)
).
Package installation, including ‘configure.win’
scripts, can use ${R_HOME}/bin${R_ARCH_BIN}
as a
portable way to find the binaries such as ‘Rscript.exe’.
R.exe
when used in place of Rterm.exe
set the environment variables set by R CMD
. Conversely,
R CMD BATCH
did not.
file.rename()
now waits for the rename to complete
before returning, so that operations on the new filename will
not fail.
Sys.info()
and win.version()
now report
Windows 7 as such (and not as Vista), and Sys.info()
now
reports the machine type as "x86-64"
on 64-bit platforms.
serialize()
to a raw vector works around the dismal
performance of Windows' memory manager by allocating much larger
chunks of memory less frequently.
readClipboard()
could cause a segfault with certain
clipboard data.
A fix intended for Mac OS X was incorrectly applied to
Windows, so iconv(x, from, "")
in a C locale was
interpreted as requesting translation to UTF-8.
system(intern=TRUE)
often returned 0
rather than an error status if the command could not be found, if
run from Rterm
or from Rgui
with
show.output.on.console = FALSE
.
memory.limit()
did not allow sizes greater than
4095 on 64 bit builds. (https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14372PR#14372)
The Rgui
console, pagers and editor on the 64-bit
build now have a title bar icon.
The outer frame/console for Rgui/Rterm
mentions
'(64-bit)' to make it easier to distinguish running copies of R.
The package entries in listbox shown by the Install
package(s) ...
menu are now explicitly sorted in the current
locale (as they were in most previous releases, but not in
2.11.0).
R CMD INSTALL
can install zipfiles as binary
packages.
Errors in the ‘Rconsole’ file are ignored: silently on startup, with a warning when ‘Rconsole’ is loaded interactively.
There is now a native x64 Windows port, with a binary installer and binaries of packages available on CRAN. See the 'R Administration and Installation Manual' and the 'R for Windows FAQ'.
Rcmd cmd
(or R CMD cmd
) now runs an
arbitrary 'cmd' if 'cmd' is not one of the
builtin commands, and does not have extension '‘.sh’' or
'‘.pl’' (when it is run as a shell or Perl script
respectively). This is done by passing 'cmd' to the
command interpreter determined by the COMSPEC environment
variable (which in a vanilla Windows system points to
‘cmd.exe’).
X11()
and x11()
gain additional arguments to
be more similar to the Unix X11()
device.
file.rename()
can work across volumes (by copy-and-delete).
The main HTML help page now links to this ‘CHANGES’ file. (Suggested by Henrik Bengtsson.)
strftime(format = "%z")
now gives the timezone names
used by the Olson database and not those used by Windows.
iconv(to = "ASCII")
no longer transliterates, but
iconv(to = "ASCII//TRANSLIT")
will. This makes
tools::showNonASCII()
work the same way as on other platforms.
readRegistry()
can look at either the 32- or 64-bit view
of the Registry on 64-bit Windows.
The Tcl
timezone files (3Mb on disc) are now an
optional part of the installation: they would be very rarely used
with R.
‘RSetReg.exe’ has been updated to (un)set the version-specific keys in the same way as the main installer, and to have the optional argument /Personal to (un)set the per-user rather than the per-machine keys (which need administrative access).
When building R, the recommended way is now to supply a file ‘R_HOME/src/gnuwin32/MkRules.local’ instead of editing ‘MkRules’: there is now no ‘MkRules’ file in the distribution, but one is generated during the build process.
‘MkRules.local’ can be generated by copying and editing ‘MkRules.dist’.
The MSI installer defaults to an all-user (per machine)
install (by setting the ALLUSERS
property to 1
).
This can be changed at installation, and it can be built for a
user-mode install (see ‘MkRules.dist’).
Using ESC
to interrupt a system()
call could
cause R to become unstable.
0^1i
(which should be complex NAN
) was
incorrect.
Some of the MDI toolbar buttons (e.g. "Open Script"
)
did not return the focus to the console if the user cancelled the
action.
system()
(and hence shell()
) did not always
set the standard file handles properly, so some programs would
not run.
setWinProgressBar()
did not check the type of its
'title'
and 'label'
arguments and might have
crashed if they were mis-specified. It now does, thanks to a
report by Greg Snow.
The installer did not properly record help type choices in ‘R_HOME/etc/Rprofile.site’.
Rcmd INSTALL
once again uses
--no-restore, for consistency with the Unix version and
R 2.9.2.
The HTML package index was not constructed properly when the library path was specified with backslashes. (Patch submitted by Gabor Grothendieck.)
windows()
now has a parameter fillOddEven
(default TRUE
), which controls the mode used for polygon
fills of self-intersecting shapes.
The functions arrangeWindows()
and
getWindowsHandles()
have been added to give more
programmatic control to the appearance of windows in an R
session.
A ‘Windows’ menu has been added to the SDI version of the R GUI, and the corresponding menu in the MDI version has been expanded slightly.
The libpng
library has been updated to version 1.2.40.
The remaining Perl scripts build
, check
,
Rprof
, Sd2Rd
in ‘R_HOME/bin’ now have extension
‘.pl’.
Rcmd
(or R CMD
) can now run ‘.sh’ (shell)
and ‘.pl’ (Perl) scripts anywhere on the path (as well as
‘.bat’ and ‘.exe’ files as before).
Rcmd SHLIB
(which is used by Rcmd
INSTALL
) now calls make
without a target, rather than
target 'all'
. This is now the same as on Unix, and was
announced in the ‘NEWS’ file for 2.9.0.
Help files are no longer zipped: rendering as text, HTML, latex or examples is now done when needed.
Options --use-zip and --use-zip-help in
R CMD INSTALL
are no longer available and
--auto-zip only zips data (or not).
Help in packages installed under 2.9.x may not work correctly,
and a warning is given when such a package is attached by
library()
. Re-installation of all packages is strongly
recommended (use update.packages(checkBuilt = TRUE)
).
Binary packages are installed without CHM help if they contain it (as those intended for 2.9.x may).
It is possible to install source packages without Rtools provided they have no compiled code and no ‘configure.win’ or ‘cleanup.win’ script.
Support for memory profiling is enabled in a standard build (this can be changed by editing ‘config.h’).
CHM help is no longer supported.
The help default for the standard installer is HTML help rather than CHM help.
The categories in the installers have been simplified. Now the files to support installation of source packages are always installed (they are now only 0.7Mb), and there are no longer categories 'chtml', 'html/help', 'latex' and 'Rd'.
Rcmd open
now works as documented: previously
Rcmd open.exe
was required.
cat(x, file=)
in Rgui
tried to interpret
UTF-8-encoded strings for the console rather than converting them
to the native encoding.