summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2017-10-01 15:27:46 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2017-10-01 15:28:03 +0000
commite003f707b1e4d4ee3149739207b37b3233658a53 (patch)
tree72f5d7832bd69575d975d9a5d30802dfc5810923
parentReleasing progress-linux version 3.4.1-2~dschinn1. (diff)
downloadr-base-e003f707b1e4d4ee3149739207b37b3233658a53.zip
r-base-e003f707b1e4d4ee3149739207b37b3233658a53.tar.xz
Merging upstream version 3.4.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
-rw-r--r--SVN-REVISION4
-rw-r--r--VERSION2
-rw-r--r--VERSION-NICK2
-rwxr-xr-xconfigure38
-rw-r--r--configure.ac7
-rw-r--r--doc/COPYRIGHTS14
-rw-r--r--doc/NEWS123
-rw-r--r--doc/NEWS.Rd146
-rw-r--r--doc/NEWS.pdfbin489588 -> 497464 bytes
-rw-r--r--doc/html/NEWS.html190
-rw-r--r--doc/html/R-admin.html262
-rw-r--r--doc/manual/R-admin.texi164
-rw-r--r--doc/manual/R-exts.texi114
-rw-r--r--doc/manual/R-intro.texi2
-rw-r--r--doc/manual/R-ints.texi20
-rw-r--r--m4/openmp.m47
-rw-r--r--share/Makefile.in3
-rw-r--r--share/texmf/bibtex/bib/RJournal.bib961
-rw-r--r--src/extra/tre/tre-parse.c2
-rw-r--r--src/extra/tzone/Makefile.in14
-rw-r--r--src/gnuwin32/front-ends/Rfe.c17
l---------src/library/Recommended/Matrix.tgz2
-rw-r--r--src/library/Recommended/Matrix_1.2-10.tar.gzbin1815683 -> 0 bytes
-rw-r--r--src/library/Recommended/Matrix_1.2-11.tar.gzbin0 -> 1819315 bytes
l---------src/library/Recommended/boot.tgz2
-rw-r--r--src/library/Recommended/boot_1.3-19.tar.gzbin231523 -> 0 bytes
-rw-r--r--src/library/Recommended/boot_1.3-20.tar.gzbin0 -> 231865 bytes
l---------src/library/Recommended/mgcv.tgz2
-rw-r--r--src/library/Recommended/mgcv_1.8-17.tar.gzbin849787 -> 0 bytes
-rw-r--r--src/library/Recommended/mgcv_1.8-20.tar.gzbin0 -> 870394 bytes
-rw-r--r--src/library/base/R/eval.R24
-rw-r--r--src/library/base/R/grep.R3
-rw-r--r--src/library/base/R/qr.R75
-rw-r--r--src/library/base/R/serialize.R3
-rw-r--r--src/library/base/R/tapply.R3
-rw-r--r--src/library/base/man/connections.Rd4
-rw-r--r--src/library/base/man/files2.Rd2
-rw-r--r--src/library/base/man/locales.Rd21
-rw-r--r--src/library/base/man/rank.Rd4
-rw-r--r--src/library/base/man/strptime.Rd32
-rw-r--r--src/library/compiler/R/cmp.R15
-rw-r--r--src/library/compiler/noweb/compiler.nw36
-rw-r--r--src/library/compiler/tests/vischk.R121
-rw-r--r--src/library/grDevices/R/calc.R17
-rw-r--r--src/library/grDevices/man/nclass.Rd13
-rw-r--r--src/library/grDevices/src/devPicTeX.c40
-rw-r--r--src/library/grDevices/tests/ps-tests.Rout.save4
-rw-r--r--src/library/grDevices/tests/xfig-tests.Rout.save4
-rw-r--r--src/library/graphics/R/hist.R7
-rw-r--r--src/library/graphics/man/hist.Rd20
-rw-r--r--src/library/graphics/src/graphics.c1
-rw-r--r--src/library/grid/inst/doc/displaylist.pdfbin157161 -> 157773 bytes
-rw-r--r--src/library/grid/inst/doc/frame.pdfbin155764 -> 156380 bytes
-rw-r--r--src/library/grid/inst/doc/grid.pdfbin251574 -> 252267 bytes
-rw-r--r--src/library/grid/inst/doc/grobs.pdfbin106935 -> 107549 bytes
-rw-r--r--src/library/grid/inst/doc/interactive.pdfbin90640 -> 91249 bytes
-rw-r--r--src/library/grid/inst/doc/locndimn.pdfbin89292 -> 89901 bytes
-rw-r--r--src/library/grid/inst/doc/moveline.pdfbin87038 -> 87646 bytes
-rw-r--r--src/library/grid/inst/doc/nonfinite.pdfbin79282 -> 79887 bytes
-rw-r--r--src/library/grid/inst/doc/plotexample.pdfbin223706 -> 223798 bytes
-rw-r--r--src/library/grid/inst/doc/rotated.pdfbin121457 -> 122279 bytes
-rw-r--r--src/library/grid/inst/doc/saveload.pdfbin133662 -> 134254 bytes
-rw-r--r--src/library/grid/inst/doc/sharing.pdfbin70599 -> 71213 bytes
-rw-r--r--src/library/grid/inst/doc/viewports.pdfbin162842 -> 163455 bytes
-rw-r--r--src/library/grid/tests/testls.Rout.save4
-rw-r--r--src/library/methods/R/NextMethod.R4
-rw-r--r--src/library/methods/R/RMethodUtils.R35
-rw-r--r--src/library/parallel/inst/doc/parallel.pdfbin290758 -> 291213 bytes
-rw-r--r--src/library/parallel/tests/multicore2.Rout.save4
-rw-r--r--src/library/parallel/tests/snow2.Rout.save4
-rw-r--r--src/library/parallel/vignettes/parallel.bib2
-rw-r--r--src/library/splines/src/splines.c32
-rw-r--r--src/library/stats/R/distn.R1
-rw-r--r--src/library/stats/R/fisher.test.R25
-rw-r--r--src/library/stats/R/models.R10
-rw-r--r--src/library/stats/R/prcomp.R4
-rw-r--r--src/library/stats/R/vcov.R4
-rw-r--r--src/library/stats/man/fisher.test.Rd27
-rw-r--r--src/library/stats/man/sigma.Rd4
-rw-r--r--src/library/stats/src/fexact.c2
-rw-r--r--src/library/stats/tests/bandwidth.Rout.save4
-rw-r--r--src/library/stats/tests/glm.Rout.save4
-rw-r--r--src/library/stats/tests/ks-test.Rout.save4
-rw-r--r--src/library/stats/tests/nls.Rout.save4
-rw-r--r--src/library/stats/tests/simulate.Rout.save4
-rw-r--r--src/library/tools/R/build.R14
-rw-r--r--src/library/tools/R/check.R28
-rw-r--r--src/library/tools/R/packages.R2
-rw-r--r--src/library/tools/man/writePACKAGES.Rd5
-rw-r--r--src/library/utils/R/help.search.R9
-rw-r--r--src/library/utils/R/menu.R12
-rw-r--r--src/library/utils/inst/doc/Sweave.pdfbin321892 -> 322587 bytes
-rw-r--r--src/library/utils/src/io.c16
-rw-r--r--src/main/Rdynload.c2
-rw-r--r--src/main/array.c6
-rw-r--r--src/main/bind.c170
-rw-r--r--src/main/builtin.c29
-rw-r--r--src/main/connections.c52
-rw-r--r--src/main/context.c12
-rw-r--r--src/main/devices.c4
-rw-r--r--src/main/envir.c9
-rw-r--r--src/main/eval.c45
-rw-r--r--src/main/gevents.c6
-rw-r--r--src/main/main.c2
-rw-r--r--src/main/memory.c23
-rw-r--r--src/main/platform.c8
-rw-r--r--src/main/print.c19
-rw-r--r--src/main/printutils.c9
-rw-r--r--src/main/radixsort.c3
-rw-r--r--src/main/saveload.c4
-rw-r--r--src/main/subscript.c7
-rw-r--r--src/main/sysutils.c5
-rw-r--r--src/modules/X11/devX11.c2
-rw-r--r--src/modules/internet/Rsock.c36
-rw-r--r--src/modules/internet/nanoftp.c47
-rw-r--r--src/modules/internet/nanohttp.c48
-rw-r--r--src/modules/internet/sock.c4
-rw-r--r--src/modules/lapack/LICENSE6
-rw-r--r--src/modules/lapack/README12
-rw-r--r--src/modules/lapack/cmplx.f241
-rw-r--r--src/modules/lapack/dlapack.f636
-rw-r--r--tests/Examples/datasets-Ex.Rout.save4
-rw-r--r--tests/Examples/grDevices-Ex.Rout.save4
-rw-r--r--tests/Examples/graphics-Ex.Rout.save9
-rw-r--r--tests/Examples/grid-Ex.Rout.save4
-rw-r--r--tests/Examples/splines-Ex.Rout.save4
-rw-r--r--tests/Examples/stats-Ex.Rout.save22
-rw-r--r--tests/Examples/stats4-Ex.Rout.save4
-rw-r--r--tests/Examples/tools-Ex.Rout.save6
-rw-r--r--tests/Makefile.common3
-rw-r--r--tests/R-intro.Rout.save2
-rw-r--r--tests/any-all.Rout.save2
-rw-r--r--tests/arith-true.Rout.save4
-rw-r--r--tests/arith.Rout.save2
-rw-r--r--tests/complex.Rout.save2
-rw-r--r--tests/d-p-q-r-tests.Rout.save4
-rw-r--r--tests/datasets.Rout.save2
-rw-r--r--tests/datetime.Rout.save2
-rw-r--r--tests/datetime2.Rout.save2
-rw-r--r--tests/demos.Rout.save4
-rw-r--r--tests/eval-etc.Rout.save2
-rw-r--r--tests/iec60559.Rout.save2
-rw-r--r--tests/internet.Rout.save4
-rw-r--r--tests/isas-tests.Rout.save4
-rw-r--r--tests/lapack.Rout.save2
-rw-r--r--tests/lm-tests.Rout.save2
-rw-r--r--tests/method-dispatch.Rout.save2
-rw-r--r--tests/ok-errors.Rout.save2
-rw-r--r--tests/p-r-random-tests.Rout.save4
-rw-r--r--tests/print-tests.Rout.save2
-rw-r--r--tests/reg-IO.Rout.save2
-rw-r--r--tests/reg-IO2.Rout.save2
-rw-r--r--tests/reg-S4.R7
-rw-r--r--tests/reg-S4.Rout.save11
-rw-r--r--tests/reg-examples3.Rout.save2
-rw-r--r--tests/reg-plot-latin1.pdf.save31
-rw-r--r--tests/reg-plot.pdf.save238
-rw-r--r--tests/reg-tests-2.Rout.save14
-rw-r--r--tests/reg-tests-3.Rout.save2
-rw-r--r--tests/simple-true.Rout.save2
160 files changed, 2961 insertions, 1724 deletions
diff --git a/SVN-REVISION b/SVN-REVISION
index c00f379..96886ea 100644
--- a/SVN-REVISION
+++ b/SVN-REVISION
@@ -1,2 +1,2 @@
-Revision: 72865
-Last Changed Date: 2017-06-30
+Revision: 73368
+Last Changed Date: 2017-09-28
diff --git a/VERSION b/VERSION
index 47b322c..4d9d11c 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.4.1
+3.4.2
diff --git a/VERSION-NICK b/VERSION-NICK
index 22d5331..57cb621 100644
--- a/VERSION-NICK
+++ b/VERSION-NICK
@@ -1 +1 @@
-Single Candle
+Short Summer
diff --git a/configure b/configure
index 4ac867d..2d9f8e8 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for R 3.4.1.
+# Generated by GNU Autoconf 2.69 for R 3.4.2.
#
# Report bugs to <https://bugs.r-project.org>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='R'
PACKAGE_TARNAME='R'
-PACKAGE_VERSION='3.4.1'
-PACKAGE_STRING='R 3.4.1'
+PACKAGE_VERSION='3.4.2'
+PACKAGE_STRING='R 3.4.2'
PACKAGE_BUGREPORT='https://bugs.r-project.org'
PACKAGE_URL='https://www.r-project.org'
@@ -1702,7 +1702,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures R 3.4.1 to adapt to many kinds of systems.
+\`configure' configures R 3.4.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1777,7 +1777,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of R 3.4.1:";;
+ short | recursive ) echo "Configuration of R 3.4.2:";;
esac
cat <<\_ACEOF
@@ -2064,7 +2064,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-R configure 3.4.1
+R configure 3.4.2
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3216,7 +3216,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by R $as_me 3.4.1, which was
+It was created by R $as_me 3.4.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -5687,10 +5687,12 @@ $as_echo "no" >&6; }
fi
-if test "x${use_maintainer_mode}" = xyes; then
- if test "${NOTANGLE}" = false ; then
- as_fn_error $? "Building R in maintainer mode requires notangle." "$LINENO" 5
+if test "${NOTANGLE}" = false ; then
+ if test "x${use_maintainer_mode}" = xyes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: notangle is missing - byte-code compiler source cannot be updated!" >&5
+$as_echo "$as_me: WARNING: notangle is missing - byte-code compiler source cannot be updated!" >&2;}
fi
+ NOTANGLE=notangle
fi
## javareconf needs this
# Extract the first word of "realpath", so it can be a program name with args.
@@ -24760,7 +24762,7 @@ if ac_fn_c_try_link "$LINENO"; then :
ac_cv_prog_c_openmp='none needed'
else
ac_cv_prog_c_openmp='unsupported'
- for ac_option in -fopenmp -xopenmp -qopenmp \
+ for ac_option in -xopenmp -fopenmp -qopenmp \
-openmp -mp -omp -qsmp=omp -homp \
-fopenmp=libomp \
-Popenmp --openmp; do
@@ -25209,7 +25211,7 @@ _ACEOF
# flags.
r_save_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS $r_verb"
-(eval echo $as_me:25212: \"$ac_link\") >&5
+(eval echo $as_me:25214: \"$ac_link\") >&5
r_c_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'`
echo "$r_c_v_output" >&5
CFLAGS=$r_save_CFLAGS
@@ -25284,7 +25286,7 @@ _ACEOF
# flags.
r_save_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS $r_cv_prog_c_v"
-(eval echo $as_me:25287: \"$ac_link\") >&5
+(eval echo $as_me:25289: \"$ac_link\") >&5
r_c_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'`
echo "$r_c_v_output" >&5
CFLAGS=$r_save_CFLAGS
@@ -26265,7 +26267,7 @@ if ac_fn_f77_try_link "$LINENO"; then :
ac_cv_prog_f77_openmp='none needed'
else
ac_cv_prog_f77_openmp='unsupported'
- for ac_option in -fopenmp -xopenmp -qopenmp \
+ for ac_option in -xopenmp -fopenmp -qopenmp \
-openmp -mp -omp -qsmp=omp -homp \
-fopenmp=libomp \
-Popenmp --openmp; do
@@ -26396,7 +26398,7 @@ if ac_fn_cxx_try_link "$LINENO"; then :
ac_cv_prog_cxx_openmp='none needed'
else
ac_cv_prog_cxx_openmp='unsupported'
- for ac_option in -fopenmp -xopenmp -qopenmp \
+ for ac_option in -xopenmp -fopenmp -qopenmp \
-openmp -mp -omp -qsmp=omp -homp \
-fopenmp=libomp \
-Popenmp --openmp; do
@@ -46119,7 +46121,7 @@ if ac_fn_fc_try_link "$LINENO"; then :
ac_cv_prog_fc_openmp='none needed'
else
ac_cv_prog_fc_openmp='unsupported'
- for ac_option in -fopenmp -xopenmp -qopenmp \
+ for ac_option in -xopenmp -fopenmp -qopenmp \
-openmp -mp -omp -qsmp=omp -homp \
-fopenmp=libomp \
-Popenmp --openmp; do
@@ -51350,7 +51352,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by R $as_me 3.4.1, which was
+This file was extended by R $as_me 3.4.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -51417,7 +51419,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-R config.status 3.4.1
+R config.status 3.4.2
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 7e637ae..a73f4ea 100644
--- a/configure.ac
+++ b/configure.ac
@@ -608,10 +608,11 @@ R_PROG_BROWSER
R_PROG_PDFVIEWER
## Noweb - used for maintainer mode only
AC_PATH_PROG(NOTANGLE, notangle, false)
-if test "x${use_maintainer_mode}" = xyes; then
- if test "${NOTANGLE}" = false ; then
- AC_MSG_ERROR([Building R in maintainer mode requires notangle.])
+if test "${NOTANGLE}" = false ; then
+ if test "x${use_maintainer_mode}" = xyes; then
+ AC_MSG_WARN([notangle is missing - byte-code compiler source cannot be updated!])
fi
+ NOTANGLE=notangle
fi
## javareconf needs this
AC_PATH_PROG(REALPATH, realpath, false)
diff --git a/doc/COPYRIGHTS b/doc/COPYRIGHTS
index 81a5a40..2510dc9 100644
--- a/doc/COPYRIGHTS
+++ b/doc/COPYRIGHTS
@@ -286,26 +286,26 @@ THE SOFTWARE.
src/modules/lapack/dlapack.f, cmplx.f, dlamc.f
Extracted from
- * -- LAPACK computational routine (version 3.7.0) --
+ * -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
- * June 2016
+ * June 2017
where the version number, providers and date vary by subroutine.
- For version 3.7.0, many of the copyright dates have been updated
+ For version 3.7.0, many of the copyright dates were updated
even for routines which have not been changed for years.
- LAPACK 3.7.0 contains a LICENSE file, copied to src/modules/lapack
+ LAPACK 3.7.1 contains a LICENSE file, copied to src/modules/lapack
(but many of these routines were originally copied from earlier
versions of LAPACK). For binary distributions it is reproduced here:
--- src/modules/lapack/LICENSE ---
- Copyright (c) 1992-2016 The University of Tennessee and The University
+ Copyright (c) 1992-2017 The University of Tennessee and The University
of Tennessee Research Foundation. All rights
reserved.
- Copyright (c) 2000-2016 The University of California Berkeley. All
+ Copyright (c) 2000-2017 The University of California Berkeley. All
rights reserved.
- Copyright (c) 2006-2016 The University of Colorado Denver. All rights
+ Copyright (c) 2006-2017 The University of Colorado Denver. All rights
reserved.
$COPYRIGHT$
diff --git a/doc/NEWS b/doc/NEWS
index a289f01..829fda0 100644
--- a/doc/NEWS
+++ b/doc/NEWS
@@ -1,5 +1,128 @@
R News
+CHANGES IN R 3.4.2:
+
+ NEW FEATURES:
+
+ * Setting the LC_ALL category in Sys.setlocale() invalidates any
+ cached locale-specific day/month names and the AM/PM indicator
+ for strptime() (as setting LC_TIME has since R 3.1.0).
+
+ * The version of LAPACK included in the sources has been updated to
+ 3.7.1, a bug-fix release.
+
+ * The default for tools::write_PACKAGES(rds_compress=) has been
+ changed to "xz" to match the compression used by CRAN.
+
+ * c() and unlist() are now more efficient in constructing the
+ names(.) of their return value, thanks to a proposal by Suharto
+ Anggono. (PR#17284)
+
+ UTILITIES:
+
+ * R CMD check checks for and R CMD build corrects CRLF line endings
+ in shell scripts configure and cleanup (even on Windows).
+
+ INSTALLATION on a UNIX-ALIKE:
+
+ * The order of selection of OpenMP flags has been changed: Oracle
+ Developer Studio 12.5 accepts -fopenmp and -xopenmp but only the
+ latter enables OpenMP so it is now tried first.
+
+ BUG FIXES:
+
+ * within(List, rm(x1, x2)) works correctly again, including when
+ List[["x2"]] is NULL.
+
+ * regexec(pattern, text, *) now applies as.character(.) to its
+ first two arguments, as documented.
+
+ * write.table() and related functions, writeLines(), and perhaps
+ other functions writing text to connections did not signal errors
+ when the writes failed, e.g. due to a disk being full. Errors
+ will now be signalled if detected during the write, warnings if
+ detected when the connection is closed. (PR#17243)
+
+ * rt() assumed the ncp parameter was a scalar. (PR#17306)
+
+ * menu(choices) with more than 10 choices which easily fit into one
+ getOption("width")-line no longer erroneously repeats choices.
+ (PR#17312)
+
+ * length()<- on a pairlist succeeds. (<URL:
+ https://stat.ethz.ch/pipermail/r-devel/2017-July/074680.html>)
+
+ * Language objects such as quote(("\n")) or R functions are
+ correctly printed again, where R 3.4.1 accidentally duplicated
+ the backslashes.
+
+ * Construction of names() for very large objects in c() and
+ unlist() now works, thanks to Suharto Anggono's patch proposals
+ in PR#17292.
+
+ * Resource leaks (and similar) reported by Steve Grubb fixed.
+ (PR#17314, PR#17316, PR#17317, PR#17318, PR#17319, PR#17320)
+
+ * model.matrix(~1, mf) now gets the row names from mf also when
+ they differ from 1:nrow(mf), fixing PR#14992 thanks to the
+ suggestion by Sebastian Meyer.
+
+ * sigma(fm) now takes the correct denominator degrees of freedom
+ for a fitted model with NA coefficients. (PR#17313)
+
+ * hist(x, "FD") no longer "dies" with a somewhat cryptic error
+ message when x has extreme outliers or IQR() zero: nclass.FD(x)
+ tries harder to find a robust bin width h in the latter case, and
+ hist.default(*, breaks) now checks and corrects a too large
+ breaks number. (PR#17274)
+
+ * callNextMethod() works for ... methods.
+
+ * qr.coef(qd, y) now has correct names also when qd is a complex QR
+ or stems from qr(*, LAPACK=TRUE).
+
+ * Setting options(device = *) to an invalid function no longer
+ segfaults when plotting is initiated. (PR#15883)
+
+ * encodeString(<very large string>) no longer segfaults.
+ (PR#15885)
+
+ * It is again possible to use configure --enable-maintainer-mode
+ without having installed notangle (it was required in R
+ 3.4.[01]).
+
+ * S4 method dispatch on ... calls the method by name instead of
+ .Method (for consistency with default dispatch), and only
+ attempts to pass non-missing arguments from the generic.
+
+ * readRDS(textConnection(.)) works again. (PR#17325)
+
+ * (1:n)[-n] no longer segfaults for n <- 2.2e9 (on a platform with
+ enough RAM).
+
+ * x <- 1:2; tapply(x, list(x, x), function(x) "")[1,2] now
+ correctly returns NA. (PR#17333)
+
+ * Running of finalizers after explicit GC request moved from the R
+ interface do_gc to the C interface R_gc. This helps with
+ reclaiming inaccessible connections.
+
+ * help.search(topic) and ??topic matching topics in vignettes with
+ multiple file name extensions (e.g., *.md.rsp but not *.Rmd)
+ failed with an error when using options(help_type = "html").
+
+ * The X11 device no longer uses the Xlib backing store (PR#16497).
+
+ * array(character(), 1) now gives (a 1D array with) NA as has been
+ documented for a long time as in the other cases of zero-length
+ array initialization and also compatibly with matrix(character(),
+ *). As mentioned there, this also fixes PR#17333.
+
+ * splineDesign(.., derivs = 4) no longer segfaults.
+
+ * fisher.test(*, hybrid=TRUE) now (again) will use the hybrid
+ method when Cochran's conditions are met, fixing PR#16654.
+
CHANGES IN R 3.4.1:
INSTALLATION on a UNIX-ALIKE:
diff --git a/doc/NEWS.Rd b/doc/NEWS.Rd
index ca7cbd5..39ff97c 100644
--- a/doc/NEWS.Rd
+++ b/doc/NEWS.Rd
@@ -5,6 +5,146 @@
\title{R News}
\encoding{UTF-8}
+\section{\Rlogo CHANGES IN R 3.4.2}{
+
+ \subsection{NEW FEATURES}{
+ \itemize{
+ \item Setting the \code{LC_ALL} category in \code{Sys.setlocale()}
+ invalidates any cached locale-specific day/month names and the
+ AM/PM indicator for \code{strptime()} (as setting \code{LC_TIME}
+ has since \R 3.1.0).
+
+ \item The version of LAPACK included in the sources has been
+ updated to 3.7.1, a bug-fix release.
+
+ \item The default for \code{tools::write_PACKAGES(rds_compress=)}
+ has been changed to \code{"xz"} to match the compression used by
+ \acronym{CRAN}.
+
+ \item \code{c()} and \code{unlist()} are now more efficient in
+ constructing the \code{names(.)} of their return value, thanks to
+ a proposal by Suharto Anggono. (\PR{17284})
+ }
+ }
+
+ \subsection{UTILITIES}{
+ \itemize{
+ \item \command{R CMD check} checks for and \command{R CMD build}
+ corrects CRLF line endings in shell scripts \command{configure}
+ and \command{cleanup} (even on Windows).
+ }
+ }
+
+ \subsection{INSTALLATION on a UNIX-ALIKE}{
+ \itemize{
+ \item The order of selection of OpenMP flags has been changed:
+ Oracle Developer Studio 12.5 accepts \option{-fopenmp} and
+ \option{-xopenmp} but only the latter enables OpenMP so it is now
+ tried first.
+ }
+ }
+
+ \subsection{BUG FIXES}{
+ \itemize{
+ \item \code{within(List, rm(x1, x2))} works correctly again,
+ including when \code{List[["x2"]]} is \code{NULL}.
+
+ \item \code{regexec(pattern, text, *)} now applies
+ \code{as.character(.)} to its first two arguments, as documented.
+
+ \item \code{write.table()} and related functions,
+ \code{writeLines()}, and perhaps other functions writing text to
+ connections did not signal errors when the writes failed,
+ e.g.\sspace{}due to a disk being full. Errors will now be
+ signalled if detected during the write, warnings if detected when
+ the connection is closed. (\PR{17243})
+
+ \item \code{rt()} assumed the \code{ncp} parameter was a scalar. (\PR{17306})
+
+ \item \code{menu(choices)} with more than 10 choices which easily
+ fit into one \code{getOption("width")}-line no longer erroneously
+ repeats choices. (\PR{17312})
+
+ \item \code{length()<-} on a pairlist succeeds.
+ (\url{https://stat.ethz.ch/pipermail/r-devel/2017-July/074680.html})
+
+ \item Language objects such as \code{quote(("\n"))} or \R
+ functions are correctly printed again, where \R 3.4.1 accidentally
+ duplicated the backslashes.
+
+ \item Construction of \code{names()} for very large objects in
+ \code{c()} and \code{unlist()} now works, thanks to Suharto
+ Anggono's patch proposals in \PR{17292}.
+
+ \item Resource leaks (and similar) reported by Steve Grubb fixed.
+ (\PR{17314}, \PR{17316}, \PR{17317}, \PR{17318}, \PR{17319}, \PR{17320})
+
+ \item \code{model.matrix(~1, mf)} now gets the row names from
+ \code{mf} also when they differ from \code{1:nrow(mf)}, fixing
+ \PR{14992} thanks to the suggestion by Sebastian Meyer.
+
+ \item \code{sigma(fm)} now takes the correct denominator degrees
+ of freedom for a fitted model with \code{NA} coefficients. (\PR{17313})
+
+ \item \code{hist(x, "FD")} no longer \dQuote{dies} with a somewhat
+ cryptic error message when \code{x} has extreme outliers or
+ \code{IQR()} zero: \code{nclass.FD(x)} tries harder to find a
+ robust bin width \eqn{h} in the latter case, and
+ \code{hist.default(*, breaks)} now checks and corrects a too large
+ \code{breaks} number. (\PR{17274})
+
+ \item \code{callNextMethod()} works for \code{\dots} methods.
+
+ \item \code{qr.coef(qd, y)} now has correct names also when
+ \code{qd} is a complex QR or stems from \code{qr(*, LAPACK=TRUE)}.
+
+ \item Setting \code{options(device = *)} to an invalid function no
+ longer segfaults when plotting is initiated. (\PR{15883})
+
+ \item \code{encodeString(<very large string>)} no longer
+ segfaults. (\PR{15885})
+
+ \item It is again possible to use \command{configure
+ --enable-maintainer-mode} without having installed
+ \command{notangle} (it was required in \R 3.4.[01]).
+
+ \item S4 method dispatch on \code{\dots} calls the method by name
+ instead of \code{.Method} (for consistency with default dispatch),
+ and only attempts to pass non-missing arguments from the generic.
+
+ \item \code{readRDS(textConnection(.))} works again. (\PR{17325})
+
+ \item \code{(1:n)[-n]} no longer segfaults for \code{n <- 2.2e9}
+ (on a platform with enough RAM).
+
+ \item \code{x <- 1:2; tapply(x, list(x, x), function(x) "")[1,2]}
+ now correctly returns \code{NA}. (\PR{17333})
+
+ \item Running of finalizers after explicit GC request moved from
+ the \R interface \code{do_gc} to the \code{C} interface
+ \code{R_gc}. This helps with reclaiming inaccessible connections.
+
+ \item \code{help.search(topic)} and \code{??topic} matching topics
+ in vignettes with multiple file name extensions (e.g.,
+ \file{*.md.rsp} but not \file{*.Rmd}) failed with an error
+ when using \code{options(help_type = "html")}.
+
+ \item The X11 device no longer uses the Xlib backing store (\PR{16497}).
+
+ \item \code{array(character(), 1)} now gives (a 1D array with)
+ \code{NA} as has been documented for a long time as in the other
+ cases of zero-length array initialization and also compatibly with
+ \code{matrix(character(), *)}. As mentioned there, this also
+ fixes \PR{17333}.
+
+ \item \code{splineDesign(.., derivs = 4)} no longer segfaults.
+
+ \item \code{fisher.test(*, hybrid=TRUE)} now (again) will use the
+ hybrid method when Cochran's conditions are met, fixing \PR{16654}.
+ }
+ }
+}
+
\section{\Rlogo CHANGES IN R 3.4.1}{
\subsection{INSTALLATION on a UNIX-ALIKE}{
@@ -54,9 +194,9 @@
files, and \code{check} has some additional protection for such files.
\item \code{print.noquote(x)} now always returns its argument
- \code{x} (invisibly).
-
- \item Non-UTF-8 multibyte character sets were not handled properly
+ \code{x} (invisibly).
+
+ \item Non-UTF-8 multibyte character sets were not handled properly
in source references. (\PR{16732})
}
}
diff --git a/doc/NEWS.pdf b/doc/NEWS.pdf
index 595e2f1..f8ed685 100644
--- a/doc/NEWS.pdf
+++ b/doc/NEWS.pdf
Binary files differ
diff --git a/doc/html/NEWS.html b/doc/html/NEWS.html
index 3cce60f..39909a4 100644
--- a/doc/html/NEWS.html
+++ b/doc/html/NEWS.html
@@ -7,6 +7,196 @@
<h2>R News</h2>
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.4.2</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> Setting the <code>LC_ALL</code> category in <code>Sys.setlocale()</code>
+invalidates any cached locale-specific day/month names and the
+AM/PM indicator for <code>strptime()</code> (as setting <code>LC_TIME</code>
+has since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.1.0).
+</p>
+</li>
+<li><p> The version of LAPACK included in the sources has been
+updated to 3.7.1, a bug-fix release.
+</p>
+</li>
+<li><p> The default for <code>tools::write_PACKAGES(rds_compress=)</code>
+has been changed to <code>"xz"</code> to match the compression used by
+<acronym><span class="acronym">CRAN</span></acronym>.
+</p>
+</li>
+<li> <p><code>c()</code> and <code>unlist()</code> are now more efficient in
+constructing the <code>names(.)</code> of their return value, thanks to
+a proposal by Suharto Anggono. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17284">PR#17284</a>)
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>R CMD check</code> checks for and <code>R CMD build</code>
+corrects CRLF line endings in shell scripts <code>configure</code>
+and <code>cleanup</code> (even on Windows).
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION on a UNIX-ALIKE</h4>
+
+
+<ul>
+<li><p> The order of selection of OpenMP flags has been changed:
+Oracle Developer Studio 12.5 accepts <span class="option">-fopenmp</span> and
+<span class="option">-xopenmp</span> but only the latter enables OpenMP so it is now
+tried first.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>within(List, rm(x1, x2))</code> works correctly again,
+including when <code>List[["x2"]]</code> is <code>NULL</code>.
+</p>
+</li>
+<li> <p><code>regexec(pattern, text, *)</code> now applies
+<code>as.character(.)</code> to its first two arguments, as documented.
+</p>
+</li>
+<li> <p><code>write.table()</code> and related functions,
+<code>writeLines()</code>, and perhaps other functions writing text to
+connections did not signal errors when the writes failed,
+e.g. due to a disk being full. Errors will now be
+signalled if detected during the write, warnings if detected when
+the connection is closed. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17243">PR#17243</a>)
+</p>
+</li>
+<li> <p><code>rt()</code> assumed the <code>ncp</code> parameter was a scalar. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17306">PR#17306</a>)
+</p>
+</li>
+<li> <p><code>menu(choices)</code> with more than 10 choices which easily
+fit into one <code>getOption("width")</code>-line no longer erroneously
+repeats choices. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17312">PR#17312</a>)
+</p>
+</li>
+<li> <p><code>length()&lt;-</code> on a pairlist succeeds.
+(<a href="https://stat.ethz.ch/pipermail/r-devel/2017-July/074680.html">https://stat.ethz.ch/pipermail/r-devel/2017-July/074680.html</a>)
+</p>
+</li>
+<li><p> Language objects such as <code>quote(("\n"))</code> or <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+functions are correctly printed again, where <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.4.1 accidentally
+duplicated the backslashes.
+</p>
+</li>
+<li><p> Construction of <code>names()</code> for very large objects in
+<code>c()</code> and <code>unlist()</code> now works, thanks to Suharto
+Anggono's patch proposals in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17292">PR#17292</a>.
+</p>
+</li>
+<li><p> Resource leaks (and similar) reported by Steve Grubb fixed.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17314">PR#17314</a>, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17316">PR#17316</a>, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17317">PR#17317</a>, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17318">PR#17318</a>, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17319">PR#17319</a>, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17320">PR#17320</a>)
+</p>
+</li>
+<li> <p><code>model.matrix(~1, mf)</code> now gets the row names from
+<code>mf</code> also when they differ from <code>1:nrow(mf)</code>, fixing
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14992">PR#14992</a> thanks to the suggestion by Sebastian Meyer.
+</p>
+</li>
+<li> <p><code>sigma(fm)</code> now takes the correct denominator degrees
+of freedom for a fitted model with <code>NA</code> coefficients. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17313">PR#17313</a>)
+</p>
+</li>
+<li> <p><code>hist(x, "FD")</code> no longer &ldquo;dies&rdquo; with a somewhat
+cryptic error message when <code>x</code> has extreme outliers or
+<code>IQR()</code> zero: <code>nclass.FD(x)</code> tries harder to find a
+robust bin width <i>h</i> in the latter case, and
+<code>hist.default(*, breaks)</code> now checks and corrects a too large
+<code>breaks</code> number. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17274">PR#17274</a>)
+</p>
+</li>
+<li> <p><code>callNextMethod()</code> works for <code>...</code> methods.
+</p>
+</li>
+<li> <p><code>qr.coef(qd, y)</code> now has correct names also when
+<code>qd</code> is a complex QR or stems from <code>qr(*, LAPACK=TRUE)</code>.
+</p>
+</li>
+<li><p> Setting <code>options(device = *)</code> to an invalid function no
+longer segfaults when plotting is initiated. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15883">PR#15883</a>)
+</p>
+</li>
+<li> <p><code>encodeString(&lt;very large string&gt;)</code> no longer
+segfaults. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15885">PR#15885</a>)
+</p>
+</li>
+<li><p> It is again possible to use <code>configure
+ --enable-maintainer-mode</code> without having installed
+<code>notangle</code> (it was required in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.4.[01]).
+</p>
+</li>
+<li><p> S4 method dispatch on <code>...</code> calls the method by name
+instead of <code>.Method</code> (for consistency with default dispatch),
+and only attempts to pass non-missing arguments from the generic.
+</p>
+</li>
+<li> <p><code>readRDS(textConnection(.))</code> works again. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17325">PR#17325</a>)
+</p>
+</li>
+<li> <p><code>(1:n)[-n]</code> no longer segfaults for <code>n &lt;- 2.2e9</code>
+(on a platform with enough RAM).
+</p>
+</li>
+<li> <p><code>x &lt;- 1:2; tapply(x, list(x, x), function(x) "")[1,2]</code>
+now correctly returns <code>NA</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17333">PR#17333</a>)
+</p>
+</li>
+<li><p> Running of finalizers after explicit GC request moved from
+the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> interface <code>do_gc</code> to the <code>C</code> interface
+<code>R_gc</code>. This helps with reclaiming inaccessible connections.
+</p>
+</li>
+<li> <p><code>help.search(topic)</code> and <code>??topic</code> matching topics
+in vignettes with multiple file name extensions (e.g.,
+&lsquo;<span class="file">*.md.rsp</span>&rsquo; but not &lsquo;<span class="file">*.Rmd</span>&rsquo;) failed with an error
+when using <code>options(help_type = "html")</code>.
+</p>
+</li>
+<li><p> The X11 device no longer uses the Xlib backing store (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16497">PR#16497</a>).
+</p>
+</li>
+<li> <p><code>array(character(), 1)</code> now gives (a 1D array with)
+<code>NA</code> as has been documented for a long time as in the other
+cases of zero-length array initialization and also compatibly with
+<code>matrix(character(), *)</code>. As mentioned there, this also
+fixes <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17333">PR#17333</a>.
+</p>
+</li>
+<li> <p><code>splineDesign(.., derivs = 4)</code> no longer segfaults.
+</p>
+</li>
+<li> <p><code>fisher.test(*, hybrid=TRUE)</code> now (again) will use the
+hybrid method when Cochran's conditions are met, fixing <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16654">PR#16654</a>.
+</p>
+</li></ul>
+
+
+
+
<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.4.1</h3>
diff --git a/doc/html/R-admin.html b/doc/html/R-admin.html
index 000ebed..6cfc720 100644
--- a/doc/html/R-admin.html
+++ b/doc/html/R-admin.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
-<!-- This manual is for R, version 3.4.1 (2017-06-30).
+<!-- This manual is for R, version 3.4.2 (2017-09-28).
Copyright (C) 2001-2016 R Core Team
@@ -296,10 +296,11 @@ p {
</ul></li>
<li><a name="toc-macOS-2" href="#macOS">C.3 macOS</a>
<ul class="no-bullet">
- <li><a name="toc-Tcl_002fTk-headers-and-libraries-1" href="#Tcl_002fTk-headers-and-libraries">C.3.1 Tcl/Tk headers and libraries</a></li>
- <li><a name="toc-Java" href="#Java-_0028macOS_0029">C.3.2 Java</a></li>
- <li><a name="toc-Frameworks-1" href="#Frameworks">C.3.3 Frameworks</a></li>
- <li><a name="toc-Building-R_002eapp-1" href="#Building-R_002eapp">C.3.4 Building R.app</a></li>
+ <li><a name="toc-High-Sierra-1" href="#High-Sierra">C.3.1 High Sierra</a></li>
+ <li><a name="toc-Tcl_002fTk-headers-and-libraries-1" href="#Tcl_002fTk-headers-and-libraries">C.3.2 Tcl/Tk headers and libraries</a></li>
+ <li><a name="toc-Java" href="#Java-_0028macOS_0029">C.3.3 Java</a></li>
+ <li><a name="toc-Frameworks-1" href="#Frameworks">C.3.4 Frameworks</a></li>
+ <li><a name="toc-Building-R_002eapp-1" href="#Building-R_002eapp">C.3.5 Building R.app</a></li>
</ul></li>
<li><a name="toc-Solaris-1" href="#Solaris">C.4 Solaris</a>
<ul class="no-bullet">
@@ -333,7 +334,7 @@ p {
<p>This is a guide to installation and administration for R.
</p>
-<p>This manual is for R, version 3.4.1 (2017-06-30).
+<p>This manual is for R, version 3.4.2 (2017-09-28).
</p>
<p>Copyright &copy; 2001&ndash;2016 R Core Team
</p>
@@ -596,7 +597,7 @@ non-UTF-8 non-Western-European locales.) A failure in
for the possibilities of doing this in parallel. Note that these checks
are only run completely if the recommended packages are installed.
</p>
-<p>If the command <code>configure</code> and <code>make</code> commands execute
+<p>If the <code>configure</code> and <code>make</code> commands execute
successfully, a shell-script front-end called <samp>R</samp> will be created
and copied to <samp><var>R_HOME</var>/bin</samp>. You can link or copy this script
to a place where users can invoke it, for example to
@@ -927,13 +928,13 @@ specified on the <code>make install</code> command line (at least for
<code>libdir</code>. The C header files can be installed to the value of
<code>rincludedir</code>: note that as the headers are not installed into a
subdirectory you probably want something like
-<code>rincludedir=/usr/local/include/R-3.4.1</code>.
+<code>rincludedir=/usr/local/include/R-3.4.2</code>.
</p>
<p>If you want the R home to be something other than
<samp><var>libdir</var>/R</samp>, use <samp>rhome</samp>: for example
</p>
<div class="example">
-<pre class="example">make install rhome=/usr/local/lib64/R-3.4.1
+<pre class="example">make install rhome=/usr/local/lib64/R-3.4.2
</pre></div>
<p>will use a version-specific R home on a non-Debian Linux 64-bit
@@ -1407,7 +1408,7 @@ conversion to short name equivalents (a.k.a. DOS 8.3 names), then R
<em>must</em> be installed in a path that does not contain spaces.
</p>
<p>Installation is <em>via</em> the installer
-<samp>R-3.4.1-win.exe</samp>. Just double-click on the icon and
+<samp>R-3.4.2-win.exe</samp>. Just double-click on the icon and
follow the instructions. When installing on a 64-bit version of Windows
the options will include 32- or 64-bit versions of R (and the default is
to install both). You can uninstall R from the Control Panel.
@@ -1474,12 +1475,12 @@ will call this directory <samp><var>R_HOME</var></samp> below.
<p>You need to collect the following sets of files:
</p><ul>
-<li> Get the R source code tarball <samp>R-3.4.1.tar.gz</samp> from
+<li> Get the R source code tarball <samp>R-3.4.2.tar.gz</samp> from
<acronym>CRAN</acronym>. Open a command window (or another shell) at directory
<var>R_HOME</var>, and run
<div class="example">
-<pre class="example">tar -xf R-3.4.1.tar.gz
+<pre class="example">tar -xf R-3.4.2.tar.gz
</pre></div>
<p>to create the source tree in <var>R_HOME</var>. <strong>Beware</strong>: do use
@@ -1488,7 +1489,7 @@ If you are using an account with administrative privileges you may get a
lot of messages which can be suppressed by
</p>
<div class="example">
-<pre class="example">tar --no-same-owner -xf R-3.4.1.tar.gz
+<pre class="example">tar --no-same-owner -xf R-3.4.2.tar.gz
</pre></div>
<a name="index-TAR_005fOPTIONS-1"></a>
@@ -1803,7 +1804,7 @@ source tree) in <samp>src/gnuwin32/installer</samp> run
installation (in double quotes if it contains spaces or backslashes).
</p>
<p>Both methods create an executable with a standard name such as
-<samp>R-3.4.1-win.exe</samp>, so please rename it to indicate that
+<samp>R-3.4.2-win.exe</samp>, so please rename it to indicate that
it is customized. If you intend to <em>distribute</em> a customized
installer please do check that license requirements are met &ndash; note that
the installer will state that the contents are distributed under GPL
@@ -1862,21 +1863,21 @@ make msi
</pre></div>
<p>which will result in a file with a name like
-<samp>R-3.4.1-win32.msi</samp>. This can be double-clicked to be
+<samp>R-3.4.2-win32.msi</samp>. This can be double-clicked to be
installed, but those who need it will know what to do with it (usually
by running <code>msiexec /i</code> with additional options). Properties
that users might want to set from the <code>msiexec</code> command line
include &lsquo;<samp>ALLUSERS</samp>&rsquo;, &lsquo;<samp>INSTALLDIR</samp>&rsquo; (something like
-<samp>c:\Program Files\R\R-3.4.1</samp>) and &lsquo;<samp>RMENU</samp>&rsquo; (the path
+<samp>c:\Program Files\R\R-3.4.2</samp>) and &lsquo;<samp>RMENU</samp>&rsquo; (the path
to the &lsquo;<samp>R</samp>&rsquo; folder on the start menu) and &lsquo;<samp>STARTDIR</samp>&rsquo; (the
starting directory for R shortcuts, defaulting to something like
<samp>c:\Users\name\Documents\R</samp>).
</p>
<p>The MSI installer can be built both from a 32-bit build of R
-(<samp>R-3.4.1-win32.msi</samp>) and from a 64-bit build of R
-(<samp>R-3.4.1-win64.msi</samp>, optionally including 32-bit files
+(<samp>R-3.4.2-win32.msi</samp>) and from a 64-bit build of R
+(<samp>R-3.4.2-win64.msi</samp>, optionally including 32-bit files
by setting the macro <code>HOME32</code>, when the name is
-<samp>R-3.4.1-win.msi</samp>). Unlike the main installer, a 64-bit
+<samp>R-3.4.2-win.msi</samp>). Unlike the main installer, a 64-bit
MSI installer can only be run on 64-bit Windows.
</p>
<p>Thanks to David del Campo (Dept of Statistics, University of Oxford)
@@ -1946,9 +1947,9 @@ Windows&rsquo; CRLF line endings.
<p>(&lsquo;macOS&rsquo; was known as &lsquo;OS X&rsquo; from 2012&ndash;2016 and as &lsquo;Mac OS X&rsquo; before that.)
</p>
<p>The front page of a <acronym>CRAN</acronym> site has a link &lsquo;Download R for OS
-X&rsquo;. Click on that, then download the file <samp>R-3.4.1.pkg</samp>
+X&rsquo;. Click on that, then download the file <samp>R-3.4.2.pkg</samp>
and install it. This runs on macOS 10.11 and later (El Capitan, Sierra,
-&hellip;).
+High Sierra, &hellip;).
</p>
<p>Installers for R-patched and R-devel are usually available from
<a href="https://r.research.att.com">https://r.research.att.com</a>. (Some of these packages are
@@ -1978,7 +1979,7 @@ installer is clever enough to try to upgrade the last-installed version
of the application where you installed it (which may not be where you
want this time &hellip;).
</p>
-<p>Various parts of the build require XQuartz to be installed: : see
+<p>Various parts of the build require XQuartz to be installed: see
<a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a>. These include the <strong>tcltk</strong>
package and the <code>X11</code> device: attempting to use these without
XQuartz will remind you. Also the cairographics-based devices (which
@@ -1988,6 +1989,10 @@ are not often used on macOS) such as <code>png(type = &quot;cairo&quot;)</code>.
perhaps XQuartz): the installer may tailor the installation to the
current version of the OS.
</p>
+<p>When running under High Sierra (10.13), R may not be able to deduce
+the system timezone, in which case you will need to set the environment
+variable <code>TZ</code>: see <code>?Sys.timezone</code>.
+</p>
<p>For building R from source, see <a href="#macOS">macOS</a>.
</p>
@@ -3100,7 +3105,7 @@ prepare and install translation catalogues.
instructions. Most OSes running on such <acronym>CPU</acronym>s offer the choice
of building a 32-bit or a 64-bit version of R (and details are given
below under specific OSes). For most a 32-bit version is the default,
-but for some (e.g., &lsquo;<samp>x86_64</samp>&rsquo; Linux and macOS &gt;= 10.6)
+but for some (e.g., &lsquo;<samp>x86_64</samp>&rsquo; Linux and macOS &ge; 10.6)
64-bit is.
</p>
<p>All current versions of R use 32-bit integers (this is enforced in
@@ -3618,7 +3623,7 @@ environment variable <code>R_GSCMD</code> at that time.
<a name="Tcl_002fTk-1"></a>
<h4 class="subsection">A.2.1 Tcl/Tk</h4>
-<p>The <strong>tcltk</strong> package needs Tcl/Tk &gt;= 8.4 installed: the sources are
+<p>The <strong>tcltk</strong> package needs Tcl/Tk &ge; 8.4 installed: the sources are
available at <a href="https://www.tcl.tk/">https://www.tcl.tk/</a>. To specify the locations of the
Tcl/Tk files you may need the configuration options
</p>
@@ -4569,12 +4574,13 @@ build directory. This requires other tools to be installed, discussed
in the rest of this section.
</p>
<p>File <samp>configure</samp> is created from <samp>configure.ac</samp> and the files
-under <samp>m4</samp> by <code>autoconf</code> and <code>aclocal</code>. There is a
-formal version requirement on <code>autoconf</code> of 2.62 or later, but
-it is unlikely that anything other than the most recent versions have
-been thoroughly tested.
+under <samp>m4</samp> by <code>autoconf</code> and <code>aclocal</code> (part of the
+<strong>automake</strong> package). There is a formal version requirement on
+<code>autoconf</code> of 2.62 or later, but it is unlikely that anything
+other than the most recent versions<a name="DOCF61" href="#FOOT61"><sup>61</sup></a> have been thoroughly tested.
</p>
-<p>File <samp>src/include/config.h</samp> is created by <code>autoheader</code>.
+<p>File <samp>src/include/config.h</samp> is created by <code>autoheader</code>
+(part of <strong>autoconf</strong>).
</p>
<p>Grammar files <samp>*.y</samp> are converted to C sources by an implementation
of <code>yacc</code>, usually <code>bison -y</code>: these are found in
@@ -4587,9 +4593,9 @@ to be satisfactory.
directory. To re-create the sources from
<samp>src/library/compiler/noweb/compiler.nw</samp>, the command
<code>notangle</code> is required. Some Linux distributions include this
-command in package <strong>noweb</strong>. It can also be installed from the sources
-at <a href="https://www.cs.tufts.edu/~nr/noweb/">https://www.cs.tufts.edu/~nr/noweb/</a> (and can also be found on
-CTAN). The package sources are only re-created even in maintainer mode if
+command in package <strong>noweb</strong>. It can also be installed from the
+sources at <a href="https://www.cs.tufts.edu/~nr/noweb/">https://www.cs.tufts.edu/~nr/noweb/</a><a name="DOCF62" href="#FOOT62"><sup>62</sup></a>. The package
+sources are only re-created even in maintainer mode if
<samp>src/library/compiler/noweb/compiler.nw</samp> has been updated.
</p>
<p>It is likely that in future creating <code>configure</code> will need the GNU
@@ -4616,8 +4622,9 @@ recent reports.
</p>
<p>C macros to select particular platforms can be tricky to track down
(there is a fair amount of misinformation on the Web). The Wiki
-(currently) at <a href="http://sourceforge.net/p/predef/wiki/Home/">http://sourceforge.net/p/predef/wiki/Home/</a> can be
-helpful. The R sources currently use
+(currently) at <a href="http://sourceforge.net/p/predef/wiki/Home/">http://sourceforge.net/p/predef/wiki/Home/</a>
+can be helpful. The R sources have used (often in included software
+under <samp>src/extra</samp>)
</p><div class="example">
<pre class="example">AIX: _AIX
Cygwin: __CYGWIN__
@@ -4651,7 +4658,7 @@ selection issues, they are more amenable than the issues with
</p>
<p>When X11 was designed, most displays were around 75dpi, whereas today
they are of the order of 100dpi or more. If you find that X11()
-is reporting<a name="DOCF61" href="#FOOT61"><sup>61</sup></a> missing font sizes, especially larger ones, it is likely
+is reporting<a name="DOCF63" href="#FOOT63"><sup>63</sup></a> missing font sizes, especially larger ones, it is likely
that you are not using scalable fonts and have not installed the 100dpi
versions of the X11 fonts. The names and details differ by system, but
will likely have something like Fedora&rsquo;s
@@ -4729,7 +4736,7 @@ directory or elsewhere, for example,
<p>Linux is the main development platform for R, so compilation from the
sources is normally straightforward with the standard compilers and
-libraries.<a name="DOCF62" href="#FOOT62"><sup>62</sup></a>
+libraries.<a name="DOCF64" href="#FOOT64"><sup>64</sup></a>
</p>
<p>Remember that some package management systems (such as <acronym>RPM</acronym> and
deb) make a distinction between the user version of a package and the
@@ -4770,7 +4777,7 @@ significant performance improvements on recent CPUs (especially for
the best possible performance on the machine on which R is being
installed: if the compilation is for a site-wide installation, it may
still be desirable to use something like
-<samp>-mtume=core2</samp>.<a name="DOCF63" href="#FOOT63"><sup>63</sup></a> It is also possible to increase the
+<samp>-mtume=core2</samp>.<a name="DOCF65" href="#FOOT65"><sup>65</sup></a> It is also possible to increase the
optimization levels to <samp>-O3</samp>: however for many versions of the
compilers this has caused problems in at least one <acronym>CRAN</acronym>
package.
@@ -4853,7 +4860,7 @@ has also been tested: for some R packages only the variant using
<code>libcxxabi</code> was successful.
</p>
<p>Earlier builds of <code>clang</code> have no OpenMP support, those of
-versions 3.7.0 or later may.<a name="DOCF64" href="#FOOT64"><sup>64</sup></a>
+versions 3.7.0 or later may.<a name="DOCF66" href="#FOOT66"><sup>66</sup></a>
</p>
<hr>
<a name="Intel-compilers"></a>
@@ -4917,7 +4924,7 @@ FCFLAGS=$F77FLAGS
</p>
<p>The instructions here are for &lsquo;<samp>x86_64</samp>&rsquo; builds on 10.11 (El
Capitan) or later. R can be built for 10.9 and 10.10 and in
-principle<a name="DOCF65" href="#FOOT65"><sup>65</sup></a> for 10.6 to 10.8.
+principle<a name="DOCF67" href="#FOOT67"><sup>67</sup></a> for 10.6 to 10.8.
</p>
<p>To build R you need Apple&rsquo;s &lsquo;Command Line Tools&rsquo;: these can be
(re-)installed by <code>xcode-select --install</code>. (If you have a
@@ -4926,7 +4933,7 @@ offer the installation of the command-line tools. If you have installed
Xcode, this provides the command-line tools. The tools will need to be
reinstalled when macOS is upgraded, as upgrading partially removes them.)
</p>
-<p>You need GNU <code>readline</code><a name="DOCF66" href="#FOOT66"><sup>66</sup></a> That and other
+<p>You need GNU <code>readline</code><a name="DOCF68" href="#FOOT68"><sup>68</sup></a> That and other
binary components are available from
<a href="https://r.research.att.com/libs">https://r.research.att.com/libs</a>: you will need <code>pcre</code> and
<code>xz</code> (for <code>libzma</code>) as recent macOS versions provide libraries
@@ -4947,7 +4954,7 @@ version 8.02).
becomes the default device when running R at the console and X11
would only be used for the command-line-R data editor/viewer and one
version of Tcl/Tk. (This option needs an Objective-C
-compiler<a name="DOCF67" href="#FOOT67"><sup>67</sup></a> which can
+compiler<a name="DOCF69" href="#FOOT69"><sup>69</sup></a> which can
compile the source code of <code>quartz()</code>.)
</p>
<p>Use <samp>--without-aqua</samp> if you want a standard Unix-alike build:
@@ -4974,7 +4981,7 @@ FCFLAGS=$F77FLAGS
and the Fortran compiler from one of the packages described in the next
paragraph.
</p>
-<p>There are installers<a name="DOCF68" href="#FOOT68"><sup>68</sup></a> for Fortran compilers for El Capitan and Sierra at
+<p>There are installers<a name="DOCF70" href="#FOOT70"><sup>70</sup></a> for Fortran compilers for El Capitan and Sierra at
<a href="http://coudert.name/software/gfortran-6.1-ElCapitan.dmg">http://coudert.name/software/gfortran-6.1-ElCapitan.dmg</a> and
<a href="http://coudert.name/software/gfortran-6.3-Sierra.dmg">http://coudert.name/software/gfortran-6.3-Sierra.dmg</a>. (These
compilers are also available from a <code>CRAN</code> mirror: select &lsquo;Other&rsquo;
@@ -4987,7 +4994,7 @@ FC = $F77
FLIBS = -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0
-L/usr/local/gfortran/lib -lgfortran -lquadmath -lm
</pre></div>
-<p>or (Sierra)
+<p>or (Sierra or High Sierra)
</p><div class="example">
<pre class="example">F77 = /usr/local/gfortran/bin/gfortran
FC = $F77
@@ -4998,8 +5005,9 @@ FLIBS = -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin16/6.3.0
</p>
<p>More recent and complete distributions of <code>clang</code> are often
available from <a href="http://llvm.org/releases/">http://llvm.org/releases/</a>: for example at the time
-of writing for 4.0.0, built for Sierra. In particular, these should
-include support for OpenMP. Another build of clang 4.0.0 is available at
+of writing for 4.0.1, built for Sierra or later. In particular, these
+should include support for OpenMP. Another build of clang 4.0.0 is
+available at
<a href="https://r.research.att.com/libs/clang-4.0.0-darwin15.6-Release.tar.gz">https://r.research.att.com/libs/clang-4.0.0-darwin15.6-Release.tar.gz</a>.
Suppose one of these distributions is installed under
<samp>/usr/local/clang4</samp>. Then R could be configured by something
@@ -5054,7 +5062,7 @@ example by setting
</pre></div>
<p>to provide potentially higher-performance versions of the <acronym>BLAS</acronym>
-and LAPACK routines.<a name="DOCF69" href="#FOOT69"><sup>69</sup></a>
+and LAPACK routines.<a name="DOCF71" href="#FOOT71"><sup>71</sup></a>
</p>
<p>Looking at the top of
<samp>/Library/Frameworks/R.framework/Resources/etc/Makeconf</samp>
@@ -5075,7 +5083,7 @@ times before 1902 or after 2037 (despite using a 64-bit <code>time_t</code>).
5GB, but a smaller version (&lsquo;Basic TeX&rsquo;) is available at
<a href="https://www.tug.org/mactex/morepackages.html">https://www.tug.org/mactex/morepackages.html</a> to which you will
need to add some packages, e.g. for the 2017 version we needed to
-add<a name="DOCF70" href="#FOOT70"><sup>70</sup></a> <strong>cm-super</strong>, <strong>helvetic</strong>,
+add<a name="DOCF72" href="#FOOT72"><sup>72</sup></a> <strong>cm-super</strong>, <strong>helvetic</strong>,
<strong>inconsolata</strong> and <strong>texinfo</strong> which brought this to about 310MB.
&lsquo;<samp>TeX Live Utility</samp>&rsquo; (available <em>via</em> the MacTeX front page)
provides a graphical means to manage TeX packages.
@@ -5092,10 +5100,24 @@ some upgrades but not others).
</p>
+
+<hr>
+<a name="High-Sierra"></a>
+<a name="High-Sierra-1"></a>
+<h4 class="subsection">C.3.1 High Sierra</h4>
+
+<p>Default builds<a name="DOCF73" href="#FOOT73"><sup>73</sup></a> of R on High Sierra fail
+to detect the system time zone, as it gets reported something like
+</p><div class="example">
+<pre class="example"> unknown timezone 'default/Europe/London'
+</pre></div>
+<p>which is not a standard form. This can be circumvented by setting the
+environment variable <code>TZ</code> (in the example, to &lsquo;<samp>Europe/London</samp>&rsquo;.
+</p>
<hr>
<a name="Tcl_002fTk-headers-and-libraries"></a>
<a name="Tcl_002fTk-headers-and-libraries-1"></a>
-<h4 class="subsection">C.3.1 Tcl/Tk headers and libraries</h4>
+<h4 class="subsection">C.3.2 Tcl/Tk headers and libraries</h4>
<p>If you plan to use the <code>tcltk</code> package for R, you need to
install a distribution of Tcl/Tk. There are two alternatives. If you
@@ -5142,9 +5164,9 @@ tclvalue(.Tcl(&quot;tk windowingsystem&quot;)) # &quot;x11&quot; or &quot;aqua&
<hr>
<a name="Java-_0028macOS_0029"></a>
<a name="Java"></a>
-<h4 class="subsection">C.3.2 Java</h4>
+<h4 class="subsection">C.3.3 Java</h4>
-<p>The situation with Java support on macOS is messy.<a name="DOCF71" href="#FOOT71"><sup>71</sup></a> As from
+<p>The situation with Java support on macOS is messy.<a name="DOCF74" href="#FOOT74"><sup>74</sup></a> As from
R 3.4.0 the <acronym>CRAN</acronym> distribution of <a href="https://CRAN.R-project.org/package=rJava"><strong>rJava</strong></a> requires
Java 8 (aka 1.8).
</p>
@@ -5152,7 +5174,7 @@ Java 8 (aka 1.8).
upgrade may remove one if already installed: it is intended to be
installed at first use. Check if a JRE is installed by running
<code>java -version</code> in a <code>Terminal</code> window: if Java is not
-installed<a name="DOCF72" href="#FOOT72"><sup>72</sup></a> this should
+installed<a name="DOCF75" href="#FOOT75"><sup>75</sup></a> this should
prompt you to install it. You can also install directly the latest Java
from Oracle (currently from
<a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">http://www.oracle.com/technetwork/java/javase/downloads/index.html</a>).
@@ -5201,7 +5223,7 @@ JAVA_LIBS=&quot;-framework JavaVM&quot;
<hr>
<a name="Frameworks"></a>
<a name="Frameworks-1"></a>
-<h4 class="subsection">C.3.3 Frameworks</h4>
+<h4 class="subsection">C.3.4 Frameworks</h4>
<p>The <acronym>CRAN</acronym> build of R is installed as a framework, which is
selected by the option
@@ -5234,7 +5256,7 @@ to <code>pkg-config</code>).
<hr>
<a name="Building-R_002eapp"></a>
<a name="Building-R_002eapp-1"></a>
-<h4 class="subsection">C.3.4 Building R.app</h4>
+<h4 class="subsection">C.3.5 Building R.app</h4>
<p>Note that building the <small>R.APP</small> GUI console is a separate project, using
Xcode. Before compiling <small>R.APP</small> make sure the current version of R
@@ -5267,20 +5289,21 @@ in the <samp>/Applications</samp> folder.
<a name="index-Solaris"></a>
-<p>R has been built successfully on Solaris 10 (both Sparc and
-&lsquo;<samp>x86</samp>&rsquo;) using the (zero cost) Oracle Developer
-Studio<a name="DOCF73" href="#FOOT73"><sup>73</sup></a> compilers: there has been some success with
+<p>R has been built successfully on Solaris 10 using the (zero cost)
+Oracle Developer Studio<a name="DOCF76" href="#FOOT76"><sup>76</sup></a> compilers: there has been some success with
<code>gcc</code>/<code>gfortran</code>. (Recent Sun machines are AMD Opterons
or Intel Xeons (&lsquo;<samp>amd64</samp>&rsquo;) rather than &lsquo;<samp>x86</samp>&rsquo;, but 32-bit
&lsquo;<samp>x86</samp>&rsquo; executables are the default.) How these compilers
-identify<a name="DOCF74" href="#FOOT74"><sup>74</sup></a> themselves is slightly
-confusing: Solaris Studio versions 12.3 and 12.4 report C++ 5.12
-and 5.13, and Developer Studio 12.5 reports C++ 5.14. We will only consider
+identify<a name="DOCF77" href="#FOOT77"><sup>77</sup></a> themselves is slightly
+confusing: Solaris Studio versions 12.3 and 12.4 report C++ 5.12 and
+5.13, and Developer Studio 12.5 reports C++ 5.14. We will only consider
12.5 (May 2016): instructions for 12.3 can be found in versions of this
manual for R 3.3.x.
</p>
<p>There have been few reports on Solaris 11, with no known extra issues.
</p>
+<p>Solaris was last tested on Sparc machines in June 2017.
+</p>
<p>The Solaris versions of several of the tools needed to build R
(e.g. <code>make</code>, <code>ar</code> and <code>ld</code>) are in
<samp>/usr/ccs/bin</samp>, so if using those tools ensure this is in your
@@ -5344,7 +5367,7 @@ CXXSTD=&quot;-library=stlport4&quot;
CXXFLAGS=-O
FC=$F77
FCFLAGS=$FFLAGS
-FCLIBS=-lfsu
+FCLIBS=&quot;-lfsu /opt/developerstudio12.5/lib/libfui.so.2&quot;
R_LD_LIBRARY_PATH=&quot;/opt/developerstudio12.5/lib:/usr/local/lib:/opt/csw/lib&quot;
</pre></div>
@@ -5356,20 +5379,11 @@ use <samp>-xlibmieee</samp> to ensure this.
shared object it does not link against the Fortran runtime libraries.
In R this is only used for packages with F9x code, hence the
<code>FCLIBS</code> definition (which sufficed for <acronym>CRAN</acronym> packages
-with 12.5, but on one system needed to be
-</p><div class="example">
-<pre class="example">FCLIBS=&quot;-lfsu /opt/developerstudio12.5/lib/libfui.so.2&quot;
-</pre></div>
-<p>.)
-</p>
-<p>You can target specific Sparc architectures for (slightly) higher
-performance: <samp>-xtarget=native</samp> (in <code>CFLAGS</code> etc) tunes the
-compilation to the current machine.
+with 12.5).
</p>
<p>Using <code>-xlibmil</code> in <code>CFLAGS</code> or <code>-xlibmil</code> in
<code>FFLAGS</code> allows more system mathematical functions to be inlined.
</p>
-
<p>On &lsquo;<samp>x86</samp>&rsquo; you will get marginally higher performance <em>via</em>
</p>
<div class="example">
@@ -5408,7 +5422,7 @@ selected as LAPACK <em>via</em>
</pre></div>
<p>This has often given test failures in the past, in several different
-places.<a name="DOCF75" href="#FOOT75"><sup>75</sup></a>
+places.<a name="DOCF78" href="#FOOT78"><sup>78</sup></a>
</p>
<p>Parsing very complex R expressions needs a lot of stack space when
the Oracle compilers are used: several packages require the stack
@@ -5443,11 +5457,10 @@ and use something like <code>LDFLAGS=-L/usr/local/lib/amd64</code> or
<code>LDFLAGS=-L/usr/local/lib/sparcv9</code> as appropriate (and other 64-bit
library directories if used, e.g. <code>-L/opt/csw/lib/arm64</code>).
It will also be necessary to point <code>pkg-config</code> at the 64-bit
-directories, e.g. something like one of
+directories, e.g. by something like
</p>
<div class="example">
-<pre class="example">PKG_CONFIG_PATH=/opt/csw/lib/amd64/pkgconfig:/usr/lib/amd64/pkgconfig
-PKG_CONFIG_PATH=/opt/csw/lib/sparcv9/pkgconfig:/usr/lib/sparcv9/pkgconfig
+<pre class="example">PKG_CONFIG_PATH=/opt/csw/lib/64/pkgconfig:/usr/lib/64/pkgconfig
</pre></div>
<p>and to specify a 64-bit Java VM by e.g.
@@ -5459,13 +5472,6 @@ JAVA_LIBS=&quot;-L${JAVA_HOME}/lib/amd64/server \
-R${JAVA_HOME}/lib/amd64/server -ljvm&quot;
</pre></div>
-<p>(In most cases the <samp>64</samp> directory is a link to <samp>amd64</samp> or
-<samp>sparcv9</samp> as appropriate.)
-</p>
-<p>Using PCRE with JIT enabled on 64-bit Sparc led to segfaults.
-</p>
-
-
<hr>
<a name="Using-gcc"></a>
<a name="Using-gcc-1"></a>
@@ -5477,7 +5483,7 @@ version of Solaris in use. (This can be ascertained from <code>gcc
several reports of problems were due to using <code>gcc</code> compiled on
one version of Solaris on a later version. Note that this can even
apply to OS patches: some 2016 patches to Solaris 10 changed its C
-header files in way incompatible<a name="DOCF76" href="#FOOT76"><sup>76</sup></a> with the modified versions included with OpenCSW&rsquo;s
+header files in way incompatible<a name="DOCF79" href="#FOOT79"><sup>79</sup></a> with the modified versions included with OpenCSW&rsquo;s
binary distribution.
</p>
<p>The notes here are for <code>gcc</code> set up to use the Solaris linker:
@@ -5517,37 +5523,6 @@ and <samp>/opt/csw/lib/amd64</samp> may need to be in the
<code>LD_LIBRARY_PATH</code> during configuration.
</p>
-<p>Compilation for a 32-bit Sparc target with <code>gcc</code>&nbsp;4.9.2 or
-<code>gcc</code>&nbsp;5.2.0 needed
-</p>
-<div class="example">
-<pre class="example">CC=&quot;gcc -m32&quot;
-CPPFLAGS=&quot;-I/opt/csw/include -I/usr/local/include&quot;
-F77=&quot;gfortran -m32&quot;
-CXX=&quot;g++ -m32&quot;
-FC=$F77
-LDFLAGS=&quot;-L/opt/csw/lib -L/usr/local/lib&quot;
-</pre></div>
-
-<p>and for a 64-bit Sparc target
-</p><div class="example">
-<pre class="example">CC=&quot;gcc -m64&quot;
-CPPFLAGS=&quot;-I/opt/csw/include -I/usr/local/include&quot;
-F77=&quot;gfortran -m64&quot;
-CXX=&quot;g++ -m64&quot;
-FC=$F77
-LDFLAGS=&quot;-L/opt/csw/lib/sparcv9 -L/usr/local/lib/sparcv9&quot;
-</pre></div>
-
-<p>Note that paths such as <samp>/opt/csw/lib</samp>, <samp>/usr/local/lib/sparcv9</samp> or
-<samp>/opt/csw/lib/sparcv9</samp> may need to be in the
-<a name="index-LD_005fLIBRARY_005fPATH-5"></a>
-<code>LD_LIBRARY_PATH</code> during configuration.
-</p>
-<p>The compilation can be tuned to a particular cpu: the <acronym>CRAN</acronym>
-check Sparc system uses <code>-mcpu=niagara2</code>.
-</p>
-
<hr>
<a name="AIX"></a>
<a name="AIX-1"></a>
@@ -5805,7 +5780,7 @@ will not need to build add-on packages from source; see <a href="#Add_002don-pac
</p>
<p>We have found that the build process for R is quite sensitive to
the choice of tools: please follow our instructions <strong>exactly</strong>,
-even to the choice of particular versions of the tools.<a name="DOCF77" href="#FOOT77"><sup>77</sup></a> The build process for add-on packages is somewhat more
+even to the choice of particular versions of the tools.<a name="DOCF80" href="#FOOT80"><sup>80</sup></a> The build process for add-on packages is somewhat more
forgiving, but we recommend using the exact toolset at first, and only
substituting other tools once you are familiar with the process.
</p>
@@ -5858,7 +5833,7 @@ use filepaths containing spaces: you can always use the short forms
<p>It is essential that the directory containing the command line tools
comes first or second in the path: there are typically like-named
-tools<a name="DOCF78" href="#FOOT78"><sup>78</sup></a> in other directories, and they will <strong>not</strong>
+tools<a name="DOCF81" href="#FOOT81"><sup>81</sup></a> in other directories, and they will <strong>not</strong>
work. The ordering of the other directories is less important, but if in
doubt, use the order above.
</p>
@@ -5907,7 +5882,7 @@ install LaTeX packages on first use.
<a name="The-Inno-Setup-installer-1"></a>
<h3 class="section">D.2 The Inno Setup installer</h3>
-<p>To make the installer package (<samp>R-3.4.1-win.exe</samp>) we
+<p>To make the installer package (<samp>R-3.4.2-win.exe</samp>) we
currently require the Unicode version of Inno Setup 5.3.7 or later from
<a href="http://jrsoftware.org/">http://jrsoftware.org/</a>. This is <em>not</em> included in
<samp>Rtools*.exe</samp>.
@@ -6255,7 +6230,6 @@ be used to (de)compress files with that form of compression.
<tr><td></td><td valign="top"><a href="#index-LD_005fLIBRARY_005fPATH-2"><code>LD_LIBRARY_PATH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Using-FORTRAN">Using FORTRAN</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LD_005fLIBRARY_005fPATH-3"><code>LD_LIBRARY_PATH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Compile-and-load-flags">Compile and load flags</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LD_005fLIBRARY_005fPATH-4"><code>LD_LIBRARY_PATH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Using-gcc">Using gcc</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-LD_005fLIBRARY_005fPATH-5"><code>LD_LIBRARY_PATH</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Using-gcc">Using gcc</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LOCAL_005fSOFT"><code>LOCAL_SOFT</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Windows-packages">Windows packages</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Environment-variable-index_en_letter-O">O</a></th><td></td><td></td></tr>
@@ -6559,64 +6533,78 @@ versions 3.4.0 to 3.10.1 are compatible.</p>
<p>as well as its equivalence to the <code>Rcomplex</code>
structure defined in <samp>R_ext/Complex.h</samp>.</p>
<h3><a name="FOOT61" href="#DOCF61">(61)</a></h3>
+<p>at the time of revsion of
+this para in 2017, <strong>autoconf-2.69</strong> from 2012 and <strong>automake-1.15</strong>
+from 2015.</p>
+<h3><a name="FOOT62" href="#DOCF62">(62)</a></h3>
+<p>The links
+there have proved difficult to access, in which case either point an FTP
+client at <a href="ftp://www.eecs.harvard.edu/pub/nr/">ftp://www.eecs.harvard.edu/pub/nr/</a> or grab the copy
+made available at
+<a href="http://developer.r-project.org/noweb-2.11b.tgz">http://developer.r-project.org/noweb-2.11b.tgz</a>.</p>
+<h3><a name="FOOT63" href="#DOCF63">(63)</a></h3>
<p>for example, <code>X11 font at size 14 could not
be loaded</code>.</p>
-<h3><a name="FOOT62" href="#DOCF62">(62)</a></h3>
+<h3><a name="FOOT64" href="#DOCF64">(64)</a></h3>
<p>For example, <code>glibc</code>: other C libraries such as
<code>musl</code> have been used but are not routinely tested.</p>
-<h3><a name="FOOT63" href="#DOCF63">(63)</a></h3>
+<h3><a name="FOOT65" href="#DOCF65">(65)</a></h3>
<p>or <code>-mtune=corei7</code> for Intel Core
-i3/15/17 with <code>gcc &gt;= 4.6.0</code>.</p>
-<h3><a name="FOOT64" href="#DOCF64">(64)</a></h3>
+i3/15/17 with <code>gcc</code> &ge; 4.6.0.</p>
+<h3><a name="FOOT66" href="#DOCF66">(66)</a></h3>
<p>This also needs the OpenMP runtime
which has sometimes been distributed separately.</p>
-<h3><a name="FOOT65" href="#DOCF65">(65)</a></h3>
+<h3><a name="FOOT67" href="#DOCF67">(67)</a></h3>
<p>It will be necessary to install later versions of
software such as <code>libcurl</code>.</p>
-<h3><a name="FOOT66" href="#DOCF66">(66)</a></h3>
+<h3><a name="FOOT68" href="#DOCF68">(68)</a></h3>
<p>Apple provides a partial emulation
of GNU readline 4.2 based on the NetBSD <code>editline</code> library. That
is not recommended but for the time being R&rsquo;s installation scripts
will make use of it if GNU readline is not found.</p>
-<h3><a name="FOOT67" href="#DOCF67">(67)</a></h3>
+<h3><a name="FOOT69" href="#DOCF69">(69)</a></h3>
<p>These days that is defined by Apple&rsquo;s implementation
of <code>clang</code>, so it is strongly recommended to use that.</p>
-<h3><a name="FOOT68" href="#DOCF68">(68)</a></h3>
+<h3><a name="FOOT70" href="#DOCF70">(70)</a></h3>
<p>Some of these are unsigned packages: to
install them you may need to right-click and select <code>Open with -&gt;
Installer</code>.</p>
-<h3><a name="FOOT69" href="#DOCF69">(69)</a></h3>
+<h3><a name="FOOT71" href="#DOCF71">(71)</a></h3>
<p>It was reported that for some non-Apple
toolchains <code>CPPFLAGS</code> needed to contain <code>-D__ACCELERATE__</code>:
not needed for <code>clang</code> 4.0.0, though.</p>
-<h3><a name="FOOT70" href="#DOCF70">(70)</a></h3>
+<h3><a name="FOOT72" href="#DOCF72">(72)</a></h3>
<p>E.g. <em>via</em> <code>tlmgr install cm-super helvetic
inconsolata texinfo</code> .</p>
-<h3><a name="FOOT71" href="#DOCF71">(71)</a></h3>
+<h3><a name="FOOT73" href="#DOCF73">(73)</a></h3>
+<p>This is not the case if the non-default
+<code>configure</code> option <samp>--without-internal-tzcode</samp> was used
+&ndash; but R then does not pass its checks.</p>
+<h3><a name="FOOT74" href="#DOCF74">(74)</a></h3>
<p>For more
details see <a href="http://www.macstrategy.com/article.php?3">http://www.macstrategy.com/article.php?3</a>.</p>
-<h3><a name="FOOT72" href="#DOCF72">(72)</a></h3>
+<h3><a name="FOOT75" href="#DOCF75">(75)</a></h3>
<p>In the unlikely event that the version reported does
not start with <code>1.8.0</code> you need to update your Java.</p>
-<h3><a name="FOOT73" href="#DOCF73">(73)</a></h3>
-<p>Oracle Solaris Studio prior to 2016, and previously Sun
-Studio.</p>
-<h3><a name="FOOT74" href="#DOCF74">(74)</a></h3>
+<h3><a name="FOOT76" href="#DOCF76">(76)</a></h3>
+<p>Oracle Solaris Studio prior to 2016,
+and previously Sun Studio.</p>
+<h3><a name="FOOT77" href="#DOCF77">(77)</a></h3>
<p>using the <samp>-V</samp> flag.</p>
-<h3><a name="FOOT75" href="#DOCF75">(75)</a></h3>
+<h3><a name="FOOT78" href="#DOCF78">(78)</a></h3>
<p>When last checked it failed in <samp>tests/reg-BLAS.R</samp>,
and on some builds, including for &lsquo;<samp>amd64</samp>&rsquo;, it failed in
<code>example(eigen)</code>.</p>
-<h3><a name="FOOT76" href="#DOCF76">(76)</a></h3>
+<h3><a name="FOOT79" href="#DOCF79">(79)</a></h3>
<p>In particular, header
<samp>cmath</samp> in C++11 mode includes <samp>math.h</samp> and
<samp>iso/math_c99.h</samp> and <code>gcc</code> had &lsquo;fixed&rsquo; an earlier version
of the latter.</p>
-<h3><a name="FOOT77" href="#DOCF77">(77)</a></h3>
+<h3><a name="FOOT80" href="#DOCF80">(80)</a></h3>
<p>For
example, the Cygwin version of <code>make 3.81</code> fails to work
correctly.</p>
-<h3><a name="FOOT78" href="#DOCF78">(78)</a></h3>
+<h3><a name="FOOT81" href="#DOCF81">(81)</a></h3>
<p>such as <code>sort</code>, <code>find</code> and perhaps
<code>make</code>.</p>
</div>
diff --git a/doc/manual/R-admin.texi b/doc/manual/R-admin.texi
index 116456b..0d5cd8b 100644
--- a/doc/manual/R-admin.texi
+++ b/doc/manual/R-admin.texi
@@ -337,7 +337,7 @@ see file @file{tests/README} and @ref{Testing a Unix-alike Installation}
for the possibilities of doing this in parallel. Note that these checks
are only run completely if the recommended packages are installed.
-If the command @command{configure} and @command{make} commands execute
+If the @command{configure} and @command{make} commands execute
successfully, a shell-script front-end called @file{R} will be created
and copied to @file{@var{R_HOME}/bin}. You can link or copy this script
to a place where users can invoke it, for example to
@@ -1748,7 +1748,7 @@ Windows' CRLF line endings.
The front page of a @acronym{CRAN} site has a link `Download R for OS
X'. Click on that, then download the file @file{R-@value{VERSIONno}.pkg}
and install it. This runs on macOS 10.11 and later (El Capitan, Sierra,
-@dots{}).
+High Sierra, @dots{}).
Installers for R-patched and R-devel are usually available from
@uref{https://r.research.att.com}. (Some of these packages are
@@ -1778,7 +1778,7 @@ installer is clever enough to try to upgrade the last-installed version
of the application where you installed it (which may not be where you
want this time @dots{}).
-Various parts of the build require XQuartz to be installed: : see
+Various parts of the build require XQuartz to be installed: see
@uref{https://xquartz.macosforge.org/}. These include the @pkg{tcltk}
package and the @code{X11} device: attempting to use these without
XQuartz will remind you. Also the cairographics-based devices (which
@@ -1788,6 +1788,10 @@ If you update your macOS version, you should re-install @R{} (and
perhaps XQuartz): the installer may tailor the installation to the
current version of the OS.
+When running under High Sierra (10.13), @R{} may not be able to deduce
+the system timezone, in which case you will need to set the environment
+variable @env{TZ}: see @code{?Sys.timezone}.
+
For building @R{} from source, see @ref{macOS}.
@@ -2319,7 +2323,7 @@ appropriate version at the time of writing was
@uref{https://r.research.att.com/@/libs/@/GTK_2.24.17-X11.pkg}
The default compilers specified are shown in file
-@file{/Library/Frameworks/R.framework/Resources/etc/Makeconf}. At the
+@file{/Library/Frameworks/@/R.framework/@/Resources/etc/Makeconf}. At the
time of writing these setting assumed that the C, Fortran and C++
compilers were on the path, and @command{gfortan} 6.1.0 (see
@ref{macOS}). The settings can be changed, either by editing that file
@@ -2952,7 +2956,7 @@ Almost all current @acronym{CPU}s have both 32- and 64-bit sets of
instructions. Most OSes running on such @acronym{CPU}s offer the choice
of building a 32-bit or a 64-bit version of @R{} (and details are given
below under specific OSes). For most a 32-bit version is the default,
-but for some (e.g., @cputype{x86_64} Linux and macOS >= 10.6)
+but for some (e.g., @cputype{x86_64} Linux and macOS @geq{} 10.6)
64-bit is.
All current versions of @R{} use 32-bit integers (this is enforced in
@@ -3542,7 +3546,7 @@ environment variable @env{R_GSCMD} at that time.
@node Tcl/Tk, Java support, Useful libraries and programs, Useful libraries and programs
@subsection Tcl/Tk
-The @pkg{tcltk} package needs Tcl/Tk >= 8.4 installed: the sources are
+The @pkg{tcltk} package needs Tcl/Tk @geq{} 8.4 installed: the sources are
available at @uref{https://@/www.tcl.tk/}. To specify the locations of the
Tcl/Tk files you may need the configuration options
@@ -4482,12 +4486,15 @@ build directory. This requires other tools to be installed, discussed
in the rest of this section.
File @file{configure} is created from @file{configure.ac} and the files
-under @file{m4} by @command{autoconf} and @command{aclocal}. There is a
-formal version requirement on @command{autoconf} of 2.62 or later, but
-it is unlikely that anything other than the most recent versions have
-been thoroughly tested.
+under @file{m4} by @command{autoconf} and @command{aclocal} (part of the
+@pkg{automake} package). There is a formal version requirement on
+@command{autoconf} of 2.62 or later, but it is unlikely that anything
+other than the most recent versions@footnote{at the time of revsion of
+this para in 2017, @pkg{autoconf-2.69} from 2012 and @pkg{automake-1.15}
+from 2015.} have been thoroughly tested.
-File @file{src/include/config.h} is created by @command{autoheader}.
+File @file{src/include/config.h} is created by @command{autoheader}
+(part of @pkg{autoconf}).
Grammar files @file{*.y} are converted to C sources by an implementation
of @command{yacc}, usually @command{bison -y}: these are found in
@@ -4500,9 +4507,13 @@ The ultimate sources for package @pkg{compiler} are in its @file{noweb}
directory. To re-create the sources from
@file{src/library/compiler/noweb/compiler.nw}, the command
@command{notangle} is required. Some Linux distributions include this
-command in package @pkg{noweb}. It can also be installed from the sources
-at @url{https://www.cs.tufts.edu/~nr/noweb/} (and can also be found on
-CTAN). The package sources are only re-created even in maintainer mode if
+command in package @pkg{noweb}. It can also be installed from the
+sources at @url{https://www.cs.tufts.edu/~nr/noweb/}@footnote{The links
+there have proved difficult to access, in which case either point an FTP
+client at @uref{ftp://www.eecs.harvard.edu/pub/nr/} or grab the copy
+made available at
+@uref{http://developer.r-project.org/noweb-2.11b.tgz}.}. The package
+sources are only re-created even in maintainer mode if
@file{src/library/compiler/noweb/compiler.nw} has been updated.
It is likely that in future creating @code{configure} will need the GNU
@@ -4527,8 +4538,9 @@ recent reports.
C macros to select particular platforms can be tricky to track down
(there is a fair amount of misinformation on the Web). The Wiki
-(currently) at @uref{http://sourceforge.net/@/p/@/predef/@/wiki/@/Home/} can be
-helpful. The @R{} sources currently use
+(currently) at @uref{http://sourceforge.net/@/p/@/predef/@/wiki/@/Home/}
+can be helpful. The @R{} sources have used (often in included software
+under @file{src/extra})
@example
AIX: _AIX
Cygwin: __CYGWIN__
@@ -4692,7 +4704,7 @@ the best possible performance on the machine on which @R{} is being
installed: if the compilation is for a site-wide installation, it may
still be desirable to use something like
@option{-mtume=core2}.@footnote{or @code{-mtune=corei7} for Intel Core
-i3/15/17 with @command{gcc >= 4.6.0}.} It is also possible to increase the
+i3/15/17 with @command{gcc} @geq{} 4.6.0.} It is also possible to increase the
optimization levels to @option{-O3}: however for many versions of the
compilers this has caused problems in at least one @acronym{CRAN}
package.
@@ -4923,7 +4935,7 @@ FC = $F77
FLIBS = -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0
-L/usr/local/gfortran/lib -lgfortran -lquadmath -lm
@end example
-or (Sierra)
+or (Sierra or High Sierra)
@example
F77 = /usr/local/gfortran/bin/gfortran
FC = $F77
@@ -4935,8 +4947,9 @@ FLIBS = -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin16/6.3.0
More recent and complete distributions of @command{clang} are often
available from @uref{http://llvm.org/releases/}: for example at the time
-of writing for 4.0.0, built for Sierra. In particular, these should
-include support for OpenMP. Another build of clang 4.0.0 is available at
+of writing for 4.0.1, built for Sierra or later. In particular, these
+should include support for OpenMP. Another build of clang 4.0.0 is
+available at
@uref{https://r.research.att.com/@/libs/@/clang-4.0.0-darwin15.6-Release.tar.gz}.
Suppose one of these distributions is installed under
@file{/usr/local/clang4}. Then @R{} could be configured by something
@@ -5038,13 +5051,29 @@ some upgrades but not others).
@menu
+* High Sierra::
* Tcl/Tk headers and libraries::
* Java (macOS)::
* Frameworks::
* Building R.app::
@end menu
-@node Tcl/Tk headers and libraries, Java (macOS), macOS, macOS
+
+@node High Sierra, Tcl/Tk headers and libraries, macOS, macOS
+@subsection High Sierra
+
+Default builds@footnote{This is not the case if the non-default
+@command{configure} option @option{--without-internal-tzcode} was used
+-- but @R{} then does not pass its checks.} of @R{} on High Sierra fail
+to detect the system time zone, as it gets reported something like
+@example
+ unknown timezone 'default/Europe/London'
+@end example
+@noindent
+which is not a standard form. This can be circumvented by setting the
+environment variable @env{TZ} (in the example, to @samp{Europe/London}.
+
+@node Tcl/Tk headers and libraries, Java (macOS), High Sierra, macOS
@subsection Tcl/Tk headers and libraries
If you plan to use the @code{tcltk} package for @R{}, you need to
@@ -5221,21 +5250,22 @@ in the @file{/Applications} folder.
* Using gcc::
@end menu
-@R{} has been built successfully on Solaris 10 (both Sparc and
-@cputype{x86}) using the (zero cost) Oracle Developer
-Studio@footnote{Oracle Solaris Studio prior to 2016, and previously Sun
-Studio.} compilers: there has been some success with
+@R{} has been built successfully on Solaris 10 using the (zero cost)
+Oracle Developer Studio@footnote{Oracle Solaris Studio prior to 2016,
+and previously Sun Studio.} compilers: there has been some success with
@command{gcc}/@command{gfortran}. (Recent Sun machines are AMD Opterons
or Intel Xeons (@cputype{amd64}) rather than @cputype{x86}, but 32-bit
@cputype{x86} executables are the default.) How these compilers
identify@footnote{using the @option{-V} flag.} themselves is slightly
-confusing: Solaris Studio versions 12.3 and 12.4 report C++ 5.12
-and 5.13, and Developer Studio 12.5 reports C++ 5.14. We will only consider
+confusing: Solaris Studio versions 12.3 and 12.4 report C++ 5.12 and
+5.13, and Developer Studio 12.5 reports C++ 5.14. We will only consider
12.5 (May 2016): instructions for 12.3 can be found in versions of this
manual for @R{} 3.3.x.
There have been few reports on Solaris 11, with no known extra issues.
+Solaris was last tested on Sparc machines in June 2017.
+
The Solaris versions of several of the tools needed to build @R{}
(e.g.@: @command{make}, @command{ar} and @command{ld}) are in
@file{/usr/ccs/bin}, so if using those tools ensure this is in your
@@ -5299,7 +5329,7 @@ CXXSTD="-library=stlport4"
CXXFLAGS=-O
FC=$F77
FCFLAGS=$FFLAGS
-FCLIBS=-lfsu
+FCLIBS="-lfsu /opt/developerstudio12.5/lib/libfui.so.2"
R_LD_LIBRARY_PATH="/opt/developerstudio12.5/lib:/usr/local/lib:/opt/csw/lib"
@end example
@@ -5311,21 +5341,11 @@ A peculiarity of the Fortran compiler is that when asked to link a
shared object it does not link against the Fortran runtime libraries.
In @R{} this is only used for packages with F9x code, hence the
@code{FCLIBS} definition (which sufficed for @acronym{CRAN} packages
-with 12.5, but on one system needed to be
-@example
-FCLIBS="-lfsu /opt/developerstudio12.5/lib/libfui.so.2"
-@end example
-@noindent
-.)
-
-You can target specific Sparc architectures for (slightly) higher
-performance: @option{-xtarget=native} (in @code{CFLAGS} etc) tunes the
-compilation to the current machine.
+with 12.5).
Using @code{-xlibmil} in @code{CFLAGS} or @code{-xlibmil} in
@code{FFLAGS} allows more system mathematical functions to be inlined.
-
On @cputype{x86} you will get marginally higher performance @emph{via}
@example
@@ -5402,11 +5422,10 @@ and use something like @code{LDFLAGS=-L/usr/local/lib/amd64} or
@code{LDFLAGS=-L/usr/local/lib/sparcv9} as appropriate (and other 64-bit
library directories if used, e.g.@: @code{-L/opt/csw/lib/arm64}).
It will also be necessary to point @command{pkg-config} at the 64-bit
-directories, e.g.@: something like one of
+directories, e.g.@: by something like
@example
-PKG_CONFIG_PATH=/opt/csw/lib/amd64/pkgconfig:/usr/lib/amd64/pkgconfig
-PKG_CONFIG_PATH=/opt/csw/lib/sparcv9/pkgconfig:/usr/lib/sparcv9/pkgconfig
+PKG_CONFIG_PATH=/opt/csw/lib/64/pkgconfig:/usr/lib/64/pkgconfig
@end example
@noindent
@@ -5419,35 +5438,6 @@ JAVA_LIBS="-L$@{JAVA_HOME@}/lib/amd64/server \
-R$@{JAVA_HOME@}/lib/amd64/server -ljvm"
@end example
-@noindent
-(In most cases the @file{64} directory is a link to @file{amd64} or
-@file{sparcv9} as appropriate.)
-
-Using PCRE with JIT enabled on 64-bit Sparc led to segfaults.
-
-
-@c Builds of @cputype{amd64} and @cputype{sparcv9} did not work with
-@c Solaris Studio 12.3 and 12.4: @file{libRblas.so} and @file{lapack.so}
-@c were generated with code that causes relocation errors (code which is
-@c being linked in from the Fortran libraries). This means that building
-@c 64-bit @R{} as a shared library may be impossible. For a standard build
-@c a trick seems to be to manually set @code{FLIBS} to avoid the
-@c troublesome libraries. For example, on @cputype{amd64} set in
-@c @file{config.site} something like (for 12.3):
-@c @example
-@c FLIBS_IN_SO="-R/opt/solarisstudio12.3/lib/amd64
-@c /opt/solarisstudio12.3/lib/amd64/libfui.so
-@c /opt/solarisstudio12.3/lib/amd64/libfsu.so"
-@c @end example
-@c @noindent
-@c For 64-bit Sparc, set in @file{config.site} something like (for 12.3)
-@c @example
-@c FLIBS="-R/opt/solarisstudio12.3/prod/lib/sparc/64
-@c -lifai -lsunimath -lfai -lfai2 -lfsumai -lfprodai -lfminlai -lfmaxlai
-@c -lfminvai -lfmaxvai -lfui -lsunmath -lmtsk
-@c /opt/solarisstudio12.3/prod/lib/sparc/64/libfsu.so.1"
-@c @end example
-
@node Using gcc, , 64-bit builds, Solaris
@subsection Using gcc
@@ -5500,38 +5490,6 @@ and @file{/opt/csw/lib/amd64} may need to be in the
@env{LD_LIBRARY_PATH} during configuration.
-Compilation for a 32-bit Sparc target with @command{gcc}@tie{}4.9.2 or
-@command{gcc}@tie{}5.2.0 needed
-
-@example
-CC="gcc -m32"
-CPPFLAGS="-I/opt/csw/include -I/usr/local/include"
-F77="gfortran -m32"
-CXX="g++ -m32"
-FC=$F77
-LDFLAGS="-L/opt/csw/lib -L/usr/local/lib"
-@end example
-
-@noindent
-and for a 64-bit Sparc target
-@example
-CC="gcc -m64"
-CPPFLAGS="-I/opt/csw/include -I/usr/local/include"
-F77="gfortran -m64"
-CXX="g++ -m64"
-FC=$F77
-LDFLAGS="-L/opt/csw/lib/sparcv9 -L/usr/local/lib/sparcv9"
-@end example
-
-Note that paths such as @file{/opt/csw/lib}, @file{/usr/local/lib/sparcv9} or
-@file{/opt/csw/lib/sparcv9} may need to be in the
-@enindex LD_LIBRARY_PATH
-@env{LD_LIBRARY_PATH} during configuration.
-
-The compilation can be tuned to a particular cpu: the @acronym{CRAN}
-check Sparc system uses @code{-mcpu=niagara2}.
-
-
@node AIX, FreeBSD, Solaris, Platform notes
@section AIX
@cindex AIX
diff --git a/doc/manual/R-exts.texi b/doc/manual/R-exts.texi
index 050d764..2cdeb68 100644
--- a/doc/manual/R-exts.texi
+++ b/doc/manual/R-exts.texi
@@ -996,8 +996,10 @@ installed on any platform).
Note that someone wanting to run the examples/tests/vignettes may not
have a suggested package available (and it may not even be possible to
install it for that platform). The recommendation used to be to make
-their use conditional @emph{via} @code{if(require("@var{pkgname}"))}):
-this is fine if that conditioning is done in examples/tests/vignettes.
+their use conditional @emph{via} @code{if(require("@var{pkgname}"))}:
+this is OK if that conditioning is done in examples/tests/vignettes,
+although using @code{if(requireNamespace("@var{pkgname}"))} is
+preferred, if possible.
However, using @code{require} for conditioning @emph{in package code} is
not good practice as it alters the search path for the rest of the
@@ -1024,6 +1026,11 @@ notorious example was @CRANpkg{testthat} which in version 1.0.0 contained
illegal C++ code and hence could not be installed on standards-compliant
platforms.
+Some people have assumed that a `recommended' package in @samp{Suggests}
+can safely be used unconditionally, but this is not so. (@R{} can be
+installed without recommended packages, and which packages are
+`recommended' may change.)
+
As noted above, packages in @samp{Enhances} @emph{must} be used
conditionally and hence objects within them should always be accessed
@emph{via} @code{::}.
@@ -4548,8 +4555,22 @@ using @code{Sys.which}), as well as declared in the
@item
Be sure to use portable encoding names: none of @code{utf8}, @code{mac}
and @code{macroman} are. See the help for @code{file} for more details.
+
+
+@item
+Do not invoke @R{} by plain @command{R}, @command{Rscript} or (on
+Windows) @command{Rterm} in your examples, tests, vignettes, makefiles
+or other scripts. As pointed out in several places earlier in this
+manual, use something like
+@example
+"$(R_HOME)/bin/Rscript"
+"$(R_HOME)/bin$(R_ARCH_BIN)/Rterm"
+@end example
+with appropriate quotes (as, although not recommended, @env{R_HOME} can
+contain spaces).
@end itemize
+
Do be careful in what your tests (and examples) actually test. Bad
practice seen in distributed packages include:
@@ -8289,12 +8310,11 @@ threaded programs.
@command{AddressSanitizer} (`ASan') is a tool with similar aims to the
memory checker in @command{valgrind}. It is available with suitable
-builds@footnote{currently only on @cputype{ix86}/@cputype{x86_64} Linux
-and macOS (including the builds in Xcode 7 but not earlier Apple
-releases). On some platforms the runtime library, @pkg{libasan}, needs
-to be installed separately, and for checking C++ you may also need
-@pkg{libubsan}.} of @command{gcc} and @command{clang} on common Linux
-and macOS platforms. See
+builds@footnote{currently on Linux and macOS (including the builds from
+Xcode 7 and later), with some support for Solaris. On some platforms
+the runtime library, @pkg{libasan}, needs to be installed separately,
+and for checking C++ you may also need @pkg{libubsan}.} of @command{gcc}
+and @command{clang} on common Linux and macOS platforms. See
@uref{http://clang.llvm.org/@/docs/@/UsersManual.html#controlling-code-generation},
@uref{http://clang.llvm.org/@/docs/@/AddressSanitizer.html} and
@uref{https://code.google.com/@/p/@/address-sanitizer/}.
@@ -8372,9 +8392,9 @@ specified as part of @samp{CC} when @R{} was built.
For options available @emph{via} the environment variable
@env{ASAN_OPTIONS} see
-@uref{https://code.google.com/@/p/@/address-sanitizer/@/wiki/@/Flags#Run-time_flags}.
+@uref{https://code.google.com/@/p/@/address-sanitizer/@/wiki/@/AddressSanitizerFLags}.
With @command{gcc} additional control is available @emph{via} the
-@option{--params} flag: see its @command{man} page.
+@option{--param} flag: see its @command{man} page.
For more detailed information on an error, @R{} can be run under a
debugger with a breakpoint set before the address sanitizer report is
@@ -8389,7 +8409,7 @@ break __asan_report_error
Recent versions@footnote{including @command{gcc} 7.1 and @command{clang}
4.0.0: for @command{gcc} it is implied by @option{-fsanitize=address}.}
added the flag @option{-fsanitize-address-use-after-scope}: see
-@uref{https://github.com//google//sanitizers//wiki//AddressSanitizerUseAfterScope}.
+@uref{https://github.com/@/google/@/sanitizers/@/wiki/@/AddressSanitizerUseAfterScope}.
@menu
* Using Leak Sanitizer::
@@ -8410,7 +8430,7 @@ variable
ASAN_OPTIONS='detect_leaks=1'
@end example
@noindent
-However, this was made the default for @command{clang} 3.5 and
+However, this was made the default as from @command{clang} 3.5 and
@command{gcc} 5.1.0.
When LSan is enabled, leaks give the process a failure error status (by
@@ -8463,68 +8483,56 @@ The current set for @command{clang} is (on a single line):
@example
-fsanitize=alignment,bool,bounds,enum,float-cast-overflow,
float-divide-by-zero,function,integer-divide-by-zero,nonnull-attribute,
-null,object-size,return,returns-nonnull-attribute,shift,
+null,object-size,pointer-overflow,return,returns-nonnull-attribute,shift,
signed-integer-overflow,unreachable,unsigned-integer-overflow,vla-bound,vptr
@end example
@noindent
-a subset of which could be combined with @code{address}, or use something
-like
+(plus the more specific versions @code{shift-base} and
+@code{shift-exponent}) a subset of which could be combined with
+@code{address}, or use something like
@example
-fsanitize=undefined -fno-sanitize=float-divide-by-zero
@end example
@noindent
-(@code{function}, @code{return} and @code{vptr} apply only to C++).
-
-@command{clang} 3.5 and later may need
-
-@example
--fsanitize=undefined -fno-sanitize=float-divide-by-zero,vptr
-@end example
-
-@noindent
-for C++ code (in @code{CXX} and @code{CXX11}) as the run-time library
-for @code{vptr} needs to be linked into the main @R{} executable (and
-that would need to be linked by @code{clang++}, not @code{clang}: you
-could try building @R{} with something like
+Options @code{function}, @code{return} and @code{vptr} apply only to C++: to
+use @code{vptr} its run-time library needs to be linked into the main
+@R{} executable by building the latter with something like
@example
MAIN_LD="clang++ -fsanitize=undefined"
@end example
@noindent
-or add @code{-lclang_rt.asan_cxx-x86_64}@footnote{This includes the C++
-UBSAN handlers, despite its name.} or similar to @code{LD_FLAGS}).
+Option @code{float-divide-by-zero} is undesirable for use with @R{}
+which allow such divisions as part of @acronym{IEC}@tie{}60559
+arithmetic.
See
@uref{https://gcc.gnu.org/@/onlinedocs/@/gcc/@/Instrumentation-Options.html}
(or the manual for your version of GCC, installed or @emph{via}
-@uref{https://gcc.gnu.org/@/onlinedocs/}) for the options supported by
-GCC: 5.3 supports
+@uref{https://gcc.gnu.org/@/onlinedocs/}: look for `Program
+Instrumentation Options') for the options supported by GCC: 6 and 7 support
@example
--fsanitize=alignment,bool,bounds,enum,float-cast-overflow,
-integer-divide-by-zero,nonnull-attribute,null,object-size,
-return,returns-nonnull-attribute,shift,signed-integer-overflow,
-unreachable,vla-bound,vptr
+-fsanitize=alignment,bool,bounds,enum,integer-divide-by-zero,
+nonnull-attribute,null,object-size, return,returns-nonnull-attribute,
+shift,signed-integer-overflow,unreachable,vla-bound,vptr
@end example
@noindent
-with
+plus the more specific versions @code{shift-base} and
+@code{shift-exponent} and non-default options
@example
--fsanitize=float-divide-by-zero
+bound-strict,float-cast-overflow,float-divide-by-zero
@end example
@noindent
-as a separate option not enabled by @code{-fsanitize=undefined} (and not
-desirable for @R{} uses). At the time of writing the @code{object-size}
-and @code{vptr} checks produced many warnings on GCC's own C++ headers,
-so should be disabled.
+where @code{float-divide-by-zero} is not desirable for @R{} uses and
+@code{bounds-strict} is an extension of @code{bounds}.
+@c At the time of writing the @code{object-size}
+@c and @code{vptr} checks produced many warnings on GCC's own C++ headers,
+@c so should be disabled.
-GCC 6 added
-@example
--fsanitize=bounds-strict
-@end example
-@noindent
-(an extension of @code{bounds} to `flexible array member-like arrays'),
-@option{-fsanitize=shift-base} and @option{-fsanitize=shift-exponent}.
+From GCC 8 @code{signed-integer-overflow} will no longer be a default part
+of @option{-fsanitize=undefined}, but can be specified separately.
Other useful flags include
@example
@@ -9626,10 +9634,10 @@ Alternatively, examine the package's @R{} code for all @code{.C},
@code{.Fortran}, @code{.Call} and @code{.External} calls.
@item
-Construct the registration table.
-First write skeleton registration code, conventionally in file
-@file{src/init.c} (or at the end of the only C source file in the
-package):
+Construct the registration table. First write skeleton registration
+code, conventionally in file @file{src/init.c} (or at the end of the
+only C source file in the package: if included in a C++ file the
+@samp{R_init} function would need to be declared @code{extern "C"}):
@example
@group
diff --git a/doc/manual/R-intro.texi b/doc/manual/R-intro.texi
index 78c7081..8695861 100644
--- a/doc/manual/R-intro.texi
+++ b/doc/manual/R-intro.texi
@@ -6567,7 +6567,7 @@ There are many functions to manipulate files and directories. Here are
pointers to some of the more commonly used ones.
To create an (empty) file or directory, use @code{file.create} or
-@code{create.dir}. (These are the analogues of the POSIX utilities
+@code{dir.create}. (These are the analogues of the POSIX utilities
@command{touch} and @command{mkdir}.) For temporary files and
directories in the @R{} session directory see @code{tempfile}.
diff --git a/doc/manual/R-ints.texi b/doc/manual/R-ints.texi
index f52c075..1b1557d 100644
--- a/doc/manual/R-ints.texi
+++ b/doc/manual/R-ints.texi
@@ -1262,7 +1262,7 @@ The rationale behind considering only UTF-8 and Latin-1 was that most
systems are capable of producing UTF-8 strings and this is the nearest
we have to a universal format. For those that do not (for example those
lacking a powerful enough @code{iconv}), it is likely that they work in
-Latin-1, the old @R{} assumption. The the parser can return a
+Latin-1, the old @R{} assumption. Then the parser can return a
UTF-8-encoded string if it encounters a @samp{\uxxx} escape for a
Unicode point that cannot be represented in the current charset. (This
needs MBCS support, and was only enabled@footnote{See define
@@ -1289,15 +1289,14 @@ were encoded in Latin-1 rather than Adobe Symbol: this is selected by
Windows has no UTF-8 locales, but rather expects to work with
UCS-2@footnote{or UTF-16 if support for surrogates is enabled in the OS,
-which it is not normally so at least for Western versions of Windows,
-despite some claims to the contrary on the Microsoft website.} strings.
-@R{} (being written in standard C) would not work internally with UCS-2
-without extensive changes. The @file{Rgui} console@footnote{but not the
-GraphApp toolkit.} uses UCS-2 internally, but communicates with the @R{}
-engine in the native encoding. To allow UTF-8 strings to be printed in
-UTF-8 in @file{Rgui.exe}, an escape convention is used (see header file
-@file{rgui_UTF8.h}) which is used by @code{cat}, @code{print} and
-autoprinting.
+which it used not to be when encoding support was added to @R{}.}
+strings. @R{} (being written in standard C) would not work internally
+with UCS-2 without extensive changes. The @file{Rgui}
+console@footnote{but not the GraphApp toolkit.} uses UCS-2 internally,
+but communicates with the @R{} engine in the native encoding. To allow
+UTF-8 strings to be printed in UTF-8 in @file{Rgui.exe}, an escape
+convention is used (see header file @file{rgui_UTF8.h}) by
+@code{cat}, @code{print} and autoprinting.
`Unicode' (UCS-2LE) files are common in the Windows world, and
@code{readLines} and @code{scan} will read them into UTF-8 strings on
@@ -1972,6 +1971,7 @@ function (pattern, x, ignore.case = FALSE, perl = FALSE, value = FALSE,
@end group
@end example
+@noindent
and the use of @code{as.character} allows methods to be dispatched (for
example, for factors).
diff --git a/m4/openmp.m4 b/m4/openmp.m4
index d559e2c..470f04a 100644
--- a/m4/openmp.m4
+++ b/m4/openmp.m4
@@ -28,7 +28,7 @@
# Franc,ois Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor,
# Roland McGrath, Noah Friedman, david d zuhn, and many others.
-# [a small part, modified for clang and Intel in 2015,6.]
+# [a small part, modified for clang and Intel in 2015,6, Solaris in 2017.]
# R_OPENMP
@@ -58,7 +58,7 @@ AC_DEFUN([R_OPENMP],
dnl clang 3.7.x -fopenmp=libomp
dnl (-fopenmp is accepted but does not work)
dnl Oracle C, Fortran -xopenmp
- dnl (also accepts -fopenmp as from 12.4)
+ dnl (also accepts -fopenmp as from 12.4, but does not work in 12.5)
dnl Intel C, Fortran -qopenmp
dnl Intel -openmp (deprecated)
dnl (https://software.intel.com/en-us/node/581863,
@@ -74,7 +74,8 @@ AC_DEFUN([R_OPENMP],
dnl will fail (since we know that it failed without the option),
dnl therefore the loop will continue searching for an option, and
dnl no output file called 'penmp' or 'mp' is created.
- for ac_option in -fopenmp -xopenmp -qopenmp \
+ dnl Sept 2017: Solaris needs -xopenmp before -fopenmp
+ for ac_option in -xopenmp -fopenmp -qopenmp \
-openmp -mp -omp -qsmp=omp -homp \
-fopenmp=libomp \
-Popenmp --openmp; do
diff --git a/share/Makefile.in b/share/Makefile.in
index 75258ab..4cfba05 100644
--- a/share/Makefile.in
+++ b/share/Makefile.in
@@ -24,6 +24,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
R: FORCE
@if test "$(BUILDDIR_IS_SRCDIR)" = "no" ; then \
$(MAKE) rsharedir=$(top_builddir)/share install-sources; \
+ elif test "x@BUILD_TZONE_TRUE@" = "x"; then \
+ $(MAKE) rsharedir=. install-zoneinfo; \
fi
FORCE:
@@ -99,6 +101,7 @@ distclean:
@if test "$(BUILDDIR_IS_SRCDIR)" = no ; then \
rm -rf $(SUBDIRS_WITH_NO_BUILD); \
fi
+ -@rm -rf zoneinfo
-@rm -f Makefile
maintainer-clean: distclean
diff --git a/share/texmf/bibtex/bib/RJournal.bib b/share/texmf/bibtex/bib/RJournal.bib
index 25962d4..438d6f4 100644
--- a/share/texmf/bibtex/bib/RJournal.bib
+++ b/share/texmf/bibtex/bib/RJournal.bib
@@ -4,355 +4,98 @@
-@article{RJ-2017-001,
- author = {Taylor Arnold and Michael J. Kane and Simon Urbanek},
- title = {{iotools: High-Performance I/O Tools for R}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-001/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-002,
- author = {Martin Otava and Rudradev Sengupta and Ziv Shkedy and
- Dan Lin and Setia Pramana and Tobias Verbeke and Philippe
- Haldermans and Ludwig A. Hothorn and Daniel Gerhard and
- Rebecca M. Kuiper and Florian Klinglmueller and Adetayo
- Kasim},
- title = {{IsoGeneGUI: Multiple Approaches for Dose-Response Analysis
- of Microarray Data Using R}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-002/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-003,
- author = {Mark Pickup and Paul Gustafson and Davor Cubranic and
- Geoffrey Evans},
- title = {{OrthoPanels: An R Package for Estimating a Dynamic
- Panel Model with Fixed Effects Using the Orthogonal Re-
- parameterization Approach}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-003/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-004,
- author = {Jakob Bossek},
- title = {{smoof: Single- and Multi-Objective Optimization Test
- Functions}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-004/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-005,
- author = {Sean S. Downey and Guowei Sun and Peter Norquest},
- title = {{alineR: an R Package for Optimizing Feature-Weighted
- Alignments and Linguistic Distances}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-005/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-006,
- author = {Jim Duggan},
- title = {{Implementing a Metapopulation Bass Diffusion Model using the
- R Package deSolve}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-006/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-007,
- author = {Christian Margreitter and Chris Oostenbrink},
- title = {{MDplot: Visualise Molecular Dynamics}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-007/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-008,
- author = {Luca Scrucca},
- title = {{On some extensions to GA package: hybrid optimisation,
- parallelisation and islands evolution}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-008/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-009,
- author = {Steffen Moritz and Thomas Bartz-Beielstein},
- title = {{imputeTS: Time Series Missing Value Imputation in R}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-009/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-010,
- author = {Simon H. Heisterkamp and Engelbertus van Willigen and Paul-
- Matthias Diderichsen and John Maringwa},
- title = {{Update of the nlme Package to Allow a Fixed Standard
- Deviation of the Residual Error}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-010/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-011,
- author = {Hye-Min Choe and Mijeong Kim and Eun-Kyung Lee},
- title = {{EMSaov: An R Package for the Analysis of Variances with the
- Expected Mean Squares and its Shiny Application}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-011/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-015,
- author = {Mónica López-Ratón and Elisa M. Molanes-López and Emilio
- Letón and Carmen Cadarso-Suárez},
- title = {{GsymPoint: An R Package to Estimate the Generalized Symmetry
- Point, an Optimal Cut-off Point for Binary Classification in
- Continuous Diagnostic Tests}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-015/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-012,
- author = {Philipp Probst and Quay Au and Giuseppe Casalicchio and
- Clemens Stachl and Bernd Bischl},
- title = {{Multilabel Classification with R Package mlr}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-012/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-016,
- author = {Brandon M. Greenwell},
- title = {{pdp: An R Package for Constructing Partial Dependence Plots}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-016/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-013,
- author = {Ping-Yang Chen and Ching-Chuan Chen and Chun-Hao Yang and
- Sheng-Mao Chang and Kuo-Jung Lee},
- title = {{milr: Multiple-Instance Logistic Regression with Lasso
- Penalty}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-013/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-014,
- author = {Axel Gandy and Jan Terje Kvaløy},
- title = {{spcadjust: An R Package for Adjusting for Estimation Error
- in Control Charts}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-014/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-017,
- author = {Rense Nieuwenhuis and Manfred te Grotenhuis and Ben Pelzer},
- title = {{Weighted Effect Coding for Observational Data with wec}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-017/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-018,
- author = {Razieh Nabi and Xiaogang Su},
- title = {{coxphMIC: An R Package for Sparse Estimation of Cox
- Proportional Hazards Models via Approximated Information
- Criteria}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-018/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-019,
- author = {Leo Lahti and Janne Huovari and Markus Kainu and Przemysław
- Biecek},
- title = {{Retrieval and Analysis of Eurostat Open Data with the
- eurostat Package}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-019/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-020,
- author = {Thomas Wieland},
- title = {{Market Area Analysis for Retail and Service Locations with
- MCI}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-020/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-021,
- author = {Neeraj Bokde and Gualberto Asencio-Cortés and Francisco
- Martínez-Álvarez and Kishore Kulat},
- title = {{PSF: Introduction to R Package for Pattern Sequence Based
- Forecasting Algorithm}},
- year = {2017},
- journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-021/index.html}
- note = {Accepted, may change after copy-editing.}
-}
-
-
-
-@article{RJ-2017-022,
- author = {Panagiotis Papastamoulis and Magnus Rattray},
- title = {{BayesBinMix: an R Package for Model Based Clustering of
- Multivariate Binary Data}},
+@article{RJ-2017-034,
+ author = {Heather Savoy and Falk Heße and Yoram Rubin},
+ title = {{anchoredDistr: a Package for the Bayesian Inversion of
+ Geostatistical Parameters with Multi-type and Multi-scale
+ Data}},
year = {2017},
journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-022/index.html}
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-034/index.html}
note = {Accepted, may change after copy-editing.}
}
-@article{RJ-2017-024,
- author = {Randall Pruim and Daniel T Kaplan and Nicholas J Horton},
- title = {{The mosaic package: helping students to `think with data'
- using R}},
+@article{RJ-2017-035,
+ author = {Taylor Arnold},
+ title = {{A Tidy Data Model for Natural Language Processing using
+ cleanNLP}},
year = {2017},
journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-024/index.html}
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-035/index.html}
note = {Accepted, may change after copy-editing.}
}
-@article{RJ-2017-025,
- author = {Joshua P. French},
- title = {{autoimage: Multiple Heat Maps for Projected Coordinates}},
+@article{RJ-2017-036,
+ author = {Giorgio Alfredo Spedicato},
+ title = {{Discrete Time Markov Chains with R}},
year = {2017},
journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-025/index.html}
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-036/index.html}
note = {Accepted, may change after copy-editing.}
}
-@article{RJ-2017-023,
- author = {Sam Tyner and François Briatte and Heike Hofmann},
- title = {{Network Visualization with ggplot2}},
+@article{RJ-2017-037,
+ author = {Tyson S. Barrett and Emily Brignone},
+ title = {{Furniture for Quantitative Scientists}},
year = {2017},
journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-023/index.html}
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-037/index.html}
note = {Accepted, may change after copy-editing.}
}
-@article{RJ-2017-026,
- author = {G. Brooke Anderson and Dirk Eddelbuettel},
- title = {{Hosting Data Packages via drat: A Case Study with Hurricane
- Exposure Data}},
+@article{RJ-2017-038,
+ author = {Marius Pfeuffer},
+ title = {{ctmcd: An R Package for Estimating the Parameters of a
+ Continuous-Time Markov Chain from Discrete-Time Data}},
year = {2017},
journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-026/index.html}
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-038/index.html}
note = {Accepted, may change after copy-editing.}
}
-@article{RJ-2017-027,
- author = {Pablo Morales and Julián Luengo and Luís P.F. Garcia and
- Ana C. Lorena and André C.P.L.F. de Carvalho and Francisco
- Herrera},
- title = {{The NoiseFiltersR Package: Label Noise Preprocessing in R}},
+@article{RJ-2017-039,
+ author = {Robert J. Gutierrez and Bradley C. Boehmke and Kenneth W.
+ Bauer and Cade M. Saie and Trevor J. Bihl},
+ title = {{anomalyDetection: Implementation of Augmented Network Log
+ Anomaly Detection Procedures}},
year = {2017},
journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-027/index.html}
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-039/index.html}
note = {Accepted, may change after copy-editing.}
}
-@article{RJ-2017-028,
- author = {Michel Lang},
- title = {{checkmate: Fast Argument Checks for Defensive R Programming}},
+@article{RJ-2017-040,
+ author = {Nicolae Teodor Melita and Stefan Holban},
+ title = {{dGAselID: An R Package for Selecting a Variable Number of
+ Features in High Dimensional Data}},
year = {2017},
journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-028/index.html}
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-040/index.html}
note = {Accepted, may change after copy-editing.}
}
-@article{RJ-2017-029,
- author = {Adrien Mazoyer and Rémy Drouilhet and Stéphane Despréaux and
- Bernard Ycart},
- title = {{flan: An R Package for Inference on Mutation Models.}},
+@article{RJ-2017-041,
+ author = {Melanie Prague and Rui Wang and Victor De Gruttola},
+ title = {{CRTgeeDR: an R Package for Doubly Robust Generalized
+ Estimating Equations Estimations in Cluster Randomized
+ Trials with Missing Data.}},
year = {2017},
journal = {{The R Journal}},
- url = {https://journal.r-project.org/archive/2017/RJ-2017-029/index.html}
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-041/index.html}
note = {Accepted, may change after copy-editing.}
}
@@ -467,22 +210,17 @@
-
-
-
-@Article{RJournal:2009-1:Orr+Liu,
- author = {Megan Orr and Peng Liu},
- title = {Sample Size Estimation while Controlling False Discovery Rate for Microarray Experiments Using the {ssize.fdr} Package},
- journal = {The R Journal},
- year = 2009,
- volume = 1,
- number = 1,
- pages = {47--53},
- month = jun,
- url = {http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Orr+Liu.pdf}
+@article{RJ-2009-019,
+ author = {Megan Orr and Peng Liu},
+ title = {{Sample Size Estimation while Controlling False Discovery Rate
+ for Microarray Experiments Using the {ssize.fdr} Package}},
+ year = {2009},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2009/RJ-2009-019/index.html},
+ pages = {47--53},
+ volume = {1},
+ number = {1}
}
-
-
@@ -2430,7 +2168,7 @@
@article{RJ-2014-015,
- author = {Thomas J. Leeper1},
+ author = {Thomas J. Leeper},
title = {{Archiving Reproducible Research with R and Dataverse}},
year = {2014},
journal = {{The R Journal}},
@@ -4722,3 +4460,598 @@
+
+
+
+
+
+@Article{editorial:2017,
+ author = {Roger Bivand},
+ title = {Editorial},
+ journal = {The R Journal},
+ year = 2017,
+ volume = 9,
+ number = 1,
+ pages = {4--5},
+ month = jun,
+ url = {http://journal.r-project.org/archive/2017-1/editorial.pdf}
+}
+
+
+
+
+
+
+
+
+
+@article{RJ-2017-001,
+ author = {Taylor Arnold and Michael J. Kane and Simon Urbanek},
+ title = {{iotools: High-Performance I/O Tools for R}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-001/index.html},
+ pages = {6--13},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-002,
+ author = {Martin Otava and Rudradev Sengupta and Ziv Shkedy and
+ Dan Lin and Setia Pramana and Tobias Verbeke and Philippe
+ Haldermans and Ludwig A. Hothorn and Daniel Gerhard and
+ Rebecca M. Kuiper and Florian Klinglmueller and Adetayo
+ Kasim},
+ title = {{IsoGeneGUI: Multiple Approaches for Dose-Response Analysis
+ of Microarray Data Using R}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-002/index.html},
+ pages = {14--26},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-023,
+ author = {Sam Tyner and François Briatte and Heike Hofmann},
+ title = {{Network Visualization with ggplot2}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-023/index.html},
+ pages = {27--59},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-003,
+ author = {Mark Pickup and Paul Gustafson and Davor Cubranic and
+ Geoffrey Evans},
+ title = {{OrthoPanels: An R Package for Estimating a Dynamic
+ Panel Model with Fixed Effects Using the Orthogonal
+ Reparameterization Approach}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-003/index.html},
+ pages = {60--76},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-024,
+ author = {Randall Pruim and Daniel T Kaplan and Nicholas J Horton},
+ title = {{The mosaic Package: Helping Students to `Think with Data'
+ Using R}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-024/index.html},
+ pages = {77--102},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-004,
+ author = {Jakob Bossek},
+ title = {{smoof: Single- and Multi-Objective Optimization Test
+ Functions}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-004/index.html},
+ pages = {103--113},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-031,
+ author = {Daniel Osorio and Janneth González and Andrés Pinzón},
+ title = {{minval: An R package for MINimal VALidation of
+ Stoichiometric Reactions}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-031/index.html},
+ pages = {114--123},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-032,
+ author = {G. Brooke Anderson and Colin Eason and Elizabeth A. Barnes},
+ title = {{Working with Daily Climate Model Output Data in R and the
+ futureheatwaves Package}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-032/index.html},
+ pages = {124--137},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-005,
+ author = {Sean S. Downey and Guowei Sun and Peter Norquest},
+ title = {{alineR: an R Package for Optimizing Feature-Weighted
+ Alignments and Linguistic Distances}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-005/index.html},
+ pages = {138--152},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-006,
+ author = {Jim Duggan},
+ title = {{Implementing a Metapopulation Bass Diffusion Model using the
+ R Package deSolve}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-006/index.html},
+ pages = {153--163},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-007,
+ author = {Christian Margreitter and Chris Oostenbrink},
+ title = {{MDplot: Visualise Molecular Dynamics}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-007/index.html},
+ pages = {164--186},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-008,
+ author = {Luca Scrucca},
+ title = {{On Some Extensions to GA Package: Hybrid Optimisation,
+ Parallelisation and Islands Evolution}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-008/index.html},
+ pages = {187--206},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-009,
+ author = {Steffen Moritz and Thomas Bartz-Beielstein},
+ title = {{imputeTS: Time Series Missing Value Imputation in R}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-009/index.html},
+ pages = {207--218},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-027,
+ author = {Pablo Morales and Julián Luengo and Luís P.F. Garcia and
+ Ana C. Lorena and André C.P.L.F. de Carvalho and Francisco
+ Herrera},
+ title = {{The NoiseFiltersR Package: Label Noise Preprocessing in R}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-027/index.html},
+ pages = {219--228},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-018,
+ author = {Razieh Nabi and Xiaogang Su},
+ title = {{coxphMIC: An R Package for Sparse Estimation of Cox
+ Proportional Hazards Models via Approximated Information
+ Criteria}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-018/index.html},
+ pages = {229--238},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-010,
+ author = {Simon H. Heisterkamp and Engelbertus van Willigen and Paul-
+ Matthias Diderichsen and John Maringwa},
+ title = {{Update of the nlme Package to Allow a Fixed Standard
+ Deviation of the Residual Error}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-010/index.html},
+ pages = {239--251},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-011,
+ author = {Hye-Min Choe and Mijeong Kim and Eun-Kyung Lee},
+ title = {{EMSaov: An R Package for the Analysis of Variance with the
+ Expected Mean Squares and its Shiny Application}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-011/index.html},
+ pages = {252--261},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-015,
+ author = {Mónica López-Ratón and Elisa M. Molanes-López and Emilio
+ Letón and Carmen Cadarso-Suárez},
+ title = {{GsymPoint: An R Package to Estimate the Generalized Symmetry
+ Point, an Optimal Cut-off Point for Binary Classification in
+ Continuous Diagnostic Tests}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-015/index.html},
+ pages = {262--283},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-025,
+ author = {Joshua P. French},
+ title = {{autoimage: Multiple Heat Maps for Projected Coordinates}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-025/index.html},
+ pages = {284--297},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-020,
+ author = {Thomas Wieland},
+ title = {{Market Area Analysis for Retail and Service Locations with
+ MCI}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-020/index.html},
+ pages = {298--323},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-021,
+ author = {Neeraj Bokde and Gualberto Asencio-Cortés and Francisco
+ Martínez-Álvarez and Kishore Kulat},
+ title = {{PSF: Introduction to R Package for Pattern Sequence Based
+ Forecasting Algorithm}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-021/index.html},
+ pages = {324--333},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-029,
+ author = {Adrien Mazoyer and Rémy Drouilhet and Stéphane Despréaux and
+ Bernard Ycart},
+ title = {{flan: An R Package for Inference on Mutation Models.}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-029/index.html},
+ pages = {334--351},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-012,
+ author = {Philipp Probst and Quay Au and Giuseppe Casalicchio and
+ Clemens Stachl and Bernd Bischl},
+ title = {{Multilabel Classification with R Package mlr}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-012/index.html},
+ pages = {352--369},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-033,
+ author = {Mingli Chen and Victor Chernozhukov and Iván Fernández-Val
+ and Blaise Melly},
+ title = {{Counterfactual: An R Package for Counterfactual Analysis}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-033/index.html},
+ pages = {370--384},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-019,
+ author = {Leo Lahti and Janne Huovari and Markus Kainu and Przemysław
+ Biecek},
+ title = {{Retrieval and Analysis of Eurostat Open Data with the
+ eurostat Package}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-019/index.html},
+ pages = {385--392},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-030,
+ author = {Gul Inan and Lan Wang},
+ title = {{PGEE: An R Package for Analysis of Longitudinal Data with
+ High-Dimensional Covariates}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-030/index.html},
+ pages = {393--402},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-022,
+ author = {Panagiotis Papastamoulis and Magnus Rattray},
+ title = {{BayesBinMix: an R Package for Model Based Clustering of
+ Multivariate Binary Data}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-022/index.html},
+ pages = {403--420},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-016,
+ author = {Brandon M. Greenwell},
+ title = {{pdp: An R Package for Constructing Partial Dependence Plots}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-016/index.html},
+ pages = {421--436},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-028,
+ author = {Michel Lang},
+ title = {{checkmate: Fast Argument Checks for Defensive R Programming}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-028/index.html},
+ pages = {437--445},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-013,
+ author = {Ping-Yang Chen and Ching-Chuan Chen and Chun-Hao Yang and
+ Sheng-Mao Chang and Kuo-Jung Lee},
+ title = {{milr: Multiple-Instance Logistic Regression with Lasso
+ Penalty}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-013/index.html},
+ pages = {446--457},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-014,
+ author = {Axel Gandy and Jan Terje Kvaløy},
+ title = {{spcadjust: An R Package for Adjusting for Estimation Error
+ in Control Charts}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-014/index.html},
+ pages = {458--476},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-017,
+ author = {Rense Nieuwenhuis and Manfred te Grotenhuis and Ben Pelzer},
+ title = {{Weighted Effect Coding for Observational Data with wec}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-017/index.html},
+ pages = {477--485},
+ volume = {9},
+ number = {1}
+}
+
+
+
+@article{RJ-2017-026,
+ author = {G. Brooke Anderson and Dirk Eddelbuettel},
+ title = {{Hosting Data Packages via drat: A Case Study with Hurricane
+ Exposure Data}},
+ year = {2017},
+ journal = {{The R Journal}},
+ url = {https://journal.r-project.org/archive/2017/RJ-2017-026/index.html},
+ pages = {486--497},
+ volume = {9},
+ number = {1}
+}
+
+
+
+
+
+
+
+
+
+
+@Article{foundation:2017,
+ author = {Torsten Hothorn},
+ title = {R Foundation News},
+ journal = {The R Journal},
+ year = 2017,
+ volume = 9,
+ number = 1,
+ pages = {498--500},
+ month = jun,
+ url = {http://journal.r-project.org/archive/2017-1/foundation.pdf}
+}
+
+
+
+
+
+
+
+
+@Article{erum:2017,
+ author = {Maciej Beręsewicz and Adolfo Alvarez and Przemysław Biecek
+ and Marcin K. Dyderski and Marcin Kosinski and Jakub Nowosad
+ and Kamil Rotter and Alicja Szabelska-Beręsewicz and Marcin
+ Szymkowiak and Łukasz Wawrowski and Joanna Zyprych-Walczak},
+ title = {Conference Report: European R Users Meeting 2016},
+ journal = {The R Journal},
+ year = 2017,
+ volume = 9,
+ number = 1,
+ pages = {501--504},
+ month = jun,
+ url = {http://journal.r-project.org/archive/2017-1/erum.pdf}
+}
+
+
+
+
+
+
+
+
+@Article{cran:2017,
+ author = {Kurt Hornik and Uwe Ligges and Achim Zeileis},
+ title = {Changes on CRAN},
+ journal = {The R Journal},
+ year = 2017,
+ volume = 9,
+ number = 1,
+ pages = {505--507},
+ month = jun,
+ url = {http://journal.r-project.org/archive/2017-1/cran.pdf}
+}
+
+
+
+
+
+
+
+
+@Article{bioc:2017,
+ author = {Bioconductor Core Team},
+ title = {News from the Bioconductor Project},
+ journal = {The R Journal},
+ year = 2017,
+ volume = 9,
+ number = 1,
+ pages = {508--508},
+ month = jun,
+ url = {http://journal.r-project.org/archive/2017-1/bioc.pdf}
+}
+
+
+
+
+
+
+
+
+@Article{ch:2017,
+ author = {R Core Team},
+ title = {Changes in R},
+ journal = {The R Journal},
+ year = 2017,
+ volume = 9,
+ number = 1,
+ pages = {509--521},
+ month = jun,
+ url = {http://journal.r-project.org/archive/2017-1/ch.pdf}
+}
+
+
+
+
+
diff --git a/src/extra/tre/tre-parse.c b/src/extra/tre/tre-parse.c
index 53cbe51..5273e9b 100644
--- a/src/extra/tre/tre-parse.c
+++ b/src/extra/tre/tre-parse.c
@@ -1343,7 +1343,7 @@ tre_parse(tre_parse_ctx_t *ctx)
case CHAR_RPAREN: /* end of current subexpression */
if ((ctx->cflags & REG_EXTENDED && depth > 0)
- || (ctx->re > ctx->re_start
+ || (!(ctx->cflags & REG_EXTENDED) && ctx->re > ctx->re_start
&& *(ctx->re - 1) == CHAR_BACKSLASH))
{
DPRINT(("tre_parse: empty: '%.*" STRF "'\n",
diff --git a/src/extra/tzone/Makefile.in b/src/extra/tzone/Makefile.in
index 22c3011..07d263a 100644
--- a/src/extra/tzone/Makefile.in
+++ b/src/extra/tzone/Makefile.in
@@ -11,6 +11,8 @@ subdir = src/extra/tzone
include $(top_builddir)/Makeconf
SOURCES = localtime.c strftime.c
+SOURCES_WIN = registryTZ.c
+HEADERS = tzfile.h
DEPENDS = $(SOURCES:.c=.d)
OBJECTS = $(SOURCES:.c=.o)
@@ -44,4 +46,16 @@ maintainer-clean: distclean
install install-strip uninstall TAGS info dvi check:
+distdir: $(DISTFILES)
+ @for f in $(DISTFILES); do \
+ test -f $(distdir)/$${f} \
+ || ln $(srcdir)/$${f} $(distdir)/$${f} 2>/dev/null \
+ || cp -p $(srcdir)/$${f} $(distdir)/$${f}; \
+ done
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+DISTFILES = Makefile.in Makefile.win \
+ Make.zi Notes zoneinfo.zip \
+ $(SOURCES) $(SOURCES_WIN) $(HEADERS)
+
## Automagically generated dependencies:
diff --git a/src/gnuwin32/front-ends/Rfe.c b/src/gnuwin32/front-ends/Rfe.c
index 1e51cb1..d9c27dc 100644
--- a/src/gnuwin32/front-ends/Rfe.c
+++ b/src/gnuwin32/front-ends/Rfe.c
@@ -1,6 +1,6 @@
/*
* R : A Computer Language for Statistical Data Analysis
- * Copyright (C) 2010 R Core Team
+ * Copyright (C) 2010--2017 R Core Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -17,7 +17,9 @@
* https://www.R-project.org/Licenses/
*/
-#include <stdlib.h> /* for exit */
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h> /* for SetConsoleCtrlHandler */
+#include <stdlib.h> /* for exit */
#include <string.h>
#include <stdio.h>
@@ -37,6 +39,7 @@ static void Usage (char *RCMD, char *arch)
int main (int argc, char **argv)
{
int cmdarg = 1;
+ int interactive = 0;
char arch[10] = R_ARCH, cmd[CMD_LEN], *p;
if (argc > 1 && strcmp(argv[1], "--help") == 0) {
@@ -64,10 +67,14 @@ int main (int argc, char **argv)
if (stricmp(argv[0] + strlen(argv[0]) - 11, "Rscript.exe") == 0
|| stricmp(argv[0] + strlen(argv[0]) - 7, "Rscript") == 0)
snprintf(cmd, CMD_LEN, "%s\\bin\\%s\\Rscript.exe", getRHOME(2), arch);
- else
+ else {
snprintf(cmd, CMD_LEN, "%s\\bin\\%s\\R.exe", getRHOME(2), arch);
+ interactive = 1;
+ }
for(int i = cmdarg; i < argc; i++) {
+ if (interactive && !strcmp(argv[i], "CMD"))
+ interactive = 0;
strcat(cmd, " ");
if(strchr(argv[i], ' ')) {
strcat(cmd, "\"");
@@ -76,6 +83,10 @@ int main (int argc, char **argv)
strcat(cmd, "\"");
} else strcat(cmd, argv[i]);
}
+
+ if (interactive)
+ /* Ignore Ctrl-C so that Rterm.exe can handle it */
+ SetConsoleCtrlHandler(NULL, TRUE);
exit(system(cmd));
}
diff --git a/src/library/Recommended/Matrix.tgz b/src/library/Recommended/Matrix.tgz
index 9f0bafb..af0bfa1 120000
--- a/src/library/Recommended/Matrix.tgz
+++ b/src/library/Recommended/Matrix.tgz
@@ -1 +1 @@
-Matrix_1.2-10.tar.gz \ No newline at end of file
+Matrix_1.2-11.tar.gz \ No newline at end of file
diff --git a/src/library/Recommended/Matrix_1.2-10.tar.gz b/src/library/Recommended/Matrix_1.2-10.tar.gz
deleted file mode 100644
index 99f4a2c..0000000
--- a/src/library/Recommended/Matrix_1.2-10.tar.gz
+++ /dev/null
Binary files differ
diff --git a/src/library/Recommended/Matrix_1.2-11.tar.gz b/src/library/Recommended/Matrix_1.2-11.tar.gz
new file mode 100644
index 0000000..da75f6d
--- /dev/null
+++ b/src/library/Recommended/Matrix_1.2-11.tar.gz
Binary files differ
diff --git a/src/library/Recommended/boot.tgz b/src/library/Recommended/boot.tgz
index 499c47a..c77bdce 120000
--- a/src/library/Recommended/boot.tgz
+++ b/src/library/Recommended/boot.tgz
@@ -1 +1 @@
-boot_1.3-19.tar.gz \ No newline at end of file
+boot_1.3-20.tar.gz \ No newline at end of file
diff --git a/src/library/Recommended/boot_1.3-19.tar.gz b/src/library/Recommended/boot_1.3-19.tar.gz
deleted file mode 100644
index fc2142b..0000000
--- a/src/library/Recommended/boot_1.3-19.tar.gz
+++ /dev/null
Binary files differ
diff --git a/src/library/Recommended/boot_1.3-20.tar.gz b/src/library/Recommended/boot_1.3-20.tar.gz
new file mode 100644
index 0000000..0990f74
--- /dev/null
+++ b/src/library/Recommended/boot_1.3-20.tar.gz
Binary files differ
diff --git a/src/library/Recommended/mgcv.tgz b/src/library/Recommended/mgcv.tgz
index dc4c77d..8e7ba20 120000
--- a/src/library/Recommended/mgcv.tgz
+++ b/src/library/Recommended/mgcv.tgz
@@ -1 +1 @@
-mgcv_1.8-17.tar.gz \ No newline at end of file
+mgcv_1.8-20.tar.gz \ No newline at end of file
diff --git a/src/library/Recommended/mgcv_1.8-17.tar.gz b/src/library/Recommended/mgcv_1.8-17.tar.gz
deleted file mode 100644
index 00bf1ef..0000000
--- a/src/library/Recommended/mgcv_1.8-17.tar.gz
+++ /dev/null
Binary files differ
diff --git a/src/library/Recommended/mgcv_1.8-20.tar.gz b/src/library/Recommended/mgcv_1.8-20.tar.gz
new file mode 100644
index 0000000..84fe1f8
--- /dev/null
+++ b/src/library/Recommended/mgcv_1.8-20.tar.gz
Binary files differ
diff --git a/src/library/base/R/eval.R b/src/library/base/R/eval.R
index c7a06fc..7d4958a 100644
--- a/src/library/base/R/eval.R
+++ b/src/library/base/R/eval.R
@@ -1,7 +1,7 @@
# File src/library/base/R/eval.R
# Part of the R package, https://www.R-project.org
#
-# Copyright (C) 1995-2015 The R Core Team
+# Copyright (C) 1995-2017 The R Core Team
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -63,15 +63,25 @@ within.data.frame <- function(data, expr, ...)
eval(substitute(expr), e)
l <- as.list(e, all.names=TRUE)
l <- l[!vapply(l, is.null, NA, USE.NAMES=FALSE)]
- ## del: variables to *del*ete from data[]
- nD <- length(del <- setdiff(names(data), (nl <- names(l))))
- data[nl] <- l
- if(nD)
- data[del] <- if(nD == 1) NULL else vector("list", nD)
+ ## del: variables to *del*ete from data[]; keep non-NULL ones
+ del <- setdiff(names(data), (nl <- names(l)))
+ data[ nl] <- l
+ data[del] <- NULL
+ data
+}
+
+within.list <- function(data, expr, ...)
+{
+ parent <- parent.frame()
+ e <- evalq(environment(), data, parent)
+ eval(substitute(expr), e)
+ l <- as.list(e, all.names=TRUE)
+ del <- setdiff(names(data), (nl <- names(l))) # variables to delete
+ data[ nl] <- l
+ data[del] <- NULL
data
}
-within.list <- within.data.frame
diff --git a/src/library/base/R/grep.R b/src/library/base/R/grep.R
index 6cfd643..a03bb2f 100644
--- a/src/library/base/R/grep.R
+++ b/src/library/base/R/grep.R
@@ -93,8 +93,9 @@ regexec <-
function(pattern, text, ignore.case = FALSE, perl = FALSE,
fixed = FALSE, useBytes = FALSE)
{
+ if (!is.character(text)) text <- as.character(text)
if(!perl || fixed)
- return(.Internal(regexec(pattern, text, ignore.case, fixed,
+ return(.Internal(regexec(as.character(pattern), text, ignore.case, fixed,
useBytes)))
## For perl = TRUE, re-use regexpr(perl = TRUE) which always
diff --git a/src/library/base/R/qr.R b/src/library/base/R/qr.R
index 46fba07..f4ba5e6 100644
--- a/src/library/base/R/qr.R
+++ b/src/library/base/R/qr.R
@@ -1,7 +1,7 @@
# File src/library/base/R/qr.R
# Part of the R package, https://www.R-project.org
#
-# Copyright (C) 1995-2015 The R Core Team
+# Copyright (C) 1995-2017 The R Core Team
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -29,7 +29,7 @@ qr.default <- function(x, tol = 1e-07, LAPACK = FALSE, ...)
## otherwise :
if(LAPACK)
return(structure(.Internal(La_qr(x)), useLAPACK = TRUE, class = "qr"))
-
+ ## else "Linpack" case:
p <- as.integer(ncol(x))
if(is.na(p)) stop("invalid ncol(x)")
n <- as.integer(nrow(x))
@@ -65,47 +65,44 @@ qr.coef <- function(qr, y)
if (!im) y <- as.matrix(y)
ny <- as.integer(ncol(y))
if(is.na(ny)) stop("invalid ncol(y)")
- if (p == 0L) return( if (im) matrix(0, p, ny) else numeric() )
- ix <- if ( p > n ) c(seq_len(n), rep(NA, p - n)) else seq_len(p)
- if(is.complex(qr$qr)) {
- coef <- matrix(NA_complex_, nrow = p, ncol = ny)
+ if(nrow(y) != n) stop("'qr' and 'y' must have the same number of rows")
+ isC <- is.complex(qr$qr)
+ coef <- matrix(if(isC) NA_complex_ else NA_real_, p, ny)
+ ix <- if (p > n) c(seq_len(n), rep(NA, p - n)) else seq_len(p)
+ nam <- colnames(qr$qr)
+ if (p == 0L) {
+ pivotted <- FALSE
+ } else if(isC) {
+ if(!is.null(nam)) pivotted <- is.unsorted(qr$pivot)
coef[qr$pivot, ] <- .Internal(qr_coef_cmplx(qr, y))[ix, ]
- return(if(im) coef else c(coef))
- }
- ## else {not complex} :
- if(isTRUE(attr(qr, "useLAPACK"))) {
- coef <- matrix(NA_real_, nrow = p, ncol = ny)
+ } else if(isTRUE(attr(qr, "useLAPACK"))) {
+ if(!is.null(nam)) pivotted <- is.unsorted(qr$pivot)
coef[qr$pivot, ] <- .Internal(qr_coef_real(qr, y))[ix, ]
- return(if(im) coef else c(coef))
+ } else if (k > 0L) { ## else "Linpack" case, k > 0 :
+ storage.mode(y) <- "double"
+ z <- .Fortran(.F_dqrcf,
+ as.double(qr$qr),
+ n, k,
+ as.double(qr$qraux),
+ y,
+ ny,
+ coef = matrix(0, nrow = k,ncol = ny),
+ info = integer(1L),
+ NAOK = TRUE)[c("coef","info")]
+ if(z$info) stop("exact singularity in 'qr.coef'")
+ pivotted <- k < p
+ if(pivotted)
+ coef[qr$pivot[seq_len(k)], ] <- z$coef
+ else coef <- z$coef
}
- if (k == 0L) return( if (im) matrix(NA, p, ny) else rep.int(NA, p))
-
- storage.mode(y) <- "double"
- if( nrow(y) != n )
- stop("'qr' and 'y' must have the same number of rows")
- z <- .Fortran(.F_dqrcf,
- as.double(qr$qr),
- n, k,
- as.double(qr$qraux),
- y,
- ny,
- coef = matrix(0, nrow = k,ncol = ny),
- info = integer(1L),
- NAOK = TRUE)[c("coef","info")]
- if(z$info) stop("exact singularity in 'qr.coef'")
- if(k < p) {
- coef <- matrix(NA_real_, nrow = p, ncol = ny)
- coef[qr$pivot[seq_len(k)], ] <- z$coef
- }
- else coef <- z$coef
-
- if(!is.null(nam <- colnames(qr$qr)))
- if(k < p) rownames(coef)[qr$pivot] <- nam
- else rownames(coef) <- nam
-
+ ## in all cases, fixup dimnames (and drop to vector when y was):
+ if(!is.null(nam))
+ if(pivotted)
+ rownames(coef)[qr$pivot] <- nam
+ else # faster
+ rownames(coef) <- nam
if(im && !is.null(nam <- colnames(y)))
- colnames(coef) <- nam
-
+ colnames(coef) <- nam
if(im) coef else drop(coef)
}
diff --git a/src/library/base/R/serialize.R b/src/library/base/R/serialize.R
index bc80be6..58c8f6a 100644
--- a/src/library/base/R/serialize.R
+++ b/src/library/base/R/serialize.R
@@ -49,8 +49,7 @@ readRDS <- function(file, refhook = NULL)
con <- gzfile(file, "rb")
on.exit(close(con))
} else if (inherits(file, "connection"))
- con <- if(inherits(file, "gzfile") || inherits(file, "gzcon")) file
- else gzcon(file)
+ con <- if(inherits(file, "url")) gzcon(file) else file
else stop("bad 'file' argument")
.Internal(unserializeFromConn(con, refhook))
}
diff --git a/src/library/base/R/tapply.R b/src/library/base/R/tapply.R
index 6ce5682..9c12502 100644
--- a/src/library/base/R/tapply.R
+++ b/src/library/base/R/tapply.R
@@ -46,7 +46,8 @@ tapply <- function (X, INDEX, FUN = NULL, ..., default = NA, simplify = TRUE)
ansmat <- array(
if (simplify && all(lengths(ans) == 1L)) {
ans <- unlist(ans, recursive = FALSE, use.names = FALSE)
- if(!is.null(ans) && is.na(default) && is.atomic(ans)) vector(typeof(ans))
+ if(!is.null(ans) && is.na(default) && is.atomic(ans))
+ vector(typeof(ans))
else default
} else vector("list", prod(extent)),
dim = extent, dimnames = namelist)
diff --git a/src/library/base/man/connections.Rd b/src/library/base/man/connections.Rd
index fdbbb90..50a4855 100644
--- a/src/library/base/man/connections.Rd
+++ b/src/library/base/man/connections.Rd
@@ -252,7 +252,9 @@ isIncomplete(con)
\code{close} returns either \code{NULL} or an integer status,
invisibly. The status is from when the connection was last closed and
is available only for some types of connections (e.g., pipes, files and
- fifos): typically zero values indicate success.
+ fifos): typically zero values indicate success. Negative values will
+ result in a warning; if writing, these may indicate write failures and should
+ not be ignored.
\code{isOpen} returns a logical value, whether the connection is
currently open.
diff --git a/src/library/base/man/files2.Rd b/src/library/base/man/files2.Rd
index 75c96ea..f9d13ee 100644
--- a/src/library/base/man/files2.Rd
+++ b/src/library/base/man/files2.Rd
@@ -146,7 +146,7 @@ Sys.umask(mode = NA)
\examples{\dontrun{
## Fix up maximal allowed permissions in a file tree
Sys.chmod(list.dirs("."), "777")
-f <- list.files(".", all.files = TRUE, full.names = TRUE, recursive TRUE)
+f <- list.files(".", all.files = TRUE, full.names = TRUE, recursive = TRUE)
Sys.chmod(f, (file.info(f)$mode | "664"))
}}
\keyword{file}
diff --git a/src/library/base/man/locales.Rd b/src/library/base/man/locales.Rd
index c15aa30..2531759 100644
--- a/src/library/base/man/locales.Rd
+++ b/src/library/base/man/locales.Rd
@@ -1,6 +1,6 @@
% File src/library/base/man/locales.Rd
% Part of the R package, https://www.R-project.org
-% Copyright 1995-2016 R Core Team
+% Copyright 1995-2017 R Core Team
% Distributed under GPL 2 or later
\name{locales}
@@ -56,7 +56,7 @@ Sys.setlocale(category = "LC_ALL", locale = "")
support message translation, and is not supported on Windows. Trying
to use an unsupported category is an error for \code{Sys.setlocale}.
- Note that setting category \code{"LC_ALL"} sets only
+ Note that setting category \code{"LC_ALL"} sets only categories
\code{"LC_COLLATE"}, \code{"LC_CTYPE"}, \code{"LC_MONETARY"} and
\code{"LC_TIME"}.
@@ -95,10 +95,11 @@ Sys.setlocale(category = "LC_ALL", locale = "")
% assume this just affects strtod/atof, scanf/printf and friends,
% as seems to be the case in glibc.
\section{Warning}{
- Setting \code{"LC_NUMERIC"} may cause \R to function
- anomalously, so gives a warning. Input conversions
- in \R itself are unaffected, but the reading and writing of ASCII
- \code{\link{save}} files will be, as may packages.
+ Setting \code{"LC_NUMERIC"} to any value other than \code{"C"} may
+ cause \R to function anomalously, so gives a warning. Input
+ conversions in \R itself are unaffected, but the reading and writing
+ of ASCII \code{\link{save}} files will be, as may packages which do
+ their own input/output.
Setting it temporarily on a Unix-alike to produce graphical or text
output may work well enough, but \code{\link{options}(OutDec)} is
@@ -131,15 +132,15 @@ Sys.getlocale()
Sys.getlocale("LC_TIME")
\dontrun{
Sys.setlocale("LC_TIME", "de") # Solaris: details are OS-dependent
-Sys.setlocale("LC_TIME", "de_DE.utf8") # Modern Linux etc.
-Sys.setlocale("LC_TIME", "de_DE.UTF-8") # ditto
-Sys.setlocale("LC_TIME", "de_DE") # macOS, in UTF-8
+Sys.setlocale("LC_TIME", "de_DE") # Many Unix-alikes
+Sys.setlocale("LC_TIME", "de_DE.UTF-8") # Linux, macOS, other Unix-alikes
+Sys.setlocale("LC_TIME", "de_DE.utf8") # some Linux versions
Sys.setlocale("LC_TIME", "German") # Windows
}
Sys.getlocale("LC_PAPER") # may or may not be set
\dontrun{
Sys.setlocale("LC_COLLATE", "C") # turn off locale-specific sorting,
- # usually, but not on all platforms}
+ # usually (but not on all platforms)}
}
\keyword{utilities}
diff --git a/src/library/base/man/rank.Rd b/src/library/base/man/rank.Rd
index 75d9810..ca86191 100644
--- a/src/library/base/man/rank.Rd
+++ b/src/library/base/man/rank.Rd
@@ -1,6 +1,6 @@
% File src/library/base/man/rank.Rd
% Part of the R package, https://www.R-project.org
-% Copyright 1995-2015 R Core Team
+% Copyright 1995-2017 R Core Team
% Distributed under GPL 2 or later
\name{rank}
@@ -34,7 +34,7 @@ rank(x, na.last = TRUE,
(called \sQuote{ties}), the argument \code{ties.method} determines the
result at the corresponding indices. The \code{"first"} method results
in a permutation with increasing values at each index set of ties, and
- analogously \code{"first"} with decreasing values. The
+ analogously \code{"last"} with decreasing values. The
\code{"random"} method puts these in random order whereas the
default, \code{"average"}, replaces them by their mean, and
\code{"max"} and \code{"min"} replaces them by their maximum and
diff --git a/src/library/base/man/strptime.Rd b/src/library/base/man/strptime.Rd
index 4475f38..34ab480 100644
--- a/src/library/base/man/strptime.Rd
+++ b/src/library/base/man/strptime.Rd
@@ -66,11 +66,15 @@ strptime(x, format, tz = "")
Locale-specific conversions to and from character strings are used
where appropriate and available. This affects the names of the days
- and months, the AM/PM indicator (if used) and the separators in
- formats such as \code{\%x} and \code{\%X}, via the setting of the
- \code{\link{LC_TIME}} locale category. The \sQuote{current locale} of
- the descriptions might mean the locale in use at the start of the \R
- session or when these functions are first used.
+ and months, the AM/PM indicator (if used) and the separators in output
+ formats such as \code{\%x} and \code{\%X}, \emph{via} the setting of
+ the \code{\link{LC_TIME}} locale category. The \sQuote{current
+ locale} of the descriptions might mean the locale in use at the start
+ of the \R session or when these functions are first used. (For input,
+ the locale-specific conversions can be changed by calling
+ \code{\link{Sys.setlocale}} with category \code{LC_TIME} since \R
+ 3.1.0 or \code{LC_ALL} since \R 3.4.1. For output, what happens
+ depends on the OS.)
% strftime is C99: strptime is POSIX.
The details of the formats are platform-specific, but the following are
@@ -118,13 +122,17 @@ strptime(x, format, tz = "")
\item{\code{\%n}}{Newline on output, arbitrary whitespace on input.}
\item{\code{\%p}}{AM/PM indicator in the locale. Used in
conjunction with \code{\%I} and \bold{not} with \code{\%H}. An
- empty string in some locales (and the behaviour is undefined if
- used for input in such a locale).
+ empty string in some locales (for example on some OSes,
+ non-English European locales including Russia). The behaviour is
+ undefined if used for input in such a locale.
Some platforms accept \code{\%P} for output, which uses a lower-case
- version: others will output \code{P}.}
- \item{\code{\%r}}{The 12-hour clock time (using the locale's AM or
- PM). Only defined in some locales.}
+ version (\code{\%p} may also use lower case): others will output
+ \code{P}.}
+ \item{\code{\%r}}{For output, the 12-hour clock time (using the
+ locale's AM or PM): only defined in some locales, and on some OSes
+ misleading in locales which do not define an AM/PM indicator.
+ For input, equivalent to \code{\%I:\%M:\%S \%p}.}
\item{\code{\%R}}{Equivalent to \code{\%H:\%M}.}
\item{\code{\%S}}{Second as integer (00--61), allowing for
up to two leap-seconds (but POSIX-compliant implementations
@@ -316,9 +324,9 @@ strptime(x, format, tz = "")
\emph{ISO 8601. Data elements and interchange formats --
Information interchange -- Representation of dates and times.}
For links to versions available on-line see (at the time of writing)
- \url{http://dotat.at/tmp/ISO_8601-2004_E.pdf} and
+ \url{https://dotat.at/tmp/ISO_8601-2004_E.pdf} and
\url{http://www.qsl.net/g1smd/isopdf.htm}; for information on the
- current official version, see \url{http://www.iso.org/iso/iso8601}.
+ current official version, see \url{https://www.iso.org/iso/iso8601}.
The POSIX 1003.1 standard, which is in some respects stricter than ISO 8601.
}
diff --git a/src/library/compiler/R/cmp.R b/src/library/compiler/R/cmp.R
index 102d0cc..280817c 100644
--- a/src/library/compiler/R/cmp.R
+++ b/src/library/compiler/R/cmp.R
@@ -89,7 +89,6 @@ missingArgs <- function(args) {
frameTypes <- function(env) {
top <- topenv(env)
empty <- emptyenv()
- base <- baseenv()
nl <- 0
while (! identical(env, top)) {
if (isNamespace(env))
@@ -961,7 +960,8 @@ genCode <- function(e, cntxt, gen = NULL, loc = NULL) {
##
make.toplevelContext <- function(cenv, options = NULL)
- structure(list(tailcall = TRUE,
+ structure(list(toplevel = TRUE,
+ tailcall = TRUE,
needRETURNJMP = FALSE,
env = cenv,
optimize = getCompilerOption("optimize", options),
@@ -980,6 +980,7 @@ make.callContext <- function(cntxt, call) {
}
make.promiseContext <- function(cntxt) {
+ cntxt$toplevel <- FALSE
cntxt$tailcall <- TRUE
cntxt$needRETURNJMP <- TRUE
if (! is.null(cntxt$loop))
@@ -1002,6 +1003,7 @@ make.nonTailCallContext <- function(cntxt) {
}
make.argContext <- function(cntxt) {
+ cntxt$toplevel <- FALSE
cntxt$tailcall <- FALSE
if (! is.null(cntxt$loop))
cntxt$loop$gotoOK <- FALSE
@@ -1340,7 +1342,7 @@ tryInline <- function(e, cb, cntxt) {
if (! is.null(h)) {
if (info$guard) {
tailcall <- cntxt$tailcall
- if (tailcall) cntxttailcall <- FALSE
+ if (tailcall) cntxt$tailcall <- FALSE
expridx <- cb$putconst(e)
endlabel <- cb$makelabel()
cb$putcode(BASEGUARD.OP, expridx, endlabel)
@@ -1562,6 +1564,8 @@ tryGetterInline <- function(call, cb, cntxt) {
}
cmpAssign <- function(e, cb, cntxt) {
+ if (! cntxt$toplevel)
+ return(cmpSpecial(e, cb, cntxt))
if (! checkAssign(e, cntxt))
return(cmpSpecial(e, cb, cntxt))
superAssign <- as.character(e[[1]]) == "<<-"
@@ -1897,7 +1901,7 @@ checkSkipLoopCntxt <- function(e, cntxt, breakOK = TRUE) {
TRUE
else if (isLoopTopFun(fname, cntxt))
checkSkipLoopCntxtList(e[-1], cntxt, breakOK)
- else if (fname %in% c("eval", "evalq"))
+ else if (fname %in% c("eval", "evalq", "source"))
FALSE
else
checkSkipLoopCntxtList(e[-1], cntxt, FALSE)
@@ -2497,7 +2501,6 @@ is.simpleInternal <- function(def) {
inlineSimpleInternalCall <- function(e, def) {
if (! dots.or.missing(e) && is.simpleInternal(def)) {
forms <- formals(def)
- fnames <- names(forms)
b <- body(def)
if (typeof(b) == "language" && length(b) == 2 && b[[1]] == "{")
b <- b[[2]]
@@ -3024,7 +3027,7 @@ loadcmp <- function (file, envir = .GlobalEnv, chdir = FALSE) {
setwd(path)
}
for (i in exprs) {
- yy <- eval(i, envir)
+ eval(i, envir)
}
invisible()
}
diff --git a/src/library/compiler/noweb/compiler.nw b/src/library/compiler/noweb/compiler.nw
index 8f039b3..19ae012 100644
--- a/src/library/compiler/noweb/compiler.nw
+++ b/src/library/compiler/noweb/compiler.nw
@@ -1076,16 +1076,19 @@ Top level compiler functions start by creating a top level context.
The constructor for top level contexts takes as arguments the current
compilation environment, described in Section \ref{sec:environments},
and a list of option values used to override default option settings.
-Top level expressions are assumed to be in tail position, so the
-[[tailcall]] field is initialized as [[TRUE]]. The [[needRETURNJMP]]
-specifies whether a call to the [[return]] function can use the
-[[RETURN]] instruction or has to use a [[longjmp]] via the
+The [[toplevel]] field will be set to [[FALSE]] for compiling
+expressions, such as function arguments, that do not appear at top
+level. Top level expressions are assumed to be in tail position, so
+the [[tailcall]] field is initialized as [[TRUE]]. The
+[[needRETURNJMP]] specifies whether a call to the [[return]] function
+can use the [[RETURN]] instruction or has to use a [[longjmp]] via the
[[RETURNJMP]] instruction. Initially using a simple [[RETURN]] is
safe; this is set set to [[TRUE]] when compiling promises ad certain
loops where [[RETURNJMP]] is needed.
<<[[make.toplevelContext]] function>>=
make.toplevelContext <- function(cenv, options = NULL)
- structure(list(tailcall = TRUE,
+ structure(list(toplevel = TRUE,
+ tailcall = TRUE,
needRETURNJMP = FALSE,
env = cenv,
optimize = getCompilerOption("optimize", options),
@@ -1181,6 +1184,7 @@ since a [[return]] call that is triggered by forcing a promise
requires a [[longjmp]] to return from the appropriate function.
<<[[make.argContext]] function>>=
make.argContext <- function(cntxt) {
+ cntxt$toplevel <- FALSE
cntxt$tailcall <- FALSE
if (! is.null(cntxt$loop))
cntxt$loop$gotoOK <- FALSE
@@ -1189,6 +1193,7 @@ make.argContext <- function(cntxt) {
@ %def make.argContext
<<[[make.promiseContext]] function>>=
make.promiseContext <- function(cntxt) {
+ cntxt$toplevel <- FALSE
cntxt$tailcall <- TRUE
cntxt$needRETURNJMP <- TRUE
if (! is.null(cntxt$loop))
@@ -1971,7 +1976,7 @@ handled as a non-tail-call; if the call is in tail position, then a
return instruction is emitted.
<<inline with a guard instruction>>=
tailcall <- cntxt$tailcall
-if (tailcall) cntxttailcall <- FALSE
+if (tailcall) cntxt$tailcall <- FALSE
expridx <- cb$putconst(e)
endlabel <- cb$makelabel()
cb$putcode(BASEGUARD.OP, expridx, endlabel)
@@ -2995,7 +3000,7 @@ expressions are calls to the three loop functions and to [[function]].
Calls to functions like [[quote]] that are known not to evaluate their
arguments could also be included among the stop functions but this
doesn't seem particularly worth while at this time. Loops that include a
-call to [[eval]] (or [[evalq]]) are compiled with context to support a
+call to [[eval]] (or [[evalq]], [[source]]) are compiled with context to support a
programming pattern present e.g. in package [[Rmpi]]: a server application
is implemented using an infinite loop, which evaluates de-serialized code
received from the client; the server shuts down when it receives a
@@ -3014,7 +3019,7 @@ checkSkipLoopCntxt <- function(e, cntxt, breakOK = TRUE) {
TRUE
else if (isLoopTopFun(fname, cntxt))
checkSkipLoopCntxtList(e[-1], cntxt, breakOK)
- else if (fname %in% c("eval", "evalq"))
+ else if (fname %in% c("eval", "evalq", "source"))
FALSE
else
checkSkipLoopCntxtList(e[-1], cntxt, FALSE)
@@ -3448,7 +3453,6 @@ can be done by a function [[inlineSimpleInternalCall]] defined as
inlineSimpleInternalCall <- function(e, def) {
if (! dots.or.missing(e) && is.simpleInternal(def)) {
forms <- formals(def)
- fnames <- names(forms)
b <- body(def)
if (typeof(b) == "language" && length(b) == 2 && b[[1]] == "{")
b <- b[[2]]
@@ -4008,8 +4012,19 @@ Assignment expressions are compiled by [[cmpAssign]]. This function
checks the form of the assignment expression and, for well formed
expressions then uses [[cmpSymbolAssign]] for simple assignments and
[[cmpComplexAssign]] for complex assignments.
+
+For now, a temporary hack is needed to address a discrepancy between
+byte code and AST code that can be caused by assignments in arguments
+to primitives. The root issue is that we are not recording referenced
+to arguments that have been evaluated. Once that is addressed we can
+remove this hack.
+<<temporary hack to deal with assignments in arguments issue>>=
+if (! cntxt$toplevel)
+ return(cmpSpecial(e, cb, cntxt))
+@
<<[[cmpAssign]] function>>=
cmpAssign <- function(e, cb, cntxt) {
+ <<temporary hack to deal with assignments in arguments issue>>
if (! checkAssign(e, cntxt))
return(cmpSpecial(e, cb, cntxt))
superAssign <- as.character(e[[1]]) == "<<-"
@@ -5050,7 +5065,7 @@ loadcmp <- function (file, envir = .GlobalEnv, chdir = FALSE) {
setwd(path)
}
for (i in exprs) {
- yy <- eval(i, envir)
+ eval(i, envir)
}
invisible()
}
@@ -5623,7 +5638,6 @@ result using [[rep]].
frameTypes <- function(env) {
top <- topenv(env)
empty <- emptyenv()
- base <- baseenv()
<<find the number [[nl]] of local frames>>
<<find the number [[nn]] of namespace frames>>
<<find the number [[ng]] of global frames>>
diff --git a/src/library/compiler/tests/vischk.R b/src/library/compiler/tests/vischk.R
new file mode 100644
index 0000000..6afab9c
--- /dev/null
+++ b/src/library/compiler/tests/vischk.R
@@ -0,0 +1,121 @@
+## Check that R_Visible is being set properly.
+
+library(compiler)
+vcheck <- function(expr)
+ stopifnot(withVisible(eval(compile(substitute(expr))))$visible)
+
+asfoo <- function(x) structure(x, class = "foo")
+xfoo <- asfoo(1)
+
+## FastMath1
+vcheck(sqrt(invisible(2)))
+vcheck(exp(invisible(2)))
+vcheck(sqrt(invisible(2L)))
+vcheck(exp(invisible(2L)))
+vcheck(sqrt(invisible(xfoo)))
+vcheck(exp(invisible(xfoo)))
+
+## FastUnary
+vcheck(+ invisible(2))
+vcheck(- invisible(2))
+vcheck(+ invisible(2L))
+vcheck(- invisible(2L))
+vcheck(+ invisible(xfoo))
+vcheck(- invisible(xfoo))
+
+## FastBinary
+vcheck(1 + invisible(2))
+vcheck(1 - invisible(2))
+vcheck(3 * invisible(2))
+vcheck(1 / invisible(2))
+vcheck(3 ^ invisible(2))
+vcheck(1 + invisible(2L))
+vcheck(1L + invisible(2))
+vcheck(1 + invisible(xfoo))
+
+## FastRelop2
+vcheck(1 == invisible(2))
+vcheck(1 != invisible(2))
+vcheck(1 < invisible(2))
+vcheck(1 <= invisible(2))
+vcheck(1 >= invisible(2))
+vcheck(1 > invisible(2))
+vcheck(1 > invisible(2L))
+vcheck(1L > invisible(2L))
+vcheck(1 > invisible(xfoo))
+
+## Builtin2
+vcheck(1 & invisible(2))
+vcheck(0 | invisible(2))
+vcheck(0 | invisible(2L))
+vcheck(0L | invisible(2L))
+vcheck(0 | invisible(xfoo))
+
+## Builtin1
+vcheck(! invisible(2))
+vcheck(! invisible(2L))
+vcheck(! invisible(xfoo))
+
+## DO_VECSUBSET
+vcheck(1[invisible(1)])
+vcheck(xfoo[invisible(1)])
+
+## MATSUBSET_PTR
+vcheck(matrix(1)[1, invisible(1)])
+vcheck(asfoo(matrix(1))[1, invisible(1)])
+
+## SUBSET_N_PTR
+vcheck(array(1, c(1, 1, 1))[1, 1, invisible(1)])
+vcheck(asfoo(array(1, c(1, 1, 1)))[1, 1, invisible(1)])
+
+## DO_DFLTDISPATCH
+vcheck(invisible(1)[])
+vcheck(matrix(1)[,invisible(1)])
+## not sure how to trigger [[ issue
+vcheck(c(invisible(2)))
+vcheck(xfoo[])
+
+## DOLLAR
+vcheck(invisible(list(x = 1))$x)
+`$.foo` <- function(x, y) invisible(x)
+vcheck(xfoo$bar)
+
+## ISINTEGER
+vcheck(is.integer(invisible(1)))
+vcheck(is.integer(invisible(xfoo)))
+
+## DO_ISTYPE
+vcheck(is.logical(invisible(1)))
+vcheck(is.double(invisible(1)))
+vcheck(is.complex(invisible(1)))
+vcheck(is.character(invisible(1)))
+vcheck(is.symbol(invisible(1)))
+
+## DO_ISTEST
+vcheck(is.null(invisible(1)))
+vcheck(is.object(invisible(1)))
+vcheck(is.numeric(invisible(1)))
+
+## &&, ||
+vcheck(invisible(TRUE) || FALSE)
+vcheck(FALSE || invisible(FALSE))
+vcheck(invisible(FALSE) && FALSE)
+vcheck(TRUE && invisible(TRUE))
+
+## LOG, LOGBASE, MATH1
+vcheck(log(invisible(2)))
+vcheck(log(2, invisible(2)))
+vcheck(log(invisible(xfoo)))
+vcheck(log(xfoo, invisible(2)))
+vcheck(sin(invisible(2)))
+vcheck(cos(invisible(2)))
+
+## DOTCALL
+
+## COLON, SEQLEN, SEQALONG
+vcheck(1 : invisible(2))
+vcheck(1 : invisible(xfoo))
+vcheck(seq_len(invisible(2)))
+vcheck(seq_len(invisible(xfoo)))
+vcheck(seq_along(invisible(1)))
+vcheck(seq_along(invisible(xfoo)))
diff --git a/src/library/grDevices/R/calc.R b/src/library/grDevices/R/calc.R
index 81acbae..6700195 100644
--- a/src/library/grDevices/R/calc.R
+++ b/src/library/grDevices/R/calc.R
@@ -1,7 +1,7 @@
# File src/library/grDevices/R/calc.R
# Part of the R package, https://www.R-project.org
#
-# Copyright (C) 1995-2016 The R Core Team
+# Copyright (C) 1995-2017 The R Core Team
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -96,14 +96,21 @@ nclass.Sturges <- function(x) ceiling(log2(length(x)) + 1)
nclass.scott <- function(x)
{
h <- 3.5 * sqrt(stats::var(x)) * length(x)^(-1/3)
- if(h > 0) ceiling(diff(range(x))/h) else 1L
+ if(h > 0) max(1, ceiling(diff(range(x))/h)) else 1L
}
nclass.FD <- function(x)
{
- h <- stats::IQR(x)
- if(h == 0) h <- stats::mad(x, constant = 2) # c=2: consistent with IQR
- if (h > 0) ceiling(diff(range(x))/(2 * h * length(x)^(-1/3))) else 1L
+ h <- 2 * stats::IQR(x. <- signif(x, digits = 5))
+ if (h == 0) {
+ x. <- sort(x.)
+ al <- 1/4; al.min <- 1/512 # try quantiles 1/8, 1/16, ... 1/512
+ while(h == 0 && (al <- al/2) >= al.min)
+ h <- diff(stats::quantile(x., c(al, 1-al), names = FALSE)) / (1 - 2*al)
+ }
+ if (h == 0) ## revert to Scott's:
+ h <- 3.5 * sqrt(stats::var(x))
+ if (h > 0) ceiling(diff(range(x))/h * length(x)^(1/3)) else 1L
}
diff --git a/src/library/grDevices/man/nclass.Rd b/src/library/grDevices/man/nclass.Rd
index 6326105..4be111f 100644
--- a/src/library/grDevices/man/nclass.Rd
+++ b/src/library/grDevices/man/nclass.Rd
@@ -1,6 +1,6 @@
% File src/library/grDevices/man/nclass.Rd
% Part of the R package, https://www.R-project.org
-% Copyright 1995-2014 R Core Team
+% Copyright 1995-2017 R Core Team
% Distributed under GPL 2 or later
\name{nclass}
@@ -18,9 +18,7 @@ nclass.scott(x)
nclass.FD(x)
}
\arguments{
- \item{x}{
- A data vector.
- }
+ \item{x}{a data vector.}
}
\value{
The suggested number of classes.
@@ -34,9 +32,10 @@ nclass.FD(x)
returns \code{1}.
\code{nclass.FD} uses the Freedman-Diaconis choice based on the
- inter-quartile range (\code{\link{IQR}}) unless that's zero where it
- reverts to \code{\link{mad}(x, constant = 2)} and when that is \eqn{0}
- as well, returns \code{1}.
+ inter-quartile range (\code{\link{IQR}(signif(x, 5))}) unless that's
+ zero where it uses increasingly more extreme symmetric quantiles up to
+ c(1,511)/512 and if that difference is still zero, reverts to using
+ Scott's choice.
}
\references{
Venables, W. N. and Ripley, B. D. (2002)
diff --git a/src/library/grDevices/src/devPicTeX.c b/src/library/grDevices/src/devPicTeX.c
index c7e9ebe..5ea18c7 100644
--- a/src/library/grDevices/src/devPicTeX.c
+++ b/src/library/grDevices/src/devPicTeX.c
@@ -1,8 +1,8 @@
/*
* A PicTeX device, (C) 1996 Valerio Aimale, for
* R : A Computer Language for Statistical Data Analysis
+ * Copyright (C) 2001--2017 The R Core Team
* Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka
- * Copyright (C) 2001-2013 The R Core Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -186,7 +186,6 @@ static void PicTeX_Text(double x, double y, const char *str,
double rot, double hadj,
const pGEcontext gc,
pDevDesc dd);
-static Rboolean PicTeX_Open(pDevDesc, picTeXDesc*);
/* Support routines */
@@ -236,24 +235,6 @@ static void PicTeX_MetricInfo(int c,
/* Initialize the device */
-static Rboolean PicTeX_Open(pDevDesc dd, picTeXDesc *ptd)
-{
- ptd->fontsize = 0;
- ptd->fontface = 0;
- ptd->debug = FALSE;
- if (!(ptd->texfp = R_fopen(R_ExpandFileName(ptd->filename), "w")))
- return FALSE;
- fprintf(ptd->texfp, "\\hbox{\\beginpicture\n");
- fprintf(ptd->texfp, "\\setcoordinatesystem units <1pt,1pt>\n");
- fprintf(ptd->texfp,
- "\\setplotarea x from 0 to %.2f, y from 0 to %.2f\n",
- in2dots(ptd->width), in2dots(ptd->height));
- fprintf(ptd->texfp,"\\setlinear\n");
- fprintf(ptd->texfp, "\\font\\picfont cmss10\\picfont\n");
- SetFont(1, 10, ptd);
- ptd->pageno++;
- return TRUE;
-}
/* Interactive Resize */
@@ -628,6 +609,10 @@ Rboolean PicTeXDeviceDriver(pDevDesc dd, const char *filename,
if (!(ptd = (picTeXDesc *) malloc(sizeof(picTeXDesc))))
return FALSE;
+ if (!(ptd->texfp = R_fopen(R_ExpandFileName(filename), "w"))) {
+ free(ptd);
+ return FALSE;
+ }
strcpy(ptd->filename, filename);
@@ -665,8 +650,19 @@ Rboolean PicTeXDeviceDriver(pDevDesc dd, const char *filename,
ptd->width = width;
ptd->height = height;
- if( ! PicTeX_Open(dd, ptd) )
- return FALSE;
+ // PicTeX_Open():
+ ptd->fontsize = 0;
+ ptd->fontface = 0;
+ ptd->debug = FALSE;
+ fprintf(ptd->texfp, "\\hbox{\\beginpicture\n");
+ fprintf(ptd->texfp, "\\setcoordinatesystem units <1pt,1pt>\n");
+ fprintf(ptd->texfp,
+ "\\setplotarea x from 0 to %.2f, y from 0 to %.2f\n",
+ in2dots(ptd->width), in2dots(ptd->height));
+ fprintf(ptd->texfp,"\\setlinear\n");
+ fprintf(ptd->texfp, "\\font\\picfont cmss10\\picfont\n");
+ SetFont(1, 10, ptd);
+ ptd->pageno++;
/* Base Pointsize */
/* Nominal Character Sizes in Pixels */
diff --git a/src/library/grDevices/tests/ps-tests.Rout.save b/src/library/grDevices/tests/ps-tests.Rout.save
index 8bef226..aea7b6a 100644
--- a/src/library/grDevices/tests/ps-tests.Rout.save
+++ b/src/library/grDevices/tests/ps-tests.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -95,4 +95,4 @@ null device
>
> proc.time()
user system elapsed
- 0.402 0.012 0.409
+ 0.430 0.017 0.437
diff --git a/src/library/grDevices/tests/xfig-tests.Rout.save b/src/library/grDevices/tests/xfig-tests.Rout.save
index 17c07cf..16ac81c 100644
--- a/src/library/grDevices/tests/xfig-tests.Rout.save
+++ b/src/library/grDevices/tests/xfig-tests.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -102,4 +102,4 @@ Type 'q()' to quit R.
>
> proc.time()
user system elapsed
- 0.142 0.011 0.148
+ 0.193 0.013 0.195
diff --git a/src/library/graphics/R/hist.R b/src/library/graphics/R/hist.R
index 65fb03a..78b033d 100644
--- a/src/library/graphics/R/hist.R
+++ b/src/library/graphics/R/hist.R
@@ -1,7 +1,7 @@
# File src/library/graphics/R/hist.R
# Part of the R package, https://www.R-project.org
#
-# Copyright (C) 1995-2014 The R Core Team
+# Copyright (C) 1995-2017 The R Core Team
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -73,6 +73,11 @@ hist.default <-
if (length(breaks) == 1) {
if(!is.numeric(breaks) || !is.finite(breaks) || breaks < 1L)
stop("invalid number of 'breaks'")
+ if(breaks > 1e6) { # pretty() must have n <= maximal integer
+ warning(gettextf("'breaks = %g' is too large and set to 1e6",
+ breaks), domain = NA)
+ breaks <- 1e6L
+ }
breaks <- pretty (range(x), n = breaks, min.n = 1)
nB <- length(breaks)
if(nB <= 1) ##-- Impossible !
diff --git a/src/library/graphics/man/hist.Rd b/src/library/graphics/man/hist.Rd
index a867efc..09692da 100644
--- a/src/library/graphics/man/hist.Rd
+++ b/src/library/graphics/man/hist.Rd
@@ -1,6 +1,6 @@
% File src/library/graphics/man/hist.Rd
% Part of the R package, https://www.R-project.org
-% Copyright 1995-2015 R Core Team
+% Copyright 1995-2017 R Core Team
% Distributed under GPL 2 or later
\name{hist}
@@ -31,10 +31,12 @@ hist(x, \dots)
number of cells (see \sQuote{Details}),
\item a function to compute the number of cells.
}
- In the last three cases the number is a suggestion only; the
- breakpoints will be set to \code{\link{pretty}} values. If
- \code{breaks} is a function, the \code{x} vector is supplied to it
- as the only argument.
+ In the last three cases the number is a suggestion only; as the
+ breakpoints will be set to \code{\link{pretty}} values, the number
+ is limited to \code{1e6} (with a warning if it was larger). If
+ \code{breaks} is a function, the \code{x} vector is supplied to it
+ as the only argument (and the number of breaks is only limited by
+ the amount of available memory).
}
\item{freq}{logical; if \code{TRUE}, the histogram graphic is a
representation of frequencies, the \code{counts} component of
@@ -182,7 +184,13 @@ str(hist(islands, breaks = c(12,20,36,80,200,1000,17000), plot = FALSE))
hist(islands, breaks = c(12,20,36,80,200,1000,17000), freq = TRUE,
main = "WRONG histogram") # and warning
-
+\donttest{% save 2 seconds
+## Extreme outliers; the "FD" rule would take very large number of 'breaks':
+XXL <- c(1:9, c(-1,1)*1e300)
+hh <- hist(XXL, "FD") # did not work in R <= 3.4.1; now gives warning
+## pretty() determines how many counts are used (platform dependently!):
+length(hh$breaks) ## typically 1 million -- though 1e6 was "a suggestion only"
+}
require(stats)
set.seed(14)
x <- rchisq(100, df = 4)
diff --git a/src/library/graphics/src/graphics.c b/src/library/graphics/src/graphics.c
index 47dd379..eae07d3 100644
--- a/src/library/graphics/src/graphics.c
+++ b/src/library/graphics/src/graphics.c
@@ -2485,6 +2485,7 @@ void GForceClip(pGEDevDesc dd)
if (gpptr(dd)->state == 0) return;
setClipRect(&x1, &y1, &x2, &y2, DEVICE, dd);
GESetClip(x1, y1, x2, y2, dd);
+ gpptr(dd)->oldxpd = gpptr(dd)->xpd;
}
/*
diff --git a/src/library/grid/inst/doc/displaylist.pdf b/src/library/grid/inst/doc/displaylist.pdf
index d6f8162..f2c8dcf 100644
--- a/src/library/grid/inst/doc/displaylist.pdf
+++ b/src/library/grid/inst/doc/displaylist.pdf
Binary files differ
diff --git a/src/library/grid/inst/doc/frame.pdf b/src/library/grid/inst/doc/frame.pdf
index c2c4b66..6afb489 100644
--- a/src/library/grid/inst/doc/frame.pdf
+++ b/src/library/grid/inst/doc/frame.pdf
Binary files differ
diff --git a/src/library/grid/inst/doc/grid.pdf b/src/library/grid/inst/doc/grid.pdf
index 052968b..f10adac 100644
--- a/src/library/grid/inst/doc/grid.pdf
+++ b/src/library/grid/inst/doc/grid.pdf
Binary files differ
diff --git a/src/library/grid/inst/doc/grobs.pdf b/src/library/grid/inst/doc/grobs.pdf
index d43e4d8..6be60ea 100644
--- a/src/library/grid/inst/doc/grobs.pdf
+++ b/src/library/grid/inst/doc/grobs.pdf
Binary files differ
diff --git a/src/library/grid/inst/doc/interactive.pdf b/src/library/grid/inst/doc/interactive.pdf
index 1564c34..c931e63 100644
--- a/src/library/grid/inst/doc/interactive.pdf
+++ b/src/library/grid/inst/doc/interactive.pdf
Binary files differ
diff --git a/src/library/grid/inst/doc/locndimn.pdf b/src/library/grid/inst/doc/locndimn.pdf
index 1039063..c83bb3b 100644
--- a/src/library/grid/inst/doc/locndimn.pdf
+++ b/src/library/grid/inst/doc/locndimn.pdf
Binary files differ
diff --git a/src/library/grid/inst/doc/moveline.pdf b/src/library/grid/inst/doc/moveline.pdf
index f96eb46..125dac7 100644
--- a/src/library/grid/inst/doc/moveline.pdf
+++ b/src/library/grid/inst/doc/moveline.pdf
Binary files differ
diff --git a/src/library/grid/inst/doc/nonfinite.pdf b/src/library/grid/inst/doc/nonfinite.pdf
index 384c766..97ba097 100644
--- a/src/library/grid/inst/doc/nonfinite.pdf
+++ b/src/library/grid/inst/doc/nonfinite.pdf
Binary files differ
diff --git a/src/library/grid/inst/doc/plotexample.pdf b/src/library/grid/inst/doc/plotexample.pdf
index bada2fd..bd3d15e 100644
--- a/src/library/grid/inst/doc/plotexample.pdf
+++ b/src/library/grid/inst/doc/plotexample.pdf
Binary files differ
diff --git a/src/library/grid/inst/doc/rotated.pdf b/src/library/grid/inst/doc/rotated.pdf
index 359e64e..8185a9c 100644
--- a/src/library/grid/inst/doc/rotated.pdf
+++ b/src/library/grid/inst/doc/rotated.pdf
Binary files differ
diff --git a/src/library/grid/inst/doc/saveload.pdf b/src/library/grid/inst/doc/saveload.pdf
index 042f4ec..c07f355 100644
--- a/src/library/grid/inst/doc/saveload.pdf
+++ b/src/library/grid/inst/doc/saveload.pdf
Binary files differ
diff --git a/src/library/grid/inst/doc/sharing.pdf b/src/library/grid/inst/doc/sharing.pdf
index b6b3769..8844cd4 100644
--- a/src/library/grid/inst/doc/sharing.pdf
+++ b/src/library/grid/inst/doc/sharing.pdf
Binary files differ
diff --git a/src/library/grid/inst/doc/viewports.pdf b/src/library/grid/inst/doc/viewports.pdf
index 94730cf..43a26ee 100644
--- a/src/library/grid/inst/doc/viewports.pdf
+++ b/src/library/grid/inst/doc/viewports.pdf
Binary files differ
diff --git a/src/library/grid/tests/testls.Rout.save b/src/library/grid/tests/testls.Rout.save
index b7bba40..387c3c4 100644
--- a/src/library/grid/tests/testls.Rout.save
+++ b/src/library/grid/tests/testls.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -340,4 +340,4 @@ List of 6
>
> proc.time()
user system elapsed
- 0.246 0.018 0.254
+ 0.207 0.011 0.214
diff --git a/src/library/methods/R/NextMethod.R b/src/library/methods/R/NextMethod.R
index 029482e..eeac6be 100644
--- a/src/library/methods/R/NextMethod.R
+++ b/src/library/methods/R/NextMethod.R
@@ -52,6 +52,10 @@ callNextMethod <- function(...) {
nextMethod <- nextMethodEnv$.nextMethod
f <- nextMethodEnv$.Generic
}
+ else if (is(maybeMethod, "MethodDefinition")) {
+ f <- maybeMethod@generic
+ method <- maybeMethod
+ }
else {
## may be a method call for a primitive; not available as .Method
if (is.primitive(mcall[[1L]])) {
diff --git a/src/library/methods/R/RMethodUtils.R b/src/library/methods/R/RMethodUtils.R
index dabd358..9a1a69a 100644
--- a/src/library/methods/R/RMethodUtils.R
+++ b/src/library/methods/R/RMethodUtils.R
@@ -1566,10 +1566,10 @@ getGroupMembers <- function(group, recursive = FALSE, character = TRUE)
if(!is(f, "genericFunction") || !identical(f@signature, "..."))
stop("argument f must be a generic function with signature \"...\"")
def <- .standardGenericDots
- fenv <- environment(f)
- environment(def) <- fenv
- assign("standardGeneric", def, envir = fenv)
- assign(".dotsCall", .makeDotsCall(formalArgs(f)), envir = fenv)
+ body(def) <- eval(call("substitute", body(def),
+ list(.dotsMethod=as.name(f@generic))))
+ environment(def) <- environment(f)
+ assign("standardGeneric", def, envir = environment(f))
f
}
@@ -1586,25 +1586,14 @@ utils::globalVariables(c(".MTable", ".AllMTable", ".dotsCall"))
if(is.null(method))
stop(gettextf("no method or default matching the \"...\" arguments in %s",
deparse(sys.call(sys.parent()), nlines = 1)), domain = NA)
- assign(".Method", method, envir = env)
- eval(.dotsCall, env)
-}
-
-
-.quoteCall <- quote(.Method(...))
-.makeDotsCall <- function(formals)
-{
- call <- .quoteCall
- if(length(formals) > 1L) {
- idots <- match("...", formals)
- for(what in formals[-idots]) {
- ## the following nonsense is required to get the names in the call
- ## expression to be empty for ... and there for other args
- eval(substitute(call$NAME <- as.name(WHAT),
- list(NAME = as.name(what), WHAT = what)))
- }
- }
- call
+ mc <- match.call(sys.function(sys.parent()), sys.call(sys.parent()),
+ expand.dots=FALSE)
+ args <- names(mc)[-1L]
+ mc[args] <- lapply(args, as.name)
+ names(mc)[names(mc) == "..."] <- ""
+ mc[[1L]] <- quote(.dotsMethod)
+ assign(name, method, env)
+ eval(mc, env)
}
.selectDotsMethod <- function(classes, mtable, allmtable)
diff --git a/src/library/parallel/inst/doc/parallel.pdf b/src/library/parallel/inst/doc/parallel.pdf
index d21c47b..32f6117 100644
--- a/src/library/parallel/inst/doc/parallel.pdf
+++ b/src/library/parallel/inst/doc/parallel.pdf
Binary files differ
diff --git a/src/library/parallel/tests/multicore2.Rout.save b/src/library/parallel/tests/multicore2.Rout.save
index 96232d8..03a2952 100644
--- a/src/library/parallel/tests/multicore2.Rout.save
+++ b/src/library/parallel/tests/multicore2.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -45,4 +45,4 @@ Calculations on Transformed Scale; Intervals on Original Scale
>
> proc.time()
user system elapsed
- 0.294 0.047 0.324
+ 0.181 0.023 0.311
diff --git a/src/library/parallel/tests/snow2.Rout.save b/src/library/parallel/tests/snow2.Rout.save
index bd476d0..2be3ba0 100644
--- a/src/library/parallel/tests/snow2.Rout.save
+++ b/src/library/parallel/tests/snow2.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -50,4 +50,4 @@ Calculations on Transformed Scale; Intervals on Original Scale
>
> proc.time()
user system elapsed
- 0.160 0.020 0.629
+ 0.177 0.031 0.671
diff --git a/src/library/parallel/vignettes/parallel.bib b/src/library/parallel/vignettes/parallel.bib
index 2b78d56..313ea71 100644
--- a/src/library/parallel/vignettes/parallel.bib
+++ b/src/library/parallel/vignettes/parallel.bib
@@ -41,7 +41,7 @@ url = "https://cran.r-project.org/package=rlecuyer"
author = {Simon Urbanek},
title = {\texttt{multicore}: {Parallel} processing of {R}
code on machines with multiple cores or {CPUs}},
- year = "2009--present",
+ year = "2009--2014",
url = "https://cran.r-project.org/package=multicore"
}
diff --git a/src/library/splines/src/splines.c b/src/library/splines/src/splines.c
index 1bbae7b..190c7b7 100644
--- a/src/library/splines/src/splines.c
+++ b/src/library/splines/src/splines.c
@@ -1,8 +1,8 @@
/* Routines for manipulating B-splines. These are intended for use with
* S or S-PLUS or R.
*
- * Copyright (C) 1998 Douglas M. Bates and William N. Venables.
* Copyright (C) 1999-2017 The R Core Team.
+ * Copyright (C) 1998 Douglas M. Bates and William N. Venables.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -201,28 +201,36 @@ spline_basis(SEXP knots, SEXP order, SEXP xvals, SEXP derivs)
sp->rdel = (double *) R_alloc(sp->ordm1, sizeof(double));
sp->ldel = (double *) R_alloc(sp->ordm1, sizeof(double));
sp->knots = kk; sp->nknots = nk;
- sp->a = (double *) R_alloc(sp->order, sizeof(double));
- SEXP val = PROTECT(allocMatrix(REALSXP, sp->order, nx)),
+ sp->a = (double *) R_alloc(ord, sizeof(double));
+ SEXP val = PROTECT(allocMatrix(REALSXP, ord, nx)),
offsets = PROTECT(allocVector(INTSXP, nx));
double *valM = REAL(val);
int *ioff = INTEGER(offsets);
for(int i = 0; i < nx; i++) {
set_cursor(sp, xx[i]);
- int io = ioff[i] = sp->curs - sp->order;
+ int io = ioff[i] = sp->curs - ord,
+ der_i = ders[i % nd];
if (io < 0 || io > nk) {
- for (int j = 0; j < sp->order; j++) {
- valM[i * sp->order + j] = R_NaN;
+ for (int j = 0; j < ord; j++) {
+ valM[i * ord + j] = R_NaN;
}
- } else if (ders[i % nd] > 0) { /* slow method for derivatives */
- for(int ii = 0; ii < sp->order; ii++) {
- for(int j = 0; j < sp->order; j++) sp->a[j] = 0;
+ } else if (der_i > 0) { /* slow method for derivatives */
+ if (der_i >= ord)
+ if(nd == 1)
+ error(_("derivs = %d >= ord = %d, but should be in {0,..,ord-1}"),
+ der_i, ord);
+ else
+ error(_("derivs[%d] = %d >= ord = %d, but should be in {0,..,ord-1}"),
+ i+1, der_i, ord);
+ for(int ii = 0; ii < ord; ii++) {
+ for(int j = 0; j < ord; j++) sp->a[j] = 0;
sp->a[ii] = 1;
- valM[i * sp->order + ii] =
- evaluate(sp, xx[i], ders[i % nd]);
+ valM[i * ord + ii] =
+ evaluate(sp, xx[i], der_i);
}
} else { /* fast method for value */
- basis_funcs(sp, xx[i], valM + i * sp->order);
+ basis_funcs(sp, xx[i], valM + i * ord);
}
}
setAttrib(val, install("Offsets"), offsets);
diff --git a/src/library/stats/R/distn.R b/src/library/stats/R/distn.R
index 71e8150..e576a95 100644
--- a/src/library/stats/R/distn.R
+++ b/src/library/stats/R/distn.R
@@ -287,7 +287,6 @@ qt <- function(p, df, ncp, lower.tail = TRUE, log.p = FALSE) {
}
rt <- function(n, df, ncp) {
if(missing(ncp)) .Call(C_rt, n, df)
- else if(is.na(ncp)) { warning("NAs produced"); rep(NaN, n) }
else rnorm(n, ncp)/sqrt(rchisq(n, df)/df)
}
diff --git a/src/library/stats/R/fisher.test.R b/src/library/stats/R/fisher.test.R
index f1aaafe..e99e3dd 100644
--- a/src/library/stats/R/fisher.test.R
+++ b/src/library/stats/R/fisher.test.R
@@ -1,7 +1,7 @@
# File src/library/stats/R/fisher.test.R
# Part of the R package, https://www.R-project.org
#
-# Copyright (C) 1995-2013 The R Core Team
+# Copyright (C) 1995-2017 The R Core Team
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -65,8 +65,8 @@ function(x, y = NULL, workspace = 200000, hybrid = FALSE,
nr <- nrow(x)
nc <- ncol(x)
-
- if((nr == 2) && (nc == 2)) {
+ have.2x2 <- (nr == 2) && (nc == 2)
+ if(have.2x2) {
alternative <- char.expand(alternative,
c("two.sided", "less", "greater"))
if(length(alternative) > 1L || is.na(alternative))
@@ -79,7 +79,7 @@ function(x, y = NULL, workspace = 200000, hybrid = FALSE,
}
PVAL <- NULL
- if(nr != 2 || nc != 2) {
+ if(!have.2x2) {
if(simulate.p.value) {
## we drop all-zero rows and columns
sr <- rowSums(x)
@@ -103,16 +103,14 @@ function(x, y = NULL, workspace = 200000, hybrid = FALSE,
PVAL <- (1 + sum(tmp <= STATISTIC/almost.1)) / (B + 1)
} else if(hybrid) {
## Cochran condition for asym.chisq. decision:
- PVAL <- .Call(C_Fexact, x, c(5, 180, 1), workspace, mult)
+ PVAL <- .Call(C_Fexact, x, c(5, 80, 1), workspace, mult)
} else {
## expect < 0 : exact
PVAL <- .Call(C_Fexact, x, c(-1, 100, 0), workspace, mult)
}
RVAL <- list(p.value = max(0, min(1, PVAL)))
- }
-
- if((nr == 2) && (nc == 2)) {## conf.int and more only in 2 x 2 case
+ } else { ## conf.int and more only in 2 x 2 case
if(hybrid) warning("'hybrid' is ignored for a 2 x 2 table")
m <- sum(x[, 1L])
n <- sum(x[, 2L])
@@ -244,10 +242,9 @@ function(x, y = NULL, workspace = 200000, hybrid = FALSE,
null.value = NVAL))
} ## end (2 x 2)
- RVAL <- c(RVAL,
- alternative = alternative,
- method = METHOD,
- data.name = DNAME)
- attr(RVAL, "class") <- "htest"
- return(RVAL)
+ structure(c(RVAL,
+ alternative = alternative,
+ method = METHOD,
+ data.name = DNAME),
+ class = "htest")
}
diff --git a/src/library/stats/R/models.R b/src/library/stats/R/models.R
index ab66922..ef5bde7 100644
--- a/src/library/stats/R/models.R
+++ b/src/library/stats/R/models.R
@@ -1,7 +1,7 @@
# File src/library/stats/R/models.R
# Part of the R package, https://www.R-project.org
#
-# Copyright (C) 1995-2016 The R Core Team
+# Copyright (C) 1995-2017 The R Core Team
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -553,7 +553,7 @@ model.matrix.default <- function(object, data = environment(object),
## need complete deparse, PR#15377
deparse2 <- function(x)
paste(deparse(x, width.cutoff = 500L), collapse = " ")
- reorder <- match(sapply(attr(t, "variables"), deparse2)[-1L],
+ reorder <- match(vapply(attr(t, "variables"), deparse2, "")[-1L],
names(data))
if (anyNA(reorder))
stop("model frame and formula mismatch in model.matrix()")
@@ -561,7 +561,7 @@ model.matrix.default <- function(object, data = environment(object),
data <- data[,reorder, drop=FALSE]
}
int <- attr(t, "response")
- if(length(data)) { # otherwise no rhs terms, so skip all this
+ if(length(data)) {
contr.funs <- as.character(getOption("contrasts"))
namD <- names(data)
## turn any character columns into factors
@@ -590,9 +590,9 @@ model.matrix.default <- function(object, data = environment(object),
}
}
}
- } else { # internal model.matrix needs some variable
+ } else { # no rhs terms ('~1', or '~0'): internal model.matrix needs some variable
isF <- FALSE
- data <- data.frame(x=rep(0, nrow(data)))
+ data[["x"]] <- raw(nrow(data))
}
ans <- .External2(C_modelmatrix, t, data)
cons <- if(any(isF))
diff --git a/src/library/stats/R/prcomp.R b/src/library/stats/R/prcomp.R
index 24d19a3..663548e 100644
--- a/src/library/stats/R/prcomp.R
+++ b/src/library/stats/R/prcomp.R
@@ -1,7 +1,7 @@
# File src/library/stats/R/prcomp.R
# Part of the R package, https://www.R-project.org
#
-# Copyright (C) 1995-2016 The R Core Team
+# Copyright (C) 1995-2017 The R Core Team
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -128,7 +128,7 @@ function(x, digits = max(3L, getOption("digits") - 3L), ...)
cat(sprintf("Importance of first k=%d (out of %d) components:\n", k, p))
print(x$importance[, 1:k, drop=FALSE], digits = digits, ...)
} else {
- cat("Importance of components%s:\n")
+ cat("Importance of components:\n")
print(x$importance, digits = digits, ...)
}
invisible(x)
diff --git a/src/library/stats/R/vcov.R b/src/library/stats/R/vcov.R
index 12d5bd2..c333b4d 100644
--- a/src/library/stats/R/vcov.R
+++ b/src/library/stats/R/vcov.R
@@ -1,8 +1,8 @@
# File src/library/stats/R/vcov.R
# Part of the R package, https://www.R-project.org
#
+# Copyright (C) 2002-2017 The R Core Team
# Copyright (C) 1994-2002 W. N. Venables and B. D. Ripley
-# Copyright (C) 2002-11 The R Core Team
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -51,7 +51,7 @@ sigma <- function(object, ...) UseMethod("sigma")
## works whenever deviance(), nobs() and coef() do fine:
sigma.default <- function (object, use.fallback=TRUE, ...)
sqrt(deviance(object, ...) /
- (nobs(object, use.fallback=use.fallback) - length(coef(object))))
+ (nobs(object, use.fallback=use.fallback) - sum(!is.na(coef(object)))))
sigma.mlm <- function (object, ...)
sqrt(colSums(object$residuals^2) / object$df.residual)
diff --git a/src/library/stats/man/fisher.test.Rd b/src/library/stats/man/fisher.test.Rd
index 1c46957..e482286 100644
--- a/src/library/stats/man/fisher.test.Rd
+++ b/src/library/stats/man/fisher.test.Rd
@@ -1,6 +1,6 @@
% File src/library/stats/man/fisher.test.Rd
% Part of the R package, https://www.R-project.org
-% Copyright 1995-2014 R Core Team
+% Copyright 1995-2017 R Core Team
% Distributed under GPL 2 or later
\name{fisher.test}
@@ -80,7 +80,7 @@ fisher.test(x, y = NULL, workspace = 200000, hybrid = FALSE,
using the (central or non-central) hypergeometric
distribution. Otherwise, computations are based on a C version of the
FORTRAN subroutine FEXACT which implements the network developed by
- Mehta and Patel (1986) and improved by Clarkson, Fan and Joe (1993).
+ Mehta and Patel (1983, 1986) and improved by Clarkson, Fan and Joe (1993).
The FORTRAN code can be obtained from
\url{http://www.netlib.org/toms/643}. Note this fails (with an error
message) when the entries of the table are too large. (It transposes
@@ -103,11 +103,21 @@ fisher.test(x, y = NULL, workspace = 200000, hybrid = FALSE,
equal to that of the observed table, the p-value being the sum of such
probabilities.
- For larger than \eqn{2 \times 2}{2 by 2} tables and \code{hybrid =
- TRUE}, asymptotic chi-squared probabilities are only used if the
+ For larger than \eqn{2 \times 2}{2 by 2} tables and \code{hybrid = TRUE},
+ asymptotic chi-squared probabilities are only used if the
\sQuote{Cochran conditions} are satisfied, that is if no cell has
- count zero, and more than 80\% of the cells have counts at least 5:
- otherwise the exact calculation is used.
+ expected counts less than 1, and more than 80\% of the cells have
+ expected counts at least 5; otherwise the exact calculation is used.
+ %
+ Accidentally, \R has used \code{180} instead of \code{80} as
+ \code{percent} in \R versions between 3.0.0 and 3.4.1 (inclusive).
+ Consequently, in these versions of \R, \code{hybrid=TRUE} never made a
+ difference.
+
+ In the \eqn{r \times c}{r x c} case with \eqn{r > 2} or \eqn{c > 2},
+ internal tables can get too large for the exact test in which case an
+ error is signalled. Using \code{simulate.p.value = TRUE} may then
+ often be sufficient and hence advisable.
Simulation is done conditional on the row and column marginals, and
works only if the marginals are strictly positive. (A C translation
@@ -136,6 +146,11 @@ fisher.test(x, y = NULL, workspace = 200000, hybrid = FALSE,
Fisher, R. A. (1970)
\emph{Statistical Methods for Research Workers.} Oliver & Boyd.
+ Mehta, Cyrus R. and Patel, Nitin R. (1983)
+ A network algorithm for performing Fisher's exact test in \eqn{r \times c}{r * c}
+ contingency tables.
+ \emph{Journal of the American Statistical Association} \bold{78}, 427--434.
+
Mehta, C. R. and Patel, N. R. (1986)
Algorithm 643. FEXACT: A Fortran subroutine for Fisher's exact test
on unordered \eqn{r*c} contingency tables.
diff --git a/src/library/stats/man/sigma.Rd b/src/library/stats/man/sigma.Rd
index 39e866a..bab3396 100644
--- a/src/library/stats/man/sigma.Rd
+++ b/src/library/stats/man/sigma.Rd
@@ -35,7 +35,9 @@ sigma(object, ...)
sigma.default <- function (object, use.fallback = TRUE, ...)
sqrt( deviance(object, ...) / (NN - PP) )
} where \code{NN <- \link{nobs}(object, use.fallback = use.fallback)}
- and \code{PP <- length(\link{coef}(object))}.
+ and \code{PP <- sum(!is.na(\link{coef}(object)))} -- where in older \R
+ versions this was \code{length(coef(object))} which is too large in
+ case of undetermined coefficients, e.g., for rank deficient model fits.
}
\value{
typically a number, the estimated standard deviation of the
diff --git a/src/library/stats/src/fexact.c b/src/library/stats/src/fexact.c
index 7d9c64a..1fa7bda 100644
--- a/src/library/stats/src/fexact.c
+++ b/src/library/stats/src/fexact.c
@@ -353,7 +353,7 @@ f2xact(int nrow, int ncol, int *table, int ldtabl,
/* Local variables -- changed from "static"
* (*does* change results very slightly on i386 linux) */
- int i, ii, j, k, n,
+ int i, ii = 0, j, k, n, // initialized for gcc >= 7.2
iflag,ifreq, ikkey, ikstp, ikstp2, ipn, ipo, itop, itp = 0,
jkey, jstp, jstp2, jstp3, jstp4, k1, kb, kd, ks, kval = 0, kmax, last,
ncell, ntot, nco, nro, nro2, nrb,
diff --git a/src/library/stats/tests/bandwidth.Rout.save b/src/library/stats/tests/bandwidth.Rout.save
index b3ca6c6..1d71eec 100644
--- a/src/library/stats/tests/bandwidth.Rout.save
+++ b/src/library/stats/tests/bandwidth.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -46,4 +46,4 @@ In bw.bcv(precip) : minimum occurred at one end of the range
>
> proc.time()
user system elapsed
- 0.198 0.017 0.204
+ 0.205 0.012 0.207
diff --git a/src/library/stats/tests/glm.Rout.save b/src/library/stats/tests/glm.Rout.save
index b902f5f..8bffaea 100644
--- a/src/library/stats/tests/glm.Rout.save
+++ b/src/library/stats/tests/glm.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -29,4 +29,4 @@ Warning messages:
>
> proc.time()
user system elapsed
- 0.132 0.010 0.134
+ 0.167 0.014 0.169
diff --git a/src/library/stats/tests/ks-test.Rout.save b/src/library/stats/tests/ks-test.Rout.save
index d4d65d6..87596db 100644
--- a/src/library/stats/tests/ks-test.Rout.save
+++ b/src/library/stats/tests/ks-test.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -362,4 +362,4 @@ difference in location 3.741417e-05 3.741417e-05 3.741417e-05
>
> proc.time()
user system elapsed
- 0.328 0.018 0.337
+ 0.320 0.024 0.334
diff --git a/src/library/stats/tests/nls.Rout.save b/src/library/stats/tests/nls.Rout.save
index 06699ff..2cfb3d4 100644
--- a/src/library/stats/tests/nls.Rout.save
+++ b/src/library/stats/tests/nls.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -703,4 +703,4 @@ Warning in nls(y ~ b0[fac] + b1 * x, start = list(b0 = c(1, 1), b1 = 101), :
>
> proc.time()
user system elapsed
- 1.214 0.026 1.234
+ 1.180 0.024 1.197
diff --git a/src/library/stats/tests/simulate.Rout.save b/src/library/stats/tests/simulate.Rout.save
index 5f5318f..c87d624 100644
--- a/src/library/stats/tests/simulate.Rout.save
+++ b/src/library/stats/tests/simulate.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -408,4 +408,4 @@ log(u) 0.015569 0.00033659 46.256 5.7704e-10
>
> proc.time()
user system elapsed
- 0.240 0.020 0.254
+ 0.285 0.011 0.286
diff --git a/src/library/tools/R/build.R b/src/library/tools/R/build.R
index ecaf3e0..3430e9c 100644
--- a/src/library/tools/R/build.R
+++ b/src/library/tools/R/build.R
@@ -628,6 +628,7 @@ inRbuildignore <- function(files, pkgdir) {
fix_nonLF_in_source_files <- function(pkgname, Log) {
fix_nonLF_in_files(pkgname, dirPattern = "\\.([cfh]|cc|cpp)$", Log)
}
+
fix_nonLF_in_make_files <- function(pkgname, Log) {
fix_nonLF_in_files(pkgname,
paste0("^(",
@@ -643,6 +644,16 @@ inRbuildignore <- function(files, pkgdir) {
}
}
+ fix_nonLF_in_config_files <- function(pkgname, Log) {
+ files <- dir(pkgname, pattern = "^(configure|cleanup)$",
+ full.names = TRUE, recursive = TRUE)
+ ## FIXME: This "destroys" all timestamps
+ for (ff in files) {
+ lines <- readLines(ff, warn = FALSE)
+ writeLinesNL(lines, ff)
+ }
+ }
+
find_empty_dirs <- function(d)
{
## dir(recursive = TRUE) did not include directories, so
@@ -1031,9 +1042,10 @@ inRbuildignore <- function(files, pkgdir) {
add_expanded_R_fields_to_description_file(file.path(pkgname,
"DESCRIPTION"))
messageLog(Log,
- "checking for LF line-endings in source and make files")
+ "checking for LF line-endings in source and make files and shell scripts")
fix_nonLF_in_source_files(pkgname, Log)
fix_nonLF_in_make_files(pkgname, Log)
+ fix_nonLF_in_config_files(pkgname, Log)
messageLog(Log, "checking for empty or unneeded directories");
find_empty_dirs(pkgname)
for(dir in c("Meta", "R-ex", "chtml", "help", "html", "latex")) {
diff --git a/src/library/tools/R/check.R b/src/library/tools/R/check.R
index 8ab2d34..e09631d 100644
--- a/src/library/tools/R/check.R
+++ b/src/library/tools/R/check.R
@@ -1502,6 +1502,7 @@ setRlibs <-
check_R_files <- function(is_rec_pkg)
{
checkingLog(Log, "R code for possible problems")
+ t1 <- proc.time()
if (!is_base_pkg) {
Rcmd <- paste("options(warn=1)\n",
sprintf("tools:::.check_package_code_shlib(dir = \"%s\")\n",
@@ -1612,6 +1613,8 @@ setRlibs <-
sprintf("tools:::.check_depdef(dir = \"%s\", WINDOWS = %s)\n", pkgdir, win))
out8 <- R_runR2(Rcmd, "R_DEFAULT_PACKAGES=")
}
+ t2 <- proc.time()
+ print_time(t1, t2, Log)
if (length(out1) || length(out2) || length(out3) ||
length(out4) || length(out5) || length(out6) ||
@@ -2283,6 +2286,28 @@ setRlibs <-
check_src_dir <- function(desc)
{
+ ## Added in R 3.4.2: check line endings for shell scripts:
+ ## for Unix CRLF line endings are fatal but these are not used
+ ## on Windows and hence this is not detected.
+ ## Packages could have arbitrary scripts, so we could
+ ## extend this to look for scripts at top level or elsewhere.
+ scripts <- dir(".", pattern = "^(configure|configure.in|configure.ac|cleanup)$")
+ if(length(scripts)) {
+ checkingLog(Log, "line endings in shell scripts")
+ bad_files <- character()
+ for(f in scripts) {
+ contents <- readChar(f, file.size(f), useBytes = TRUE)
+ if (grepl("\r", contents, fixed = TRUE, useBytes = TRUE))
+ bad_files <- c(bad_files, f)
+ }
+ if (length(bad_files)) {
+ warningLog(Log, "Found the following shell script(s) with CR or CRLF line endings:")
+ printLog0(Log, .format_lines_with_indent(bad_files), "\n")
+ printLog(Log, "Non-Windows OSes require LF line endings.\n")
+ } else resultLog(Log, "OK")
+ }
+
+
## Check C/C++/Fortran sources/headers for CRLF line endings.
## <FIXME>
## Does ISO C really require LF line endings? (Reference?)
@@ -3818,6 +3843,9 @@ setRlibs <-
lines, invert = TRUE, value = TRUE, useBytes = TRUE)
lines <- grep("warning: *ISO C forbids.*function pointer",
lines, invert = TRUE, value = TRUE, useBytes = TRUE)
+ if (WINDOWS)
+ lines <- grep("warning: *ISO C does not support.*ms_printf length modifier",
+ lines, invert = TRUE, value = TRUE, useBytes = TRUE)
}
## Warnings spotted by gcc with
diff --git a/src/library/tools/R/packages.R b/src/library/tools/R/packages.R
index 309c531..1aa0622 100644
--- a/src/library/tools/R/packages.R
+++ b/src/library/tools/R/packages.R
@@ -20,7 +20,7 @@ write_PACKAGES <-
function(dir = ".", fields = NULL,
type = c("source", "mac.binary", "win.binary"),
verbose = FALSE, unpacked = FALSE, subdirs = FALSE,
- latestOnly = TRUE, addFiles = FALSE, rds_compress = TRUE)
+ latestOnly = TRUE, addFiles = FALSE, rds_compress = "xz")
{
if(missing(type) && .Platform$OS.type == "windows")
type <- "win.binary"
diff --git a/src/library/tools/man/writePACKAGES.Rd b/src/library/tools/man/writePACKAGES.Rd
index c029424..86d34ca 100644
--- a/src/library/tools/man/writePACKAGES.Rd
+++ b/src/library/tools/man/writePACKAGES.Rd
@@ -14,7 +14,7 @@
write_PACKAGES(dir = ".", fields = NULL,
type = c("source", "mac.binary", "win.binary"),
verbose = FALSE, unpacked = FALSE, subdirs = FALSE,
- latestOnly = TRUE, addFiles = FALSE, rds_compress = TRUE)
+ latestOnly = TRUE, addFiles = FALSE, rds_compress = "xz")
}
\arguments{
\item{dir}{Character vector describing the location of the repository
@@ -56,7 +56,8 @@ write_PACKAGES(dir = ".", fields = NULL,
\item{addFiles}{logical: should the filenames be included as field
\samp{File} in the \file{PACKAGES} file.}
\item{rds_compress}{The type of compression to be used for
- \file{PACKAGES.rds}: see \code{\link{saveRDS}}.}
+ \file{PACKAGES.rds}: see \code{\link{saveRDS}}. The default is the
+ one found to give maximal compression, and is as used on \acronym{CRAN}.}
}
\details{
\code{write_PACKAGES} scans the named directory for R packages,
diff --git a/src/library/utils/R/help.search.R b/src/library/utils/R/help.search.R
index fa312b9..987c46d 100644
--- a/src/library/utils/R/help.search.R
+++ b/src/library/utils/R/help.search.R
@@ -43,7 +43,14 @@ function(hDB, path, pkg)
base[, "LibPath"] <- path
id <- as.character(1:nrow(vDB) + NROW(hDB[[1L]]))
base[, "ID"] <- id
- base[, "Name"] <- sub("\\.[^.]*$", "", basename(vDB$File))
+ base[, "Name"] <- tools::file_path_sans_ext(basename(vDB$PDF))
+ ## As spotted by Henrik Bengtsson <henrik.bengtsson@gmail.com>,
+ ## using tools::file_path_sans_ext(basename(vDB$File) does not
+ ## work as intended, as non-Sweave vignettes could have nested
+ ## extensions (e.g., 'foo.tex.rsp' or 'foo.pdf.asis').
+ ## The docs say that the 'name' is the "base of the vignette
+ ## filename", which can be interpreted as above for the case of
+ ## nested extensions (and in fact, tools:::httpd() does so).
base[, "Topic"] <- base[, "Name"]
base[, "Title"] <- vDB$Title
base[, "Type"] <- "vignette"
diff --git a/src/library/utils/R/menu.R b/src/library/utils/R/menu.R
index f3b7004..3c43308 100644
--- a/src/library/utils/R/menu.R
+++ b/src/library/utils/R/menu.R
@@ -1,7 +1,7 @@
# File src/library/utils/R/menu.R
# Part of the R package, https://www.R-project.org
#
-# Copyright (C) 1995-2012 The R Core Team
+# Copyright (C) 1995-2017 The R Core Team
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -35,13 +35,13 @@ menu <- function(choices, graphics = FALSE, title = NULL)
if(length(title) && nzchar(title[1L])) cat(title[1L], "\n")
op <- paste0(format(seq_len(nc)), ": ", choices)
if(nc > 10L) {
- fop <- format(op)
- nw <- nchar(fop[1L], "w") + 2
+ fop <- format(op) # => same nchar() for all
+ nw <- nchar(fop[1L], "w") + 2L
ncol <- getOption("width") %/% nw # might be 0
if(ncol > 1L)
- op <- paste0(fop, c(rep(" ", ncol - 1), "\n"), collapse="")
- cat("", op, "", sep="\n")
- } else cat("", op, "", sep="\n")
+ op <- paste0(fop, c(rep(" ", min(nc, ncol) - 1L), "\n"), collapse="")
+ }
+ cat("", op, "", sep="\n")
repeat {
ind <- .Call(C_menu, as.character(choices))
if(ind <= nc) return(ind)
diff --git a/src/library/utils/inst/doc/Sweave.pdf b/src/library/utils/inst/doc/Sweave.pdf
index 7367613..7e15f24 100644
--- a/src/library/utils/inst/doc/Sweave.pdf
+++ b/src/library/utils/inst/doc/Sweave.pdf
Binary files differ
diff --git a/src/library/utils/src/io.c b/src/library/utils/src/io.c
index 99670a5..fdac529 100644
--- a/src/library/utils/src/io.c
+++ b/src/library/utils/src/io.c
@@ -1,7 +1,7 @@
/*
* R : A Computer Language for Statistical Data Analysis
* Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka
- * Copyright (C) 1998-2014 The R Core Team.
+ * Copyright (C) 1998-2017 The R Core Team.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -1026,11 +1026,21 @@ typedef struct wt_info {
int savedigits;
} wt_info;
-/* utility to cleanup e.g. after interrpts */
+/* utility to cleanup e.g. after interrupts */
static void wt_cleanup(void *data)
{
wt_info *ld = data;
- if(!ld->wasopen) ld->con->close(ld->con);
+ if(!ld->wasopen) {
+ errno = 0;
+ ld->con->close(ld->con);
+ if (ld->con->status != NA_INTEGER && ld->con->status < 0) {
+ int serrno = errno;
+ if (serrno)
+ warning(_("Problem closing connection: %s"), strerror(serrno));
+ else
+ warning(_("Problem closing connection"));
+ }
+ }
R_FreeStringBuffer(ld->buf);
R_print.digits = ld->savedigits;
}
diff --git a/src/main/Rdynload.c b/src/main/Rdynload.c
index a50d185..b230fbd 100644
--- a/src/main/Rdynload.c
+++ b/src/main/Rdynload.c
@@ -1344,6 +1344,8 @@ do_getSymbolInfo(SEXP call, SEXP op, SEXP args, SEXP env)
SEXP sname = CAR(args), spackage = CADR(args),
withRegistrationInfo = CADDR(args);
+ if (!isString(sname) || LENGTH(sname) != 1)
+ error(_("invalid '%s' argument"), "name");
name = translateChar(STRING_ELT(sname, 0));
if(length(spackage)) {
if(TYPEOF(spackage) == STRSXP)
diff --git a/src/main/array.c b/src/main/array.c
index 2dd4f24..79b7ee2 100644
--- a/src/main/array.c
+++ b/src/main/array.c
@@ -1,8 +1,8 @@
/*
* R : A Computer Language for Statistical Data Analysis
- * Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka
* Copyright (C) 1998-2017 The R Core Team
* Copyright (C) 2002-2015 The R Foundation
+ * Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -2102,11 +2102,13 @@ SEXP attribute_hidden do_array(SEXP call, SEXP op, SEXP args, SEXP rho)
else
for (i = 0; i < nans; i++) RAW(ans)[i] = 0;
break;
- /* Rest are already initialized */
case STRSXP:
if (nans && lendat)
xcopyStringWithRecycle(ans, vals, 0, nans, lendat);
+ else
+ for (i = 0; i < nans; i++) SET_STRING_ELT(ans, i, NA_STRING);
break;
+ /* Rest are already initialized */
case VECSXP:
case EXPRSXP:
#ifdef SWITCH_TO_REFCNT
diff --git a/src/main/bind.c b/src/main/bind.c
index b742da7..7c6baf3 100644
--- a/src/main/bind.c
+++ b/src/main/bind.c
@@ -1,8 +1,8 @@
/*
* R : A Computer Language for Statistical Data Analysis
+ * Copyright (C) 1997--2017 The R Core Team
+ * Copyright (C) 2002--2017 The R Foundation
* Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka
- * Copyright (C) 1997--2016 The R Core Team
- * Copyright (C) 2002--2016 The R Foundation
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@ struct BindData {
SEXP ans_ptr;
R_xlen_t ans_length;
SEXP ans_names;
- int ans_nnames;
+ R_xlen_t ans_nnames;
/* int deparse_level; Initialize to 1. */
};
@@ -70,7 +70,7 @@ static int HasNames(SEXP x)
}
static void
-AnswerType(SEXP x, int recurse, int usenames, struct BindData *data, SEXP call)
+AnswerType(SEXP x, Rboolean recurse, Rboolean usenames, struct BindData *data, SEXP call)
{
switch (TYPEOF(x)) {
case NILSXP:
@@ -508,45 +508,51 @@ static SEXP NewBase(SEXP base, SEXP tag)
return ans;
}
-static SEXP NewName(SEXP base, SEXP tag, int seqno)
+static SEXP NewName(SEXP base, SEXP tag, R_xlen_t seqno, int count)
{
/* Construct a new Name/Tag, using
* base.tag
+ * base
* base<seqno> or
* tag
*
*/
-
SEXP ans;
- char *cbuf;
- const void *vmax = vmaxget();
-
base = EnsureString(base);
tag = EnsureString(tag);
- if (*CHAR(base) && *CHAR(tag)) {
- const char *sb = translateCharUTF8(base), *st = translateCharUTF8(tag);
- cbuf = R_AllocStringBuffer(strlen(sb) + strlen(st) + 1, &cbuff);
- sprintf(cbuf, "%s.%s", sb, st);
- ans = mkCharCE(cbuf, CE_UTF8);
- }
- else if (*CHAR(base)) {
- const char *sb = translateChar(base);
- cbuf = R_AllocStringBuffer(strlen(sb) + (size_t) IndexWidth(seqno),
- &cbuff);
- sprintf(cbuf, "%s%d", sb, seqno);
- ans = mkCharCE(cbuf, CE_UTF8);
- }
- else if (*CHAR(tag)) {
- if(tag == NA_STRING) ans = NA_STRING;
+ if (*CHAR(base)) {
+ if (*CHAR(tag)) {
+ const void *vmax = vmaxget();
+ const char
+ *sb = translateCharUTF8(base),
+ *st = translateCharUTF8(tag);
+ char *cbuf = R_AllocStringBuffer(strlen(sb) + strlen(st) + 1, &cbuff);
+ sprintf(cbuf, "%s.%s", sb, st);
+ ans = mkCharCE(cbuf, CE_UTF8);
+ vmaxset(vmax);
+ }
+ else if (count == 1)
+ ans = base;
else {
- const char *st = translateCharUTF8(tag);
- cbuf = R_AllocStringBuffer(strlen(st), &cbuff);
- sprintf(cbuf, "%s", st);
+ const void *vmax = vmaxget();
+ const char *sb = translateCharUTF8(base);
+ char *cbuf;
+ cbuf = R_AllocStringBuffer(strlen(sb) + (size_t) IndexWidth(seqno),
+ &cbuff);
+#ifdef LONG_VECTOR_SUPPORT
+ if (seqno > INT_MAX)
+ sprintf(cbuf, "%s%.0f", sb, (double) seqno);
+ else
+#endif
+ sprintf(cbuf, "%s%d", sb, (int) seqno);
ans = mkCharCE(cbuf, CE_UTF8);
+ vmaxset(vmax);
}
}
- else ans = R_BlankString;
- vmaxset(vmax);
+ else if (*CHAR(tag)) {
+ ans = tag;
+ } else
+ ans = R_BlankString;
return ans;
}
@@ -572,29 +578,78 @@ SEXP attribute_hidden ItemName(SEXP names, R_xlen_t i)
struct NameData {
int count;
- int seqno;
- int firstpos;
+ R_xlen_t seqno;
+ // int firstpos;
};
+// count names in (branch) v, recursively if(recurse) :
+static void namesCount(SEXP v, int recurse, struct NameData *nameData)
+{
+ R_xlen_t i, n = xlength(v);
+ SEXP names = PROTECT(getAttrib(v, R_NamesSymbol)), namei;
+
+ /* The "<= 1" in every for() loop, i.e., for all "vector" cases,
+ makes this much faster for large vector 'v'
+ _and_ prevents ("almost surely") overflow of nameData->count.
+ --> PR#17284 and PR#17292, with thanks to Suharto Anggono.
+ */
+ switch(TYPEOF(v)) {
+ case NILSXP:
+ break;
+ case LISTSXP:
+ if (recurse) {
+ for (i = 0; i < n && nameData->count <= 1; i++) {
+ PROTECT(namei = ItemName(names, i));
+ if (namei == R_NilValue)
+ namesCount(CAR(v), recurse, nameData);
+ v = CDR(v);
+ UNPROTECT(1); /*namei*/
+ }
+ break;
+ } /* else fall through */
+ case VECSXP:
+ case EXPRSXP:
+ if (recurse) {
+ for (i = 0; i < n && nameData->count <= 1; i++) {
+ namei = ItemName(names, i);
+ if (namei == R_NilValue)
+ namesCount(VECTOR_ELT(v, i), recurse, nameData);
+ }
+ break;
+ } /* else fall through */
+ case LGLSXP:
+ case INTSXP:
+ case REALSXP:
+ case CPLXSXP:
+ case STRSXP:
+ case RAWSXP:
+ for (i = 0; i < n && nameData->count <= 1; i++)
+ nameData->count++;
+ break;
+ default:
+ nameData->count++;
+ }
+ UNPROTECT(1); /*names*/
+}
+
static void NewExtractNames(SEXP v, SEXP base, SEXP tag, int recurse,
struct BindData *data, struct NameData *nameData)
{
SEXP names, namei;
R_xlen_t i, n;
- int savecount=0, saveseqno, savefirstpos=0;
-
- /* If we beneath a new tag, we reset the index */
- /* sequence and create the new basename string. */
+ int savecount=0;
+ R_xlen_t saveseqno;
+ /* If we have a new tag, we reset the index
+ * sequence and create the new basename string : */
if (tag != R_NilValue) {
PROTECT(base = NewBase(base, tag));
- savefirstpos = nameData->firstpos;
saveseqno = nameData->seqno;
savecount = nameData->count;
nameData->count = 0;
+ namesCount(v, recurse, nameData);
nameData->seqno = 0;
- nameData->firstpos = -1;
}
else saveseqno = 0;
@@ -611,10 +666,7 @@ static void NewExtractNames(SEXP v, SEXP base, SEXP tag, int recurse,
NewExtractNames(CAR(v), base, namei, recurse, data, nameData);
}
else {
- if (namei == R_NilValue && nameData->count == 0)
- nameData->firstpos = data->ans_nnames;
- nameData->count++;
- namei = NewName(base, namei, ++(nameData->seqno));
+ namei = NewName(base, namei, ++(nameData->seqno), nameData->count);
SET_STRING_ELT(data->ans_names, (data->ans_nnames)++, namei);
}
v = CDR(v);
@@ -629,10 +681,7 @@ static void NewExtractNames(SEXP v, SEXP base, SEXP tag, int recurse,
NewExtractNames(VECTOR_ELT(v, i), base, namei, recurse, data, nameData);
}
else {
- if (namei == R_NilValue && nameData->count == 0)
- nameData->firstpos = data->ans_nnames;
- nameData->count++;
- namei = NewName(base, namei, ++(nameData->seqno));
+ namei = NewName(base, namei, ++(nameData->seqno), nameData->count);
SET_STRING_ELT(data->ans_names, (data->ans_nnames)++, namei);
}
}
@@ -645,24 +694,15 @@ static void NewExtractNames(SEXP v, SEXP base, SEXP tag, int recurse,
case RAWSXP:
for (i = 0; i < n; i++) {
namei = ItemName(names, i);
- if (namei == R_NilValue && nameData->count == 0)
- nameData->firstpos = data->ans_nnames;
- nameData->count++;
- namei = NewName(base, namei, ++(nameData->seqno));
+ namei = NewName(base, namei, ++(nameData->seqno), nameData->count);
SET_STRING_ELT(data->ans_names, (data->ans_nnames)++, namei);
}
break;
default:
- if (nameData->count == 0)
- nameData->firstpos = data->ans_nnames;
- nameData->count++;
- namei = NewName(base, R_NilValue, ++(nameData->seqno));
+ namei = NewName(base, R_NilValue, ++(nameData->seqno), nameData->count);
SET_STRING_ELT(data->ans_names, (data->ans_nnames)++, namei);
}
if (tag != R_NilValue) {
- if (nameData->firstpos >= 0 && nameData->count == 1)
- SET_STRING_ELT(data->ans_names, nameData->firstpos, base);
- nameData->firstpos = savefirstpos;
nameData->count = savecount;
UNPROTECT(1);
}
@@ -764,7 +804,7 @@ SEXP attribute_hidden do_c_dflt(SEXP call, SEXP op, SEXP args, SEXP env)
data.ans_length = 0;
data.ans_nnames = 0;
- SEXP t;
+ SEXP t, ans;
for (t = args; t != R_NilValue; t = CDR(t)) {
if (usenames && !data.ans_nnames) {
if (!isNull(TAG(t))) data.ans_nnames = 1;
@@ -790,7 +830,7 @@ SEXP attribute_hidden do_c_dflt(SEXP call, SEXP op, SEXP args, SEXP env)
/* Allocate the return value and set up to pass through */
/* the arguments filling in values of the returned object. */
- SEXP ans = PROTECT(allocVector(mode, data.ans_length));
+ PROTECT(ans = allocVector(mode, data.ans_length));
data.ans_ptr = ans;
data.ans_length = 0;
t = args;
@@ -827,7 +867,6 @@ SEXP attribute_hidden do_c_dflt(SEXP call, SEXP op, SEXP args, SEXP env)
while (args != R_NilValue) {
struct NameData nameData;
nameData.seqno = 0;
- nameData.firstpos = 0;
nameData.count = 0;
NewExtractNames(CAR(args), R_NilValue, TAG(args), recurse, &data, &nameData);
args = CDR(args);
@@ -860,9 +899,9 @@ SEXP attribute_hidden do_unlist(SEXP call, SEXP op, SEXP args, SEXP env)
/* by an optional "recursive" argument. */
PROTECT(args = CAR(ans));
- int recurse = asLogical(CADR(ans));
- int usenames = asLogical(CADDR(ans));
- int lenient = TRUE; // was (implicitly!) FALSE up to R 3.0.1
+ Rboolean recurse = asLogical(CADR(ans));
+ Rboolean usenames = asLogical(CADDR(ans));
+ Rboolean lenient = TRUE; // was (implicitly!) FALSE up to R 3.0.1
/* Determine the type of the returned value. */
/* The strategy here is appropriate because the */
@@ -898,8 +937,8 @@ SEXP attribute_hidden do_unlist(SEXP call, SEXP op, SEXP args, SEXP env)
}
/* If a non-vector argument was encountered (perhaps a list if */
- /* recursive = F) then we must return a list. Otherwise, we use */
- /* the natural coercion for vector types. */
+ /* recursive is FALSE) then we must return a list. Otherwise, */
+ /* we use the natural coercion for vector types. */
int mode = NILSXP;
if (data.ans_flags & 512) mode = EXPRSXP;
@@ -951,7 +990,6 @@ SEXP attribute_hidden do_unlist(SEXP call, SEXP op, SEXP args, SEXP env)
SEXP names = getAttrib(args, R_NamesSymbol);
data.ans_nnames = 0;
nameData.seqno = 0;
- nameData.firstpos = 0;
nameData.count = 0;
for (i = 0; i < n; i++) {
NewExtractNames(VECTOR_ELT(args, i), R_NilValue,
@@ -961,7 +999,6 @@ SEXP attribute_hidden do_unlist(SEXP call, SEXP op, SEXP args, SEXP env)
else if (TYPEOF(args) == LISTSXP) {
data.ans_nnames = 0;
nameData.seqno = 0;
- nameData.firstpos = 0;
nameData.count = 0;
while (args != R_NilValue) {
NewExtractNames(CAR(args), R_NilValue,
@@ -973,7 +1010,6 @@ SEXP attribute_hidden do_unlist(SEXP call, SEXP op, SEXP args, SEXP env)
else {
data.ans_nnames = 0;
nameData.seqno = 0;
- nameData.firstpos = 0;
nameData.count = 0;
NewExtractNames(args, R_NilValue, R_NilValue, recurse, &data, &nameData);
}
diff --git a/src/main/builtin.c b/src/main/builtin.c
index 961060d..85044c2 100644
--- a/src/main/builtin.c
+++ b/src/main/builtin.c
@@ -1,7 +1,7 @@
/*
* R : A Computer Language for Statistical Data Analysis
+ * Copyright (C) 1999-2017 The R Core Team
* Copyright (C) 1995-1998 Robert Gentleman and Ross Ihaka
- * Copyright (C) 1999-2016 The R Core Team.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -818,8 +818,9 @@ SEXP xlengthgets(SEXP x, R_xlen_t len)
{
R_xlen_t lenx, i;
SEXP rval, names, xnames, t;
- if (!isVector(x) && !isVectorizable(x))
- error(_("cannot set length of non-vector"));
+ if (!isVector(x) && !isList(x))
+ error(_("cannot set length of non-(vector or list)"));
+ if (len < 0) error(_("invalid value")); // e.g. -999 from asVecSize()
lenx = xlength(x);
if (lenx == len)
return (x);
@@ -879,6 +880,7 @@ SEXP xlengthgets(SEXP x, R_xlen_t len)
SETCAR(t, CAR(x));
SET_TAG(t, TAG(x));
}
+ break;
case VECSXP:
for (i = 0; i < len; i++)
if (i < lenx) {
@@ -922,26 +924,17 @@ SEXP attribute_hidden do_lengthgets(SEXP call, SEXP op, SEXP args, SEXP rho)
x = CAR(args);
- if (PRIMVAL(op)) { /* xlength<- */
- if(isObject(x) && DispatchOrEval(call, op, "length<-", args,
- rho, &ans, 0, 1))
- return(ans);
- if (!isVector(x) && !isVectorizable(x))
- error(_("invalid argument"));
- if (length(CADR(args)) != 1)
- error(_("invalid value"));
- R_xlen_t len = asVecSize(CADR(args));
- return xlengthgets(x, len);
- }
if(isObject(x) && DispatchOrEval(call, op, "length<-", args,
rho, &ans, 0, 1))
return(ans);
- if (!isVector(x) && !isVectorizable(x))
- error(_("invalid argument"));
+ // more 'x' checks in x?lengthgets()
if (length(CADR(args)) != 1)
- error(_("invalid value"));
+ error(_("wrong length for '%s' argument"), "value");
R_xlen_t len = asVecSize(CADR(args));
- if (len < 0) error(_("invalid value"));
+ if (PRIMVAL(op)) { /* xlength<- */
+ return xlengthgets(x, len);
+ }
+ // else length<- :
if (len > R_LEN_T_MAX) {
#ifdef LONG_VECTOR_SUPPORT
return xlengthgets(x, len);
diff --git a/src/main/connections.c b/src/main/connections.c
index 09bc43c..f54c27c 100644
--- a/src/main/connections.c
+++ b/src/main/connections.c
@@ -2257,7 +2257,7 @@ static size_t clp_read(void *ptr, size_t size, size_t nitems,
if ((double) size * (double) nitems > INT_MAX)
error(_("too large a block specified"));
used = (request < available) ? request : available;
- strncpy(ptr, this->buff, used);
+ strncpy(ptr, this->buff + this->pos, used);
this->pos += used;
return (size_t) used/size;
}
@@ -3349,9 +3349,24 @@ SEXP attribute_hidden do_isseekable(SEXP call, SEXP op, SEXP args, SEXP env)
return ScalarLogical(con->canseek != FALSE);
}
+static void checkClose(Rconnection con)
+{
+ if (con->isopen) {
+ errno = 0;
+ con->close(con);
+ if (con->status != NA_INTEGER && con->status < 0) {
+ int serrno = errno;
+ if (serrno)
+ warning(_("Problem closing connection: %s"), strerror(serrno));
+ else
+ warning(_("Problem closing connection"));
+ }
+ }
+}
+
static void con_close1(Rconnection con)
{
- if(con->isopen) con->close(con);
+ checkClose(con);
if(con->isGzcon) {
Rgzconn priv = con->private;
con_close1(priv->con);
@@ -3534,23 +3549,29 @@ int Rconn_getline(Rconnection con, char *buf, int bufsize)
return(nbuf);
}
-
int Rconn_printf(Rconnection con, const char *format, ...)
{
int res;
+ errno = 0;
va_list(ap);
-
va_start(ap, format);
/* Parentheses added for FC4 with gcc4 and -D_FORTIFY_SOURCE=2 */
res = (con->vfprintf)(con, format, ap);
va_end(ap);
+ /* PR#17243: write.table and friends silently failed if the disk was full (or there was another error) */
+ if (res < 0) {
+ if (errno)
+ error(_("Error writing to connection: %s"), strerror(errno));
+ else
+ error(_("Error writing to connection"));
+ }
return res;
}
static void con_cleanup(void *data)
{
Rconnection con = data;
- if(con->isopen) con->close(con);
+ checkClose(con);
}
/* readLines(con = stdin(), n = 1, ok = TRUE, warn = TRUE) */
@@ -3747,7 +3768,10 @@ SEXP attribute_hidden do_writelines(SEXP call, SEXP op, SEXP args, SEXP env)
translateChar0(STRING_ELT(text, i)), ssep);
}
- if(!wasopen) {endcontext(&cntxt); con->close(con);}
+ if(!wasopen) {
+ endcontext(&cntxt);
+ checkClose(con);
+ }
return R_NilValue;
}
@@ -4336,7 +4360,10 @@ SEXP attribute_hidden do_writebin(SEXP call, SEXP op, SEXP args, SEXP env)
Free(buf);
}
- if(!wasopen) {endcontext(&cntxt);con->close(con);}
+ if(!wasopen) {
+ endcontext(&cntxt);
+ checkClose(con);
+ }
if(isRaw) {
R_Visible = TRUE;
UNPROTECT(1);
@@ -4659,7 +4686,10 @@ SEXP attribute_hidden do_writechar(SEXP call, SEXP op, SEXP args, SEXP env)
buf += lenb;
}
}
- if(!wasopen) {endcontext(&cntxt); con->close(con);}
+ if(!wasopen) {
+ endcontext(&cntxt);
+ checkClose(con);
+ }
if(isRaw) {
R_Visible = TRUE;
UNPROTECT(1);
@@ -4821,9 +4851,9 @@ switch_or_tee_stdout(int icon, int closeOnExit, int tee)
if((icon = SinkCons[R_SinkNumber + 1]) >= 3) {
Rconnection con = getConnection(icon);
R_ReleaseObject(con->ex_ptr);
- if(SinkConsClose[R_SinkNumber + 1] == 1) /* close it */
- con->close(con);
- else if (SinkConsClose[R_SinkNumber + 1] == 2) /* destroy it */
+ if(SinkConsClose[R_SinkNumber + 1] == 1) { /* close it */
+ checkClose(con);
+ } else if (SinkConsClose[R_SinkNumber + 1] == 2) /* destroy it */
con_destroy(icon);
}
}
diff --git a/src/main/context.c b/src/main/context.c
index 9950032..77d258a 100644
--- a/src/main/context.c
+++ b/src/main/context.c
@@ -719,13 +719,18 @@ Rboolean R_ToplevelExec(void (*fun)(void *), void *data)
{
RCNTXT thiscontext;
RCNTXT * volatile saveToplevelContext;
- volatile SEXP topExp, oldHStack;
+ volatile SEXP topExp, oldHStack, oldRStack, oldRVal;
+ volatile Rboolean oldvis;
Rboolean result;
PROTECT(topExp = R_CurrentExpr);
PROTECT(oldHStack = R_HandlerStack);
+ PROTECT(oldRStack = R_RestartStack);
+ PROTECT(oldRVal = R_ReturnedValue);
+ oldvis = R_Visible;
R_HandlerStack = R_NilValue;
+ R_RestartStack = R_NilValue;
saveToplevelContext = R_ToplevelContext;
begincontext(&thiscontext, CTXT_TOPLEVEL, R_NilValue, R_GlobalEnv,
@@ -742,7 +747,10 @@ Rboolean R_ToplevelExec(void (*fun)(void *), void *data)
R_ToplevelContext = saveToplevelContext;
R_CurrentExpr = topExp;
R_HandlerStack = oldHStack;
- UNPROTECT(2);
+ R_RestartStack = oldRStack;
+ R_ReturnedValue = oldRVal;
+ R_Visible = oldvis;
+ UNPROTECT(4);
return result;
}
diff --git a/src/main/devices.c b/src/main/devices.c
index 69cce71..a0efd5c 100644
--- a/src/main/devices.c
+++ b/src/main/devices.c
@@ -91,7 +91,7 @@ static SEXP R_INLINE getSymbolValue(SEXP symbol)
static int R_CurrentDevice = 0;
static int R_NumDevices = 1;
/*
- R_MaxDevices is defined in Rgraphics.h to be 64. Slots are
+ R_MaxDevices is defined in ../include/Defn.h to be 64. Slots are
initiialized to be NULL, and returned to NULL when a device is
removed.
@@ -172,6 +172,8 @@ pGEDevDesc GEcurrentDevice(void)
UNPROTECT(1);
} else
error(_("no active or default device"));
+ if (NoDevices()) // the startup above may have failed
+ error(_("no active device and default getOption(\"device\") is invalid"));
}
return R_Devices[R_CurrentDevice];
}
diff --git a/src/main/envir.c b/src/main/envir.c
index 4075906..efab728 100644
--- a/src/main/envir.c
+++ b/src/main/envir.c
@@ -2186,7 +2186,7 @@ R_isMissing(SEXP symbol, SEXP rho)
if (TYPEOF(CAR(vl)) == PROMSXP &&
PRVALUE(CAR(vl)) == R_UnboundValue &&
TYPEOF(PREXPR(CAR(vl))) == SYMSXP) {
- /* This code uses the PRSEEN bit to detect cycles. If a
+ /* This code uses the PRSEEN value to detect cycles. If a
cycle occurs then a missing argument was encountered,
so the return value is TRUE. It would be a little
safer to use the promise stack to ensure unsetting of
@@ -2195,15 +2195,18 @@ R_isMissing(SEXP symbol, SEXP rho)
checking for missingness. Because of the test above
for an active binding a longjmp should only happen if
the stack check fails. LT */
- if (PRSEEN(CAR(vl)))
+ if (PRSEEN(CAR(vl)) == 1)
return 1;
else {
int val;
+ int oldseen = PRSEEN(CAR(vl));
SET_PRSEEN(CAR(vl), 1);
PROTECT(vl);
val = R_isMissing(PREXPR(CAR(vl)), PRENV(CAR(vl)));
UNPROTECT(1); /* vl */
- SET_PRSEEN(CAR(vl), 0);
+ /* The oldseen value will usually be 0, but might be 2
+ from an interrupted evaluation. LT */
+ SET_PRSEEN(CAR(vl), oldseen);
return val;
}
}
diff --git a/src/main/eval.c b/src/main/eval.c
index 088faff..e46985a 100644
--- a/src/main/eval.c
+++ b/src/main/eval.c
@@ -3923,6 +3923,7 @@ static R_INLINE int bcStackScalarRealEx(R_bcstack_t *s, scalar_value_t *px,
SKIP_OP(); \
SETSTACK_LOGICAL(-2, ((a) op (b)) ? TRUE : FALSE); \
R_BCNodeStackTop--; \
+ R_Visible = TRUE; \
NEXT(); \
} while (0)
@@ -4027,6 +4028,7 @@ static SEXP cmp_arith2(SEXP call, int opval, SEXP opsym, SEXP x, SEXP y,
SETSTACK(-1, CONS_NR(GETSTACK(-1), R_NilValue)); \
SETSTACK(-1, do_fun(call, getPrimitive(which, BUILTINSXP), \
GETSTACK(-1), rho)); \
+ R_Visible = TRUE; \
NEXT(); \
} while(0)
@@ -4039,6 +4041,7 @@ static SEXP cmp_arith2(SEXP call, int opval, SEXP opsym, SEXP x, SEXP y,
R_BCNodeStackTop--; \
SETSTACK(-1, do_fun(call, getPrimitive(which, BUILTINSXP), \
GETSTACK(-1), rho)); \
+ R_Visible = TRUE; \
NEXT(); \
} while(0)
@@ -4048,6 +4051,7 @@ static SEXP cmp_arith2(SEXP call, int opval, SEXP opsym, SEXP x, SEXP y,
SEXP y = GETSTACK(-1); \
SETSTACK(-2, do_fun(call, opval, opsym, x, y,rho)); \
R_BCNodeStackTop--; \
+ R_Visible = TRUE; \
NEXT(); \
} while(0)
@@ -4055,6 +4059,7 @@ static SEXP cmp_arith2(SEXP call, int opval, SEXP opsym, SEXP x, SEXP y,
SEXP call = VECTOR_ELT(constants, GETOP()); \
SEXP x = GETSTACK(-1); \
SETSTACK(-1, cmp_arith1(call, opsym, x, rho)); \
+ R_Visible = TRUE; \
NEXT(); \
} while(0)
@@ -4079,11 +4084,13 @@ static SEXP cmp_arith2(SEXP call, int opval, SEXP opsym, SEXP x, SEXP y,
} \
else SKIP_OP(); \
SETSTACK_REAL_EX(-1, dval, sa); \
+ R_Visible = TRUE; \
NEXT(); \
} \
else if (typex == INTSXP && vx.ival != NA_INTEGER) { \
SKIP_OP(); \
SETSTACK_REAL_EX(-1, fun(vx.ival), NULL); \
+ R_Visible = TRUE; \
NEXT(); \
} \
Builtin1(do_math1,sym,rho); \
@@ -4094,6 +4101,7 @@ static SEXP cmp_arith2(SEXP call, int opval, SEXP opsym, SEXP x, SEXP y,
SKIP_OP(); \
SETSTACK_REAL(-2, fun(a, b)); \
R_BCNodeStackTop--; \
+ R_Visible = TRUE; \
NEXT(); \
} while (0)
@@ -4103,6 +4111,7 @@ static SEXP cmp_arith2(SEXP call, int opval, SEXP opsym, SEXP x, SEXP y,
SKIP_OP(); \
SETSTACK_INTEGER(-2, (int) dval); \
R_BCNodeStackTop--; \
+ R_Visible = TRUE; \
NEXT(); \
} \
} while(0)
@@ -4115,6 +4124,7 @@ static SEXP cmp_arith2(SEXP call, int opval, SEXP opsym, SEXP x, SEXP y,
double dval = fun(a, b); \
SETSTACK_REAL_EX(-2, dval, ans); \
R_BCNodeStackTop--; \
+ R_Visible = TRUE; \
NEXT(); \
} while (0)
@@ -4125,6 +4135,7 @@ static SEXP cmp_arith2(SEXP call, int opval, SEXP opsym, SEXP x, SEXP y,
SKIP_OP(); \
SETSTACK_INTEGER_EX(-2, val, ans); \
R_BCNodeStackTop--; \
+ R_Visible = TRUE; \
NEXT(); \
} \
} while(0)
@@ -4137,11 +4148,13 @@ static SEXP cmp_arith2(SEXP call, int opval, SEXP opsym, SEXP x, SEXP y,
if (typex == REALSXP) { \
SKIP_OP(); \
SETSTACK_REAL_EX(-1, op vx.dval, sa); \
+ R_Visible = TRUE; \
NEXT(); \
} \
else if (typex == INTSXP && vx.ival != NA_INTEGER) { \
SKIP_OP(); \
SETSTACK_INTEGER_EX(-1, op vx.ival, sa); \
+ R_Visible = TRUE; \
NEXT(); \
} \
Arith1(opsym); \
@@ -4205,6 +4218,7 @@ static SEXP cmp_arith2(SEXP call, int opval, SEXP opsym, SEXP x, SEXP y,
} \
else SKIP_OP(); \
SETSTACK_REAL_EX(-1, dval, sa); \
+ R_Visible = TRUE; \
NEXT(); \
} \
SEXP call = VECTOR_ELT(constants, GETOP()); \
@@ -4212,6 +4226,7 @@ static SEXP cmp_arith2(SEXP call, int opval, SEXP opsym, SEXP x, SEXP y,
SETSTACK(-1, args); /* to protect */ \
SEXP op = getPrimitive(R_LogSym, SPECIALSXP); \
SETSTACK(-1, do_log_builtin(call, op, args, rho)); \
+ R_Visible = TRUE; \
NEXT(); \
} while (0)
@@ -4232,6 +4247,7 @@ static SEXP cmp_arith2(SEXP call, int opval, SEXP opsym, SEXP x, SEXP y,
else SKIP_OP(); \
R_BCNodeStackTop--; \
SETSTACK_REAL_EX(-1, dval, sa); \
+ R_Visible = TRUE; \
NEXT(); \
} \
SEXP call = VECTOR_ELT(constants, GETOP()); \
@@ -4241,6 +4257,7 @@ static SEXP cmp_arith2(SEXP call, int opval, SEXP opsym, SEXP x, SEXP y,
SETSTACK(-1, args); /* to protect */ \
SEXP op = getPrimitive(R_LogSym, SPECIALSXP); \
SETSTACK(-1, do_log_builtin(call, op, args, rho)); \
+ R_Visible = TRUE; \
NEXT(); \
} while (0)
@@ -4304,6 +4321,7 @@ static R_INLINE double (*getMath1Fun(int i, SEXP call))(double) {
else warningcall(call, R_MSG_NA); \
} \
SETSTACK_REAL_EX(-1, dval, sa); \
+ R_Visible = TRUE; \
NEXT(); \
} \
SEXP args = CONS_NR(GETSTACK(-1), R_NilValue); \
@@ -4311,6 +4329,7 @@ static R_INLINE double (*getMath1Fun(int i, SEXP call))(double) {
SETSTACK(-1, args); /* to protect */ \
SEXP op = getPrimitive(sym, BUILTINSXP); \
SETSTACK(-1, do_math1(call, op, args, rho)); \
+ R_Visible = TRUE; \
NEXT(); \
} while (0)
@@ -4330,6 +4349,7 @@ static R_INLINE double (*getMath1Fun(int i, SEXP call))(double) {
vmaxset(vmax); \
R_BCNodeStackTop -= nargs; \
SETSTACK(-1, val); \
+ R_Visible = TRUE; \
NEXT(); \
} \
SEXP args = R_NilValue; \
@@ -4342,6 +4362,7 @@ static R_INLINE double (*getMath1Fun(int i, SEXP call))(double) {
SEXP sym = CAR(call); \
SEXP op = getPrimitive(sym, BUILTINSXP); \
SETSTACK(-1, do_dotcall(call, op, args, rho)); \
+ R_Visible = TRUE; \
NEXT(); \
} while (0)
@@ -4360,6 +4381,7 @@ static R_INLINE double (*getMath1Fun(int i, SEXP call))(double) {
SKIP_OP(); /* skip 'call' index */ \
R_BCNodeStackTop--; \
SETSTACK_INTSEQ(-1, rn1, rn2); \
+ R_Visible = TRUE; \
NEXT(); \
} \
} \
@@ -4373,6 +4395,7 @@ static R_INLINE double (*getMath1Fun(int i, SEXP call))(double) {
if (len >= 1 && len <= INT_MAX) { \
SKIP_OP(); /* skip 'call' index */ \
SETSTACK_INTSEQ(-1, 1, len); \
+ R_Visible = TRUE; \
NEXT(); \
} \
} \
@@ -4388,6 +4411,7 @@ static R_INLINE double (*getMath1Fun(int i, SEXP call))(double) {
rlen == (int) rlen) { \
SKIP_OP(); /* skip 'call' index */ \
SETSTACK_INTSEQ(-1, 1, rlen); \
+ R_Visible = TRUE; \
NEXT(); \
} \
} \
@@ -4959,6 +4983,7 @@ static int tryAssignDispatch(char *generic, SEXP call, SEXP lhs, SEXP rhs,
SEXP args = CALL_FRAME_ARGS(); \
SEXP value = fun(call, symbol, args, rho); \
POP_CALL_FRAME_PLUS(2, value); \
+ R_Visible = TRUE; \
NEXT(); \
} while (0)
@@ -5040,10 +5065,12 @@ static int tryAssignDispatch(char *generic, SEXP call, SEXP lhs, SEXP rhs,
#define DO_ISTEST(fun) do { \
SETSTACK(-1, fun(GETSTACK(-1)) ? R_TrueValue : R_FalseValue); \
+ R_Visible = TRUE; \
NEXT(); \
} while(0)
#define DO_ISTYPE(type) do { \
SETSTACK(-1, TYPEOF(GETSTACK(-1)) == type ? R_TrueValue : R_FalseValue); \
+ R_Visible = TRUE; \
NEXT(); \
} while (0)
#define isNumericOnly(x) (isNumeric(x) && ! isLogical(x))
@@ -5188,6 +5215,7 @@ static R_INLINE void VECSUBSET_PTR(R_bcstack_t *sx, R_bcstack_t *si,
R_BCNodeStackTop - 2, rho, \
constants, callidx, sub2); \
R_BCNodeStackTop--; \
+ R_Visible = TRUE; \
} while(0)
static R_INLINE SEXP getMatrixDim(SEXP mat)
@@ -5282,6 +5310,7 @@ static R_INLINE void MATSUBSET_PTR(R_bcstack_t *sx,
R_BCNodeStackTop - 3, rho, \
constants, callidx, sub2); \
R_BCNodeStackTop -= 2; \
+ R_Visible = TRUE; \
} while (0)
static R_INLINE SEXP addStackArgsList(int n, R_bcstack_t *start, SEXP val)
@@ -5337,6 +5366,7 @@ static R_INLINE void SUBSET_N_PTR(R_bcstack_t *sx, int rank,
R_BCNodeStackTop - rank - 1, rho, \
constants, callidx, sub2); \
R_BCNodeStackTop -= rank; \
+ R_Visible = TRUE; \
} while (0)
static R_INLINE Rboolean setElementFromScalar(SEXP vec, R_xlen_t i, int typev,
@@ -5732,6 +5762,9 @@ SEXP attribute_hidden R_getCurrentSrcref()
static Rboolean maybeClosureWrapper(SEXP expr)
{
+ if (TYPEOF(expr) != LANGSXP)
+ return FALSE;
+
SEXP sym = CAR(expr);
if (!(sym == R_DotInternalSym || sym == R_DotExternalSym ||
@@ -5746,6 +5779,9 @@ static Rboolean maybeClosureWrapper(SEXP expr)
static Rboolean maybeAssignmentCall(SEXP expr)
{
+ if (TYPEOF(expr) != LANGSXP)
+ return FALSE;
+
if (TYPEOF(CAR(expr)) != SYMSXP)
return FALSE;
const char *name = CHAR(PRINTNAME(CAR(expr)));
@@ -5757,6 +5793,9 @@ static Rboolean maybeAssignmentCall(SEXP expr)
a builtin or special (does not search the environment!). */
static Rboolean maybePrimitiveCall(SEXP expr)
{
+ if (TYPEOF(expr) != LANGSXP)
+ return FALSE;
+
if (TYPEOF(CAR(expr)) == SYMSXP) {
SEXP value = SYMVALUE(CAR(expr));
if (TYPEOF(value) == PROMSXP)
@@ -6571,6 +6610,7 @@ static SEXP bcEval(SEXP body, SEXP rho, Rboolean useCache)
SETSTACK(-1, value);
else
SETSTACK(-1, R_subset3_dflt(x, PRINTNAME(symbol), R_NilValue));
+ R_Visible = TRUE;
NEXT();
}
OP(DOLLARGETS, 2):
@@ -6608,6 +6648,7 @@ static SEXP bcEval(SEXP body, SEXP rho, Rboolean useCache)
SEXP arg = GETSTACK(-1);
Rboolean test = (TYPEOF(arg) == INTSXP) && ! inherits(arg, "factor");
SETSTACK(-1, test ? R_TrueValue : R_FalseValue);
+ R_Visible = TRUE;
NEXT();
}
OP(ISDOUBLE, 0): DO_ISTYPE(REALSXP);
@@ -6627,6 +6668,7 @@ static SEXP bcEval(SEXP body, SEXP rho, Rboolean useCache)
SEXP value = GETSTACK(-1);
if (LOGICAL(value)[0] == FALSE)
pc = codebase + label;
+ R_Visible = TRUE;
NEXT();
}
OP(AND2ND, 1): {
@@ -6640,6 +6682,7 @@ static SEXP bcEval(SEXP body, SEXP rho, Rboolean useCache)
if (LOGICAL(value)[0] != TRUE)
SETSTACK(-2, value);
R_BCNodeStackTop -= 1;
+ R_Visible = TRUE;
NEXT();
}
OP(OR1ST, 2): {
@@ -6649,6 +6692,7 @@ static SEXP bcEval(SEXP body, SEXP rho, Rboolean useCache)
SEXP value = GETSTACK(-1);
if (LOGICAL(value)[0] != NA_LOGICAL && LOGICAL(value)[0]) /* is true */
pc = codebase + label;
+ R_Visible = TRUE;
NEXT();
}
OP(OR2ND, 1): {
@@ -6662,6 +6706,7 @@ static SEXP bcEval(SEXP body, SEXP rho, Rboolean useCache)
if (LOGICAL(value)[0] != FALSE)
SETSTACK(-2, value);
R_BCNodeStackTop -= 1;
+ R_Visible = TRUE;
NEXT();
}
OP(GETVAR_MISSOK, 1): DO_GETVAR(FALSE, TRUE);
diff --git a/src/main/gevents.c b/src/main/gevents.c
index 2a0cda2..8781e8e 100644
--- a/src/main/gevents.c
+++ b/src/main/gevents.c
@@ -1,7 +1,7 @@
/*
* R : A Computer Language for Statistical Data Analysis
* Copyright (C) 2004-2007 The R Foundation
- * Copyright (C) 2013-2015 The R Core Team
+ * Copyright (C) 2013-2017 The R Core Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -56,7 +56,7 @@ do_setGraphicsEventEnv(SEXP call, SEXP op, SEXP args, SEXP env)
checkArity(op, args);
devnum = INTEGER(CAR(args))[0] - 1;
- if(devnum < 1 || devnum > R_MaxDevices)
+ if(devnum < 1 || devnum >= R_MaxDevices)
error(_("invalid graphical device number"));
gdd = GEgetDevice(devnum);
@@ -98,7 +98,7 @@ do_getGraphicsEventEnv(SEXP call, SEXP op, SEXP args, SEXP env)
if(devnum == NA_INTEGER)
error(_("invalid graphical device number"));
devnum--;
- if(devnum < 1 || devnum > R_MaxDevices)
+ if(devnum < 1 || devnum >= R_MaxDevices)
error(_("invalid graphical device number"));
gdd = GEgetDevice(devnum);
diff --git a/src/main/main.c b/src/main/main.c
index 3de8e04..69f727f 100644
--- a/src/main/main.c
+++ b/src/main/main.c
@@ -1318,7 +1318,7 @@ SEXP attribute_hidden do_quit(SEXP call, SEXP op, SEXP args, SEXP rho)
status = asInteger(CADR(args));
if (status == NA_INTEGER) {
warning(_("invalid 'status', 0 assumed"));
- runLast = 0;
+ status = 0;
}
runLast = asLogical(CADDR(args));
if (runLast == NA_LOGICAL) {
diff --git a/src/main/memory.c b/src/main/memory.c
index 20cb33c..a2b6678 100644
--- a/src/main/memory.c
+++ b/src/main/memory.c
@@ -1399,10 +1399,18 @@ static Rboolean RunFinalizers(void)
for (s = R_weak_refs, last = R_NilValue; s != R_NilValue;) {
SEXP next = WEAKREF_NEXT(s);
if (IS_READY_TO_FINALIZE(s)) {
+ /**** use R_ToplevelExec here? */
RCNTXT thiscontext;
RCNTXT * volatile saveToplevelContext;
volatile int savestack;
- volatile SEXP topExp;
+ volatile SEXP topExp, oldHStack, oldRStack, oldRVal;
+ volatile Rboolean oldvis;
+ PROTECT(oldHStack = R_HandlerStack);
+ PROTECT(oldRStack = R_RestartStack);
+ PROTECT(oldRVal = R_ReturnedValue);
+ oldvis = R_Visible;
+ R_HandlerStack = R_NilValue;
+ R_RestartStack = R_NilValue;
finalizer_run = TRUE;
@@ -1436,7 +1444,11 @@ static Rboolean RunFinalizers(void)
R_ToplevelContext = saveToplevelContext;
R_PPStackTop = savestack;
R_CurrentExpr = topExp;
- UNPROTECT(1);
+ R_HandlerStack = oldHStack;
+ R_RestartStack = oldRStack;
+ R_ReturnedValue = oldRVal;
+ R_Visible = oldvis;
+ UNPROTECT(4);/* topExp, oldRVal, oldRStack, oldHStack */
}
else last = s;
s = next;
@@ -1974,9 +1986,7 @@ SEXP attribute_hidden do_gc(SEXP call, SEXP op, SEXP args, SEXP rho)
reset_max = asLogical(CADR(args));
num_old_gens_to_collect = NUM_OLD_GENERATIONS;
R_gc();
-#ifndef IMMEDIATE_FINALIZERS
- R_RunPendingFinalizers();
-#endif
+
gc_reporting = ogc;
/*- now return the [used , gc trigger size] for cells and heap */
PROTECT(value = allocVector(REALSXP, 14));
@@ -2859,6 +2869,9 @@ SEXP allocFormalsList6(SEXP sym1, SEXP sym2, SEXP sym3, SEXP sym4,
void R_gc(void)
{
R_gc_internal(0);
+#ifndef IMMEDIATE_FINALIZERS
+ R_RunPendingFinalizers();
+#endif
}
static void R_gc_full(R_size_t size_needed)
diff --git a/src/main/platform.c b/src/main/platform.c
index 36875af..8b6c20f 100644
--- a/src/main/platform.c
+++ b/src/main/platform.c
@@ -1745,6 +1745,7 @@ SEXP attribute_hidden do_setlocale(SEXP call, SEXP op, SEXP args, SEXP rho)
resetICUcollator();
setlocale(LC_MONETARY, l);
setlocale(LC_TIME, l);
+ dt_invalidate_locale();
/* Need to return value of LC_ALL */
p = setlocale(cat, NULL);
}
@@ -2441,6 +2442,12 @@ SEXP attribute_hidden do_filecopy(SEXP call, SEXP op, SEXP args, SEXP rho)
#else
+/* Only 10.13 (High Sierra) has this, but the headers in Xcode 9
+ declare it, for some people. As it is optional, disable it for now. */
+#ifdef __APPLE__
+# undef HAVE_UTIMENSAT
+#endif
+
#if defined(HAVE_UTIMENSAT)
# include <fcntl.h>
# include <sys/stat.h>
@@ -2540,6 +2547,7 @@ static int do_copy(const char* from, const char* name, const char* to,
continue;
if (strlen(name) + strlen(de->d_name) + 1 >= PATH_MAX) {
warning(_("over-long path length"));
+ closedir(dir);
return 1;
}
snprintf(p, PATH_MAX+1, "%s/%s", name, de->d_name);
diff --git a/src/main/print.c b/src/main/print.c
index 300577f..209aa79 100644
--- a/src/main/print.c
+++ b/src/main/print.c
@@ -1,7 +1,7 @@
/*
* R : A Computer Language for Statistical Data Analysis
+ * Copyright (C) 2000-2017 The R Core Team.
* Copyright (C) 1995-1998 Robert Gentleman and Ross Ihaka.
- * Copyright (C) 2000-2016 The R Core Team.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -34,7 +34,10 @@
* -> PrintGenericVector -> PrintValueRec (recursion)
* -> printList -> PrintValueRec (recursion)
* -> printAttributes -> PrintValueRec (recursion)
+ * -> PrintSpecial
* -> PrintExpression
+ * -> PrintLanguage -> PrintLanguageEtc
+ * -> PrintClosure -> PrintLanguageEtc
* -> printVector >>>>> ./printvector.c
* -> printNamedVector >>>>> ./printvector.c
* -> printMatrix >>>>> ./printarray.c
@@ -46,7 +49,7 @@
*
*
* See ./printutils.c for general remarks on Printing
- * and the Encode.. utils.
+ * and the EncodeString() and all Encode*() utils,
*
* Also ./printvector.c, ./printarray.c
*
@@ -182,17 +185,23 @@ static void PrintLanguageEtc(SEXP s, Rboolean useSource, Rboolean isClosure)
{
int i;
SEXP t = getAttrib(s, R_SrcrefSymbol);
- if (!isInteger(t) || !useSource)
- t = deparse1w(s, 0, useSource | DEFAULTDEPARSE);
- else {
+ Rboolean useSrc = useSource && isInteger(t);
+ if (useSrc) {
PROTECT(t = lang2(R_AsCharacterSymbol, t));
t = eval(t, R_BaseEnv);
UNPROTECT(1);
+ } else {
+ t = deparse1w(s, 0, useSource | DEFAULTDEPARSE);
}
PROTECT(t);
for (i = 0; i < LENGTH(t); i++) {
+#ifdef rev72839__not_ok_eg_for_escaped_chars
+ // did solve PR#16732
const char *ctmp = EncodeString(STRING_ELT(t, i), 0, 0, Rprt_adj_none);
Rprintf("%s\n", ctmp); /* translated */
+#else
+ Rprintf("%s\n", CHAR(STRING_ELT(t, i))); /* translated */
+#endif
}
UNPROTECT(1);
if (isClosure) {
diff --git a/src/main/printutils.c b/src/main/printutils.c
index af07fe7..d58583f 100644
--- a/src/main/printutils.c
+++ b/src/main/printutils.c
@@ -1,7 +1,7 @@
/*
* R : A Computer Language for Statistical Data Analysis
- * Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka
* Copyright (C) 1999--2017 The R Core Team
+ * Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -611,7 +611,12 @@ const char *EncodeString(SEXP s, int w, int quote, Rprt_adj justify)
+2 allows for quotes, +6 for UTF_8 escapes.
*/
- q = R_AllocStringBuffer(imax2(5*cnt+8, w), buffer);
+ if(5.*cnt + 8 > SIZE_MAX)
+ error(_("too large string (nchar=%d) => 5*nchar + 8 > SIZE_MAX"));
+ size_t q_len = 5*(size_t)cnt + 8;
+ if(q_len < w) q_len = (size_t) w;
+ q = R_AllocStringBuffer(q_len, buffer);
+
b = w - i - (quote ? 2 : 0); /* total amount of padding */
if(justify == Rprt_adj_none) b = 0;
if(b > 0 && justify != Rprt_adj_left) {
diff --git a/src/main/radixsort.c b/src/main/radixsort.c
index 392a531..8de7cc4 100644
--- a/src/main/radixsort.c
+++ b/src/main/radixsort.c
@@ -1617,7 +1617,8 @@ SEXP attribute_hidden do_radixsort(SEXP call, SEXP op, SEXP args, SEXP rho)
SEXP ans = PROTECT(allocVector(INTSXP, n));
o = INTEGER(ans);
- o[0] = -1;
+ if (n > 0)
+ o[0] = -1;
xd = DATAPTR(x);
stackgrps = narg > 1 || retGrp;
diff --git a/src/main/saveload.c b/src/main/saveload.c
index 42e2cb4..9818267 100644
--- a/src/main/saveload.c
+++ b/src/main/saveload.c
@@ -1,7 +1,7 @@
/*
* R : A Computer Language for Statistical Data Analysis
+ * Copyright (C) 1997--2017 The R Core Team
* Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka
- * Copyright (C) 1997--2015 The R Core Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -1379,7 +1379,7 @@ static int InIntegerAscii(FILE *fp, SaveLoadData *unused)
{
char buf[128];
int x, res;
- res = fscanf(fp, SMBUF_SIZED_STRING, buf);
+ res = fscanf(fp, "%127s", buf);
if(res != 1) error(_("read error"));
if (strcmp(buf, "NA") == 0)
return NA_INTEGER;
diff --git a/src/main/subscript.c b/src/main/subscript.c
index 3883b8f..4d46e77 100644
--- a/src/main/subscript.c
+++ b/src/main/subscript.c
@@ -1,7 +1,7 @@
/*
* R : A Computer Language for Statistical Data Analysis
+ * Copyright (C) 1997--2017 The R Core Team
* Copyright (C) 1995, 1996 Robert Gentleman and Ross Ihaka
- * Copyright (C) 1997--2015 The R Core Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -107,7 +107,7 @@ OneIndex(SEXP x, SEXP s, R_xlen_t len, int partial, SEXP *newname,
break;
}
}
- /* Try for partial match */
+ // Try for partial match -- not ever used in current R (partial is 0)
if (partial && indx < 0) {
size_t l = strlen(translateChar(STRING_ELT(s, pos)));
for(i = 0; i < nx; i++) {
@@ -274,6 +274,7 @@ get1index(SEXP s, SEXP names, R_xlen_t len, int pok, int pos, SEXP call)
vmaxset(vmax);
break;
}
+ break;
default:
ECALL3(call, _("invalid subscript type '%s'"), type2char(TYPEOF(s)));
}
@@ -716,7 +717,7 @@ realSubscript(SEXP s, R_xlen_t ns, R_xlen_t nx, R_xlen_t *stretch, SEXP call)
for (i = 0; i < ns; i++) {
dx = REAL(s)[i];
if (R_FINITE(dx) && dx != 0 && -dx <= nx) {
- ix = (int)(-dx - 1);
+ ix = (R_xlen_t)(-dx - 1);
LOGICAL(indx)[ix] = 0;
}
}
diff --git a/src/main/sysutils.c b/src/main/sysutils.c
index 8cba6d6..fddea54 100644
--- a/src/main/sysutils.c
+++ b/src/main/sysutils.c
@@ -1,7 +1,7 @@
/*
* R : A Computer Language for Statistical Data Analysis
* Copyright (C) 1995-1996 Robert Gentleman and Ross Ihaka
- * Copyright (C) 1997-2014 The R Core Team
+ * Copyright (C) 1997-2017 The R Core Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -1441,12 +1441,15 @@ mbtoucs(unsigned int *wc, const char *s, size_t n)
if (status == (size_t) -1) {
switch(errno){
case EINVAL:
+ Riconv_close(cd);
return (size_t) -2;
case EILSEQ:
+ Riconv_close(cd);
return (size_t) -1;
case E2BIG:
break;
default:
+ Riconv_close(cd);
errno = EILSEQ;
return (size_t) -1;
}
diff --git a/src/modules/X11/devX11.c b/src/modules/X11/devX11.c
index 4cb5bbc..10426c5 100644
--- a/src/modules/X11/devX11.c
+++ b/src/modules/X11/devX11.c
@@ -1479,7 +1479,7 @@ X11_Open(pDevDesc dd, pX11Desc xd, const char *dsp,
memset(&attributes, 0, sizeof(attributes));
attributes.background_pixel = whitepixel;
attributes.border_pixel = blackpixel;
- attributes.backing_store = Always;
+ attributes.backing_store = NotUseful;
attributes.event_mask = ButtonPressMask
| PointerMotionMask
| PointerMotionHintMask
diff --git a/src/modules/internet/Rsock.c b/src/modules/internet/Rsock.c
index 34ecbc4..56eaa24 100644
--- a/src/modules/internet/Rsock.c
+++ b/src/modules/internet/Rsock.c
@@ -1,8 +1,8 @@
/*
* R : A Computer Language for Statistical Data Analysis
+ * Copyright (C) 1998-2017 The R Core Team
* Copyright (C) 1996, 1997 Robert Gentleman and Ross Ihaka
- * Copyright (C) 1998-2015 The R Core Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -396,32 +396,32 @@ int R_SockConnect(int port, char *host, int timeout)
s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if (s == -1) return -1;
+#define CLOSE_N_RETURN(_ST_) { closesocket(s); return(_ST_); }
+
#ifdef Win32
{
u_long one = 1;
-
status = ioctlsocket(s, FIONBIO, &one) == SOCKET_ERROR ? -1 : 0;
}
#else
-#ifdef HAVE_FCNTL
+# ifdef HAVE_FCNTL
if ((status = fcntl(s, F_GETFL, 0)) != -1) {
-#ifdef O_NONBLOCK
+# ifdef O_NONBLOCK
status |= O_NONBLOCK;
-#else /* O_NONBLOCK */
-#ifdef F_NDELAY
+# else /* O_NONBLOCK */
+# ifdef F_NDELAY
status |= F_NDELAY;
-#endif /* F_NDELAY */
-#endif /* !O_NONBLOCK */
+# endif
+# endif /* !O_NONBLOCK */
status = fcntl(s, F_SETFL, status);
}
-#endif
+# endif // HAVE_FCNTL
if (status < 0) {
- closesocket(s);
- return(-1);
+ CLOSE_N_RETURN(-1);
}
#endif
- if (! (hp = gethostbyname(host))) return -1;
+ if (! (hp = gethostbyname(host))) CLOSE_N_RETURN(-1);
memcpy((char *)&server.sin_addr, hp->h_addr_list[0], hp->h_length);
server.sin_port = htons((short)port);
@@ -434,8 +434,7 @@ int R_SockConnect(int port, char *host, int timeout)
case EWOULDBLOCK:
break;
default:
- closesocket(s);
- return(-1);
+ CLOSE_N_RETURN(-1);
}
}
@@ -475,12 +474,10 @@ int R_SockConnect(int port, char *host, int timeout)
/* Time out */
used += tv.tv_sec + 1e-6 * tv.tv_usec;
if(used < timeout) continue;
- closesocket(s);
- return(-1);
+ CLOSE_N_RETURN(-1);
case -1:
/* Ermm.. ?? */
- closesocket(s);
- return(-1);
+ CLOSE_N_RETURN(-1);
}
if ( FD_ISSET(s, &wfd) ) {
@@ -491,9 +488,8 @@ int R_SockConnect(int port, char *host, int timeout)
return (-1);
}
if ( status ) {
- closesocket(s);
errno = status;
- return (-1);
+ CLOSE_N_RETURN(-1);
} else return(s);
#ifdef Unix
} else { /* some other handler needed */
diff --git a/src/modules/internet/nanoftp.c b/src/modules/internet/nanoftp.c
index 96ee80f..e7d886c 100644
--- a/src/modules/internet/nanoftp.c
+++ b/src/modules/internet/nanoftp.c
@@ -1,7 +1,7 @@
/*
* R : A Computer Language for Statistical Data Analysis
- * Copyright (C) 1998-2001 Daniel Veillard.
- * Copyright (C) 2001-2015 The R Core Team.
+ * Copyright (C) 2001-2017 The R Core Team.
+ * Copyright (C) 1998-2012 Daniel Veillard.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -23,7 +23,8 @@
can be non-ASCII.
*/
-/* based on libxml2-2.4.10:
+/* based on libxml2-2.4.10
+ * (but updated to protect against CVE-2004-0989):
* nanoftp.c: basic FTP client support
*
* Reference: RFC 959
@@ -55,6 +56,7 @@ extern void R_ProcessEvents(void);
#include <strings.h>
#endif
+// ../../include/R_ext/R-ftp-http.h :
#include <R_ext/R-ftp-http.h>
/* #define DEBUG_FTP */
@@ -135,6 +137,8 @@ setSelectMask(InputHandler *handlers, fd_set *readMask)
#define FTP_GET_PASSWD 331
#define FTP_BUF_SIZE 1024
+#define XML_NANO_MAX_URLBUF 4096
+
typedef struct RxmlNanoFTPCtxt {
char *protocol; /* the protocol name */
char *hostname; /* the host name */
@@ -256,7 +260,7 @@ static void
RxmlNanoFTPScanURL(void *ctx, const char *URL) {
RxmlNanoFTPCtxtPtr ctxt = (RxmlNanoFTPCtxtPtr) ctx;
const char *cur = URL;
- char buf[4096];
+ char buf[XML_NANO_MAX_URLBUF];
int indx = 0;
int port = 0;
@@ -277,7 +281,7 @@ RxmlNanoFTPScanURL(void *ctx, const char *URL) {
}
if (URL == NULL) return;
buf[indx] = 0;
- while (*cur != 0) {
+ while (*cur != 0 && (indx < XML_NANO_MAX_URLBUF-1)) {
if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
buf[indx] = 0;
ctxt->protocol = xmlMemStrdup(buf);
@@ -285,8 +289,6 @@ RxmlNanoFTPScanURL(void *ctx, const char *URL) {
cur += 3;
break;
}
- if(indx >= 4095)
- RxmlMessage(2, _("RxmlNanoFTPScanURL: overlong (invalid?) URL"));
buf[indx++] = *cur++;
}
if (*cur == 0) return;
@@ -296,10 +298,8 @@ RxmlNanoFTPScanURL(void *ctx, const char *URL) {
{
const char *p = strchr(cur, '@');
if(p) {
- while(1) {
+ while(indx < XML_NANO_MAX_URLBUF-1) {
if(cur[0] == ':' || cur[0] == '@') break;
- if(indx >= 4095)
- RxmlMessage(2, _("RxmlNanoFTPScanURL: overlong (invalid?) URL"));
buf[indx++] = *cur++;
}
buf[indx] = 0;
@@ -307,10 +307,8 @@ RxmlNanoFTPScanURL(void *ctx, const char *URL) {
indx = 0;
if(cur[0] == ':') {
cur++;
- while(1) {
+ while(indx < XML_NANO_MAX_URLBUF-1) {
if(cur[0] == '@') break;
- if(indx >= 4095)
- RxmlMessage(2, _("RxmlNanoFTPScanURL: overlong (invalid?) URL"));
buf[indx++] = *cur++;
}
buf[indx] = 0;
@@ -321,7 +319,7 @@ RxmlNanoFTPScanURL(void *ctx, const char *URL) {
}
}
- while (1) {
+ while (indx < XML_NANO_MAX_URLBUF-1) {
if (cur[0] == ':') {
buf[indx] = 0;
ctxt->hostname = xmlMemStrdup(buf);
@@ -343,8 +341,6 @@ RxmlNanoFTPScanURL(void *ctx, const char *URL) {
indx = 0;
break;
}
- if(indx >= 4095)
- RxmlMessage(2, _("RxmlNanoFTPScanURL: overlong (invalid?) URL"));
buf[indx++] = *cur++;
}
if (*cur == 0)
@@ -352,11 +348,8 @@ RxmlNanoFTPScanURL(void *ctx, const char *URL) {
else {
indx = 0;
buf[indx] = 0;
- while (*cur != 0) {
- if(indx >= 4095)
- RxmlMessage(2, _("RxmlNanoFTPScanURL: overlong (invalid?) URL"));
+ while (*cur != 0 && (indx < XML_NANO_MAX_URLBUF-1))
buf[indx++] = *cur++;
- }
buf[indx] = 0;
ctxt->path = xmlMemStrdup(buf);
}
@@ -375,7 +368,7 @@ RxmlNanoFTPScanURL(void *ctx, const char *URL) {
static void
RxmlNanoFTPScanProxy(const char *URL) {
const char *cur = URL;
- char buf[4096];
+ char buf[XML_NANO_MAX_URLBUF];
int indx = 0;
int port = 0;
@@ -392,21 +385,19 @@ RxmlNanoFTPScanProxy(const char *URL) {
RxmlMessage(1, _("using FTP proxy '%s'"), URL);
if (URL == NULL) return;
buf[indx] = 0;
- while (*cur != 0) {
+ while (*cur != 0 && (indx < XML_NANO_MAX_URLBUF - 1)) {
if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
buf[indx] = 0;
indx = 0;
cur += 3;
break;
}
- if(indx >= 4095)
- RxmlMessage(2, _("RxmlNanoFTPScanProxy: overlong (invalid?) URL"));
buf[indx++] = *cur++;
}
if (*cur == 0) return;
buf[indx] = 0;
- while (1) {
+ while (indx < XML_NANO_MAX_URLBUF-1) {
if (cur[0] == ':') {
buf[indx] = 0;
proxy = xmlMemStrdup(buf);
@@ -428,8 +419,6 @@ RxmlNanoFTPScanProxy(const char *URL) {
indx = 0;
break;
}
- if(indx >= 4095)
- RxmlMessage(2, _("RxmlNanoFTPScanProxy: overlong (invalid?) URL"));
buf[indx++] = *cur++;
}
}
@@ -840,6 +829,10 @@ RxmlNanoFTPConnect(void *ctx) {
*/
memset(&ctxt->ftpAddr, 0, sizeof(ctxt->ftpAddr));
ctxt->ftpAddr.sin_family = AF_INET;
+ if ((unsigned int)hp->h_length > sizeof(struct in_addr)) {
+ RxmlMessage(1, _("Malformed address resolved"));
+ return(-1);
+ }
memcpy(&ctxt->ftpAddr.sin_addr, hp->h_addr_list[0], hp->h_length);
if (proxy) {
port = proxyPort;
diff --git a/src/modules/internet/nanohttp.c b/src/modules/internet/nanohttp.c
index 5f70347..1f5f19c 100644
--- a/src/modules/internet/nanohttp.c
+++ b/src/modules/internet/nanohttp.c
@@ -1,7 +1,7 @@
/*
* R : A Computer Language for Statistical Data Analysis
- * Copyright (C) 1998-2001 Daniel Veillard.
- * Copyright (C) 2001-2017 The R Core Team.
+ * Copyright (C) 2001-2017 The R Core Team.
+ * Copyright (C) 1998-2012 Daniel Veillard.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -24,6 +24,7 @@
/* based on libxml2-2.3.6:
+ * (but updated to protect against CVE-2004-0989):
* nanohttp.c: minimalist HTTP GET implementation to fetch external subsets.
* focuses on size, streamability, reentrancy and portability
*
@@ -73,6 +74,7 @@ extern void R_FlushConsole(void);
#define R_SelectEx(n,rfd,wrd,efd,tv,ih) select(n,rfd,wrd,efd,tv)
#endif
+// ../../include/R_ext/R-ftp-http.h :
#include <R_ext/R-ftp-http.h>
#ifdef Win32
# include <R_ext/Print.h>
@@ -341,6 +343,7 @@ RxmlNanoHTTPScanURL(RxmlNanoHTTPCtxtPtr ctxt, const char *URL)
const char *cur = URL;
char buf[40960];
int indx = 0;
+ const int indxMax = 40960 - 1;
int port = 0;
if (ctxt->protocol != NULL) {
@@ -357,7 +360,7 @@ RxmlNanoHTTPScanURL(RxmlNanoHTTPCtxtPtr ctxt, const char *URL)
}
if (URL == NULL) return;
buf[indx] = 0;
- while (*cur != 0) {
+ while (*cur != 0 && (indx < indxMax)) {
if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
buf[indx] = 0;
ctxt->protocol = xmlMemStrdup(buf);
@@ -365,16 +368,12 @@ RxmlNanoHTTPScanURL(RxmlNanoHTTPCtxtPtr ctxt, const char *URL)
cur += 3;
break;
}
- if(indx >= 40959)
- RxmlMessage(2, _("RxmlNanoHTTPScanURL: overlong (invalid?) URL"));
- else {
- buf[indx++] = *cur++;
- }
+ buf[indx++] = *cur++;
}
if (*cur == 0) return;
buf[indx] = 0;
- while (1) {
+ while (indx < indxMax) {
if (cur[0] == ':') {
buf[indx] = 0;
ctxt->hostname = xmlMemStrdup(buf);
@@ -396,20 +395,14 @@ RxmlNanoHTTPScanURL(RxmlNanoHTTPCtxtPtr ctxt, const char *URL)
indx = 0;
break;
}
- if(indx >= 40959)
- RxmlMessage(2, _("RxmlNanoHTTPScanURL: overlong (invalid?) URL"));
- else {
- buf[indx++] = *cur++;
- }
+ buf[indx++] = *cur++;
}
if (*cur == 0)
ctxt->path = xmlMemStrdup("/");
else {
indx = 0;
buf[indx] = 0;
- while (*cur != 0) {
- if(indx >= 40959)
- RxmlMessage(2, _("RxmlNanoHTTPScanURL: overlong (invalid?) URL"));
+ while (*cur != 0 && (indx < indxMax)) {
buf[indx++] = *cur++;
}
buf[indx] = 0;
@@ -433,6 +426,7 @@ RxmlNanoHTTPScanProxy(const char *URL)
const char *cur = URL;
char buf[4096];
int indx = 0;
+ const int indxMax = 4096 - 1;
int port = 0;
if (proxy != NULL) {
@@ -448,18 +442,14 @@ RxmlNanoHTTPScanProxy(const char *URL)
RxmlMessage(1, _("using HTTP proxy '%s'"), URL);
if (URL == NULL) return;
buf[indx] = 0;
- while (*cur != 0) {
+ while (*cur != 0 && (indx < indxMax)) {
if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
buf[indx] = 0;
indx = 0;
cur += 3;
break;
}
- if(indx >= 4095)
- RxmlMessage(2, _("RxmlNanoHTTPScanProxy: overlong (invalid?) URL"));
- else {
- buf[indx++] = *cur++;
- }
+ buf[indx++] = *cur++;
}
if (*cur == 0) return;
@@ -471,7 +461,7 @@ RxmlNanoHTTPScanProxy(const char *URL)
cur += (int)strlen(buf) + 1;
}
buf[indx] = 0;
- while (1) {
+ while (indx < indxMax) {
if (cur[0] == ':') {
buf[indx] = 0;
proxy = xmlMemStrdup(buf);
@@ -493,11 +483,7 @@ RxmlNanoHTTPScanProxy(const char *URL)
indx = 0;
break;
}
- if(indx >= 4095)
- RxmlMessage(2, _("RxmlNanoHTTPScanProxy: overlong (invalid?) URL"));
- else {
- buf[indx++] = *cur++;
- }
+ buf[indx++] = *cur++;
}
}
@@ -1140,6 +1126,8 @@ RxmlNanoHTTPConnectHost(const char *host, int port)
{
if (h->h_addrtype == AF_INET) {
/* A records (IPv4) */
+ if ((unsigned int)h->h_length > sizeof(ia))
+ continue;
memcpy(&ia, h->h_addr_list[i], h->h_length);
#ifdef _WIN32
// this is a u_short
@@ -1154,6 +1142,8 @@ RxmlNanoHTTPConnectHost(const char *host, int port)
#ifdef SUPPORT_IP6
} else if (h->h_addrtype == AF_INET6) {
/* AAAA records (IPv6) */
+ if ((unsigned int)h->h_length > sizeof(ia6))
+ continue;
memcpy(&ia6, h->h_addr_list[i], h->h_length);
sockin6.sin6_family = h->h_addrtype;
sockin6.sin6_addr = ia6;
diff --git a/src/modules/internet/sock.c b/src/modules/internet/sock.c
index c68d0f0..b937616 100644
--- a/src/modules/internet/sock.c
+++ b/src/modules/internet/sock.c
@@ -149,8 +149,10 @@ int Sock_open(Sock_port_t port, Sock_error_t perr)
#endif
if ((bind(sock, (struct sockaddr *)&server, sizeof(server)) < 0) ||
- (listen(sock, MAXBACKLOG) < 0))
+ (listen(sock, MAXBACKLOG) < 0)) {
+ close(sock);
return Sock_error(perr, errno, 0);
+ }
return sock;
}
diff --git a/src/modules/lapack/LICENSE b/src/modules/lapack/LICENSE
index eefcbda..94cdb0f 100644
--- a/src/modules/lapack/LICENSE
+++ b/src/modules/lapack/LICENSE
@@ -1,9 +1,9 @@
-Copyright (c) 1992-2016 The University of Tennessee and The University
+Copyright (c) 1992-2017 The University of Tennessee and The University
of Tennessee Research Foundation. All rights
reserved.
-Copyright (c) 2000-2016 The University of California Berkeley. All
+Copyright (c) 2000-2017 The University of California Berkeley. All
rights reserved.
-Copyright (c) 2006-2016 The University of Colorado Denver. All rights
+Copyright (c) 2006-2017 The University of Colorado Denver. All rights
reserved.
$COPYRIGHT$
diff --git a/src/modules/lapack/README b/src/modules/lapack/README
index a661a60..9bf18dc 100644
--- a/src/modules/lapack/README
+++ b/src/modules/lapack/README
@@ -1,5 +1,5 @@
The Fortran routines here were extracted from LAPACK 3.1.0, then
-3.1.1, 3.4.1, 3.4.2, 3.5.0, 3.6.0, 3.6.1, 3.7.0.
+3.1.1, 3.4.1, 3.4.2, 3.5.0, 3.6.0, 3.6.1, 3.7.0, 3.7.1.
(Sources from http://www.netlib.org/lapack and mirrors).
dlapack.f contains support routines for `real' LAPACK calls.
@@ -14,25 +14,27 @@ We have tried to avoid including any single-precision routines.
Preparation
-----------
-dlapack.f and cmplx.f were created in the LAPACK 3.7.0 sources by
+dlapack.f and cmplx.f were created at the top level in the LAPACK
+3.7.1 sources by copying {dble,cmplx}.txt there and running
dir.create('dble')
foo <- scan('dble.txt', "")
file.copy(file.path("SRC", foo), 'dble')
+file.copy(file.path("INSTALL", 'ilaver.f'), 'dble')
system('cpp SRC/iparam2stage.F > dble/iparam2stage.f')
system("cat dble/* > dlapack.f")
-dir.create('cmplx ')
+dir.create('cmplx')
foo <- scan('cmplx.txt', "")
file.copy(file.path("SRC", foo), 'cmplx')
system("cat cmplx/* > cmplx.f")
If you update the LAPACK version, you need to copy over the LICENSE
-file and update it in doc/copyrights. And if you patch the sources,
+file and update it in doc/COPYRIGHTS. And if you patch the sources,
*DO* mention it here and add the patch to R.patch.
New LAPACK versions (even point releases) often add new auxiliary
-routines, and these can be hard to track down. I found it helpful to
+routines, and these can be hard to track down. We found it helpful to
compare the outputs of
nm -g dlapack.o | grep ' T ' | cut -b20-
diff --git a/src/modules/lapack/cmplx.f b/src/modules/lapack/cmplx.f
index 9441804..47dbeaf 100644
--- a/src/modules/lapack/cmplx.f
+++ b/src/modules/lapack/cmplx.f
@@ -1889,10 +1889,12 @@
*>
*> \param[out] ILO
*> \verbatim
+*> ILO is INTEGER
*> \endverbatim
*>
*> \param[out] IHI
*> \verbatim
+*> IHI is INTEGER
*> ILO and IHI are set to INTEGER such that on exit
*> A(i,j) = 0 if i > j and j = 1,...,ILO-1 or I = IHI+1,...,N.
*> If JOB = 'N' or 'S', ILO = 1 and IHI = N.
@@ -1927,7 +1929,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup complex16GEcomputational
*
@@ -1966,10 +1968,10 @@
* =====================================================================
SUBROUTINE ZGEBAL( JOB, N, A, LDA, ILO, IHI, SCALE, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
CHARACTER JOB
@@ -2304,7 +2306,7 @@
*>
*> \param[out] TAUQ
*> \verbatim
-*> TAUQ is COMPLEX*16 array dimension (min(M,N))
+*> TAUQ is COMPLEX*16 array, dimension (min(M,N))
*> The scalar factors of the elementary reflectors which
*> represent the unitary matrix Q. See Further Details.
*> \endverbatim
@@ -2336,7 +2338,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup complex16GEcomputational
*
@@ -2393,10 +2395,10 @@
* =====================================================================
SUBROUTINE ZGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INFO, LDA, M, N
@@ -2636,7 +2638,7 @@
*>
*> \param[out] TAUQ
*> \verbatim
-*> TAUQ is COMPLEX*16 array dimension (min(M,N))
+*> TAUQ is COMPLEX*16 array, dimension (min(M,N))
*> The scalar factors of the elementary reflectors which
*> represent the unitary matrix Q. See Further Details.
*> \endverbatim
@@ -2682,7 +2684,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup complex16GEcomputational
*
@@ -2740,10 +2742,10 @@
SUBROUTINE ZGEBRD( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, LWORK,
$ INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INFO, LDA, LWORK, M, N
@@ -6035,7 +6037,7 @@
*> of the matrices B and X. NRHS >= 0.
*> \endverbatim
*>
-*> \param[in] A
+*> \param[in,out] A
*> \verbatim
*> A is COMPLEX*16 array, dimension (LDA,N)
*> On entry, the M-by-N matrix A.
@@ -6155,7 +6157,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup complex16GEsolve
*
@@ -6170,10 +6172,10 @@
SUBROUTINE ZGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
$ WORK, LWORK, RWORK, IWORK, INFO )
*
-* -- LAPACK driver routine (version 3.7.0) --
+* -- LAPACK driver routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INFO, LDA, LDB, LWORK, M, N, NRHS, RANK
@@ -10312,7 +10314,7 @@
* End of ZGESDD
*
END
-*> \brief <b> ZGESV computes the solution to system of linear equations A * X = B for GE matrices</b> (simple driver) </b>
+*> \brief <b> ZGESV computes the solution to system of linear equations A * X = B for GE matrices (simple driver) </b>
*
* =========== DOCUMENTATION ===========
*
@@ -10429,17 +10431,17 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup complex16GEsolve
*
* =====================================================================
SUBROUTINE ZGESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO )
*
-* -- LAPACK driver routine (version 3.7.0) --
+* -- LAPACK driver routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INFO, LDA, LDB, N, NRHS
@@ -21527,7 +21529,7 @@
*>
*> \param[out] TAUQ
*> \verbatim
-*> TAUQ is COMPLEX*16 array dimension (NB)
+*> TAUQ is COMPLEX*16 array, dimension (NB)
*> The scalar factors of the elementary reflectors which
*> represent the unitary matrix Q. See Further Details.
*> \endverbatim
@@ -21573,7 +21575,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup complex16OTHERauxiliary
*
@@ -21628,10 +21630,10 @@
SUBROUTINE ZLABRD( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX, Y,
$ LDY )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER LDA, LDX, LDY, M, N, NB
@@ -26073,8 +26075,7 @@
*>
*> \param[out] IWORK
*> \verbatim
-*> IWORK is INTEGER array.
-*> The dimension must be at least 3 * N
+*> IWORK is INTEGER array, dimension (3*N)
*> \endverbatim
*>
*> \param[out] INFO
@@ -26092,7 +26093,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup complex16OTHERcomputational
*
@@ -26109,10 +26110,10 @@
$ GIVCOL, LDGCOL, PERM, GIVNUM, C, S, RWORK,
$ IWORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER ICOMPQ, INFO, LDB, LDBX, LDGCOL, LDU, N, NRHS,
@@ -26613,8 +26614,7 @@
*>
*> \param[out] WORK
*> \verbatim
-*> WORK is COMPLEX*16 array, dimension at least
-*> (N * NRHS).
+*> WORK is COMPLEX*16 array, dimension (N * NRHS)
*> \endverbatim
*>
*> \param[out] RWORK
@@ -26650,7 +26650,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup complex16OTHERcomputational
*
@@ -26665,10 +26665,10 @@
SUBROUTINE ZLALSD( UPLO, SMLSIZ, N, NRHS, D, E, B, LDB, RCOND,
$ RANK, WORK, RWORK, IWORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
CHARACTER UPLO
@@ -29831,19 +29831,19 @@
*
*> \param[in] N
*> \verbatim
-*> N is integer
+*> N is INTEGER
*> Order of the matrix H. N must be either 2 or 3.
*> \endverbatim
*>
*> \param[in] H
*> \verbatim
-*> H is COMPLEX*16 array of dimension (LDH,N)
+*> H is COMPLEX*16 array, dimension (LDH,N)
*> The 2-by-2 or 3-by-3 matrix H in (*).
*> \endverbatim
*>
*> \param[in] LDH
*> \verbatim
-*> LDH is integer
+*> LDH is INTEGER
*> The leading dimension of H as declared in
*> the calling procedure. LDH.GE.N
*> \endverbatim
@@ -29862,7 +29862,7 @@
*>
*> \param[out] V
*> \verbatim
-*> V is COMPLEX*16 array of dimension N
+*> V is COMPLEX*16 array, dimension (N)
*> A scalar multiple of the first column of the
*> matrix K in (*).
*> \endverbatim
@@ -29875,7 +29875,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup complex16OTHERauxiliary
*
@@ -29888,10 +29888,10 @@
* =====================================================================
SUBROUTINE ZLAQR1( N, H, LDH, S1, S2, V )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
COMPLEX*16 S1, S2
@@ -30072,7 +30072,7 @@
*>
*> \param[in] LDH
*> \verbatim
-*> LDH is integer
+*> LDH is INTEGER
*> Leading dimension of H just as declared in the calling
*> subroutine. N .LE. LDH
*> \endverbatim
@@ -30100,14 +30100,14 @@
*>
*> \param[in] LDZ
*> \verbatim
-*> LDZ is integer
+*> LDZ is INTEGER
*> The leading dimension of Z just as declared in the
*> calling subroutine. 1 .LE. LDZ.
*> \endverbatim
*>
*> \param[out] NS
*> \verbatim
-*> NS is integer
+*> NS is INTEGER
*> The number of unconverged (ie approximate) eigenvalues
*> returned in SR and SI that may be used as shifts by the
*> calling subroutine.
@@ -30115,14 +30115,14 @@
*>
*> \param[out] ND
*> \verbatim
-*> ND is integer
+*> ND is INTEGER
*> The number of converged eigenvalues uncovered by this
*> subroutine.
*> \endverbatim
*>
*> \param[out] SH
*> \verbatim
-*> SH is COMPLEX*16 array, dimension KBOT
+*> SH is COMPLEX*16 array, dimension (KBOT)
*> On output, approximate eigenvalues that may
*> be used for shifts are stored in SH(KBOT-ND-NS+1)
*> through SR(KBOT-ND). Converged eigenvalues are
@@ -30137,14 +30137,14 @@
*>
*> \param[in] LDV
*> \verbatim
-*> LDV is integer scalar
+*> LDV is INTEGER
*> The leading dimension of V just as declared in the
*> calling subroutine. NW .LE. LDV
*> \endverbatim
*>
*> \param[in] NH
*> \verbatim
-*> NH is integer scalar
+*> NH is INTEGER
*> The number of columns of T. NH.GE.NW.
*> \endverbatim
*>
@@ -30155,14 +30155,14 @@
*>
*> \param[in] LDT
*> \verbatim
-*> LDT is integer
+*> LDT is INTEGER
*> The leading dimension of T just as declared in the
*> calling subroutine. NW .LE. LDT
*> \endverbatim
*>
*> \param[in] NV
*> \verbatim
-*> NV is integer
+*> NV is INTEGER
*> The number of rows of work array WV available for
*> workspace. NV.GE.NW.
*> \endverbatim
@@ -30174,21 +30174,21 @@
*>
*> \param[in] LDWV
*> \verbatim
-*> LDWV is integer
+*> LDWV is INTEGER
*> The leading dimension of W just as declared in the
*> calling subroutine. NW .LE. LDV
*> \endverbatim
*>
*> \param[out] WORK
*> \verbatim
-*> WORK is COMPLEX*16 array, dimension LWORK.
+*> WORK is COMPLEX*16 array, dimension (LWORK)
*> On exit, WORK(1) is set to an estimate of the optimal value
*> of LWORK for the given values of N, NW, KTOP and KBOT.
*> \endverbatim
*>
*> \param[in] LWORK
*> \verbatim
-*> LWORK is integer
+*> LWORK is INTEGER
*> The dimension of the work array WORK. LWORK = 2*NW
*> suffices, but greater efficiency may result from larger
*> values of LWORK.
@@ -30208,7 +30208,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup complex16OTHERauxiliary
*
@@ -30223,10 +30223,10 @@
$ IHIZ, Z, LDZ, NS, ND, SH, V, LDV, NH, T, LDT,
$ NV, WV, LDWV, WORK, LWORK )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER IHIZ, ILOZ, KBOT, KTOP, LDH, LDT, LDV, LDWV,
@@ -30636,7 +30636,7 @@
*>
*> \param[in] LDH
*> \verbatim
-*> LDH is integer
+*> LDH is INTEGER
*> Leading dimension of H just as declared in the calling
*> subroutine. N .LE. LDH
*> \endverbatim
@@ -30664,14 +30664,14 @@
*>
*> \param[in] LDZ
*> \verbatim
-*> LDZ is integer
+*> LDZ is INTEGER
*> The leading dimension of Z just as declared in the
*> calling subroutine. 1 .LE. LDZ.
*> \endverbatim
*>
*> \param[out] NS
*> \verbatim
-*> NS is integer
+*> NS is INTEGER
*> The number of unconverged (ie approximate) eigenvalues
*> returned in SR and SI that may be used as shifts by the
*> calling subroutine.
@@ -30679,14 +30679,14 @@
*>
*> \param[out] ND
*> \verbatim
-*> ND is integer
+*> ND is INTEGER
*> The number of converged eigenvalues uncovered by this
*> subroutine.
*> \endverbatim
*>
*> \param[out] SH
*> \verbatim
-*> SH is COMPLEX*16 array, dimension KBOT
+*> SH is COMPLEX*16 array, dimension (KBOT)
*> On output, approximate eigenvalues that may
*> be used for shifts are stored in SH(KBOT-ND-NS+1)
*> through SR(KBOT-ND). Converged eigenvalues are
@@ -30701,14 +30701,14 @@
*>
*> \param[in] LDV
*> \verbatim
-*> LDV is integer scalar
+*> LDV is INTEGER
*> The leading dimension of V just as declared in the
*> calling subroutine. NW .LE. LDV
*> \endverbatim
*>
*> \param[in] NH
*> \verbatim
-*> NH is integer scalar
+*> NH is INTEGER
*> The number of columns of T. NH.GE.NW.
*> \endverbatim
*>
@@ -30719,14 +30719,14 @@
*>
*> \param[in] LDT
*> \verbatim
-*> LDT is integer
+*> LDT is INTEGER
*> The leading dimension of T just as declared in the
*> calling subroutine. NW .LE. LDT
*> \endverbatim
*>
*> \param[in] NV
*> \verbatim
-*> NV is integer
+*> NV is INTEGER
*> The number of rows of work array WV available for
*> workspace. NV.GE.NW.
*> \endverbatim
@@ -30738,21 +30738,21 @@
*>
*> \param[in] LDWV
*> \verbatim
-*> LDWV is integer
+*> LDWV is INTEGER
*> The leading dimension of W just as declared in the
*> calling subroutine. NW .LE. LDV
*> \endverbatim
*>
*> \param[out] WORK
*> \verbatim
-*> WORK is COMPLEX*16 array, dimension LWORK.
+*> WORK is COMPLEX*16 array, dimension (LWORK)
*> On exit, WORK(1) is set to an estimate of the optimal value
*> of LWORK for the given values of N, NW, KTOP and KBOT.
*> \endverbatim
*>
*> \param[in] LWORK
*> \verbatim
-*> LWORK is integer
+*> LWORK is INTEGER
*> The dimension of the work array WORK. LWORK = 2*NW
*> suffices, but greater efficiency may result from larger
*> values of LWORK.
@@ -30787,7 +30787,7 @@
$ IHIZ, Z, LDZ, NS, ND, SH, V, LDV, NH, T, LDT,
$ NV, WV, LDWV, WORK, LWORK )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -31848,21 +31848,21 @@
*
*> \param[in] WANTT
*> \verbatim
-*> WANTT is logical scalar
+*> WANTT is LOGICAL
*> WANTT = .true. if the triangular Schur factor
*> is being computed. WANTT is set to .false. otherwise.
*> \endverbatim
*>
*> \param[in] WANTZ
*> \verbatim
-*> WANTZ is logical scalar
+*> WANTZ is LOGICAL
*> WANTZ = .true. if the unitary Schur factor is being
*> computed. WANTZ is set to .false. otherwise.
*> \endverbatim
*>
*> \param[in] KACC22
*> \verbatim
-*> KACC22 is integer with value 0, 1, or 2.
+*> KACC22 is INTEGER with value 0, 1, or 2.
*> Specifies the computation mode of far-from-diagonal
*> orthogonal updates.
*> = 0: ZLAQR5 does not accumulate reflections and does not
@@ -31878,19 +31878,19 @@
*>
*> \param[in] N
*> \verbatim
-*> N is integer scalar
+*> N is INTEGER
*> N is the order of the Hessenberg matrix H upon which this
*> subroutine operates.
*> \endverbatim
*>
*> \param[in] KTOP
*> \verbatim
-*> KTOP is integer scalar
+*> KTOP is INTEGER
*> \endverbatim
*>
*> \param[in] KBOT
*> \verbatim
-*> KBOT is integer scalar
+*> KBOT is INTEGER
*> These are the first and last rows and columns of an
*> isolated diagonal block upon which the QR sweep is to be
*> applied. It is assumed without a check that
@@ -31901,21 +31901,21 @@
*>
*> \param[in] NSHFTS
*> \verbatim
-*> NSHFTS is integer scalar
+*> NSHFTS is INTEGER
*> NSHFTS gives the number of simultaneous shifts. NSHFTS
*> must be positive and even.
*> \endverbatim
*>
*> \param[in,out] S
*> \verbatim
-*> S is COMPLEX*16 array of size (NSHFTS)
+*> S is COMPLEX*16 array, dimension (NSHFTS)
*> S contains the shifts of origin that define the multi-
*> shift QR sweep. On output S may be reordered.
*> \endverbatim
*>
*> \param[in,out] H
*> \verbatim
-*> H is COMPLEX*16 array of size (LDH,N)
+*> H is COMPLEX*16 array, dimension (LDH,N)
*> On input H contains a Hessenberg matrix. On output a
*> multi-shift QR sweep with shifts SR(J)+i*SI(J) is applied
*> to the isolated diagonal block in rows and columns KTOP
@@ -31924,7 +31924,7 @@
*>
*> \param[in] LDH
*> \verbatim
-*> LDH is integer scalar
+*> LDH is INTEGER
*> LDH is the leading dimension of H just as declared in the
*> calling procedure. LDH.GE.MAX(1,N).
*> \endverbatim
@@ -31943,7 +31943,7 @@
*>
*> \param[in,out] Z
*> \verbatim
-*> Z is COMPLEX*16 array of size (LDZ,IHIZ)
+*> Z is COMPLEX*16 array, dimension (LDZ,IHIZ)
*> If WANTZ = .TRUE., then the QR Sweep unitary
*> similarity transformation is accumulated into
*> Z(ILOZ:IHIZ,ILOZ:IHIZ) from the right.
@@ -31952,71 +31952,69 @@
*>
*> \param[in] LDZ
*> \verbatim
-*> LDZ is integer scalar
+*> LDZ is INTEGER
*> LDA is the leading dimension of Z just as declared in
*> the calling procedure. LDZ.GE.N.
*> \endverbatim
*>
*> \param[out] V
*> \verbatim
-*> V is COMPLEX*16 array of size (LDV,NSHFTS/2)
+*> V is COMPLEX*16 array, dimension (LDV,NSHFTS/2)
*> \endverbatim
*>
*> \param[in] LDV
*> \verbatim
-*> LDV is integer scalar
+*> LDV is INTEGER
*> LDV is the leading dimension of V as declared in the
*> calling procedure. LDV.GE.3.
*> \endverbatim
*>
*> \param[out] U
*> \verbatim
-*> U is COMPLEX*16 array of size
-*> (LDU,3*NSHFTS-3)
+*> U is COMPLEX*16 array, dimension (LDU,3*NSHFTS-3)
*> \endverbatim
*>
*> \param[in] LDU
*> \verbatim
-*> LDU is integer scalar
+*> LDU is INTEGER
*> LDU is the leading dimension of U just as declared in the
*> in the calling subroutine. LDU.GE.3*NSHFTS-3.
*> \endverbatim
*>
*> \param[in] NH
*> \verbatim
-*> NH is integer scalar
+*> NH is INTEGER
*> NH is the number of columns in array WH available for
*> workspace. NH.GE.1.
*> \endverbatim
*>
*> \param[out] WH
*> \verbatim
-*> WH is COMPLEX*16 array of size (LDWH,NH)
+*> WH is COMPLEX*16 array, dimension (LDWH,NH)
*> \endverbatim
*>
*> \param[in] LDWH
*> \verbatim
-*> LDWH is integer scalar
+*> LDWH is INTEGER
*> Leading dimension of WH just as declared in the
*> calling procedure. LDWH.GE.3*NSHFTS-3.
*> \endverbatim
*>
*> \param[in] NV
*> \verbatim
-*> NV is integer scalar
+*> NV is INTEGER
*> NV is the number of rows in WV agailable for workspace.
*> NV.GE.1.
*> \endverbatim
*>
*> \param[out] WV
*> \verbatim
-*> WV is COMPLEX*16 array of size
-*> (LDWV,3*NSHFTS-3)
+*> WV is COMPLEX*16 array, dimension (LDWV,3*NSHFTS-3)
*> \endverbatim
*>
*> \param[in] LDWV
*> \verbatim
-*> LDWV is integer scalar
+*> LDWV is INTEGER
*> LDWV is the leading dimension of WV as declared in the
*> in the calling subroutine. LDWV.GE.NV.
*> \endverbatim
@@ -32052,7 +32050,7 @@
$ H, LDH, ILOZ, IHIZ, Z, LDZ, V, LDV, U, LDU, NV,
$ WV, LDWV, NH, WH, LDWH )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -36577,14 +36575,15 @@
*> \verbatim
*> IPIV is INTEGER array, dimension (K1+(K2-K1)*abs(INCX))
*> The vector of pivot indices. Only the elements in positions
-*> K1 through K1+(K2-K1)*INCX of IPIV are accessed.
-*> IPIV(K) = L implies rows K and L are to be interchanged.
+*> K1 through K1+(K2-K1)*abs(INCX) of IPIV are accessed.
+*> IPIV(K1+(K-K1)*abs(INCX)) = L implies rows K and L are to be
+*> interchanged.
*> \endverbatim
*>
*> \param[in] INCX
*> \verbatim
*> INCX is INTEGER
-*> The increment between successive values of IPIV. If IPIV
+*> The increment between successive values of IPIV. If INCX
*> is negative, the pivots are applied in reverse order.
*> \endverbatim
*
@@ -36596,7 +36595,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup complex16OTHERauxiliary
*
@@ -36612,10 +36611,10 @@
* =====================================================================
SUBROUTINE ZLASWP( N, A, LDA, K1, K2, IPIV, INCX )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INCX, K1, K2, LDA, N
@@ -36633,7 +36632,8 @@
* ..
* .. Executable Statements ..
*
-* Interchange row I with row IPIV(I) for each of rows K1 through K2.
+* Interchange row I with row IPIV(K1+(I-K1)*abs(INCX)) for each of rows
+* K1 through K2.
*
IF( INCX.GT.0 ) THEN
IX0 = K1
@@ -40771,8 +40771,7 @@
*>
*> \param[out] RWORK
*> \verbatim
-*> RWORK is DOUBLE PRECISION array,
-*> dimension (LRWORK)
+*> RWORK is DOUBLE PRECISION array, dimension (MAX(1,LRWORK))
*> On exit, if INFO = 0, RWORK(1) returns the optimal LRWORK.
*> \endverbatim
*>
@@ -40842,7 +40841,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup complex16OTHERcomputational
*
@@ -40856,10 +40855,10 @@
SUBROUTINE ZSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, RWORK,
$ LRWORK, IWORK, LIWORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
CHARACTER COMPZ
@@ -44486,7 +44485,7 @@
*>
*> \param[in,out] A
*> \verbatim
-*> A is COMPLEX*16 arrays, dimensions (LDA,N)
+*> A is COMPLEX*16 array, dimensions (LDA,N)
*> On entry, the matrix A in the pair (A, B).
*> On exit, the updated matrix A.
*> \endverbatim
@@ -44499,7 +44498,7 @@
*>
*> \param[in,out] B
*> \verbatim
-*> B is COMPLEX*16 arrays, dimensions (LDB,N)
+*> B is COMPLEX*16 array, dimensions (LDB,N)
*> On entry, the matrix B in the pair (A, B).
*> On exit, the updated matrix B.
*> \endverbatim
@@ -44512,7 +44511,7 @@
*>
*> \param[in,out] Q
*> \verbatim
-*> Q is COMPLEX*16 array, dimension (LDZ,N)
+*> Q is COMPLEX*16 array, dimension (LDQ,N)
*> If WANTQ = .TRUE, on entry, the unitary matrix Q. On exit,
*> the updated matrix Q.
*> Not referenced if WANTQ = .FALSE..
@@ -44563,7 +44562,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup complex16GEauxiliary
*
@@ -44600,10 +44599,10 @@
SUBROUTINE ZTGEX2( WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z,
$ LDZ, J1, INFO )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
LOGICAL WANTQ, WANTZ
@@ -44879,7 +44878,7 @@
*>
*> \param[in,out] Q
*> \verbatim
-*> Q is COMPLEX*16 array, dimension (LDZ,N)
+*> Q is COMPLEX*16 array, dimension (LDQ,N)
*> On entry, if WANTQ = .TRUE., the unitary matrix Q.
*> On exit, the updated matrix Q.
*> If WANTQ = .FALSE., Q is not referenced.
@@ -44940,7 +44939,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup complex16GEcomputational
*
@@ -44977,10 +44976,10 @@
SUBROUTINE ZTGEXC( WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z,
$ LDZ, IFST, ILST, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
LOGICAL WANTQ, WANTZ
@@ -45149,7 +45148,7 @@
*
*> \param[in] IJOB
*> \verbatim
-*> IJOB is integer
+*> IJOB is INTEGER
*> Specifies whether condition numbers are required for the
*> cluster of eigenvalues (PL and PR) or the deflating subspaces
*> (Difu and Difl):
@@ -45510,7 +45509,7 @@
$ ALPHA, BETA, Q, LDQ, Z, LDZ, M, PL, PR, DIF,
$ WORK, LWORK, IWORK, LIWORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -48024,7 +48023,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
* @precisions fortran z -> c
*
@@ -48049,10 +48048,10 @@
$ LDVR, MM, M, WORK, LWORK, RWORK, LRWORK, INFO)
IMPLICIT NONE
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
CHARACTER HOWMNY, SIDE
@@ -48089,7 +48088,7 @@
EXTERNAL LSAME, ILAENV, IZAMAX, DLAMCH, DZASUM
* ..
* .. External Subroutines ..
- EXTERNAL XERBLA, ZCOPY, ZDSCAL, ZGEMV, ZLATRS
+ EXTERNAL XERBLA, ZCOPY, ZDSCAL, ZGEMV, ZLATRS,
$ ZGEMM, DLABAD, ZLASET
* ..
* .. Intrinsic Functions ..
diff --git a/src/modules/lapack/dlapack.f b/src/modules/lapack/dlapack.f
index 39c165b..4b63c81 100644
--- a/src/modules/lapack/dlapack.f
+++ b/src/modules/lapack/dlapack.f
@@ -190,7 +190,7 @@
*>
*> \param[in,out] V2T
*> \verbatim
-*> V2T is DOUBLE PRECISION array, dimenison (LDV2T,M-Q)
+*> V2T is DOUBLE PRECISION array, dimension (LDV2T,M-Q)
*> On entry, an (M-Q)-by-(M-Q) matrix. On exit, V2T is
*> premultiplied by the transpose of the right
*> singular vector matrix common to [ B12 0 0 ; 0 -I 0 ] and
@@ -332,7 +332,7 @@
$ V2T, LDV2T, B11D, B11E, B12D, B12E, B21D, B21E,
$ B22D, B22E, WORK, LWORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -1285,7 +1285,7 @@
SUBROUTINE DBDSDC( UPLO, COMPQ, N, D, E, U, LDU, VT, LDVT, Q, IQ,
$ WORK, IWORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -1391,12 +1391,12 @@
WSTART = 1
QSTART = 3
IF( ICOMPQ.EQ.1 ) THEN
- CALL DCOPY( N, D, 1, Q( 1 ), 1 )
+ CALL DCOPY( N, D, 1, Q( 1 ), 1 )
CALL DCOPY( N-1, E, 1, Q( N+1 ), 1 )
END IF
IF( IUPLO.EQ.2 ) THEN
QSTART = 5
- WSTART = 2*N - 1
+ IF( ICOMPQ .EQ. 2 ) WSTART = 2*N - 1
DO 10 I = 1, N - 1
CALL DLARTG( D( I ), E( I ), CS, SN, R )
D( I ) = R
@@ -1816,6 +1816,17 @@
*> algorithm through its inner loop. The algorithms stops
*> (and so fails to converge) if the number of passes
*> through the inner loop exceeds MAXITR*N**2.
+*>
+*> \endverbatim
+*
+*> \par Note:
+* ===========
+*>
+*> \verbatim
+*> Bug report from Cezary Dendek.
+*> On March 23rd 2017, the INTEGER variable MAXIT = MAXITR*N**2 is
+*> removed since it can overflow pretty easily (for N larger or equal
+*> than 18,919). We instead use MAXITDIVN = MAXITR*N.
*> \endverbatim
*
* Authors:
@@ -1826,7 +1837,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup auxOTHERcomputational
*
@@ -1834,10 +1845,10 @@
SUBROUTINE DBDSQR( UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U,
$ LDU, C, LDC, WORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
CHARACTER UPLO
@@ -1870,8 +1881,8 @@
* ..
* .. Local Scalars ..
LOGICAL LOWER, ROTATE
- INTEGER I, IDIR, ISUB, ITER, J, LL, LLL, M, MAXIT, NM1,
- $ NM12, NM13, OLDLL, OLDM
+ INTEGER I, IDIR, ISUB, ITER, ITERDIVN, J, LL, LLL, M,
+ $ MAXITDIVN, NM1, NM12, NM13, OLDLL, OLDM
DOUBLE PRECISION ABSE, ABSS, COSL, COSR, CS, EPS, F, G, H, MU,
$ OLDCS, OLDSN, R, SHIFT, SIGMN, SIGMX, SINL,
$ SINR, SLL, SMAX, SMIN, SMINL, SMINOA,
@@ -2004,20 +2015,21 @@
40 CONTINUE
50 CONTINUE
SMINOA = SMINOA / SQRT( DBLE( N ) )
- THRESH = MAX( TOL*SMINOA, MAXITR*N*N*UNFL )
+ THRESH = MAX( TOL*SMINOA, MAXITR*(N*(N*UNFL)) )
ELSE
*
* Absolute accuracy desired
*
- THRESH = MAX( ABS( TOL )*SMAX, MAXITR*N*N*UNFL )
+ THRESH = MAX( ABS( TOL )*SMAX, MAXITR*(N*(N*UNFL)) )
END IF
*
* Prepare for main iteration loop for the singular values
* (MAXIT is the maximum number of passes through the inner
* loop permitted before nonconvergence signalled.)
*
- MAXIT = MAXITR*N*N
- ITER = 0
+ MAXITDIVN = MAXITR*N
+ ITERDIVN = 0
+ ITER = -1
OLDLL = -1
OLDM = -1
*
@@ -2033,8 +2045,13 @@
*
IF( M.LE.1 )
$ GO TO 160
- IF( ITER.GT.MAXIT )
- $ GO TO 200
+*
+ IF( ITER.GE.N ) THEN
+ ITER = ITER - N
+ ITERDIVN = ITERDIVN + 1
+ IF( ITERDIVN.GE.MAXITDIVN )
+ $ GO TO 200
+ END IF
*
* Find diagonal block of matrix to work on
*
@@ -6947,7 +6964,7 @@
*>
*> \param[in,out] A
*> \verbatim
-*> A is DOUBLE array, dimension (LDA,N)
+*> A is DOUBLE PRECISION array, dimension (LDA,N)
*> On entry, the input matrix A.
*> On exit, A is overwritten by the balanced matrix.
*> If JOB = 'N', A is not referenced.
@@ -6974,7 +6991,7 @@
*>
*> \param[out] SCALE
*> \verbatim
-*> SCALE is DOUBLE array, dimension (N)
+*> SCALE is DOUBLE PRECISION array, dimension (N)
*> Details of the permutations and scaling factors applied to
*> A. If P(j) is the index of the row and column interchanged
*> with row and column j and D(j) is the scaling factor
@@ -7001,7 +7018,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleGEcomputational
*
@@ -7040,10 +7057,10 @@
* =====================================================================
SUBROUTINE DGEBAL( JOB, N, A, LDA, ILO, IHI, SCALE, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
CHARACTER JOB
@@ -7378,7 +7395,7 @@
*>
*> \param[out] TAUQ
*> \verbatim
-*> TAUQ is DOUBLE PRECISION array dimension (min(M,N))
+*> TAUQ is DOUBLE PRECISION array, dimension (min(M,N))
*> The scalar factors of the elementary reflectors which
*> represent the orthogonal matrix Q. See Further Details.
*> \endverbatim
@@ -7410,7 +7427,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleGEcomputational
*
@@ -7467,10 +7484,10 @@
* =====================================================================
SUBROUTINE DGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INFO, LDA, M, N
@@ -7699,7 +7716,7 @@
*>
*> \param[out] TAUQ
*> \verbatim
-*> TAUQ is DOUBLE PRECISION array dimension (min(M,N))
+*> TAUQ is DOUBLE PRECISION array, dimension (min(M,N))
*> The scalar factors of the elementary reflectors which
*> represent the orthogonal matrix Q. See Further Details.
*> \endverbatim
@@ -7745,7 +7762,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleGEcomputational
*
@@ -7803,10 +7820,10 @@
SUBROUTINE DGEBRD( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, LWORK,
$ INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INFO, LDA, LWORK, M, N
@@ -13406,7 +13423,7 @@
*>
*> \param[out] WORK
*> \verbatim
-*> WORK is DOUBLE PRECISION array, dimension at least LWORK.
+*> WORK is DOUBLE PRECISION array, dimension (LWORK)
*> On exit, if N.GT.0 .AND. M.GT.0 (else not referenced),
*> WORK(1) = SCALE = WORK(2) / WORK(1) is the scaling factor such
*> that SCALE*SVA(1:N) are the computed singular values
@@ -13497,7 +13514,7 @@
*>
*> \param[out] IWORK
*> \verbatim
-*> IWORK is INTEGER array, dimension M+3*N.
+*> IWORK is INTEGER array, dimension (M+3*N).
*> On exit,
*> IWORK(1) = the numerical rank determined after the initial
*> QR factorization with pivoting. See the descriptions
@@ -13611,7 +13628,7 @@
$ M, N, A, LDA, SVA, U, LDU, V, LDV,
$ WORK, LWORK, IWORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -15972,7 +15989,7 @@
*> of the matrices B and X. NRHS >= 0.
*> \endverbatim
*>
-*> \param[in] A
+*> \param[in,out] A
*> \verbatim
*> A is DOUBLE PRECISION array, dimension (LDA,N)
*> On entry, the M-by-N matrix A.
@@ -16077,7 +16094,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleGEsolve
*
@@ -16092,10 +16109,10 @@
SUBROUTINE DGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
$ WORK, LWORK, IWORK, INFO )
*
-* -- LAPACK driver routine (version 3.7.0) --
+* -- LAPACK driver routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INFO, LDA, LDB, LWORK, M, N, NRHS, RANK
@@ -20649,7 +20666,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleGEcomputational
*
@@ -20674,7 +20691,7 @@
*> block is of order NB except for the last block, which is of order
*> IB = K - (B-1)*NB. For each of the B blocks, a upper triangular block
*> reflector factor is computed: T1, T2, ..., TB. The NB-by-NB (and IB-by-IB
-*> for the last block) T's are stored in the NB-by-N matrix T as
+*> for the last block) T's are stored in the NB-by-K matrix T as
*>
*> T = (T1 T2 ... TB).
*> \endverbatim
@@ -20682,10 +20699,10 @@
* =====================================================================
SUBROUTINE DGEQRT( M, N, NB, A, LDA, T, LDT, WORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INFO, LDA, LDT, M, N, NB
@@ -27647,7 +27664,7 @@
*
*> \param[in] JOBA
*> \verbatim
-*> JOBA is CHARACTER* 1
+*> JOBA is CHARACTER*1
*> Specifies the structure of A.
*> = 'L': The input matrix A is lower triangular;
*> = 'U': The input matrix A is upper triangular;
@@ -27801,7 +27818,7 @@
*>
*> \param[in,out] WORK
*> \verbatim
-*> WORK is DOUBLE PRECISION array, dimension MAX(6,M+N).
+*> WORK is DOUBLE PRECISION array, dimension (LWORK)
*> On entry :
*> If JOBU .EQ. 'C' :
*> WORK(1) = CTOL, where CTOL defines the threshold for convergence.
@@ -27853,7 +27870,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleGEcomputational
*
@@ -27930,10 +27947,10 @@
SUBROUTINE DGESVJ( JOBA, JOBU, JOBV, M, N, A, LDA, SVA, MV, V,
$ LDV, WORK, LWORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INFO, LDA, LDV, LWORK, M, MV, N
@@ -32898,7 +32915,7 @@
*>
*> \param[in] SELCTG
*> \verbatim
-*> SELCTG is procedure) LOGICAL FUNCTION of three DOUBLE PRECISION arguments
+*> SELCTG is a LOGICAL FUNCTION of three DOUBLE PRECISION arguments
*> SELCTG must be declared EXTERNAL in the calling subroutine.
*> If SORT = 'N', SELCTG is not referenced.
*> If SORT = 'S', SELCTG is used to select eigenvalues to sort
@@ -33124,7 +33141,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleGEeigen
*
@@ -33152,10 +33169,10 @@
$ VSR, LDVSR, RCONDE, RCONDV, WORK, LWORK, IWORK,
$ LIWORK, BWORK, INFO )
*
-* -- LAPACK driver routine (version 3.7.0) --
+* -- LAPACK driver routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
CHARACTER JOBVSL, JOBVSR, SENSE, SORT
@@ -44219,7 +44236,7 @@
* LOGICAL FUNCTION DISNAN( DIN )
*
* .. Scalar Arguments ..
-* DOUBLE PRECISION DIN
+* DOUBLE PRECISION, INTENT(IN) :: DIN
* ..
*
*
@@ -44250,20 +44267,20 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup OTHERauxiliary
*
* =====================================================================
LOGICAL FUNCTION DISNAN( DIN )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
- DOUBLE PRECISION DIN
+ DOUBLE PRECISION, INTENT(IN) :: DIN
* ..
*
* =====================================================================
@@ -44493,7 +44510,7 @@
*>
*> \param[out] TAUQ
*> \verbatim
-*> TAUQ is DOUBLE PRECISION array dimension (NB)
+*> TAUQ is DOUBLE PRECISION array, dimension (NB)
*> The scalar factors of the elementary reflectors which
*> represent the orthogonal matrix Q. See Further Details.
*> \endverbatim
@@ -44539,7 +44556,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleOTHERauxiliary
*
@@ -44593,10 +44610,10 @@
SUBROUTINE DLABRD( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX, Y,
$ LDY )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER LDA, LDX, LDY, M, N, NB
@@ -47942,7 +47959,7 @@
*>
*> \param[in] Q2
*> \verbatim
-*> Q2 is DOUBLE PRECISION array, dimension (LDQ2, N)
+*> Q2 is DOUBLE PRECISION array, dimension (LDQ2*N)
*> The first K columns of this matrix contain the non-deflated
*> eigenvectors for the split problem.
*> \endverbatim
@@ -47996,7 +48013,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup auxOTHERcomputational
*
@@ -48011,10 +48028,10 @@
SUBROUTINE DLAED3( K, N, N1, D, Q, LDQ, RHO, DLAMDA, Q2, INDX,
$ CTOT, W, S, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INFO, K, LDQ, N, N1
@@ -56189,7 +56206,7 @@
* LOGICAL FUNCTION DLAISNAN( DIN1, DIN2 )
*
* .. Scalar Arguments ..
-* DOUBLE PRECISION DIN1, DIN2
+* DOUBLE PRECISION, INTENT(IN) :: DIN1, DIN2
* ..
*
*
@@ -56235,20 +56252,20 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup OTHERauxiliary
*
* =====================================================================
LOGICAL FUNCTION DLAISNAN( DIN1, DIN2 )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
- DOUBLE PRECISION DIN1, DIN2
+ DOUBLE PRECISION, INTENT(IN) :: DIN1, DIN2
* ..
*
* =====================================================================
@@ -57596,14 +57613,12 @@
*>
*> \param[out] WORK
*> \verbatim
-*> WORK is DOUBLE PRECISION array.
-*> The dimension must be at least N.
+*> WORK is DOUBLE PRECISION array, dimension (N)
*> \endverbatim
*>
*> \param[out] IWORK
*> \verbatim
-*> IWORK is INTEGER array.
-*> The dimension must be at least 3 * N
+*> IWORK is INTEGER array, dimension (3*N)
*> \endverbatim
*>
*> \param[out] INFO
@@ -57621,7 +57636,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleOTHERcomputational
*
@@ -57638,10 +57653,10 @@
$ GIVCOL, LDGCOL, PERM, GIVNUM, C, S, WORK,
$ IWORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER ICOMPQ, INFO, LDB, LDBX, LDGCOL, LDU, N, NRHS,
@@ -63529,17 +63544,17 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup OTHERauxiliary
*
* =====================================================================
DOUBLE PRECISION FUNCTION DLAPY2( X, Y )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
DOUBLE PRECISION X, Y
@@ -63555,20 +63570,32 @@
* ..
* .. Local Scalars ..
DOUBLE PRECISION W, XABS, YABS, Z
+ LOGICAL X_IS_NAN, Y_IS_NAN
+* ..
+* .. External Functions ..
+ LOGICAL DISNAN
+ EXTERNAL DISNAN
* ..
* .. Intrinsic Functions ..
INTRINSIC ABS, MAX, MIN, SQRT
* ..
* .. Executable Statements ..
*
- XABS = ABS( X )
- YABS = ABS( Y )
- W = MAX( XABS, YABS )
- Z = MIN( XABS, YABS )
- IF( Z.EQ.ZERO ) THEN
- DLAPY2 = W
- ELSE
- DLAPY2 = W*SQRT( ONE+( Z / W )**2 )
+ X_IS_NAN = DISNAN( X )
+ Y_IS_NAN = DISNAN( Y )
+ IF ( X_IS_NAN ) DLAPY2 = X
+ IF ( Y_IS_NAN ) DLAPY2 = Y
+*
+ IF ( .NOT.( X_IS_NAN.OR.Y_IS_NAN ) ) THEN
+ XABS = ABS( X )
+ YABS = ABS( Y )
+ W = MAX( XABS, YABS )
+ Z = MIN( XABS, YABS )
+ IF( Z.EQ.ZERO ) THEN
+ DLAPY2 = W
+ ELSE
+ DLAPY2 = W*SQRT( ONE+( Z / W )**2 )
+ END IF
END IF
RETURN
*
@@ -65595,19 +65622,19 @@
*
*> \param[in] N
*> \verbatim
-*> N is integer
+*> N is INTEGER
*> Order of the matrix H. N must be either 2 or 3.
*> \endverbatim
*>
*> \param[in] H
*> \verbatim
-*> H is DOUBLE PRECISION array of dimension (LDH,N)
+*> H is DOUBLE PRECISION array, dimension (LDH,N)
*> The 2-by-2 or 3-by-3 matrix H in (*).
*> \endverbatim
*>
*> \param[in] LDH
*> \verbatim
-*> LDH is integer
+*> LDH is INTEGER
*> The leading dimension of H as declared in
*> the calling procedure. LDH.GE.N
*> \endverbatim
@@ -65635,7 +65662,7 @@
*>
*> \param[out] V
*> \verbatim
-*> V is DOUBLE PRECISION array of dimension N
+*> V is DOUBLE PRECISION array, dimension (N)
*> A scalar multiple of the first column of the
*> matrix K in (*).
*> \endverbatim
@@ -65648,7 +65675,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleOTHERauxiliary
*
@@ -65661,10 +65688,10 @@
* =====================================================================
SUBROUTINE DLAQR1( N, H, LDH, SR1, SI1, SR2, SI2, V )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
DOUBLE PRECISION SI1, SI2, SR1, SR2
@@ -65838,7 +65865,7 @@
*>
*> \param[in] LDH
*> \verbatim
-*> LDH is integer
+*> LDH is INTEGER
*> Leading dimension of H just as declared in the calling
*> subroutine. N .LE. LDH
*> \endverbatim
@@ -65866,14 +65893,14 @@
*>
*> \param[in] LDZ
*> \verbatim
-*> LDZ is integer
+*> LDZ is INTEGER
*> The leading dimension of Z just as declared in the
*> calling subroutine. 1 .LE. LDZ.
*> \endverbatim
*>
*> \param[out] NS
*> \verbatim
-*> NS is integer
+*> NS is INTEGER
*> The number of unconverged (ie approximate) eigenvalues
*> returned in SR and SI that may be used as shifts by the
*> calling subroutine.
@@ -65881,7 +65908,7 @@
*>
*> \param[out] ND
*> \verbatim
-*> ND is integer
+*> ND is INTEGER
*> The number of converged eigenvalues uncovered by this
*> subroutine.
*> \endverbatim
@@ -65911,14 +65938,14 @@
*>
*> \param[in] LDV
*> \verbatim
-*> LDV is integer scalar
+*> LDV is INTEGER
*> The leading dimension of V just as declared in the
*> calling subroutine. NW .LE. LDV
*> \endverbatim
*>
*> \param[in] NH
*> \verbatim
-*> NH is integer scalar
+*> NH is INTEGER
*> The number of columns of T. NH.GE.NW.
*> \endverbatim
*>
@@ -65929,14 +65956,14 @@
*>
*> \param[in] LDT
*> \verbatim
-*> LDT is integer
+*> LDT is INTEGER
*> The leading dimension of T just as declared in the
*> calling subroutine. NW .LE. LDT
*> \endverbatim
*>
*> \param[in] NV
*> \verbatim
-*> NV is integer
+*> NV is INTEGER
*> The number of rows of work array WV available for
*> workspace. NV.GE.NW.
*> \endverbatim
@@ -65948,7 +65975,7 @@
*>
*> \param[in] LDWV
*> \verbatim
-*> LDWV is integer
+*> LDWV is INTEGER
*> The leading dimension of W just as declared in the
*> calling subroutine. NW .LE. LDV
*> \endverbatim
@@ -65962,7 +65989,7 @@
*>
*> \param[in] LWORK
*> \verbatim
-*> LWORK is integer
+*> LWORK is INTEGER
*> The dimension of the work array WORK. LWORK = 2*NW
*> suffices, but greater efficiency may result from larger
*> values of LWORK.
@@ -65982,7 +66009,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleOTHERauxiliary
*
@@ -65997,10 +66024,10 @@
$ IHIZ, Z, LDZ, NS, ND, SR, SI, V, LDV, NH, T,
$ LDT, NV, WV, LDWV, WORK, LWORK )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER IHIZ, ILOZ, KBOT, KTOP, LDH, LDT, LDV, LDWV,
@@ -66519,7 +66546,7 @@
*>
*> \param[in] LDH
*> \verbatim
-*> LDH is integer
+*> LDH is INTEGER
*> Leading dimension of H just as declared in the calling
*> subroutine. N .LE. LDH
*> \endverbatim
@@ -66547,14 +66574,14 @@
*>
*> \param[in] LDZ
*> \verbatim
-*> LDZ is integer
+*> LDZ is INTEGER
*> The leading dimension of Z just as declared in the
*> calling subroutine. 1 .LE. LDZ.
*> \endverbatim
*>
*> \param[out] NS
*> \verbatim
-*> NS is integer
+*> NS is INTEGER
*> The number of unconverged (ie approximate) eigenvalues
*> returned in SR and SI that may be used as shifts by the
*> calling subroutine.
@@ -66562,7 +66589,7 @@
*>
*> \param[out] ND
*> \verbatim
-*> ND is integer
+*> ND is INTEGER
*> The number of converged eigenvalues uncovered by this
*> subroutine.
*> \endverbatim
@@ -66592,14 +66619,14 @@
*>
*> \param[in] LDV
*> \verbatim
-*> LDV is integer scalar
+*> LDV is INTEGER
*> The leading dimension of V just as declared in the
*> calling subroutine. NW .LE. LDV
*> \endverbatim
*>
*> \param[in] NH
*> \verbatim
-*> NH is integer scalar
+*> NH is INTEGER
*> The number of columns of T. NH.GE.NW.
*> \endverbatim
*>
@@ -66610,14 +66637,14 @@
*>
*> \param[in] LDT
*> \verbatim
-*> LDT is integer
+*> LDT is INTEGER
*> The leading dimension of T just as declared in the
*> calling subroutine. NW .LE. LDT
*> \endverbatim
*>
*> \param[in] NV
*> \verbatim
-*> NV is integer
+*> NV is INTEGER
*> The number of rows of work array WV available for
*> workspace. NV.GE.NW.
*> \endverbatim
@@ -66629,7 +66656,7 @@
*>
*> \param[in] LDWV
*> \verbatim
-*> LDWV is integer
+*> LDWV is INTEGER
*> The leading dimension of W just as declared in the
*> calling subroutine. NW .LE. LDV
*> \endverbatim
@@ -66643,7 +66670,7 @@
*>
*> \param[in] LWORK
*> \verbatim
-*> LWORK is integer
+*> LWORK is INTEGER
*> The dimension of the work array WORK. LWORK = 2*NW
*> suffices, but greater efficiency may result from larger
*> values of LWORK.
@@ -66678,7 +66705,7 @@
$ IHIZ, Z, LDZ, NS, ND, SR, SI, V, LDV, NH, T,
$ LDT, NV, WV, LDWV, WORK, LWORK )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -67885,21 +67912,21 @@
*
*> \param[in] WANTT
*> \verbatim
-*> WANTT is logical scalar
+*> WANTT is LOGICAL
*> WANTT = .true. if the quasi-triangular Schur factor
*> is being computed. WANTT is set to .false. otherwise.
*> \endverbatim
*>
*> \param[in] WANTZ
*> \verbatim
-*> WANTZ is logical scalar
+*> WANTZ is LOGICAL
*> WANTZ = .true. if the orthogonal Schur factor is being
*> computed. WANTZ is set to .false. otherwise.
*> \endverbatim
*>
*> \param[in] KACC22
*> \verbatim
-*> KACC22 is integer with value 0, 1, or 2.
+*> KACC22 is INTEGER with value 0, 1, or 2.
*> Specifies the computation mode of far-from-diagonal
*> orthogonal updates.
*> = 0: DLAQR5 does not accumulate reflections and does not
@@ -67915,19 +67942,19 @@
*>
*> \param[in] N
*> \verbatim
-*> N is integer scalar
+*> N is INTEGER
*> N is the order of the Hessenberg matrix H upon which this
*> subroutine operates.
*> \endverbatim
*>
*> \param[in] KTOP
*> \verbatim
-*> KTOP is integer scalar
+*> KTOP is INTEGER
*> \endverbatim
*>
*> \param[in] KBOT
*> \verbatim
-*> KBOT is integer scalar
+*> KBOT is INTEGER
*> These are the first and last rows and columns of an
*> isolated diagonal block upon which the QR sweep is to be
*> applied. It is assumed without a check that
@@ -67938,19 +67965,19 @@
*>
*> \param[in] NSHFTS
*> \verbatim
-*> NSHFTS is integer scalar
+*> NSHFTS is INTEGER
*> NSHFTS gives the number of simultaneous shifts. NSHFTS
*> must be positive and even.
*> \endverbatim
*>
*> \param[in,out] SR
*> \verbatim
-*> SR is DOUBLE PRECISION array of size (NSHFTS)
+*> SR is DOUBLE PRECISION array, dimension (NSHFTS)
*> \endverbatim
*>
*> \param[in,out] SI
*> \verbatim
-*> SI is DOUBLE PRECISION array of size (NSHFTS)
+*> SI is DOUBLE PRECISION array, dimension (NSHFTS)
*> SR contains the real parts and SI contains the imaginary
*> parts of the NSHFTS shifts of origin that define the
*> multi-shift QR sweep. On output SR and SI may be
@@ -67959,7 +67986,7 @@
*>
*> \param[in,out] H
*> \verbatim
-*> H is DOUBLE PRECISION array of size (LDH,N)
+*> H is DOUBLE PRECISION array, dimension (LDH,N)
*> On input H contains a Hessenberg matrix. On output a
*> multi-shift QR sweep with shifts SR(J)+i*SI(J) is applied
*> to the isolated diagonal block in rows and columns KTOP
@@ -67968,7 +67995,7 @@
*>
*> \param[in] LDH
*> \verbatim
-*> LDH is integer scalar
+*> LDH is INTEGER
*> LDH is the leading dimension of H just as declared in the
*> calling procedure. LDH.GE.MAX(1,N).
*> \endverbatim
@@ -67987,7 +68014,7 @@
*>
*> \param[in,out] Z
*> \verbatim
-*> Z is DOUBLE PRECISION array of size (LDZ,IHIZ)
+*> Z is DOUBLE PRECISION array, dimension (LDZ,IHIZ)
*> If WANTZ = .TRUE., then the QR Sweep orthogonal
*> similarity transformation is accumulated into
*> Z(ILOZ:IHIZ,ILOZ:IHIZ) from the right.
@@ -67996,71 +68023,69 @@
*>
*> \param[in] LDZ
*> \verbatim
-*> LDZ is integer scalar
+*> LDZ is INTEGER
*> LDA is the leading dimension of Z just as declared in
*> the calling procedure. LDZ.GE.N.
*> \endverbatim
*>
*> \param[out] V
*> \verbatim
-*> V is DOUBLE PRECISION array of size (LDV,NSHFTS/2)
+*> V is DOUBLE PRECISION array, dimension (LDV,NSHFTS/2)
*> \endverbatim
*>
*> \param[in] LDV
*> \verbatim
-*> LDV is integer scalar
+*> LDV is INTEGER
*> LDV is the leading dimension of V as declared in the
*> calling procedure. LDV.GE.3.
*> \endverbatim
*>
*> \param[out] U
*> \verbatim
-*> U is DOUBLE PRECISION array of size
-*> (LDU,3*NSHFTS-3)
+*> U is DOUBLE PRECISION array, dimension (LDU,3*NSHFTS-3)
*> \endverbatim
*>
*> \param[in] LDU
*> \verbatim
-*> LDU is integer scalar
+*> LDU is INTEGER
*> LDU is the leading dimension of U just as declared in the
*> in the calling subroutine. LDU.GE.3*NSHFTS-3.
*> \endverbatim
*>
*> \param[in] NH
*> \verbatim
-*> NH is integer scalar
+*> NH is INTEGER
*> NH is the number of columns in array WH available for
*> workspace. NH.GE.1.
*> \endverbatim
*>
*> \param[out] WH
*> \verbatim
-*> WH is DOUBLE PRECISION array of size (LDWH,NH)
+*> WH is DOUBLE PRECISION array, dimension (LDWH,NH)
*> \endverbatim
*>
*> \param[in] LDWH
*> \verbatim
-*> LDWH is integer scalar
+*> LDWH is INTEGER
*> Leading dimension of WH just as declared in the
*> calling procedure. LDWH.GE.3*NSHFTS-3.
*> \endverbatim
*>
*> \param[in] NV
*> \verbatim
-*> NV is integer scalar
+*> NV is INTEGER
*> NV is the number of rows in WV agailable for workspace.
*> NV.GE.1.
*> \endverbatim
*>
*> \param[out] WV
*> \verbatim
-*> WV is DOUBLE PRECISION array of size
-*> (LDWV,3*NSHFTS-3)
+*> WV is DOUBLE PRECISION array, dimension (LDWV,3*NSHFTS-3)
*> \endverbatim
*>
*> \param[in] LDWV
*> \verbatim
-*> LDWV is integer scalar
+*> LDWV is INTEGER
*> LDWV is the leading dimension of WV as declared in the
*> in the calling subroutine. LDWV.GE.NV.
*> \endverbatim
@@ -68096,7 +68121,7 @@
$ SR, SI, H, LDH, ILOZ, IHIZ, Z, LDZ, V, LDV, U,
$ LDU, NV, WV, LDWV, NH, WH, LDWH )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -73665,7 +73690,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup OTHERauxiliary
*
@@ -73682,10 +73707,10 @@
SUBROUTINE DLARRA( N, D, E, E2, SPLTOL, TNRM,
$ NSPLIT, ISPLIT, INFO )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INFO, N, NSPLIT
@@ -73713,7 +73738,13 @@
* .. Executable Statements ..
*
INFO = 0
-
+*
+* Quick return if possible
+*
+ IF( N.LE.0 ) THEN
+ RETURN
+ END IF
+*
* Compute splitting points
NSPLIT = 1
IF(SPLTOL.LT.ZERO) THEN
@@ -73857,7 +73888,7 @@
*> \verbatim
*> W is DOUBLE PRECISION array, dimension (N)
*> On input, W( IFIRST-OFFSET ) through W( ILAST-OFFSET ) are
-*> estimates of the eigenvalues of L D L^T indexed IFIRST throug
+*> estimates of the eigenvalues of L D L^T indexed IFIRST through
*> ILAST.
*> On output, these estimates are refined.
*> \endverbatim
@@ -73928,7 +73959,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup OTHERauxiliary
*
@@ -73946,10 +73977,10 @@
$ RTOL2, OFFSET, W, WGAP, WERR, WORK, IWORK,
$ PIVMIN, SPDIAM, TWIST, INFO )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER IFIRST, ILAST, INFO, N, OFFSET, TWIST
@@ -73987,6 +74018,12 @@
*
INFO = 0
*
+* Quick return if possible
+*
+ IF( N.LE.0 ) THEN
+ RETURN
+ END IF
+*
MAXITR = INT( ( LOG( SPDIAM+PIVMIN )-LOG( PIVMIN ) ) /
$ LOG( TWO ) ) + 2
MNWDTH = TWO * PIVMIN
@@ -74288,7 +74325,7 @@
SUBROUTINE DLARRC( JOBT, N, VL, VU, D, E, PIVMIN,
$ EIGCNT, LCNT, RCNT, INFO )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -74321,6 +74358,13 @@
* .. Executable Statements ..
*
INFO = 0
+*
+* Quick return if possible
+*
+ IF( N.LE.0 ) THEN
+ RETURN
+ END IF
+*
LCNT = 0
RCNT = 0
EIGCNT = 0
@@ -74724,7 +74768,7 @@
$ M, W, WERR, WL, WU, IBLOCK, INDEXW,
$ WORK, IWORK, INFO )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -74780,6 +74824,12 @@
*
INFO = 0
*
+* Quick return if possible
+*
+ IF( N.LE.0 ) THEN
+ RETURN
+ END IF
+*
* Decode RANGE
*
IF( LSAME( RANGE, 'A' ) ) THEN
@@ -75563,7 +75613,7 @@
$ W, WERR, WGAP, IBLOCK, INDEXW, GERS, PIVMIN,
$ WORK, IWORK, INFO )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -75628,7 +75678,12 @@
*
INFO = 0
-
+*
+* Quick return if possible
+*
+ IF( N.LE.0 ) THEN
+ RETURN
+ END IF
*
* Decode RANGE
*
@@ -76350,7 +76405,7 @@
$ SPDIAM, CLGAPL, CLGAPR, PIVMIN, SIGMA,
$ DPLUS, LPLUS, WORK, INFO )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -76396,6 +76451,13 @@
* .. Executable Statements ..
*
INFO = 0
+*
+* Quick return if possible
+*
+ IF( N.LE.0 ) THEN
+ RETURN
+ END IF
+*
FACT = DBLE(2**KTRYMAX)
EPS = DLAMCH( 'Precision' )
SHIFT = 0
@@ -76795,7 +76857,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup OTHERauxiliary
*
@@ -76813,10 +76875,10 @@
$ RTOL, OFFSET, W, WERR, WORK, IWORK,
$ PIVMIN, SPDIAM, INFO )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER IFIRST, ILAST, INFO, N, OFFSET
@@ -76849,6 +76911,12 @@
*
INFO = 0
*
+* Quick return if possible
+*
+ IF( N.LE.0 ) THEN
+ RETURN
+ END IF
+*
MAXITR = INT( ( LOG( SPDIAM+PIVMIN )-LOG( PIVMIN ) ) /
$ LOG( TWO ) ) + 2
*
@@ -77155,7 +77223,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup OTHERauxiliary
*
@@ -77163,10 +77231,10 @@
SUBROUTINE DLARRK( N, IW, GL, GU,
$ D, E2, PIVMIN, RELTOL, W, WERR, INFO)
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INFO, IW, N
@@ -77197,6 +77265,13 @@
* ..
* .. Executable Statements ..
*
+* Quick return if possible
+*
+ IF( N.LE.0 ) THEN
+ INFO = 0
+ RETURN
+ END IF
+*
* Get machine constants
EPS = DLAMCH( 'P' )
@@ -77345,7 +77420,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup OTHERauxiliary
*
@@ -77361,10 +77436,10 @@
* =====================================================================
SUBROUTINE DLARRR( N, D, E, INFO )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER N, INFO
@@ -77397,6 +77472,13 @@
* ..
* .. Executable Statements ..
*
+* Quick return if possible
+*
+ IF( N.LE.0 ) THEN
+ INFO = 0
+ RETURN
+ END IF
+*
* As a default, do NOT go for relative-accuracy preserving computations.
INFO = 1
@@ -77539,8 +77621,14 @@
*> \verbatim
*> VU is DOUBLE PRECISION
*> Upper bound of the interval that contains the desired
-*> eigenvalues. VL < VU. Needed to compute gaps on the left or right
-*> end of the extremal eigenvalues in the desired RANGE.
+*> eigenvalues. VL < VU.
+*> Note: VU is currently not used by this implmentation of DLARRV, VU is
+*> passed to DLARRV because it could be used compute gaps on the right end
+*> of the extremal eigenvalues. However, with not much initial accuracy in
+*> LAMBDA and VU, the formula can lead to an overestimation of the right gap
+*> and thus to inadequately early RQI 'convergence'. This is currently
+*> prevented this by forcing a small right gap. And so it turns out that VU
+*> is currently not used by this implementation of DLARRV.
*> \endverbatim
*>
*> \param[in,out] D
@@ -77757,7 +77845,7 @@
$ IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ,
$ WORK, IWORK, INFO )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -77815,6 +77903,13 @@
* ..
INFO = 0
+*
+* Quick return if possible
+*
+ IF( N.LE.0 ) THEN
+ RETURN
+ END IF
+*
* The first N entries of WORK are reserved for the eigenvalues
INDLD = N+1
INDLLD= 2*N+1
@@ -81353,7 +81448,7 @@
*>
*> \param[out] U
*> \verbatim
-*> U is DOUBLE PRECISION array, dimension at least (LDQ, N)
+*> U is DOUBLE PRECISION array, dimension (LDU, N)
*> On exit, U contains the left singular vectors.
*> \endverbatim
*>
@@ -81365,7 +81460,7 @@
*>
*> \param[out] VT
*> \verbatim
-*> VT is DOUBLE PRECISION array, dimension at least (LDVT, M)
+*> VT is DOUBLE PRECISION array, dimension (LDVT, M)
*> On exit, VT**T contains the right singular vectors.
*> \endverbatim
*>
@@ -81384,14 +81479,12 @@
*>
*> \param[out] IWORK
*> \verbatim
-*> IWORK is INTEGER work array.
-*> Dimension must be at least (8 * N)
+*> IWORK is INTEGER array, dimension (8*N)
*> \endverbatim
*>
*> \param[out] WORK
*> \verbatim
-*> WORK is DOUBLE PRECISION work array.
-*> Dimension must be at least (3 * M**2 + 2 * M)
+*> WORK is DOUBLE PRECISION array, dimension (3*M**2+2*M)
*> \endverbatim
*>
*> \param[out] INFO
@@ -81410,7 +81503,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup OTHERauxiliary
*
@@ -81424,10 +81517,10 @@
SUBROUTINE DLASD0( N, SQRE, D, E, U, LDU, VT, LDVT, SMLSIZ, IWORK,
$ WORK, INFO )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INFO, LDU, LDVT, N, SMLSIZ, SQRE
@@ -82106,7 +82199,7 @@
*>
*> \param[out] IDXP
*> \verbatim
-*> IDXP is INTEGER array dimension(N)
+*> IDXP is INTEGER array, dimension(N)
*> This will contain the permutation used to place deflated
*> values of D at the end of the array. On output IDXP(2:K)
*> points to the nondeflated D-values and IDXP(K+1:N)
@@ -82115,14 +82208,14 @@
*>
*> \param[out] IDX
*> \verbatim
-*> IDX is INTEGER array dimension(N)
+*> IDX is INTEGER array, dimension(N)
*> This will contain the permutation used to sort the contents of
*> D into ascending order.
*> \endverbatim
*>
*> \param[out] IDXC
*> \verbatim
-*> IDXC is INTEGER array dimension(N)
+*> IDXC is INTEGER array, dimension(N)
*> This will contain the permutation used to arrange the columns
*> of the deflated U matrix into three groups: the first group
*> contains non-zero entries only at and above NL, the second
@@ -82132,7 +82225,7 @@
*>
*> \param[in,out] IDXQ
*> \verbatim
-*> IDXQ is INTEGER array dimension(N)
+*> IDXQ is INTEGER array, dimension(N)
*> This contains the permutation which separately sorts the two
*> sub-problems in D into ascending order. Note that entries in
*> the first hlaf of this permutation must first be moved one
@@ -82142,7 +82235,7 @@
*>
*> \param[out] COLTYP
*> \verbatim
-*> COLTYP is INTEGER array dimension(N)
+*> COLTYP is INTEGER array, dimension(N)
*> As workspace, this will contain a label which will indicate
*> which of the following types a column in the U2 matrix or a
*> row in the VT2 matrix is:
@@ -82170,7 +82263,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup OTHERauxiliary
*
@@ -82185,10 +82278,10 @@
$ LDVT, DSIGMA, U2, LDU2, VT2, LDVT2, IDXP, IDX,
$ IDXC, IDXQ, COLTYP, INFO )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INFO, K, LDU, LDU2, LDVT, LDVT2, NL, NR, SQRE
@@ -82644,8 +82737,7 @@
*>
*> \param[out] Q
*> \verbatim
-*> Q is DOUBLE PRECISION array,
-*> dimension at least (LDQ,K).
+*> Q is DOUBLE PRECISION array, dimension (LDQ,K)
*> \endverbatim
*>
*> \param[in] LDQ
@@ -82654,7 +82746,7 @@
*> The leading dimension of the array Q. LDQ >= K.
*> \endverbatim
*>
-*> \param[in] DSIGMA
+*> \param[in,out] DSIGMA
*> \verbatim
*> DSIGMA is DOUBLE PRECISION array, dimension(K)
*> The first K elements of this array contain the old roots
@@ -82675,7 +82767,7 @@
*> The leading dimension of the array U. LDU >= N.
*> \endverbatim
*>
-*> \param[in,out] U2
+*> \param[in] U2
*> \verbatim
*> U2 is DOUBLE PRECISION array, dimension (LDU2, N)
*> The first K columns of this matrix contain the non-deflated
@@ -82737,7 +82829,7 @@
*> type is any column which has been deflated.
*> \endverbatim
*>
-*> \param[in] Z
+*> \param[in,out] Z
*> \verbatim
*> Z is DOUBLE PRECISION array, dimension (K)
*> The first K elements of this array contain the components
@@ -82760,7 +82852,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup OTHERauxiliary
*
@@ -82775,10 +82867,10 @@
$ LDU2, VT, LDVT, VT2, LDVT2, IDXC, CTOT, Z,
$ INFO )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INFO, K, LDQ, LDU, LDU2, LDVT, LDVT2, NL, NR,
@@ -85468,7 +85560,7 @@
*>
*> \param[out] WORK
*> \verbatim
-*> WORK is DOUBLE PRECISION array, dimension at least 3 * K
+*> WORK is DOUBLE PRECISION array, dimension (3*K)
*> \endverbatim
*>
*> \param[out] INFO
@@ -85487,7 +85579,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup OTHERauxiliary
*
@@ -85501,10 +85593,10 @@
SUBROUTINE DLASD8( ICOMPQ, K, D, Z, VF, VL, DIFL, DIFR, LDDIFR,
$ DSIGMA, WORK, INFO )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER ICOMPQ, INFO, K, LDDIFR
@@ -85916,8 +86008,7 @@
*>
*> \param[out] IWORK
*> \verbatim
-*> IWORK is INTEGER array.
-*> Dimension must be at least (7 * N).
+*> IWORK is INTEGER array, dimension (7*N)
*> \endverbatim
*>
*> \param[out] INFO
@@ -85936,7 +86027,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup OTHERauxiliary
*
@@ -85951,10 +86042,10 @@
$ DIFL, DIFR, Z, POLES, GIVPTR, GIVCOL, LDGCOL,
$ PERM, GIVNUM, C, S, WORK, IWORK, INFO )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER ICOMPQ, INFO, LDGCOL, LDU, N, SMLSIZ, SQRE
@@ -88339,7 +88430,7 @@
SUBROUTINE DLASQ4( I0, N0, Z, PP, N0IN, DMIN, DMIN1, DMIN2, DN,
$ DN1, DN2, TAU, TTYPE, G )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -88428,7 +88519,6 @@
NP = NN - 9
ELSE
NP = NN - 2*PP
- B2 = Z( NP-2 )
GAM = DN1
IF( Z( NP-4 ) .GT. Z( NP-2 ) )
$ RETURN
@@ -88734,7 +88824,7 @@
*> IEEE is LOGICAL
*> Flag for IEEE or non IEEE arithmetic.
*> \endverbatim
-*
+*>
*> \param[in] EPS
*> \verbatim
*> EPS is DOUBLE PRECISION
@@ -88749,7 +88839,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup auxOTHERcomputational
*
@@ -88757,10 +88847,10 @@
SUBROUTINE DLASQ5( I0, N0, Z, PP, TAU, SIGMA, DMIN, DMIN1, DMIN2,
$ DN, DNM1, DNM2, IEEE, EPS )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
LOGICAL IEEE
@@ -90575,14 +90665,15 @@
*> \verbatim
*> IPIV is INTEGER array, dimension (K1+(K2-K1)*abs(INCX))
*> The vector of pivot indices. Only the elements in positions
-*> K1 through K1+(K2-K1)*INCX of IPIV are accessed.
-*> IPIV(K) = L implies rows K and L are to be interchanged.
+*> K1 through K1+(K2-K1)*abs(INCX) of IPIV are accessed.
+*> IPIV(K1+(K-K1)*abs(INCX)) = L implies rows K and L are to be
+*> interchanged.
*> \endverbatim
*>
*> \param[in] INCX
*> \verbatim
*> INCX is INTEGER
-*> The increment between successive values of IPIV. If IPIV
+*> The increment between successive values of IPIV. If INCX
*> is negative, the pivots are applied in reverse order.
*> \endverbatim
*
@@ -90594,7 +90685,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleOTHERauxiliary
*
@@ -90610,10 +90701,10 @@
* =====================================================================
SUBROUTINE DLASWP( N, A, LDA, K1, K2, IPIV, INCX )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER INCX, K1, K2, LDA, N
@@ -90631,7 +90722,8 @@
* ..
* .. Executable Statements ..
*
-* Interchange row I with row IPIV(I) for each of rows K1 through K2.
+* Interchange row I with row IPIV(K1+(I-K1)*abs(INCX)) for each of rows
+* K1 through K2.
*
IF( INCX.GT.0 ) THEN
IX0 = K1
@@ -97325,7 +97417,7 @@
*>
*> \param[out] U1
*> \verbatim
-*> U1 is DOUBLE PRECISION array, dimension (P)
+*> U1 is DOUBLE PRECISION array, dimension (LDU1,P)
*> If JOBU1 = 'Y', U1 contains the P-by-P orthogonal matrix U1.
*> \endverbatim
*>
@@ -97338,7 +97430,7 @@
*>
*> \param[out] U2
*> \verbatim
-*> U2 is DOUBLE PRECISION array, dimension (M-P)
+*> U2 is DOUBLE PRECISION array, dimension (LDU2,M-P)
*> If JOBU2 = 'Y', U2 contains the (M-P)-by-(M-P) orthogonal
*> matrix U2.
*> \endverbatim
@@ -97352,7 +97444,7 @@
*>
*> \param[out] V1T
*> \verbatim
-*> V1T is DOUBLE PRECISION array, dimension (Q)
+*> V1T is DOUBLE PRECISION array, dimension (LDV1T,Q)
*> If JOBV1T = 'Y', V1T contains the Q-by-Q matrix orthogonal
*> matrix V1**T.
*> \endverbatim
@@ -97366,7 +97458,7 @@
*>
*> \param[out] V2T
*> \verbatim
-*> V2T is DOUBLE PRECISION array, dimension (M-Q)
+*> V2T is DOUBLE PRECISION array, dimension (LDV2T,M-Q)
*> If JOBV2T = 'Y', V2T contains the (M-Q)-by-(M-Q) orthogonal
*> matrix V2**T.
*> \endverbatim
@@ -97428,7 +97520,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleOTHERcomputational
*
@@ -97439,10 +97531,10 @@
$ U1, LDU1, U2, LDU2, V1T, LDV1T, V2T,
$ LDV2T, WORK, LWORK, IWORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
CHARACTER JOBU1, JOBU2, JOBV1T, JOBV2T, SIGNS, TRANS
@@ -112967,8 +113059,7 @@
*>
*> \param[in,out] AFP
*> \verbatim
-*> AFP is DOUBLE PRECISION array, dimension
-*> (N*(N+1)/2)
+*> AFP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
*> If FACT = 'F', then AFP is an input argument and on entry
*> contains the triangular factor U or L from the Cholesky
*> factorization A = U**T*U or A = L*L**T, in the same storage
@@ -113132,7 +113223,7 @@
SUBROUTINE DPPSVX( FACT, UPLO, N, NRHS, AP, AFP, EQUED, S, B, LDB,
$ X, LDX, RCOND, FERR, BERR, WORK, IWORK, INFO )
*
-* -- LAPACK driver routine (version 3.7.0) --
+* -- LAPACK driver routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* April 2012
@@ -122476,8 +122567,7 @@
*>
*> \param[out] WORK
*> \verbatim
-*> WORK is DOUBLE PRECISION array,
-*> dimension (LWORK)
+*> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
*> On exit, if INFO = 0, WORK(1) returns the required LWORK.
*> \endverbatim
*>
@@ -122535,7 +122625,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleOTHEReigen
*
@@ -122543,10 +122633,10 @@
SUBROUTINE DSPEVD( JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, LWORK,
$ IWORK, LIWORK, INFO )
*
-* -- LAPACK driver routine (version 3.7.0) --
+* -- LAPACK driver routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
CHARACTER JOBZ, UPLO
@@ -123549,8 +123639,7 @@
*>
*> \param[in,out] AP
*> \verbatim
-*> AP is DOUBLE PRECISION array, dimension
-*> (N*(N+1)/2)
+*> AP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
*> On entry, the upper or lower triangle of the symmetric matrix
*> A, packed columnwise in a linear array. The j-th column of A
*> is stored in the array AP as follows:
@@ -123625,7 +123714,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleOTHEReigen
*
@@ -123633,10 +123722,10 @@
SUBROUTINE DSPGV( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK,
$ INFO )
*
-* -- LAPACK driver routine (version 3.7.0) --
+* -- LAPACK driver routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
CHARACTER JOBZ, UPLO
@@ -125309,8 +125398,7 @@
*>
*> \param[in,out] AFP
*> \verbatim
-*> AFP is DOUBLE PRECISION array, dimension
-*> (N*(N+1)/2)
+*> AFP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
*> If FACT = 'F', then AFP is an input argument and on entry
*> contains the block diagonal matrix D and the multipliers used
*> to obtain the factor U or L from the factorization
@@ -125463,7 +125551,7 @@
SUBROUTINE DSPSVX( FACT, UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X,
$ LDX, RCOND, FERR, BERR, WORK, IWORK, INFO )
*
-* -- LAPACK driver routine (version 3.7.0) --
+* -- LAPACK driver routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* April 2012
@@ -128215,8 +128303,7 @@
*>
*> \param[out] WORK
*> \verbatim
-*> WORK is DOUBLE PRECISION array,
-*> dimension (LWORK)
+*> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
*> On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
*> \endverbatim
*>
@@ -128284,7 +128371,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup auxOTHERcomputational
*
@@ -128299,10 +128386,10 @@
SUBROUTINE DSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK,
$ LIWORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
CHARACTER COMPZ
@@ -128777,7 +128864,7 @@
*>
*> \param[out] ISUPPZ
*> \verbatim
-*> ISUPPZ is INTEGER ARRAY, dimension ( 2*max(1,M) )
+*> ISUPPZ is INTEGER array, dimension ( 2*max(1,M) )
*> The support of the eigenvectors in Z, i.e., the indices
*> indicating the nonzero elements in Z. The i-th computed eigenvector
*> is nonzero only in elements ISUPPZ( 2*i-1 ) through
@@ -128858,7 +128945,7 @@
$ ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK,
$ LIWORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -129570,7 +129657,7 @@
*>
*> \param[out] ISUPPZ
*> \verbatim
-*> ISUPPZ is INTEGER ARRAY, dimension ( 2*max(1,M) )
+*> ISUPPZ is INTEGER array, dimension ( 2*max(1,M) )
*> The support of the eigenvectors in Z, i.e., the indices
*> indicating the nonzero elements in Z. The i-th computed eigenvector
*> is nonzero only in elements ISUPPZ( 2*i-1 ) through
@@ -129669,7 +129756,7 @@
$ M, W, Z, LDZ, NZC, ISUPPZ, TRYRAC, WORK, LWORK,
$ IWORK, LIWORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -134383,7 +134470,7 @@
*>
*> Note 1 : DSYEVR calls DSTEMR when the full spectrum is requested
*> on machines which conform to the ieee-754 floating point standard.
-*> DSYEVR calls DSTEBZ and SSTEIN on non-ieee machines and
+*> DSYEVR calls DSTEBZ and DSTEIN on non-ieee machines and
*> when partial spectrum requests are made.
*>
*> Normal execution of DSTEMR may create NaNs and infinities and
@@ -134629,7 +134716,7 @@
$ ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK,
$ IWORK, LIWORK, INFO )
*
-* -- LAPACK driver routine (version 3.7.0) --
+* -- LAPACK driver routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -140959,7 +141046,7 @@
*>
*> \param[out] WORK
*> \verbatim
-*> WORK is DOUBLE PRECISION array, dimension (N+NNB+1,NNB+3)
+*> WORK is DOUBLE PRECISION array, dimension (N+NB+1,NB+3)
*> \endverbatim
*>
*> \param[in] NB
@@ -140985,17 +141072,17 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleSYcomputational
*
* =====================================================================
SUBROUTINE DSYTRI2X( UPLO, N, A, LDA, IPIV, WORK, NB, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
CHARACTER UPLO
@@ -148446,7 +148533,7 @@
*> \verbatim
*> PL is DOUBLE PRECISION
*> \endverbatim
-
+*>
*> \param[out] PR
*> \verbatim
*> PR is DOUBLE PRECISION
@@ -148472,8 +148559,7 @@
*>
*> \param[out] WORK
*> \verbatim
-*> WORK is DOUBLE PRECISION array,
-*> dimension (MAX(1,LWORK))
+*> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
*> On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
*> \endverbatim
*>
@@ -148676,7 +148762,7 @@
$ ALPHAR, ALPHAI, BETA, Q, LDQ, Z, LDZ, M, PL,
$ PR, DIF, WORK, LWORK, IWORK, LIWORK, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* June 2016
@@ -162817,7 +162903,7 @@
*>
*> \param[out] AP
*> \verbatim
-*> AP is DOUBLE PRECISION array, dimension (N*(N+1)/2
+*> AP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
*> On exit, the upper or lower triangular matrix A, packed
*> columnwise in a linear array. The j-th column of A is stored
*> in the array AP as follows:
@@ -162840,17 +162926,17 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup doubleOTHERcomputational
*
* =====================================================================
SUBROUTINE DTRTTP( UPLO, N, A, LDA, AP, INFO )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
CHARACTER UPLO
@@ -164827,19 +164913,13 @@
* ==========
*
*> \param[out] VERS_MAJOR
-*> \verbatim
*> return the lapack major version
-*> \endverbatim
*>
*> \param[out] VERS_MINOR
-*> \verbatim
*> return the lapack minor version from the major version
-*> \endverbatim
*>
*> \param[out] VERS_PATCH
-*> \verbatim
*> return the lapack patch version from the minor version
-*> \endverbatim
*
* Authors:
* ========
@@ -164849,17 +164929,17 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
-*> \ingroup OTHERauxiliary
+*> \ingroup auxOTHERauxiliary
*
* =====================================================================
SUBROUTINE ILAVER( VERS_MAJOR, VERS_MINOR, VERS_PATCH )
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* June 2016
+* June 2017
*
* =====================================================================
*
@@ -164867,7 +164947,7 @@
* =====================================================================
VERS_MAJOR = 3
VERS_MINOR = 7
- VERS_PATCH = 0
+ VERS_PATCH = 1
* =====================================================================
*
RETURN
@@ -165053,7 +165133,7 @@
INTEGER I, IC, IZ, KD, IB, LHOUS, LWORK, NTHREADS,
$ FACTOPTNB, QROPTNB, LQOPTNB
LOGICAL RPREC, CPREC
- CHARACTER PREC*1, ALGO*3, STAG*5, SUBNAM*12, VECT*3
+ CHARACTER PREC*1, ALGO*3, STAG*5, SUBNAM*12, VECT*1
* ..
* .. Intrinsic Functions ..
INTRINSIC CHAR, ICHAR, MAX
@@ -165309,7 +165389,7 @@
*
*> \param[in] ISPEC
*> \verbatim
-*> ISPEC is integer scalar
+*> ISPEC is INTEGER
*> ISPEC specifies which tunable parameter IPARMQ should
*> return.
*>
@@ -165385,7 +165465,7 @@
*>
*> \param[in] N
*> \verbatim
-*> N is integer scalar
+*> N is INTEGER
*> N is the order of the Hessenberg matrix H.
*> \endverbatim
*>
@@ -165403,7 +165483,7 @@
*>
*> \param[in] LWORK
*> \verbatim
-*> LWORK is integer scalar
+*> LWORK is INTEGER
*> The amount of workspace available.
*> \endverbatim
*
@@ -165415,7 +165495,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date December 2016
+*> \date June 2017
*
*> \ingroup OTHERauxiliary
*
@@ -165490,10 +165570,10 @@
* =====================================================================
INTEGER FUNCTION IPARMQ( ISPEC, NAME, OPTS, N, ILO, IHI, LWORK )
*
-* -- LAPACK auxiliary routine (version 3.7.0) --
+* -- LAPACK auxiliary routine (version 3.7.1) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
+* June 2017
*
* .. Scalar Arguments ..
INTEGER IHI, ILO, ISPEC, LWORK, N
diff --git a/tests/Examples/datasets-Ex.Rout.save b/tests/Examples/datasets-Ex.Rout.save
index 5749db2..2def56c 100644
--- a/tests/Examples/datasets-Ex.Rout.save
+++ b/tests/Examples/datasets-Ex.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -3488,7 +3488,7 @@ c0 -5.14
> ###
> options(digits = 7L)
> base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")
-Time elapsed: 1.462 0.034 1.501 0 0
+Time elapsed: 1.413 0.025 1.443 0 0
> grDevices::dev.off()
null device
1
diff --git a/tests/Examples/grDevices-Ex.Rout.save b/tests/Examples/grDevices-Ex.Rout.save
index 9ccdd44..fc31fd8 100644
--- a/tests/Examples/grDevices-Ex.Rout.save
+++ b/tests/Examples/grDevices-Ex.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -3791,7 +3791,7 @@ $zlab
> ###
> options(digits = 7L)
> base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")
-Time elapsed: 7.763 0.117 7.899 0 0
+Time elapsed: 7.755 0.125 7.899 0 0
> grDevices::dev.off()
null device
1
diff --git a/tests/Examples/graphics-Ex.Rout.save b/tests/Examples/graphics-Ex.Rout.save
index 0cb163c..dec2d2e 100644
--- a/tests/Examples/graphics-Ex.Rout.save
+++ b/tests/Examples/graphics-Ex.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -1014,7 +1014,6 @@ List of 6
+ main = "WRONG histogram") # and warning
Warning in plot.histogram(r, freq = freq1, col = col, border = border, angle = angle, :
the AREAS in the plot are wrong -- rather use 'freq = FALSE'
->
> require(stats)
> set.seed(14)
> x <- rchisq(100, df = 4)
@@ -2075,7 +2074,7 @@ N
> points.default # to see how it calls "plot.xy(xy.coords(x, y), ...)"
function (x, y = NULL, type = "p", ...)
plot.xy(xy.coords(x, y), type = type, ...)
-<bytecode: 0x4265670>
+<bytecode: 0x2c4d808>
<environment: namespace:graphics>
>
>
@@ -2945,7 +2944,7 @@ function (xy = 1, warn.log = TRUE)
u <- par("usr")
xy * c(u[2L] - u[1L], u[4L] - u[3L])/par("pin")
}
-<bytecode: 0x46304e0>
+<bytecode: 0x301d5a0>
<environment: namespace:graphics>
>
> ## plot labels offset 0.12 inches to the right
@@ -3025,7 +3024,7 @@ function (xy = 1, warn.log = TRUE)
> ###
> options(digits = 7L)
> base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")
-Time elapsed: 1.985 0.04 2.031 0 0
+Time elapsed: 1.994 0.028 2.027 0 0
> grDevices::dev.off()
null device
1
diff --git a/tests/Examples/grid-Ex.Rout.save b/tests/Examples/grid-Ex.Rout.save
index 2a8b8b0..dca1d89 100644
--- a/tests/Examples/grid-Ex.Rout.save
+++ b/tests/Examples/grid-Ex.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -2069,7 +2069,7 @@ vp1::vp2
> ###
> options(digits = 7L)
> base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")
-Time elapsed: 1.185 0.018 1.208 0 0
+Time elapsed: 1.181 0.018 1.203 0 0
> grDevices::dev.off()
null device
1
diff --git a/tests/Examples/splines-Ex.Rout.save b/tests/Examples/splines-Ex.Rout.save
index dafdbb0..07840b3 100644
--- a/tests/Examples/splines-Ex.Rout.save
+++ b/tests/Examples/splines-Ex.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -582,7 +582,7 @@ attr(,"class")
> ###
> options(digits = 7L)
> base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")
-Time elapsed: 0.157 0.003 0.16 0 0
+Time elapsed: 0.154 0.006 0.16 0 0
> grDevices::dev.off()
null device
1
diff --git a/tests/Examples/stats-Ex.Rout.save b/tests/Examples/stats-Ex.Rout.save
index 537c4d8..fb8ab51 100644
--- a/tests/Examples/stats-Ex.Rout.save
+++ b/tests/Examples/stats-Ex.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -3797,7 +3797,7 @@ sigma^2 estimated as 0.4566: log likelihood = -101.2, aic = 212.4
>
> asOneSidedFormula("age")
~age
-<environment: 0x4a3f928>
+<environment: 0x4944850>
> asOneSidedFormula(~ age)
~age
>
@@ -4782,7 +4782,7 @@ function (V)
r[cbind(1L:p, 1L:p)] <- 1
r
}
-<bytecode: 0x68488c0>
+<bytecode: 0x6655678>
<environment: namespace:stats>
> stopifnot(all.equal(Cl, cov2cor(cov(longley))),
+ all.equal(cor(longley, method = "kendall"),
@@ -7338,7 +7338,7 @@ attr(,".Environment")
> environment(as.formula("y ~ x"))
<environment: R_GlobalEnv>
> environment(as.formula("y ~ x", env = new.env()))
-<environment: 0x666ab68>
+<environment: 0x63faa68>
>
>
> ## Create a formula for a model with a large number of variables:
@@ -11948,14 +11948,14 @@ attr(,"class")
$linkfun
function (mu)
mu^lambda
-<bytecode: 0x59505d8>
-<environment: 0x5948b28>
+<bytecode: 0x576af78>
+<environment: 0x57636c0>
$linkinv
function (eta)
pmax(eta^(1/lambda), .Machine$double.eps)
-<bytecode: 0x5950728>
-<environment: 0x5948b28>
+<bytecode: 0x576b0c8>
+<environment: 0x57636c0>
>
>
@@ -16035,8 +16035,8 @@ Step function with continuity 'f'= 0.2 , 3 knots at
> unclass(sfun0)
function (v)
.approxfun(x, y, v, method, yleft, yright, f)
-<bytecode: 0x5ae6300>
-<environment: 0x6dd6e68>
+<bytecode: 0x58f64c0>
+<environment: 0x6bf9798>
attr(,"call")
stepfun(1:3, y0, f = 0)
> ls(envir = environment(sfun0))
@@ -18360,7 +18360,7 @@ Number of Fisher Scoring iterations: 6
> ###
> options(digits = 7L)
> base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")
-Time elapsed: 5.026 0.107 5.153 0 0
+Time elapsed: 5.019 0.085 5.124 0 0
> grDevices::dev.off()
null device
1
diff --git a/tests/Examples/stats4-Ex.Rout.save b/tests/Examples/stats4-Ex.Rout.save
index 41dad8f..f93385f 100644
--- a/tests/Examples/stats4-Ex.Rout.save
+++ b/tests/Examples/stats4-Ex.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -184,7 +184,7 @@ Coefficients:
> ###
> options(digits = 7L)
> base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")
-Time elapsed: 0.416 0.007 0.425 0 0
+Time elapsed: 0.489 0.004 0.495 0 0
> grDevices::dev.off()
null device
1
diff --git a/tests/Examples/tools-Ex.Rout.save b/tests/Examples/tools-Ex.Rout.save
index af41283..208c528 100644
--- a/tests/Examples/tools-Ex.Rout.save
+++ b/tests/Examples/tools-Ex.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.1 beta (2017-06-19 r72811) -- "Single Candle"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -202,7 +202,7 @@ Error in assertWarning(ff()) :
> bibstyle("unsorted", sortKeys = function(refs) seq_along(refs),
+ fmtPrefix = function(paper) paste0("[", paper$.index, "]"),
+ .init = TRUE)
-<environment: 0x56044d8b2aa0>
+<environment: 0x36b3de8>
> print(refs, .bibstyle = "unsorted")
[1] R Core Team (2013). _R: A Language and Environment for Statistical
Computing_. R Foundation for Statistical Computing, Vienna, Austria.
@@ -997,7 +997,7 @@ List of 6
> ###
> options(digits = 7L)
> base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")
-Time elapsed: 0.24 0.004 0.244 0 0
+Time elapsed: 0.247 0.01 0.258 0 0
> grDevices::dev.off()
null device
1
diff --git a/tests/Makefile.common b/tests/Makefile.common
index ccd4068..4815612 100644
--- a/tests/Makefile.common
+++ b/tests/Makefile.common
@@ -252,9 +252,10 @@ test-IsAs:
@$(ECHO) "running tests of consistency of as/is.*"
@$(MK) $(test-out-isas) RVAL_IF_DIFF=1
+## As for test-Internet, allow to fail, possibly slowly
test-Internet2:
@$(ECHO) "running more Internet and socket tests"
- @$(MK) $(test-out-internet2) RVAL_IF_DIFF=0
+ -@$(MK) $(test-out-internet2) RVAL_IF_DIFF=0
test-CRANtools:
@$(ECHO) "running tests of CRAN tools"
diff --git a/tests/R-intro.Rout.save b/tests/R-intro.Rout.save
index c934b83..f997f45 100644
--- a/tests/R-intro.Rout.save
+++ b/tests/R-intro.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/any-all.Rout.save b/tests/any-all.Rout.save
index 3538c0f..1159533 100644
--- a/tests/any-all.Rout.save
+++ b/tests/any-all.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/arith-true.Rout.save b/tests/arith-true.Rout.save
index d28b839..cbc70a2 100644
--- a/tests/arith-true.Rout.save
+++ b/tests/arith-true.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -323,5 +323,5 @@ Warning messages:
>
> ## Last Line:
> cat('Time elapsed: ', proc.time() - .proctime00,'\n')
-Time elapsed: 0.283 0.007 0.29 0 0
+Time elapsed: 0.278 0.001 0.282 0 0
>
diff --git a/tests/arith.Rout.save b/tests/arith.Rout.save
index 4067ef1..fe7d9a0 100644
--- a/tests/arith.Rout.save
+++ b/tests/arith.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/complex.Rout.save b/tests/complex.Rout.save
index 8dd5d18..a83db17 100644
--- a/tests/complex.Rout.save
+++ b/tests/complex.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/d-p-q-r-tests.Rout.save b/tests/d-p-q-r-tests.Rout.save
index 7843ea7..9e22eb2 100644
--- a/tests/d-p-q-r-tests.Rout.save
+++ b/tests/d-p-q-r-tests.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -1467,5 +1467,5 @@ rweibull (4, ..): 1 2 [Ok]
>
>
> cat("Time elapsed: ", proc.time() - .ptime,"\n")
-Time elapsed: 1.318 0.007 1.328 0 0
+Time elapsed: 1.372 0.008 1.384 0 0
>
diff --git a/tests/datasets.Rout.save b/tests/datasets.Rout.save
index 8ffe12e..94cacbc 100644
--- a/tests/datasets.Rout.save
+++ b/tests/datasets.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/datetime.Rout.save b/tests/datetime.Rout.save
index ea07c53..b32b056 100644
--- a/tests/datetime.Rout.save
+++ b/tests/datetime.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/datetime2.Rout.save b/tests/datetime2.Rout.save
index aa6a0d9..b42810a 100644
--- a/tests/datetime2.Rout.save
+++ b/tests/datetime2.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/demos.Rout.save b/tests/demos.Rout.save
index 8def6bd..d807cb8 100644
--- a/tests/demos.Rout.save
+++ b/tests/demos.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -1510,5 +1510,5 @@ sm 3 3 3 3 4 4 4 4 2 2 2
> par(op)
>
> cat("Time elapsed: ", proc.time() - .ptime, "\n")
-Time elapsed: 1.143 0.028 1.175 0 0
+Time elapsed: 1.089 0.022 1.114 0 0
>
diff --git a/tests/eval-etc.Rout.save b/tests/eval-etc.Rout.save
index 3eb7578..e81ab09 100644
--- a/tests/eval-etc.Rout.save
+++ b/tests/eval-etc.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/iec60559.Rout.save b/tests/iec60559.Rout.save
index a456a93..5443889 100644
--- a/tests/iec60559.Rout.save
+++ b/tests/iec60559.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/internet.Rout.save b/tests/internet.Rout.save
index 88771ef..2c1bd50 100644
--- a/tests/internet.Rout.save
+++ b/tests/internet.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -25,7 +25,7 @@ Type 'q()' to quit R.
> ap <- available.packages(contrib.url("http://cran.r-project.org"))
> ## IGNORE_RDIFF_BEGIN
> nrow(ap)
-[1] 10826
+[1] 11096
> ## IGNORE_RDIFF_END
>
> # test url connections on http
diff --git a/tests/isas-tests.Rout.save b/tests/isas-tests.Rout.save
index b938875..95219c4 100644
--- a/tests/isas-tests.Rout.save
+++ b/tests/isas-tests.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -2568,6 +2568,6 @@ In as.dist.default(x) : non-square matrix
> f <- try(as.ts( x ), silent = TRUE)
> if(!inherits(f, 'try-error')) report(identical(f, as.ts( f )))
> cat('Time elapsed: ', proc.time() - .proctime00,'\n')
-Time elapsed: 0.171 0.006 0.178 0 0
+Time elapsed: 0.169 0.009 0.178 0 0
>
>
diff --git a/tests/lapack.Rout.save b/tests/lapack.Rout.save
index 4332590..de932b2 100644
--- a/tests/lapack.Rout.save
+++ b/tests/lapack.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/lm-tests.Rout.save b/tests/lm-tests.Rout.save
index e927033..a4aa82d 100644
--- a/tests/lm-tests.Rout.save
+++ b/tests/lm-tests.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/method-dispatch.Rout.save b/tests/method-dispatch.Rout.save
index 7d7452b..71cb7d5 100644
--- a/tests/method-dispatch.Rout.save
+++ b/tests/method-dispatch.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/ok-errors.Rout.save b/tests/ok-errors.Rout.save
index 79cf9ce..792f99a 100644
--- a/tests/ok-errors.Rout.save
+++ b/tests/ok-errors.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/p-r-random-tests.Rout.save b/tests/p-r-random-tests.Rout.save
index 2711e38..9cad11e 100644
--- a/tests/p-r-random-tests.Rout.save
+++ b/tests/p-r-random-tests.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -278,6 +278,6 @@ f(df1 = 10, df2 = 2, ncp = 3) PASSED
>
>
> cat('Time elapsed: ', proc.time() - .proctime00,'\n')
-Time elapsed: 1.352 0.006 1.361 0 0
+Time elapsed: 1.286 0 1.289 0 0
>
>
diff --git a/tests/print-tests.Rout.save b/tests/print-tests.Rout.save
index d8f3b55..50ef9ce 100644
--- a/tests/print-tests.Rout.save
+++ b/tests/print-tests.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/reg-IO.Rout.save b/tests/reg-IO.Rout.save
index bb2a146..1e764de 100644
--- a/tests/reg-IO.Rout.save
+++ b/tests/reg-IO.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/reg-IO2.Rout.save b/tests/reg-IO2.Rout.save
index 4ce381c..33e8f06 100644
--- a/tests/reg-IO2.Rout.save
+++ b/tests/reg-IO2.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/reg-S4.R b/tests/reg-S4.R
index 3b37e53..512ab7f 100644
--- a/tests/reg-S4.R
+++ b/tests/reg-S4.R
@@ -905,3 +905,10 @@ setMethod("[", "bar", function(x, i, j, ..., flag = FALSE, drop = FALSE) {
BAR <- new("bar")
stopifnot(identical(BAR[1L], FALSE))
stopifnot(identical(BAR[1L, , flag=TRUE], TRUE))
+
+## callNextMethod() was broken for ... dispatch
+f <- function(...) length(list(...))
+setGeneric("f")
+setMethod("f", "character", function(...){ callNextMethod() })
+stopifnot(identical(f(1, 2, 3), 3L))
+stopifnot(identical(f("a", "b", "c"), 3L))
diff --git a/tests/reg-S4.Rout.save b/tests/reg-S4.Rout.save
index 9e62e9b..3e4d743 100644
--- a/tests/reg-S4.Rout.save
+++ b/tests/reg-S4.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -1271,3 +1271,12 @@ Also defined by 'package2'
> stopifnot(identical(BAR[1L], FALSE))
> stopifnot(identical(BAR[1L, , flag=TRUE], TRUE))
>
+> ## callNextMethod() was broken for ... dispatch
+> f <- function(...) length(list(...))
+> setGeneric("f")
+[1] "f"
+> setMethod("f", "character", function(...){ callNextMethod() })
+[1] "f"
+> stopifnot(identical(f(1, 2, 3), 3L))
+> stopifnot(identical(f("a", "b", "c"), 3L))
+>
diff --git a/tests/reg-examples3.Rout.save b/tests/reg-examples3.Rout.save
index ab3d675..2565e0e 100644
--- a/tests/reg-examples3.Rout.save
+++ b/tests/reg-examples3.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/reg-plot-latin1.pdf.save b/tests/reg-plot-latin1.pdf.save
index b2e8d34..43ec27a 100644
--- a/tests/reg-plot-latin1.pdf.save
+++ b/tests/reg-plot-latin1.pdf.save
@@ -2,10 +2,10 @@
%ρ\r
1 0 obj
<<
-/CreationDate (D:20121210185339)
-/ModDate (D:20121210185339)
+/CreationDate (D:20170728181106)
+/ModDate (D:20170728181106)
/Title (R Graphics Output)
-/Producer (R 3.0.0)
+/Producer (R 3.5.0)
/Creator (R)
>>
endobj
@@ -155,7 +155,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
0.75 w
@@ -384,7 +383,7 @@ Q
endstream
endobj
12 0 obj
-5085
+5046
endobj
3 0 obj
<< /Type /Pages /Kids [ 7 0 R 10 0 R ] /Count 2 /MediaBox [0 0 841 595] >>
@@ -630,23 +629,23 @@ xref
0000000000 65535 f
0000000021 00000 n
0000000163 00000 n
-0000008118 00000 n
-0000008208 00000 n
-0000008354 00000 n
-0000008387 00000 n
+0000008079 00000 n
+0000008169 00000 n
+0000008315 00000 n
+0000008348 00000 n
0000000212 00000 n
0000000292 00000 n
0000002856 00000 n
0000002876 00000 n
0000002958 00000 n
-0000008097 00000 n
-0000017923 00000 n
-0000018181 00000 n
-0000018265 00000 n
-0000018363 00000 n
-0000018466 00000 n
+0000008058 00000 n
+0000017884 00000 n
+0000018142 00000 n
+0000018226 00000 n
+0000018324 00000 n
+0000018427 00000 n
trailer
<< /Size 18 /Info 1 0 R /Root 2 0 R >>
startxref
-18544
+18505
%%EOF
diff --git a/tests/reg-plot.pdf.save b/tests/reg-plot.pdf.save
index d8e95fa..dc31bb8 100644
--- a/tests/reg-plot.pdf.save
+++ b/tests/reg-plot.pdf.save
@@ -2,10 +2,10 @@
%ρ\r
1 0 obj
<<
-/CreationDate (D:20160819103414)
-/ModDate (D:20160819103414)
+/CreationDate (D:20170728181058)
+/ModDate (D:20170728181058)
/Title (R Graphics Output)
-/Producer (R 3.4.0)
+/Producer (R 3.5.0)
/Creator (R)
>>
endobj
@@ -1268,7 +1268,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
0.75 w
@@ -1460,7 +1459,7 @@ Q
endstream
endobj
21 0 obj
-3475
+3436
endobj
22 0 obj
<< /Type /Page /Parent 3 0 R /Contents 23 0 R /Resources 4 0 R >>
@@ -1472,7 +1471,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
0.75 w
@@ -1862,7 +1860,7 @@ Q
endstream
endobj
24 0 obj
-6645
+6606
endobj
25 0 obj
<< /Type /Page /Parent 3 0 R /Contents 26 0 R /Resources 4 0 R >>
@@ -2159,7 +2157,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
1.000 0.000 0.000 SCN
0.75 w
@@ -3272,7 +3269,7 @@ Q
endstream
endobj
33 0 obj
-18336
+18297
endobj
34 0 obj
<< /Type /Page /Parent 3 0 R /Contents 35 0 R /Resources 4 0 R >>
@@ -3728,7 +3725,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
1.50 w
@@ -3763,7 +3759,7 @@ Q
endstream
endobj
42 0 obj
-629
+590
endobj
43 0 obj
<< /Type /Page /Parent 3 0 R /Contents 44 0 R /Resources 4 0 R >>
@@ -3775,7 +3771,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
1.50 w
@@ -3868,7 +3863,7 @@ Q
endstream
endobj
45 0 obj
-1813
+1774
endobj
46 0 obj
<< /Type /Page /Parent 3 0 R /Contents 47 0 R /Resources 4 0 R >>
@@ -4142,7 +4137,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
0.75 w
@@ -4242,7 +4236,7 @@ Q
endstream
endobj
54 0 obj
-1944
+1905
endobj
55 0 obj
<< /Type /Page /Parent 3 0 R /Contents 56 0 R /Resources 4 0 R >>
@@ -4254,7 +4248,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
0.75 w
@@ -4348,7 +4341,7 @@ Q
endstream
endobj
57 0 obj
-1914
+1875
endobj
58 0 obj
<< /Type /Page /Parent 3 0 R /Contents 59 0 R /Resources 4 0 R >>
@@ -4360,7 +4353,6 @@ endobj
stream
1 J 1 j q
Q q 210.27 97.05 441.50 411.26 re W n
-Q q 210.27 97.05 441.50 411.26 re W n
/sRGB CS
0.745 0.745 0.745 SCN
0.75 w
@@ -4436,7 +4428,7 @@ Q
endstream
endobj
60 0 obj
-1468
+1430
endobj
61 0 obj
<< /Type /Page /Parent 3 0 R /Contents 62 0 R /Resources 4 0 R >>
@@ -4448,7 +4440,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
0.75 w
@@ -4490,7 +4481,7 @@ Q
endstream
endobj
63 0 obj
-656
+617
endobj
64 0 obj
<< /Type /Page /Parent 3 0 R /Contents 65 0 R /Resources 4 0 R >>
@@ -4502,7 +4493,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
0.75 w
@@ -4560,7 +4550,7 @@ Q
endstream
endobj
66 0 obj
-1038
+999
endobj
67 0 obj
<< /Type /Page /Parent 3 0 R /Contents 68 0 R /Resources 4 0 R >>
@@ -4572,7 +4562,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
0.75 w
@@ -4605,7 +4594,7 @@ Q
endstream
endobj
69 0 obj
-522
+483
endobj
70 0 obj
<< /Type /Page /Parent 3 0 R /Contents 71 0 R /Resources 4 0 R >>
@@ -4617,7 +4606,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
0.75 w
@@ -4650,7 +4638,7 @@ Q
endstream
endobj
72 0 obj
-535
+496
endobj
73 0 obj
<< /Type /Page /Parent 3 0 R /Contents 74 0 R /Resources 4 0 R >>
@@ -4662,7 +4650,6 @@ endobj
stream
1 J 1 j q
Q q 229.76 119.08 412.95 371.52 re W n
-Q q 229.76 119.08 412.95 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
0.75 w
@@ -4744,7 +4731,7 @@ Q
endstream
endobj
75 0 obj
-1514
+1475
endobj
76 0 obj
<< /Type /Page /Parent 3 0 R /Contents 77 0 R /Resources 4 0 R >>
@@ -4802,7 +4789,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
0.75 w
@@ -4836,7 +4822,7 @@ Q
endstream
endobj
81 0 obj
-480
+441
endobj
82 0 obj
<< /Type /Page /Parent 3 0 R /Contents 83 0 R /Resources 4 0 R >>
@@ -4848,7 +4834,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
0.75 w
@@ -4912,7 +4897,7 @@ Q
endstream
endobj
84 0 obj
-1242
+1203
endobj
85 0 obj
<< /Type /Page /Parent 3 0 R /Contents 86 0 R /Resources 4 0 R >>
@@ -4924,7 +4909,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
0.75 w
@@ -4988,7 +4972,7 @@ Q
endstream
endobj
87 0 obj
-1220
+1181
endobj
88 0 obj
<< /Type /Page /Parent 3 0 R /Contents 89 0 R /Resources 4 0 R >>
@@ -5000,7 +4984,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
0.75 w
@@ -5064,7 +5047,7 @@ Q
endstream
endobj
90 0 obj
-1230
+1191
endobj
91 0 obj
<< /Type /Page /Parent 3 0 R /Contents 92 0 R /Resources 4 0 R >>
@@ -5213,7 +5196,6 @@ endobj
stream
1 J 1 j q
Q q 227.98 119.08 414.72 371.52 re W n
-Q q 227.98 119.08 414.72 371.52 re W n
/sRGB CS
0.000 0.000 0.000 SCN
0.75 w
@@ -5266,7 +5248,7 @@ Q
endstream
endobj
99 0 obj
-1083
+1044
endobj
3 0 obj
<< /Type /Pages /Kids [ 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R 88 0 R 91 0 R 94 0 R 97 0 R ] /Count 31 /MediaBox [0 0 841 595] >>
@@ -5512,10 +5494,10 @@ xref
0000000000 65535 f
0000000021 00000 n
0000000163 00000 n
-0000096322 00000 n
-0000096616 00000 n
-0000096766 00000 n
-0000096799 00000 n
+0000095620 00000 n
+0000095914 00000 n
+0000096064 00000 n
+0000096097 00000 n
0000000212 00000 n
0000000292 00000 n
0000001974 00000 n
@@ -5530,92 +5512,92 @@ xref
0000026364 00000 n
0000026385 00000 n
0000026467 00000 n
-0000029996 00000 n
-0000030017 00000 n
-0000030099 00000 n
-0000036798 00000 n
-0000036819 00000 n
-0000036901 00000 n
-0000038637 00000 n
-0000038658 00000 n
-0000038740 00000 n
-0000042889 00000 n
-0000042910 00000 n
-0000042992 00000 n
-0000061382 00000 n
-0000061404 00000 n
-0000061486 00000 n
-0000064832 00000 n
-0000064853 00000 n
-0000064935 00000 n
-0000068279 00000 n
-0000068300 00000 n
-0000068382 00000 n
-0000069065 00000 n
-0000069085 00000 n
-0000069167 00000 n
-0000071034 00000 n
-0000071055 00000 n
-0000071137 00000 n
-0000073825 00000 n
-0000073846 00000 n
-0000073928 00000 n
-0000076250 00000 n
-0000076271 00000 n
-0000076353 00000 n
-0000078351 00000 n
-0000078372 00000 n
-0000078454 00000 n
-0000080422 00000 n
-0000080443 00000 n
-0000080525 00000 n
-0000082047 00000 n
-0000082068 00000 n
-0000082150 00000 n
-0000082860 00000 n
-0000082880 00000 n
-0000082962 00000 n
-0000084054 00000 n
-0000084075 00000 n
-0000084157 00000 n
-0000084733 00000 n
-0000084753 00000 n
-0000084835 00000 n
-0000085424 00000 n
-0000085444 00000 n
-0000085526 00000 n
-0000087094 00000 n
-0000087115 00000 n
-0000087197 00000 n
-0000087876 00000 n
-0000087896 00000 n
-0000087978 00000 n
-0000088512 00000 n
-0000088532 00000 n
-0000088614 00000 n
-0000089910 00000 n
-0000089931 00000 n
-0000090013 00000 n
-0000091287 00000 n
-0000091308 00000 n
-0000091390 00000 n
-0000092674 00000 n
-0000092695 00000 n
-0000092777 00000 n
-0000094406 00000 n
-0000094427 00000 n
-0000094509 00000 n
-0000095062 00000 n
-0000095082 00000 n
-0000095164 00000 n
-0000096301 00000 n
-0000106335 00000 n
-0000106594 00000 n
-0000106679 00000 n
-0000106779 00000 n
-0000106884 00000 n
+0000029957 00000 n
+0000029978 00000 n
+0000030060 00000 n
+0000036720 00000 n
+0000036741 00000 n
+0000036823 00000 n
+0000038559 00000 n
+0000038580 00000 n
+0000038662 00000 n
+0000042811 00000 n
+0000042832 00000 n
+0000042914 00000 n
+0000061265 00000 n
+0000061287 00000 n
+0000061369 00000 n
+0000064715 00000 n
+0000064736 00000 n
+0000064818 00000 n
+0000068162 00000 n
+0000068183 00000 n
+0000068265 00000 n
+0000068909 00000 n
+0000068929 00000 n
+0000069011 00000 n
+0000070839 00000 n
+0000070860 00000 n
+0000070942 00000 n
+0000073630 00000 n
+0000073651 00000 n
+0000073733 00000 n
+0000076055 00000 n
+0000076076 00000 n
+0000076158 00000 n
+0000078117 00000 n
+0000078138 00000 n
+0000078220 00000 n
+0000080149 00000 n
+0000080170 00000 n
+0000080252 00000 n
+0000081736 00000 n
+0000081757 00000 n
+0000081839 00000 n
+0000082510 00000 n
+0000082530 00000 n
+0000082612 00000 n
+0000083665 00000 n
+0000083685 00000 n
+0000083767 00000 n
+0000084304 00000 n
+0000084324 00000 n
+0000084406 00000 n
+0000084956 00000 n
+0000084976 00000 n
+0000085058 00000 n
+0000086587 00000 n
+0000086608 00000 n
+0000086690 00000 n
+0000087369 00000 n
+0000087389 00000 n
+0000087471 00000 n
+0000087966 00000 n
+0000087986 00000 n
+0000088068 00000 n
+0000089325 00000 n
+0000089346 00000 n
+0000089428 00000 n
+0000090663 00000 n
+0000090684 00000 n
+0000090766 00000 n
+0000092011 00000 n
+0000092032 00000 n
+0000092114 00000 n
+0000093743 00000 n
+0000093764 00000 n
+0000093846 00000 n
+0000094399 00000 n
+0000094419 00000 n
+0000094501 00000 n
+0000095599 00000 n
+0000105633 00000 n
+0000105892 00000 n
+0000105977 00000 n
+0000106077 00000 n
+0000106182 00000 n
trailer
<< /Size 105 /Info 1 0 R /Root 2 0 R >>
startxref
-106963
+106261
%%EOF
diff --git a/tests/reg-tests-2.Rout.save b/tests/reg-tests-2.Rout.save
index 46597d5..9106e5a 100644
--- a/tests/reg-tests-2.Rout.save
+++ b/tests/reg-tests-2.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
@@ -6371,7 +6371,7 @@ function(given = NULL) {
if (is.null(given)) callObj$default <- TRUE
callObj
}
-<bytecode: 0x48fdfb8>
+<bytecode: 0x5407a80>
> print(foo, useSource = FALSE)
function (given = NULL)
{
@@ -6382,7 +6382,7 @@ function (given = NULL)
callObj$default <- TRUE
callObj
}
-<bytecode: 0x48fdfb8>
+<bytecode: 0x5407a80>
> attr(foo, "srcref") <- NULL
> foo
function (given = NULL)
@@ -6394,7 +6394,7 @@ function (given = NULL)
callObj$default <- TRUE
callObj
}
-<bytecode: 0x48fdfb8>
+<bytecode: 0x5407a80>
> (f <- structure(function(){}, note = "just a note",
+ yada = function() "not the same"))
function(){}
@@ -6416,15 +6416,15 @@ function ()
> print.function
function (x, ...)
- attr(*, "srcref")=Class 'srcref' atomic [1:8] 1 19 1 63 19 63 1 1
- .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x49518c8>
+ .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x545ade0>
> f
function ()
- attr(*, "srcref")=Class 'srcref' atomic [1:8] 1 17 1 28 17 28 1 1
- .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x4946298>
+ .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x5450730>
- attr(*, "note")= chr "just a note"
- attr(*, "yada")=function ()
..- attr(*, "srcref")=Class 'srcref' atomic [1:8] 2 24 2 48 24 48 2 2
- .. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x4946298>
+ .. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x5450730>
> rm(print.function)
> ## auto-printing and printing differed up to R 2.9.x
>
diff --git a/tests/reg-tests-3.Rout.save b/tests/reg-tests-3.Rout.save
index 95e2f1b..3e4df53 100644
--- a/tests/reg-tests-3.Rout.save
+++ b/tests/reg-tests-3.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/tests/simple-true.Rout.save b/tests/simple-true.Rout.save
index 5a9ee40..f8ee6fe 100644
--- a/tests/simple-true.Rout.save
+++ b/tests/simple-true.Rout.save
@@ -1,5 +1,5 @@
-R version 3.4.0 Patched (2017-06-15 r72797) -- "You Stupid Darkness"
+R version 3.4.1 Patched (2017-07-19 r72930) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)