summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2018-04-25 07:19:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2018-04-25 07:19:20 +0000
commita28b6dc2479f9771b34104f1003b231e2cb1097e (patch)
treed8a0ab242ed655230b4d9e4197167baeb1a97407
parentReleasing progress-linux version 3.4.4-1~dschinn1. (diff)
downloadr-base-a28b6dc2479f9771b34104f1003b231e2cb1097e.zip
r-base-a28b6dc2479f9771b34104f1003b231e2cb1097e.tar.xz
Merging upstream version 3.5.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
-rw-r--r--Makefile.fw6
-rw-r--r--Makefile.in17
-rw-r--r--SVN-REVISION4
-rw-r--r--VERSION2
-rw-r--r--VERSION-NICK2
-rwxr-xr-xconfigure2355
-rw-r--r--configure.ac129
-rw-r--r--doc/AUTHORS4
-rw-r--r--doc/CRAN_mirrors.csv68
-rw-r--r--doc/FAQ29
-rw-r--r--doc/NEWS608
-rw-r--r--doc/NEWS.22
-rw-r--r--doc/NEWS.Rd671
-rw-r--r--doc/NEWS.pdfbin502414 -> 560334 bytes
-rw-r--r--doc/THANKS8
-rw-r--r--doc/html/NEWS.html843
-rw-r--r--doc/html/R-admin.html310
-rw-r--r--doc/manual/Makefile.in14
-rw-r--r--doc/manual/R-FAQ.texi44
-rw-r--r--doc/manual/R-admin.texi158
-rw-r--r--doc/manual/R-exts.texi212
-rw-r--r--doc/manual/R-ints.texi209
-rw-r--r--doc/manual/R-lang.texi2
-rw-r--r--etc/Makeconf.in2
-rw-r--r--etc/Makefile.in2
-rw-r--r--etc/javaconf.in5
-rw-r--r--etc/repositories1
-rw-r--r--m4/R.m4150
-rw-r--r--m4/cxx_11.m420
-rw-r--r--m4/openmp.m43
-rw-r--r--share/Makefile.in8
-rw-r--r--share/R/examples-footer.R1
-rw-r--r--share/R/examples-header.R12
-rw-r--r--share/Rd/macros/system.Rd4
-rw-r--r--share/make/shlib.mk2
-rw-r--r--src/appl/Makefile.in2
-rw-r--r--src/appl/pretty.c14
-rw-r--r--src/appl/uncmin.c48
-rw-r--r--src/extra/Makefile.in4
-rw-r--r--src/extra/blas/Makefile.in8
-rw-r--r--src/extra/tre/tre-parse.c13
-rw-r--r--src/extra/tzone/Make.zi6
-rw-r--r--src/gnuwin32/Makefile2
-rw-r--r--src/gnuwin32/Rdll.hide1
-rw-r--r--src/gnuwin32/cran/rdevel.in7
-rw-r--r--src/gnuwin32/editor.c8
-rw-r--r--src/gnuwin32/extra.c43
-rw-r--r--src/gnuwin32/fixed/etc/Makeconf2
-rw-r--r--src/gnuwin32/fixed/h/config.h88
-rw-r--r--src/gnuwin32/installer/Makefile6
-rw-r--r--src/gnuwin32/installer/reg.iss6
-rw-r--r--src/gnuwin32/installer/reg3264.iss12
-rw-r--r--src/gnuwin32/rui.c8
-rw-r--r--src/gnuwin32/rui.h2
-rw-r--r--src/gnuwin32/run.c89
-rw-r--r--src/gnuwin32/run.h18
-rw-r--r--src/gnuwin32/sys-win32.c58
-rw-r--r--src/gnuwin32/system.c48
-rw-r--r--src/include/Defn.h39
-rw-r--r--src/include/GraphicsBase.h2
-rw-r--r--src/include/Internal.h15
-rw-r--r--src/include/Makefile.in2
-rw-r--r--src/include/Makefile.win4
-rw-r--r--src/include/Print.h4
-rw-r--r--src/include/R_ext/Altrep.h121
-rw-r--r--src/include/R_ext/Connections.h2
-rw-r--r--src/include/R_ext/GraphicsEngine.h2
-rw-r--r--src/include/R_ext/Itermacros.h28
-rw-r--r--src/include/R_ext/Makefile.in3
-rw-r--r--src/include/R_ext/PrtUtil.h14
-rw-r--r--src/include/R_ext/Utils.h5
-rw-r--r--src/include/Rconnections.h4
-rw-r--r--src/include/Rinlinedfuns.h404
-rw-r--r--src/include/Rinternals.h320
-rw-r--r--src/include/Rmath.h0.in53
-rw-r--r--src/include/config.h.in21
-rw-r--r--src/include/rlocale.h36
-rw-r--r--src/library/Makefile.in6
-rw-r--r--src/library/Makefile.win2
-rw-r--r--src/library/Recommended/MASS_7.3-49.tar.gzbin487770 -> 487772 bytes
-rw-r--r--src/library/Recommended/Makefile.in2
l---------src/library/Recommended/Matrix.tgz2
-rw-r--r--src/library/Recommended/Matrix_1.2-12.tar.gzbin1821418 -> 0 bytes
-rw-r--r--src/library/Recommended/Matrix_1.2-14.tar.gzbin0 -> 1832986 bytes
-rw-r--r--src/library/Recommended/boot_1.3-20.tar.gzbin231865 -> 231867 bytes
l---------src/library/Recommended/cluster.tgz2
-rw-r--r--src/library/Recommended/cluster_2.0.6.tar.gzbin319236 -> 0 bytes
-rw-r--r--src/library/Recommended/cluster_2.0.7-1.tar.gzbin0 -> 324665 bytes
l---------src/library/Recommended/foreign.tgz2
-rw-r--r--src/library/Recommended/foreign_0.8-69.tar.gzbin344394 -> 0 bytes
-rw-r--r--src/library/Recommended/foreign_0.8-70.tar.gzbin0 -> 344471 bytes
-rw-r--r--src/library/Recommended/mgcv_1.8-23.tar.gzbin866068 -> 866072 bytes
l---------src/library/Recommended/nlme.tgz2
-rw-r--r--src/library/Recommended/nlme_3.1-131.1.tar.gzbin780392 -> 0 bytes
-rw-r--r--src/library/Recommended/nlme_3.1-137.tar.gzbin0 -> 786776 bytes
-rw-r--r--src/library/Recommended/rpart_4.1-13.tar.gzbin818294 -> 818297 bytes
-rw-r--r--src/library/base/Makefile.in3
-rw-r--r--src/library/base/R/New-Internal.R50
-rw-r--r--src/library/base/R/all.equal.R7
-rw-r--r--src/library/base/R/attach.R11
-rw-r--r--src/library/base/R/backquote.R2
-rw-r--r--src/library/base/R/by.R2
-rw-r--r--src/library/base/R/character.R24
-rw-r--r--src/library/base/R/conditions.R45
-rw-r--r--src/library/base/R/dataframe.R198
-rw-r--r--src/library/base/R/dates.R169
-rw-r--r--src/library/base/R/datetime.R515
-rw-r--r--src/library/base/R/dcf.R15
-rw-r--r--src/library/base/R/diag.R17
-rw-r--r--src/library/base/R/dput.R22
-rw-r--r--src/library/base/R/duplicated.R31
-rw-r--r--src/library/base/R/dynload.R23
-rw-r--r--src/library/base/R/eval.R16
-rw-r--r--src/library/base/R/factor.R60
-rw-r--r--src/library/base/R/format.R2
-rw-r--r--src/library/base/R/getenv.R4
-rw-r--r--src/library/base/R/grep.R38
-rw-r--r--src/library/base/R/identical.R14
-rw-r--r--src/library/base/R/ifelse.R5
-rw-r--r--src/library/base/R/library.R55
-rw-r--r--src/library/base/R/load.R6
-rw-r--r--src/library/base/R/lower.tri.R24
-rw-r--r--src/library/base/R/mapply.R10
-rw-r--r--src/library/base/R/match.R7
-rw-r--r--src/library/base/R/matrix.R17
-rw-r--r--src/library/base/R/merge.R14
-rw-r--r--src/library/base/R/namespace.R55
-rw-r--r--src/library/base/R/octhex.R6
-rw-r--r--src/library/base/R/options.R4
-rw-r--r--src/library/base/R/print.R17
-rw-r--r--src/library/base/R/raw.R5
-rw-r--r--src/library/base/R/sapply.R2
-rw-r--r--src/library/base/R/scale.R26
-rw-r--r--src/library/base/R/serialize.R3
-rw-r--r--src/library/base/R/sort.R106
-rw-r--r--src/library/base/R/source.R168
-rw-r--r--src/library/base/R/srcfile.R5
-rw-r--r--src/library/base/R/stop.R43
-rw-r--r--src/library/base/R/structure.R4
-rw-r--r--src/library/base/R/table.R12
-rw-r--r--src/library/base/R/temp.R5
-rw-r--r--src/library/base/R/time.R3
-rw-r--r--src/library/base/R/unix/system.unix.R12
-rw-r--r--src/library/base/R/upper.tri.R24
-rw-r--r--src/library/base/R/version.R6
-rw-r--r--src/library/base/R/warnings.R62
-rw-r--r--src/library/base/R/windows/system.R57
-rw-r--r--src/library/base/R/zzz.R385
-rw-r--r--src/library/base/baseloader.R14
-rw-r--r--src/library/base/man/Arithmetic.Rd16
-rw-r--r--src/library/base/man/Bessel.Rd40
-rw-r--r--src/library/base/man/DateTimeClasses.Rd30
-rw-r--r--src/library/base/man/Dates.Rd22
-rw-r--r--src/library/base/man/Encoding.Rd10
-rw-r--r--src/library/base/man/EnvVar.Rd3
-rw-r--r--src/library/base/man/Logic.Rd39
-rw-r--r--src/library/base/man/Memory.Rd4
-rw-r--r--src/library/base/man/NA.Rd16
-rw-r--r--src/library/base/man/Random.Rd82
-rw-r--r--src/library/base/man/Reserved.Rd11
-rw-r--r--src/library/base/man/Round.Rd21
-rw-r--r--src/library/base/man/Sys.readlink.Rd8
-rw-r--r--src/library/base/man/Sys.setFileTime.Rd2
-rw-r--r--src/library/base/man/UseMethod.Rd9
-rw-r--r--src/library/base/man/Version.Rd13
-rw-r--r--src/library/base/man/as.Date.Rd25
-rw-r--r--src/library/base/man/as.POSIXlt.Rd26
-rw-r--r--src/library/base/man/as.data.frame.Rd15
-rw-r--r--src/library/base/man/attach.Rd4
-rw-r--r--src/library/base/man/attributes.Rd11
-rw-r--r--src/library/base/man/autoload.Rd2
-rw-r--r--src/library/base/man/base-internal.Rd33
-rw-r--r--src/library/base/man/call.Rd17
-rw-r--r--src/library/base/man/class.Rd26
-rw-r--r--src/library/base/man/col.Rd14
-rw-r--r--src/library/base/man/conditions.Rd12
-rw-r--r--src/library/base/man/connections.Rd70
-rw-r--r--src/library/base/man/data.frame.Rd2
-rw-r--r--src/library/base/man/dcf.Rd10
-rw-r--r--src/library/base/man/deparse.Rd13
-rw-r--r--src/library/base/man/deparseOpts.Rd91
-rw-r--r--src/library/base/man/diag.Rd13
-rw-r--r--src/library/base/man/difftime.Rd1
-rw-r--r--src/library/base/man/dots.Rd63
-rw-r--r--src/library/base/man/dput.Rd29
-rw-r--r--src/library/base/man/dump.Rd5
-rw-r--r--src/library/base/man/duplicated.Rd11
-rw-r--r--src/library/base/man/dynload.Rd28
-rw-r--r--src/library/base/man/factor.Rd20
-rw-r--r--src/library/base/man/files.Rd52
-rw-r--r--src/library/base/man/files2.Rd2
-rw-r--r--src/library/base/man/find.package.Rd17
-rw-r--r--src/library/base/man/gc.Rd9
-rw-r--r--src/library/base/man/getLoadedDLLs.Rd14
-rw-r--r--src/library/base/man/grep.Rd2
-rw-r--r--src/library/base/man/groupGeneric.Rd8
-rw-r--r--src/library/base/man/gzcon.Rd15
-rw-r--r--src/library/base/man/hexmode.Rd13
-rw-r--r--src/library/base/man/ifelse.Rd17
-rw-r--r--src/library/base/man/length.Rd2
-rw-r--r--src/library/base/man/library.dynam.Rd21
-rw-r--r--src/library/base/man/load.Rd19
-rw-r--r--src/library/base/man/lower.tri.Rd11
-rw-r--r--src/library/base/man/merge.Rd28
-rw-r--r--src/library/base/man/mode.Rd2
-rw-r--r--src/library/base/man/noquote.Rd17
-rw-r--r--src/library/base/man/ns-internal.Rd1
-rw-r--r--src/library/base/man/octmode.Rd13
-rw-r--r--src/library/base/man/on.exit.Rd13
-rw-r--r--src/library/base/man/options.Rd14
-rw-r--r--src/library/base/man/parse.Rd27
-rw-r--r--src/library/base/man/path.expand.Rd4
-rw-r--r--src/library/base/man/polyroot.Rd9
-rw-r--r--src/library/base/man/pretty.Rd8
-rw-r--r--src/library/base/man/print.Rd10
-rw-r--r--src/library/base/man/rank.Rd2
-rw-r--r--src/library/base/man/readBin.Rd16
-rw-r--r--src/library/base/man/readChar.Rd11
-rw-r--r--src/library/base/man/readLines.Rd25
-rw-r--r--src/library/base/man/readRDS.Rd30
-rw-r--r--src/library/base/man/regex.Rd2
-rw-r--r--src/library/base/man/round.POSIXt.Rd13
-rw-r--r--src/library/base/man/row.Rd16
-rw-r--r--src/library/base/man/row.names.Rd17
-rw-r--r--src/library/base/man/save.Rd23
-rw-r--r--src/library/base/man/scale.Rd14
-rw-r--r--src/library/base/man/serialize.Rd7
-rw-r--r--src/library/base/man/sort.Rd25
-rw-r--r--src/library/base/man/srcfile.Rd4
-rw-r--r--src/library/base/man/stopifnot.Rd64
-rw-r--r--src/library/base/man/sum.Rd16
-rw-r--r--src/library/base/man/svd.Rd12
-rw-r--r--src/library/base/man/system.Rd36
-rw-r--r--src/library/base/man/system2.Rd37
-rw-r--r--src/library/base/man/tapply.Rd4
-rw-r--r--src/library/base/man/tempfile.Rd25
-rw-r--r--src/library/base/man/timezones.Rd101
-rw-r--r--src/library/base/man/trace.Rd18
-rw-r--r--src/library/base/man/utf8Conversion.Rd69
-rw-r--r--src/library/base/man/warnings.Rd48
-rw-r--r--src/library/base/man/which.Rd4
-rw-r--r--src/library/base/man/with.Rd21
-rw-r--r--src/library/base/man/write.Rd13
-rw-r--r--src/library/base/man/zMachine.Rd7
-rw-r--r--src/library/base/po/R-base.pot138
-rw-r--r--src/library/base/po/R-da.po200
-rw-r--r--src/library/base/po/R-de.po313
-rw-r--r--src/library/base/po/R-fa.po152
-rw-r--r--src/library/base/po/R-fr.po209
-rw-r--r--src/library/base/po/R-it.po186
-rw-r--r--src/library/base/po/R-ja.po206
-rw-r--r--src/library/base/po/R-ko.po310
-rw-r--r--src/library/base/po/R-nn.po194
-rw-r--r--src/library/base/po/R-pl.po359
-rw-r--r--src/library/base/po/R-pt_BR.po200
-rw-r--r--src/library/base/po/R-ru.po486
-rw-r--r--src/library/base/po/R-tr.po154
-rw-r--r--src/library/base/po/R-zh_CN.po191
-rw-r--r--src/library/base/po/R.pot3538
-rw-r--r--src/library/base/po/RGui-da.po105
-rw-r--r--src/library/base/po/RGui-de.po136
-rw-r--r--src/library/base/po/RGui-es.po105
-rw-r--r--src/library/base/po/RGui-fa.po105
-rw-r--r--src/library/base/po/RGui-fr.po105
-rw-r--r--src/library/base/po/RGui-it.po105
-rw-r--r--src/library/base/po/RGui-ja.po105
-rw-r--r--src/library/base/po/RGui-ko.po151
-rw-r--r--src/library/base/po/RGui-nn.po105
-rw-r--r--src/library/base/po/RGui-pl.po239
-rw-r--r--src/library/base/po/RGui-pt_BR.po105
-rw-r--r--src/library/base/po/RGui-ru.po318
-rw-r--r--src/library/base/po/RGui-tr.po105
-rw-r--r--src/library/base/po/RGui-zh_CN.po105
-rw-r--r--src/library/base/po/RGui-zh_TW.po105
-rw-r--r--src/library/base/po/RGui.pot109
-rw-r--r--src/library/base/po/da.po3567
-rw-r--r--src/library/base/po/de.po4087
-rw-r--r--src/library/base/po/en.po3534
-rw-r--r--src/library/base/po/en_GB.po3534
-rw-r--r--src/library/base/po/es.po3641
-rw-r--r--src/library/base/po/fa.po3534
-rw-r--r--src/library/base/po/fr.po3639
-rw-r--r--src/library/base/po/it.po3612
-rw-r--r--src/library/base/po/ja.po3633
-rw-r--r--src/library/base/po/ko.po4149
-rw-r--r--src/library/base/po/nn.po3622
-rw-r--r--src/library/base/po/pl.po3673
-rw-r--r--src/library/base/po/pt_BR.po3623
-rw-r--r--src/library/base/po/ru.po5626
-rw-r--r--src/library/base/po/tr.po3624
-rw-r--r--src/library/base/po/zh_CN.po3626
-rw-r--r--src/library/base/po/zh_TW.po3628
-rw-r--r--src/library/compiler/Makefile.in3
-rw-r--r--src/library/compiler/R/cmp.R281
-rw-r--r--src/library/compiler/man/compile.Rd23
-rw-r--r--src/library/compiler/noweb/compiler.nw328
-rw-r--r--src/library/compiler/po/R-compiler.pot16
-rw-r--r--src/library/compiler/po/R-da.po17
-rw-r--r--src/library/compiler/po/R-de.po36
-rw-r--r--src/library/compiler/po/R-fr.po21
-rw-r--r--src/library/compiler/po/R-ja.po26
-rw-r--r--src/library/compiler/po/R-ko.po39
-rw-r--r--src/library/compiler/po/R-pl.po41
-rw-r--r--src/library/compiler/po/R-pt_BR.po20
-rw-r--r--src/library/compiler/po/R-ru.po40
-rw-r--r--src/library/compiler/po/R-zh_CN.po17
-rw-r--r--src/library/compiler/tests/curexpr.R3
-rw-r--r--src/library/datasets/data/ChickWeight.R1
-rw-r--r--src/library/datasets/man/HairEyeColor.Rd13
-rw-r--r--src/library/datasets/man/Nile.Rd20
-rw-r--r--src/library/datasets/man/Titanic.Rd2
-rw-r--r--src/library/datasets/man/ToothGrowth.Rd14
-rw-r--r--src/library/datasets/man/UCBAdmissions.Rd5
-rw-r--r--src/library/datasets/man/UKDriverDeaths.Rd21
-rw-r--r--src/library/datasets/man/ability.cov.Rd18
-rw-r--r--src/library/datasets/man/anscombe.Rd11
-rw-r--r--src/library/datasets/man/attenu.Rd26
-rw-r--r--src/library/datasets/man/crimtab.Rd18
-rw-r--r--src/library/datasets/man/faithful.Rd7
-rw-r--r--src/library/datasets/man/lynx.Rd20
-rw-r--r--src/library/datasets/man/mtcars.Rd17
-rw-r--r--src/library/datasets/man/treering.Rd7
-rw-r--r--src/library/grDevices/R/convertColor.R9
-rw-r--r--src/library/grDevices/R/postscript.R4
-rw-r--r--src/library/grDevices/R/raster.R2
-rw-r--r--src/library/grDevices/R/unix/quartz.R4
-rw-r--r--src/library/grDevices/R/unix/x11.R6
-rw-r--r--src/library/grDevices/R/windows/png.R2
-rw-r--r--src/library/grDevices/R/windows/windows.R4
-rw-r--r--src/library/grDevices/R/zzz.R2
-rw-r--r--src/library/grDevices/man/boxplot.stats.Rd29
-rw-r--r--src/library/grDevices/man/chull.Rd21
-rw-r--r--src/library/grDevices/man/nclass.Rd21
-rw-r--r--src/library/grDevices/man/pictex.Rd2
-rw-r--r--src/library/grDevices/man/plotmath.Rd8
-rw-r--r--src/library/grDevices/man/recordGraphics.Rd7
-rw-r--r--src/library/grDevices/man/unix/png.Rd7
-rw-r--r--src/library/grDevices/man/unix/savePlot.Rd2
-rw-r--r--src/library/grDevices/po/R-da.po5
-rw-r--r--src/library/grDevices/po/R-de.po17
-rw-r--r--src/library/grDevices/po/R-en_GB.po5
-rw-r--r--src/library/grDevices/po/R-fr.po5
-rw-r--r--src/library/grDevices/po/R-grDevices.pot7
-rw-r--r--src/library/grDevices/po/R-it.po5
-rw-r--r--src/library/grDevices/po/R-ja.po5
-rw-r--r--src/library/grDevices/po/R-ko.po66
-rw-r--r--src/library/grDevices/po/R-pl.po11
-rw-r--r--src/library/grDevices/po/R-pt_BR.po5
-rw-r--r--src/library/grDevices/po/R-ru.po46
-rw-r--r--src/library/grDevices/po/R-zh_CN.po5
-rw-r--r--src/library/grDevices/po/da.po291
-rw-r--r--src/library/grDevices/po/de.po298
-rw-r--r--src/library/grDevices/po/en_GB.po291
-rw-r--r--src/library/grDevices/po/fr.po291
-rw-r--r--src/library/grDevices/po/grDevices.pot295
-rw-r--r--src/library/grDevices/po/it.po291
-rw-r--r--src/library/grDevices/po/ja.po291
-rw-r--r--src/library/grDevices/po/ko.po362
-rw-r--r--src/library/grDevices/po/pl.po299
-rw-r--r--src/library/grDevices/po/pt_BR.po291
-rw-r--r--src/library/grDevices/po/ru.po475
-rw-r--r--src/library/grDevices/po/zh_CN.po291
-rw-r--r--src/library/grDevices/src/Makefile.in2
-rw-r--r--src/library/grDevices/src/cairo/Makefile.in2
-rw-r--r--src/library/grDevices/src/cairo/cairoBM.c5
-rw-r--r--src/library/grDevices/src/colors.c2
-rw-r--r--src/library/grDevices/src/devCairo.c2
-rw-r--r--src/library/grDevices/src/devPS.c69
-rw-r--r--src/library/grDevices/src/devWindows.c15
-rw-r--r--src/library/grDevices/src/devWindows.h2
-rw-r--r--src/library/grDevices/src/winbitmap.h2
-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/arrows.R2
-rw-r--r--src/library/graphics/R/curve.R4
-rw-r--r--src/library/graphics/R/datetime.R12
-rw-r--r--src/library/graphics/R/layout.R1
-rw-r--r--src/library/graphics/R/matplot.R7
-rw-r--r--src/library/graphics/R/plot.R2
-rw-r--r--src/library/graphics/R/polygon.R6
-rw-r--r--src/library/graphics/man/assocplot.Rd17
-rw-r--r--src/library/graphics/man/axis.Rd5
-rw-r--r--src/library/graphics/man/boxplot.Rd13
-rw-r--r--src/library/graphics/man/identify.Rd18
-rw-r--r--src/library/graphics/man/layout.Rd10
-rw-r--r--src/library/graphics/man/locator.Rd4
-rw-r--r--src/library/graphics/man/matplot.Rd9
-rw-r--r--src/library/graphics/man/mosaicplot.Rd26
-rw-r--r--src/library/graphics/man/screen.Rd28
-rw-r--r--src/library/graphics/man/spineplot.Rd18
-rw-r--r--src/library/graphics/man/sunflowerplot.Rd14
-rw-r--r--src/library/graphics/po/R-da.po13
-rw-r--r--src/library/graphics/po/R-de.po20
-rw-r--r--src/library/graphics/po/R-fr.po13
-rw-r--r--src/library/graphics/po/R-graphics.pot13
-rw-r--r--src/library/graphics/po/R-it.po13
-rw-r--r--src/library/graphics/po/R-ja.po13
-rw-r--r--src/library/graphics/po/R-ko.po48
-rw-r--r--src/library/graphics/po/R-pl.po27
-rw-r--r--src/library/graphics/po/R-pt_BR.po13
-rw-r--r--src/library/graphics/po/R-ru.po61
-rw-r--r--src/library/graphics/po/R-zh_CN.po13
-rw-r--r--src/library/graphics/po/da.po22
-rw-r--r--src/library/graphics/po/de.po29
-rw-r--r--src/library/graphics/po/es.po22
-rw-r--r--src/library/graphics/po/fr.po22
-rw-r--r--src/library/graphics/po/graphics.pot26
-rw-r--r--src/library/graphics/po/it.po22
-rw-r--r--src/library/graphics/po/ja.po22
-rw-r--r--src/library/graphics/po/ko.po43
-rw-r--r--src/library/graphics/po/nn.po22
-rw-r--r--src/library/graphics/po/pl.po28
-rw-r--r--src/library/graphics/po/pt_BR.po22
-rw-r--r--src/library/graphics/po/ru.po171
-rw-r--r--src/library/graphics/po/tr.po22
-rw-r--r--src/library/graphics/po/zh_CN.po22
-rw-r--r--src/library/graphics/po/zh_TW.po22
-rw-r--r--src/library/graphics/src/Makefile.in2
-rw-r--r--src/library/graphics/src/stem.c9
-rw-r--r--src/library/grid/NAMESPACE3
-rw-r--r--src/library/grid/R/grab.R15
-rw-r--r--src/library/grid/R/primitives.R6
-rw-r--r--src/library/grid/R/unit.R6
-rw-r--r--src/library/grid/inst/doc/changes.txt4
-rw-r--r--src/library/grid/inst/doc/displaylist.pdfbin157209 -> 157398 bytes
-rw-r--r--src/library/grid/inst/doc/frame.pdfbin155828 -> 155985 bytes
-rw-r--r--src/library/grid/inst/doc/grid.pdfbin251717 -> 251768 bytes
-rw-r--r--src/library/grid/inst/doc/grobs.pdfbin106986 -> 107171 bytes
-rw-r--r--src/library/grid/inst/doc/interactive.pdfbin90681 -> 90874 bytes
-rw-r--r--src/library/grid/inst/doc/locndimn.pdfbin89340 -> 89525 bytes
-rw-r--r--src/library/grid/inst/doc/moveline.pdfbin87093 -> 87274 bytes
-rw-r--r--src/library/grid/inst/doc/nonfinite.pdfbin79328 -> 79511 bytes
-rw-r--r--src/library/grid/inst/doc/plotexample.pdfbin223327 -> 223774 bytes
-rw-r--r--src/library/grid/inst/doc/rotated.pdfbin121612 -> 121877 bytes
-rw-r--r--src/library/grid/inst/doc/saveload.pdfbin133706 -> 133884 bytes
-rw-r--r--src/library/grid/inst/doc/sharing.pdfbin70649 -> 70839 bytes
-rw-r--r--src/library/grid/inst/doc/viewports.pdfbin162857 -> 163124 bytes
-rw-r--r--src/library/grid/man/grid-package.Rd6
-rw-r--r--src/library/grid/man/grid.grab.Rd10
-rw-r--r--src/library/grid/man/grid.layout.Rd12
-rw-r--r--src/library/grid/man/grid.locator.Rd13
-rw-r--r--src/library/grid/man/grid.remove.Rd26
-rw-r--r--src/library/grid/man/grid.text.Rd8
-rw-r--r--src/library/grid/po/R-da.po5
-rw-r--r--src/library/grid/po/R-de.po30
-rw-r--r--src/library/grid/po/R-fr.po5
-rw-r--r--src/library/grid/po/R-grid.pot7
-rw-r--r--src/library/grid/po/R-ja.po5
-rw-r--r--src/library/grid/po/R-ko.po82
-rw-r--r--src/library/grid/po/R-pl.po11
-rw-r--r--src/library/grid/po/R-pt_BR.po5
-rw-r--r--src/library/grid/po/R-ru.po82
-rw-r--r--src/library/grid/po/R-zh_CN.po5
-rw-r--r--src/library/grid/po/grid.pot6
-rw-r--r--src/library/grid/po/ko.po27
-rw-r--r--src/library/grid/po/pl.po4
-rw-r--r--src/library/grid/po/ru.po43
-rw-r--r--src/library/grid/src/Makefile.in2
-rw-r--r--src/library/grid/tests/testls.Rout.save4
-rw-r--r--src/library/methods/R/BasicClasses.R2
-rw-r--r--src/library/methods/R/BasicFunsList.R2
-rw-r--r--src/library/methods/R/ClassUnion.R2
-rw-r--r--src/library/methods/R/Defunct.R9
-rw-r--r--src/library/methods/R/Methods.R16
-rw-r--r--src/library/methods/R/MethodsList.R21
-rw-r--r--src/library/methods/R/MethodsListClass.R13
-rw-r--r--src/library/methods/R/RClassUtils.R57
-rw-r--r--src/library/methods/R/RMethodUtils.R26
-rw-r--r--src/library/methods/R/SClasses.R12
-rw-r--r--src/library/methods/R/as.R14
-rw-r--r--src/library/methods/R/cbind.R87
-rw-r--r--src/library/methods/R/debug.R2
-rw-r--r--src/library/methods/R/is.R8
-rw-r--r--src/library/methods/R/makeBasicFunsList.R13
-rw-r--r--src/library/methods/R/method.skeleton.R2
-rw-r--r--src/library/methods/R/methodsTable.R26
-rw-r--r--src/library/methods/R/rbind.R55
-rw-r--r--src/library/methods/R/refClass.R7
-rw-r--r--src/library/methods/R/trace.R16
-rw-r--r--src/library/methods/R/zzz.R13
-rw-r--r--src/library/methods/man/cbind2.Rd24
-rw-r--r--src/library/methods/man/dotsMethods.Rd2
-rw-r--r--src/library/methods/man/inheritedSlotNames.Rd17
-rw-r--r--src/library/methods/po/R-da.po12
-rw-r--r--src/library/methods/po/R-de.po113
-rw-r--r--src/library/methods/po/R-fr.po13
-rw-r--r--src/library/methods/po/R-ja.po13
-rw-r--r--src/library/methods/po/R-ko.po108
-rw-r--r--src/library/methods/po/R-methods.pot12
-rw-r--r--src/library/methods/po/R-pl.po44
-rw-r--r--src/library/methods/po/R-pt_BR.po12
-rw-r--r--src/library/methods/po/R-ru.po1449
-rw-r--r--src/library/methods/po/R-zh_CN.po13
-rw-r--r--src/library/methods/po/da.po54
-rw-r--r--src/library/methods/po/de.po54
-rw-r--r--src/library/methods/po/fr.po54
-rw-r--r--src/library/methods/po/ja.po54
-rw-r--r--src/library/methods/po/ko.po82
-rw-r--r--src/library/methods/po/methods.pot58
-rw-r--r--src/library/methods/po/pl.po58
-rw-r--r--src/library/methods/po/pt_BR.po54
-rw-r--r--src/library/methods/po/ru.po176
-rw-r--r--src/library/methods/po/zh_CN.po54
-rw-r--r--src/library/methods/src/Makefile.in2
-rw-r--r--src/library/methods/src/methods_list_dispatch.c16
-rw-r--r--src/library/methods/tests/namesAndSlots.R5
-rw-r--r--src/library/parallel/NAMESPACE1
-rw-r--r--src/library/parallel/R/clusterApply.R65
-rw-r--r--src/library/parallel/R/snow.R17
-rw-r--r--src/library/parallel/R/snowSOCK.R43
-rw-r--r--src/library/parallel/R/unix/forkCluster.R6
-rw-r--r--src/library/parallel/R/unix/mcfork.R41
-rw-r--r--src/library/parallel/R/unix/mclapply.R129
-rw-r--r--src/library/parallel/R/unix/mcmapply.R19
-rw-r--r--src/library/parallel/R/unix/mcparallel.R15
-rw-r--r--src/library/parallel/R/unix/pvec.R18
-rw-r--r--src/library/parallel/R/windows/mcdummies.R6
-rw-r--r--src/library/parallel/inst/doc/parallel.pdfbin290944 -> 295878 bytes
-rw-r--r--src/library/parallel/man/RngStream.Rd16
-rw-r--r--src/library/parallel/man/clusterApply.Rd55
-rw-r--r--src/library/parallel/man/detectCores.Rd4
-rw-r--r--src/library/parallel/man/makeCluster.Rd21
-rw-r--r--src/library/parallel/man/unix/mclapply.Rd57
-rw-r--r--src/library/parallel/man/unix/mcparallel.Rd13
-rw-r--r--src/library/parallel/man/windows/mcdummies.Rd6
-rw-r--r--src/library/parallel/po/R-da.po11
-rw-r--r--src/library/parallel/po/R-de.po24
-rw-r--r--src/library/parallel/po/R-fr.po11
-rw-r--r--src/library/parallel/po/R-ko.po35
-rw-r--r--src/library/parallel/po/R-parallel.pot12
-rw-r--r--src/library/parallel/po/R-pl.po26
-rw-r--r--src/library/parallel/po/R-ru.po46
-rw-r--r--src/library/parallel/po/R-zh_CN.po11
-rw-r--r--src/library/parallel/po/da.po68
-rw-r--r--src/library/parallel/po/de.po74
-rw-r--r--src/library/parallel/po/fr.po68
-rw-r--r--src/library/parallel/po/ko.po97
-rw-r--r--src/library/parallel/po/parallel.pot70
-rw-r--r--src/library/parallel/po/pl.po74
-rw-r--r--src/library/parallel/po/ru.po84
-rw-r--r--src/library/parallel/po/zh_CN.po68
-rw-r--r--src/library/parallel/src/Makefile.in2
-rw-r--r--src/library/parallel/src/fork.c817
-rw-r--r--src/library/parallel/src/init.c2
-rw-r--r--src/library/parallel/src/parallel.h2
-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.Rnw112
-rw-r--r--src/library/splines/R/splineClasses.R101
-rw-r--r--src/library/splines/R/splines.R28
-rw-r--r--src/library/splines/man/bs.Rd7
-rw-r--r--src/library/splines/man/interpSpline.Rd7
-rw-r--r--src/library/splines/man/ns.Rd9
-rw-r--r--src/library/splines/man/periodicSpline.Rd4
-rw-r--r--src/library/splines/po/R-da.po9
-rw-r--r--src/library/splines/po/R-de.po17
-rw-r--r--src/library/splines/po/R-fr.po9
-rw-r--r--src/library/splines/po/R-ja.po9
-rw-r--r--src/library/splines/po/R-ko.po40
-rw-r--r--src/library/splines/po/R-pl.po18
-rw-r--r--src/library/splines/po/R-pt_BR.po9
-rw-r--r--src/library/splines/po/R-ru.po29
-rw-r--r--src/library/splines/po/R-splines.pot10
-rw-r--r--src/library/splines/po/R-zh_CN.po9
-rw-r--r--src/library/splines/po/da.po14
-rw-r--r--src/library/splines/po/de.po18
-rw-r--r--src/library/splines/po/fr.po14
-rw-r--r--src/library/splines/po/ja.po14
-rw-r--r--src/library/splines/po/ko.po35
-rw-r--r--src/library/splines/po/pl.po19
-rw-r--r--src/library/splines/po/pt_BR.po14
-rw-r--r--src/library/splines/po/ru.po23
-rw-r--r--src/library/splines/po/splines.pot18
-rw-r--r--src/library/splines/po/zh_CN.po14
-rw-r--r--src/library/splines/src/Makefile.in2
-rw-r--r--src/library/splines/src/splines.c1
-rw-r--r--src/library/splines/tests/spline-tst.R53
-rw-r--r--src/library/stats/NAMESPACE6
-rw-r--r--src/library/stats/R/aggregate.R35
-rw-r--r--src/library/stats/R/anova.R6
-rw-r--r--src/library/stats/R/aov.R22
-rw-r--r--src/library/stats/R/approx.R6
-rw-r--r--src/library/stats/R/ar.R102
-rw-r--r--src/library/stats/R/contr.poly.R9
-rw-r--r--src/library/stats/R/fisher.test.R15
-rw-r--r--src/library/stats/R/friedman.test.R4
-rw-r--r--src/library/stats/R/glm.R14
-rw-r--r--src/library/stats/R/lm.R4
-rw-r--r--src/library/stats/R/loess.R4
-rw-r--r--src/library/stats/R/lsfit.R12
-rw-r--r--src/library/stats/R/mahalanobis.R2
-rw-r--r--src/library/stats/R/mlm.R8
-rw-r--r--src/library/stats/R/models.R31
-rw-r--r--src/library/stats/R/nls.R4
-rw-r--r--src/library/stats/R/optim.R6
-rw-r--r--src/library/stats/R/pairwise.R2
-rw-r--r--src/library/stats/R/princomp.R14
-rw-r--r--src/library/stats/R/relevel.R6
-rw-r--r--src/library/stats/R/selfStart.R42
-rw-r--r--src/library/stats/R/spline.R2
-rw-r--r--src/library/stats/R/splinefun.R2
-rw-r--r--src/library/stats/R/tukeyline.R7
-rw-r--r--src/library/stats/R/update.R4
-rw-r--r--src/library/stats/R/vcov.R39
-rw-r--r--src/library/stats/R/zzModels.R174
-rw-r--r--src/library/stats/R/zzz.R9
-rw-r--r--src/library/stats/demo/nlm.R47
-rw-r--r--src/library/stats/man/GammaDist.Rd11
-rw-r--r--src/library/stats/man/HoltWinters.Rd9
-rw-r--r--src/library/stats/man/KalmanLike.Rd18
-rw-r--r--src/library/stats/man/SSasymp.Rd65
-rw-r--r--src/library/stats/man/SSasympOff.Rd51
-rw-r--r--src/library/stats/man/SSasympOrig.Rd49
-rw-r--r--src/library/stats/man/SSfol.Rd11
-rw-r--r--src/library/stats/man/SSfpl.Rd57
-rw-r--r--src/library/stats/man/SSgompertz.Rd15
-rw-r--r--src/library/stats/man/SSlogis.Rd54
-rw-r--r--src/library/stats/man/SSmicmen.Rd38
-rw-r--r--src/library/stats/man/SSweibull.Rd14
-rw-r--r--src/library/stats/man/Tukey.Rd18
-rw-r--r--src/library/stats/man/aggregate.Rd5
-rw-r--r--src/library/stats/man/alias.Rd6
-rw-r--r--src/library/stats/man/ansari.test.Rd13
-rw-r--r--src/library/stats/man/approxfun.Rd9
-rw-r--r--src/library/stats/man/ar.Rd66
-rw-r--r--src/library/stats/man/arima.Rd43
-rw-r--r--src/library/stats/man/arima0.Rd46
-rw-r--r--src/library/stats/man/bandwidth.Rd11
-rw-r--r--src/library/stats/man/bartlett.test.Rd3
-rw-r--r--src/library/stats/man/binom.test.Rd3
-rw-r--r--src/library/stats/man/biplot.Rd14
-rw-r--r--src/library/stats/man/biplot.princomp.Rd4
-rw-r--r--src/library/stats/man/birthday.Rd8
-rw-r--r--src/library/stats/man/box.test.Rd6
-rw-r--r--src/library/stats/man/cancor.Rd8
-rw-r--r--src/library/stats/man/chisq.test.Rd19
-rw-r--r--src/library/stats/man/cmdscale.Rd29
-rw-r--r--src/library/stats/man/coef.Rd28
-rw-r--r--src/library/stats/man/cor.Rd16
-rw-r--r--src/library/stats/man/cor.test.Rd5
-rw-r--r--src/library/stats/man/density.Rd16
-rw-r--r--src/library/stats/man/dist.Rd14
-rw-r--r--src/library/stats/man/factanal.Rd25
-rw-r--r--src/library/stats/man/fft.Rd12
-rw-r--r--src/library/stats/man/fisher.test.Rd116
-rw-r--r--src/library/stats/man/fligner.test.Rd5
-rw-r--r--src/library/stats/man/getInitial.Rd8
-rw-r--r--src/library/stats/man/glm.Rd12
-rw-r--r--src/library/stats/man/hclust.Rd8
-rw-r--r--src/library/stats/man/influence.measures.Rd21
-rw-r--r--src/library/stats/man/kmeans.Rd33
-rw-r--r--src/library/stats/man/ks.test.Rd17
-rw-r--r--src/library/stats/man/line.Rd50
-rw-r--r--src/library/stats/man/lm.Rd21
-rw-r--r--src/library/stats/man/logLik.Rd3
-rw-r--r--src/library/stats/man/loglin.Rd11
-rw-r--r--src/library/stats/man/lowess.Rd16
-rw-r--r--src/library/stats/man/model.frame.Rd6
-rw-r--r--src/library/stats/man/mood.test.Rd5
-rw-r--r--src/library/stats/man/nlm.Rd19
-rw-r--r--src/library/stats/man/nls.Rd9
-rw-r--r--src/library/stats/man/oneway.test.Rd5
-rw-r--r--src/library/stats/man/optim.Rd65
-rw-r--r--src/library/stats/man/p.adjust.Rd36
-rw-r--r--src/library/stats/man/pairwise.table.Rd12
-rw-r--r--src/library/stats/man/plot.HoltWinters.Rd9
-rw-r--r--src/library/stats/man/plot.lm.Rd29
-rw-r--r--src/library/stats/man/poly.Rd6
-rw-r--r--src/library/stats/man/pp.test.Rd14
-rw-r--r--src/library/stats/man/ppr.Rd12
-rw-r--r--src/library/stats/man/predict.HoltWinters.Rd9
-rw-r--r--src/library/stats/man/predict.arima.Rd21
-rw-r--r--src/library/stats/man/princomp.Rd12
-rw-r--r--src/library/stats/man/printCoefmat.Rd6
-rw-r--r--src/library/stats/man/prop.test.Rd26
-rw-r--r--src/library/stats/man/quantile.Rd1
-rw-r--r--src/library/stats/man/r2dtable.Rd9
-rw-r--r--src/library/stats/man/runmed.Rd5
-rw-r--r--src/library/stats/man/selfStart.Rd69
-rw-r--r--src/library/stats/man/shapiro.test.Rd14
-rw-r--r--src/library/stats/man/smooth.spline.Rd15
-rw-r--r--src/library/stats/man/spec.ar.Rd9
-rw-r--r--src/library/stats/man/splinefun.Rd30
-rw-r--r--src/library/stats/man/varimax.Rd26
-rw-r--r--src/library/stats/man/vcov.Rd53
-rw-r--r--src/library/stats/man/wilcox.test.Rd9
-rw-r--r--src/library/stats/man/xtabs.Rd6
-rw-r--r--src/library/stats/po/R-da.po84
-rw-r--r--src/library/stats/po/R-de.po160
-rw-r--r--src/library/stats/po/R-fr.po108
-rw-r--r--src/library/stats/po/R-it.po106
-rw-r--r--src/library/stats/po/R-ja.po108
-rw-r--r--src/library/stats/po/R-ko.po186
-rw-r--r--src/library/stats/po/R-pl.po229
-rw-r--r--src/library/stats/po/R-pt_BR.po100
-rw-r--r--src/library/stats/po/R-ru.po529
-rw-r--r--src/library/stats/po/R-stats.pot81
-rw-r--r--src/library/stats/po/R-tr.po101
-rw-r--r--src/library/stats/po/R-zh_CN.po108
-rw-r--r--src/library/stats/po/da.po130
-rw-r--r--src/library/stats/po/de.po294
-rw-r--r--src/library/stats/po/fr.po130
-rw-r--r--src/library/stats/po/it.po130
-rw-r--r--src/library/stats/po/ja.po130
-rw-r--r--src/library/stats/po/ko.po185
-rw-r--r--src/library/stats/po/pl.po153
-rw-r--r--src/library/stats/po/pt_BR.po130
-rw-r--r--src/library/stats/po/ru.po432
-rw-r--r--src/library/stats/po/stats.pot134
-rw-r--r--src/library/stats/po/zh_CN.po130
-rw-r--r--src/library/stats/src/Makefile.in2
-rw-r--r--src/library/stats/src/approx.c52
-rw-r--r--src/library/stats/src/distance.c11
-rw-r--r--src/library/stats/src/distn.c7
-rw-r--r--src/library/stats/src/fexact.c603
-rw-r--r--src/library/stats/src/init.c2
-rw-r--r--src/library/stats/src/line.c87
-rw-r--r--src/library/stats/src/lowess.c2
-rw-r--r--src/library/stats/src/model.c4
-rw-r--r--src/library/stats/src/optim.c6
-rw-r--r--src/library/stats/src/optimize.c6
-rw-r--r--src/library/stats/src/sbart.c6
-rw-r--r--src/library/stats/src/sinerp.f20
-rw-r--r--src/library/stats/src/splines.c116
-rw-r--r--src/library/stats/src/statsR.h2
-rw-r--r--src/library/stats/tests/bandwidth.Rout.save4
-rw-r--r--src/library/stats/tests/glm-etc.R19
-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/nlm.R106
-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/stats/tests/smooth.spline.R52
-rw-r--r--src/library/stats4/po/R-ko.po41
-rw-r--r--src/library/stats4/po/R-pl.po6
-rw-r--r--src/library/stats4/po/R-ru.po4
-rw-r--r--src/library/stats4/po/R-stats4.pot4
-rw-r--r--src/library/tcltk/po/R-ko.po21
-rw-r--r--src/library/tcltk/po/R-pl.po6
-rw-r--r--src/library/tcltk/po/R-ru.po5
-rw-r--r--src/library/tcltk/po/R-tcltk.pot4
-rw-r--r--src/library/tcltk/po/ko.po23
-rw-r--r--src/library/tcltk/po/pl.po4
-rw-r--r--src/library/tcltk/po/ru.po28
-rw-r--r--src/library/tcltk/po/tcltk.pot6
-rw-r--r--src/library/tcltk/src/Makefile.in2
-rw-r--r--src/library/tools/Makefile.in3
-rw-r--r--src/library/tools/NAMESPACE6
-rw-r--r--src/library/tools/R/CRANtools.R16
-rw-r--r--src/library/tools/R/QC.R396
-rw-r--r--src/library/tools/R/Rd.R15
-rw-r--r--src/library/tools/R/Rd2HTML.R6
-rw-r--r--src/library/tools/R/Rd2latex.R2
-rw-r--r--src/library/tools/R/Rd2pdf.R61
-rw-r--r--src/library/tools/R/Rd2txt.R2
-rw-r--r--src/library/tools/R/RdConv2.R20
-rw-r--r--src/library/tools/R/RdHelpers.R35
-rw-r--r--src/library/tools/R/Rdtools.R2
-rw-r--r--src/library/tools/R/Rprof.R11
-rw-r--r--src/library/tools/R/Vignettes.R2
-rw-r--r--src/library/tools/R/admin.R31
-rw-r--r--src/library/tools/R/bibstyle.R12
-rw-r--r--src/library/tools/R/build.R45
-rw-r--r--src/library/tools/R/check.R1027
-rw-r--r--src/library/tools/R/checktools.R84
-rw-r--r--src/library/tools/R/dynamicHelp.R34
-rw-r--r--src/library/tools/R/index.R6
-rw-r--r--src/library/tools/R/install.R108
-rw-r--r--src/library/tools/R/license.R43
-rw-r--r--src/library/tools/R/makeLazyLoad.R2
-rw-r--r--src/library/tools/R/md5.R2
-rw-r--r--src/library/tools/R/news.R10
-rw-r--r--src/library/tools/R/packages.R4
-rw-r--r--src/library/tools/R/parseLatex.R7
-rw-r--r--src/library/tools/R/pdftools.R2
-rw-r--r--src/library/tools/R/sotools.R17
-rw-r--r--src/library/tools/R/sysdata.rdabin5670 -> 6553 bytes
-rw-r--r--src/library/tools/R/testing.R61
-rw-r--r--src/library/tools/R/toHTML.R130
-rw-r--r--src/library/tools/R/translations.R13
-rw-r--r--src/library/tools/R/urltools.R116
-rw-r--r--src/library/tools/R/utils.R121
-rw-r--r--src/library/tools/R/xgettext.R26
-rw-r--r--src/library/tools/man/HTMLheader.Rd4
-rw-r--r--src/library/tools/man/Rd2txt_options.Rd4
-rw-r--r--src/library/tools/man/RdTextFilter.Rd4
-rw-r--r--src/library/tools/man/SweaveTeXFilter.Rd4
-rw-r--r--src/library/tools/man/bibstyle.Rd4
-rw-r--r--src/library/tools/man/buildVignette.Rd2
-rw-r--r--src/library/tools/man/charsets.Rd7
-rw-r--r--src/library/tools/man/checkPoFiles.Rd4
-rw-r--r--src/library/tools/man/checkRdaFiles.Rd8
-rw-r--r--src/library/tools/man/check_packages_in_dir.Rd13
-rw-r--r--src/library/tools/man/getVignetteInfo.Rd4
-rw-r--r--src/library/tools/man/loadRdMacros.Rd7
-rw-r--r--src/library/tools/man/make_translations_pkg.Rd4
-rw-r--r--src/library/tools/man/parseLatex.Rd4
-rw-r--r--src/library/tools/man/parse_Rd.Rd26
-rw-r--r--src/library/tools/man/toHTML.Rd4
-rw-r--r--src/library/tools/man/toRd.Rd4
-rw-r--r--src/library/tools/man/writePACKAGES.Rd2
-rw-r--r--src/library/tools/po/R-da.po120
-rw-r--r--src/library/tools/po/R-de.po169
-rw-r--r--src/library/tools/po/R-fr.po154
-rw-r--r--src/library/tools/po/R-it.po130
-rw-r--r--src/library/tools/po/R-ja.po157
-rw-r--r--src/library/tools/po/R-ko.po185
-rw-r--r--src/library/tools/po/R-pl.po205
-rw-r--r--src/library/tools/po/R-pt_BR.po122
-rw-r--r--src/library/tools/po/R-ru.po614
-rw-r--r--src/library/tools/po/R-tools.pot121
-rw-r--r--src/library/tools/po/R-tr.po119
-rw-r--r--src/library/tools/po/R-zh_CN.po151
-rw-r--r--src/library/tools/po/da.po38
-rw-r--r--src/library/tools/po/de.po38
-rw-r--r--src/library/tools/po/fr.po38
-rw-r--r--src/library/tools/po/it.po38
-rw-r--r--src/library/tools/po/ja.po38
-rw-r--r--src/library/tools/po/ko.po59
-rw-r--r--src/library/tools/po/pl.po42
-rw-r--r--src/library/tools/po/pt_BR.po38
-rw-r--r--src/library/tools/po/ru.po71
-rw-r--r--src/library/tools/po/tools.pot42
-rw-r--r--src/library/tools/po/zh_CN.po38
-rw-r--r--src/library/tools/src/Makefile.in2
-rw-r--r--src/library/tools/src/gramLatex.c2
-rw-r--r--src/library/tools/src/gramLatex.y2
-rw-r--r--src/library/tools/src/gramRd.c2
-rw-r--r--src/library/tools/src/gramRd.y2
-rw-r--r--src/library/tools/src/signals.c13
-rw-r--r--src/library/tools/src/text.c6
-rw-r--r--src/library/translations/Makefile.in2
-rw-r--r--src/library/translations/Makefile.win2
-rw-r--r--src/library/translations/inst/da/LC_MESSAGES/RGui.mobin20034 -> 20034 bytes
-rw-r--r--src/library/translations/inst/de/LC_MESSAGES/RGui.mobin20406 -> 20402 bytes
-rw-r--r--src/library/translations/inst/es/LC_MESSAGES/RGui.mobin20799 -> 20799 bytes
-rw-r--r--src/library/translations/inst/fa/LC_MESSAGES/RGui.mobin26917 -> 26917 bytes
-rw-r--r--src/library/translations/inst/fr/LC_MESSAGES/RGui.mobin21274 -> 21274 bytes
-rw-r--r--src/library/translations/inst/it/LC_MESSAGES/RGui.mobin18580 -> 18580 bytes
-rw-r--r--src/library/translations/inst/ja/LC_MESSAGES/RGui.mobin23920 -> 23920 bytes
-rw-r--r--src/library/translations/inst/ko/LC_MESSAGES/RGui.mobin22901 -> 23304 bytes
-rw-r--r--src/library/translations/inst/nn/LC_MESSAGES/RGui.mobin20215 -> 20215 bytes
-rw-r--r--src/library/translations/inst/pl/LC_MESSAGES/RGui.mobin20885 -> 20979 bytes
-rw-r--r--src/library/translations/inst/pt_BR/LC_MESSAGES/RGui.mobin20729 -> 20729 bytes
-rw-r--r--src/library/translations/inst/ru/LC_MESSAGES/RGui.mobin20225 -> 20225 bytes
-rw-r--r--src/library/translations/inst/tr/LC_MESSAGES/RGui.mobin20684 -> 20684 bytes
-rw-r--r--src/library/translations/inst/zh_CN/LC_MESSAGES/RGui.mobin17418 -> 17418 bytes
-rw-r--r--src/library/translations/inst/zh_TW/LC_MESSAGES/RGui.mobin17721 -> 17721 bytes
-rw-r--r--src/library/utils/DESCRIPTION.in2
-rw-r--r--src/library/utils/NAMESPACE17
-rw-r--r--src/library/utils/R/SweaveDrivers.R6
-rw-r--r--src/library/utils/R/adist.R6
-rw-r--r--src/library/utils/R/askYesNo.R44
-rw-r--r--src/library/utils/R/aspell.R73
-rw-r--r--src/library/utils/R/citation.R79
-rw-r--r--src/library/utils/R/completion.R7
-rw-r--r--src/library/utils/R/debugger.R2
-rw-r--r--src/library/utils/R/frametools.R9
-rw-r--r--src/library/utils/R/help.R3
-rw-r--r--src/library/utils/R/help.request.R88
-rw-r--r--src/library/utils/R/help.search.R8
-rw-r--r--src/library/utils/R/indices.R56
-rw-r--r--src/library/utils/R/modifyList.R33
-rw-r--r--src/library/utils/R/package.skeleton.R6
-rw-r--r--src/library/utils/R/packageStatus.R21
-rw-r--r--src/library/utils/R/packages.R142
-rw-r--r--src/library/utils/R/packages2.R90
-rw-r--r--src/library/utils/R/question.R4
-rw-r--r--src/library/utils/R/read.fwf.R22
-rw-r--r--src/library/utils/R/readtable.R25
-rw-r--r--src/library/utils/R/sessionInfo.R30
-rw-r--r--src/library/utils/R/str.R119
-rw-r--r--src/library/utils/R/summRprof.R4
-rw-r--r--src/library/utils/R/sysdata.R21
-rw-r--r--src/library/utils/R/sysdata.rdabin14324 -> 14343 bytes
-rw-r--r--src/library/utils/R/tar.R30
-rw-r--r--src/library/utils/R/unix/create.post.R7
-rw-r--r--src/library/utils/R/unix/download.file.R2
-rw-r--r--src/library/utils/R/unix/mac.install.R4
-rw-r--r--src/library/utils/R/widgets.R4
-rw-r--r--src/library/utils/R/windows/download.file.R2
-rw-r--r--src/library/utils/R/windows/install.packages.R10
-rw-r--r--src/library/utils/R/windows/winDialog.R13
-rw-r--r--src/library/utils/R/write.table.R4
-rw-r--r--src/library/utils/R/zzz.R8
-rw-r--r--src/library/utils/inst/doc/Sweave.pdfbin321938 -> 322197 bytes
-rw-r--r--src/library/utils/man/INSTALL.Rd4
-rw-r--r--src/library/utils/man/Rscript.Rd12
-rw-r--r--src/library/utils/man/RweaveLatex.Rd32
-rw-r--r--src/library/utils/man/Sweave.Rd16
-rw-r--r--src/library/utils/man/SweaveSyntConv.Rd5
-rw-r--r--src/library/utils/man/askYesNo.Rd64
-rw-r--r--src/library/utils/man/aspell.Rd8
-rw-r--r--src/library/utils/man/available.packages.Rd26
-rw-r--r--src/library/utils/man/bibentry.Rd26
-rw-r--r--src/library/utils/man/changedFiles.Rd4
-rw-r--r--src/library/utils/man/chooseBioCmirror.Rd6
-rw-r--r--src/library/utils/man/chooseCRANmirror.Rd11
-rw-r--r--src/library/utils/man/cite.Rd4
-rw-r--r--src/library/utils/man/count.fields.Rd9
-rw-r--r--src/library/utils/man/download.file.Rd4
-rw-r--r--src/library/utils/man/download.packages.Rd6
-rw-r--r--src/library/utils/man/findLineNum.Rd2
-rw-r--r--src/library/utils/man/flush.console.Rd2
-rw-r--r--src/library/utils/man/getFromNamespace.Rd2
-rw-r--r--src/library/utils/man/getParseData.Rd4
-rw-r--r--src/library/utils/man/hasName.Rd2
-rw-r--r--src/library/utils/man/head.Rd8
-rw-r--r--src/library/utils/man/install.packages.Rd24
-rw-r--r--src/library/utils/man/installed.packages.Rd27
-rw-r--r--src/library/utils/man/isS3stdGen.Rd2
-rw-r--r--src/library/utils/man/object.size.Rd3
-rw-r--r--src/library/utils/man/package.skeleton.Rd7
-rw-r--r--src/library/utils/man/packageDescription.Rd49
-rw-r--r--src/library/utils/man/packageName.Rd4
-rw-r--r--src/library/utils/man/packageStatus.Rd14
-rw-r--r--src/library/utils/man/person.Rd20
-rw-r--r--src/library/utils/man/process.events.Rd4
-rw-r--r--src/library/utils/man/prompt.Rd2
-rw-r--r--src/library/utils/man/promptData.Rd2
-rw-r--r--src/library/utils/man/promptPackage.Rd5
-rw-r--r--src/library/utils/man/removeSource.Rd4
-rw-r--r--src/library/utils/man/rtags.Rd2
-rw-r--r--src/library/utils/man/setRepositories.Rd8
-rw-r--r--src/library/utils/man/strcapture.Rd4
-rw-r--r--src/library/utils/man/summaryRprof.Rd4
-rw-r--r--src/library/utils/man/tar.Rd13
-rw-r--r--src/library/utils/man/type.convert.Rd78
-rw-r--r--src/library/utils/man/update.packages.Rd11
-rw-r--r--src/library/utils/man/url.show.Rd2
-rw-r--r--src/library/utils/man/warnErrList.Rd64
-rw-r--r--src/library/utils/man/zip.Rd4
-rw-r--r--src/library/utils/po/R-da.po75
-rw-r--r--src/library/utils/po/R-de.po173
-rw-r--r--src/library/utils/po/R-fa.po75
-rw-r--r--src/library/utils/po/R-fr.po105
-rw-r--r--src/library/utils/po/R-ja.po104
-rw-r--r--src/library/utils/po/R-ko.po176
-rw-r--r--src/library/utils/po/R-pl.po188
-rw-r--r--src/library/utils/po/R-pt_BR.po75
-rw-r--r--src/library/utils/po/R-ru.po471
-rw-r--r--src/library/utils/po/R-tr.po75
-rw-r--r--src/library/utils/po/R-utils.pot73
-rw-r--r--src/library/utils/po/R-zh_CN.po104
-rw-r--r--src/library/utils/po/de.po93
-rw-r--r--src/library/utils/po/ko.po91
-rw-r--r--src/library/utils/po/pl.po53
-rw-r--r--src/library/utils/po/ru.po259
-rw-r--r--src/library/utils/po/utils.pot51
-rw-r--r--src/library/utils/src/Makefile.in2
-rw-r--r--src/library/utils/src/io.c28
-rw-r--r--src/library/utils/src/windows/dataentry.c2
-rw-r--r--src/library/utils/src/windows/dialogs.c4
-rw-r--r--src/library/utils/src/windows/util.c6
-rw-r--r--src/library/utils/src/windows/widgets.c4
-rw-r--r--src/main/Makefile.in8
-rw-r--r--src/main/Makefile.win2
-rw-r--r--src/main/RNG.c3
-rw-r--r--src/main/Rcomplex.h3
-rw-r--r--src/main/Rdynload.c81
-rw-r--r--src/main/altrep.c2522
-rw-r--r--src/main/apply.c14
-rw-r--r--src/main/arithmetic.c469
-rw-r--r--src/main/array.c9
-rw-r--r--src/main/attrib.c148
-rw-r--r--src/main/builtin.c98
-rw-r--r--src/main/character.c25
-rw-r--r--src/main/coerce.c495
-rw-r--r--src/main/complex.c187
-rw-r--r--src/main/connections.c262
-rw-r--r--src/main/context.c109
-rw-r--r--src/main/datetime.c3
-rw-r--r--src/main/debug.c2
-rw-r--r--src/main/deparse.c829
-rw-r--r--src/main/dotcode.c4
-rw-r--r--src/main/dstruct.c2
-rw-r--r--src/main/duplicate.c12
-rw-r--r--src/main/edit.c2
-rw-r--r--src/main/engine.c38
-rw-r--r--src/main/envir.c80
-rw-r--r--src/main/errors.c80
-rw-r--r--src/main/eval.c763
-rw-r--r--src/main/format.c42
-rw-r--r--src/main/gram.c43
-rw-r--r--src/main/gram.y23
-rw-r--r--src/main/grep.c62
-rw-r--r--src/main/inspect.c29
-rw-r--r--src/main/internet.c11
-rw-r--r--src/main/lapack.c2
-rw-r--r--src/main/logic.c102
-rw-r--r--src/main/main.c48
-rw-r--r--src/main/match.c18
-rw-r--r--src/main/memory.c499
-rw-r--r--src/main/names.c39
-rw-r--r--src/main/objects.c142
-rw-r--r--src/main/platform.c74
-rw-r--r--src/main/plotmath.c1
-rw-r--r--src/main/print.c19
-rw-r--r--src/main/printarray.c22
-rw-r--r--src/main/printutils.c59
-rw-r--r--src/main/printvector.c53
-rw-r--r--src/main/qsort.c5
-rw-r--r--src/main/radixsort.c46
-rw-r--r--src/main/raw.c78
-rw-r--r--src/main/relop.c417
-rw-r--r--src/main/rlocale.c4
-rw-r--r--src/main/saveload.c117
-rw-r--r--src/main/seq.c69
-rw-r--r--src/main/serialize.c384
-rw-r--r--src/main/sort.c98
-rw-r--r--src/main/source.c2
-rw-r--r--src/main/split.c2
-rw-r--r--src/main/sprintf.c14
-rw-r--r--src/main/startup.c30
-rw-r--r--src/main/subassign.c824
-rw-r--r--src/main/subscript.c255
-rw-r--r--src/main/subset.c627
-rw-r--r--src/main/summary.c586
-rw-r--r--src/main/sysutils.c182
-rw-r--r--src/main/unique.c372
-rw-r--r--src/main/util.c191
-rw-r--r--src/modules/Makefile.in2
-rw-r--r--src/modules/X11/Makefile.in2
-rw-r--r--src/modules/X11/dataentry.c2
-rw-r--r--src/modules/X11/devX11.c2
-rw-r--r--src/modules/internet/Makefile.in2
-rw-r--r--src/modules/internet/libcurl.c1
-rw-r--r--src/modules/lapack/Lapack.c33
-rw-r--r--src/modules/lapack/Makefile.in7
-rw-r--r--src/modules/lapack/cmplx.txt30
-rw-r--r--src/modules/lapack/dble.txt83
-rw-r--r--src/modules/lapack/init_win.c7
-rw-r--r--src/nmath/Makefile.in6
-rw-r--r--src/nmath/Makefile.win2
-rw-r--r--src/nmath/expm1.c65
-rw-r--r--src/nmath/fprec.c17
-rw-r--r--src/nmath/fround.c45
-rw-r--r--src/nmath/log1p.c59
-rw-r--r--src/nmath/nmath2.h1
-rw-r--r--src/nmath/plogis.c2
-rw-r--r--src/nmath/pnbeta.c3
-rw-r--r--src/nmath/qbeta.c4
-rw-r--r--src/nmath/qpois.c4
-rw-r--r--src/nmath/rnchisq.c4
-rw-r--r--src/nmath/standalone/Makefile.in6
-rw-r--r--src/nmath/standalone/Makefile.win2
-rw-r--r--src/scripts/build1
-rw-r--r--src/scripts/javareconf.in27
-rw-r--r--src/unix/Makefile.in4
-rw-r--r--src/unix/Rscript.c83
-rw-r--r--src/unix/hpdlfcn.c2
-rw-r--r--src/unix/sys-std.c19
-rw-r--r--src/unix/sys-unix.c479
-rw-r--r--src/unix/system.c102
-rw-r--r--tests/Embedding/Makefile.in2
-rw-r--r--tests/Examples/datasets-Ex.Rout.save31
-rw-r--r--tests/Examples/grDevices-Ex.Rout.save12
-rw-r--r--tests/Examples/graphics-Ex.Rout.save26
-rw-r--r--tests/Examples/grid-Ex.Rout.save15
-rw-r--r--tests/Examples/splines-Ex.Rout.save12
-rw-r--r--tests/Examples/stats-Ex.Rout.save542
-rw-r--r--tests/Examples/stats4-Ex.Rout.save6
-rw-r--r--tests/Examples/tools-Ex.Rout.save31
-rw-r--r--tests/Makefile.common33
-rw-r--r--tests/Makefile.in13
-rw-r--r--tests/Makefile.install4
-rw-r--r--tests/Makefile.win4
-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.save26
-rw-r--r--tests/datetime.R2
-rw-r--r--tests/datetime.Rout.save4
-rw-r--r--tests/datetime2.Rout.save2
-rw-r--r--tests/demos.Rout.save8
-rw-r--r--tests/eval-etc.R194
-rw-r--r--tests/eval-etc.Rout.save1115
-rw-r--r--tests/iec60559.Rout.save2
-rw-r--r--tests/internet.Rout.save4
-rw-r--r--tests/internet2.R7
-rw-r--r--tests/isas-tests.Rout.save37
-rw-r--r--tests/lapack.R19
-rw-r--r--tests/lapack.Rout.save45
-rw-r--r--tests/lm-tests.Rout.save2
-rw-r--r--tests/method-dispatch.Rout.save2
-rw-r--r--tests/no-segfault.Rin9
-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.R60
-rw-r--r--tests/reg-S4.Rout.save153
-rw-r--r--tests/reg-examples3.Rout.save25
-rw-r--r--tests/reg-large.R218
-rw-r--r--tests/reg-packages.R26
-rw-r--r--tests/reg-tests-1a.R1
-rw-r--r--tests/reg-tests-1b.R16
-rw-r--r--tests/reg-tests-1c.R36
-rw-r--r--tests/reg-tests-1d.R1367
-rw-r--r--tests/reg-tests-2.R89
-rw-r--r--tests/reg-tests-2.Rout.save213
-rw-r--r--tests/reg-tests-3.R14
-rw-r--r--tests/reg-tests-3.Rout.save19
-rw-r--r--tests/simple-true.Rout.save2
-rw-r--r--tests/test-system.R91
-rw-r--r--tests/test-system.Rout.save350
-rw-r--r--tests/test-system2.c33
-rw-r--r--tests/timezone.R9
-rw-r--r--tests/utf8.R54
1113 files changed, 78898 insertions, 53376 deletions
diff --git a/Makefile.fw b/Makefile.fw
index ad8f00c..34d9c74 100644
--- a/Makefile.fw
+++ b/Makefile.fw
@@ -27,7 +27,7 @@ install-R-framework:
@(cd "$(DESTDIR)$(R_FRAMEWORK_DIR)/Versions" && \
ln -f -s -n $(FW_VERSION) Current)
@(if [ -e "$(DESTDIR)$(R_FRAMEWORK_DIR)/Resources" -a ! -L "$(DESTDIR)$(R_FRAMEWORK_DIR)/Resources" ]; then \
- rm -rf "$(DESTDIR)$(R_FRAMEWORK_DIR)/Resources.old"; mv "$(DESTDIR)$(R_FRAMEWORK_DIR)/Resources" "$(DESTDIR)$(R_FRAMEWORK_DIR)/Resources.old"; \
+ rm -Rf "$(DESTDIR)$(R_FRAMEWORK_DIR)/Resources.old"; mv "$(DESTDIR)$(R_FRAMEWORK_DIR)/Resources" "$(DESTDIR)$(R_FRAMEWORK_DIR)/Resources.old"; \
fi)
@(cd "$(DESTDIR)$(R_FRAMEWORK_DIR)" && \
ln -f -s -n Versions/Current/PrivateHeaders PrivateHeaders&& \
@@ -64,12 +64,12 @@ install-R-framework:
@(cp -R $(top_srcdir)/src/include/* "$(DESTDIR)$(R_FRAMEWORK_DIR)/Versions/Current/PrivateHeaders/" && \
cp src/include/config.h "$(DESTDIR)$(R_FRAMEWORK_DIR)/Versions/Current/PrivateHeaders/" && \
chmod a+r "$(DESTDIR)$(R_FRAMEWORK_DIR)/Versions/Current/PrivateHeaders/config.h"; \
- find "$(DESTDIR)$(R_FRAMEWORK_DIR)/Versions/Current/PrivateHeaders" -name .svn | xargs rm -rf)
+ find "$(DESTDIR)$(R_FRAMEWORK_DIR)/Versions/Current/PrivateHeaders" -name .svn | xargs rm -Rf)
@(install_name_tool -change libR.dylib \
"$(R_FRAMEWORK_DIR)/Versions/$(FW_VERSION)/Resources/lib/libR.dylib" \
"$(DESTDIR)$(Rexecbindir2)/R")
@(if [ -n "${R_ARCH}" ]; then \
- rm -rf "$(DESTDIR)$(R_FRAMEWORK_DIR)/Versions/Current/PrivateHeaders${R_ARCH}" && \
+ rm -Rf "$(DESTDIR)$(R_FRAMEWORK_DIR)/Versions/Current/PrivateHeaders${R_ARCH}" && \
mkdir "$(DESTDIR)$(R_FRAMEWORK_DIR)/Versions/Current/PrivateHeaders${R_ARCH}" && \
cp src/include/config.h "$(DESTDIR)$(R_FRAMEWORK_DIR)/Versions/Current/PrivateHeaders${R_ARCH}/config.h"; \
chmod a+r "$(DESTDIR)$(R_FRAMEWORK_DIR)/Versions/Current/PrivateHeaders${R_ARCH}/config.h"; \
diff --git a/Makefile.in b/Makefile.in
index 505effd..2599a33 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -142,7 +142,7 @@ uninstall:
@for f in $(INSTFILES) $(NON_SVN_INSTFILES); do \
rm -f "$(DESTDIR)$(rhome)/$${f}"; \
done
- @rm -rf "$(DESTDIR)$(Rexecbindir)" "$(DESTDIR)$(rhome)/lib"
+ @rm -Rf "$(DESTDIR)$(Rexecbindir)" "$(DESTDIR)$(rhome)/lib"
@rmdir "$(DESTDIR)$(rhome)" 2>/dev/null \
|| $(ECHO) " dir $(DESTDIR)$(rhome) not removed"
@rm -f "$(DESTDIR)${libdir}/libR$(R_DYLIB_EXT)"
@@ -158,15 +158,15 @@ distclean: clean
@(for d in $(SUBDIRS); do rsd="$${d} $${rsd}"; done; \
for d in $${rsd}; do (cd $${d} && $(MAKE) $@); done)
@rm -f po/Makefile
- -@rm -rf bin include lib library modules gnome
+ -@rm -Rf bin include lib library modules gnome
@if test -f non-tarball ; then \
rm -f $(NON_SVN_INSTFILES) non-tarball doc/FAQ doc/RESOURCES doc/html/resources.html doc/html/NEWS.html; \
fi
@if test "$(BUILDDIR_IS_SRCDIR)" = no ; then \
rm -f $(NON_SVN_INSTFILES); \
- rm -rf $(SUBDIRS) $(SUBDIRS_WITH_NO_BUILD); \
+ rm -Rf $(SUBDIRS) $(SUBDIRS_WITH_NO_BUILD); \
fi
- -@rm -rf libconftest.dSYM
+ -@rm -Rf libconftest.dSYM
-@rm -f Makeconf Makefile Makefile.bak Makefrag.* \
config.cache config.log config.status libtool stamp-java \
$(ACLOCAL_M4) acinclude.m4 $(distdir).tar.gz
@@ -175,9 +175,10 @@ maintainer-clean: distclean
@$(ECHO) "deletes files that may need special rules to rebuild"
@(for d in $(SUBDIRS); do rsd="$${d} $${rsd}"; done; \
for d in $${rsd}; do (cd $${d} && $(MAKE) $@); done)
- -@(cd $(srcdir) && rm -rf autom4te.cache)
+ -@(cd $(srcdir) && rm -Rf autom4te.cache)
dist: dist-unix
+## GNU gzip 1.8 warns that env var GZIP is obsolescent for gzip, so use as arg
dist-unix: distdir
-chmod -R a+r $(distdir)
-chmod -R go-w $(distdir)
@@ -186,11 +187,11 @@ dist-unix: distdir
if test $(distdir) != $${dirname} ; then \
mv $(distdir) $${dirname}; \
fi ; \
- GZIP=$(GZIP) $(TAR) czf $${distname}.tar.gz $${dirname}; \
- rm -rf $${dirname}
+ $(TAR) cf $${distname}.tar $${dirname} && $(R_GZIPCMD) $(GZIP) $${distname}.tar; \
+ rm -Rf $${dirname}
dist-win:
distdir: $(DISTFILES) vignettes
- @rm -rf $(distdir)
+ @rm -Rf $(distdir)
@mkdir $(distdir)
@-chmod 755 $(distdir)
@for f in $(DISTFILES); do \
diff --git a/SVN-REVISION b/SVN-REVISION
index 8842b33..efb6bab 100644
--- a/SVN-REVISION
+++ b/SVN-REVISION
@@ -1,2 +1,2 @@
-Revision: 74408
-Last Changed Date: 2018-03-15
+Revision: 74626
+Last Changed Date: 2018-04-23
diff --git a/VERSION b/VERSION
index f989260..1545d96 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.4.4
+3.5.0
diff --git a/VERSION-NICK b/VERSION-NICK
index 48e53dd..5e83ee2 100644
--- a/VERSION-NICK
+++ b/VERSION-NICK
@@ -1 +1 @@
-Someone to Lean On
+Joy in Playing
diff --git a/configure b/configure
index a314719..d491b01 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.4.
+# Generated by GNU Autoconf 2.69 for R 3.5.0.
#
# 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.4'
-PACKAGE_STRING='R 3.4.4'
+PACKAGE_VERSION='3.5.0'
+PACKAGE_STRING='R 3.5.0'
PACKAGE_BUGREPORT='https://bugs.r-project.org'
PACKAGE_URL='https://www.r-project.org'
@@ -696,6 +696,10 @@ JAR
JAVAH
JAVAC
JAVA
+custom_JAR
+custom_JAVAH
+custom_JAVAC
+custom_JAVA
custom_JAVA_LD_LIBRARY_PATH
custom_JAVA_LIBS
custom_JAVA_CPPFLAGS
@@ -711,6 +715,7 @@ CURL_CPPFLAGS
CURL_CONFIG
BUILD_TRE_FALSE
BUILD_TRE_TRUE
+PCRE2_CONFIG
USE_MMAP_ZLIB_FALSE
USE_MMAP_ZLIB_TRUE
TIRPC_CPPFLAGS
@@ -750,9 +755,6 @@ BLAS_SHLIB_FALSE
BLAS_SHLIB_TRUE
RMATH_HAVE_WORKING_LOG1P
LIBOBJS
-RMATH_HAVE_LOG1P
-RMATH_HAVE_HYPOT
-RMATH_HAVE_EXPM1
MACOS_SIERRA
ALLOCA
R_OPENMP_FFLAGS
@@ -882,6 +884,12 @@ PKG_CONFIG_PATH
PKGCONF
REALPATH
NOTANGLE
+JUSTYACC
+YFLAGS
+YACC
+AUTOHEADER
+AUTOCONF
+ACLOCAL
R_BZIPCMD
R_GZIPCMD
R_ZIPCMD
@@ -904,13 +912,7 @@ INSTALL_SCRIPT
INSTALL_PROGRAM
ARFLAGS
AR
-YFLAGS
-YACC
LN_S
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
BUILDDIR_IS_SRCDIR
GETWD
R_XTRA_CPPFLAGS2
@@ -1703,7 +1705,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.4 to adapt to many kinds of systems.
+\`configure' configures R 3.5.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1778,7 +1780,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of R 3.4.4:";;
+ short | recursive ) echo "Configuration of R 3.5.0:";;
esac
cat <<\_ACEOF
@@ -1845,7 +1847,7 @@ Optional Packages:
(0/1/2) [0]
--with-system-valgrind-headers
use system valgrind headers (if available) [no]
- --with-internal-tzcode use internal time-zone code [no]
+ --with-internal-tzcode use internal time-zone code [no, yes on macOS]
--with-recommended-packages
use/install recommended R packages [yes]
--with-ICU use ICU library (if available) [yes]
@@ -2065,7 +2067,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-R configure 3.4.4
+R configure 3.5.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3217,7 +3219,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.4, which was
+It was created by R $as_me 3.5.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3975,7 +3977,7 @@ fi
## As from R 3.2.0 split up -L... and -lR
if test "${want_R_shlib}" = yes; then
- LIBR0="-L\$(R_HOME)/lib\$(R_ARCH)"
+ LIBR0="-L\"\$(R_HOME)/lib\$(R_ARCH)\""
LIBR1=-lR
else
LIBR0=
@@ -4366,10 +4368,10 @@ fi
if test -z "${r_arch}"; then
R_ARCH=
- R_XTRA_CPPFLAGS2="-I\$(R_INCLUDE_DIR)"
+ R_XTRA_CPPFLAGS2="-I\"\$(R_INCLUDE_DIR)\""
else
R_ARCH="/${r_arch}"
- R_XTRA_CPPFLAGS2="-I\$(R_INCLUDE_DIR) -I\$(R_INCLUDE_DIR)/${r_arch}"
+ R_XTRA_CPPFLAGS2="-I\"\$(R_INCLUDE_DIR)\" -I\"\$(R_INCLUDE_DIR)/${r_arch}\""
fi
cat >>confdefs.h <<_ACEOF
@@ -4435,58 +4437,6 @@ $as_echo "${BUILDDIR_IS_SRCDIR}" >&6; }
### * Checks for programs.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working aclocal" >&5
-$as_echo_n "checking for working aclocal... " >&6; }
-if (aclocal --version) < /dev/null > /dev/null 2>&1; then
- ACLOCAL=aclocal
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
-else
- ACLOCAL="\$(SHELL) \$(top_srcdir)/tools/missing aclocal"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: missing" >&5
-$as_echo "missing" >&6; }
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working autoconf" >&5
-$as_echo_n "checking for working autoconf... " >&6; }
-if (autoconf --version) < /dev/null > /dev/null 2>&1; then
- AUTOCONF=autoconf
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
-else
- AUTOCONF="\$(SHELL) \$(top_srcdir)/tools/missing autoconf"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: missing" >&5
-$as_echo "missing" >&6; }
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working automake" >&5
-$as_echo_n "checking for working automake... " >&6; }
-if (automake --version) < /dev/null > /dev/null 2>&1; then
- AUTOMAKE=automake
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
-else
- AUTOMAKE="\$(SHELL) \$(top_srcdir)/tools/missing automake"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: missing" >&5
-$as_echo "missing" >&6; }
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working autoheader" >&5
-$as_echo_n "checking for working autoheader... " >&6; }
-if (autoheader --version) < /dev/null > /dev/null 2>&1; then
- AUTOHEADER=autoheader
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
-else
- AUTOHEADER="\$(SHELL) \$(top_srcdir)/tools/missing autoheader"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: missing" >&5
-$as_echo "missing" >&6; }
-fi
-
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
$as_echo_n "checking whether ln -s works... " >&6; }
LN_S=$as_ln_s
@@ -4498,49 +4448,6 @@ else
$as_echo "no, using $LN_S" >&6; }
fi
-for ac_prog in 'bison -y' byacc
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_YACC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$YACC"; then
- ac_cv_prog_YACC="$YACC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_YACC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-YACC=$ac_cv_prog_YACC
-if test -n "$YACC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
-$as_echo "$YACC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$YACC" && break
-done
-test -n "$YACC" || YACC="yacc"
-
for ac_prog in ${AR} ar
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -5646,7 +5553,155 @@ $as_echo "$as_me: WARNING: ${warn_pdfviewer}" >&2;}
fi
-## Noweb - used for maintainer mode only
+## Noweb (notangle), aclocal, autoconf, autoheader - maintainer mode only
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working aclocal" >&5
+$as_echo_n "checking for working aclocal... " >&6; }
+if (aclocal --version) < /dev/null > /dev/null 2>&1; then
+ ACLOCAL=aclocal
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
+$as_echo "found" >&6; }
+else
+ ACLOCAL="\$(SHELL) \"\$(abs_top_srcdir)/tools/missing\" aclocal"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: missing" >&5
+$as_echo "missing" >&6; }
+ if test "x${use_maintainer_mode}" = xyes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: aclocal is missing - aclocal.m4 cannot be updated!" >&5
+$as_echo "$as_me: WARNING: aclocal is missing - aclocal.m4 cannot be updated!" >&2;}
+fi
+
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working autoconf" >&5
+$as_echo_n "checking for working autoconf... " >&6; }
+if (autoconf --version) < /dev/null > /dev/null 2>&1; then
+ AUTOCONF=autoconf
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
+$as_echo "found" >&6; }
+else
+ AUTOCONF="\$(SHELL) \"\$(abs_top_srcdir)/tools/missing\" autoconf"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: missing" >&5
+$as_echo "missing" >&6; }
+ if test "x${use_maintainer_mode}" = xyes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: autoconf is missing - configure cannot be updated!" >&5
+$as_echo "$as_me: WARNING: autoconf is missing - configure cannot be updated!" >&2;}
+fi
+
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working autoheader" >&5
+$as_echo_n "checking for working autoheader... " >&6; }
+if (autoheader --version) < /dev/null > /dev/null 2>&1; then
+ AUTOHEADER=autoheader
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
+$as_echo "found" >&6; }
+else
+ AUTOHEADER="\$(SHELL) \"\$(abs_top_srcdir)/tools/missing\" autoheader"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: missing" >&5
+$as_echo "missing" >&6; }
+ if test "x${use_maintainer_mode}" = xyes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: autoheader is missing - header file templates like config.h.in cannot be updated!" >&5
+$as_echo "$as_me: WARNING: autoheader is missing - header file templates like config.h.in cannot be updated!" >&2;}
+fi
+
+
+fi
+
+
+for ac_prog in 'bison -y' byacc
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_YACC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$YACC"; then
+ ac_cv_prog_YACC="$YACC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_YACC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+YACC=$ac_cv_prog_YACC
+if test -n "$YACC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
+$as_echo "$YACC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$YACC" && break
+done
+test -n "$YACC" || YACC="yacc"
+
+if test "${YACC}" = yacc ; then
+ ## yacc is the default value even when yacc is not found
+ # Extract the first word of "yacc", so it can be a program name with args.
+set dummy yacc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_JUSTYACC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$JUSTYACC"; then
+ ac_cv_prog_JUSTYACC="$JUSTYACC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_JUSTYACC="yes"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+JUSTYACC=$ac_cv_prog_JUSTYACC
+if test -n "$JUSTYACC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JUSTYACC" >&5
+$as_echo "$JUSTYACC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x${JUSTYACC}" != xyes ; then
+ if test "x${use_maintainer_mode}" = xyes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: yacc is missing - parsers cannot be updated!" >&5
+$as_echo "$as_me: WARNING: yacc is missing - parsers cannot be updated!" >&2;}
+fi
+
+ fi
+fi
# Extract the first word of "notangle", so it can be a program name with args.
set dummy notangle; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -5690,9 +5745,10 @@ fi
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:${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
+fi
+
NOTANGLE=notangle
fi
## javareconf needs this
@@ -8438,7 +8494,7 @@ echo "running: ${OBJCXX} -c conftest.mm ${CPPFLAGS} ${OBJCXXFLAGS}" >&5
if ${OBJCXX} -c conftest.mm ${CPPFLAGS} ${OBJCXXFLAGS} >&5 2>&1; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- rm -rf conftest conftest.* core
+ rm -Rf conftest conftest.* core
OBJCXX=${OBJCXX}
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -8480,7 +8536,7 @@ echo "running: ${CXX} -c conftest.mm ${CPPFLAGS} ${OBJCXXFLAGS}" >&5
if ${CXX} -c conftest.mm ${CPPFLAGS} ${OBJCXXFLAGS} >&5 2>&1; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- rm -rf conftest conftest.* core
+ rm -Rf conftest conftest.* core
OBJCXX=${CXX}
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -8517,7 +8573,7 @@ echo "running: ${OBJC} -c conftest.mm ${CPPFLAGS} ${OBJCXXFLAGS}" >&5
if ${OBJC} -c conftest.mm ${CPPFLAGS} ${OBJCXXFLAGS} >&5 2>&1; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- rm -rf conftest conftest.* core
+ rm -Rf conftest conftest.* core
OBJCXX=${OBJC}
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -22460,7 +22516,7 @@ $as_echo_n "checking for build C compiler... " >&6; }
fi
done
fi
- rm -rf conftest conftest.* core
+ rm -Rf conftest conftest.* core
if test "${build_cc_works}" = no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
$as_echo "none" >&6; }
@@ -24713,7 +24769,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
else
r_cv_prog_cc_c_o_lo=no
fi
-rm -rf conftest* TMP
+rm -Rf conftest* TMP
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $r_cv_prog_cc_c_o_lo" >&5
$as_echo "$r_cv_prog_cc_c_o_lo" >&6; }
@@ -24763,7 +24819,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 -xopenmp -fopenmp -qopenmp \
+ for ac_option in -xopenmp -fopenmp -qopenmp \
-openmp -mp -omp -qsmp=omp -homp \
-fopenmp=libomp \
-Popenmp --openmp; do
@@ -25212,7 +25268,7 @@ _ACEOF
# flags.
r_save_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS $r_verb"
-(eval echo $as_me:25215: \"$ac_link\") >&5
+(eval echo $as_me:25271: \"$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
@@ -25287,7 +25343,7 @@ _ACEOF
# flags.
r_save_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS $r_cv_prog_c_v"
-(eval echo $as_me:25290: \"$ac_link\") >&5
+(eval echo $as_me:25346: \"$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
@@ -26030,7 +26086,7 @@ fi
fi
-rm -rf conftest conftest.* conftestf.* core
+rm -Rf conftest conftest.* conftestf.* core
if test -n "${r_cv_prog_f77_can_run}"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@@ -26122,7 +26178,7 @@ fi
fi
-rm -rf conftest conftest.* conftestf.* core
+rm -Rf conftest conftest.* conftestf.* core
if test -n "${r_cv_prog_f77_cc_compat}"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@@ -26212,7 +26268,7 @@ fi
fi
-rm -rf conftest conftest.* conftestf.* core
+rm -Rf conftest conftest.* conftestf.* core
if test -n "${r_cv_prog_f77_cc_compat_complex}"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@@ -26268,7 +26324,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 -xopenmp -fopenmp -qopenmp \
+ for ac_option in -xopenmp -fopenmp -qopenmp \
-openmp -mp -omp -qsmp=omp -homp \
-fopenmp=libomp \
-Popenmp --openmp; do
@@ -26399,7 +26455,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 -xopenmp -fopenmp -qopenmp \
+ for ac_option in -xopenmp -fopenmp -qopenmp \
-openmp -mp -omp -qsmp=omp -homp \
-fopenmp=libomp \
-Popenmp --openmp; do
@@ -27413,11 +27469,21 @@ fi
;;
esac
+## This was -ffloat-store on all gfortran/g77 platforms prior to 3.5.0
+## Suggestion adopted from https://gcc.gnu.org/wiki/FloatingPointMath
+## It was already the default on 32-bit macOS
if test "${SAFE_FFLAGS+set}" != set; then
if test "x${ac_cv_f77_compiler_gnu}" = xyes; then
- SAFE_FFLAGS="${FFLAGS} -ffloat-store"
+ case "${host_cpu}" in
+ i*86|x86_64)
+ SAFE_FFLAGS="${FFLAGS} -msse2 -mfpmath=sse"
+ ;;
+ *)
+ SAFE_FFLAGS="${FFLAGS}"
+ ::
+ esac
else
- SAFE_FFLAGS=${FFLAGS}
+ SAFE_FFLAGS="${FFLAGS}"
fi
fi
@@ -27497,12 +27563,19 @@ fi
if test "${G77}" = yes; then
R_SYSTEM_ABI="${R_SYSTEM_ABI},gfortran"
else
-case "${host_os}" in
- solaris*)
- R_SYSTEM_ABI="${R_SYSTEM_ABI},solf95"
- ;;
+case "${F77}" in
+ *flang)
+ R_SYSTEM_ABI="${R_SYSTEM_ABI},flang"
+ ;;
*)
- R_SYSTEM_ABI="${R_SYSTEM_ABI},?"
+ case "${host_os}" in
+ solaris*)
+ R_SYSTEM_ABI="${R_SYSTEM_ABI},solf95"
+ ;;
+ *)
+ R_SYSTEM_ABI="${R_SYSTEM_ABI},?"
+ esac
+ ;;
esac
fi
## Fortran 90/95: AC_PROG_FC does not seem to set a shell variable
@@ -27511,12 +27584,19 @@ fi
if test "${ac_cv_fc_compiler_gnu}" = yes; then
R_SYSTEM_ABI="${R_SYSTEM_ABI},gfortran"
else
-case "${host_os}" in
- solaris*)
- R_SYSTEM_ABI="${R_SYSTEM_ABI},solf95"
- ;;
+case "${F77}" in
+ *flang)
+ R_SYSTEM_ABI="${R_SYSTEM_ABI},flang"
+ ;;
*)
- R_SYSTEM_ABI="${R_SYSTEM_ABI},?"
+ case "${host_os}" in
+ solaris*)
+ R_SYSTEM_ABI="${R_SYSTEM_ABI},solf95"
+ ;;
+ *)
+ R_SYSTEM_ABI="${R_SYSTEM_ABI},?"
+ esac
+ ;;
esac
fi
@@ -28203,35 +28283,14 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
ac_success=no
switch=""
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++98 features by default" >&5
-$as_echo_n "checking whether $CXX supports C++98 features by default... " >&6; }
-if ${ax_cv_cxx_compile_cxx98+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#ifndef __cplusplus
-# error "This is not a C++ compiler"
-#endif
-// or we could test for later than C++03
-#if __cplusplus >= 201103L
-# error "This is a compiler for C++11 or later"
-#endif
-
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ax_cv_cxx_compile_cxx98=yes
-else
- ax_cv_cxx_compile_cxx98=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx98" >&5
-$as_echo "$ax_cv_cxx_compile_cxx98" >&6; }
- if test x$ax_cv_cxx_compile_cxx98 = xyes; then
- ac_success=yes
- fi
+ # AC_CACHE_CHECK(whether $CXX supports C++98 features by default,
+ # ax_cv_cxx_compile_cxx98,
+ # [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_98])],
+ # [ax_cv_cxx_compile_cxx98=yes],
+ # [ax_cv_cxx_compile_cxx98=no])])
+ # if test x$ax_cv_cxx_compile_cxx98 = xyes; then
+ # ac_success=yes
+ # fi
if test x$ac_success = xno; then
for alternative in ${ax_cxx_compile_alternatives}; do
@@ -28279,8 +28338,8 @@ $as_echo "$ac_res" >&6; }
fi
if test x$ac_success = xno; then
- for alternative in ${ax_cxx_compile_alternatives}; do
- for switch in -std=c++${alternative}; do
+ for alternative in ${ax_cxx_compile_alternatives}; do
+ for switch in -std=c++${alternative} -std=sun${alternative}; do
cachevar=`$as_echo "ax_cv_cxx_compile_cxx98_$switch" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++98 features with $switch" >&5
$as_echo_n "checking whether $CXX supports C++98 features with $switch... " >&6; }
@@ -28406,335 +28465,14 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
ac_success=no
switch=""
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features by default" >&5
-$as_echo_n "checking whether $CXX supports C++11 features by default... " >&6; }
-if ${ax_cv_cxx_compile_cxx11+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __cplusplus
-# error "This is not a C++ compiler"
-#elif defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 8
-
-
- //This is the earlier, less stringent test used in R 3.3.0
- //Keep this for long-term support platforms with older gcc compilers
-
- template <typename T>
- struct check
- {
- static_assert(sizeof(int) <= sizeof(T), "not big enough");
- };
-
- typedef check<check<bool>> right_angle_brackets;
-
- int a;
- decltype(a) b;
-
- typedef check<int> check_type;
- check_type c;
- check_type&& cr = static_cast<check_type&&>(c);
-
- auto d = a;
-
-
-#elif __cplusplus < 201103L
-# error "This is not a C++11 compiler"
-#elif __cplusplus >= 201402L
-# error "This is a C++14 compiler"
-#else
-
-
-namespace cxx11
-{
-
- namespace test_static_assert
- {
-
- template <typename T>
- struct check
- {
- static_assert(sizeof(int) <= sizeof(T), "not big enough");
- };
-
- }
-
- namespace test_final_override
- {
-
- struct Base
- {
- virtual void f() {}
- };
-
- struct Derived : public Base
- {
- virtual void f() override {}
- };
-
- }
-
- namespace test_double_right_angle_brackets
- {
-
- template < typename T >
- struct check {};
-
- typedef check<void> single_type;
- typedef check<check<void>> double_type;
- typedef check<check<check<void>>> triple_type;
- typedef check<check<check<check<void>>>> quadruple_type;
-
- }
-
- namespace test_decltype
- {
-
- int
- f()
- {
- int a = 1;
- decltype(a) b = 2;
- return a + b;
- }
-
- }
-
- namespace test_type_deduction
- {
-
- template < typename T1, typename T2 >
- struct is_same
- {
- static const bool value = false;
- };
-
- template < typename T >
- struct is_same<T, T>
- {
- static const bool value = true;
- };
-
- template < typename T1, typename T2 >
- auto
- add(T1 a1, T2 a2) -> decltype(a1 + a2)
- {
- return a1 + a2;
- }
-
- int
- test(const int c, volatile int v)
- {
- static_assert(is_same<int, decltype(0)>::value == true, "");
- static_assert(is_same<int, decltype(c)>::value == false, "");
- static_assert(is_same<int, decltype(v)>::value == false, "");
- auto ac = c;
- auto av = v;
- auto sumi = ac + av + 'x';
- auto sumf = ac + av + 1.0;
- static_assert(is_same<int, decltype(ac)>::value == true, "");
- static_assert(is_same<int, decltype(av)>::value == true, "");
- static_assert(is_same<int, decltype(sumi)>::value == true, "");
- static_assert(is_same<int, decltype(sumf)>::value == false, "");
- static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
- return (sumf > 0.0) ? sumi : add(c, v);
- }
-
- }
-
- namespace test_noexcept
- {
-
- int f() { return 0; }
- int g() noexcept { return 0; }
-
- static_assert(noexcept(f()) == false, "");
- static_assert(noexcept(g()) == true, "");
-
- }
-
- namespace test_constexpr
- {
-
- template < typename CharT >
- unsigned long constexpr
- strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
- {
- return *s ? strlen_c_r(s + 1, acc + 1) : acc;
- }
-
- template < typename CharT >
- unsigned long constexpr
- strlen_c(const CharT *const s) noexcept
- {
- return strlen_c_r(s, 0UL);
- }
-
- static_assert(strlen_c("") == 0UL, "");
- static_assert(strlen_c("1") == 1UL, "");
- static_assert(strlen_c("example") == 7UL, "");
- static_assert(strlen_c("another\0example") == 7UL, "");
-
- }
-
- namespace test_rvalue_references
- {
-
- template < int N >
- struct answer
- {
- static constexpr int value = N;
- };
-
- answer<1> f(int&) { return answer<1>(); }
- answer<2> f(const int&) { return answer<2>(); }
- answer<3> f(int&&) { return answer<3>(); }
-
- void
- test()
- {
- int i = 0;
- const int c = 0;
- static_assert(decltype(f(i))::value == 1, "");
- static_assert(decltype(f(c))::value == 2, "");
- static_assert(decltype(f(0))::value == 3, "");
- }
-
- }
-
- namespace test_uniform_initialization
- {
-
- struct test
- {
- static const int zero {};
- static const int one {1};
- };
-
- static_assert(test::zero == 0, "");
- static_assert(test::one == 1, "");
-
- }
-
- namespace test_lambdas
- {
-
- void
- test1()
- {
- auto lambda1 = [](){};
- auto lambda2 = lambda1;
- lambda1();
- lambda2();
- }
-
- int
- test2()
- {
- auto a = [](int i, int j){ return i + j; }(1, 2);
- auto b = []() -> int { return '0'; }();
- auto c = [=](){ return a + b; }();
- auto d = [&](){ return c; }();
- auto e = [a, &b](int x) mutable {
- const auto identity = [](int y){ return y; };
- for (auto i = 0; i < a; ++i)
- a += b--;
- return x + identity(a + b);
- }(0);
- return a + b + c + d + e;
- }
-
- int
- test3()
- {
- const auto nullary = [](){ return 0; };
- const auto unary = [](int x){ return x; };
- using nullary_t = decltype(nullary);
- using unary_t = decltype(unary);
- const auto higher1st = [](nullary_t f){ return f(); };
- const auto higher2nd = [unary](nullary_t f1){
- return [unary, f1](unary_t f2){ return f2(unary(f1())); };
- };
- return higher1st(nullary) + higher2nd(nullary)(unary);
- }
-
- }
-
- namespace test_variadic_templates
- {
-
- template <int...>
- struct sum;
-
- template <int N0, int... N1toN>
- struct sum<N0, N1toN...>
- {
- /*
- Original test code used the auto keyword instead of declaring
- the type of "value" to be int. This causes Oracle Solaris Studio
- 12.4 to fail. This is possibly a compiler bug but in any case
- current test code works around it by an explicit declaration.
- */
- static constexpr int value = N0 + sum<N1toN...>::value;
- };
-
- template <>
- struct sum<>
- {
- static constexpr auto value = 0;
- };
-
- static_assert(sum<>::value == 0, "");
- static_assert(sum<1>::value == 1, "");
- static_assert(sum<23>::value == 23, "");
- static_assert(sum<1, 2>::value == 3, "");
- static_assert(sum<5, 5, 11>::value == 21, "");
- static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
-
- }
-
- // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
- // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
- // because of this.
- namespace test_template_alias_sfinae
- {
-
- struct foo {};
-
- template<typename T>
- using member = typename T::member_type;
-
- template<typename T>
- void func(...) {}
-
- template<typename T>
- void func(member<T>*) {}
-
- void test();
-
- void test() { func<foo>(0); }
-
- }
-
-} // namespace cxx11
-
-
-#endif
-
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ax_cv_cxx_compile_cxx11=yes
-else
- ax_cv_cxx_compile_cxx11=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx11" >&5
-$as_echo "$ax_cv_cxx_compile_cxx11" >&6; }
- if test x$ax_cv_cxx_compile_cxx11 = xyes; then
- ac_success=yes
- fi
+ # AC_CACHE_CHECK(whether $CXX supports C++11 features by default,
+ # ax_cv_cxx_compile_cxx11,
+ # [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_11])],
+ # [ax_cv_cxx_compile_cxx11=yes],
+ # [ax_cv_cxx_compile_cxx11=no])])
+ # if test x$ax_cv_cxx_compile_cxx11 = xyes; then
+ # ac_success=yes
+ # fi
if test x$ac_success = xno; then
for alternative in ${ax_cxx_compile_alternatives}; do
@@ -28784,7 +28522,6 @@ else
namespace cxx11
{
-
namespace test_static_assert
{
@@ -29082,8 +28819,8 @@ $as_echo "$ac_res" >&6; }
fi
if test x$ac_success = xno; then
- for alternative in ${ax_cxx_compile_alternatives}; do
- for switch in -std=c++${alternative}; do
+ for alternative in ${ax_cxx_compile_alternatives}; do
+ for switch in -std=c++${alternative} -std=sun${alternative}; do
cachevar=`$as_echo "ax_cv_cxx_compile_cxx11_$switch" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5
$as_echo_n "checking whether $CXX supports C++11 features with $switch... " >&6; }
@@ -29129,7 +28866,6 @@ else
namespace cxx11
{
-
namespace test_static_assert
{
@@ -29509,414 +29245,14 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
ac_success=no
switch=""
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++14 features by default" >&5
-$as_echo_n "checking whether $CXX supports C++14 features by default... " >&6; }
-if ${ax_cv_cxx_compile_cxx14+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __cplusplus
-# error "This is not a C++ compiler"
-#elif __cplusplus < 201402L
-# error "This is not a C++14 compiler"
-#else
-
-
-namespace cxx11
-{
-
- namespace test_static_assert
- {
-
- template <typename T>
- struct check
- {
- static_assert(sizeof(int) <= sizeof(T), "not big enough");
- };
-
- }
-
- namespace test_final_override
- {
-
- struct Base
- {
- virtual void f() {}
- };
-
- struct Derived : public Base
- {
- virtual void f() override {}
- };
-
- }
-
- namespace test_double_right_angle_brackets
- {
-
- template < typename T >
- struct check {};
-
- typedef check<void> single_type;
- typedef check<check<void>> double_type;
- typedef check<check<check<void>>> triple_type;
- typedef check<check<check<check<void>>>> quadruple_type;
-
- }
-
- namespace test_decltype
- {
-
- int
- f()
- {
- int a = 1;
- decltype(a) b = 2;
- return a + b;
- }
-
- }
-
- namespace test_type_deduction
- {
-
- template < typename T1, typename T2 >
- struct is_same
- {
- static const bool value = false;
- };
-
- template < typename T >
- struct is_same<T, T>
- {
- static const bool value = true;
- };
-
- template < typename T1, typename T2 >
- auto
- add(T1 a1, T2 a2) -> decltype(a1 + a2)
- {
- return a1 + a2;
- }
-
- int
- test(const int c, volatile int v)
- {
- static_assert(is_same<int, decltype(0)>::value == true, "");
- static_assert(is_same<int, decltype(c)>::value == false, "");
- static_assert(is_same<int, decltype(v)>::value == false, "");
- auto ac = c;
- auto av = v;
- auto sumi = ac + av + 'x';
- auto sumf = ac + av + 1.0;
- static_assert(is_same<int, decltype(ac)>::value == true, "");
- static_assert(is_same<int, decltype(av)>::value == true, "");
- static_assert(is_same<int, decltype(sumi)>::value == true, "");
- static_assert(is_same<int, decltype(sumf)>::value == false, "");
- static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
- return (sumf > 0.0) ? sumi : add(c, v);
- }
-
- }
-
- namespace test_noexcept
- {
-
- int f() { return 0; }
- int g() noexcept { return 0; }
-
- static_assert(noexcept(f()) == false, "");
- static_assert(noexcept(g()) == true, "");
-
- }
-
- namespace test_constexpr
- {
-
- template < typename CharT >
- unsigned long constexpr
- strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
- {
- return *s ? strlen_c_r(s + 1, acc + 1) : acc;
- }
-
- template < typename CharT >
- unsigned long constexpr
- strlen_c(const CharT *const s) noexcept
- {
- return strlen_c_r(s, 0UL);
- }
-
- static_assert(strlen_c("") == 0UL, "");
- static_assert(strlen_c("1") == 1UL, "");
- static_assert(strlen_c("example") == 7UL, "");
- static_assert(strlen_c("another\0example") == 7UL, "");
-
- }
-
- namespace test_rvalue_references
- {
-
- template < int N >
- struct answer
- {
- static constexpr int value = N;
- };
-
- answer<1> f(int&) { return answer<1>(); }
- answer<2> f(const int&) { return answer<2>(); }
- answer<3> f(int&&) { return answer<3>(); }
-
- void
- test()
- {
- int i = 0;
- const int c = 0;
- static_assert(decltype(f(i))::value == 1, "");
- static_assert(decltype(f(c))::value == 2, "");
- static_assert(decltype(f(0))::value == 3, "");
- }
-
- }
-
- namespace test_uniform_initialization
- {
-
- struct test
- {
- static const int zero {};
- static const int one {1};
- };
-
- static_assert(test::zero == 0, "");
- static_assert(test::one == 1, "");
-
- }
-
- namespace test_lambdas
- {
-
- void
- test1()
- {
- auto lambda1 = [](){};
- auto lambda2 = lambda1;
- lambda1();
- lambda2();
- }
-
- int
- test2()
- {
- auto a = [](int i, int j){ return i + j; }(1, 2);
- auto b = []() -> int { return '0'; }();
- auto c = [=](){ return a + b; }();
- auto d = [&](){ return c; }();
- auto e = [a, &b](int x) mutable {
- const auto identity = [](int y){ return y; };
- for (auto i = 0; i < a; ++i)
- a += b--;
- return x + identity(a + b);
- }(0);
- return a + b + c + d + e;
- }
-
- int
- test3()
- {
- const auto nullary = [](){ return 0; };
- const auto unary = [](int x){ return x; };
- using nullary_t = decltype(nullary);
- using unary_t = decltype(unary);
- const auto higher1st = [](nullary_t f){ return f(); };
- const auto higher2nd = [unary](nullary_t f1){
- return [unary, f1](unary_t f2){ return f2(unary(f1())); };
- };
- return higher1st(nullary) + higher2nd(nullary)(unary);
- }
-
- }
-
- namespace test_variadic_templates
- {
-
- template <int...>
- struct sum;
-
- template <int N0, int... N1toN>
- struct sum<N0, N1toN...>
- {
- /*
- Original test code used the auto keyword instead of declaring
- the type of "value" to be int. This causes Oracle Solaris Studio
- 12.4 to fail. This is possibly a compiler bug but in any case
- current test code works around it by an explicit declaration.
- */
- static constexpr int value = N0 + sum<N1toN...>::value;
- };
-
- template <>
- struct sum<>
- {
- static constexpr auto value = 0;
- };
-
- static_assert(sum<>::value == 0, "");
- static_assert(sum<1>::value == 1, "");
- static_assert(sum<23>::value == 23, "");
- static_assert(sum<1, 2>::value == 3, "");
- static_assert(sum<5, 5, 11>::value == 21, "");
- static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
-
- }
-
- // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
- // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
- // because of this.
- namespace test_template_alias_sfinae
- {
-
- struct foo {};
-
- template<typename T>
- using member = typename T::member_type;
-
- template<typename T>
- void func(...) {}
-
- template<typename T>
- void func(member<T>*) {}
-
- void test();
-
- void test() { func<foo>(0); }
-
- }
-
-} // namespace cxx11
-
-
-
-
-namespace cxx14
-{
-
- namespace test_polymorphic_lambdas
- {
-
- int
- test()
- {
- const auto lambda = [](auto&&... args){
- const auto istiny = [](auto x){
- return (sizeof(x) == 1UL) ? 1 : 0;
- };
- const int aretiny[] = { istiny(args)... };
- return aretiny[0];
- };
- return lambda(1, 1L, 1.0f, '1');
- }
-
- }
-
- namespace test_binary_literals
- {
-
- constexpr auto ivii = 0b0000000000101010;
- static_assert(ivii == 42, "wrong value");
-
- }
-
- namespace test_generalized_constexpr
- {
-
- template < typename CharT >
- constexpr unsigned long
- strlen_c(const CharT *const s) noexcept
- {
- auto length = 0UL;
- for (auto p = s; *p; ++p)
- ++length;
- return length;
- }
-
- static_assert(strlen_c("") == 0UL, "");
- static_assert(strlen_c("x") == 1UL, "");
- static_assert(strlen_c("test") == 4UL, "");
- static_assert(strlen_c("another\0test") == 7UL, "");
-
- }
-
- namespace test_lambda_init_capture
- {
-
- int
- test()
- {
- auto x = 0;
- const auto lambda1 = [a = x](int b){ return a + b; };
- const auto lambda2 = [a = lambda1(x)](){ return a; };
- return lambda2();
- }
-
- }
-
- namespace test_digit_separators
- {
-
- constexpr auto ten_million = 100'000'000;
- static_assert(ten_million == 100000000, "");
-
- }
-
- namespace test_return_type_deduction
- {
-
- auto f(int& x) { return x; }
- decltype(auto) g(int& x) { return x; }
-
- template < typename T1, typename T2 >
- struct is_same
- {
- static constexpr auto value = false;
- };
-
- template < typename T >
- struct is_same<T, T>
- {
- static constexpr auto value = true;
- };
-
- int
- test()
- {
- auto x = 0;
- static_assert(is_same<int, decltype(f(x))>::value, "");
- static_assert(is_same<int&, decltype(g(x))>::value, "");
- return x;
- }
-
- }
-
-} // namespace cxx14
-
-
-#endif
-
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ax_cv_cxx_compile_cxx14=yes
-else
- ax_cv_cxx_compile_cxx14=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx14" >&5
-$as_echo "$ax_cv_cxx_compile_cxx14" >&6; }
- if test x$ax_cv_cxx_compile_cxx14 = xyes; then
- ac_success=yes
- fi
+ # AC_CACHE_CHECK(whether $CXX supports C++14 features by default,
+ # ax_cv_cxx_compile_cxx14,
+ # [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_14])],
+ # [ax_cv_cxx_compile_cxx14=yes],
+ # [ax_cv_cxx_compile_cxx14=no])])
+ # if test x$ax_cv_cxx_compile_cxx14 = xyes; then
+ # ac_success=yes
+ # fi
if test x$ac_success = xno; then
for alternative in ${ax_cxx_compile_alternatives}; do
@@ -29940,7 +29276,6 @@ else
namespace cxx11
{
-
namespace test_static_assert
{
@@ -30343,8 +29678,8 @@ $as_echo "$ac_res" >&6; }
fi
if test x$ac_success = xno; then
- for alternative in ${ax_cxx_compile_alternatives}; do
- for switch in -std=c++${alternative}; do
+ for alternative in ${ax_cxx_compile_alternatives}; do
+ for switch in -std=c++${alternative} -std=sun${alternative}; do
cachevar=`$as_echo "ax_cv_cxx_compile_cxx14_$switch" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++14 features with $switch" >&5
$as_echo_n "checking whether $CXX supports C++14 features with $switch... " >&6; }
@@ -30364,7 +29699,6 @@ else
namespace cxx11
{
-
namespace test_static_assert
{
@@ -30849,822 +30183,14 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
ac_success=no
switch=""
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++17 features by default" >&5
-$as_echo_n "checking whether $CXX supports C++17 features by default... " >&6; }
-if ${ax_cv_cxx_compile_cxx17+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __cplusplus
-#error "This is not a C++ compiler"
-#elif __cplusplus <= 201402L
-#error "This is not a C++17 compiler"
-#else
-
-
-namespace cxx11
-{
-
- namespace test_static_assert
- {
-
- template <typename T>
- struct check
- {
- static_assert(sizeof(int) <= sizeof(T), "not big enough");
- };
-
- }
-
- namespace test_final_override
- {
-
- struct Base
- {
- virtual void f() {}
- };
-
- struct Derived : public Base
- {
- virtual void f() override {}
- };
-
- }
-
- namespace test_double_right_angle_brackets
- {
-
- template < typename T >
- struct check {};
-
- typedef check<void> single_type;
- typedef check<check<void>> double_type;
- typedef check<check<check<void>>> triple_type;
- typedef check<check<check<check<void>>>> quadruple_type;
-
- }
-
- namespace test_decltype
- {
-
- int
- f()
- {
- int a = 1;
- decltype(a) b = 2;
- return a + b;
- }
-
- }
-
- namespace test_type_deduction
- {
-
- template < typename T1, typename T2 >
- struct is_same
- {
- static const bool value = false;
- };
-
- template < typename T >
- struct is_same<T, T>
- {
- static const bool value = true;
- };
-
- template < typename T1, typename T2 >
- auto
- add(T1 a1, T2 a2) -> decltype(a1 + a2)
- {
- return a1 + a2;
- }
-
- int
- test(const int c, volatile int v)
- {
- static_assert(is_same<int, decltype(0)>::value == true, "");
- static_assert(is_same<int, decltype(c)>::value == false, "");
- static_assert(is_same<int, decltype(v)>::value == false, "");
- auto ac = c;
- auto av = v;
- auto sumi = ac + av + 'x';
- auto sumf = ac + av + 1.0;
- static_assert(is_same<int, decltype(ac)>::value == true, "");
- static_assert(is_same<int, decltype(av)>::value == true, "");
- static_assert(is_same<int, decltype(sumi)>::value == true, "");
- static_assert(is_same<int, decltype(sumf)>::value == false, "");
- static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
- return (sumf > 0.0) ? sumi : add(c, v);
- }
-
- }
-
- namespace test_noexcept
- {
-
- int f() { return 0; }
- int g() noexcept { return 0; }
-
- static_assert(noexcept(f()) == false, "");
- static_assert(noexcept(g()) == true, "");
-
- }
-
- namespace test_constexpr
- {
-
- template < typename CharT >
- unsigned long constexpr
- strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
- {
- return *s ? strlen_c_r(s + 1, acc + 1) : acc;
- }
-
- template < typename CharT >
- unsigned long constexpr
- strlen_c(const CharT *const s) noexcept
- {
- return strlen_c_r(s, 0UL);
- }
-
- static_assert(strlen_c("") == 0UL, "");
- static_assert(strlen_c("1") == 1UL, "");
- static_assert(strlen_c("example") == 7UL, "");
- static_assert(strlen_c("another\0example") == 7UL, "");
-
- }
-
- namespace test_rvalue_references
- {
-
- template < int N >
- struct answer
- {
- static constexpr int value = N;
- };
-
- answer<1> f(int&) { return answer<1>(); }
- answer<2> f(const int&) { return answer<2>(); }
- answer<3> f(int&&) { return answer<3>(); }
-
- void
- test()
- {
- int i = 0;
- const int c = 0;
- static_assert(decltype(f(i))::value == 1, "");
- static_assert(decltype(f(c))::value == 2, "");
- static_assert(decltype(f(0))::value == 3, "");
- }
-
- }
-
- namespace test_uniform_initialization
- {
-
- struct test
- {
- static const int zero {};
- static const int one {1};
- };
-
- static_assert(test::zero == 0, "");
- static_assert(test::one == 1, "");
-
- }
-
- namespace test_lambdas
- {
-
- void
- test1()
- {
- auto lambda1 = [](){};
- auto lambda2 = lambda1;
- lambda1();
- lambda2();
- }
-
- int
- test2()
- {
- auto a = [](int i, int j){ return i + j; }(1, 2);
- auto b = []() -> int { return '0'; }();
- auto c = [=](){ return a + b; }();
- auto d = [&](){ return c; }();
- auto e = [a, &b](int x) mutable {
- const auto identity = [](int y){ return y; };
- for (auto i = 0; i < a; ++i)
- a += b--;
- return x + identity(a + b);
- }(0);
- return a + b + c + d + e;
- }
-
- int
- test3()
- {
- const auto nullary = [](){ return 0; };
- const auto unary = [](int x){ return x; };
- using nullary_t = decltype(nullary);
- using unary_t = decltype(unary);
- const auto higher1st = [](nullary_t f){ return f(); };
- const auto higher2nd = [unary](nullary_t f1){
- return [unary, f1](unary_t f2){ return f2(unary(f1())); };
- };
- return higher1st(nullary) + higher2nd(nullary)(unary);
- }
-
- }
-
- namespace test_variadic_templates
- {
-
- template <int...>
- struct sum;
-
- template <int N0, int... N1toN>
- struct sum<N0, N1toN...>
- {
- /*
- Original test code used the auto keyword instead of declaring
- the type of "value" to be int. This causes Oracle Solaris Studio
- 12.4 to fail. This is possibly a compiler bug but in any case
- current test code works around it by an explicit declaration.
- */
- static constexpr int value = N0 + sum<N1toN...>::value;
- };
-
- template <>
- struct sum<>
- {
- static constexpr auto value = 0;
- };
-
- static_assert(sum<>::value == 0, "");
- static_assert(sum<1>::value == 1, "");
- static_assert(sum<23>::value == 23, "");
- static_assert(sum<1, 2>::value == 3, "");
- static_assert(sum<5, 5, 11>::value == 21, "");
- static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
-
- }
-
- // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
- // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
- // because of this.
- namespace test_template_alias_sfinae
- {
-
- struct foo {};
-
- template<typename T>
- using member = typename T::member_type;
-
- template<typename T>
- void func(...) {}
-
- template<typename T>
- void func(member<T>*) {}
-
- void test();
-
- void test() { func<foo>(0); }
-
- }
-
-} // namespace cxx11
-
-
-
-
-namespace cxx14
-{
-
- namespace test_polymorphic_lambdas
- {
-
- int
- test()
- {
- const auto lambda = [](auto&&... args){
- const auto istiny = [](auto x){
- return (sizeof(x) == 1UL) ? 1 : 0;
- };
- const int aretiny[] = { istiny(args)... };
- return aretiny[0];
- };
- return lambda(1, 1L, 1.0f, '1');
- }
-
- }
-
- namespace test_binary_literals
- {
-
- constexpr auto ivii = 0b0000000000101010;
- static_assert(ivii == 42, "wrong value");
-
- }
-
- namespace test_generalized_constexpr
- {
-
- template < typename CharT >
- constexpr unsigned long
- strlen_c(const CharT *const s) noexcept
- {
- auto length = 0UL;
- for (auto p = s; *p; ++p)
- ++length;
- return length;
- }
-
- static_assert(strlen_c("") == 0UL, "");
- static_assert(strlen_c("x") == 1UL, "");
- static_assert(strlen_c("test") == 4UL, "");
- static_assert(strlen_c("another\0test") == 7UL, "");
-
- }
-
- namespace test_lambda_init_capture
- {
-
- int
- test()
- {
- auto x = 0;
- const auto lambda1 = [a = x](int b){ return a + b; };
- const auto lambda2 = [a = lambda1(x)](){ return a; };
- return lambda2();
- }
-
- }
-
- namespace test_digit_separators
- {
-
- constexpr auto ten_million = 100'000'000;
- static_assert(ten_million == 100000000, "");
-
- }
-
- namespace test_return_type_deduction
- {
-
- auto f(int& x) { return x; }
- decltype(auto) g(int& x) { return x; }
-
- template < typename T1, typename T2 >
- struct is_same
- {
- static constexpr auto value = false;
- };
-
- template < typename T >
- struct is_same<T, T>
- {
- static constexpr auto value = true;
- };
-
- int
- test()
- {
- auto x = 0;
- static_assert(is_same<int, decltype(f(x))>::value, "");
- static_assert(is_same<int&, decltype(g(x))>::value, "");
- return x;
- }
-
- }
-
-} // namespace cxx14
-
-
-
-
-/* We don't want compiler-specific tests for R so these conditional
- tests are commented out.
-
- For C++17 features supported by compiler see
- https://gcc.gnu.org/projects/cxx-status.html#cxx1z for gcc
- http://clang.llvm.org/cxx_status.html for clang
- http://en.cppreference.com/w/cpp/compiler_support for an overview
-
-#if defined(__clang__)
- #define REALLY_CLANG
-#else
- #if defined(__GNUC__)
- #define REALLY_GCC
- #endif
-#endif
-*/
-
-#include <initializer_list>
-#include <utility>
-#include <type_traits>
-
-namespace cxx17
-{
-
-/* Not listed as supported by clang 4 - MTP
-#if !defined(REALLY_CLANG)
- namespace test_constexpr_lambdas
- {
-
- // TODO: test it with clang++ from git
-
- constexpr int foo = [](){return 42;}();
-
- }
-#endif // !defined(REALLY_CLANG)
-*/
-
- namespace test::nested_namespace::definitions
- {
-
- }
-
- namespace test_fold_expression
- {
-
- template<typename... Args>
- int multiply(Args... args)
- {
- return (args * ... * 1);
- }
-
- template<typename... Args>
- bool all(Args... args)
- {
- return (args && ...);
- }
-
- }
-
- namespace test_extended_static_assert
- {
-
- static_assert (true);
-
- }
-
- namespace test_auto_brace_init_list
- {
-
- auto foo = {5};
- auto bar {5};
-
- static_assert(std::is_same<std::initializer_list<int>, decltype(foo)>::value);
- static_assert(std::is_same<int, decltype(bar)>::value);
- }
-
- namespace test_typename_in_template_template_parameter
- {
-
- template<template<typename> typename X> struct D;
-
- }
-
- namespace test_fallthrough_nodiscard_maybe_unused_attributes
- {
-
- int f1()
- {
- return 42;
- }
-
- [[nodiscard]] int f2()
- {
- [[maybe_unused]] auto unused = f1();
-
- switch (f1())
- {
- case 17:
- f1();
- [[fallthrough]];
- case 42:
- f1();
- }
- return f1();
- }
-
- }
-
- namespace test_extended_aggregate_initialization
- {
-
- struct base1
- {
- int b1, b2 = 42;
- };
-
- struct base2
- {
- base2() {
- b3 = 42;
- }
- int b3;
- };
-
- struct derived : base1, base2
- {
- int d;
- };
-
- derived d1 {{1, 2}, {}, 4}; // full initialization
- derived d2 {{}, {}, 4}; // value-initialized bases
-
- }
-
- namespace test_general_range_based_for_loop
- {
-
- struct iter
- {
- int i;
-
- int& operator* ()
- {
- return i;
- }
-
- const int& operator* () const
- {
- return i;
- }
-
- iter& operator++()
- {
- ++i;
- return *this;
- }
- };
-
- struct sentinel
- {
- int i;
- };
-
- bool operator== (const iter& i, const sentinel& s)
- {
- return i.i == s.i;
- }
-
- bool operator!= (const iter& i, const sentinel& s)
- {
- return !(i == s);
- }
-
- struct range
- {
- iter begin() const
- {
- return {0};
- }
-
- sentinel end() const
- {
- return {5};
- }
- };
-
- void f()
- {
- range r {};
-
- for (auto i : r)
- {
- [[maybe_unused]] auto v = i;
- }
- }
-
- }
-
- namespace test_lambda_capture_asterisk_this_by_value
- {
-
- struct t
- {
- int i;
- int foo()
- {
- return [*this]()
- {
- return i;
- }();
- }
- };
-
- }
-
- namespace test_enum_class_construction
- {
-
- enum class byte : unsigned char
- {};
-
- byte foo {42};
-
- }
-
- namespace test_constexpr_if
- {
-
- template <bool cond>
- int f ()
- {
- if constexpr(cond)
- {
- return 13;
- }
- else
- {
- return 42;
- }
- }
-
- }
-
- namespace test_selection_statement_with_initializer
- {
-
- int f()
- {
- return 13;
- }
-
- int f2()
- {
- if (auto i = f(); i > 0)
- {
- return 3;
- }
-
- switch (auto i = f(); i + 4)
- {
- case 17:
- return 2;
-
- default:
- return 1;
- }
- }
-
- }
-
-/* P0091R3 not supported by clang 4.0.0 - MTP
-#if !defined(REALLY_CLANG)
- namespace test_template_argument_deduction_for_class_templates
- {
-
- // TODO: test it with clang++ from git
-
- template <typename T1, typename T2>
- struct pair
- {
- pair (T1 p1, T2 p2)
- : m1 {p1},
- m2 {p2}
- {}
-
- T1 m1;
- T2 m2;
- };
-
- void f()
- {
- [[maybe_unused]] auto p = pair{13, 42u};
- }
-
- }
-#endif // !defined(REALLY_CLANG)
-*/
-
- namespace test_non_type_auto_template_parameters
- {
-
- template <auto n>
- struct B
- {};
-
- B<5> b1;
- B<'a'> b2;
-
- }
-
-/* P0217R3 should be supported in clang 4.0.0, but test code dumps core
- In addition, gcc 7.0.1 fails on the last test - MTP
-#if !defined(REALLY_CLANG)
- namespace test_structured_bindings
- {
-
- // TODO: test it with clang++ from git
-
- int arr[2] = { 1, 2 };
- std::pair<int, int> pr = { 1, 2 };
-
- auto f1() -> int(&)[2]
- {
- return arr;
- }
-
- auto f2() -> std::pair<int, int>&
- {
- return pr;
- }
-
- struct S
- {
- int x1 : 2;
- volatile double y1;
- };
-
- S f3()
- {
- return {};
- }
-
- auto [ x1, y1 ] = f1();
- auto& [ xr1, yr1 ] = f1();
- auto [ x2, y2 ] = f2();
- auto& [ xr2, yr2 ] = f2();
- const auto [ x3, y3 ] = f3();
-
- }
-#endif // !defined(REALLY_CLANG)
-*/
-
-/*
- P0012R1 is supported by clang 4.0.0 - MTP
- #if !defined(REALLY_CLANG)
-*/
- namespace test_exception_spec_type_system
- {
-
- // TODO: test it with clang++ from git
-
- struct Good {};
- struct Bad {};
-
- void g1() noexcept;
- void g2();
-
- template<typename T>
- Bad
- f(T*, T*);
-
- template<typename T1, typename T2>
- Good
- f(T1*, T2*);
-
- static_assert (std::is_same_v<Good, decltype(f(g1, g2))>);
-
- }
-/*
- #endif // !defined(REALLY_CLANG)
-*/
-
- namespace test_inline_variables
- {
-
- template<class T> void f(T)
- {}
-
- template<class T> inline T g(T)
- {
- return T{};
- }
-
- template<> inline void f<>(int)
- {}
-
- template<> int g<>(int)
- {
- return 5;
- }
-
- }
-
-} // namespace cxx17
-
-
-#endif
-
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ax_cv_cxx_compile_cxx17=yes
-else
- ax_cv_cxx_compile_cxx17=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx17" >&5
-$as_echo "$ax_cv_cxx_compile_cxx17" >&6; }
- if test x$ax_cv_cxx_compile_cxx17 = xyes; then
- ac_success=yes
- fi
+ # AC_CACHE_CHECK(whether $CXX supports C++17 features by default,
+ # ax_cv_cxx_compile_cxx17,
+ # [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_17])],
+ # [ax_cv_cxx_compile_cxx17=yes],
+ # [ax_cv_cxx_compile_cxx17=no])])
+ # if test x$ax_cv_cxx_compile_cxx17 = xyes; then
+ # ac_success=yes
+ # fi
if test x$ac_success = xno; then
for alternative in ${ax_cxx_compile_alternatives}; do
@@ -31688,7 +30214,6 @@ else
namespace cxx11
{
-
namespace test_static_assert
{
@@ -32499,8 +31024,8 @@ $as_echo "$ac_res" >&6; }
fi
if test x$ac_success = xno; then
- for alternative in ${ax_cxx_compile_alternatives}; do
- for switch in -std=c++${alternative}; do
+ for alternative in ${ax_cxx_compile_alternatives}; do
+ for switch in -std=c++${alternative} -std=sun${alternative}; do
cachevar=`$as_echo "ax_cv_cxx_compile_cxx17_$switch" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++17 features with $switch" >&5
$as_echo_n "checking whether $CXX supports C++17 features with $switch... " >&6; }
@@ -32520,7 +31045,6 @@ else
namespace cxx11
{
-
namespace test_static_assert
{
@@ -33733,14 +32257,16 @@ _ACEOF
## C99 functions:
## not all C99 runtimes are complete,
-## but we have substitutes for expm1 hypot log1p and (internally) nearbyint[l]
-## FreeBSD used to lack log1pl, but 10 seems to have it.
-## FreeBSD 8.2 lacks log2
-## FreeBSD 7.3 lacks nearbyintl/rintl (nearbyint appeared in 5.2)
-## Apparently rint was once broken on HP-UX: undefine HAVE_RINT for such platforms
-## Cygwin and FreeBSD lacked powl (FreeBSD 10 seems to have it).
+## but we had substitutes for expm1 hypot log1p and (internally) nearbyint[l]
+## FreeBSD used to lack log1pl, but 6.0 had it
+## FreeBSD 8.3 first had log2
+## FreeBSD 8.3 first had nearbyintl/rintl (from 2012)
+## https://www.freebsd.org/cgi/man.cgi?query=log&apropos=0&sektion=3&manpath=FreeBSD+11-current&format=html will give an overview.
+## Cygwin and FreeBSD lacked powl (FreeBSD 10.4 (2017-10) has it).
## Cygwin had rintl but not nearbyintl
-for ac_func in expm1 hypot log1p log1pl log2 log10 nearbyint nearbyintl powl rint rintl
+## https://cygwin.com/cygwin-api/compatibility.html says it now has powl and nearbyintl .
+## powl nearbyintl and rintl are only used in format.c
+for ac_func in expm1 hypot log1p log1pl log2 log10 nearbyint nearbyintl powl rintl
do
as_ac_Symbol=`$as_echo "ac_cv_have_decl_$ac_func" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $ac_func exists and is declared" >&5
@@ -33790,6 +32316,19 @@ _ACEOF
fi
done
+## require these from R 3.5.0.
+if test "${ac_cv_have_decl_expm1}" = "no"; then
+ as_fn_error $? "Building R requires the 'expm1' C99 function" "$LINENO" 5
+fi
+if test "${ac_cv_have_decl_hypot}" = "no"; then
+ as_fn_error $? "Building R requires the 'hypot' C99 function" "$LINENO" 5
+fi
+if test "${ac_cv_have_decl_log1p}" = "no"; then
+ as_fn_error $? "Building R requires the 'log1p' C99 function" "$LINENO" 5
+fi
+if test "${ac_cv_have_decl_nearbyint}" = "no"; then
+ as_fn_error $? "Building R requires the 'nearbyint' C99 function" "$LINENO" 5
+fi
## va_copy is C99: required as from R 2.13.0
for ac_func in va_copy
do
@@ -34382,7 +32921,7 @@ _ACEOF
fi
done
-for ac_func in getrlimit getrusage getpriority
+for ac_func in getrlimit setrlimit getrusage getpriority
do
as_ac_Symbol=`$as_echo "ac_cv_have_decl_$ac_func" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $ac_func exists and is declared" >&5
@@ -35209,6 +33748,71 @@ cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_RTLD_NEXT $ac_have_decl
_ACEOF
+for ac_header in thread.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "thread.h" "ac_cv_header_thread_h" "$ac_includes_default"
+if test "x$ac_cv_header_thread_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_THREAD_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_func in thr_stksegment
+do
+as_ac_Symbol=`$as_echo "ac_cv_have_decl_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $ac_func exists and is declared" >&5
+$as_echo_n "checking whether $ac_func exists and is declared... " >&6; }
+if eval \${$as_ac_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <thread.h>
+#include <signal.h>
+
+
+#ifdef F77_DUMMY_MAIN
+
+# ifdef __cplusplus
+ extern "C"
+# endif
+ int F77_DUMMY_MAIN() { return 1; }
+
+#endif
+int
+main ()
+{
+#ifndef $ac_func
+ char *p = (char *) $ac_func;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_ac_Symbol=yes"
+else
+ eval "$as_ac_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$as_ac_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if test `eval 'as_val=${'$as_ac_Symbol'};$as_echo "$as_val"'` = yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
## Lots of uses of getwd(), file.access(), Sys.glob().
## We don't need times() except as a fallback for getrusage and
@@ -35461,24 +34065,6 @@ $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
## a) that would comment out #undef statements in Rmath.h.in and
## b) Rmath.h should be a self-contained file for standalone Rmath use.
## </NOTE>
-if test "${ac_cv_have_decl_expm1}" = yes; then
- RMATH_HAVE_EXPM1="# define HAVE_EXPM1 1"
-else
- RMATH_HAVE_EXPM1="# undef HAVE_EXPM1"
-fi
-
-if test "${ac_cv_have_decl_hypot}" = yes; then
- RMATH_HAVE_HYPOT="# define HAVE_HYPOT 1"
-else
- RMATH_HAVE_HYPOT="# undef HAVE_HYPOT"
-fi
-
-if test "${ac_cv_have_decl_log1p}" = yes; then
- RMATH_HAVE_LOG1P="# define HAVE_LOG1P 1"
-else
- RMATH_HAVE_LOG1P="# undef HAVE_LOG1P"
-fi
-
## Do we need substitutes?
## mkdtemp is not on Solaris 10, added in POSIX 2008
@@ -35833,6 +34419,8 @@ fi
fi
## check accuracy of log1p
+## issues are probably ancient history:
+## reported for NetBSD 1.6 and OpenBSD 3.2 (both 2002).
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working log1p" >&5
$as_echo_n "checking for working log1p... " >&6; }
if ${r_cv_func_log1p_works+:} false; then :
@@ -36954,7 +35542,7 @@ fi
fi
- rm -rf conftest conftest.* conftestf.* core
+ rm -Rf conftest conftest.* conftestf.* core
if test -n "${r_cv_zdotu_is_usable}"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@@ -37139,7 +35727,7 @@ case "${host_os}" in
## resolve dylib dependencies, so libRblas will not be found unless
## we tell ld where it lives. I don't know of any more elegant solution :/
if test "x${use_blas_shlib}" = xyes; then
- LIBR="${LIBR} -dylib_file libRblas.dylib:\$(R_HOME)/lib\$(R_ARCH)/libRblas.dylib"
+ LIBR="${LIBR} -dylib_file libRblas.dylib:\"\$(R_HOME)/lib\$(R_ARCH)/libRblas.dylib\""
fi
;;
esac
@@ -37243,7 +35831,7 @@ fi
if test "${use_blas_shlib}" = yes; then
## set BLAS_LIBS to point at local version
- BLAS_LIBS="-L\$(R_HOME)/lib\$(R_ARCH) -lRblas"
+ BLAS_LIBS="-L\"\$(R_HOME)/lib\$(R_ARCH)\" -lRblas"
fi
if test "x${use_veclib_g95fix}" = xyes; then
@@ -37413,7 +36001,7 @@ LIBS="${acx_lapack_save_LIBS}"
fi
if test "${acx_lapack_ok}" != "yes"; then
- LAPACK_LIBS="-L\$(R_HOME)/lib\$(R_ARCH) -lRlapack"
+ LAPACK_LIBS="-L\"\$(R_HOME)/lib\$(R_ARCH)\" -lRlapack"
fi
if test "${acx_lapack_ok}" = "yes"; then
@@ -37613,6 +36201,72 @@ $as_echo "$r_cv_iconv_latin1" >&6; }
if test "$r_cv_iconv_latin1" != yes; then
as_fn_error $? "a suitable iconv is essential" "$LINENO" 5
fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iconv accepts \"CP1252\"" >&5
+$as_echo_n "checking whether iconv accepts \"CP1252\"... " >&6; }
+if ${r_cv_iconv_cp1252+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ r_cv_iconv_cp1252=yes
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include "confdefs.h"
+#include <stdlib.h>
+#ifdef HAVE_ICONV_H
+#include <iconv.h>
+#endif
+
+int main () {
+ iconv_t cd;
+ cd = iconv_open("CP1252","UTF-8");
+ if(cd == (iconv_t)(-1)) exit(1);
+ iconv_close(cd);
+ cd = iconv_open("UTF-8","CP1252");
+ if(cd == (iconv_t)(-1)) exit(1);
+ iconv_close(cd);
+ cd = iconv_open("CP1252", "");
+ if(cd == (iconv_t)(-1)) exit(1);
+ iconv_close(cd);
+ cd = iconv_open("","CP1252");
+ if(cd == (iconv_t)(-1)) exit(1);
+ iconv_close(cd);
+ cd = iconv_open("CP1252","latin1");
+ if(cd == (iconv_t)(-1)) exit(1);
+ iconv_close(cd);
+ cd = iconv_open("latin1","CP1252");
+ if(cd == (iconv_t)(-1)) exit(1);
+ iconv_close(cd);
+ exit(0);
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ r_cv_iconv_cp1252=yes
+else
+ r_cv_iconv_cp1252=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $r_cv_iconv_cp1252" >&5
+$as_echo "$r_cv_iconv_cp1252" >&6; }
+
+ ## on Windows we supply iconv ourselves
+ case "${host_os}" in
+ mingw*)
+ r_cv_iconv_cp1252=yes
+ ;;
+ esac
+ if test "$r_cv_iconv_cp1252" = yes; then
+
+$as_echo "#define HAVE_ICONV_CP1252 1" >>confdefs.h
+
+ fi
fi
## if the iconv we are using was in libiconv we have already included -liconv
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconvlist" >&5
@@ -40797,11 +39451,11 @@ if test "x${r_cv_have_pcre820}" != xyes; then
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if PCRE version >= 8.32" >&5
$as_echo_n "checking if PCRE version >= 8.32... " >&6; }
-if ${r_cv_have_pcre832+:} false; then :
+if ${r_cv_have_pcre_832+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "$cross_compiling" = yes; then :
- r_cv_have_pcre832=no
+ r_cv_have_pcre_832=no
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -40823,17 +39477,17 @@ int main() {
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
- r_cv_have_pcre832=yes
+ r_cv_have_pcre_832=yes
else
- r_cv_have_pcre832=no
+ r_cv_have_pcre_832=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $r_cv_have_pcre832" >&5
-$as_echo "$r_cv_have_pcre832" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $r_cv_have_pcre_832" >&5
+$as_echo "$r_cv_have_pcre_832" >&6; }
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PCRE support suffices" >&5
@@ -40844,13 +39498,145 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
fi
-if test "x${r_cv_have_pcre832}" != xyes; then
+if test "x${r_cv_have_pcre_832}" != xyes; then
warn_pcre_version="pcre < 8.32 is deprecated"
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ${warn_pcre_version}" >&5
$as_echo "$as_me: WARNING: ${warn_pcre_version}" >&2;}
fi
+## PCRE2 header and 8-bit library.
+have_pcre2=no
+if "${PKGCONF}" --exists libpcre2-8; then
+ PCRE2_CPPFLAGS=`"${PKGCONF}" --cflags libpcre2-8`
+ PCRE2_LIBS=`"${PKGCONF}" --libs libpcre2-8`
+ have_pcre2=yes
+else
+ # Extract the first word of "pcre2-config", so it can be a program name with args.
+set dummy pcre2-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PCRE2_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PCRE2_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PCRE2_CONFIG="$PCRE2_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PCRE2_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PCRE2_CONFIG=$ac_cv_path_PCRE2_CONFIG
+if test -n "$PCRE2_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PCRE2_CONFIG" >&5
+$as_echo "$PCRE2_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test -n "${PCRE2_CONFIG}"; then
+ PCRE2_CPPFLAGS=`"${PCRE2_CONFIG}" --cflags`
+ PCRE2_LIBS=`"${PCRE2_CONFIG}" --libs8`
+ have_pcre2=yes
+ fi
+fi
+if test "x${have_pcre2}" = "xyes"; then
+ r_save_CPPFLAGS="${CPPFLAGS}"
+ CPPFLAGS="${PCRE2_CPPFLAGS} ${CPPFLAGS}"
+ r_save_LIBS="${LIBS}"
+ LIBS="${PCRE2_LIBS} ${LIBS}"
+
+$as_echo "#define PCRE2_CODE_UNIT_WIDTH 8" >>confdefs.h
+
+ ac_fn_c_check_header_mongrel "$LINENO" "pcre2.h" "ac_cv_header_pcre2_h" "$ac_includes_default"
+if test "x$ac_cv_header_pcre2_h" = xyes; then :
+ have_pcre2=yes
+else
+ have_pcre2=no
+fi
+
+
+ if test "x${have_pcre2}" = "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pcre2_compile_8 in -lpcre2-8" >&5
+$as_echo_n "checking for pcre2_compile_8 in -lpcre2-8... " >&6; }
+if ${ac_cv_lib_pcre2_8_pcre2_compile_8+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpcre2-8 $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pcre2_compile_8 ();
+#ifdef F77_DUMMY_MAIN
+
+# ifdef __cplusplus
+ extern "C"
+# endif
+ int F77_DUMMY_MAIN() { return 1; }
+
+#endif
+int
+main ()
+{
+return pcre2_compile_8 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_pcre2_8_pcre2_compile_8=yes
+else
+ ac_cv_lib_pcre2_8_pcre2_compile_8=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pcre2_8_pcre2_compile_8" >&5
+$as_echo "$ac_cv_lib_pcre2_8_pcre2_compile_8" >&6; }
+if test "x$ac_cv_lib_pcre2_8_pcre2_compile_8" = xyes; then :
+ have_pcre2=yes
+else
+ have_pcre2=no
+fi
+
+ fi
+ if test "x${have_pcre2}" = "xyes"; then
+
+$as_echo "#define HAVE_PCRE2 1" >>confdefs.h
+
+ else
+ CPPFLAGS="${r_save_CPPFLAGS}"
+ LIBS="${r_save_LIBS}"
+ fi
+fi
+
+
## tre headers and libraries.
if test "x${use_system_tre}" = xyes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tre_regncompb in -ltre" >&5
@@ -41122,7 +39908,7 @@ BITMAP_LIBS=
if test "${use_jpeglib}" = yes; then
save_CPPFLAGS=${CPPFLAGS}
## IJG version 9c (Jan 2018) has support as libjpeg.
- ## libjpeg-turbo has had this for a while.
+ ## libjpeg-turbo has had this for a wh ile.
if "${PKGCONF}" --exists libjpeg; then
JPG_CPPFLAGS=`"${PKGCONF}" --cflags libjpeg`
JPG_LIBS=`"${PKGCONF}" --libs libjpeg`
@@ -42686,6 +41472,14 @@ custom_JAVA_HOME="${JAVA_HOME}"
custom_JAVA_LIBS="${JAVA_LIBS}"
custom_JAVA_CPPFLAGS="${JAVA_CPPFLAGS}"
custom_JAVA_LD_LIBRARY_PATH="${JAVA_LD_LIBRARY_PATH}"
+custom_JAVA="${JAVA}"
+custom_JAVAC="${JAVAC}"
+custom_JAVAH="${JAVAH}"
+custom_JAR="${JAR}"
+
+
+
+
@@ -46143,7 +44937,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 -xopenmp -fopenmp -qopenmp \
+ for ac_option in -xopenmp -fopenmp -qopenmp \
-openmp -mp -omp -qsmp=omp -homp \
-fopenmp=libomp \
-Popenmp --openmp; do
@@ -46204,7 +44998,6 @@ FCLIBS=${FCLIBS}
## OpenMP package stuff (needs to come *after* configuration of all
## compilers).
## We allow the users to override this for packages only (for now)
-## FIXME: what if SHLIB_OPENMP_?FLAGS is set but empty? (could use -n "${VAR+set}")
if test "x${shlib_ld_was_given}" = xno -a \
"${SHLIB_LD}" = "\$(CC)" -a \
"x${ac_cv_prog_c_openmp}" != "xunsupported" -a \
@@ -51377,7 +50170,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.4, which was
+This file was extended by R $as_me 3.5.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -51444,7 +50237,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.4
+R config.status 3.5.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 330d79a..8d35337 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
###
### Process this file with autoconf to produce a configure script.
###
-### Copyright (C) 1998-2017 R Core Team
+### Copyright (C) 1998-2018 R Core Team
###
### This file is part of R.
###
@@ -290,7 +290,7 @@ AC_ARG_ENABLE([BLAS-shlib],
## As from R 3.2.0 split up -L... and -lR
if test "${want_R_shlib}" = yes; then
- LIBR0="-L\$(R_HOME)/lib\$(R_ARCH)"
+ LIBR0="-L\"\$(R_HOME)/lib\$(R_ARCH)\""
LIBR1=-lR
else
LIBR0=
@@ -436,7 +436,7 @@ AC_ARG_WITH([system-valgrind-headers],
[use_system_valgrind=no])
AC_ARG_WITH([internal-tzcode],
-[AS_HELP_STRING([--with-internal-tzcode],[use internal time-zone code @<:@no@:>@])],
+[AS_HELP_STRING([--with-internal-tzcode],[use internal time-zone code @<:@no, yes on macOS@:>@])],
[use_internal_tzcode=${withval}],
[use_internal_tzcode=default])
@@ -550,10 +550,10 @@ AC_ARG_VAR([R_SHELL],
if test -z "${r_arch}"; then
R_ARCH=
- R_XTRA_CPPFLAGS2="-I\$(R_INCLUDE_DIR)"
+ R_XTRA_CPPFLAGS2="-I\"\$(R_INCLUDE_DIR)\""
else
R_ARCH="/${r_arch}"
- R_XTRA_CPPFLAGS2="-I\$(R_INCLUDE_DIR) -I\$(R_INCLUDE_DIR)/${r_arch}"
+ R_XTRA_CPPFLAGS2="-I\"\$(R_INCLUDE_DIR)\" -I\"\$(R_INCLUDE_DIR)/${r_arch}\""
fi
AC_DEFINE_UNQUOTED(R_ARCH, "${r_arch}",
[Define this to use architecture-dependent subdirectories of this name.])
@@ -574,12 +574,7 @@ AC_MSG_RESULT([${BUILDDIR_IS_SRCDIR}])
### * Checks for programs.
-R_MISSING_PROG(ACLOCAL, aclocal)
-R_MISSING_PROG(AUTOCONF, autoconf)
-R_MISSING_PROG(AUTOMAKE, automake)
-R_MISSING_PROG(AUTOHEADER, autoheader)
AC_PROG_LN_S
-AC_PROG_YACC
R_PROG_AR
R_PROG_INSTALL
@@ -606,13 +601,29 @@ AC_PATH_PROGS(R_BZIPCMD, [${BZIP} bzip2], "")
R_PROG_BROWSER
## PDF viewer
R_PROG_PDFVIEWER
-## Noweb - used for maintainer mode only
+## Noweb (notangle), aclocal, autoconf, autoheader - maintainer mode only
+
+R_MISSING_PROG(ACLOCAL, aclocal,
+ R_MNT_WARN([[aclocal is missing - aclocal.m4 cannot be updated!]])
+)
+R_MISSING_PROG(AUTOCONF, autoconf,
+ R_MNT_WARN([[autoconf is missing - configure cannot be updated!]])
+)
+R_MISSING_PROG(AUTOHEADER, autoheader,
+ R_MNT_WARN([[autoheader is missing - header file templates like config.h.in cannot be updated!]])
+)
+AC_PROG_YACC
+if test "${YACC}" = yacc ; then
+ ## yacc is the default value even when yacc is not found
+ AC_CHECK_PROG(JUSTYACC, yacc, yes)
+ if test "x${JUSTYACC}" != xyes ; then
+ R_MNT_WARN([[yacc is missing - parsers cannot be updated!]])
+ fi
+fi
AC_PATH_PROG(NOTANGLE, notangle, false)
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
+ R_MNT_WARN([[notangle is missing - byte-code compiler source cannot be updated!]])
+ NOTANGLE=notangle
fi
## javareconf needs this
AC_PATH_PROG(REALPATH, realpath, false)
@@ -1102,11 +1113,21 @@ case "${host_os}" in
;;
esac
+## This was -ffloat-store on all gfortran/g77 platforms prior to 3.5.0
+## Suggestion adopted from https://gcc.gnu.org/wiki/FloatingPointMath
+## It was already the default on 32-bit macOS
if test "${SAFE_FFLAGS+set}" != set; then
if test "x${ac_cv_f77_compiler_gnu}" = xyes; then
- SAFE_FFLAGS="${FFLAGS} -ffloat-store"
+ case "${host_cpu}" in
+ i*86|x86_64)
+ SAFE_FFLAGS="${FFLAGS} -msse2 -mfpmath=sse"
+ ;;
+ *)
+ SAFE_FFLAGS="${FFLAGS}"
+ ::
+ esac
else
- SAFE_FFLAGS=${FFLAGS}
+ SAFE_FFLAGS="${FFLAGS}"
fi
fi
@@ -1795,14 +1816,29 @@ AC_CHECK_DECLS([alloca], , ,
## C99 functions:
## not all C99 runtimes are complete,
-## but we have substitutes for expm1 hypot log1p and (internally) nearbyint[l]
-## FreeBSD used to lack log1pl, but 10 seems to have it.
-## FreeBSD 8.2 lacks log2
-## FreeBSD 7.3 lacks nearbyintl/rintl (nearbyint appeared in 5.2)
-## Apparently rint was once broken on HP-UX: undefine HAVE_RINT for such platforms
-## Cygwin and FreeBSD lacked powl (FreeBSD 10 seems to have it).
+## but we had substitutes for expm1 hypot log1p and (internally) nearbyint[l]
+## FreeBSD used to lack log1pl, but 6.0 had it
+## FreeBSD 8.3 first had log2
+## FreeBSD 8.3 first had nearbyintl/rintl (from 2012)
+## https://www.freebsd.org/cgi/man.cgi?query=log&apropos=0&sektion=3&manpath=FreeBSD+11-current&format=html will give an overview.
+## Cygwin and FreeBSD lacked powl (FreeBSD 10.4 (2017-10) has it).
## Cygwin had rintl but not nearbyintl
-R_CHECK_FUNCS([expm1 hypot log1p log1pl log2 log10 nearbyint nearbyintl powl rint rintl], [#include <math.h>])
+## https://cygwin.com/cygwin-api/compatibility.html says it now has powl and nearbyintl .
+## powl nearbyintl and rintl are only used in format.c
+R_CHECK_FUNCS([expm1 hypot log1p log1pl log2 log10 nearbyint nearbyintl powl rintl], [#include <math.h>])
+## require these from R 3.5.0.
+if test "${ac_cv_have_decl_expm1}" = "no"; then
+ AC_MSG_ERROR([Building R requires the 'expm1' C99 function])
+fi
+if test "${ac_cv_have_decl_hypot}" = "no"; then
+ AC_MSG_ERROR([Building R requires the 'hypot' C99 function])
+fi
+if test "${ac_cv_have_decl_log1p}" = "no"; then
+ AC_MSG_ERROR([Building R requires the 'log1p' C99 function])
+fi
+if test "${ac_cv_have_decl_nearbyint}" = "no"; then
+ AC_MSG_ERROR([Building R requires the 'nearbyint' C99 function])
+fi
## va_copy is C99: required as from R 2.13.0
R_CHECK_FUNCS([va_copy], [#include <stdarg.h>])
if test "${ac_cv_have_decl_va_copy}" = "no"; then
@@ -1861,7 +1897,7 @@ case "${host_os}" in
esac
## Windows has neither setenv nor unsetenv
R_CHECK_FUNCS([setenv unsetenv], [#include <stdlib.h>])
-R_CHECK_FUNCS([getrlimit getrusage getpriority], [#include <sys/resource.h>])
+R_CHECK_FUNCS([getrlimit setrlimit getrusage getpriority], [#include <sys/resource.h>])
R_CHECK_FUNCS([chmod mkfifo stat umask], [#include <sys/stat.h>])
if test "${ac_cv_have_decl_stat}" = "no"; then
AC_MSG_ERROR([Building R requires the 'stat' system call])
@@ -1919,6 +1955,11 @@ R_CHECK_FUNCS([glob], [#ifdef HAVE_GLOB_H
AC_CHECK_FUNCS([dladdr dlsym])
AC_CHECK_DECLS([dladdr,dlsym], , , [#include<dlfcn.h>])
AC_CHECK_DECLS([RTLD_DEFAULT,RTLD_NEXT], , , [#include<dlfcn.h>])
+AC_CHECK_HEADERS([thread.h])
+R_CHECK_FUNCS([thr_stksegment], [
+#include <thread.h>
+#include <signal.h>
+])
## Lots of uses of getwd(), file.access(), Sys.glob().
## We don't need times() except as a fallback for getrusage and
@@ -1974,24 +2015,6 @@ AM_LANGINFO_CODESET
## a) that would comment out #undef statements in Rmath.h.in and
## b) Rmath.h should be a self-contained file for standalone Rmath use.
## </NOTE>
-if test "${ac_cv_have_decl_expm1}" = yes; then
- RMATH_HAVE_EXPM1="# define HAVE_EXPM1 1"
-else
- RMATH_HAVE_EXPM1="# undef HAVE_EXPM1"
-fi
-AC_SUBST(RMATH_HAVE_EXPM1)
-if test "${ac_cv_have_decl_hypot}" = yes; then
- RMATH_HAVE_HYPOT="# define HAVE_HYPOT 1"
-else
- RMATH_HAVE_HYPOT="# undef HAVE_HYPOT"
-fi
-AC_SUBST(RMATH_HAVE_HYPOT)
-if test "${ac_cv_have_decl_log1p}" = yes; then
- RMATH_HAVE_LOG1P="# define HAVE_LOG1P 1"
-else
- RMATH_HAVE_LOG1P="# undef HAVE_LOG1P"
-fi
-AC_SUBST(RMATH_HAVE_LOG1P)
## Do we need substitutes?
## mkdtemp is not on Solaris 10, added in POSIX 2008
@@ -2013,6 +2036,8 @@ if test "${ac_cv_have_decl_isfinite}" = "yes"; then
R_FUNC_ISFINITE
fi
## check accuracy of log1p
+## issues are probably ancient history:
+## reported for NetBSD 1.6 and OpenBSD 3.2 (both 2002).
R_FUNC_LOG1P
R_FUNC_FTELL
R_FUNC_SIGACTION
@@ -2103,7 +2128,7 @@ case "${host_os}" in
## resolve dylib dependencies, so libRblas will not be found unless
## we tell ld where it lives. I don't know of any more elegant solution :/
if test "x${use_blas_shlib}" = xyes; then
- LIBR="${LIBR} -dylib_file libRblas.dylib:\$(R_HOME)/lib\$(R_ARCH)/libRblas.dylib"
+ LIBR="${LIBR} -dylib_file libRblas.dylib:\"\$(R_HOME)/lib\$(R_ARCH)/libRblas.dylib\""
fi
;;
esac
@@ -2196,7 +2221,7 @@ AC_SUBST(BLAS_LIBS0)
if test "${use_blas_shlib}" = yes; then
## set BLAS_LIBS to point at local version
- BLAS_LIBS="-L\$(R_HOME)/lib\$(R_ARCH) -lRblas"
+ BLAS_LIBS="-L\"\$(R_HOME)/lib\$(R_ARCH)\" -lRblas"
fi
AM_CONDITIONAL(USE_VECLIB_G95FIX, [test "x${use_veclib_g95fix}" = xyes])
@@ -2209,7 +2234,7 @@ if test "${use_lapack}" = "yes"; then
R_LAPACK_LIBS
fi
if test "${acx_lapack_ok}" != "yes"; then
- LAPACK_LIBS="-L\$(R_HOME)/lib\$(R_ARCH) -lRlapack"
+ LAPACK_LIBS="-L\"\$(R_HOME)/lib\$(R_ARCH)\" -lRlapack"
fi
AC_SUBST(LAPACK_LIBS)
AM_CONDITIONAL(USE_EXTERNAL_LAPACK, [test "${acx_lapack_ok}" = "yes"])
@@ -2299,6 +2324,9 @@ R_LZMA
## PCRE headers and libraries.
R_PCRE
+## PCRE2 header and 8-bit library.
+R_PCRE2
+
## tre headers and libraries.
R_TRE
@@ -2410,10 +2438,18 @@ custom_JAVA_HOME="${JAVA_HOME}"
custom_JAVA_LIBS="${JAVA_LIBS}"
custom_JAVA_CPPFLAGS="${JAVA_CPPFLAGS}"
custom_JAVA_LD_LIBRARY_PATH="${JAVA_LD_LIBRARY_PATH}"
+custom_JAVA="${JAVA}"
+custom_JAVAC="${JAVAC}"
+custom_JAVAH="${JAVAH}"
+custom_JAR="${JAR}"
AC_SUBST(custom_JAVA_HOME)
AC_SUBST(custom_JAVA_CPPFLAGS)
AC_SUBST(custom_JAVA_LIBS)
AC_SUBST(custom_JAVA_LD_LIBRARY_PATH)
+AC_SUBST(custom_JAVA)
+AC_SUBST(custom_JAVAC)
+AC_SUBST(custom_JAVAH)
+AC_SUBST(custom_JAR)
JAVA_LD_LIBRARY_PATH=
AC_SUBST(JAVA)
AC_SUBST(JAVAC)
@@ -2446,7 +2482,6 @@ AC_SUBST(FCLIBS)
## OpenMP package stuff (needs to come *after* configuration of all
## compilers).
## We allow the users to override this for packages only (for now)
-## FIXME: what if SHLIB_OPENMP_?FLAGS is set but empty? (could use -n "${VAR+set}")
if test "x${shlib_ld_was_given}" = xno -a \
"${SHLIB_LD}" = "\$(CC)" -a \
"x${ac_cv_prog_c_openmp}" != "xunsupported" -a \
diff --git a/doc/AUTHORS b/doc/AUTHORS
index 3b8e116..5719960 100644
--- a/doc/AUTHORS
+++ b/doc/AUTHORS
@@ -19,7 +19,6 @@ Uwe Ligges
Thomas Lumley
Martin Maechler
Martin Morgan
-Duncan Murdoch
Paul Murrell
Martyn Plummer
Brian Ripley
@@ -29,7 +28,8 @@ Luke Tierney
Simon Urbanek
plus Heiner Schwarte up to October 1999, Guido Masarotto up to June 2003,
-Stefano Iacus up to July 2014 and Seth Falcon up to August 2015.
+Stefano Iacus up to July 2014, Seth Falcon up to August 2015 and Duncan Murdoch
+up to September 2017.
Current R-core members can be contacted via email to R-project.org
diff --git a/doc/CRAN_mirrors.csv b/doc/CRAN_mirrors.csv
index a7f4f24..0a4f306 100644
--- a/doc/CRAN_mirrors.csv
+++ b/doc/CRAN_mirrors.csv
@@ -1,12 +1,13 @@
Name,Country,City,URL,Host,Maintainer,OK,CountryCode,Comment
"0-Cloud [https]",0-Cloud,0-Cloud,https://cloud.r-project.org/,"Automatic redirection to servers worldwide, currently sponsored by Rstudio","winston # stdout.org",1,us,"secure_mirror_from_master"
0-Cloud,0-Cloud,0-Cloud,http://cloud.r-project.org/,"Automatic redirection to servers worldwide, currently sponsored by Rstudio","winston # stdout.org",1,us,"secure_mirror_from_master"
-"Algeria [https]",Algeria,Algiers,https://cran.usthb.dz/,"University of Science and Technology Houari Boumediene","Boukala m c <mboukala # usthb.dz>",1,dz
-Algeria,Algeria,Algiers,http://cran.usthb.dz/,"University of Science and Technology Houari Boumediene","Boukala m c <mboukala # usthb.dz>",1,dz
+"Algeria [https]",Algeria,Algiers,https://cran.usthb.dz/,"University of Science and Technology Houari Boumediene","Boukala m c <mboukala # usthb.dz>",1,dz,"secure_mirror_from_master"
+Algeria,Algeria,Algiers,http://cran.usthb.dz/,"University of Science and Technology Houari Boumediene","Boukala m c <mboukala # usthb.dz>",1,dz,"secure_mirror_from_master"
"Argentina (La Plata)",Argentina,"La Plata",http://mirror.fcaglp.unlp.edu.ar/CRAN/,"Universidad Nacional de La Plata","esuarez # Fcaglp.unlp.edu.ar",1,ar
"Australia (Canberra) [https]",Australia,Canberra,https://cran.csiro.au/,CSIRO,"Bill.Venables # CSIRO.au, ServiceDesk2 # CSIRO.au",1,au,"secure_mirror_from_master"
"Australia (Canberra)",Australia,Canberra,http://cran.csiro.au/,CSIRO,"Bill.Venables # CSIRO.au, ServiceDesk2 # CSIRO.au",1,au,"secure_mirror_from_master"
-"Australia (Melbourne) [https]",Australia,Melbourne,https://mirror.aarnet.edu.au/pub/CRAN/,AARNET,"Michael DSilva <Michael.DSilva # aarnet.edu.au>",1,au,"secure_mirror_from_master"
+"Australia (Melbourne 1) [https]",Australia,Melbourne,https://mirror.aarnet.edu.au/pub/CRAN/,AARNET,"<sysadmin # aarnet.edu.au>",1,au,"secure_mirror_from_master"
+"Australia (Melbourne 2) [https]",Australia,Melbourne,https://cran.ms.unimelb.edu.au/,"School of Mathematics and Statistics, University of Melbourne","unix-ops # lists.unimelb.edu.au",1,au,"secure_mirror_from_master"
"Australia (Perth) [https]",Australia,Perth,https://cran.curtin.edu.au/,"Curtin University of Technology","unix # curtin.edu.au",1,au,"secure_mirror_from_master"
"Austria [https]",Austria,Wien,https://cran.wu.ac.at/,"Wirtschaftsuniversität Wien","CRAN # R-project.org",1,at,"secure_mirror_from_master"
Austria,Austria,Wien,http://cran.wu.ac.at/,"Wirtschaftsuniversität Wien","CRAN # R-project.org",1,at,"secure_mirror_from_master"
@@ -14,12 +15,14 @@ Austria,Austria,Wien,http://cran.wu.ac.at/,"Wirtschaftsuniversität Wien","CRAN
"Belgium (Ghent) [https]",Belgium,Ghent,https://lib.ugent.be/CRAN/,"Ghent University Library","Patrick Hochstenbach <Patrick.Hochstenbach # UGent.be>",1,be,"secure_mirror_from_master"
"Belgium (Ghent)",Belgium,Ghent,http://lib.ugent.be/CRAN/,"Ghent University Library","Patrick Hochstenbach <Patrick.Hochstenbach # UGent.be>",1,be,"secure_mirror_from_master"
"Brazil (BA)",Brazil,Ilheus,http://nbcgib.uesc.br/mirrors/cran/,"Center for Comp. Biol. at Universidade Estadual de Santa Cruz","eduardo # nbcgib.uesc.br",1,br
-"Brazil (PR)",Brazil,Curitiba,http://cran-r.c3sl.ufpr.br/,"Universidade Federal do Parana","Paulo Justiniano Ribeiro Junior <paulojus # ufpr.br>",1,br
+"Brazil (PR) [https]",Brazil,Curitiba,https://cran-r.c3sl.ufpr.br/,"Universidade Federal do Parana","root # c3sl.ufpr.br",1,br,"secure_mirror_from_master"
+"Brazil (PR)",Brazil,Curitiba,http://cran-r.c3sl.ufpr.br/,"Universidade Federal do Parana","root # c3sl.ufpr.br",1,br,"secure_mirror_from_master"
"Brazil (RJ) [https]",Brazil,"Rio de Janeiro",https://cran.fiocruz.br/,"Oswaldo Cruz Foundation, Rio de Janeiro","oswaldo.cruz # fiocruz.br",1,br,"secure_mirror_from_master"
"Brazil (RJ)",Brazil,"Rio de Janeiro",http://cran.fiocruz.br/,"Oswaldo Cruz Foundation, Rio de Janeiro","oswaldo.cruz # fiocruz.br",1,br,"secure_mirror_from_master"
"Brazil (SP 1) [https]",Brazil,"Sao Paulo",https://vps.fmvz.usp.br/CRAN/,"University of Sao Paulo, Sao Paulo","Fernando Ferreira <fernando # vps.fmvz.usp.br>",1,br,"secure_mirror_from_master"
"Brazil (SP 1)",Brazil,"Sao Paulo",http://vps.fmvz.usp.br/CRAN/,"University of Sao Paulo, Sao Paulo","Fernando Ferreira <fernando # vps.fmvz.usp.br>",1,br,"secure_mirror_from_master"
-"Brazil (SP 2)",Brazil,Piracicaba,http://brieger.esalq.usp.br/CRAN/,"University of Sao Paulo, Piracicaba","A Augusto F Garcia <aafgarci # gmail.com>, augusto.garcia # usp.br",1,br,
+"Brazil (SP 2) [https]",Brazil,Piracicaba,https://brieger.esalq.usp.br/CRAN/,"University of Sao Paulo, Piracicaba","A Augusto F Garcia <aafgarci # gmail.com>, augusto.garcia # usp.br",1,br,"secure_mirror_from_master"
+"Brazil (SP 2)",Brazil,Piracicaba,http://brieger.esalq.usp.br/CRAN/,"University of Sao Paulo, Piracicaba","A Augusto F Garcia <aafgarci # gmail.com>, augusto.garcia # usp.br",1,br,"secure_mirror_from_master"
"Bulgaria [https]",Bulgaria,Sofia,https://ftp.uni-sofia.bg/CRAN/,"Sofia University","Alexander Velin <velin # fccf.net>",1,bg,"secure_mirror_from_master"
Bulgaria,Bulgaria,Sofia,http://ftp.uni-sofia.bg/CRAN/,"Sofia University","Alexander Velin <velin # fccf.net>",1,bg,"secure_mirror_from_master"
"Canada (BC)",Canada,Burnaby,http://cran.stat.sfu.ca/,"Simon Fraser University, Burnaby","gripe # sfu.ca",1,ca,"maintainer_address_bounces"
@@ -29,22 +32,27 @@ Bulgaria,Bulgaria,Sofia,http://ftp.uni-sofia.bg/CRAN/,"Sofia University","Alexan
"Canada (ON)",Canada,Toronto,http://cran.utstat.utoronto.ca/,"University of Toronto","Dermot Whelan <wheland # utstat.utoronto.ca>",1,ca
"Chile 1 [https]",Chile,Santiago,https://dirichlet.mat.puc.cl/,"Pontificia Universidad Catolica de Chile, Santiago","Fernando Quintana <quintana # mat.puc.cl>",1,cl,"secure_mirror_from_master"
"Chile 1",Chile,Santiago,http://dirichlet.mat.puc.cl/,"Pontificia Universidad Catolica de Chile, Santiago","Fernando Quintana <quintana # mat.puc.cl>",1,cl,"secure_mirror_from_master"
-"Chile 2 [https]",Chile,Santiago,https://cran.dcc.uchile.cl/,"Departamento de Ciencias de la Computación, Universidad de Chile","Mauricio Vargas <mvargas # dcc.uchile.cl>",1,cl
+"Chile 2 [https]",Chile,Santiago,https://cran.dcc.uchile.cl/,"Departamento de Ciencias de la Computación, Universidad de Chile","Mauricio Vargas <mvargas # dcc.uchile.cl>",1,cl,"secure_mirror_from_master"
"China (Beijing) [https]",China,Beijing,https://mirrors.tuna.tsinghua.edu.cn/CRAN/,"TUNA Team, Tsinghua University","Justin Wong <justin.w.xd # gmail.com>",1,cn
"China (Beijing)",China,Beijing,http://mirrors.tuna.tsinghua.edu.cn/CRAN/,"TUNA Team, Tsinghua University","Justin Wong <justin.w.xd # gmail.com>",1,cn
"China (Hefei) [https]",China,Hefei,https://mirrors.ustc.edu.cn/CRAN/,"University of Science and Technology of China","mirrors # Ustc.edu.cn",1,cn
"China (Hefei)",China,Hefei,http://mirrors.ustc.edu.cn/CRAN/,"University of Science and Technology of China","mirrors # Ustc.edu.cn",1,cn
+"China (Guangzhou) [https]",China,Guangzhou,https://mirrors.eliteu.cn/CRAN/,"Elite Education","x.liu # eliteu.cn",1,cn,"secure_mirror_from_master"
"China (Lanzhou) [https]",China,Lanzhou,https://mirror.lzu.edu.cn/CRAN/,"Lanzhou University Open Source Society","oss.lzu.edu.cn # gmail.com",1,cn,"secure_mirror_from_master"
"China (Lanzhou)",China,Lanzhou,http://mirror.lzu.edu.cn/CRAN/,"Lanzhou University Open Source Society","oss.lzu.edu.cn # gmail.com",1,cn,"secure_mirror_from_master"
-"China (Xiamen)",China,Xiamen,http://mirrors.xmu.edu.cn/CRAN/,"Xiamen University","admin # Xdmc.org",1,cn,"maintainer_address_bounces"
+"China (Shanghai) [https]",China,Shanghai,https://mirrors.tongji.edu.cn/CRAN/,"Tongji University","mirrors # opentj.org",1,cn,"secure_mirror_from_master"
"Colombia (Cali) [https]",Colombia,Cali,https://www.icesi.edu.co/CRAN/,"Icesi University","adminred # Icesi.edu.co",1,co,"secure_mirror_from_master"
"Colombia (Cali)",Colombia,Cali,http://www.icesi.edu.co/CRAN/,"Icesi University","adminred # Icesi.edu.co",1,co,"secure_mirror_from_master"
"Czech Republic [https]","Czech Republic","Prague",https://mirrors.nic.cz/R/,"CZ.NIC, Prague","mirrors # nic.cz",1,cz,"secure_mirror_from_master"
"Czech Republic","Czech Republic","Prague",http://mirrors.nic.cz/R/,"CZ.NIC, Prague","mirrors # nic.cz",1,cz,"secure_mirror_from_master"
"Denmark [https]",Denmark,Aalborg,https://mirrors.dotsrc.org/cran/,"Aalborg University","staff # dotsrc.org",1,dk,"secure_mirror_from_master"
Denmark,Denmark,Aalborg,http://mirrors.dotsrc.org/cran/,"Aalborg University","staff # dotsrc.org",1,dk,"secure_mirror_from_master"
-Ecuador,Ecuador,Guayaquil,http://cran.espol.edu.ec/,"Escuela Superior Politecnica del Litoral","jrodrig # espol.edu.ec",1,ec,"secure_mirror_from_master"
+"East Asia [https]",0-Cloud-East-Asia,0-Cloud-East-Asia,"https://cran.asia/","Personnel Psychology Laboratory, Industrial Psychology Department, Kwangwoon University (sites: Tokyo, Seoul/Wonjoo, Singapore)","admin # cran.asia",1,asia,"secure_mirror_from_master"
+"Ecuador (Cuenca) [https]",Ecuador,Cuenca,https://mirror.cedia.org.ec/CRAN/,CEDIA,"paul.bernal # cedia.org.ec",1,ec,"secure_mirror_from_master"
+"Ecuador (Cuenca)",Ecuador,Cuenca,http://mirror.cedia.org.ec/CRAN/,CEDIA,"paul.bernal # cedia.org.ec",1,ec,"secure_mirror_from_master"
+"Ecuador (Quito) [https]",Ecuador,Quito,https://mirror.epn.edu.ec/CRAN/,Escuela Politécnica Nacional,"paul.bernal # cedia.org.ec",1,ec,"secure_mirror_from_master"
"El Salvador","El Salvador","San Salvador",http://cran.salud.gob.sv/,"Ministry of Health (Ministerio de Salud)","mirror # salud.gob.sv",1,sv
+"Estonia [https]",Estonia,Tartu,https://ftp.eenet.ee/pub/cran/,"EENet","eenet # eenet.ee",1,ee,"secure_mirror_from_master"
"Estonia",Estonia,Tartu,http://ftp.eenet.ee/pub/cran/,"EENet","eenet # eenet.ee",1,ee,"secure_mirror_from_master"
"France (Lyon 1) [https]",France,Lyon,https://pbil.univ-lyon1.fr/CRAN/,"Dept. of Biometry & Evol. Biology, University of Lyon","Jean Thioulouse <Jean.Thioulouse # univ-lyon1.fr>",1,fr,"secure_mirror_from_master"
"France (Lyon 2) [https]",France,Lyon,https://mirror.ibcp.fr/pub/CRAN/,"CNRS IBCP, Lyon","alexis.michon # ibcp.fr",1,fr,"secure_mirror_from_master"
@@ -56,10 +64,13 @@ Ecuador,Ecuador,Guayaquil,http://cran.espol.edu.ec/,"Escuela Superior Politecnic
"France (Paris 1)",France,Paris,http://cran.irsn.fr/,"French Nuclear Safety Institute, Paris","yann.richet # irsn.fr",1,fr
"France (Paris 2) [https]",France,Paris,https://cran.univ-paris1.fr/,"SAMM, Université Paris 1 Panthéon-Sorbonne","pierre.latouche # univ-paris1.fr",1,fr,"secure_mirror_from_master"
"France (Paris 2)",France,Paris,http://cran.univ-paris1.fr/,"SAMM, Université Paris 1 Panthéon-Sorbonne","pierre.latouche # univ-paris1.fr",1,fr,"secure_mirror_from_master"
-"Germany (Göttingen)",Germany,Göttingen,http://ftp5.gwdg.de/pub/misc/cran/,"GWDG Göttingen","Eberhard Moenkeberg <emoenke # gwdg.de>",1,de
+"Germany (Erlangen) [https]",Germany,Erlangen,https://ftp.fau.de/cran/,"Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU)","rrze-ftp-admins # fau.de",1,de,"secure_mirror_from_master"
+"Germany (Göttingen) [https]",Germany,Göttingen,https://ftp.gwdg.de/pub/misc/cran/,"GWDG Göttingen","ftpadmin # gwdg.de",1,de,"secure_mirror_from_master"
+"Germany (Göttingen)",Germany,Göttingen,http://ftp.gwdg.de/pub/misc/cran/,"GWDG Göttingen","ftpadmin # gwdg.de",1,de,"secure_mirror_from_master"
"Germany (Münster) [https]",Germany,Münster,https://cran.uni-muenster.de/,"University of Münster, Germany","Edzer Pebesma <edzer.pebesma # uni-muenster.de>",1,de,"secure_mirror_from_master"
"Germany (Münster)",Germany,Münster,http://cran.uni-muenster.de/,"University of Münster, Germany","Edzer Pebesma <edzer.pebesma # uni-muenster.de>",1,de,"secure_mirror_from_master"
-Greece,Greece,Crete,http://cran.cc.uoc.gr/mirrors/CRAN/,"University of Crete","mirrors # Cc.uoc.gr",1,gr,"secure_mirror_from_master"
+"Greece [https]",Greece,Crete,https://ftp.cc.uoc.gr/mirrors/CRAN/,"University of Crete","mirrors # Cc.uoc.gr",1,gr,"secure_mirror_from_master"
+Greece,Greece,Crete,http://ftp.cc.uoc.gr/mirrors/CRAN/,"University of Crete","mirrors # Cc.uoc.gr",1,gr,"secure_mirror_from_master"
Hungary,Hungary,Budapest,http://cran.rapporter.net/,"Rapporter.net, Budapest","Daróczi Gergely <gergely # snowl.net>",1,hu
"Iceland [https]",Iceland,Reykjavik,https://cran.hafro.is/,"Marine Research Institute","cran # hafro.is",1,is,"secure_mirror_from_master"
Iceland,Iceland,Reykjavik,http://cran.hafro.is/,"Marine Research Institute","cran # hafro.is",1,is,"secure_mirror_from_master"
@@ -75,17 +86,15 @@ Ireland,Ireland,Dublin,http://ftp.heanet.ie/mirrors/cran.r-project.org/,"HEAnet,
"Italy (Palermo)",Italy,Palermo,http://dssm.unipa.it/CRAN/,"Universita degli Studi di Palermo","angelo.mineo # unipa.it, apontillo # gmail.com",1,it
"Japan (Tokyo) [https]",Japan,Tokyo,https://cran.ism.ac.jp/,"The Institute of Statistical Mathematics, Tokyo","Junji Nakano <nakanoj # ism.ac.jp>",1,jp,"secure_mirror_from_master"
"Japan (Tokyo)",Japan,Tokyo,http://cran.ism.ac.jp/,"The Institute of Statistical Mathematics, Tokyo","Junji Nakano <nakanoj # ism.ac.jp>",1,jp,"secure_mirror_from_master"
+"Japan (Yonezawa) [https]",Japan,Yonezawa,https://ftp.yz.yamagata-u.ac.jp/pub/cran/,"Yamagata University","www-admin # ftp.yz.yamagata-u.ac.jp",1,jp,"secure_mirror_from_master"
"Korea (Seoul 1)",Korea,Seoul,http://cran.nexr.com/,"NexR Corporation, Seoul","mining # nexr.com",1,kr
"Korea (Seoul 2)",Korea,Seoul,http://healthstat.snu.ac.kr/CRAN/,"Graduate School of Public Health, Seoul National University, Seoul","Sunghow # gmail.com",1,kr,"secure_mirror_from_master"
"Korea (Ulsan)",Korea,Ulsan,http://cran.biodisk.org/,"The Genome Institute of UNIST (Ulsan National Institute of Science and Technology)","dr.kyusang.lee # gmail.com",1,kr,"secure_mirror_from_master"
-Lebanon,Lebanon,Byblos,http://rmirror.lau.edu.lb/,"Lebanese American University, Byblos","gGeorges Khazen <khazen # lau.edu.lb>",1,lb,"maintainer_address_bounces"
"Malaysia [https]",Malaysia,Serdang,https://wbc.upm.edu.my/cran/,"Univerisiti Putra Malaysia","Ng Keng Yap <kengyap # upm.edu.my>",1,my,"secure_mirror_from_master"
Malaysia,Malaysia,Serdang,http://wbc.upm.edu.my/cran/,"Univerisiti Putra Malaysia","Ng Keng Yap <kengyap # upm.edu.my>",1,my,"secure_mirror_from_master"
"Mexico (Mexico City) [https]",Mexico,"Mexico City",https://cran.itam.mx/,"Instituto Tecnologico Autonomo de Mexico","Ernesto Barrios <ebarrios # Itam.mx>",1,mx,"secure_mirror_from_master"
"Mexico (Mexico City)",Mexico,"Mexico City",http://cran.itam.mx/,"Instituto Tecnologico Autonomo de Mexico","Ernesto Barrios <ebarrios # Itam.mx>",1,mx,"secure_mirror_from_master"
"Mexico (Texcoco)",Mexico,Texcoco,http://www.est.colpos.mx/R-mirror/,"Colegio de Postgraduados, Texcoco","perpdgo # gmail.com",1,mx
-"Netherlands (Amsterdam)",Netherlands,Amsterdam,http://cran.xl-mirror.nl/,"XL-Data, Amsterdam","werner # xl-mirror.nl",1,nl
-"Netherlands (Utrecht)",Netherlands,Utrecht,http://cran-mirror.cs.uu.nl/,"Utrecht University","webmaster # cs.uu.nl",1,nl
"New Zealand [https]","New Zealand",Auckland,https://cran.stat.auckland.ac.nz/,"University of Auckland","w.schmidt # auckland.ac.nz",1,nz
"New Zealand","New Zealand",Auckland,http://cran.stat.auckland.ac.nz/,"University of Auckland","w.schmidt # auckland.ac.nz",1,nz
"Norway [https]",Norway,Bergen,https://cran.uib.no/,"University of Bergen","sundrift # It.uib.no",1,no,"secure_mirror_from_master"
@@ -94,10 +103,10 @@ Norway,Norway,Bergen,http://cran.uib.no/,"University of Bergen","sundrift # It.u
Philippines,Philippines,"Quezon City",http://cran.stat.upd.edu.ph/,"University of the Philippines and PREGINET","Bert Mendoza <bert # asti.dost.gov.ph>, ops # pregi.net",1,ph,"secure_mirror_from_master"
"Portugal (Lisbon)",Portugal,Lisbon,http://cran.radicaldevelop.com/,"RadicalDevelop, Lda","geral # radicaldevelop.com",1,pt
"Portugal (Porto)",Portugal,Porto,http://cran.dcc.fc.up.pt/,"University of Porto","labcc # labcc.dcc.fc.up.pt",1,pt
-"Russia (Moscow) [https]",Russia,Moscow,https://cran.gis-lab.info/,GIS-Lab.info,"sim # gis-lab.info",1,ru,"secure_mirror_from_master"
-"Russia (Moscow)",Russia,Moscow,http://cran.gis-lab.info/,GIS-Lab.info,"sim # gis-lab.info",1,ru,"secure_mirror_from_master"
-"Serbia [https]",Serbia,Belgrade,https://fourdots.com/mirror/CRAN/,"Four Dots","Goran Tepsic <goran.tepsic # fourdots.com>",1,rs
-Singapore,Singapore,Singapore,http://cran.stat.nus.edu.sg/,"National University of Singapore, Singapore","ccezr # nus.edu.sg",1,sg
+"Serbia [https]",Serbia,Belgrade,https://fourdots.com/mirror/CRAN/,"Four Dots","Goran Tepsic <goran.tepsic # fourdots.com>",1,rs,"secure_mirror_from_master"
+"Singapore (Singapore 1) [https]",Singapore,Singapore,https://cran.kst.asia/,"Viewqwest broadband, cloudflare CDN, Singapore","tanlikang11 # gmail.com",1,asia
+"Singapore (Singapore 2)",Singapore,Singapore,http://cran.stat.nus.edu.sg/,"National University of Singapore, Singapore","ccezr # nus.edu.sg",1,sg
+"Singapore (Singapore 2) [https]",Singapore,Singapore,https://cran.stat.nus.edu.sg/,"National University of Singapore, Singapore","ccezr # nus.edu.sg",1,sg
"South Africa (Cape Town)","South Africa","Cape Town",http://r.adu.org.za/,"University of Cape Town","michael.brooks # uct.ac.za",1,za
"South Africa (Johannesburg)","South Africa",Johannesburg,http://cran.mirror.ac.za/,"TENET, Johannesburg","Patrick Holahan <patrickh # tenet.ac.za>",1,za
"Spain (A Coruña) [https]","Spain","A Coruña",https://ftp.cixug.es/CRAN/,"Oficina de software libre (CIXUG)","<osl # cixug.es>",1,es,"secure_mirror_from_master"
@@ -112,23 +121,21 @@ Switzerland,Switzerland,Zürich,http://stat.ethz.ch/CRAN/,"ETH Zürich","Martin.
"Taiwan (Chungli)",Taiwan,Chungli,http://ftp.yzu.edu.tw/CRAN/,"Department of Computer Science and Engineering, Yuan Ze University","Peter Dave Hello <hsu # peterdavehello.org>",1,tw
"Taiwan (Taipei)",Taiwan,Taipei,http://cran.csie.ntu.edu.tw/,"National Taiwan University, Taipei","Rong-En Fan <rafan # infor.org>",1,tw,"maintainer_address_bounces"
Thailand,Thailand,Hatyai,http://mirrors.psu.ac.th/pub/cran/,"Prince of Songkla University, Hatyai","wipat.s # psu.ac.th",1,th
-"Turkey (Denizli) [https]",Turkey,Denizli,https://cran.pau.edu.tr/,"Pamukkale University, Denizli","Ugur Zeybek <uzeybek # pau.edu.tr>",1,tr
-"Turkey (Denizli)",Turkey,Denizli,http://cran.pau.edu.tr/,"Pamukkale University, Denizli","Ugur Zeybek <uzeybek # pau.edu.tr>",1,tr
-"Turkey (Mersin) [https]",Turkey,Mersin,https://cran.ncc.metu.edu.tr/,"Middle East Technical University Northern Cyprus Campus, Mersin","atasiran # metu.edu.tr, ncc-cc # metu.edu.tr",1,tr
-"Turkey (Mersin)",Turkey,Mersin,http://cran.ncc.metu.edu.tr/,"Middle East Technical University Northern Cyprus Campus, Mersin","atasiran # metu.edu.tr, ncc-cc # metu.edu.tr",1,tr
+"Turkey (Denizli) [https]",Turkey,Denizli,https://cran.pau.edu.tr/,"Pamukkale University, Denizli","Ugur Zeybek <uzeybek # pau.edu.tr>",1,tr,"secure_mirror_from_master"
+"Turkey (Denizli)",Turkey,Denizli,http://cran.pau.edu.tr/,"Pamukkale University, Denizli","Ugur Zeybek <uzeybek # pau.edu.tr>",1,tr,"secure_mirror_from_master"
+"Turkey (Mersin) [https]",Turkey,Mersin,https://cran.ncc.metu.edu.tr/,"Middle East Technical University Northern Cyprus Campus, Mersin","atasiran # metu.edu.tr, ncc-cc # metu.edu.tr",1,tr,"secure_mirror_from_master"
+"Turkey (Mersin)",Turkey,Mersin,http://cran.ncc.metu.edu.tr/,"Middle East Technical University Northern Cyprus Campus, Mersin","atasiran # metu.edu.tr, ncc-cc # metu.edu.tr",1,tr,"secure_mirror_from_master"
"UK (Bristol) [https]",UK,Bristol,https://www.stats.bris.ac.uk/R/,"University of Bristol","Guy Nason <G.P.Nason # bristol.ac.uk>, it-zone-d # bristol.ac.uk",1,uk,"secure_mirror_from_master"
"UK (Bristol)",UK,Bristol,http://www.stats.bris.ac.uk/R/,"University of Bristol","Guy Nason <G.P.Nason # bristol.ac.uk>, it-zone-d # bristol.ac.uk",1,uk,"secure_mirror_from_master"
"UK (Cambridge) [https]",UK,"Cambridge",https://mirrors.ebi.ac.uk/CRAN/,"EMBL-EBI (European Bioinformatics Institute)","Andrew Tikhonov <andrew # ebi.ac.uk>",1,uk,"secure_mirror_from_master"
"UK (Cambridge)",UK,"Cambridge",http://mirrors.ebi.ac.uk/CRAN/,"EMBL-EBI (European Bioinformatics Institute)","Andrew Tikhonov <andrew # ebi.ac.uk>",1,uk,"secure_mirror_from_master"
"UK (London 1) [https]",UK,London,https://cran.ma.imperial.ac.uk/,"Imperial College London","andy.thomas # imperial.ac.uk",1,uk,"secure_mirror_from_master"
"UK (London 1)",UK,London,http://cran.ma.imperial.ac.uk/,"Imperial College London","andy.thomas # imperial.ac.uk",1,uk,"secure_mirror_from_master"
-"UK (London 2)",UK,"London",http://mirror.mdx.ac.uk/R/,"Middlesex University London","Louis Slabbert <l.slabbert # mdx.ac.uk>",1,uk
-"UK (St Andrews)",UK,"St Andrews",http://star-www.st-andrews.ac.uk/cran/,"St Andrews University","Lee Kelvin <lsk9 # St-andrews.ac.uk>",1,uk,"maintainer_address_bounces"
"USA (CA 1) [https]",USA,Berkeley,https://cran.cnr.berkeley.edu/,"University of California, Berkeley, CA","casterln # nature.berkeley.edu",1,us,"secure_mirror_from_master"
"USA (CA 1)",USA,Berkeley,http://cran.cnr.berkeley.edu/,"University of California, Berkeley, CA","casterln # nature.berkeley.edu",1,us,"secure_mirror_from_master"
"USA (CA 2)",USA,"Los Angeles",http://cran.stat.ucla.edu/,"University of California, Los Angeles, CA","Jose Hales-Garcia <jose # stat.ucla.edu>",1,us
-"USA (IA) [https]",USA,Ames,https://mirror.las.iastate.edu/CRAN/,"Iowa State University, Ames, IA","statit # iastate.edu",1,us
-"USA (IA)",USA,Ames,http://mirror.las.iastate.edu/CRAN/,"Iowa State University, Ames, IA","statit # iastate.edu",1,us
+"USA (IA) [https]",USA,Ames,https://mirror.las.iastate.edu/CRAN/,"Iowa State University, Ames, IA","statit # iastate.edu",1,us,"secure_mirror_from_master"
+"USA (IA)",USA,Ames,http://mirror.las.iastate.edu/CRAN/,"Iowa State University, Ames, IA","statit # iastate.edu",1,us,"secure_mirror_from_master"
"USA (IN) [https]",USA,Bloomington,https://ftp.ussg.iu.edu/CRAN/,"Indiana University","rtadmin # indiana.edu",1,us
"USA (IN)",USA,Bloomington,http://ftp.ussg.iu.edu/CRAN/,"Indiana University","rtadmin # indiana.edu",1,us
"USA (KS) [https]",USA,Lawrence,https://rweb.crmda.ku.edu/cran/,"University of Kansas, Lawrence, KS","Paul Johnson <pauljohn # ku.edu>",1,us,"secure_mirror_from_master"
@@ -137,15 +144,16 @@ Thailand,Thailand,Hatyai,http://mirrors.psu.ac.th/pub/cran/,"Prince of Songkla U
"USA (MI 1)",USA,Houghton,http://cran.mtu.edu/,"Michigan Technological University, Houghton, MI","Robert Froese <froese # mtu.edu>",1,us,"secure_mirror_from_master"
"USA (MO)",USA,"St. Louis",http://cran.wustl.edu/,"Washington University, St. Louis, MO","admartin # wustl.edu",1,us,"maintainer_address_bounces"
"USA (NC)",USA,Durham,http://archive.linux.duke.edu/cran/,"Duke University, Durham, NC","csi-linux-admins # duke.edu",1,us
-"USA (OH 1)",USA,Cleveland,http://cran.case.edu/,"Case Western Reserve University, Cleveland, OH","""Alberto H. Santana"" <ahs4 # case.edu>",1,us
-"USA (OH 2)",USA,Dayton,http://iis.stat.wright.edu/CRAN/,"Wright State University, Dayton, OH","Long Qu <long.qu # wright.edu>",1,us
-"USA (OR) [https]",USA,Corvallis,https://ftp.osuosl.org/pub/cran/,"Oregon State University","support # Osuosl.org",1,us
-"USA (OR)",USA,Corvallis,http://ftp.osuosl.org/pub/cran/,"Oregon State University","support # Osuosl.org",1,us
+"USA (NY) [https]",USA,"New York",https://mirrors.sorengard.com/cran/,"Sorengard, Bronx NY","admin # sorengard.com",1,us,"secure_mirror_from_master"
+"USA (OH) [https]",USA,Cleveland,https://cran.case.edu/,"Case Western Reserve University, Cleveland, OH","""Alberto H. Santana"" <ahs4 # case.edu>",1,us
+"USA (OH)",USA,Cleveland,http://cran.case.edu/,"Case Western Reserve University, Cleveland, OH","""Alberto H. Santana"" <ahs4 # case.edu>",1,us
+"USA (OR) [https]",USA,Corvallis,https://ftp.osuosl.org/pub/cran/,"Oregon State University","support # Osuosl.org",1,us,"secure_mirror_from_master"
+"USA (OR)",USA,Corvallis,http://ftp.osuosl.org/pub/cran/,"Oregon State University","support # Osuosl.org",1,us,"secure_mirror_from_master"
"USA (PA 1)",USA,Pittsburgh,http://lib.stat.cmu.edu/R/CRAN/,"Statlib, Carnegie Mellon University, Pittsburgh, PA","Carl Skipper <remarks # stat.cmu.edu>",1,us
"USA (PA 2)",USA,Pittsburgh,http://cran.mirrors.hoobly.com/,"Hoobly Classifieds, Pittsburgh, PA","Peter Grigor <pgrigor # hoobly.com>",1,us
"USA (TN) [https]",USA,"Oak Ridge",https://mirrors.nics.utk.edu/cran/,"National Institute for Computational Sciences, Oak Ridge, TN","help # nics.utk.edu",1,us,"secure_mirror_from_master"
"USA (TN)",USA,"Oak Ridge",http://mirrors.nics.utk.edu/cran/,"National Institute for Computational Sciences, Oak Ridge, TN","help # nics.utk.edu",1,us,"secure_mirror_from_master"
"USA (TX 1) [https]",USA,Dallas,https://cran.revolutionanalytics.com/,"Revolution Analytics, Dallas, TX","David Smith <david # revolutionanalytics.com>",1,us,"secure_mirror_from_master"
"USA (TX 1)",USA,Dallas,http://cran.revolutionanalytics.com/,"Revolution Analytics, Dallas, TX","David Smith <david # revolutionanalytics.com>",1,us,"secure_mirror_from_master"
-"USA (TX 2) [https]",USA,"San Antonio",https://mirror.usertrust.info/cranmirror/,"Dark Particle Labs, San Antonio","Matt Weeks <scriptjunkie # scriptjunkie.us>",1,us,"secure_mirror_from_master"
+"Vietnam [https]",Vietnam,"Ho Chi Minh",https://mirror.vinahost.vn/CRAN/,VinaHost,"tienhn # vinahost.vn",1,vn,"secure_mirror_from_master"
Venezuela,Venezuela,Valencia,http://camoruco.ing.uc.edu.ve/cran/,"Universidad de Carabobo Venezuela","dir-imyca # uc.edu.ve",1,ve
diff --git a/doc/FAQ b/doc/FAQ
index 6e564c2..bf852e2 100644
--- a/doc/FAQ
+++ b/doc/FAQ
@@ -1,6 +1,6 @@
R FAQ
Frequently Asked Questions on R
-Version 2016-06-06
+Version 2017-10-04
Kurt Hornik
@@ -123,7 +123,7 @@ questions about R.
1.1 Legalese
============
-This document is copyright 1998-2016 by Kurt Hornik.
+This document is copyright 1998-2017 by Kurt Hornik.
This document is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by the
@@ -156,13 +156,13 @@ CRAN site (*note What is CRAN?::).
1.3 Citing this document
========================
-In publications, please refer to this FAQ as Hornik (2016), "The R FAQ",
+In publications, please refer to this FAQ as Hornik (2017), "The R FAQ",
and give the above, _official_ URL:
@Misc{,
author = {Kurt Hornik},
title = {{R} {FAQ}},
- year = {2016},
+ year = {2017},
url = {https://CRAN.R-project.org/doc/FAQ/R-FAQ.html}
}
@@ -605,13 +605,6 @@ R mailing lists.
The R Core Team can be reached at <R-core@lists.R-project.org> for
comments and reports.
- Many of the R project's mailing lists are also available via Gmane
-(http://gmane.org), from which they can be read with a web browser,
-using an NNTP news reader, or via RSS feeds. See
-<http://dir.gmane.org/index.php?prefix=gmane.comp.lang.r.> for the
-available mailing lists, and <http://www.gmane.org/rss.php> for details
-on RSS feeds.
-
2.10 What is CRAN?
==================
@@ -1180,10 +1173,9 @@ currently beta testing a commercially supported version of R named R+
(read R plus).
Revolution Analytics (http://www.revolution-computing.com/) has
-released REvolution R
-(http://www.revolution-computing.com/products/revolution-r.php), an
-enterprise-class statistical analysis system based on R, suitable for
-deployment in professional, commercial and regulated environments.
+released REvolution R, now available as Microsoft R (see
+<http://blog.revolutionanalytics.com/2016/01/microsoft-r-open.html> for
+more information).
See also
<https://en.wikipedia.org/wiki/R_programming_language#Commercialized_versions_of_R>
@@ -1207,13 +1199,6 @@ detailed explanation of the different versions of Rweb and an overview
of how Rweb works, was published in the Journal of Statistical Software
(<http://www.jstatsoft.org/v04/i01/>).
- Ulf Bartel <ulfi@cs.tu-berlin.de> has developed *R-Online*, a simple
-on-line programming environment for R which intends to make the first
-steps in statistical programming with R (especially with time series) as
-easy as possible. There is no need for a local installation since the
-only requirement for the user is a JavaScript capable browser. See
-<http://www.osvisions.com/r_online/> for more information.
-
*Rcgi* is a CGI WWW interface to R by MJ Ray <mjr@dsl.pipex.com>. It
had the ability to use "embedded code": you could mix user input and
code, allowing the HTML author to do anything from load in data sets to
diff --git a/doc/NEWS b/doc/NEWS
index 911cc88..4be5e4a 100644
--- a/doc/NEWS
+++ b/doc/NEWS
@@ -1,5 +1,609 @@
R News
+CHANGES IN R 3.5.0:
+
+ SIGNIFICANT USER-VISIBLE CHANGES:
+
+ * All packages are by default byte-compiled on installation. This
+ makes the installed packages larger (usually marginally so) and
+ may affect the format of messages and tracebacks (which often
+ exclude .Call and similar).
+
+ NEW FEATURES:
+
+ * factor() now uses order() to sort its levels, rather than
+ sort.list(). This allows factor() to support custom vector-like
+ objects if methods for the appropriate generics are defined. It
+ has the side effect of making factor() succeed on empty or
+ length-one non-atomic vector(-like) types (e.g., "list"), where
+ it failed before.
+
+ * diag() gets an optional names argument: this may require updates
+ to packages defining S4 methods for it.
+
+ * chooseCRANmirror() and chooseBioCmirror() no longer have a
+ useHTTPS argument, not needed now all R builds support https://
+ downloads.
+
+ * New summary() method for warnings() with a (somewhat
+ experimental) print() method.
+
+ * (methods package.) .self is now automatically registered as a
+ global variable when registering a reference class method.
+
+ * tempdir(check = TRUE) recreates the tempdir() directory if it is
+ no longer valid (e.g. because some other process has cleaned up
+ the /tmp directory).
+
+ * New askYesNo() function and "askYesNo" option to ask the user
+ binary response questions in a customizable but consistent way.
+ (Suggestion of PR#17242.)
+
+ * New low level utilities ...elt(n) and ...length() for working
+ with ... parts inside a function.
+
+ * isTRUE() is more tolerant and now true in
+
+ x <- rlnorm(99)
+ isTRUE(median(x) == quantile(x)["50%"])
+
+ New function isFALSE() defined analogously to isTRUE().
+
+ * The default symbol table size has been increased from 4119 to
+ 49157; this may improve the performance of symbol resolution when
+ many packages are loaded. (Suggested by Jim Hester.)
+
+ * line() gets a new option iter = 1.
+
+ * Reading from connections in text mode is buffered, significantly
+ improving the performance of readLines(), as well as scan() and
+ read.table(), at least when specifying colClasses.
+
+ * order() is smarter about picking a default sort method when its
+ arguments are objects.
+
+ * available.packages() has two new arguments which control if the
+ values from the per-session repository cache are used (default
+ true, as before) and if so how old cached values can be to be
+ used (default one hour).
+
+ These arguments can be passed from install.packages(),
+ update.packages() and functions calling that: to enable this
+ available.packages(), packageStatus() and download.file() gain a
+ ... argument.
+
+ * packageStatus()'s upgrade() method no longer ignores its ...
+ argument but passes it to install.packages().
+
+ * installed.packages() gains a ... argument to allow arguments
+ (including noCache) to be passed from new.packages(),
+ old.packages(), update.packages() and packageStatus().
+
+ * factor(x, levels, labels) now allows duplicated labels (not
+ duplicated levels!). Hence you can map different values of x to
+ the same level directly.
+
+ * Attempting to use names<-() on an S4 derivative of a basic type
+ no longer emits a warning.
+
+ * The list method of within() gains an option keepAttrs = FALSE for
+ some speed-up.
+
+ * system() and system2() now allow the specification of a maximum
+ elapsed time ('timeout').
+
+ * debug() supports debugging of methods on any object of S4 class
+ "genericFunction", including group generics.
+
+ * Attempting to increase the length of a variable containing NULL
+ using length()<- still has no effect on the target variable, but
+ now triggers a warning.
+
+ * type.convert() becomes a generic function, with additional
+ methods that operate recursively over list and data.frame
+ objects. Courtesy of Arni Magnusson (PR#17269).
+
+ * lower.tri(x) and upper.tri(x) only needing dim(x) now work via
+ new functions .row() and .col(), so no longer call as.matrix() by
+ default in order to work efficiently for all kind of matrix-like
+ objects.
+
+ * print() methods for "xgettext" and "xngettext" now use
+ encodeString() which keeps, e.g. "\n", visible. (Wish of
+ PR#17298.)
+
+ * package.skeleton() gains an optional encoding argument.
+
+ * approx(), spline(), splinefun() and approxfun() also work for
+ long vectors.
+
+ * deparse() and dump() are more useful for S4 objects, dput() now
+ using the same internal C code instead of its previous imperfect
+ workaround R code. S4 objects now typically deparse perfectly,
+ i.e., can be recreated identically from deparsed code.
+
+ dput(), deparse() and dump() now print the names() information
+ only once, using the more readable (tag = value) syntax, notably
+ for list()s, i.e., including data frames.
+
+ These functions gain a new control option "niceNames" (see
+ .deparseOpts()), which when set (as by default) also uses the
+ (tag = value) syntax for atomic vectors. On the other hand,
+ without deparse options "showAttributes" and "niceNames", names
+ are no longer shown also for lists. as.character(list( c (one =
+ 1))) now includes the name, as as.character(list(list(one = 1)))
+ has always done.
+
+ m:n now also deparses nicely when m > n.
+
+ The "quoteExpressions" option, also part of "all", no longer
+ quote()s formulas as that may not re-parse identically.
+ (PR#17378)
+
+ * If the option setWidthOnResize is set and TRUE, R run in a
+ terminal using a recent readline library will set the width
+ option when the terminal is resized. Suggested by Ralf Goertz.
+
+ * If multiple on.exit() expressions are set using add = TRUE then
+ all expressions will now be run even if one signals an error.
+
+ * mclapply() gets an option affinity.list which allows more
+ efficient execution with heterogeneous processors, thanks to
+ Helena Kotthaus.
+
+ * The character methods for as.Date() and as.POSIXlt() are more
+ flexible _via_ new arguments tryFormats and optional: see their
+ help pages.
+
+ * on.exit() gains an optional argument after with default TRUE.
+ Using after = FALSE with add = TRUE adds an exit expression
+ before any existing ones. This way the expressions are run in a
+ first-in last-out fashion. (From Lionel Henry.)
+
+ * On Windows, file.rename() internally retries the operation in
+ case of error to attempt to recover from possible anti-virus
+ interference.
+
+ * Command line completion on :: now also includes lazy-loaded data.
+
+ * If the TZ environment variable is set when date-time functions
+ are first used, it is recorded as the session default and so will
+ be used rather than the default deduced from the OS if TZ is
+ subsequently unset.
+
+ * There is now a [ method for class "DLLInfoList".
+
+ * glm() and glm.fit get the same singular.ok = TRUE argument that
+ lm() has had forever. As a consequence, in glm(*, method =
+ <your_own>), user specified methods need to accept a singular.ok
+ argument as well.
+
+ * aspell() gains a filter for Markdown (.md and .Rmd) files.
+
+ * intToUtf8(multiple = FALSE) gains an argument to allow surrogate
+ pairs to be interpreted.
+
+ * The maximum number of DLLs that can be loaded into R e.g. _via_
+ dyn.load() has been increased up to 614 when the OS limit on the
+ number of open files allows.
+
+ * Sys.timezone() on a Unix-alike caches the value at first use in a
+ session: _inter alia_ this means that setting TZ later in the
+ session affects only the _current_ time zone and not the _system_
+ one.
+
+ Sys.timezone() is now used to find the system timezone to pass to
+ the code used when R is configured with --with-internal-tzcode.
+
+ * When tar() is used with an external command which is detected to
+ be GNU tar or libarchive tar (aka bsdtar), a different
+ command-line is generated to circumvent line-length limits in the
+ shell.
+
+ * system(*, intern = FALSE), system2() (when not capturing output),
+ file.edit() and file.show() now issue a warning when the external
+ command cannot be executed.
+
+ * The "default" ("lm" etc) methods of vcov() have gained new
+ optional argument complete = TRUE which makes the vcov() methods
+ more consistent with the coef() methods in the case of singular
+ designs. The former (back-compatible) behavior is given by
+ vcov(*, complete = FALSE).
+
+ * coef() methods (for lm etc) also gain a complete = TRUE optional
+ argument for consistency with vcov().
+ For "aov", both coef() and vcov() methods remain back-compatibly
+ consistent, using the _other_ default, complete = FALSE.
+
+ * attach(*, pos = 1) is now an error instead of a warning.
+
+ * New function getDefaultCluster() in package parallel to get the
+ default cluster set via setDefaultCluster().
+
+ * str(x) for atomic objects x now treats both cases of is.vector(x)
+ similarly, and hence much less often prints "atomic". This is a
+ slight non-back-compatible change producing typically both more
+ informative and shorter output.
+
+ * write.dcf() gets optional argument useBytes.
+
+ * New, partly experimental packageDate() which tries to get a valid
+ "Date" object from a package DESCRIPTION file, thanks to
+ suggestions in PR#17324.
+
+ * tools::resaveRdaFiles() gains a version argument, for use when
+ packages should remain compatible with earlier versions of R.
+
+ * ar.yw(x) and hence by default ar(x) now work when x has NAs,
+ mostly thanks to a patch by Pavel Krivitsky in PR#17366. The
+ ar.yw.default()'s AIC computations have become more efficient by
+ using determinant().
+
+ * New warnErrList() utility (from package nlme, improved).
+
+ * By default the (arbitrary) signs of the loadings from princomp()
+ are chosen so the first element is non-negative.
+
+ * If --default-packages is not used, then Rscript now checks the
+ environment variable R_SCRIPT_DEFAULT_PACKAGES. If this is set,
+ then it takes precedence over R_DEFAULT_PACKAGES. If default
+ packages are not specified on the command line or by one of these
+ environment variables, then Rscript now uses the same default
+ packages as R. For now, the previous behavior of not including
+ methods can be restored by setting the environment variable
+ R_SCRIPT_LEGACY to yes.
+
+ * When a package is found more than once, the warning from
+ find.package(*, verbose=TRUE) lists all library locations.
+
+ * POSIXt objects can now also be rounded or truncated to month or
+ year.
+
+ * stopifnot() can be used alternatively via new argument exprs
+ which is nicer and useful when testing several expressions in one
+ call.
+
+ * The environment variable R_MAX_VSIZE can now be used to specify
+ the maximal vector heap size. On macOS, unless specified by this
+ environment variable, the maximal vector heap size is set to the
+ maximum of 16GB and the available physical memory. This is to
+ avoid having the R process killed when macOS over-commits memory.
+
+ * sum(x) and sum(x1,x2,..,x<N>) with many or long logical or
+ integer vectors no longer overflows (and returns NA with a
+ warning), but returns double numbers in such cases.
+
+ * Single components of "POSIXlt" objects can now be extracted and
+ replaced via [ indexing with 2 indices.
+
+ * S3 method lookup now searches the namespace registry after the
+ top level environment of the calling environment.
+
+ * Arithmetic sequences created by 1:n, seq_along, and the like now
+ use compact internal representations via the ALTREP framework.
+ Coercing integer and numeric vectors to character also now uses
+ the ALTREP framework to defer the actual conversion until first
+ use.
+
+ * Finalizers are now run with interrupts suspended.
+
+ * merge() gains new option no.dups and by default suffixes the
+ second of two duplicated column names, thanks to a proposal by
+ Scott Ritchie (and Gabe Becker).
+
+ * scale.default(x, center, scale) now also allows center or scale
+ to be "numeric-alike", i.e., such that as.numeric(.) coerces them
+ correctly. This also eliminates a wrong error message in such
+ cases.
+
+ * par*apply and par*applyLB gain an optional argument chunk.size
+ which allows to specify the granularity of scheduling.
+
+ * Some as.data.frame() methods, notably the matrix one, are now
+ more careful in not accepting duplicated or NA row names, and by
+ default produce unique non-NA row names. This is based on new
+ function .rowNamesDF(x, make.names = *) <- rNms where the logical
+ argument make.names allows to specify _how_ invalid row names
+ rNms are handled. .rowNamesDF() is a "workaround" compatible
+ default.
+
+ * R has new serialization format (version 3) which supports custom
+ serialization of ALTREP framework objects. These objects can
+ still be serialized in format 2, but less efficiently.
+ Serialization format 3 also records the current native encoding
+ of unflagged strings and converts them when de-serialized in R
+ running under different native encoding. Format 3 comes with new
+ serialization magic numbers (RDA3, RDB3, RDX3). Format 3 can be
+ selected by version = 3 in save(), serialize() and saveRDS(), but
+ format 2 remains the default for all serialization and saving of
+ the workspace. Serialized data in format 3 cannot be read by
+ versions of R prior to version 3.5.0.
+
+ * The "Date" and "date-time" classes "POSIXlt" and "POSIXct" now
+ have a working `length<-` method, as wished in PR#17387.
+
+ * optim(*, control = list(warn.1d.NelderMead = FALSE)) allows to
+ turn off the warning when applying the default "Nelder-Mead"
+ method to 1-dimensional problems.
+
+ * matplot(.., panel.first = .) etc now work, as log becomes
+ explicit argument and ... is passed to plot() unevaluated, as
+ suggested by Sebastian Meyer in PR#17386.
+
+ * Interrupts can be suspended while evaluating an expression using
+ suspendInterrupts. Subexpression can be evaluated with
+ interrupts enabled using allowInterrupts. These functions can be
+ used to make sure cleanup handlers cannot be interrupted.
+
+ * R 3.5.0 includes a framework that allows packages to provide
+ alternate representations of basic R objects (ALTREP). The
+ framework is still experimental and may undergo changes in future
+ R releases as more experience is gained. For now, documentation
+ is provided in <URL:
+ https://svn.r-project.org/R/branches/ALTREP/ALTREP.html>.
+
+ UTILITIES:
+
+ * install.packages() for source packages now has the possibility to
+ set a 'timeout' (elapsed-time limit). For serial installs this
+ uses the timeout argument of system2(): for parallel installs it
+ requires the timeout utility command from GNU coreutils.
+
+ * It is now possible to set 'timeouts' (elapsed-time limits) for
+ most parts of R CMD check _via_ environment variables documented
+ in the 'R Internals' manual.
+
+ * The 'BioC extra' repository which was dropped from Bioconductor
+ 3.6 and later has been removed from setRepositories(). This
+ changes the mapping for 6-8 used by setRepositories(ind=).
+
+ * R CMD check now also applies the settings of environment
+ variables _R_CHECK_SUGGESTS_ONLY_ and _R_CHECK_DEPENDS_ONLY_ to
+ the re-building of vignettes.
+
+ * R CMD check with environment variable _R_CHECK_DEPENDS_ONLY_ set
+ to a true value makes test-suite-management packages available
+ and (for the time being) works around a common omission of
+ rmarkdown from the VignetteBuilder field.
+
+ INSTALLATION on a UNIX-ALIKE:
+
+ * Support for a system Java on macOS has been removed - install a
+ fairly recent Oracle Java (see 'R Installation and
+ Administration' SSC.3.2).
+
+ * configure works harder to set additional flags in SAFE_FFLAGS
+ only where necessary, and to use flags which have little or no
+ effect on performance.
+
+ In rare circumstances it may be necessary to override the setting
+ of SAFE_FFLAGS.
+
+ * C99 functions expm1, hypot, log1p and nearbyint are now required.
+
+ * configure sets a -std flag for the C++ compiler for all supported
+ C++ standards (e.g., -std=gnu++11 for the C++11 compiler).
+ Previously this was not done in a few cases where the default
+ standard passed the tests made (e.g. clang 6.0.0 for C++11).
+
+ C-LEVEL FACILITIES:
+
+ * 'Writing R Extensions' documents macros MAYBE_REFERENCED,
+ MAYBE_SHARED and MARK_NOT_MUTABLE that should be used by package
+ C code instead NAMED or SET_NAMED.
+
+ * The object header layout has been changed to support merging the
+ ALTREP branch. This requires re-installing packages that use
+ compiled code.
+
+ * 'Writing R Extensions' now documents the R_tryCatch,
+ R_tryCatchError, and R_UnwindProtect functions.
+
+ * NAMEDMAX has been raised to 3 to allow protection of intermediate
+ results from (usually ill-advised) assignments in arguments to
+ BUILTIN functions. Package C code using SET_NAMED may need to be
+ revised.
+
+ DEPRECATED AND DEFUNCT:
+
+ * Sys.timezone(location = FALSE) is defunct, and is ignored (with a
+ warning).
+
+ * methods:::bind_activation() is defunct now; it typically has been
+ unneeded for years.
+
+ The undocumented 'hidden' objects .__H__.cbind and .__H__.rbind
+ in package base are deprecated (in favour of cbind and rbind).
+
+ * The declaration of pythag() in Rmath.h has been removed - the
+ entry point has not been provided since R 2.14.0.
+
+ BUG FIXES:
+
+ * printCoefmat() now also works without column names.
+
+ * The S4 methods on Ops() for the "structure" class no longer cause
+ infinite recursion when the structure is not an S4 object.
+
+ * nlm(f, ..) for the case where f() has a "hessian" attribute now
+ computes LL' = H + uI correctly. (PR#17249).
+
+ * An S4 method that "rematches" to its generic and overrides the
+ default value of a generic formal argument to NULL no longer
+ drops the argument from its formals.
+
+ * Rscript can now accept more than one argument given on the #!
+ line of a script. Previously, one could only pass a single
+ argument on the #! line in Linux.
+
+ * Connections are now written correctly with encoding "UTF-16LE".
+ (PR#16737).
+
+ * Evaluation of ..0 now signals an error. When ..1 is used and ...
+ is empty, the error message is more appropriate.
+
+ * (Windows mainly.) Unicode code points which require surrogate
+ pairs in UTF-16 are now handled. All systems should properly
+ handle surrogate pairs, even those systems that do not need to
+ make use of them. (PR#16098)
+
+ * stopifnot(e, e2, ...) now evaluates the expressions sequentially
+ and in case of an error or warning shows the relevant expression
+ instead of the full stopifnot(..) call.
+
+ * path.expand() on Windows now accepts paths specified as
+ UTF-8-encoded character strings even if not representable in the
+ current locale. (PR#17120)
+
+ * line(x, y) now correctly computes the medians of the left and
+ right group's x-values and in all cases reproduces straight
+ lines.
+
+ * Extending S4 classes with slots corresponding to special
+ attributes like dim and dimnames now works.
+
+ * Fix for legend() when fill has multiple values the first of which
+ is NA (all colours used to default to par(fg)). (PR#17288)
+
+ * installed.packages() did not remove the cached value for a
+ library tree that had been emptied (but would not use the old
+ value, just waste time checking it).
+
+ * The documentation for installed.packages(noCache = TRUE)
+ incorrectly claimed it would refresh the cache.
+
+ * aggregate(<data.frame>) no longer uses spurious names in some
+ cases. (PR#17283)
+
+ * object.size() now also works for long vectors.
+
+ * packageDescription() tries harder to solve re-encoding issues,
+ notably seen in some Windows locales. This fixes the citation()
+ issue in PR#17291.
+
+ * poly(<matrix>, 3) now works, thanks to prompting by Marc
+ Schwartz.
+
+ * readLines() no longer segfaults on very large files with embedded
+ '\0' (aka 'nul') characters. (PR#17311)
+
+ * ns() (package splines) now also works for a single observation.
+ interpSpline() gives a more friendly error message when the
+ number of points is less than four.
+
+ * dist(x, method = "canberra") now uses the correct definition; the
+ result may only differ when x contains values of differing signs,
+ e.g. not for 0-1 data.
+
+ * methods:::cbind() and methods:::rbind() avoid deep recursion,
+ thanks to Suharto Anggono via PR#17300.
+
+ * Arithmetic with zero-column data frames now works more
+ consistently; issue raised by Bill Dunlap.
+
+ Arithmetic with data frames gives a data frame for ^ (which
+ previously gave a numeric matrix).
+
+ * pretty(x, n) for large n or large diff(range(x)) now works better
+ (though it was never meant for large n); internally it uses the
+ same rounding fuzz (1e-10) as seq.default() - as it did up to
+ 2010-02-03 when both were 1e-7.
+
+ * Internal C-level R_check_class_and_super() and hence
+ R_check_class_etc() now also consider non-direct super classes
+ and hence return a match in more cases. This e.g., fixes
+ behaviour of derived classes in package Matrix.
+
+ * Reverted unintended change in behavior of return calls in on.exit
+ expressions introduced by stack unwinding changes in R 3.3.0.
+
+ * Attributes on symbols are now detected and prevented; attempt to
+ add an attribute to a symbol results in an error.
+
+ * fisher.test(*, workspace = <n>) now may also increase the
+ internal stack size which allows larger problem to be solved,
+ fixing PR#1662.
+
+ * The methods package no longer directly copies slots (attributes)
+ into a prototype that is of an "abnormal" (reference) type, like
+ a symbol.
+
+ * The methods package no longer attempts to call length<-() on NULL
+ (during the bootstrap process).
+
+ * The methods package correctly shows methods when there are
+ multiple methods with the same signature for the same generic
+ (still not fully supported, but at least the user can see them).
+
+ * sys.on.exit() is now always evaluated in the right frame. (From
+ Lionel Henry.)
+
+ * seq.POSIXt(*, by = "<n> DSTdays") now should work correctly in
+ all cases and is faster. (PR#17342)
+
+ * .C() when returning a logical vector now always maps values other
+ than FALSE and NA to TRUE (as documented).
+
+ * Subassignment with zero length vectors now coerces as documented
+ (PR#17344).
+ Further, x <- numeric(); x[1] <- character() now signals an error
+ 'replacement has length zero' (or a translation of that) instead
+ of doing nothing.
+
+ * (Package parallel.) mclapply(), pvec() and mcparallel() (when
+ mccollect() is used to collect results) no longer leave zombie
+ processes behind.
+
+ * R CMD INSTALL <pkg> now produces the intended error message when,
+ e.g., the LazyData field is invalid.
+
+ * as.matrix(dd) now works when the data frame dd contains a column
+ which is a data frame or matrix, including a 0-column matrix/d.f.
+ .
+
+ * mclapply(X, mc.cores) now follows its documentation and calls
+ lapply() in case mc.cores = 1 also in the case mc.preschedule is
+ false. (PR#17373)
+
+ * aggregate(<data.frame>, drop=FALSE) no longer calls the function
+ on <empty> parts but sets corresponding results to NA. (Thanks
+ to Suharto Anggono's patches in PR#17280).
+
+ * The duplicated() method for data frames is now based on the list
+ method (instead of string coercion). Consequently unique() is
+ better distinguishing data frame rows, fixing PR#17369 and
+ PR#17381. The methods for matrices and arrays are changed
+ accordingly.
+
+ * Calling names() on an S4 object derived from "environment"
+ behaves (by default) like calling names() on an ordinary
+ environment.
+
+ * read.table() with a non-default separator now supports quotes
+ following a non-whitespace character, matching the behavior of
+ scan().
+
+ * parLapplyLB and parSapplyLB have been fixed to do load balancing
+ (dynamic scheduling). This also means that results of
+ computations depending on random number generators will now
+ really be non-reproducible, as documented.
+
+ * Indexing a list using dollar and empty string (l$"") returns
+ NULL.
+
+ * Using \usage{ data(<name>, package="<pkg>") } no longer produces
+ R CMD check warnings.
+
+ * match.arg() more carefully chooses the environment for
+ constructing default choices, fixing PR#17401 as proposed by
+ Duncan Murdoch.
+
+ * Deparsing of consecutive ! calls is now consistent with deparsing
+ unary - and + calls and creates code that can be reparsed
+ exactly; thanks to a patch by Lionel Henry in PR#17397. (As a
+ side effect, this uses fewer parentheses in some other deparsing
+ involving ! calls.)
+
CHANGES IN R 3.4.4:
NEW FEATURES:
@@ -54,6 +658,8 @@ CHANGES IN R 3.4.4:
* rf() and rbeta() now also work correctly when ncp is not scalar,
notably when (partly) NA. (PR#17375)
+ * is.na(NULL) no longer warns. (PR#16107)
+
* R CMD INSTALL now correctly sets C++ compiler flags when all
source files are in sub-directories of src.
@@ -3305,7 +3911,7 @@ CHANGES IN R 3.1.2:
arguments that were supplied as missing, e.g. x[i,]. (PR#15957)
* as.environment(list()) now works, and as.list() of such an
- environment is now the same as list().
+ environment is now the same as list(). (PR#15926)
* Several tcltk functions failed when run in unusual environments.
(PR#15970)
diff --git a/doc/NEWS.2 b/doc/NEWS.2
index 2aba9a0..489f8b6 100644
--- a/doc/NEWS.2
+++ b/doc/NEWS.2
@@ -7658,7 +7658,7 @@ NEW FEATURES
o setTimeLimit() function to set limits on the CPU
and/or elapsed time for each top-level computation, and
- setSessionLimit() to set limits for the rest of the session.
+ setSessionTimeLimit() to set limits for the rest of the session.
o splinefun() has a new method = "monoH.FC" for monotone Hermite
spline interpolation.
diff --git a/doc/NEWS.Rd b/doc/NEWS.Rd
index de06f92..f4df259 100644
--- a/doc/NEWS.Rd
+++ b/doc/NEWS.Rd
@@ -5,6 +5,673 @@
\title{R News}
\encoding{UTF-8}
+\section{\Rlogo CHANGES IN R 3.5.0}{
+
+ \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{
+ \itemize{
+ \item All packages are by default byte-compiled on installation.
+ This makes the installed packages larger (usually marginally so)
+ and may affect the format of messages and tracebacks (which often
+ exclude \code{.Call} and similar).
+ }
+ }
+
+ \subsection{NEW FEATURES}{
+ \itemize{
+ \item \code{factor()} now uses \code{order()} to sort its levels,
+ rather than \code{sort.list()}. This allows \code{factor()} to
+ support custom vector-like objects if methods for the appropriate
+ generics are defined. It has the side effect of making
+ \code{factor()} succeed on empty or length-one non-atomic
+ vector(-like) types (e.g., \code{"list"}), where it failed before.
+
+ \item \code{diag()} gets an optional \code{names} argument: this
+ may require updates to packages defining S4 methods for it.
+
+ \item \code{chooseCRANmirror()} and \code{chooseBioCmirror()} no
+ longer have a \code{useHTTPS} argument, not needed now all \R
+ builds support \samp{https://} downloads.
+
+ \item New \code{summary()} method for \code{warnings()} with a
+ (somewhat experimental) \code{print()} method.
+
+ \item (\pkg{methods} package.) \code{.self} is now automatically
+ registered as a global variable when registering a reference class
+ method.
+
+ \item \code{tempdir(check = TRUE)} recreates the \code{tempdir()}
+ directory if it is no longer valid (e.g.\sspace{}because some
+ other process has cleaned up the \file{/tmp} directory).
+
+ \item New \code{askYesNo()} function and \code{"askYesNo"} option
+ to ask the user binary response questions in a customizable but
+ consistent way. (Suggestion of \PR{17242}.)
+
+ \item New low level utilities \code{...elt(n)} and \code{...length()}
+ for working with \code{...} parts inside a function.
+
+ \item \code{isTRUE()} is more tolerant and now true
+ in \preformatted{ x <- rlnorm(99)
+ isTRUE(median(x) == quantile(x)["50\%"])}
+ New function \code{isFALSE()} defined analogously to \code{isTRUE()}.
+
+ \item The default symbol table size has been increased from 4119
+ to 49157; this may improve the performance of symbol resolution
+ when many packages are loaded. (Suggested by Jim Hester.)
+
+ \item \code{line()} gets a new option \code{iter = 1}.
+
+ \item Reading from connections in text mode is buffered,
+ significantly improving the performance of \code{readLines()}, as
+ well as \code{scan()} and \code{read.table()}, at least when
+ specifying \code{colClasses}.
+
+ \item \code{order()} is smarter about picking a default sort
+ \code{method} when its arguments are objects.
+
+ \item \code{available.packages()} has two new arguments which
+ control if the values from the per-session repository cache are
+ used (default true, as before) and if so how old cached values can
+ be to be used (default one hour).
+
+ These arguments can be passed from \code{install.packages()},
+ \code{update.packages()} and functions calling that: to enable
+ this \code{available.packages()}, \code{packageStatus()} and
+ \code{download.file()} gain a \code{\dots} argument.
+
+ \item \code{packageStatus()}'s \code{upgrade()} method no longer
+ ignores its \code{\dots} argument but passes it to
+ \code{install.packages()}.
+
+ \item \code{installed.packages()} gains a \code{\dots} argument to
+ allow arguments (including \code{noCache}) to be passed from
+ \code{new.packages()}, \code{old.packages()},
+ \code{update.packages()} and \code{packageStatus()}.
+
+ \item \code{factor(x, levels, labels)} now allows duplicated
+ \code{labels} (not duplicated \code{levels}!). Hence you can map
+ different values of \code{x} to the same level directly.
+
+ \item Attempting to use \code{names<-()} on an S4 derivative of a
+ basic type no longer emits a warning.
+
+ \item The \code{list} method of \code{within()} gains an option
+ \code{keepAttrs = FALSE} for some speed-up.
+
+ \item \command{system()} and \command{system2()} now allow the
+ specification of a maximum elapsed time (\sQuote{timeout}).
+
+ \item \code{debug()} supports debugging of methods on any object
+ of S4 class \code{"genericFunction"}, including group generics.
+
+ \item Attempting to increase the length of a variable containing
+ \code{NULL} using \code{length()<-} still has no effect on the
+ target variable, but now triggers a warning.
+
+ \item \code{type.convert()} becomes a generic function, with
+ additional methods that operate recursively over list and
+ \code{data.frame} objects. Courtesy of Arni Magnusson
+ (\PR{17269}).
+
+ \item \code{lower.tri(x)} and \code{upper.tri(x)} only needing
+ \code{dim(x)} now work via new functions \code{.row()} and
+ \code{.col()}, so no longer call \code{as.matrix()} by default in
+ order to work efficiently for all kind of matrix-like objects.
+
+ \item \code{print()} methods for \code{"xgettext"} and
+ \code{"xngettext"} now use \code{encodeString()} which keeps,
+ e.g.\sspace{}\code{"\n"}, visible. (Wish of \PR{17298}.)
+
+ \item \code{package.skeleton()} gains an optional \code{encoding}
+ argument.
+
+ \item \code{approx()}, \code{spline()}, \code{splinefun()} and
+ \code{approxfun()} also work for long vectors.
+
+ %% one item with several paragraphs
+ \item \code{deparse()} and \code{dump()} are more useful for S4
+ objects, \code{dput()} now using the same internal C code instead
+ of its previous imperfect workaround R code. S4 objects now
+ typically deparse perfectly, i.e., can be recreated identically
+ from deparsed code.
+
+ \code{dput()}, \code{deparse()} and \code{dump()} now print the
+ \code{names()} information only once, using the more readable
+ \code{(tag = value)} syntax, notably for \code{list()}s, i.e.,
+ including data frames.
+
+ These functions gain a new control option \code{"niceNames"} (see
+ \code{.deparseOpts()}), which when set (as by default) also uses
+ the \code{(tag = value)} syntax for atomic vectors. On the other
+ hand, without deparse options \code{"showAttributes"} and
+ \code{"niceNames"}, names are no longer shown also for lists.
+ \code{as.character(list( c (one = 1)))} now includes the name, as
+ \code{as.character(list(list(one = 1)))} has always done.
+
+ \code{m:n} now also deparses nicely when \eqn{m > n}.
+
+ The \code{"quoteExpressions"} option, also part of \code{"all"},
+ no longer \code{quote()}s formulas as that may not re-parse
+ identically. (\PR{17378})
+
+ \item If the option \code{setWidthOnResize} is set and \code{TRUE},
+ \R run in a terminal using a recent \code{readline} library will
+ set the \code{width} option when the terminal is
+ resized. Suggested by Ralf Goertz.
+
+ \item If multiple \code{on.exit()} expressions are set using
+ \code{add = TRUE} then all expressions will now be run even if one
+ signals an error.
+
+ \item \code{mclapply()} gets an option \code{affinity.list} which
+ allows more efficient execution with heterogeneous processors,
+ thanks to Helena Kotthaus.
+
+ \item The \code{character} methods for \code{as.Date()} and
+ \code{as.POSIXlt()} are more flexible \emph{via} new arguments
+ \code{tryFormats} and \code{optional}: see their help pages.
+
+ \item \code{on.exit()} gains an optional argument \code{after}
+ with default \code{TRUE}. Using \code{after = FALSE} with
+ \code{add = TRUE} adds an exit expression before any
+ existing ones. This way the expressions are run in a first-in
+ last-out fashion. (From Lionel Henry.)
+
+ \item On Windows, \code{file.rename()} internally retries the
+ operation in case of error to attempt to recover from possible
+ anti-virus interference.
+
+ \item Command line completion on \samp{::} now also includes
+ lazy-loaded data.
+
+ \item If the \env{TZ} environment variable is set when date-time
+ functions are first used, it is recorded as the session default
+ and so will be used rather than the default deduced from the OS
+ if \env{TZ} is subsequently unset.
+
+ \item There is now a \code{[} method for class \code{"DLLInfoList"}.
+
+ \item \code{glm()} and \code{glm.fit} get the same
+ \code{singular.ok = TRUE} argument that \code{lm()} has had
+ forever. As a consequence, in \code{glm(*, method = <your_own>)},
+ user specified methods need to accept a \code{singular.ok}
+ argument as well.
+
+ \item \code{aspell()} gains a filter for Markdown (\file{.md} and
+ \file{.Rmd}) files.
+
+ \item \code{intToUtf8(multiple = FALSE)} gains an argument to
+ allow surrogate pairs to be interpreted.
+
+ \item The maximum number of DLLs that can be loaded into R
+ e.g.\sspace{}\emph{via} \code{dyn.load()} has been increased up to 614
+ when the OS limit on the number of open files allows.
+
+ \item \code{Sys.timezone()} on a Unix-alike caches the value at
+ first use in a session: \emph{inter alia} this means that setting
+ \env{TZ} later in the session affects only the \emph{current} time
+ zone and not the \emph{system} one.
+
+ \code{Sys.timezone()} is now used to find the system timezone to
+ pass to the code used when \R is configured with
+ \option{--with-internal-tzcode}.
+
+ \item When \code{tar()} is used with an external command which is
+ detected to be GNU \command{tar} or libarchive \command{tar} (aka
+ \command{bsdtar}), a different command-line is generated to
+ circumvent line-length limits in the shell.
+
+ \item \code{system(*, intern = FALSE)}, \code{system2()} (when not
+ capturing output), \code{file.edit()} and \code{file.show()} now
+ issue a warning when the external command cannot be executed.
+
+ \item The \dQuote{default} (\code{"lm"} etc) methods of
+ \code{vcov()} have gained new optional argument \code{complete =
+ TRUE} which makes the \code{vcov()} methods more consistent with
+ the \code{coef()} methods in the case of singular designs. The
+ former (back-compatible) behavior is given by \code{vcov(*,
+ complete = FALSE)}.
+
+ \item \code{coef()} methods (for \code{lm} etc) also gain a
+ \code{complete = TRUE} optional argument for consistency with
+ \code{vcov()}. \cr
+ For \code{"aov"}, both \code{coef()} and \code{vcov()} methods
+ remain back-compatibly consistent, using the \emph{other} default,
+ \code{complete = FALSE}.
+
+ \item \code{attach(*, pos = 1)} is now an error instead of a
+ warning.
+
+ \item New function \code{getDefaultCluster()} in package
+ \pkg{parallel} to get the default cluster set via
+ \code{setDefaultCluster()}.
+
+ \item \code{str(x)} for atomic objects \code{x} now treats both
+ cases of \code{is.vector(x)} similarly, and hence much less often
+ prints \code{"atomic"}. This is a slight non-back-compatible
+ change producing typically both more informative and shorter
+ output.
+
+ \item \code{write.dcf()} gets optional argument \code{useBytes}.
+
+ \item New, partly experimental \code{packageDate()} which tries to
+ get a valid \code{"Date"} object from a package \file{DESCRIPTION}
+ file, thanks to suggestions in \PR{17324}.
+
+ \item \code{tools::resaveRdaFiles()} gains a \code{version}
+ argument, for use when packages should remain compatible with
+ earlier versions of \R.
+
+ \item \code{ar.yw(x)} and hence by default \code{ar(x)} now work
+ when \code{x} has \code{NA}s, mostly thanks to a patch by Pavel
+ Krivitsky in \PR{17366}. The \code{ar.yw.default()}'s AIC
+ computations have become more efficient by using
+ \code{determinant()}.
+
+ \item New \code{warnErrList()} utility (from package \pkg{nlme},
+ improved).
+
+ \item By default the (arbitrary) signs of the loadings from
+ \code{princomp()} are chosen so the first element is non-negative.
+
+ \item If \option{--default-packages} is not used, then
+ \command{Rscript} now checks the environment variable
+ \env{R_SCRIPT_DEFAULT_PACKAGES}. If this is set, then it takes
+ precedence over \env{R_DEFAULT_PACKAGES}. If default packages are
+ not specified on the command line or by one of these environment
+ variables, then \command{Rscript} now uses the same default
+ packages as \command{R}. For now, the previous behavior of not
+ including \pkg{methods} can be restored by setting the environment
+ variable \env{R_SCRIPT_LEGACY} to \samp{yes}.
+
+ \item When a package is found more than once, the warning from
+ \code{find.package(*, verbose=TRUE)} lists all library locations.
+
+ \item POSIXt objects can now also be rounded or truncated to month
+ or year.
+
+ \item \code{stopifnot()} can be used alternatively via new argument
+ \code{exprs} which is nicer and useful when testing several
+ expressions in one call.
+
+ \item The environment variable \env{R_MAX_VSIZE} can now be used
+ to specify the maximal vector heap size. On macOS, unless specified
+ by this environment variable, the maximal vector heap size is set to
+ the maximum of 16GB and the available physical memory. This is to
+ avoid having the \command{R} process killed when macOS over-commits
+ memory.
+
+ \item \code{sum(x)} and \code{sum(x1,x2,..,x<N>)} with many or
+ long logical or integer vectors no longer overflows (and returns
+ \code{NA} with a warning), but returns \code{double} numbers in
+ such cases.
+
+ \item Single components of \code{"POSIXlt"} objects can now be
+ extracted and replaced via \code{[} indexing with 2 indices.
+
+ \item S3 method lookup now searches the namespace registry after
+ the top level environment of the calling environment.
+
+ \item Arithmetic sequences created by \code{1:n},
+ \code{seq_along}, and the like now use compact internal
+ representations via the \code{ALTREP} framework. Coercing integer
+ and numeric vectors to character also now uses the \code{ALTREP}
+ framework to defer the actual conversion until first use.
+
+ \item Finalizers are now run with interrupts suspended.
+
+ \item \code{merge()} gains new option \code{no.dups} and by
+ default suffixes the second of two duplicated column names,
+ thanks to a proposal by Scott Ritchie (and Gabe Becker).
+
+ \item \code{scale.default(x, center, scale)} now also allows
+ \code{center} or \code{scale} to be \dQuote{numeric-alike}, i.e.,
+ such that \code{as.numeric(.)} coerces them correctly. This also
+ eliminates a wrong error message in such cases.
+
+ \item \code{par*apply} and \code{par*applyLB} gain an optional
+ argument \code{chunk.size} which allows to specify the granularity of
+ scheduling.
+
+ \item Some \code{as.data.frame()} methods, notably the
+ \code{matrix} one, are now more careful in not accepting
+ duplicated or \code{NA} row names, and by default produce unique
+ non-NA row names. This is based on new function
+ \code{.rowNamesDF(x, make.names = *) <- rNms} where the logical
+ argument \code{make.names} allows to specify \emph{how} invalid
+ row names \code{rNms} are handled. \code{.rowNamesDF()} is a
+ \dQuote{workaround} compatible default.
+
+ \item R has new serialization format (version 3) which supports
+ custom serialization of \code{ALTREP} framework objects. These
+ objects can still be serialized in format 2, but less efficiently.
+ Serialization format 3 also records the current native encoding of
+ unflagged strings and converts them when de-serialized in R
+ running under different native encoding. Format 3 comes with new
+ serialization magic numbers (RDA3, RDB3, RDX3). Format 3 can be
+ selected by \code{version = 3} in \code{save()},
+ \code{serialize()} and \code{saveRDS()}, but format 2 remains the
+ default for all serialization and saving of the workspace.
+ Serialized data in format 3 cannot be read by versions of \R prior
+ to version 3.5.0.
+
+ \item The \code{"Date"} and \dQuote{date-time} classes
+ \code{"POSIXlt"} and \code{"POSIXct"} now have a working
+ \code{`length<-`} method, as wished in \PR{17387}.
+
+ \item \code{optim(*, control = list(warn.1d.NelderMead = FALSE))}
+ allows to turn off the warning when applying the default
+ \code{"Nelder-Mead"} method to 1-dimensional problems.
+
+ \item \code{matplot(.., panel.first = .)} etc now work, as
+ \code{log} becomes explicit argument and \code{...} is passed to
+ \code{plot()} unevaluated, as suggested by Sebastian Meyer in \PR{17386}.
+
+ \item Interrupts can be suspended while evaluating an expression
+ using \code{suspendInterrupts}. Subexpression can be evaluated
+ with interrupts enabled using \code{allowInterrupts}. These
+ functions can be used to make sure cleanup handlers cannot be
+ interrupted.
+
+ \item \R 3.5.0 includes a framework that allows packages to
+ provide alternate representations of basic \R objects
+ (\code{ALTREP}). The framework is still experimental and may
+ undergo changes in future \R releases as more experience is
+ gained. For now, documentation is provided in
+ \url{https://svn.r-project.org/R/branches/ALTREP/ALTREP.html}.
+ }
+ }
+
+ \subsection{UTILITIES}{
+ \itemize{
+ \item \code{install.packages()} for source packages now has the
+ possibility to set a \sQuote{timeout} (elapsed-time limit). For
+ serial installs this uses the \code{timeout} argument of
+ \code{system2()}: for parallel installs it requires the
+ \command{timeout} utility command from GNU \pkg{coreutils}.
+
+ \item It is now possible to set \sQuote{timeouts} (elapsed-time
+ limits) for most parts of \command{R CMD check} \emph{via}
+ environment variables documented in the \sQuote{R Internals}
+ manual.
+
+ \item The \sQuote{BioC extra} repository which was dropped from
+ Bioconductor 3.6 and later has been removed from
+ \code{setRepositories()}. This changes the mapping for 6--8 used
+ by \code{setRepositories(ind=)}.
+
+ \item \command{R CMD check} now also applies the settings of
+ environment variables \env{_R_CHECK_SUGGESTS_ONLY_} and
+ \env{_R_CHECK_DEPENDS_ONLY_} to the re-building of vignettes.
+
+ \item \command{R CMD check} with environment variable
+ \env{_R_CHECK_DEPENDS_ONLY_} set to a true value makes
+ test-suite-management packages available and (for the time being)
+ works around a common omission of \CRANpkg{rmarkdown} from the
+ \samp{VignetteBuilder} field.
+ }
+ }
+
+ \subsection{INSTALLATION on a UNIX-ALIKE}{
+ \itemize{
+ \item Support for a system Java on macOS has been
+ removed --- install a fairly recent Oracle Java (see \sQuote{R
+ Installation and Administration} §C.3.2).
+
+ \item \command{configure} works harder to set additional flags in
+ \samp{SAFE_FFLAGS} only where necessary, and to use flags which
+ have little or no effect on performance.
+
+ In rare circumstances it may be necessary to override the
+ setting of \samp{SAFE_FFLAGS}.
+
+ \item C99 functions \code{expm1}, \code{hypot}, \code{log1p} and
+ \code{nearbyint} are now required.
+
+ \item \command{configure} sets a \option{-std} flag for the C++
+ compiler for all supported C++ standards (e.g., \option{-std=gnu++11}
+ for the C++11 compiler). Previously this was not done in a few
+ cases where the default standard passed the tests made
+ (e.g.\sspace\command{clang 6.0.0} for C++11).
+ }
+ }
+
+ \subsection{C-LEVEL FACILITIES}{
+ \itemize{
+ \item \sQuote{Writing R Extensions} documents macros
+ \code{MAYBE_REFERENCED}, \code{MAYBE_SHARED} and
+ \code{MARK_NOT_MUTABLE} that should be used by package \code{C}
+ code instead \code{NAMED} or \code{SET_NAMED}.
+
+ \item The object header layout has been changed to support merging
+ the \code{ALTREP} branch. This requires re-installing packages
+ that use compiled code.
+
+ \item \sQuote{Writing R Extensions} now documents the
+ \code{R_tryCatch}, \code{R_tryCatchError}, and
+ \code{R_UnwindProtect} functions.
+
+ \item \code{NAMEDMAX} has been raised to 3 to allow protection of
+ intermediate results from (usually ill-advised) assignments in
+ arguments to \code{BUILTIN} functions. Package \code{C} code using
+ \code{SET_NAMED} may need to be revised.
+ }
+ }
+
+ \subsection{DEPRECATED AND DEFUNCT}{
+ \itemize{
+ \item \code{Sys.timezone(location = FALSE)} is defunct, and is
+ ignored (with a warning).
+
+ \item \code{methods:::bind_activation()} is defunct now; it
+ typically has been unneeded for years.
+
+ The undocumented \sQuote{hidden} objects \code{.__H__.cbind} and
+ \code{.__H__.rbind} in package \pkg{base} are deprecated (in
+ favour of \code{cbind} and \code{rbind}).
+
+ \item The declaration of \code{pythag()} in \file{Rmath.h} has
+ been removed --- the entry point has not been provided since \R
+ 2.14.0.
+ }
+ }
+
+ \subsection{BUG FIXES}{
+ \itemize{
+ \item \code{printCoefmat()} now also works without column names.
+
+ \item The S4 methods on \code{Ops()} for the \code{"structure"} class no
+ longer cause infinite recursion when the structure is not an S4 object.
+
+ \item \code{nlm(f, ..)} for the case where \code{f()} has a
+ \code{"hessian"} attribute now computes
+ \eqn{LL' = H + \mu I}{LL' = H + µI} correctly. (\PR{17249}).
+
+ \item An S4 method that \dQuote{rematches} to its generic and
+ overrides the default value of a generic formal argument to
+ \code{NULL} no longer drops the argument from its formals.
+
+ \item \code{Rscript} can now accept more than one argument given on
+ the \samp{#!} line of a script. Previously, one could only pass a
+ single argument on the \samp{#!} line in Linux.
+
+ \item Connections are now written correctly with encoding
+ \code{"UTF-16LE"}. (\PR{16737}).
+
+ \item Evaluation of \code{..0} now signals an error. When
+ \code{..1} is used and \code{...} is empty, the error message is
+ more appropriate.
+
+ \item (Windows mainly.) Unicode code points which require
+ surrogate pairs in UTF-16 are now handled. All systems should
+ properly handle surrogate pairs, even those systems that do not
+ need to make use of them. (\PR{16098})
+
+ \item \code{stopifnot(e, e2, ...)} now evaluates the
+ expressions sequentially and in case of an error or warning shows
+ the relevant expression instead of the full \code{stopifnot(..)}
+ call.
+
+ \item \code{path.expand()} on Windows now accepts paths specified as
+ UTF-8-encoded character strings even if not representable in the
+ current locale. (\PR{17120})
+
+ \item \code{line(x, y)} now correctly computes the medians of the
+ left and right group's x-values and in all cases reproduces
+ straight lines.
+
+ \item Extending S4 classes with slots corresponding to special
+ attributes like \code{dim} and \code{dimnames} now works.
+
+ \item Fix for \code{legend()} when \code{fill} has multiple values
+ the first of which is \code{NA} (all colours used to default to
+ \code{par(fg)}). (\PR{17288})
+
+ \item \code{installed.packages()} did not remove the cached value
+ for a library tree that had been emptied (but would not use the
+ old value, just waste time checking it).
+
+ \item The documentation for \code{installed.packages(noCache = TRUE)}
+ incorrectly claimed it would refresh the cache.
+
+ \item \code{aggregate(<data.frame>)} no longer uses spurious names
+ in some cases. (\PR{17283})
+
+ \item \code{object.size()} now also works for long vectors.
+
+ \item \code{packageDescription()} tries harder to solve
+ re-encoding issues, notably seen in some Windows locales. This
+ fixes the \code{citation()} issue in \PR{17291}.
+
+ \item \code{poly(<matrix>, 3)} now works, thanks to prompting by
+ Marc Schwartz.
+
+ \item \code{readLines()} no longer segfaults on very large files
+ with embedded \code{'\0'} (aka \sQuote{nul}) characters.
+ (\PR{17311})
+
+ \item \code{ns()} (package \pkg{splines}) now also works for a
+ single observation. \code{interpSpline()} gives a more friendly
+ error message when the number of points is less than four.
+
+ \item \code{dist(x, method = "canberra")} now uses the correct
+ definition; the result may only differ when \code{x} contains
+ values of differing signs, e.g.\sspace{}not for 0-1 data.
+
+ \item \code{methods:::cbind()} and \code{methods:::rbind()} avoid
+ deep recursion, thanks to Suharto Anggono via \PR{17300}.
+
+ \item Arithmetic with zero-column data frames now works more
+ consistently; issue raised by Bill Dunlap.
+
+ Arithmetic with data frames gives a data frame for \code{^} (which
+ previously gave a numeric matrix).
+
+ \item \code{pretty(x, n)} for large \code{n} or large
+ \code{diff(range(x))} now works better (though
+ it was never meant for large \code{n}); internally it uses the
+ same rounding fuzz (1e-10) as \code{seq.default()} --- as it did up
+ to 2010-02-03 when both were 1e-7.
+
+ \item Internal C-level \code{R_check_class_and_super()} and hence
+ \code{R_check_class_etc()} now also consider non-direct super
+ classes and hence return a match in more cases. This e.g., fixes
+ behaviour of derived classes in package \CRANpkg{Matrix}.
+
+ \item Reverted unintended change in behavior of \code{return}
+ calls in \code{on.exit} expressions introduced by stack unwinding
+ changes in \R 3.3.0.
+
+ \item Attributes on symbols are now detected and prevented; attempt
+ to add an attribute to a symbol results in an error.
+
+ \item \code{fisher.test(*, workspace = <n>)} now may also increase
+ the internal stack size which allows larger problem to be solved,
+ fixing \PR{1662}.
+
+ \item The \pkg{methods} package no longer directly copies slots
+ (attributes) into a prototype that is of an \dQuote{abnormal}
+ (reference) type, like a symbol.
+
+ \item The \pkg{methods} package no longer attempts to call
+ \code{length<-()} on \code{NULL} (during the bootstrap process).
+
+ \item The \pkg{methods} package correctly shows methods when there
+ are multiple methods with the same signature for the same generic
+ (still not fully supported, but at least the user can see them).
+
+ \item \code{sys.on.exit()} is now always evaluated in the right
+ frame. (From Lionel Henry.)
+
+ \item \code{seq.POSIXt(*, by = "<n> DSTdays")} now should work
+ correctly in all cases and is faster. (\PR{17342})
+
+ \item \code{.C()} when returning a logical vector now always maps
+ values other than FALSE and NA to TRUE (as documented).
+
+ \item Subassignment with zero length vectors now coerces as
+ documented (\PR{17344}).\cr
+ Further, \code{x <- numeric(); x[1] <- character()} now signals
+ an error \sQuote{\verb{replacement has length zero}} (or a
+ translation of that) instead of doing nothing.
+
+ \item (Package \pkg{parallel}.) \code{mclapply()}, \code{pvec()}
+ and \code{mcparallel()} (when \code{mccollect()} is used to
+ collect results) no longer leave zombie processes behind.
+
+ \item \code{R CMD INSTALL <pkg>} now produces the intended error
+ message when, e.g., the \code{LazyData} field is invalid.
+
+ \item \code{as.matrix(dd)} now works when the data frame \code{dd}
+ contains a column which is a data frame or matrix, including a
+ 0-column matrix/d.f. .
+
+ \item \code{mclapply(X, mc.cores)} now follows its documentation
+ and calls \code{lapply()} in case \code{mc.cores = 1} also in the
+ case \code{mc.preschedule} is false. (\PR{17373})
+
+ \item \code{aggregate(<data.frame>, drop=FALSE)} no longer calls
+ the function on <empty> parts but sets corresponding results to
+ \code{NA}. (Thanks to Suharto Anggono's patches in \PR{17280}).
+
+ \item The \code{duplicated()} method for data frames is now based
+ on the \code{list} method (instead of string coercion). Consequently
+ \code{unique()} is better distinguishing data frame rows, fixing
+ \PR{17369} and \PR{17381}. The methods for matrices and arrays
+ are changed accordingly.
+
+ \item Calling \code{names()} on an S4 object derived from
+ \code{"environment"} behaves (by default) like calling
+ \code{names()} on an ordinary environment.
+
+ \item \code{read.table()} with a non-default separator now
+ supports quotes following a non-whitespace character, matching the
+ behavior of \code{scan()}.
+
+ \item \code{parLapplyLB} and \code{parSapplyLB} have been fixed to do
+ load balancing (dynamic scheduling). This also means that results of
+ computations depending on random number generators will now really be
+ non-reproducible, as documented.
+
+ \item Indexing a list using dollar and empty string (\code{l$""})
+ returns NULL.
+
+ \item Using \code{ \\usage\{ data(<name>, package="<pkg>") \} }
+ no longer produces \command{R CMD check} warnings.
+
+ \item \code{match.arg()} more carefully chooses the environment
+ for constructing default \code{choices}, fixing \PR{17401} as
+ proposed by Duncan Murdoch.
+
+ \item Deparsing of consecutive \code{!} calls is now consistent
+ with deparsing unary \code{-} and \code{+} calls and creates code
+ that can be reparsed exactly; thanks to a patch by Lionel Henry in
+ \PR{17397}. (As a side effect, this uses fewer parentheses in
+ some other deparsing involving \code{!} calls.)
+ }
+ }
+}
+
\section{\Rlogo CHANGES IN R 3.4.4}{
\subsection{NEW FEATURES}{
@@ -70,6 +737,8 @@
\code{ncp} is not scalar, notably when (partly) \code{NA}.
(\PR{17375})
+ \item \code{is.na(NULL)} no longer warns. (\PR{16107})
+
\item \command{R CMD INSTALL} now correctly sets C++ compiler flags
when all source files are in sub-directories of \file{src}.
}
@@ -3740,7 +4409,7 @@
\item \code{as.environment(list())} now works, and
\code{as.list()} of such an environment is now the same as
- \code{list()}.
+ \code{list()}. (\PR{15926})
\item Several \pkg{tcltk} functions failed when run in unusual
environments. (\PR{15970})
diff --git a/doc/NEWS.pdf b/doc/NEWS.pdf
index f5656e9..06b7430 100644
--- a/doc/NEWS.pdf
+++ b/doc/NEWS.pdf
Binary files differ
diff --git a/doc/THANKS b/doc/THANKS
index e68c8eb..6f8eb3e 100644
--- a/doc/THANKS
+++ b/doc/THANKS
@@ -2,12 +2,12 @@ R would not be what it is today without the invaluable help of these
people outside of the R core team, who contributed by donating code, bug
fixes and documentation:
-Valerio Aimale, Thomas Baier, Henrik Bengtsson, Roger Bivand,
+Valerio Aimale, Suharto Anggono, Thomas Baier, Henrik Bengtsson, Roger Bivand,
Ben Bolker, David Brahm, G"oran Brostr"om, Patrick Burns, Vince Carey,
Saikat DebRoy, Matt Dowle, Brian D'Urso, Lyndon Drake, Dirk Eddelbuettel,
Claus Ekstrom, Sebastian Fischmeister, John Fox, Paul Gilbert,
-Yu Gong, Gabor Grothendieck, Frank E Harrell Jr, Torsten Hothorn,
-Robert King, Kjetil Kjernsmo, Roger Koenker, Philippe Lambert,
+Yu Gong, Gabor Grothendieck, Frank E Harrell Jr, Peter M. Haverty,
+Torsten Hothorn, Robert King, Kjetil Kjernsmo, Roger Koenker, Philippe Lambert,
Jan de Leeuw, Jim Lindsey, Patrick Lindsey, Catherine Loader,
Gordon Maclean, John Maindonald, David Meyer, Ei-ji Nakama,
Jens Oehlschaegel, Steve Oncley, Richard O'Keefe, Hubert Palme,
@@ -63,7 +63,7 @@ would help advance the R project.
The R Core Group, Roger Bivand, Jennifer Bryan, Di Cook, Dirk Eddelbuettel,
John Fox, Bettina Grün, Frank Harrell, Torsten Hothorn, Stefano Iacus,
-Julie Josse, Balasubramanian Narasimhan, Marc Schwartz, Heather Turner,
+Julie Josse, Balasubramanian Narasimhan, Marc Schwartz, Heather Turner,
Bill Venables, Hadley Wickham and Achim Zeileis are the ordinary members of
the R Foundation.
In addition, David Meyer and Simon Wood are also e-addressable by
diff --git a/doc/html/NEWS.html b/doc/html/NEWS.html
index 3fbb5a1..d6d769f 100644
--- a/doc/html/NEWS.html
+++ b/doc/html/NEWS.html
@@ -7,6 +7,844 @@
<h2>R News</h2>
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.5.0</h3>
+
+
+
+<h4>SIGNIFICANT USER-VISIBLE CHANGES</h4>
+
+
+<ul>
+<li><p> All packages are by default byte-compiled on installation.
+This makes the installed packages larger (usually marginally so)
+and may affect the format of messages and tracebacks (which often
+exclude <code>.Call</code> and similar).
+</p>
+</li></ul>
+
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>factor()</code> now uses <code>order()</code> to sort its levels,
+rather than <code>sort.list()</code>. This allows <code>factor()</code> to
+support custom vector-like objects if methods for the appropriate
+generics are defined. It has the side effect of making
+<code>factor()</code> succeed on empty or length-one non-atomic
+vector(-like) types (e.g., <code>"list"</code>), where it failed before.
+</p>
+</li>
+<li> <p><code>diag()</code> gets an optional <code>names</code> argument: this
+may require updates to packages defining S4 methods for it.
+</p>
+</li>
+<li> <p><code>chooseCRANmirror()</code> and <code>chooseBioCmirror()</code> no
+longer have a <code>useHTTPS</code> argument, not needed now all <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+builds support <span class="samp">https://</span> downloads.
+</p>
+</li>
+<li><p> New <code>summary()</code> method for <code>warnings()</code> with a
+(somewhat experimental) <code>print()</code> method.
+</p>
+</li>
+<li><p> (<span class="pkg">methods</span> package.) <code>.self</code> is now automatically
+registered as a global variable when registering a reference class
+method.
+</p>
+</li>
+<li> <p><code>tempdir(check = TRUE)</code> recreates the <code>tempdir()</code>
+directory if it is no longer valid (e.g. because some
+other process has cleaned up the &lsquo;<span class="file">/tmp</span>&rsquo; directory).
+</p>
+</li>
+<li><p> New <code>askYesNo()</code> function and <code>"askYesNo"</code> option
+to ask the user binary response questions in a customizable but
+consistent way. (Suggestion of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17242">PR#17242</a>.)
+</p>
+</li>
+<li><p> New low level utilities <code>...elt(n)</code> and <code>...length()</code>
+for working with <code>...</code> parts inside a function.
+</p>
+</li>
+<li> <p><code>isTRUE()</code> is more tolerant and now true
+in </p>
+<pre> x &lt;- rlnorm(99)
+ isTRUE(median(x) == quantile(x)["50%"])</pre>
+<p>New function <code>isFALSE()</code> defined analogously to <code>isTRUE()</code>.
+</p>
+</li>
+<li><p> The default symbol table size has been increased from 4119
+to 49157; this may improve the performance of symbol resolution
+when many packages are loaded. (Suggested by Jim Hester.)
+</p>
+</li>
+<li> <p><code>line()</code> gets a new option <code>iter = 1</code>.
+</p>
+</li>
+<li><p> Reading from connections in text mode is buffered,
+significantly improving the performance of <code>readLines()</code>, as
+well as <code>scan()</code> and <code>read.table()</code>, at least when
+specifying <code>colClasses</code>.
+</p>
+</li>
+<li> <p><code>order()</code> is smarter about picking a default sort
+<code>method</code> when its arguments are objects.
+</p>
+</li>
+<li> <p><code>available.packages()</code> has two new arguments which
+control if the values from the per-session repository cache are
+used (default true, as before) and if so how old cached values can
+be to be used (default one hour).
+</p>
+<p>These arguments can be passed from <code>install.packages()</code>,
+<code>update.packages()</code> and functions calling that: to enable
+this <code>available.packages()</code>, <code>packageStatus()</code> and
+<code>download.file()</code> gain a <code>...</code> argument.
+</p>
+</li>
+<li> <p><code>packageStatus()</code>'s <code>upgrade()</code> method no longer
+ignores its <code>...</code> argument but passes it to
+<code>install.packages()</code>.
+</p>
+</li>
+<li> <p><code>installed.packages()</code> gains a <code>...</code> argument to
+allow arguments (including <code>noCache</code>) to be passed from
+<code>new.packages()</code>, <code>old.packages()</code>,
+<code>update.packages()</code> and <code>packageStatus()</code>.
+</p>
+</li>
+<li> <p><code>factor(x, levels, labels)</code> now allows duplicated
+<code>labels</code> (not duplicated <code>levels</code>!). Hence you can map
+different values of <code>x</code> to the same level directly.
+</p>
+</li>
+<li><p> Attempting to use <code>names&lt;-()</code> on an S4 derivative of a
+basic type no longer emits a warning.
+</p>
+</li>
+<li><p> The <code>list</code> method of <code>within()</code> gains an option
+<code>keepAttrs = FALSE</code> for some speed-up.
+</p>
+</li>
+<li> <p><code>system()</code> and <code>system2()</code> now allow the
+specification of a maximum elapsed time (&lsquo;timeout&rsquo;).
+</p>
+</li>
+<li> <p><code>debug()</code> supports debugging of methods on any object
+of S4 class <code>"genericFunction"</code>, including group generics.
+</p>
+</li>
+<li><p> Attempting to increase the length of a variable containing
+<code>NULL</code> using <code>length()&lt;-</code> still has no effect on the
+target variable, but now triggers a warning.
+</p>
+</li>
+<li> <p><code>type.convert()</code> becomes a generic function, with
+additional methods that operate recursively over list and
+<code>data.frame</code> objects. Courtesy of Arni Magnusson
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17269">PR#17269</a>).
+</p>
+</li>
+<li> <p><code>lower.tri(x)</code> and <code>upper.tri(x)</code> only needing
+<code>dim(x)</code> now work via new functions <code>.row()</code> and
+<code>.col()</code>, so no longer call <code>as.matrix()</code> by default in
+order to work efficiently for all kind of matrix-like objects.
+</p>
+</li>
+<li> <p><code>print()</code> methods for <code>"xgettext"</code> and
+<code>"xngettext"</code> now use <code>encodeString()</code> which keeps,
+e.g. <code>"\n"</code>, visible. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17298">PR#17298</a>.)
+</p>
+</li>
+<li> <p><code>package.skeleton()</code> gains an optional <code>encoding</code>
+argument.
+</p>
+</li>
+<li> <p><code>approx()</code>, <code>spline()</code>, <code>splinefun()</code> and
+<code>approxfun()</code> also work for long vectors.
+</p>
+
+</li>
+<li> <p><code>deparse()</code> and <code>dump()</code> are more useful for S4
+objects, <code>dput()</code> now using the same internal C code instead
+of its previous imperfect workaround R code. S4 objects now
+typically deparse perfectly, i.e., can be recreated identically
+from deparsed code.
+</p>
+<p><code>dput()</code>, <code>deparse()</code> and <code>dump()</code> now print the
+<code>names()</code> information only once, using the more readable
+<code>(tag = value)</code> syntax, notably for <code>list()</code>s, i.e.,
+including data frames.
+</p>
+<p>These functions gain a new control option <code>"niceNames"</code> (see
+<code>.deparseOpts()</code>), which when set (as by default) also uses
+the <code>(tag = value)</code> syntax for atomic vectors. On the other
+hand, without deparse options <code>"showAttributes"</code> and
+<code>"niceNames"</code>, names are no longer shown also for lists.
+<code>as.character(list( c (one = 1)))</code> now includes the name, as
+<code>as.character(list(list(one = 1)))</code> has always done.
+</p>
+<p><code>m:n</code> now also deparses nicely when <i>m &gt; n</i>.
+</p>
+<p>The <code>"quoteExpressions"</code> option, also part of <code>"all"</code>,
+no longer <code>quote()</code>s formulas as that may not re-parse
+identically. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17378">PR#17378</a>)
+</p>
+</li>
+<li><p> If the option <code>setWidthOnResize</code> is set and <code>TRUE</code>,
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> run in a terminal using a recent <code>readline</code> library will
+set the <code>width</code> option when the terminal is
+resized. Suggested by Ralf Goertz.
+</p>
+</li>
+<li><p> If multiple <code>on.exit()</code> expressions are set using
+<code>add = TRUE</code> then all expressions will now be run even if one
+signals an error.
+</p>
+</li>
+<li> <p><code>mclapply()</code> gets an option <code>affinity.list</code> which
+allows more efficient execution with heterogeneous processors,
+thanks to Helena Kotthaus.
+</p>
+</li>
+<li><p> The <code>character</code> methods for <code>as.Date()</code> and
+<code>as.POSIXlt()</code> are more flexible <em>via</em> new arguments
+<code>tryFormats</code> and <code>optional</code>: see their help pages.
+</p>
+</li>
+<li> <p><code>on.exit()</code> gains an optional argument <code>after</code>
+with default <code>TRUE</code>. Using <code>after = FALSE</code> with
+<code>add = TRUE</code> adds an exit expression before any
+existing ones. This way the expressions are run in a first-in
+last-out fashion. (From Lionel Henry.)
+</p>
+</li>
+<li><p> On Windows, <code>file.rename()</code> internally retries the
+operation in case of error to attempt to recover from possible
+anti-virus interference.
+</p>
+</li>
+<li><p> Command line completion on <span class="samp">::</span> now also includes
+lazy-loaded data.
+</p>
+</li>
+<li><p> If the <span class="env">TZ</span> environment variable is set when date-time
+functions are first used, it is recorded as the session default
+and so will be used rather than the default deduced from the OS
+if <span class="env">TZ</span> is subsequently unset.
+</p>
+</li>
+<li><p> There is now a <code>[</code> method for class <code>"DLLInfoList"</code>.
+</p>
+</li>
+<li> <p><code>glm()</code> and <code>glm.fit</code> get the same
+<code>singular.ok = TRUE</code> argument that <code>lm()</code> has had
+forever. As a consequence, in <code>glm(*, method = &lt;your_own&gt;)</code>,
+user specified methods need to accept a <code>singular.ok</code>
+argument as well.
+</p>
+</li>
+<li> <p><code>aspell()</code> gains a filter for Markdown (&lsquo;<span class="file">.md</span>&rsquo; and
+&lsquo;<span class="file">.Rmd</span>&rsquo;) files.
+</p>
+</li>
+<li> <p><code>intToUtf8(multiple = FALSE)</code> gains an argument to
+allow surrogate pairs to be interpreted.
+</p>
+</li>
+<li><p> The maximum number of DLLs that can be loaded into R
+e.g. <em>via</em> <code>dyn.load()</code> has been increased up to 614
+when the OS limit on the number of open files allows.
+</p>
+</li>
+<li> <p><code>Sys.timezone()</code> on a Unix-alike caches the value at
+first use in a session: <em>inter alia</em> this means that setting
+<span class="env">TZ</span> later in the session affects only the <em>current</em> time
+zone and not the <em>system</em> one.
+</p>
+<p><code>Sys.timezone()</code> is now used to find the system timezone to
+pass to the code used when <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is configured with
+<span class="option">--with-internal-tzcode</span>.
+</p>
+</li>
+<li><p> When <code>tar()</code> is used with an external command which is
+detected to be GNU <code>tar</code> or libarchive <code>tar</code> (aka
+<code>bsdtar</code>), a different command-line is generated to
+circumvent line-length limits in the shell.
+</p>
+</li>
+<li> <p><code>system(*, intern = FALSE)</code>, <code>system2()</code> (when not
+capturing output), <code>file.edit()</code> and <code>file.show()</code> now
+issue a warning when the external command cannot be executed.
+</p>
+</li>
+<li><p> The &ldquo;default&rdquo; (<code>"lm"</code> etc) methods of
+<code>vcov()</code> have gained new optional argument <code>complete =
+ TRUE</code> which makes the <code>vcov()</code> methods more consistent with
+the <code>coef()</code> methods in the case of singular designs. The
+former (back-compatible) behavior is given by <code>vcov(*,
+ complete = FALSE)</code>.
+</p>
+</li>
+<li> <p><code>coef()</code> methods (for <code>lm</code> etc) also gain a
+<code>complete = TRUE</code> optional argument for consistency with
+<code>vcov()</code>. <br />
+For <code>"aov"</code>, both <code>coef()</code> and <code>vcov()</code> methods
+remain back-compatibly consistent, using the <em>other</em> default,
+<code>complete = FALSE</code>.
+</p>
+</li>
+<li> <p><code>attach(*, pos = 1)</code> is now an error instead of a
+warning.
+</p>
+</li>
+<li><p> New function <code>getDefaultCluster()</code> in package
+<span class="pkg">parallel</span> to get the default cluster set via
+<code>setDefaultCluster()</code>.
+</p>
+</li>
+<li> <p><code>str(x)</code> for atomic objects <code>x</code> now treats both
+cases of <code>is.vector(x)</code> similarly, and hence much less often
+prints <code>"atomic"</code>. This is a slight non-back-compatible
+change producing typically both more informative and shorter
+output.
+</p>
+</li>
+<li> <p><code>write.dcf()</code> gets optional argument <code>useBytes</code>.
+</p>
+</li>
+<li><p> New, partly experimental <code>packageDate()</code> which tries to
+get a valid <code>"Date"</code> object from a package &lsquo;<span class="file">DESCRIPTION</span>&rsquo;
+file, thanks to suggestions in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17324">PR#17324</a>.
+</p>
+</li>
+<li> <p><code>tools::resaveRdaFiles()</code> gains a <code>version</code>
+argument, for use when packages should remain compatible with
+earlier versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+</p>
+</li>
+<li> <p><code>ar.yw(x)</code> and hence by default <code>ar(x)</code> now work
+when <code>x</code> has <code>NA</code>s, mostly thanks to a patch by Pavel
+Krivitsky in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17366">PR#17366</a>. The <code>ar.yw.default()</code>'s AIC
+computations have become more efficient by using
+<code>determinant()</code>.
+</p>
+</li>
+<li><p> New <code>warnErrList()</code> utility (from package <span class="pkg">nlme</span>,
+improved).
+</p>
+</li>
+<li><p> By default the (arbitrary) signs of the loadings from
+<code>princomp()</code> are chosen so the first element is non-negative.
+</p>
+</li>
+<li><p> If <span class="option">--default-packages</span> is not used, then
+<code>Rscript</code> now checks the environment variable
+<span class="env">R_SCRIPT_DEFAULT_PACKAGES</span>. If this is set, then it takes
+precedence over <span class="env">R_DEFAULT_PACKAGES</span>. If default packages are
+not specified on the command line or by one of these environment
+variables, then <code>Rscript</code> now uses the same default
+packages as <code>R</code>. For now, the previous behavior of not
+including <span class="pkg">methods</span> can be restored by setting the environment
+variable <span class="env">R_SCRIPT_LEGACY</span> to <span class="samp">yes</span>.
+</p>
+</li>
+<li><p> When a package is found more than once, the warning from
+<code>find.package(*, verbose=TRUE)</code> lists all library locations.
+</p>
+</li>
+<li><p> POSIXt objects can now also be rounded or truncated to month
+or year.
+</p>
+</li>
+<li> <p><code>stopifnot()</code> can be used alternatively via new argument
+<code>exprs</code> which is nicer and useful when testing several
+expressions in one call.
+</p>
+</li>
+<li><p> The environment variable <span class="env">R_MAX_VSIZE</span> can now be used
+to specify the maximal vector heap size. On macOS, unless specified
+by this environment variable, the maximal vector heap size is set to
+the maximum of 16GB and the available physical memory. This is to
+avoid having the <code>R</code> process killed when macOS over-commits
+memory.
+</p>
+</li>
+<li> <p><code>sum(x)</code> and <code>sum(x1,x2,..,x&lt;N&gt;)</code> with many or
+long logical or integer vectors no longer overflows (and returns
+<code>NA</code> with a warning), but returns <code>double</code> numbers in
+such cases.
+</p>
+</li>
+<li><p> Single components of <code>"POSIXlt"</code> objects can now be
+extracted and replaced via <code>[</code> indexing with 2 indices.
+</p>
+</li>
+<li><p> S3 method lookup now searches the namespace registry after
+the top level environment of the calling environment.
+</p>
+</li>
+<li><p> Arithmetic sequences created by <code>1:n</code>,
+<code>seq_along</code>, and the like now use compact internal
+representations via the <code>ALTREP</code> framework. Coercing integer
+and numeric vectors to character also now uses the <code>ALTREP</code>
+framework to defer the actual conversion until first use.
+</p>
+</li>
+<li><p> Finalizers are now run with interrupts suspended.
+</p>
+</li>
+<li> <p><code>merge()</code> gains new option <code>no.dups</code> and by
+default suffixes the second of two duplicated column names,
+thanks to a proposal by Scott Ritchie (and Gabe Becker).
+</p>
+</li>
+<li> <p><code>scale.default(x, center, scale)</code> now also allows
+<code>center</code> or <code>scale</code> to be &ldquo;numeric-alike&rdquo;, i.e.,
+such that <code>as.numeric(.)</code> coerces them correctly. This also
+eliminates a wrong error message in such cases.
+</p>
+</li>
+<li> <p><code>par*apply</code> and <code>par*applyLB</code> gain an optional
+argument <code>chunk.size</code> which allows to specify the granularity of
+scheduling.
+</p>
+</li>
+<li><p> Some <code>as.data.frame()</code> methods, notably the
+<code>matrix</code> one, are now more careful in not accepting
+duplicated or <code>NA</code> row names, and by default produce unique
+non-NA row names. This is based on new function
+<code>.rowNamesDF(x, make.names = *) &lt;- rNms</code> where the logical
+argument <code>make.names</code> allows to specify <em>how</em> invalid
+row names <code>rNms</code> are handled. <code>.rowNamesDF()</code> is a
+&ldquo;workaround&rdquo; compatible default.
+</p>
+</li>
+<li><p> R has new serialization format (version 3) which supports
+custom serialization of <code>ALTREP</code> framework objects. These
+objects can still be serialized in format 2, but less efficiently.
+Serialization format 3 also records the current native encoding of
+unflagged strings and converts them when de-serialized in R
+running under different native encoding. Format 3 comes with new
+serialization magic numbers (RDA3, RDB3, RDX3). Format 3 can be
+selected by <code>version = 3</code> in <code>save()</code>,
+<code>serialize()</code> and <code>saveRDS()</code>, but format 2 remains the
+default for all serialization and saving of the workspace.
+Serialized data in format 3 cannot be read by versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> prior
+to version 3.5.0.
+</p>
+</li>
+<li><p> The <code>"Date"</code> and &ldquo;date-time&rdquo; classes
+<code>"POSIXlt"</code> and <code>"POSIXct"</code> now have a working
+<code>`length&lt;-`</code> method, as wished in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17387">PR#17387</a>.
+</p>
+</li>
+<li> <p><code>optim(*, control = list(warn.1d.NelderMead = FALSE))</code>
+allows to turn off the warning when applying the default
+<code>"Nelder-Mead"</code> method to 1-dimensional problems.
+</p>
+</li>
+<li> <p><code>matplot(.., panel.first = .)</code> etc now work, as
+<code>log</code> becomes explicit argument and <code>...</code> is passed to
+<code>plot()</code> unevaluated, as suggested by Sebastian Meyer in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17386">PR#17386</a>.
+</p>
+</li>
+<li><p> Interrupts can be suspended while evaluating an expression
+using <code>suspendInterrupts</code>. Subexpression can be evaluated
+with interrupts enabled using <code>allowInterrupts</code>. These
+functions can be used to make sure cleanup handlers cannot be
+interrupted.
+</p>
+</li>
+<li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.5.0 includes a framework that allows packages to
+provide alternate representations of basic <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> objects
+(<code>ALTREP</code>). The framework is still experimental and may
+undergo changes in future <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> releases as more experience is
+gained. For now, documentation is provided in
+<a href="https://svn.r-project.org/R/branches/ALTREP/ALTREP.html">https://svn.r-project.org/R/branches/ALTREP/ALTREP.html</a>.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>install.packages()</code> for source packages now has the
+possibility to set a &lsquo;timeout&rsquo; (elapsed-time limit). For
+serial installs this uses the <code>timeout</code> argument of
+<code>system2()</code>: for parallel installs it requires the
+<code>timeout</code> utility command from GNU <span class="pkg">coreutils</span>.
+</p>
+</li>
+<li><p> It is now possible to set &lsquo;timeouts&rsquo; (elapsed-time
+limits) for most parts of <code>R CMD check</code> <em>via</em>
+environment variables documented in the &lsquo;R Internals&rsquo;
+manual.
+</p>
+</li>
+<li><p> The &lsquo;BioC extra&rsquo; repository which was dropped from
+Bioconductor 3.6 and later has been removed from
+<code>setRepositories()</code>. This changes the mapping for 6&ndash;8 used
+by <code>setRepositories(ind=)</code>.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now also applies the settings of
+environment variables <span class="env">_R_CHECK_SUGGESTS_ONLY_</span> and
+<span class="env">_R_CHECK_DEPENDS_ONLY_</span> to the re-building of vignettes.
+</p>
+</li>
+<li> <p><code>R CMD check</code> with environment variable
+<span class="env">_R_CHECK_DEPENDS_ONLY_</span> set to a true value makes
+test-suite-management packages available and (for the time being)
+works around a common omission of <a href="https://CRAN.R-project.org/package=rmarkdown"><span class="pkg">rmarkdown</span></a> from the
+<span class="samp">VignetteBuilder</span> field.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION on a UNIX-ALIKE</h4>
+
+
+<ul>
+<li><p> Support for a system Java on macOS has been
+removed &mdash; install a fairly recent Oracle Java (see &lsquo;R
+Installation and Administration&rsquo; §C.3.2).
+</p>
+</li>
+<li> <p><code>configure</code> works harder to set additional flags in
+<span class="samp">SAFE_FFLAGS</span> only where necessary, and to use flags which
+have little or no effect on performance.
+</p>
+<p>In rare circumstances it may be necessary to override the
+setting of <span class="samp">SAFE_FFLAGS</span>.
+</p>
+</li>
+<li><p> C99 functions <code>expm1</code>, <code>hypot</code>, <code>log1p</code> and
+<code>nearbyint</code> are now required.
+</p>
+</li>
+<li> <p><code>configure</code> sets a <span class="option">-std</span> flag for the C++
+compiler for all supported C++ standards (e.g., <span class="option">-std=gnu++11</span>
+for the C++11 compiler). Previously this was not done in a few
+cases where the default standard passed the tests made
+(e.g. <code>clang 6.0.0</code> for C++11).
+</p>
+</li></ul>
+
+
+
+
+<h4>C-LEVEL FACILITIES</h4>
+
+
+<ul>
+<li> <p>&lsquo;Writing R Extensions&rsquo; documents macros
+<code>MAYBE_REFERENCED</code>, <code>MAYBE_SHARED</code> and
+<code>MARK_NOT_MUTABLE</code> that should be used by package <code>C</code>
+code instead <code>NAMED</code> or <code>SET_NAMED</code>.
+</p>
+</li>
+<li><p> The object header layout has been changed to support merging
+the <code>ALTREP</code> branch. This requires re-installing packages
+that use compiled code.
+</p>
+</li>
+<li> <p>&lsquo;Writing R Extensions&rsquo; now documents the
+<code>R_tryCatch</code>, <code>R_tryCatchError</code>, and
+<code>R_UnwindProtect</code> functions.
+</p>
+</li>
+<li> <p><code>NAMEDMAX</code> has been raised to 3 to allow protection of
+intermediate results from (usually ill-advised) assignments in
+arguments to <code>BUILTIN</code> functions. Package <code>C</code> code using
+<code>SET_NAMED</code> may need to be revised.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED AND DEFUNCT</h4>
+
+
+<ul>
+<li> <p><code>Sys.timezone(location = FALSE)</code> is defunct, and is
+ignored (with a warning).
+</p>
+</li>
+<li> <p><code>methods:::bind_activation()</code> is defunct now; it
+typically has been unneeded for years.
+</p>
+<p>The undocumented &lsquo;hidden&rsquo; objects <code>.__H__.cbind</code> and
+<code>.__H__.rbind</code> in package <span class="pkg">base</span> are deprecated (in
+favour of <code>cbind</code> and <code>rbind</code>).
+</p>
+</li>
+<li><p> The declaration of <code>pythag()</code> in &lsquo;<span class="file">Rmath.h</span>&rsquo; has
+been removed &mdash; the entry point has not been provided since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+2.14.0.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>printCoefmat()</code> now also works without column names.
+</p>
+</li>
+<li><p> The S4 methods on <code>Ops()</code> for the <code>"structure"</code> class no
+longer cause infinite recursion when the structure is not an S4 object.
+</p>
+</li>
+<li> <p><code>nlm(f, ..)</code> for the case where <code>f()</code> has a
+<code>"hessian"</code> attribute now computes
+<i>LL' = H + µI</i> correctly. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17249">PR#17249</a>).
+</p>
+</li>
+<li><p> An S4 method that &ldquo;rematches&rdquo; to its generic and
+overrides the default value of a generic formal argument to
+<code>NULL</code> no longer drops the argument from its formals.
+</p>
+</li>
+<li> <p><code>Rscript</code> can now accept more than one argument given on
+the <span class="samp">#!</span> line of a script. Previously, one could only pass a
+single argument on the <span class="samp">#!</span> line in Linux.
+</p>
+</li>
+<li><p> Connections are now written correctly with encoding
+<code>"UTF-16LE"</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16737">PR#16737</a>).
+</p>
+</li>
+<li><p> Evaluation of <code>..0</code> now signals an error. When
+<code>..1</code> is used and <code>...</code> is empty, the error message is
+more appropriate.
+</p>
+</li>
+<li><p> (Windows mainly.) Unicode code points which require
+surrogate pairs in UTF-16 are now handled. All systems should
+properly handle surrogate pairs, even those systems that do not
+need to make use of them. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16098">PR#16098</a>)
+</p>
+</li>
+<li> <p><code>stopifnot(e, e2, ...)</code> now evaluates the
+expressions sequentially and in case of an error or warning shows
+the relevant expression instead of the full <code>stopifnot(..)</code>
+call.
+</p>
+</li>
+<li> <p><code>path.expand()</code> on Windows now accepts paths specified as
+UTF-8-encoded character strings even if not representable in the
+current locale. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17120">PR#17120</a>)
+</p>
+</li>
+<li> <p><code>line(x, y)</code> now correctly computes the medians of the
+left and right group's x-values and in all cases reproduces
+straight lines.
+</p>
+</li>
+<li><p> Extending S4 classes with slots corresponding to special
+attributes like <code>dim</code> and <code>dimnames</code> now works.
+</p>
+</li>
+<li><p> Fix for <code>legend()</code> when <code>fill</code> has multiple values
+the first of which is <code>NA</code> (all colours used to default to
+<code>par(fg)</code>). (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17288">PR#17288</a>)
+</p>
+</li>
+<li> <p><code>installed.packages()</code> did not remove the cached value
+for a library tree that had been emptied (but would not use the
+old value, just waste time checking it).
+</p>
+</li>
+<li><p> The documentation for <code>installed.packages(noCache = TRUE)</code>
+incorrectly claimed it would refresh the cache.
+</p>
+</li>
+<li> <p><code>aggregate(&lt;data.frame&gt;)</code> no longer uses spurious names
+in some cases. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17283">PR#17283</a>)
+</p>
+</li>
+<li> <p><code>object.size()</code> now also works for long vectors.
+</p>
+</li>
+<li> <p><code>packageDescription()</code> tries harder to solve
+re-encoding issues, notably seen in some Windows locales. This
+fixes the <code>citation()</code> issue in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17291">PR#17291</a>.
+</p>
+</li>
+<li> <p><code>poly(&lt;matrix&gt;, 3)</code> now works, thanks to prompting by
+Marc Schwartz.
+</p>
+</li>
+<li> <p><code>readLines()</code> no longer segfaults on very large files
+with embedded <code>'\0'</code> (aka &lsquo;nul&rsquo;) characters.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17311">PR#17311</a>)
+</p>
+</li>
+<li> <p><code>ns()</code> (package <span class="pkg">splines</span>) now also works for a
+single observation. <code>interpSpline()</code> gives a more friendly
+error message when the number of points is less than four.
+</p>
+</li>
+<li> <p><code>dist(x, method = "canberra")</code> now uses the correct
+definition; the result may only differ when <code>x</code> contains
+values of differing signs, e.g. not for 0-1 data.
+</p>
+</li>
+<li> <p><code>methods:::cbind()</code> and <code>methods:::rbind()</code> avoid
+deep recursion, thanks to Suharto Anggono via <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17300">PR#17300</a>.
+</p>
+</li>
+<li><p> Arithmetic with zero-column data frames now works more
+consistently; issue raised by Bill Dunlap.
+</p>
+<p>Arithmetic with data frames gives a data frame for <code>^</code> (which
+previously gave a numeric matrix).
+</p>
+</li>
+<li> <p><code>pretty(x, n)</code> for large <code>n</code> or large
+<code>diff(range(x))</code> now works better (though
+it was never meant for large <code>n</code>); internally it uses the
+same rounding fuzz (1e-10) as <code>seq.default()</code> &mdash; as it did up
+to 2010-02-03 when both were 1e-7.
+</p>
+</li>
+<li><p> Internal C-level <code>R_check_class_and_super()</code> and hence
+<code>R_check_class_etc()</code> now also consider non-direct super
+classes and hence return a match in more cases. This e.g., fixes
+behaviour of derived classes in package <a href="https://CRAN.R-project.org/package=Matrix"><span class="pkg">Matrix</span></a>.
+</p>
+</li>
+<li><p> Reverted unintended change in behavior of <code>return</code>
+calls in <code>on.exit</code> expressions introduced by stack unwinding
+changes in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.3.0.
+</p>
+</li>
+<li><p> Attributes on symbols are now detected and prevented; attempt
+to add an attribute to a symbol results in an error.
+</p>
+</li>
+<li> <p><code>fisher.test(*, workspace = &lt;n&gt;)</code> now may also increase
+the internal stack size which allows larger problem to be solved,
+fixing <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=1662">PR#1662</a>.
+</p>
+</li>
+<li><p> The <span class="pkg">methods</span> package no longer directly copies slots
+(attributes) into a prototype that is of an &ldquo;abnormal&rdquo;
+(reference) type, like a symbol.
+</p>
+</li>
+<li><p> The <span class="pkg">methods</span> package no longer attempts to call
+<code>length&lt;-()</code> on <code>NULL</code> (during the bootstrap process).
+</p>
+</li>
+<li><p> The <span class="pkg">methods</span> package correctly shows methods when there
+are multiple methods with the same signature for the same generic
+(still not fully supported, but at least the user can see them).
+</p>
+</li>
+<li> <p><code>sys.on.exit()</code> is now always evaluated in the right
+frame. (From Lionel Henry.)
+</p>
+</li>
+<li> <p><code>seq.POSIXt(*, by = "&lt;n&gt; DSTdays")</code> now should work
+correctly in all cases and is faster. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17342">PR#17342</a>)
+</p>
+</li>
+<li> <p><code>.C()</code> when returning a logical vector now always maps
+values other than FALSE and NA to TRUE (as documented).
+</p>
+</li>
+<li><p> Subassignment with zero length vectors now coerces as
+documented (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17344">PR#17344</a>).<br />
+Further, <code>x &lt;- numeric(); x[1] &lt;- character()</code> now signals
+an error &lsquo;<code style="white-space: pre;">replacement has length zero</code>&rsquo; (or a
+translation of that) instead of doing nothing.
+</p>
+</li>
+<li><p> (Package <span class="pkg">parallel</span>.) <code>mclapply()</code>, <code>pvec()</code>
+and <code>mcparallel()</code> (when <code>mccollect()</code> is used to
+collect results) no longer leave zombie processes behind.
+</p>
+</li>
+<li> <p><code>R CMD INSTALL &lt;pkg&gt;</code> now produces the intended error
+message when, e.g., the <code>LazyData</code> field is invalid.
+</p>
+</li>
+<li> <p><code>as.matrix(dd)</code> now works when the data frame <code>dd</code>
+contains a column which is a data frame or matrix, including a
+0-column matrix/d.f. .
+</p>
+</li>
+<li> <p><code>mclapply(X, mc.cores)</code> now follows its documentation
+and calls <code>lapply()</code> in case <code>mc.cores = 1</code> also in the
+case <code>mc.preschedule</code> is false. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17373">PR#17373</a>)
+</p>
+</li>
+<li> <p><code>aggregate(&lt;data.frame&gt;, drop=FALSE)</code> no longer calls
+the function on &lt;empty&gt; parts but sets corresponding results to
+<code>NA</code>. (Thanks to Suharto Anggono's patches in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17280">PR#17280</a>).
+</p>
+</li>
+<li><p> The <code>duplicated()</code> method for data frames is now based
+on the <code>list</code> method (instead of string coercion). Consequently
+<code>unique()</code> is better distinguishing data frame rows, fixing
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17369">PR#17369</a> and <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17381">PR#17381</a>. The methods for matrices and arrays
+are changed accordingly.
+</p>
+</li>
+<li><p> Calling <code>names()</code> on an S4 object derived from
+<code>"environment"</code> behaves (by default) like calling
+<code>names()</code> on an ordinary environment.
+</p>
+</li>
+<li> <p><code>read.table()</code> with a non-default separator now
+supports quotes following a non-whitespace character, matching the
+behavior of <code>scan()</code>.
+</p>
+</li>
+<li> <p><code>parLapplyLB</code> and <code>parSapplyLB</code> have been fixed to do
+load balancing (dynamic scheduling). This also means that results of
+computations depending on random number generators will now really be
+non-reproducible, as documented.
+</p>
+</li>
+<li><p> Indexing a list using dollar and empty string (<code>l$""</code>)
+returns NULL.
+</p>
+</li>
+<li><p> Using <code> \usage{ data(&lt;name&gt;, package="&lt;pkg&gt;") } </code>
+no longer produces <code>R CMD check</code> warnings.
+</p>
+</li>
+<li> <p><code>match.arg()</code> more carefully chooses the environment
+for constructing default <code>choices</code>, fixing <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17401">PR#17401</a> as
+proposed by Duncan Murdoch.
+</p>
+</li>
+<li><p> Deparsing of consecutive <code>!</code> calls is now consistent
+with deparsing unary <code>-</code> and <code>+</code> calls and creates code
+that can be reparsed exactly; thanks to a patch by Lionel Henry in
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17397">PR#17397</a>. (As a side effect, this uses fewer parentheses in
+some other deparsing involving <code>!</code> calls.)
+</p>
+</li></ul>
+
+
+
+
<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.4.4</h3>
@@ -101,6 +939,9 @@ permanently (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16732
(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17375">PR#17375</a>)
</p>
</li>
+<li> <p><code>is.na(NULL)</code> no longer warns. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16107">PR#16107</a>)
+</p>
+</li>
<li> <p><code>R CMD INSTALL</code> now correctly sets C++ compiler flags
when all source files are in sub-directories of &lsquo;<span class="file">src</span>&rsquo;.
</p>
@@ -4852,7 +5693,7 @@ containing arguments that were supplied as missing, e.g.
</li>
<li> <p><code>as.environment(list())</code> now works, and
<code>as.list()</code> of such an environment is now the same as
-<code>list()</code>.
+<code>list()</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15926">PR#15926</a>)
</p>
</li>
<li><p> Several <span class="pkg">tcltk</span> functions failed when run in unusual
diff --git a/doc/html/R-admin.html b/doc/html/R-admin.html
index 7f3cc33..1a385fc 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.4 (2018-03-15).
+<!-- This manual is for R, version 3.5.0 (2018-04-23).
Copyright (C) 2001-2018 R Core Team
@@ -333,7 +333,7 @@ p {
<p>This is a guide to installation and administration for R.
</p>
-<p>This manual is for R, version 3.4.4 (2018-03-15).
+<p>This manual is for R, version 3.5.0 (2018-04-23).
</p>
<p>Copyright &copy; 2001&ndash;2018 R Core Team
</p>
@@ -927,13 +927,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.4</code>.
+<code>rincludedir=/usr/local/include/R-3.5.0</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.4
+<pre class="example">make install rhome=/usr/local/lib64/R-3.5.0
</pre></div>
<p>will use a version-specific R home on a non-Debian Linux 64-bit
@@ -1176,12 +1176,9 @@ preferred where there are issues with the system implementation, usually
involving times after 2037 or before 1916. An alternative time-zone
directory<a name="DOCF10" href="#FOOT10"><sup>10</sup></a> can be used, pointed
to by environment variable <code>TZDIR</code>: this should contain files such
-as <samp>Europe/London</samp>. On most OSes the system timezone was
+as <samp>Europe/London</samp>. On all tested OSes the system timezone was
deduced correctly, but if necessary it can be set as the value of
-environment variable <code>TZ</code>. (OSes which do not follow the
-documentation of <samp>/etc/localtime</samp> as a symbolic link will have
-problems: this includes recent Debian-based Linuxen and RHEL/Centos 6
-(but not 7).)
+environment variable <code>TZ</code>.
</p>
@@ -1411,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.4-win.exe</samp>. Just double-click on the icon and
+<samp>R-3.5.0-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.
@@ -1478,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.4.tar.gz</samp> from
+<li> Get the R source code tarball <samp>R-3.5.0.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.4.tar.gz
+<pre class="example">tar -xf R-3.5.0.tar.gz
</pre></div>
<p>to create the source tree in <var>R_HOME</var>. <strong>Beware</strong>: do use
@@ -1492,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.4.tar.gz
+<pre class="example">tar --no-same-owner -xf R-3.5.0.tar.gz
</pre></div>
<a name="index-TAR_005fOPTIONS-1"></a>
@@ -1807,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.4-win.exe</samp>, so please rename it to indicate that
+<samp>R-3.5.0-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
@@ -1866,21 +1863,21 @@ make msi
</pre></div>
<p>which will result in a file with a name like
-<samp>R-3.4.4-win32.msi</samp>. This can be double-clicked to be
+<samp>R-3.5.0-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.4</samp>) and &lsquo;<samp>RMENU</samp>&rsquo; (the path
+<samp>c:\Program Files\R\R-3.5.0</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.4-win32.msi</samp>) and from a 64-bit build of R
-(<samp>R-3.4.4-win64.msi</samp>, optionally including 32-bit files
+(<samp>R-3.5.0-win32.msi</samp>) and from a 64-bit build of R
+(<samp>R-3.5.0-win64.msi</samp>, optionally including 32-bit files
by setting the macro <code>HOME32</code>, when the name is
-<samp>R-3.4.4-win.msi</samp>). Unlike the main installer, a 64-bit
+<samp>R-3.5.0-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)
@@ -1950,7 +1947,7 @@ 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.4.pkg</samp>
+X&rsquo;. Click on that, then download the file <samp>R-3.5.0.pkg</samp>
and install it. This runs on macOS 10.11 and later (El Capitan, Sierra,
High Sierra, &hellip;).
</p>
@@ -2020,7 +2017,7 @@ typed as commands like any other Unix-alike: see the next chapter of
this manual. There are some small differences which may surprise users
of R on other platforms, notably the default location of the personal
library directory (under <samp>~/Library/R</samp>,
-e.g. <samp>~/Library/R/3.4/library</samp>), and that warnings, messages and
+e.g. <samp>~/Library/R/3.5/library</samp>), and that warnings, messages and
other output to <samp>stderr</samp> are highlighted in bold.
</p>
<p>It has been reported that running <small>R.APP</small> may fail if no preferences are
@@ -2103,13 +2100,13 @@ pkgutil --files org.r-project.x86_64.texinfo
the R framework which it finds installed. This can be avoided by
using <code>pkgutil --forget</code> (see the previous section). However,
note that different versions are installed under
-<samp>/Library/Frameworks/R.framework/Versions</samp> as <samp>3.3</samp>,
-<samp>3.4</samp> and so on, so it is not possible to have different
+<samp>/Library/Frameworks/R.framework/Versions</samp> as <samp>3.4</samp>,
+<samp>3.5</samp> and so on, so it is not possible to have different
&lsquo;<samp>3.x.y</samp>&rsquo; versions installed for the same &lsquo;<samp>x</samp>&rsquo;.
</p>
<p>A version of R can be run directly from the command-line as e.g.
</p><div class="example">
-<pre class="example">/Library/Frameworks/R.framework/Versions/3.4/Resources/bin/R
+<pre class="example">/Library/Frameworks/R.framework/Versions/3.5/Resources/bin/R
</pre></div>
<p>However, <small>R.APP</small> will always run the &lsquo;current&rsquo; version, that is the last
@@ -2210,9 +2207,11 @@ ensures that only package <strong>base</strong> is loaded.
</p>
<p>Changing the set of default packages is normally used to reduce the set
for speed when scripting: in particular not using <strong>methods</strong> will
-reduce the start-up time by a factor of up to two (and this is done by
-<code>Rscript</code>). But it can also be used to customize R, e.g.
-for class use.
+reduce the start-up time by a factor of up to two. But it can also be
+used to customize R, e.g. for class use. <code>Rscript</code>
+also checks the environment variable <code>R_SCRIPT_DEFAULT_PACKAGES</code>;
+<a name="index-R_005fSCRIPT_005fDEFAULT_005fPACKAGES"></a>
+if set, this takes precedence over <code>R_DEFAULT_PACKAGES</code>.
</p>
<hr>
@@ -2458,7 +2457,7 @@ source versions of packages without compiled C/C++/Fortran code and offer
to do so for those with, if <code>make</code> is available.
</p>
<p>Note that most binary packages including compiled code are tied to a
-particular series (e.g. R 3.4.x or 3.3.x) of R.
+particular series (e.g. R 3.5.x or 3.4.x) of R.
</p>
<p>Installing source packages which do not contain compiled code should
work with no additional tools. For others you will need the
@@ -3184,7 +3183,7 @@ is the current working directory (in the build directory tree on a
Unix-alike if that is separate from the sources).
</p>
<p><samp>Rmath.h</samp> contains &lsquo;<samp>R_VERSION_STRING</samp>&rsquo;, which is a character
-string containing the current R version, for example <code>&quot;3.4.4&quot;</code>.
+string containing the current R version, for example <code>&quot;3.5.0&quot;</code>.
</p>
<p>There is full access to R&rsquo;s handling of <code>NaN</code>, <code>Inf</code> and
<code>-Inf</code> via special versions of the macros and functions
@@ -3423,18 +3422,17 @@ can make use of <acronym>GNU</acronym> <code>libiconv</code> (as used on macOS:
<a href="https://www.gnu.org/software/libiconv/">https://www.gnu.org/software/libiconv/</a>).
</p>
<p>The OS needs to have enough support<a name="DOCF43" href="#FOOT43"><sup>43</sup></a> for wide-character
-types: this is checked at configuration. A small number of POSIX
-functions<a name="DOCF44" href="#FOOT44"><sup>44</sup></a> are essential,
-and others<a name="DOCF45" href="#FOOT45"><sup>45</sup></a> will be
-used if available.
+types: this is checked at configuration. Some C99
+functions<a name="DOCF44" href="#FOOT44"><sup>44</sup></a> are required and checked for at
+configuration. A small number of POSIX functions<a name="DOCF45" href="#FOOT45"><sup>45</sup></a> are essential, and others<a name="DOCF46" href="#FOOT46"><sup>46</sup></a> will be used if available.
</p>
<p>Installations of <code>zlib</code> (version 1.2.5 or later), <code>libbz2</code>
(version 1.0.6 or later: called <strong>bzip2-libs</strong>/<strong>bzip2-devel</strong> or
<strong>libbz2-1.0</strong>/<strong>libbz2-dev</strong> by some Linux distributions),
-<code>liblzma</code><a name="DOCF46" href="#FOOT46"><sup>46</sup></a> version 5.0.3 or
+<code>liblzma</code><a name="DOCF47" href="#FOOT47"><sup>47</sup></a> version 5.0.3 or
later are required.
</p>
-<p>PCRE<a name="DOCF47" href="#FOOT47"><sup>47</sup></a> (version 8.32 or later, although versions 8.20&ndash;8.31 will
+<p>PCRE<a name="DOCF48" href="#FOOT48"><sup>48</sup></a> (version 8.32 or later, although versions 8.20&ndash;8.31 will
be accepted with a deprecation warning) is required (or just its library
and headers if packaged separately). Only the &lsquo;8-bit&rsquo; interface is used
(and only that is built by default when installing from sources). PCRE
@@ -3450,13 +3448,13 @@ for use with R a suitable <code>configure</code> command might be
<p>The <samp>--enable-jit</samp> flag is supported for most common CPUs. (See
also the comments for Solaris.)
</p>
-<p>Library <code>libcurl</code> (version 7.22.0 or later<a name="DOCF48" href="#FOOT48"><sup>48</sup></a>) is required, with at least 7.28.0 being desirable.
+<p>Library <code>libcurl</code> (version 7.22.0 or later<a name="DOCF49" href="#FOOT49"><sup>49</sup></a>) is required, with at least 7.28.0 being desirable.
Information on <code>libcurl</code> is found from the <code>curl-config</code>
-script: if that is missing or needs to be overridden<a name="DOCF49" href="#FOOT49"><sup>49</sup></a> there are macros to do so described in file
+script: if that is missing or needs to be overridden<a name="DOCF50" href="#FOOT50"><sup>50</sup></a> there are macros to do so described in file
<samp>config.site</samp>.
</p>
<p>A <code>tar</code> program is needed to unpack the sources and packages
-(including the recommended packages). A version<a name="DOCF50" href="#FOOT50"><sup>50</sup></a> that can
+(including the recommended packages). A version<a name="DOCF51" href="#FOOT51"><sup>51</sup></a> that can
automagically detect compressed archives is preferred for use with
<code>untar()</code>: the configure script looks for <code>gtar</code> and
<code>gnutar</code> before
@@ -3476,7 +3474,7 @@ make PDF versions of the manuals you will also need file
<samp>texinfo.tex</samp> installed (which is part of the <acronym>GNU</acronym>
<strong>texinfo</strong> distribution but is often made part of the TeX package
in re-distributions) as well as
-<code>texi2dvi</code>.<a name="DOCF51" href="#FOOT51"><sup>51</sup></a>
+<code>texi2dvi</code>.<a name="DOCF52" href="#FOOT52"><sup>52</sup></a>
Further, the versions of <code>texi2dvi</code> and <samp>texinfo.tex</samp> need
to be compatible: we have seen problems with older TeX distributions.
</p>
@@ -3539,18 +3537,18 @@ earliest version we have tested. (For Fedora users we believe the
&lsquo;<samp>pangocairo</samp>&rsquo; package is installed (and if not, &lsquo;<samp>cairo</samp>&rsquo;) and if
additional flags are needed for the &lsquo;<samp>cairo-xlib</samp>&rsquo; package, then if
suitable code can be compiled. These tests will fail if
-<code>pkg-config</code> is not installed<a name="DOCF52" href="#FOOT52"><sup>52</sup></a>, and are likely to fail if <code>cairo</code> was built
+<code>pkg-config</code> is not installed<a name="DOCF53" href="#FOOT53"><sup>53</sup></a>, and are likely to fail if <code>cairo</code> was built
statically (unusual). Most systems with <code>Gtk+</code> 2.8 or later
installed will have suitable libraries
</p>
<p>For the best font experience with these devices you need suitable fonts
installed: Linux users will want the <code>urw-fonts</code> package. On
platforms which have it available, the <code>msttcorefonts</code>
-package<a name="DOCF53" href="#FOOT53"><sup>53</sup></a> provides
+package<a name="DOCF54" href="#FOOT54"><sup>54</sup></a> provides
TrueType versions of Monotype fonts such as Arial and Times New Roman.
Another useful set of fonts is the &lsquo;liberation&rsquo; TrueType fonts available
at
-<a href="https://fedorahosted.org/liberation-fonts/">https://fedorahosted.org/liberation-fonts/</a>,<a name="DOCF54" href="#FOOT54"><sup>54</sup></a> which cover the Latin, Greek and Cyrillic alphabets
+<a href="https://fedorahosted.org/liberation-fonts/">https://fedorahosted.org/liberation-fonts/</a>,<a name="DOCF55" href="#FOOT55"><sup>55</sup></a> which cover the Latin, Greek and Cyrillic alphabets
plus a fair range of signs. These share metrics with Arial, Times New
Roman and Courier New, and contain fonts rather similar to the first two
(<a href="https://en.wikipedia.org/wiki/Liberation_fonts">https://en.wikipedia.org/wiki/Liberation_fonts</a>). Then there
@@ -3588,7 +3586,7 @@ have higher performance). <acronym>XDR</acronym> is part of <acronym>RPC</acron
historically has been part of <samp>libc</samp> on a Unix-alike. (In
principle <code>man xdr_string</code> should tell you which library is
needed, but it often does not: on Solaris and others it is provided by
-<code>libnsl</code>.) However some builds<a name="DOCF55" href="#FOOT55"><sup>55</sup></a> of
+<code>libnsl</code>.) However some builds<a name="DOCF56" href="#FOOT56"><sup>56</sup></a> of
<code>glibc</code> omit or hide it with the intention that the
<acronym>TI-RPC</acronym> library be used, in which case <code>libtirpc</code> (and its
development version) needs to be installed, and its headers need to be
@@ -3651,7 +3649,7 @@ files may be necessary to avoid confusion between them.
<p>Versions of Tcl/Tk up to 8.5.19 and 8.6.4 have been tested (including
most versions of 8.4.x, but not recently).
</p>
-<p>Note that the <samp>tk.h</samp> header includes<a name="DOCF56" href="#FOOT56"><sup>56</sup></a> X11 headers, so you will need X11 and its
+<p>Note that the <samp>tk.h</samp> header includes<a name="DOCF57" href="#FOOT57"><sup>57</sup></a> X11 headers, so you will need X11 and its
development files installed.
</p>
<hr>
@@ -3782,7 +3780,7 @@ well as <code>LSAME</code>), and appears to be usable. However, an external
position-independent code), and that is not checked.
</p>
<p>Some enhanced <acronym>BLAS</acronym>es are compiler-system-specific
-(<code>sunperf</code> on Solaris<a name="DOCF57" href="#FOOT57"><sup>57</sup></a>, <code>libessl</code> on IBM,
+(<code>sunperf</code> on Solaris<a name="DOCF58" href="#FOOT58"><sup>58</sup></a>, <code>libessl</code> on IBM,
<code>Accelerate</code> on macOS). The correct incantation for these is often
found <em>via</em> <samp>--with-blas</samp> with no value on the appropriate
platforms.
@@ -3862,7 +3860,7 @@ these may even contain a full LAPACK. Such builds can be used by one of
<p>Distributed ATLAS libraries cannot be tuned to your machine and so are a
compromise: for example Fedora tunes &lsquo;<samp>x86_64</samp>&rsquo; for CPUs with SSE3
extensions, and separate &lsquo;<samp>atlas-sse2</samp>&rsquo; and &lsquo;<samp>atlas-sse3</samp>&rsquo;
-&lsquo;<samp>i686</samp>&rsquo; RPMs are available.<a name="DOCF58" href="#FOOT58"><sup>58</sup></a>
+&lsquo;<samp>i686</samp>&rsquo; RPMs are available.<a name="DOCF59" href="#FOOT59"><sup>59</sup></a>
</p>
<p>Note that building R on Linux against distributed shared libraries
may need &lsquo;<samp>-devel</samp>&rsquo; or &lsquo;<samp>-dev</samp>&rsquo; packages installed.
@@ -3876,12 +3874,12 @@ may need &lsquo;<samp>-devel</samp>&rsquo; or &lsquo;<samp>-dev</samp>&rsquo; pa
</pre></div>
<p>Consult its installation
-guide<a name="DOCF59" href="#FOOT59"><sup>59</sup></a>
+guide<a name="DOCF60" href="#FOOT60"><sup>60</sup></a>
for how to build ATLAS as a shared library or as a static library with
position-independent code (on platforms where that matters).
</p>
<p>According to the ATLAS
-FAQ<a name="DOCF60" href="#FOOT60"><sup>60</sup></a> the
+FAQ<a name="DOCF61" href="#FOOT61"><sup>61</sup></a> the
maximum number of threads used by multi-threaded ATLAS is set at compile
time. Also, the author advises against using multi-threaded ATLAS on
hyperthreaded CPUs without restricting affinities at compile-time to one
@@ -3911,7 +3909,7 @@ support for some later CPUs (e.g. Intel Sandy Bridge and Haswell).
way to use them.
</p>
<p>Some platforms provide multiple builds of OpenBLAS: for example Fedora 26
-has RPMs<a name="DOCF61" href="#FOOT61"><sup>61</sup></a>
+has RPMs<a name="DOCF62" href="#FOOT62"><sup>62</sup></a>
</p><div class="example">
<pre class="example">openblas
openblas-threads
@@ -4228,7 +4226,7 @@ a dynamic (shared) library, typically called <samp>libR.so</samp>, and link
the main R executable <samp>R.bin</samp> against that library. This can
only be done if all the code (including system libraries) can be
compiled into a dynamic library, and there may be a
-performance<a name="DOCF62" href="#FOOT62"><sup>62</sup></a> penalty. So you probably
+performance<a name="DOCF63" href="#FOOT63"><sup>63</sup></a> penalty. So you probably
only want this if you will be using an application which embeds R.
Note that C code in packages installed on an R system linked with
<samp>--enable-R-shlib</samp> is linked against the dynamic library and so
@@ -4245,7 +4243,7 @@ anything.) The system headers for <code>valgrind</code> can be requested
by option <samp>--with-system-valgrind-headers</samp>: they will be used if
present (on Linux they may be in a separate package such as
<strong>valgrind-devel</strong>). Note though that there is no guarantee that the
-code in R will be compatible with very old<a name="DOCF63" href="#FOOT63"><sup>63</sup></a> or future <code>valgrind</code>
+code in R will be compatible with very old<a name="DOCF64" href="#FOOT64"><sup>64</sup></a> or future <code>valgrind</code>
headers.
</p>
<p>If you need to re-configure R with different options you may need to run
@@ -4451,7 +4449,7 @@ is to search for
<code>epcf90</code>,
<code>g77</code>, <code>f77</code>, <code>xlf</code>, <code>frt</code>,
<code>pgf77</code>, <code>cf77</code>, <code>fort77</code>, <code>fl32</code>,
-<code>af77</code> (in that order)<a name="DOCF64" href="#FOOT64"><sup>64</sup></a>, and use whichever is found first; if none is found,
+<code>af77</code> (in that order)<a name="DOCF65" href="#FOOT65"><sup>65</sup></a>, and use whichever is found first; if none is found,
R cannot be compiled.
However, if <code>CC</code> is <code>gcc</code>, the matching FORTRAN compiler
(<code>g77</code> for <code>gcc</code>&nbsp;3 and <code>gfortran</code> for
@@ -4480,7 +4478,7 @@ pointer. This is checked during the configuration process.
</p>
<p>Some of the FORTRAN code makes use of <code>COMPLEX*16</code> variables, which
is a Fortran 90 extension. This is checked for at configure
-time<a name="DOCF65" href="#FOOT65"><sup>65</sup></a>, but you may need to avoid
+time<a name="DOCF66" href="#FOOT66"><sup>66</sup></a>, but you may need to avoid
compiler flags asserting FORTRAN 77 compliance.
</p>
<p>Compiling the version of LAPACK in the R sources also requires some
@@ -4620,7 +4618,7 @@ in the rest of this section.
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="DOCF66" href="#FOOT66"><sup>66</sup></a> have been thoroughly tested.
+other than the most recent versions<a name="DOCF67" href="#FOOT67"><sup>67</sup></a> have been thoroughly tested.
</p>
<p>File <samp>src/include/config.h</samp> is created by <code>autoheader</code>
(part of <strong>autoconf</strong>).
@@ -4637,7 +4635,7 @@ 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><a name="DOCF67" href="#FOOT67"><sup>67</sup></a>. The package
+sources at <a href="https://www.cs.tufts.edu/~nr/noweb/">https://www.cs.tufts.edu/~nr/noweb/</a><a name="DOCF68" href="#FOOT68"><sup>68</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>
@@ -4701,7 +4699,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="DOCF68" href="#FOOT68"><sup>68</sup></a> missing font sizes, especially larger ones, it is likely
+is reporting<a name="DOCF69" href="#FOOT69"><sup>69</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
@@ -4779,7 +4777,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="DOCF69" href="#FOOT69"><sup>69</sup></a>
+libraries.<a name="DOCF70" href="#FOOT70"><sup>70</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
@@ -4815,15 +4813,23 @@ exception of the ATLAS <acronym>BLAS</acronym> libraries.
</p>
<p>The default optimization settings chosen for <code>CFLAGS</code> etc are
conservative. It is likely that using <samp>-mtune</samp> will result in
-significant performance improvements on recent CPUs (especially for
-&lsquo;<samp>ix86</samp>&rsquo;): one possibility is to add <samp>-mtune=native</samp> 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="DOCF70" href="#FOOT70"><sup>70</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.
+significant performance improvements on recent CPUs: one possibility is
+to add <samp>-mtune=native</samp> for the best possible performance on the
+machine on which R is being installed. 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.
+</p>
+<p>As from <code>g++</code> 6 the default C++ standard is C++14.
+Compatibility with earlier releases can be obtained by using
+</p>
+<div class="example">
+<pre class="example">CXXSTD=-std=gnu++98
+</pre></div>
+
+<p>in <samp>config.site</samp>. This is desirable when checking packages, to
+ensure as far as possible that features from later C++ standards are not
+used unintentionally.
</p>
<p>For platforms with both 64- and 32-bit support, it is likely that
</p>
@@ -4882,9 +4888,9 @@ FFLAGS=&quot;-mminimal-toc -fno-optimize-sibling-calls -g -O2&quot;
</p>
<p>The setting of the macro &lsquo;<samp>SAFE_FFLAGS</samp>&rsquo; may need some help. It
should not need additional flags on platforms other than &lsquo;<samp>68000</samp>&rsquo;
-(not likely to be encountered) and &lsquo;<samp>ix86</samp>&rsquo; (and not
-&lsquo;<samp>x86_64</samp>&rsquo;). When the FORTRAN compiler is GNU (<code>gfortran</code>
-or possibly <code>g77</code>) the flags
+(not likely to be encountered) and &lsquo;<samp>ix86</samp>&rsquo;. For the latter, if
+the FORTRAN compiler is GNU (<code>gfortran</code> or possibly
+<code>g77</code>) the flags
</p><div class="example">
<pre class="example">-msse2 -mfpmath=sse
</pre></div>
@@ -4910,11 +4916,24 @@ corresponding GCC compilers.
<code>configure</code> code will remove <samp>-lgcc</samp> from <code>FLIBS</code>,
which is needed for some versions of <code>gfortran</code>.
</p>
-<p>The current default for <code>clang++</code> is to use the C++ runtime from
-the installed <code>g++</code>. Using the runtime from the <code>libc++</code>
-project (<a href="http://libcxx.llvm.org/">http://libcxx.llvm.org/</a>, Fedora RPM <code>libcxx-devel</code>)
-has also been tested: for some R packages only the variant using
-<code>libcxxabi</code> was successful.
+<p>The current out-of-the-box default for <code>clang++</code> is to use the
+C++ runtime from the installed <code>g++</code>. Using the runtime from
+the <code>libc++</code> project (<a href="http://libcxx.llvm.org/">http://libcxx.llvm.org/</a>, Fedora RPM
+<code>libcxx-devel</code>) <em>via</em> <samp>-stdlib=libc++</samp> has also been
+tested.
+</p>
+<p>As from <code>clang++</code> 6.0.0 the default C++ standard is C++14, which
+R&rsquo;s configure also uses when C++11 is requested. Compatibility with
+earlier releases can be obtained by using
+</p>
+<div class="example">
+<pre class="example">CXXSTD=-std=gnu++98
+CX11STD=-std=gnu++11
+</pre></div>
+
+<p>in <samp>config.site</samp>. These are desirable when checking packages, to
+ensure as far as possible that features from later C++ standards are not
+used unintentionally.
</p>
<p>Recent versions have (optional when built) OpenMP support.<a name="DOCF71" href="#FOOT71"><sup>71</sup></a>
</p>
@@ -4945,7 +4964,7 @@ seems this conflicts with using OpenMP in R. So it may be necessary
to disable the latter by configuring using <samp>--without-openmp</samp>.
</p>
<p>It is not clear what architectures <code>flang</code> intends to support:
-experiments were done on &lsquo;<samp>x86_64</samp>&rsquo;.
+our experiments were done on &lsquo;<samp>x86_64</samp>&rsquo;.
</p>
<hr>
@@ -5250,9 +5269,10 @@ tclvalue(.Tcl(&quot;tk windowingsystem&quot;)) # &quot;x11&quot; or &quot;aqua&
<a name="Java"></a>
<h4 class="subsection">C.3.2 Java</h4>
-<p>The situation with Java support on macOS is messy.<a name="DOCF80" href="#FOOT80"><sup>80</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.
+<p>The situation with Java support on macOS is messy,<a name="DOCF80" href="#FOOT80"><sup>80</sup></a> and
+distribution of Java for all platforms is changing during 2018. The
+<acronym>CRAN</acronym> distribution of <a href="https://CRAN.R-project.org/package=rJava"><strong>rJava</strong></a> currently requires Java
+8.
</p>
<p>macOS no longer comes with an installed Java runtime (JRE), and a macOS
upgrade may remove one if already installed: it is intended to be
@@ -5262,15 +5282,16 @@ installed<a name="DOCF81" href="#FOOT81"><sup>81</sup></a>
this should prompt you to install it. You can also install directly a
recent 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>:
-note that Java 9 has a limited lifetime and at the time of writing
-<a href="https://CRAN.R-project.org/package=rJava"><strong>rJava</strong></a> did not install with Java 10).
+note that Java 9 and 10 have a limited lifetime and at the time of
+writing <a href="https://CRAN.R-project.org/package=rJava"><strong>rJava</strong></a><a name="DOCF82" href="#FOOT82"><sup>82</sup></a> did
+not install with Java 10). Builds of OpenJDK may also be available,
+e.g. from <a href="http://jdk.java.net/">http://jdk.java.net/</a>.
</p>
<p>Binary distributions of R are built against a specific version (e.g.
1.8.0_161) of Oracle Java so <code>sudo R CMD javareconf</code> may be
needed before using Java-using packages.
</p>
-
-<p>To see what compatible versions of Java are currently installed, run
+<p>To see what compatible versions of Oracle Java are currently installed, run
<code>/usr/libexec/java_home -V -a x86_64</code>. If needed, set the
environment variable <code>JAVA_HOME</code> to choose between these, both when
R is built from the sources and when <code>R CMD javareconf</code> is
@@ -5299,16 +5320,20 @@ JAVA_LIBS=&quot;-L/${JAVA_HOME}/lib/server -ljvm&quot;
</pre></div>
<p>in <samp>config.site</samp>.
</p>
-<p>(An Apple JRE, if available, can be specified explicitly by something
-like
+<p>To use the builds of OpenJDK from <a href="http://jdk.java.net/">http://jdk.java.net/</a>, set
+<code>JAVA_HOME</code>:
</p><div class="example">
-<pre class="example">JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
-JAVA_CPPFLAGS=&quot;-I/System/Library/Frameworks/JavaVM.framework/Headers&quot;
-JAVA_LD_LIBRARY_PATH=
-JAVA_LIBS=&quot;-framework JavaVM&quot;
+<pre class="example">JAVA_HOME=<var>/path/to/JDK</var>/jdk-10.jdk/Contents/Home
</pre></div>
-<p>.)
-</p>
+<p>where <samp><var>/path/to/JDK</var></samp> is wherever the distribution tarball was
+unpacked. Java 10 JDKs do not contain <code>javah</code>, but R
+configuration / <code>R CMD javareconf</code> can use one from an earlier
+installation if <code>JAVAH</code> is set, e.g.,
+</p><div class="example">
+<pre class="example">JAVAH=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/bin/javah
+</pre></div>
+
+
<p>Note that it is necessary to set the environment variable <code>NOAWT</code> to
<code>1</code> to install many of the Java-using packages.
</p>
@@ -5383,11 +5408,11 @@ in the <samp>/Applications</samp> folder.
<p>R has been built successfully on Solaris 10 using the (zero cost)
-Oracle Developer Studio<a name="DOCF82" href="#FOOT82"><sup>82</sup></a> compilers: there has been some success with
+Oracle Developer Studio<a name="DOCF83" href="#FOOT83"><sup>83</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="DOCF83" href="#FOOT83"><sup>83</sup></a> themselves is slightly
+identify<a name="DOCF84" href="#FOOT84"><sup>84</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
@@ -5515,7 +5540,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="DOCF84" href="#FOOT84"><sup>84</sup></a>
+places.<a name="DOCF85" href="#FOOT85"><sup>85</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
@@ -5576,7 +5601,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="DOCF85" href="#FOOT85"><sup>85</sup></a> with the modified versions included with OpenCSW&rsquo;s
+header files in way incompatible<a name="DOCF86" href="#FOOT86"><sup>86</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:
@@ -5767,7 +5792,8 @@ environment can be found in the &ldquo;R on AIX&rdquo; project on R-Forge
<a name="index-FreeBSD"></a>
<p>There have been few recent reports on FreeBSD: there is a &lsquo;port&rsquo; at
-<a href="https://www.freebsd.org/ports/math.html">https://www.freebsd.org/ports/math.html</a>.
+<a href="https://www.freebsd.org/ports/math.html">https://www.freebsd.org/ports/math.html</a>. Recent versions of
+FreeBSD use Clang and the <code>libc++</code> C++ headers and runtime.
</p>
<p>Use of ICU for collation and the <code>configure</code> option
<samp>--with-internal-tzcode</samp> are desirable workarounds.
@@ -5843,12 +5869,9 @@ build will use these options.
<p>It seems that <code>gcc</code>&nbsp;3.4.x and later on &lsquo;<samp>ix86</samp>&rsquo; Linux
defeat attempts by the LAPACK code to avoid computations entirely in
extended-precision registers, so file <samp>src/modules/lapack/dlamc.f</samp>
-may need to be compiled without optimization. Set the configure
-variable <code>SAFE_FFLAGS</code> to the flags to be used for this file. If
-configure detects <acronym>GNU</acronym> FORTRAN it adds flag
-<samp>-ffloat-store</samp> to <code>FFLAGS</code>. (Other settings are needed when
-using <code>icc</code> on &lsquo;<samp>ix86</samp>&rsquo; Linux, for example. Using
-<samp>-mpc64</samp> is preferable on more recent GCC compilers.)
+may need to be compiled without optimization or with additional flags.
+Set the configure variable <code>SAFE_FFLAGS</code> to the flags to be used for
+this file.
</p>
<p>If you do manage to get R running on a new platform please let us
know about it so we can modify the configuration procedures to include
@@ -5873,7 +5896,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="DOCF86" href="#FOOT86"><sup>86</sup></a> The build process for add-on packages is somewhat more
+even to the choice of particular versions of the tools.<a name="DOCF87" href="#FOOT87"><sup>87</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>
@@ -5926,7 +5949,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="DOCF87" href="#FOOT87"><sup>87</sup></a> in other directories, and they will <strong>not</strong>
+tools<a name="DOCF88" href="#FOOT88"><sup>88</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>
@@ -5975,7 +5998,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.4-win.exe</samp>) we
+<p>To make the installer package (<samp>R-3.5.0-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>.
@@ -6355,6 +6378,7 @@ be used to (de)compress files with that form of compression.
<tr><td></td><td valign="top"><a href="#index-R_005fRD4PDF"><code>R_RD4PDF</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Making-the-manuals">Making the manuals</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fRD4PDF-1"><code>R_RD4PDF</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Making-manuals">Making manuals</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fRD4PDF-2"><code>R_RD4PDF</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#LaTeX">LaTeX</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-R_005fSCRIPT_005fDEFAULT_005fPACKAGES"><code>R_SCRIPT_DEFAULT_PACKAGES</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Default-packages">Default packages</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fSHELL"><code>R_SHELL</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#AIX">AIX</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-R_005fUSER"><code>R_USER</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Running-R">Running R</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
@@ -6475,7 +6499,7 @@ grep org.r-project</code> to check for earlier versions of R.</p>
<h3><a name="FOOT20" href="#DOCF20">(20)</a></h3>
<p>More precisely,
of the Apple package of the same name: this means that installing a package for
-3.3.x does not remove an installation for 3.4.x or later.</p>
+3.3.x does not remove an installation for 3.4.x or 3.5.x.</p>
<h3><a name="FOOT21" href="#DOCF21">(21)</a></h3>
<p>unless they were excluded in the build.</p>
<h3><a name="FOOT22" href="#DOCF22">(22)</a></h3>
@@ -6560,106 +6584,108 @@ functionality of headers <samp>wchar.h</samp> and <samp>wctype.h</samp>, types
<code>mbstowcs</code>, <code>wcrtomb</code>, <code>wcscoll</code>, <code>wcstombs</code>,
<code>wctrans</code>, <code>wctype</code>, and <code>iswctype</code>.</p>
<h3><a name="FOOT44" href="#DOCF44">(44)</a></h3>
-<p>including <code>opendir</code>, <code>readdir</code>,
-<code>closedir</code>, <code>popen</code>, <code>stat</code>, <code>glob</code>, <code>access</code>,
-<code>getcwd</code> and <code>chdir</code> system calls, <code>select</code> on a
-Unix-alike, and either <code>putenv</code> or <code>setenv</code>.</p>
+<p>including <code>expm1</code>, <code>hypot</code>, <code>log1p</code>,
+<code>nearbyint</code> and <code>va_copy</code>.</p>
<h3><a name="FOOT45" href="#DOCF45">(45)</a></h3>
-<p>such as <code>realpath</code>, <code>symlink</code>.</p>
+<p>including
+<code>opendir</code>, <code>readdir</code>, <code>closedir</code>, <code>popen</code>,
+<code>stat</code>, <code>glob</code>, <code>access</code>, <code>getcwd</code> and <code>chdir</code>
+system calls, <code>select</code> on a Unix-alike, and either <code>putenv</code> or
+<code>setenv</code>.</p>
<h3><a name="FOOT46" href="#DOCF46">(46)</a></h3>
+<p>such as
+<code>realpath</code>, <code>symlink</code>.</p>
+<h3><a name="FOOT47" href="#DOCF47">(47)</a></h3>
<p>most often distributed as part of <code>xz</code>:
possible names in Linux distributions include
<code>xz-devel</code>/<code>xz-libs</code> and <code>liblzma-dev</code>.</p>
-<h3><a name="FOOT47" href="#DOCF47">(47)</a></h3>
+<h3><a name="FOOT48" href="#DOCF48">(48)</a></h3>
<p>sometimes known as PCRE1, and not PCRE2 which started at
version 10.0.</p>
-<h3><a name="FOOT48" href="#DOCF48">(48)</a></h3>
+<h3><a name="FOOT49" href="#DOCF49">(49)</a></h3>
<p>but not a major
version greater than 7 should there ever be one: the major version has
been 7 since 2000.</p>
-<h3><a name="FOOT49" href="#DOCF49">(49)</a></h3>
+<h3><a name="FOOT50" href="#DOCF50">(50)</a></h3>
<p>for
example to specify static linking with a build which has both shared and
static libraries.</p>
-<h3><a name="FOOT50" href="#DOCF50">(50)</a></h3>
+<h3><a name="FOOT51" href="#DOCF51">(51)</a></h3>
<p>Such as
<acronym>GNU</acronym> <code>tar</code> 1.15 or later, <code>bsdtar</code> (from
<a href="https://github.com/libarchive/libarchive/">https://github.com/libarchive/libarchive/</a>, as used by FreeBSD and OS
X 10.6 and later) or <code>tar</code> from the Heirloom Toolchest
(<a href="http://heirloom.sourceforge.net/tools.html">http://heirloom.sourceforge.net/tools.html</a>).</p>
-<h3><a name="FOOT51" href="#DOCF51">(51)</a></h3>
+<h3><a name="FOOT52" href="#DOCF52">(52)</a></h3>
<p><code>texi2dvi</code> is normally a shell
script. Some versions (including that from <strong>texinfo</strong> 5.2 and 6.0)
need to be run under <code>bash</code> rather than a Bourne shell,
especially on Solaris. Some of the issues which have been observed with
broken versions of <code>texi2dvi</code> can be circumvented by setting the
environment variable <code>R_TEXI2DVICMD</code> to the value <code>emulation</code>.</p>
-<h3><a name="FOOT52" href="#DOCF52">(52)</a></h3>
+<h3><a name="FOOT53" href="#DOCF53">(53)</a></h3>
<p>If necessary the path to
<code>pkg-config</code> can be specified by setting <code>PKGCONF</code> in
<samp>config.site</samp>, on the <code>configure</code> command line or in the
environment.</p>
-<h3><a name="FOOT53" href="#DOCF53">(53)</a></h3>
+<h3><a name="FOOT54" href="#DOCF54">(54)</a></h3>
<p>also known as <code>ttf-mscorefonts-installer</code> in the
Debian/Ubuntu world: see also
<a href="https://en.wikipedia.org/wiki/Core_fonts_for_the_Web">https://en.wikipedia.org/wiki/Core_fonts_for_the_Web</a>.</p>
-<h3><a name="FOOT54" href="#DOCF54">(54)</a></h3>
+<h3><a name="FOOT55" href="#DOCF55">(55)</a></h3>
<p><code>ttf-liberation</code>
in Debian/Ubuntu.</p>
-<h3><a name="FOOT55" href="#DOCF55">(55)</a></h3>
+<h3><a name="FOOT56" href="#DOCF56">(56)</a></h3>
<p>This is the default as
from <code>glibc</code> 2.26 and has been announced for Fedora 28.</p>
-<h3><a name="FOOT56" href="#DOCF56">(56)</a></h3>
+<h3><a name="FOOT57" href="#DOCF57">(57)</a></h3>
<p>This is true even for
the &lsquo;Aqua&rsquo; version of Tk on macOS, but distributions of that include a
copy of the X11 files needed.</p>
-<h3><a name="FOOT57" href="#DOCF57">(57)</a></h3>
+<h3><a name="FOOT58" href="#DOCF58">(58)</a></h3>
<p>Using the Oracle Developer Studio
<code>cc</code> and <code>f95</code> compilers</p>
-<h3><a name="FOOT58" href="#DOCF58">(58)</a></h3>
+<h3><a name="FOOT59" href="#DOCF59">(59)</a></h3>
<p>There were others for earlier
versions of ATLAS, and are for non-Intel architectures. The only way to
see exactly which CPUs the distributed libraries have been tuned for is
to read the <samp>atlas.spec</samp> file: at the time of writing
&lsquo;<samp>HAMMER64SSE3</samp>&rsquo; and &lsquo;<samp>Corei264AVX</samp>&rsquo; for &lsquo;<samp>x86_64</samp>&rsquo; Fedora.</p>
-<h3><a name="FOOT59" href="#DOCF59">(59)</a></h3>
-<p><a href="http://math-atlas.sourceforge.net/atlas_install/">http://math-atlas.sourceforge.net/atlas_install/</a></p>
<h3><a name="FOOT60" href="#DOCF60">(60)</a></h3>
-<p><a href="http://math-atlas.sourceforge.net/faq.html#tnum">http://math-atlas.sourceforge.net/faq.html#tnum</a></p>
+<p><a href="http://math-atlas.sourceforge.net/atlas_install/">http://math-atlas.sourceforge.net/atlas_install/</a></p>
<h3><a name="FOOT61" href="#DOCF61">(61)</a></h3>
-<p>(and more, e.g. for 64-bit ints and static versions).</p>
+<p><a href="http://math-atlas.sourceforge.net/faq.html#tnum">http://math-atlas.sourceforge.net/faq.html#tnum</a></p>
<h3><a name="FOOT62" href="#DOCF62">(62)</a></h3>
+<p>(and more, e.g. for 64-bit ints and static versions).</p>
+<h3><a name="FOOT63" href="#DOCF63">(63)</a></h3>
<p>We have measured 15&ndash;20% on &lsquo;<samp>i686</samp>&rsquo; Linux
and around 10% on &lsquo;<samp>x86_64</samp>&rsquo; Linux.</p>
-<h3><a name="FOOT63" href="#DOCF63">(63)</a></h3>
+<h3><a name="FOOT64" href="#DOCF64">(64)</a></h3>
<p>We believe that
versions 3.4.0 to 3.13.0 are compatible.</p>
-<h3><a name="FOOT64" href="#DOCF64">(64)</a></h3>
+<h3><a name="FOOT65" href="#DOCF65">(65)</a></h3>
<p>On HP-UX <code>fort77</code> is the
<acronym>POSIX</acronym> compliant FORTRAN compiler, and comes after
<code>g77</code>.</p>
-<h3><a name="FOOT65" href="#DOCF65">(65)</a></h3>
+<h3><a name="FOOT66" href="#DOCF66">(66)</a></h3>
<p>as well as its equivalence to the <code>Rcomplex</code>
structure defined in <samp>R_ext/Complex.h</samp>.</p>
-<h3><a name="FOOT66" href="#DOCF66">(66)</a></h3>
+<h3><a name="FOOT67" href="#DOCF67">(67)</a></h3>
<p>at the time of revision of
this para in 2017, <strong>autoconf-2.69</strong> from 2012 and <strong>automake-1.15</strong>
from 2015.</p>
-<h3><a name="FOOT67" href="#DOCF67">(67)</a></h3>
+<h3><a name="FOOT68" href="#DOCF68">(68)</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="FOOT68" href="#DOCF68">(68)</a></h3>
+<h3><a name="FOOT69" href="#DOCF69">(69)</a></h3>
<p>for example, <code>X11 font at size 14 could not
be loaded</code>.</p>
-<h3><a name="FOOT69" href="#DOCF69">(69)</a></h3>
+<h3><a name="FOOT70" href="#DOCF70">(70)</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="FOOT70" href="#DOCF70">(70)</a></h3>
-<p>or <code>-mtune=corei7</code> for Intel Core
-i3/15/17 with <code>gcc</code> &ge; 4.6.0.</p>
<h3><a name="FOOT71" href="#DOCF71">(71)</a></h3>
<p>This
also needs the OpenMP runtime which has sometimes been distributed
@@ -6698,24 +6724,26 @@ details see <a href="http://www.macstrategy.com/article.php?3">http://www.macstr
<p>In the unlikely event that the version reported does
not start with <code>1.8.0</code> or <code>9</code> you need to update your Java.</p>
<h3><a name="FOOT82" href="#DOCF82">(82)</a></h3>
+<p>the current version <code>0.9-9</code>.</p>
+<h3><a name="FOOT83" href="#DOCF83">(83)</a></h3>
<p>Oracle Solaris Studio prior to 2016,
and previously Sun Studio.</p>
-<h3><a name="FOOT83" href="#DOCF83">(83)</a></h3>
-<p>using the <samp>-V</samp> flag.</p>
<h3><a name="FOOT84" href="#DOCF84">(84)</a></h3>
+<p>using the <samp>-V</samp> flag.</p>
+<h3><a name="FOOT85" href="#DOCF85">(85)</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="FOOT85" href="#DOCF85">(85)</a></h3>
+<h3><a name="FOOT86" href="#DOCF86">(86)</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="FOOT86" href="#DOCF86">(86)</a></h3>
+<h3><a name="FOOT87" href="#DOCF87">(87)</a></h3>
<p>For
example, the Cygwin version of <code>make 3.81</code> fails to work
correctly.</p>
-<h3><a name="FOOT87" href="#DOCF87">(87)</a></h3>
+<h3><a name="FOOT88" href="#DOCF88">(88)</a></h3>
<p>such as <code>sort</code>, <code>find</code> and perhaps
<code>make</code>.</p>
</div>
diff --git a/doc/manual/Makefile.in b/doc/manual/Makefile.in
index 4fbe04d..4be672e 100644
--- a/doc/manual/Makefile.in
+++ b/doc/manual/Makefile.in
@@ -121,7 +121,7 @@ docs: html
@$(SED) -f $(srcdir)/quot.sed $@.tmp > tmp/$*.html
@rm -f $@.tmp
$(EBOOK) tmp/$*.html $@ $(EBOOK_OPTS) --authors "R Core Team"
- @rm -r tmp
+ @rm -R tmp
.texi.mobi:
@mkdir -p tmp
@@ -129,17 +129,17 @@ docs: html
@$(SED) -f $(srcdir)/quot.sed $@.tmp > tmp/$*.html
@rm -f $@.tmp
$(EBOOK) tmp/$*.html $@ $(EBOOK_OPTS) --authors "R Core Team"
- @rm -r tmp
+ @rm -R tmp
R-intro.epub: R-intro.texi
@mkdir -p tmp
- @cp -r images tmp
+ @cp -R images tmp
@$(TEXI2HTML) --no-headers -I$(srcdir) $< -o $@.tmp
@$(SED) -f $(srcdir)/quot.sed $@.tmp > tmp/$*.html
@rm -f $@.tmp
$(EBOOK) tmp/$*.html $@ $(EBOOK_OPTS) --authors \
"W.N. Venables, D.M. Smith, R Core Team"
- @rm -r tmp
+ @rm -R tmp
R-intro.mobi: R-intro.texi
@mkdir -p tmp
@@ -149,7 +149,7 @@ R-intro.mobi: R-intro.texi
@rm -f $@.tmp
$(EBOOK) tmp/$*.html $@ $(EBOOK_OPTS) --authors \
"W.N. Venables, D.M. Smith, R Core Team"
- @rm -r tmp
+ @rm -R tmp
R-admin.html: $(srcdir)/R-admin.texi
@if test -z "$(MAKEINFO)"; then \
@@ -368,7 +368,7 @@ uninstall:
$(MAKE) uninstall-info; \
fi
@$(ECHO) "uninstalling $(subdir) ..."
- @rm -rf "$(DESTDIR)$(rdocdir)/manual"
+ @rm -Rf "$(DESTDIR)$(rdocdir)/manual"
uninstall-info:
@$(ECHO) "uninstalling R info pages ..."
@for f in $(OBJECTS_INFO); do \
@@ -385,7 +385,7 @@ uninstall-pdf:
mostlyclean: clean
clean:
@if test "$(BUILDDIR_IS_SRCDIR)" = no ; then \
- rm -rf $(INSTFILES) images; \
+ rm -Rf $(INSTFILES) images; \
fi
-@rm -f *.aux *.cp *.cps *.dvi *.en *.ens *.fn *.fns *.html *.info* \
*.ky *.kys *.log *.out *.pdf *.pg *.pgs *.ps *.ps-2 *.tmp \
diff --git a/doc/manual/R-FAQ.texi b/doc/manual/R-FAQ.texi
index e30ff00..27aaf68 100644
--- a/doc/manual/R-FAQ.texi
+++ b/doc/manual/R-FAQ.texi
@@ -4,8 +4,8 @@
@setfilename R-FAQ.info
@settitle R FAQ
@setchapternewpage on
-@set FAQ_YEAR 2016
-@set FAQ_DATE @value{FAQ_YEAR}-06-06
+@set FAQ_YEAR 2017
+@set FAQ_DATE @value{FAQ_YEAR}-10-04
@set FAQ_VERSION @value{FAQ_DATE}
@documentlanguage en
@documentencoding ISO-8859-1
@@ -756,12 +756,17 @@ the R mailing lists.
The R Core Team can be reached at @email{R-core@@lists.R-project.org}
for comments and reports.
-Many of the R project's mailing lists are also available via
-@url{http://gmane.org, Gmane}, from which they can be read with a web
-browser, using an NNTP news reader, or via RSS feeds. See
-@uref{http://dir.gmane.org/@/index.php?prefix=gmane.comp.lang.r.}@: for
-the available mailing lists, and @uref{http://www.gmane.org/rss.php} for
-details on RSS feeds.
+@c <FIXME>
+@c As of 2017-10, accessing GMANE's gmane.comp.lang.r still says
+@c Not all of Gmane is back yet ...
+@c Hence comment out for the time being.
+@c Many of the R project's mailing lists are also available via
+@c @url{http://gmane.org, Gmane}, from which they can be read with a web
+@c browser, using an NNTP news reader, or via RSS feeds. See
+@c @uref{http://dir.gmane.org/@/index.php?prefix=gmane.comp.lang.r.}@: for
+@c the available mailing lists, and @uref{http://www.gmane.org/rss.php} for
+@c details on RSS feeds.
+@c </FIXME>
@node What is CRAN?, Can I use R for commercial purposes?, What mailing lists exist for R?, R Basics
@section What is @acronym{CRAN}?
@@ -1503,11 +1508,9 @@ currently beta testing a commercially supported version of R named R+
(read R plus).
@url{http://www.revolution-computing.com/, Revolution Analytics} has
-released
-@url{http://www.revolution-computing.com/products/revolution-r.php,
-REvolution R}, an enterprise-class statistical analysis system based on
-R, suitable for deployment in professional, commercial and regulated
-environments.
+released REvolution R, now available as Microsoft R (see
+@url{http://blog.revolutionanalytics.com/2016/01/microsoft-r-open.html}
+for more information).
@c Now archived at <http://archive.today/WrgxY>
@c @url{http://www.random-technologies-llc.com/, Random Technologies}
@@ -1538,13 +1541,14 @@ explanation of the different versions of Rweb and an overview of how
Rweb works, was published in the Journal of Statistical Software
(@url{http://www.jstatsoft.org/v04/i01/}).
-@email{ulfi@@cs.tu-berlin.de, Ulf Bartel} has developed
-@strong{R-Online}, a simple on-line programming environment for R which
-intends to make the first steps in statistical programming with R
-(especially with time series) as easy as possible. There is no need for
-a local installation since the only requirement for the user is a
-JavaScript capable browser. See @url{http://www.osvisions.com/r_online/}
-for more information.
+@c No longer works ...
+@c @email{ulfi@@cs.tu-berlin.de, Ulf Bartel} has developed
+@c @strong{R-Online}, a simple on-line programming environment for R which
+@c intends to make the first steps in statistical programming with R
+@c (especially with time series) as easy as possible. There is no need for
+@c a local installation since the only requirement for the user is a
+@c JavaScript capable browser. See @url{http://www.osvisions.com/r_online/}
+@c for more information.
@strong{Rcgi} is a CGI WWW interface to R by @email{mjr@@dsl.pipex.com,
MJ Ray}. It had the ability to use ``embedded code'': you could mix
diff --git a/doc/manual/R-admin.texi b/doc/manual/R-admin.texi
index 3c92921..fc9d27b 100644
--- a/doc/manual/R-admin.texi
+++ b/doc/manual/R-admin.texi
@@ -931,12 +931,9 @@ involving times after 2037 or before 1916. An alternative time-zone
directory@footnote{How to prepare such a directory is described in file
@file{src/extra/tzone/Notes} in the @R{} sources.} can be used, pointed
to by environment variable @env{TZDIR}: this should contain files such
-as @file{Europe/London}. On most OSes the system timezone was
+as @file{Europe/London}. On all tested OSes the system timezone was
deduced correctly, but if necessary it can be set as the value of
-environment variable @env{TZ}. (OSes which do not follow the
-documentation of @file{/etc/localtime} as a symbolic link will have
-problems: this includes recent Debian-based Linuxen and RHEL/Centos 6
-(but not 7).)
+environment variable @env{TZ}.
@menu
@@ -1829,7 +1826,7 @@ typed as commands like any other Unix-alike: see the next chapter of
this manual. There are some small differences which may surprise users
of @R{} on other platforms, notably the default location of the personal
library directory (under @file{~/Library/R},
-e.g. @file{~/Library/R/3.4/library}), and that warnings, messages and
+e.g. @file{~/Library/R/3.5/library}), and that warnings, messages and
other output to @file{stderr} are highlighted in bold.
@c https://stat.ethz.ch/pipermail/r-sig-mac/2014-October/011131.html
@@ -1924,17 +1921,17 @@ These are paths relative to @file{/}, the root of the file system.
The installer will remove any previous version@footnote{More precisely,
of the Apple package of the same name: this means that installing a package for
-3.3.x does not remove an installation for 3.4.x or later.} of
+3.3.x does not remove an installation for 3.4.x or 3.5.x.} of
the @R{} framework which it finds installed. This can be avoided by
using @command{pkgutil --forget} (see the previous section). However,
note that different versions are installed under
-@file{/Library/Frameworks/R.framework/Versions} as @file{3.3},
-@file{3.4} and so on, so it is not possible to have different
+@file{/Library/Frameworks/R.framework/Versions} as @file{3.4},
+@file{3.5} and so on, so it is not possible to have different
@samp{3.x.y} versions installed for the same @samp{x}.
A version of @R{} can be run directly from the command-line as e.g.@:
@example
-/Library/Frameworks/R.framework/Versions/3.4/Resources/bin/R
+/Library/Frameworks/R.framework/Versions/3.5/Resources/bin/R
@end example
@noindent
@@ -2041,9 +2038,11 @@ ensures that only package @pkg{base} is loaded.
Changing the set of default packages is normally used to reduce the set
for speed when scripting: in particular not using @pkg{methods} will
-reduce the start-up time by a factor of up to two (and this is done by
-@command{Rscript}). But it can also be used to customize @R{}, e.g.@:
-for class use.
+reduce the start-up time by a factor of up to two. But it can also be
+used to customize @R{}, e.g.@: for class use. @command{Rscript}
+also checks the environment variable @env{R_SCRIPT_DEFAULT_PACKAGES};
+@enindex R_SCRIPT_DEFAULT_PACKAGES
+if set, this takes precedence over @env{R_DEFAULT_PACKAGES}.
@node Managing libraries, Installing packages, Default packages, Add-on packages
@@ -2303,7 +2302,7 @@ source versions of packages without compiled C/C++/Fortran code and offer
to do so for those with, if @command{make} is available.
Note that most binary packages including compiled code are tied to a
-particular series (e.g.@: @R{} 3.4.x or 3.3.x) of @R{}.
+particular series (e.g.@: @R{} 3.5.x or 3.4.x) of @R{}.
Installing source packages which do not contain compiled code should
work with no additional tools. For others you will need the
@@ -3044,7 +3043,7 @@ is the current working directory (in the build directory tree on a
Unix-alike if that is separate from the sources).
@file{Rmath.h} contains @samp{R_VERSION_STRING}, which is a character
-string containing the current @R{} version, for example @code{"3.4.4"}.
+string containing the current @R{} version, for example @code{"3.5.0"}.
There is full access to @R{}'s handling of @code{NaN}, @code{Inf} and
@code{-Inf} via special versions of the macros and functions
@@ -3313,13 +3312,15 @@ functionality of headers @file{wchar.h} and @file{wctype.h}, types
@code{wctans_t} and @code{mbstate_t} and functions @code{mbrtowc},
@code{mbstowcs}, @code{wcrtomb}, @code{wcscoll}, @code{wcstombs},
@code{wctrans}, @code{wctype}, and @code{iswctype}.} for wide-character
-types: this is checked at configuration. A small number of POSIX
-functions@footnote{including @code{opendir}, @code{readdir},
-@code{closedir}, @code{popen}, @code{stat}, @code{glob}, @code{access},
-@code{getcwd} and @code{chdir} system calls, @code{select} on a
-Unix-alike, and either @code{putenv} or @code{setenv}.} are essential,
-and others@footnote{such as @code{realpath}, @code{symlink}.} will be
-used if available.
+types: this is checked at configuration. Some C99
+functions@footnote{including @code{expm1}, @code{hypot}, @code{log1p},
+@code{nearbyint} and @code{va_copy}.} are required and checked for at
+configuration. A small number of POSIX functions@footnote{including
+@code{opendir}, @code{readdir}, @code{closedir}, @code{popen},
+@code{stat}, @code{glob}, @code{access}, @code{getcwd} and @code{chdir}
+system calls, @code{select} on a Unix-alike, and either @code{putenv} or
+@code{setenv}.} are essential, and others@footnote{such as
+@code{realpath}, @code{symlink}.} will be used if available.
@c zlib 1.2.5 is from July 2010, bzip2 1.0.6 from Sept 2010
@c xz 5.0.3 is from May 2011
@@ -4757,16 +4758,24 @@ exception of the ATLAS @acronym{BLAS} libraries.
The default optimization settings chosen for @code{CFLAGS} etc are
conservative. It is likely that using @option{-mtune} will result in
-significant performance improvements on recent CPUs (especially for
-@cputype{ix86}): one possibility is to add @option{-mtune=native} 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
-@option{-mtume=core2}.@footnote{or @code{-mtune=corei7} for Intel Core
-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.
+significant performance improvements on recent CPUs: one possibility is
+to add @option{-mtune=native} for the best possible performance on the
+machine on which @R{} is being installed. 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.
+
+As from @command{g++} 6 the default C++ standard is C++14.
+Compatibility with earlier releases can be obtained by using
+
+@example
+CXXSTD=-std=gnu++98
+@end example
+
+@noindent
+in @file{config.site}. This is desirable when checking packages, to
+ensure as far as possible that features from later C++ standards are not
+used unintentionally.
For platforms with both 64- and 32-bit support, it is likely that
@@ -4830,9 +4839,9 @@ the additional flags being needed to resolve problems linking against
@c suggestion of https://gcc.gnu.org/wiki/FloatingPointMath
The setting of the macro @samp{SAFE_FFLAGS} may need some help. It
should not need additional flags on platforms other than @cputype{68000}
-(not likely to be encountered) and @cputype{ix86} (and not
-@cputype{x86_64}). When the FORTRAN compiler is GNU (@command{gfortran}
-or possibly @command{g77}) the flags
+(not likely to be encountered) and @cputype{ix86}. For the latter, if
+the FORTRAN compiler is GNU (@command{gfortran} or possibly
+@command{g77}) the flags
@example
-msse2 -mfpmath=sse
@end example
@@ -4861,11 +4870,25 @@ This has to be used in conjunction with a Fortran compiler: the
@command{configure} code will remove @option{-lgcc} from @env{FLIBS},
which is needed for some versions of @command{gfortran}.
-The current default for @command{clang++} is to use the C++ runtime from
-the installed @command{g++}. Using the runtime from the @code{libc++}
-project (@url{http://libcxx.llvm.org/}, Fedora RPM @code{libcxx-devel})
-has also been tested: for some @R{} packages only the variant using
-@code{libcxxabi} was successful.
+The current out-of-the-box default for @command{clang++} is to use the
+C++ runtime from the installed @command{g++}. Using the runtime from
+the @code{libc++} project (@url{http://libcxx.llvm.org/}, Fedora RPM
+@code{libcxx-devel}) @emph{via} @option{-stdlib=libc++} has also been
+tested.
+
+As from @command{clang++} 6.0.0 the default C++ standard is C++14, which
+@R{}'s configure also uses when C++11 is requested. Compatibility with
+earlier releases can be obtained by using
+
+@example
+CXXSTD=-std=gnu++98
+CX11STD=-std=gnu++11
+@end example
+
+@noindent
+in @file{config.site}. These are desirable when checking packages, to
+ensure as far as possible that features from later C++ standards are not
+used unintentionally.
Recent versions have (optional when built) OpenMP support.@footnote{This
also needs the OpenMP runtime which has sometimes been distributed
@@ -4899,7 +4922,7 @@ seems this conflicts with using OpenMP in @R{}. So it may be necessary
to disable the latter by configuring using @option{--without-openmp}.
It is not clear what architectures @command{flang} intends to support:
-experiments were done on @cputype{x86_64}.
+our experiments were done on @cputype{x86_64}.
@node Intel compilers, , Clang, Linux
@@ -5225,10 +5248,11 @@ tclvalue(.Tcl("tk windowingsystem")) # "x11" or "aqua"
@node Java (macOS), Frameworks, Tcl/Tk headers and libraries, macOS
@subsection Java
-The situation with Java support on macOS is messy.@footnote{For more
-details see @uref{http://www.macstrategy.com/@/article.php?3}.} As from
-@R{} 3.4.0 the @acronym{CRAN} distribution of @CRANpkg{rJava} requires
-Java 8.
+The situation with Java support on macOS is messy,@footnote{For more
+details see @uref{http://www.macstrategy.com/@/article.php?3}.} and
+distribution of Java for all platforms is changing during 2018. The
+@acronym{CRAN} distribution of @CRANpkg{rJava} currently requires Java
+8.
macOS no longer comes with an installed Java runtime (JRE), and a macOS
upgrade may remove one if already installed: it is intended to be
@@ -5239,19 +5263,16 @@ not start with @code{1.8.0} or @code{9} you need to update your Java.}
this should prompt you to install it. You can also install directly a
recent Java from Oracle (currently from
@uref{http://www.oracle.com/@/technetwork/@/java/@/javase/@/downloads/@/index.html}:
-note that Java 9 has a limited lifetime and at the time of writing
-@CRANpkg{rJava} did not install with Java 10).
+note that Java 9 and 10 have a limited lifetime and at the time of
+writing @CRANpkg{rJava}@footnote{the current version @code{0.9-9}.} did
+not install with Java 10). Builds of OpenJDK may also be available,
+e.g.@: from @uref{http://jdk.java.net/}.
Binary distributions of @R{} are built against a specific version (e.g.@:
1.8.0_161) of Oracle Java so @command{sudo R CMD javareconf} may be
needed before using Java-using packages.
-@c You may need to install what Apple calls `legacy Java'@footnote{e.g.@:
-@c @code{Java For OS X 2015-001} from
-@c @uref{https://support.apple.com/@/kb/@/DL1572}.} to suppress pop-up messages
-@c even if you have a current version installed.
-
-To see what compatible versions of Java are currently installed, run
+To see what compatible versions of Oracle Java are currently installed, run
@command{/usr/libexec/java_home -V -a x86_64}. If needed, set the
environment variable @env{JAVA_HOME} to choose between these, both when
@R{} is built from the sources and when @command{R CMD javareconf} is
@@ -5282,15 +5303,20 @@ JAVA_LIBS="-L/$@{JAVA_HOME@}/lib/server -ljvm"
@noindent
in @file{config.site}.
-(An Apple JRE, if available, can be specified explicitly by something
-like
+To use the builds of OpenJDK from @uref{http://jdk.java.net/}, set
+@env{JAVA_HOME}:
@example
-JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
-JAVA_CPPFLAGS="-I/System/Library/Frameworks/JavaVM.framework/Headers"
-JAVA_LD_LIBRARY_PATH=
-JAVA_LIBS="-framework JavaVM"
+JAVA_HOME=@var{/path/to/JDK}/jdk-10.jdk/Contents/Home
@end example
-.)
+@noindent
+where @file{@var{/path/to/JDK}} is wherever the distribution tarball was
+unpacked. Java 10 JDKs do not contain @command{javah}, but @R{}
+configuration / @command{R CMD javareconf} can use one from an earlier
+installation if @env{JAVAH} is set, e.g.,
+@example
+JAVAH=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/bin/javah
+@end example
+
Note that it is necessary to set the environment variable @env{NOAWT} to
@code{1} to install many of the Java-using packages.
@@ -5756,7 +5782,8 @@ environment can be found in the ``R on AIX'' project on R-Forge
@cindex FreeBSD
There have been few recent reports on FreeBSD: there is a `port' at
-@uref{https://www.freebsd.org/@/ports/@/math.html}.
+@uref{https://www.freebsd.org/@/ports/@/math.html}. Recent versions of
+FreeBSD use Clang and the @code{libc++} C++ headers and runtime.
Use of ICU for collation and the @command{configure} option
@option{--with-internal-tzcode} are desirable workarounds.
@@ -5826,12 +5853,9 @@ build will use these options.
It seems that @command{gcc}@tie{}3.4.x and later on @cputype{ix86} Linux
defeat attempts by the LAPACK code to avoid computations entirely in
extended-precision registers, so file @file{src/modules/lapack/dlamc.f}
-may need to be compiled without optimization. Set the configure
-variable @env{SAFE_FFLAGS} to the flags to be used for this file. If
-configure detects @acronym{GNU} FORTRAN it adds flag
-@option{-ffloat-store} to @env{FFLAGS}. (Other settings are needed when
-using @command{icc} on @cputype{ix86} Linux, for example. Using
-@option{-mpc64} is preferable on more recent GCC compilers.)
+may need to be compiled without optimization or with additional flags.
+Set the configure variable @env{SAFE_FFLAGS} to the flags to be used for
+this file.
If you do manage to get @R{} running on a new platform please let us
know about it so we can modify the configuration procedures to include
diff --git a/doc/manual/R-exts.texi b/doc/manual/R-exts.texi
index 3182bbf..40d3e0a 100644
--- a/doc/manual/R-exts.texi
+++ b/doc/manual/R-exts.texi
@@ -183,8 +183,9 @@ various ways for consistency and portability.
source package which contains C, C++ or Fortran code will involve
compiling that code. There is also the possibility of `byte' compiling
the @R{} code in a package (using the facilities of package
-@pkg{compiler}): already base and recommended packages are normally
-byte-compiled and this can be specified for other packages. So
+@pkg{compiler}): since @R{} 3.5.0, this is enabled by default for all
+packages. Prior to @R{} 3.5.0, base and recommended packages were normally
+byte-compiled, but this had to be specified explicitly for other packages. So
@emph{compiling} a package may come to mean byte-compiling its @R{}
code.
@@ -550,14 +551,11 @@ exceptionally for a package designed to always be used with
@code{keep.source = TRUE}.
@c DESCRIPTION field ByteCompile
-The @samp{ByteCompile} logical field controls if the package code is to
-be byte-compiled on installation: the default is currently not to, so
-this may be useful for a package known to benefit particularly from
-byte-compilation (which can take quite a long time and increases the
-installed size of the package). It is used for the recommended
-packages, as they are byte-compiled when @R{} is installed and for
-consistency should be byte-compiled when updated. This can be overridden
-by installing with flag @option{--no-byte-compile}.
+The @samp{ByteCompile} logical field controls if the package code is to be
+byte-compiled on installation: since @R{} 3.5.0, the default is to
+byte-compile. Prior to @R{} 3.5.0, the default was not to, but
+recommended packages were already byte-compiled. This can be overridden by
+installing with flag @option{--no-byte-compile}.
@c DESCRIPTION field ZipData
The @samp{ZipData} logical field was used to control whether the automatic
@@ -2629,12 +2627,12 @@ nor to compilation done in vignettes or @emph{via} other packages.
@node Using C++14 code, Using C++17 code, Using C++11 code, Configure and cleanup
@subsection Using C++14 code
-Support for a C++14 has been explicitly added to @R{} from version
-3.4.0. Similar considerations to C++11 apply, except that the variables
-associated with the C++14 compiler use the prefix @samp{CXX14} instead
-of @samp{CXX11}. Hence to use C++14 code in a package, the package's
-@file{Makevars} file (or @file{Makevars.win} on Windows) should include
-the line
+Support for a C++14 (where available) has been explicitly added to @R{}
+from version 3.4.0. Similar considerations to C++11 apply, except that
+the variables associated with the C++14 compiler use the prefix
+@samp{CXX14} instead of @samp{CXX11}. Hence to use C++14 code in a
+package, the package's @file{Makevars} file (or @file{Makevars.win} on
+Windows) should include the line
@example
CXX_STD = CXX14
@end example
@@ -2653,7 +2651,7 @@ not necessarily compile under a C++14 compiler@footnote{As from @R{}
3.4.0, @command{configure} attempts to supply a C++14 compiler only if
explicitly requested. However, earlier versions of @R{} will use the
default C++14 mode of @command{g++} 6 and later.}, since the emulation
-typically leads to a namespace clash. In order to ensure that the code
+typically leads to a namespace clash. In order to ensure that the code
also compiles under C++14, something like the following should be
done:
@example
@@ -2686,7 +2684,20 @@ using std::make_unique;
The webpage
@uref{http://en.cppreference.com/@/w/@/cpp/@/compiler_support} gives
some information on which compilers are known to support recent C++
-features.
+features. Note that @command{g++} 4.9.x (as used for @R{} on Windows at
+the time of writing) has only partial C++14 support, and the flag to
+obtain that support is not included in the default Windows build of @R{}
+--- one could try something like
+
+@example
+CXX14="$(BINPREF)g++ $(M_ARCH)"
+CXX14FLAGS="-O2 -Wall"
+CXX14STD=-std=gnu1y
+@end example
+
+@noindent
+in @file{@var{HOME}/.R/Makevars.win}.
+
@node Using C++17 code, , Using C++14 code, Configure and cleanup
@subsection Using C++17 code
@@ -2719,6 +2730,9 @@ used systematically by setting the environment variable @env{USE_CXX17}.
As for C++14, feature tests can be used (and probably should be as
compiler support is still patchy).
+No C++17 support is enabled in the current default build of @R{} on
+Windows.
+
@node Checking and building packages, Writing package vignettes, Configure and cleanup, Creating R packages
@section Checking and building packages
@@ -4334,11 +4348,11 @@ functions where Windows does not support @code{%lld}, @code{%Lf} and
similar formats (and has its own formats such as @code{%I64d} for 64-bit
integers). It is very rare to need to output such types, and 64-bit
integers can usually be converted to doubles for output. However, the
-C11 standard (§7.8.1) includes @code{PRIxNN} macros@footnote{These are
-optional because the corresponding types are, but must be provided if the
-types are.} in C header @file{inttypes.h} (for example @code{PRId64}) so
-the portable approach is to test for these and if not available provide
-emulations in the package.
+C11 standard (section 7.8.1) includes @code{PRIxNN}
+macros@footnote{These are optional because the corresponding types are,
+but must be provided if the types are.} in C header @file{inttypes.h}
+(for example @code{PRId64}) so the portable approach is to test for
+these and if not available provide emulations in the package.
@item
@command{R CMD check} performs some checks for non-portable
@@ -4576,22 +4590,23 @@ fewer still (at the time of writing, only @cputype{x86_64} Linux, macOS,
When specifying a minimum Java version please use the official version
names, which are (confusingly)
@example
-1.1 1.2 1.3 1.4 5.0 6 7 8 9
+1.1 1.2 1.3 1.4 5.0 6 7 8 9 10
@end example
@noindent
-and supposedly will in 2018 move to a year.month scheme such as @samp{18.3}.
+and supposedly will in 2018 move to a year.month scheme such as @samp{18.9}.
A suitable test for packages using @CRANpkg{rJava} would be something like
@example
.jinit()
jv <- .jcall("java/lang/System", "S", "getProperty", "java.runtime.version")
-if(substr(jv, 1L, 1L) == "1") @{
+if(substr(jv, 1L, 2L) == "1.") @{
jvn <- as.numeric(paste0(strsplit(jv, "[.]")[[1L]][1:2], collapse = "."))
- if(jvn < 1.8) stop("Java 8 is needed for this package but not available")
+ if(jvn < 1.8) stop("Java >= 8 is needed for this package but not available")
@}
@end example
@noindent
-(Java 9 changed the format of this string.)
+(Java 9 changed the format of this string, and Java 10 gives @code{jv}
+as something like @samp{10+46}.)
Note too that the compiler used to produce a @code{jar} can impose a minimum
Java version, often resulting in an arcane message like
@@ -4675,7 +4690,7 @@ only usual situation when @env{R_HOME} is needed in the argument for
@code{include}.
@example
-$(MAKE) -f"$@{R_HOME@}/etc$@{R_ARCH@}/Makeconf" -fMakefile.inner
+$(MAKE) -f "$@{R_HOME@}/etc$@{R_ARCH@}/Makeconf" -f Makefile.inner
@end example
@end itemize
@@ -4689,7 +4704,9 @@ practice seen in distributed packages include:
It is not reasonable to test the time taken by a command: you cannot
know how fast or how heavily loaded an @R{} platform might be. At best
you can test a ratio of times, and even that is fraught with
-difficulties.
+difficulties and not advisable: the just-in-time compiler (JIT) and the GC
+may trigger at unpredictable times, following heuristics that may change
+without notice.
@item
Do not test the exact format of @R{} messages (from @R{} itself or from
@@ -11352,9 +11369,10 @@ can take values
The object is not bound to any symbol
@item 1
The object has been bound to exactly one symbol
-@item 2
+@item >= 2
The object has potentially been bound to two or more symbols, and one
should act as if another variable is currently bound to this value.
+The maximal value is @code{NAMEDMAX}.
@end table
@noindent
@@ -11362,11 +11380,11 @@ Note the past tenses: @R{} does not do full reference counting and there
may currently be fewer bindings.
It is safe to modify the value of any @code{SEXP} for which
-@code{NAMED(foo)} is zero, and if @code{NAMED(foo)} is two, the value
-should be duplicated (@emph{via} a call to @code{duplicate}) before any
-modification. Note that it is the responsibility of the author of the
-code making the modification to do the duplication, even if it is
-@code{x} whose value is being modified after @code{y <- x}.
+@code{NAMED(foo)} is zero, and if @code{NAMED(foo)} is two or more, the
+value should be duplicated (@emph{via} a call to @code{duplicate})
+before any modification. Note that it is the responsibility of the
+author of the code making the modification to do the duplication, even
+if it is @code{x} whose value is being modified after @code{y <- x}.
The case @code{NAMED(foo) == 1} allows some optimization, but it can be
ignored (and duplication done whenever @code{NAMED(foo) > 0}). (This
@@ -11394,11 +11412,23 @@ rebound immediately. (Provided the remaining code in @code{"foo<-"}
make no reference to @code{x}, and no one is going to attempt a direct
call such as @code{y <- "foo<-"(x)}.)
-This mechanism is likely to be replaced in future versions of @R{}.
+This mechanism is likely to be replaced in future versions of @R{}. To
+support future changes, package code should use the macros
+@code{MAYBE_REFERENCED}, @code{MAYBE_SHARED}, and
+@code{MARK_NOT_MUTABLE}. These currently correspond to
+
+@table@code
+@item MAYBE_REFERENCED(x)
+@code{NAMED(x) > 0}
+@item MAYBE_SHARED(x)
+@code{NAMED(x) > 1}
+@item MARK_NOT_MUTABLE(x)
+@code{SET_NAMED(x, NAMEDMAX)}
+@end table
@c commented out as people misread this as general.
@c Currently all arguments to a @code{.Call} call will have @code{NAMED}
-@c set to 2, and so users must assume that they need to be duplicated
+@c set to 2 or higher and so users must assume that they need to be duplicated
@c before alteration.
@node Interface functions .Call and .External, Evaluating R expressions from C, Handling R objects in C, System and foreign language interfaces
@@ -12465,7 +12495,7 @@ to create marked character strings of a given length.
@menu
* Memory allocation::
-* Error handling::
+* Error signaling::
* Random numbers::
* Missing and IEEE values::
* Printing::
@@ -12475,6 +12505,7 @@ to create marked character strings of a given length.
* Integration::
* Utility functions::
* Re-encoding::
+* Condition handling and cleanup code::
* Allowing interrupts::
* Platform and version information::
* Inlining C functions::
@@ -12541,7 +12572,7 @@ Entry points that are where possible (Windows and some modern Unix-alike
compilers/loaders when using @R{} as a shared library) not exported.
@end table
-@node Memory allocation, Error handling, The R API, The R API
+@node Memory allocation, Error signaling, The R API, The R API
@section Memory allocation
@cindex Memory allocation from C
@@ -12649,7 +12680,7 @@ never from front-ends. They are not thread-safe.
@findex Free
The other form of memory allocation is an interface to @code{malloc},
-the interface providing @R{} error handling. This memory lasts until
+the interface providing @R{} error signaling. This memory lasts until
freed by the user and is additional to the memory allocated for the @R{}
workspace.
@@ -12686,11 +12717,11 @@ These entry points need to be prefixed by @code{R_} if
@code{STRICT_R_HEADERS} has been defined.
-@node Error handling, Random numbers, Memory allocation, The R API
-@section Error handling
-@cindex Error handling from C
+@node Error signaling, Random numbers, Memory allocation, The R API
+@section Error signaling
+@cindex Error signaling from C
-The basic error handling routines are the equivalents of @code{stop} and
+The basic error signaling routines are the equivalents of @code{stop} and
@code{warning} in @R{} code, and use the same interface.
@example
@@ -12724,12 +12755,12 @@ the last two being the forms available in all @Sl{} versions. Here
or a format string followed by arguments separated by commas.
@menu
-* Error handling from FORTRAN::
+* Error signaling from FORTRAN::
@end menu
-@node Error handling from FORTRAN, , Error handling, Error handling
-@subsection Error handling from FORTRAN
-@cindex Error handling from FORTRAN
+@node Error signaling from FORTRAN, , Error signaling, Error signaling
+@subsection Error signaling from FORTRAN
+@cindex Error signaling from FORTRAN
There are two interface function provided to call @code{error} and
@code{warning} from FORTRAN code, in each case with a simple character
@@ -12745,7 +12776,7 @@ subroutine rwarn(@var{message})
Messages of more than 255 characters are truncated, with a warning.
-@node Random numbers, Missing and IEEE values, Error handling, The R API
+@node Random numbers, Missing and IEEE values, Error signaling, The R API
@section Random number generation
@cindex Random numbers in C
@findex unif_rand
@@ -13714,7 +13745,7 @@ the original functions by Fox, Hall and Schryer on NetLib at
@uref{http://www.netlib.org/slatec/src/} for IEC 60559 arithmetic
(required by @R{}).
-@node Re-encoding, Allowing interrupts, Utility functions, The R API
+@node Re-encoding, Condition handling and cleanup code, Utility functions, The R API
@section Re-encoding
@R{} has its own C-level interface to the encoding conversion
@@ -13747,7 +13778,78 @@ input does not end with a complete multi-byte character).
Free the resources of an encoding object.
-@node Allowing interrupts, Platform and version information, Re-encoding, The R API
+@node Condition handling and cleanup code, Allowing interrupts, Re-encoding, The R API
+@section Condition handling and cleanup code
+@cindex Condition handling
+@cindex Cleanup code
+@cindex Error handling
+
+Two functions are available for establishing condition handlers from
+within C code:
+
+@example
+#include <Rinternals.h>
+
+SEXP R_tryCatchError(SEXP (*fun)(void *data), void *data,
+ SEXP (*hndlr)(SEXP cond, void *hdata), void *hdata);
+
+SEXP R_tryCatch(SEXP (*fun)(void *data), void *data,
+ SEXP,
+ SEXP (*hndlr)(SEXP cond, void *hdata), void *hdata,
+ void (*clean)(void *cdata), void *cdata);
+@end example
+
+@code{R_tryCatchError} establishes an exiting handler for conditions
+inheriting form class @code{error}.
+
+@code{R_tryCatch} can be used to establish a handler for other
+conditions and to register a cleanup action. The conditions to be
+handled are specified as a character vector (@code{STRSXP}).
+A @code{NULL} pointer can be passed as @code{fun} or @code{clean}
+if condition handling or cleanup are not needed.
+
+These are currently implemented using the R-level @code{tryCatch}
+mechanism so are subject to some overhead.
+
+The function @code{R_UnwindProtect} can be used to ensure that a cleanup
+action takes place on ordinary return as well as on a non-local transfer
+of control, which R implements as a @code{longjmp}.
+
+@example
+SEXP R_UnwindProtect(SEXP (*fun)(void *data), void *data,
+ void (*clean)(void *data, Rboolean jump), void *cdata,
+ SEXP cont);
+@end example
+
+@code{R_UnwindProtect} can be used in two ways. The simper usage,
+suitable for use in C code, passes @code{NULL} for the @code{cont}
+argument. @code{R_UnwindProtect} will call @code{fun(data)}. If
+@code{fun} returns a value, then @code{R_UnwindProtect} calls
+@code{clean(cleandata, FALSE)} before returning the value returned by
+@code{fun}. If @code{fun} executes a non-local transfer of control, then
+@code{clean(cleandata, TRUE)} is called, and the non-local transfer of
+control is resumed.
+
+The second use pattern, suitable to support C++ stack unwinding, uses
+two additional functions:
+
+@example
+SEXP R_MakeUnwindCont();
+void NORET R_ContinueUnwind(SEXP cont);
+@end example
+
+@code{R_MakeUnwindCont} allocates a @emph{continuation token}
+@code{cont} to pass to @code{R_UnwindProtect}. This token should be
+protected with @code{PROTECT} before calling
+@code{R_UnwindProtect}. When the @code{clean} function is called with
+@code{jump == TRUE}, indicating that R is executing a non-local transfer
+of control, it can throw a C++ exception to a C++ @code{catch} outside
+the C++ code to be unwound, and then use the continuation token in the a
+call @code{R_ContinueUnwind(cont)} to resume the non-local transfer of
+control within R.
+
+
+@node Allowing interrupts, Platform and version information, Condition handling and cleanup code, The R API
@section Allowing interrupts
@cindex Interrupts
@@ -13769,7 +13871,7 @@ subroutine rchkusr()
@end example
These check if the user has requested an interrupt, and if so branch to
-@R{}'s error handling functions.
+@R{}'s error signaling functions.
Note that it is possible that the code behind one of the entry points
defined here if called from your C or FORTRAN code could be interruptible
@@ -14029,7 +14131,7 @@ The following headers are included by @file{R.h}:
@item @file{R_ext/Boolean.h} @tab @code{TRUE}/@code{FALSE} type
@item @file{R_ext/Complex.h} @tab C typedefs for @R{}'s @code{complex}
@item @file{R_ext/Constants.h} @tab constants
-@item @file{R_ext/Error.h} @tab error handling
+@item @file{R_ext/Error.h} @tab error signaling
@item @file{R_ext/Memory.h} @tab memory allocation
@item @file{R_ext/Print.h} @tab @code{Rprintf} and variations.
@item @file{R_ext/RS.h} @tab definitions common to @file{R.h} and
@@ -14474,7 +14576,7 @@ include @file{Makeconf}, for example via recursive invocation of
@example
all:
- $(MAKE) -f"$@{R_HOME@}/etc$@{R_ARCH@}/Makeconf" -fMakefile.inner
+ $(MAKE) -f "$@{R_HOME@}/etc$@{R_ARCH@}/Makeconf" -f Makefile.inner
@end example
Additional flags which @code{$(MAIN_LINK)} includes are, amongst others,
diff --git a/doc/manual/R-ints.texi b/doc/manual/R-ints.texi
index 6ae20e9..8aa4156 100644
--- a/doc/manual/R-ints.texi
+++ b/doc/manual/R-ints.texi
@@ -125,12 +125,12 @@ available to @R{} Extensions: rather @code{SEXP} is an opaque pointer,
and the internals can only be accessed by the functions provided.
@cindex node
-Both types of node structure have as their first three fields a 32-bit
+Both types of node structure have as their first three fields a 64-bit
@code{sxpinfo} header and then three pointers (to the attributes and the
previous and next node in a doubly-linked list), and then some further
fields. On a 32-bit platform a node@footnote{strictly, a @code{SEXPREC}
node; @code{VECTOR_SEXPREC} nodes are slightly smaller but followed by
-data in the node.} occupies 28 bytes: on a 64-bit platform typically 56
+data in the node.} occupies 32 bytes: on a 64-bit platform typically 56
bytes (depending on alignment constraints).
The first five bits of the @code{sxpinfo} header specify one of up to 32
@@ -225,23 +225,28 @@ solely of a simple type such as an atomic vector or function.
@node Rest of header, The 'data', SEXPTYPEs, SEXPs
@subsection Rest of header
-Note that the size and structure of the header will change in @R{} 3.5.0.
+Note that the size and structure of the header changed in @R{} 3.5.0:
+see earlier editions of this manual for the previous layout.
-The @code{sxpinfo} header is currently defined as a 32-bit C structure by
+The @code{sxpinfo} header is defined as a 64-bit C structure by
@example
+#define NAMED_BITS 16
struct sxpinfo_struct @{
SEXPTYPE type : 5; /* @r{discussed above} */
+ unsigned int scalar: 1; /* @r{is this a numeric vector of length 1?}
unsigned int obj : 1; /* @r{is this an object with a class attribute?} */
- unsigned int named : 2; /* @r{used to control copying} */
+ unsigned int alt : 1; /* @r{is this an @code{ALTREP} object?} */
unsigned int gp : 16; /* @r{general purpose, see below} */
unsigned int mark : 1; /* @r{mark object as `in use' in GC} */
unsigned int debug : 1;
unsigned int trace : 1;
- unsigned int spare : 1; /* @r{debug once} */
+ unsigned int spare : 1; /* @r{debug once and with reference counting} */
unsigned int gcgen : 1; /* @r{generation for GC} */
unsigned int gccls : 3; /* @r{class of node for GC} */
-@}; /* Tot: 32 */
+ unsigned int named : NAMED_BITS; /* @r{used to control copying} */
+ unsigned int extra : 32 - NAMED_BITS;
+@}; /* Tot: 64 */
@end example
@findex debug bit
@@ -259,12 +264,13 @@ other objects when tracing duplications (see @code{tracemem}).
The @code{spare} bit is used for closures to mark them for one-time
debugging.
-@findex named bit
+@findex named bits
@findex NAMED
@findex SET_NAMED
@cindex copying semantics
The @code{named} field is set and accessed by the @code{SET_NAMED} and
-@code{NAMED} macros, and take values @code{0}, @code{1} and @code{2}.
+@code{NAMED} macros, and take values @code{0}, @code{1} and @code{2}, or
+possibly higher if @code{NAMEDMAX} is set to a higher value.
@R{} has a `call by value' illusion, so an assignment like
@example
b <- a
@@ -277,7 +283,7 @@ is no need to copy. What really happens is that a new symbol @code{b}
is bound to the same value as @code{a} and the @code{named} field on the
value object is set (in this case to @code{2}). When an object is about
to be altered, the @code{named} field is consulted. A value of @code{2}
-means that the object must be duplicated before being changed. (Note
+or more means that the object must be duplicated before being changed. (Note
that this does not say that it is necessary to duplicate, only that it
should be duplicated whether necessary or not.) A value of @code{0}
means that it is known that no other @code{SEXP} shares data with this
@@ -886,7 +892,7 @@ used for the evaluation of the body of the function, and promises will
be forced (and hence actual or default arguments evaluated) when they
are encountered.
@findex NAMED
-(Evaluating a promise sets @code{NAMED = 2} on its value, so if the
+(Evaluating a promise sets @code{NAMED = NAMEDMAX} on its value, so if the
argument was a symbol its binding is regarded as having multiple
references during the evaluation of the closure call.)
@@ -1146,9 +1152,10 @@ from a connection.
@R{} has used the same serialization format since @R{} 1.4.0 in December
2001. Earlier formats are still supported via @code{load} and
@code{save} but such formats are not described here. The current
-serialization format is called `version 2', and has been expanded in
+default serialization format is called `version 2', and has been expanded in
back-compatible ways since its inception, for example to support
-additional @code{SEXPTYPE}s.
+additional @code{SEXPTYPE}s. Version 3 format has been introduced in @R{}
+3.5.0.
@code{save} works by writing a single-line header (typically
@code{RDX2\n} for a binary save: the only other current value is
@@ -1228,6 +1235,11 @@ doubles formatted with @code{%.16g} (plus @code{NA}, @code{Inf} and
standard escapes (e.g.@: @code{\t} and @code{\013}) for non-printing and
non-@acronym{ASCII} bytes.
+Version-3 serialization extends version-2 by support for custom
+serialization of @code{ALTREP} framework objects. It also stores the
+current native encoding at serialization time, so that unflagged strings can
+be converted if unserialized in R running under different native encoding.
+
@node Encodings for CHARSXPs, The CHARSXP cache, Serialization Formats, R Internal Structures
@section Encodings for CHARSXPs
@@ -2109,7 +2121,7 @@ The following basic replacement and extractor functions
@group
length length<-
class class<-
-oldClass oldCLass<-
+oldClass oldClass<-
attr attr<-
attributes attributes<-
names names<-
@@ -2125,7 +2137,7 @@ dimnames dimnames<-
@noindent
Note that optimizing @code{NAMED = 1} is only effective within a
primitive (as the closure wrapper of a @code{.Internal} will set
-@code{NAMED = 2} when the promise to the argument is evaluated) and
+@code{NAMED = NAMEDMAX} when the promise to the argument is evaluated) and
hence replacement functions should where possible be primitive to avoid
copying (at least in their default methods).
@@ -2134,11 +2146,11 @@ The following functions are primitive for efficiency reasons:
@example
@group
-: ~ c list
-call expression substitute
-UseMethod standardGeneric
-.C .Fortran .Call .External
-round signif rep seq.int
+: ~ c list
+call expression substitute
+UseMethod standardGeneric
+.C .Fortran .Call .External
+round signif rep seq.int
@end group
@end example
@@ -2147,10 +2159,10 @@ as well as the following internal-use-only functions
@example
@group
-.Primitive .Internal
-.Call.graphics .External.graphics
-.subset .subset2
-.primTrace .primUntrace
+.Primitive .Internal
+.Call.graphics .External.graphics
+.subset .subset2
+.primTrace .primUntrace
lazyLoadDBfetch
@end group
@end example
@@ -2344,7 +2356,7 @@ internationalized in the same way as other packages.
* R code::
* Main C code::
* Windows-GUI-specific code::
-* macOS GUI::
+* macOS GUI::
* Updating::
@end menu
@@ -3953,6 +3965,31 @@ indicate that no report is required, a value of @samp{0} that a report
is always required.
Default: @code{""}. (@code{10} for CRAN checks.)
+@item _R_CHECK_EXAMPLE_TIMING_THRESHOLD_
+If timings are being recorded, set the threshold in seconds for
+reporting long-running examples (either user+system CPU time or elapsed
+time). Default: @code{"5"}.
+
+@item _R_CHECK_EXAMPLE_TIMING_CPU_TO_ELAPSED_THRESHOLD_
+For checks with timings enabled, report examples where the ratio of CPU
+time to elapsed time exceeds this threshold (and the CPU time is at
+least one second). This can help detect the simultaneous use of
+multiple CPU cores.
+Default: @code{NA}.
+
+@item _R_CHECK_TEST_TIMING_CPU_TO_ELAPSED_THRESHOLD_
+Report for running an individual test if the ratio of CPU time to
+elapsed time exceeds this threshold (and the CPU time is at least one
+second). Not supported on Windows.
+Default: @code{NA}.
+
+@item _R_CHECK_VIGNETTE_TIMING_CPU_TO_ELAPSED_THRESHOLD_
+Report if when running/re-building vignettes (individually or in
+aggregate) the ratio of CPU time to elapsed time exceeds this threshold
+(and the CPU time is at least one second). Not supported on
+Windows.
+Default: @code{NA}.
+
@item _R_CHECK_INSTALL_DEPENDS_
If set to a true value and a test installation is to be done, this is
done with @code{.libPaths()} containing just a temporary library
@@ -3969,15 +4006,15 @@ is available to those who first install recording to a log, then call
@item _R_CHECK_DEPENDS_ONLY_
@itemx _R_CHECK_SUGGESTS_ONLY_
-If set to a true value, running examples, tests and
-vignettes@footnote{but not re-building vignettes.} is done with
-@code{.libPaths()} containing just a temporary library directory and
-@code{.Library}. The temporary library is populated by symbolic
+If set to a true value, running examples, tests and vignettes is done
+with @code{.libPaths()} containing just a temporary library directory
+and @code{.Library}. The temporary library is populated by symbolic
links@footnote{see the previous footnote.} to the installed copies of
all the Depends/Imports and (for the second only) Suggests packages
-which are not in @code{.Library}. (As an exception, packages in a
-@samp{VignetteBuilder} field are always made available.)
-Default: false (but @env{_R_CHECK_SUGGESTS_ONLY_} is true for CRAN checks).
+which are not in @code{.Library}. (As exceptions, packages in a
+@samp{VignetteBuilder} field and test-suite managers in @samp{Suggests}
+are always made available.) Default: false (but
+@env{_R_CHECK_SUGGESTS_ONLY_} is true for CRAN checks).
@item _R_CHECK_NO_RECOMMENDED_
If set to a true value, augment the previous checks to make recommended
@@ -4112,6 +4149,59 @@ Windows, @command{objdump.exe} to be on the @env{PATH}. This would be
normal when using a package with compiled code (which are the only ones
this checks), but Windows' users should check.)
Default: false (but true for CRAN submission checks).
+
+@item _R_CHECK_NO_STOP_ON_TEST_ERROR_
+If set to a true value, do not stop running tests after first error (as
+if command line option @option{--no-stop-on-test-error} had been given).
+Default: false (but true for CRAN submission checks).
+
+@item _R_CHECK_PRAGMAS_
+Run additional checks on the pragmas in C/C++ source code and headers.
+Default: false (but true for CRAN submission checks).
+
+@item _R_CHECK_COMPILATION_FLAGS_
+If the package is installed and has C/C++/Fortran code, check the
+install log for non-portable flags (for example those added to
+@file{src/Makevars} during configuration). Currently @option{-W} flags
+are reported, except @option{-Wall}, @option{-Wextra} and
+@option{-Weverything}, and flags which appear to be attempts to suppress
+warnings are highlighted.
+See
+@ifset UseExternalXrefs
+@ref{Writing portable packages, , Writing portable packages, R-exts, Writing R Extensions}
+@end ifset
+@ifclear UseExternalXrefs
+`Writing R Extensions'
+@end ifclear
+for the rationale of this check (and why even @option{-Werror} is
+unsafe). Environment variable @env{_R_CHECK_COMPILATION_FLAGS_KNOWN_}
+can be set to a space-separated set of flags which come from the @R{}
+build used for testing (flags such as @option{-Wall} and
+@option{-Wextra} are already known).
+Default: false (but true for CRAN submission checks).
+
+@item _R_CHECK_R_DEPENDS_
+Check that any dependence on R is not on a recent patch-level version
+such as @code{R (>= 3.3.3)} since blocking installation of a package
+will also block its reverse dependencies. Possible values
+@samp{"note"}, @samp{"warn"} and logical values (where currently true
+values are equivalent to @samp{"note"}).
+Default: false (but @samp{"warn"} for @option{--as-cran}).
+
+@item _R_CHECK_SERIALIZATION_
+Check that serialized @R{} objects in the package sources were
+serialized with version 2 and there is no dependence on @samp{R >=
+3.5.0}. (Version 3 is in use as from @R{} 3.5.0 but should only be used
+when necessary.)
+Default: false (but true for CRAN submission checks).
+
+@item _R_CHECK_R_ON_PATH_
+This checks if the package attempts to use @command{R} or
+@command{Rscript} from the path rather than that under test.
+It does so by putting scripts at the head of the path which print a
+message and fail.
+Default: false (but true for CRAN submission checks).
+
@end vtable
CRAN's submission checks use something like
@@ -4137,6 +4227,11 @@ _R_CHECK_SCREEN_DEVICE_=stop
_R_CHECK_TOPLEVEL_FILES_=TRUE
_R_CHECK_S3_METHODS_NOT_REGISTERED_=TRUE
_R_CHECK_OVERWRITE_REGISTERED_S3_METHODS_=TRUE
+_R_CHECK_PRAGMAS_=TRUE
+_R_CHECK_COMPILATION_FLAGS_=TRUE
+_R_CHECK_R_DEPENDS_=warn
+_R_CHECK_SERIALIZATION_=TRUE
+_R_CHECK_R_ON_PATH_=TRUE
@end example
@noindent
@@ -4150,6 +4245,43 @@ _R_CHECK_FORCE_SUGGESTS_=FALSE
since some packages do suggest other packages not available on CRAN or
other commonly-used repositories.
+Several environment variables can be used to set `timeouts': limits for
+the elapsed time taken by the sub-processes used for parts of the
+checks. A value of @code{0} indicates no limit, and is the default.
+Character strings ending in @samp{s}, @samp{m} or @samp{h} indicate a
+number of seconds, minutes or hours respectively: other values are
+interpreted as a whole number of seconds (with invalid inputs being
+treated as no limit).
+@vtable @code
+@item _R_CHECK_ELAPSED_TIMEOUT_
+The default timeout for sub-processes not otherwise mentioned, and the
+default value for all except @env{_R_CHECK_ONE_TEST_ELAPSED_TIMEOUT_}.
+(This is also used by @code{tools::check_packages_in_dir}.)
+
+@item _R_CHECK_INSTALL_ELAPSED_TIMEOUT_
+Limit for when @command{R CMD INSTALL} is run by @command{check}.
+
+@item _R_CHECK_EXAMPLES_ELAPSED_TIMEOUT_
+Limit for running all the examples for one sub-architecture.
+
+@item _R_CHECK_ONE_TEST_ELAPSED_TIMEOUT_
+Limit for running one test for one sub-architecture. Default
+@env{_R_CHECK_TESTS_ELAPSED_TIMEOUT_}.
+
+@item _R_CHECK_TESTS_ELAPSED_TIMEOUT_
+Limit for running all the tests for one sub-architecture (and the
+default limit for running one test).
+
+@item _R_CHECK_ONE_VIGNETTE_ELAPSED_TIMEOUT_
+Limit for running the @R{} code in one vignette.
+
+@item _R_CHECK_BUILD_VIGNETTES_ELAPSED_TIMEOUT_
+Limit for re-building (all) vignettes.
+
+@item _R_CHECK_PKGMAN_ELAPSED_TIMEOUT_
+Limit for each attempt at building the PDF package manual.
+@end vtable
+
Another variable which enables stricter checks is to set
@env{R_CHECK_CONSTANTS} to @code{5}. This checks that
nothing@footnote{The usual culprits are calls to compiled code
@@ -4427,16 +4559,9 @@ matrix indices were all converted to positive integers): it now works
with either @code{INTSXP} or @code{REALSXP} indices.
@item
-@R{} function @code{length} was documented to currently return an
-integer, possibly @code{NA}. A lot of code has been written that
-assumes that, and even code which calls @code{as.integer(length(x))}
-before passing to @code{.C}/@code{.Fortran} rarely checks for an
-@code{NA} result.
-
-There is a new function @code{xlength} which works for long vectors and
-returns a double value if the length exceeds 2^31-1. At present
-@code{length} returns @code{NA} for long vectors, but it may be safer to
-make that an error.
+The @R{} function @code{length} returns a double value if the length
+exceeds 2^31-1. Code calling @code{as.integer(length(x))} before passing
+to @code{.C}/@code{.Fortran} should checks for an @code{NA} result.
@end itemize
diff --git a/doc/manual/R-lang.texi b/doc/manual/R-lang.texi
index 662bf00..6f44365 100644
--- a/doc/manual/R-lang.texi
+++ b/doc/manual/R-lang.texi
@@ -4386,7 +4386,7 @@ character with given hex code -- sequences of one or two hex digits
Unicode character with given hex code -- sequences of up to four hex
digits. The character needs to be valid in the current locale.
@item \U@var{nnnnnnnn} \U@{@var{nnnnnnnn}@}
-(where multibyte locales are supported and not on Windows, otherwise an
+(where multibyte locales are supported, otherwise an
error). Unicode character with given hex code -- sequences of up to
eight hex digits.
@end table
diff --git a/etc/Makeconf.in b/etc/Makeconf.in
index e7d9fbd..cb1b259 100644
--- a/etc/Makeconf.in
+++ b/etc/Makeconf.in
@@ -84,7 +84,7 @@ LTO = @LTOALL@
MAIN_LD = @MAIN_LD@
MAIN_LDFLAGS = @MAIN_LDFLAGS@
MAIN_LINK = $(MAIN_LD) $(MAIN_LDFLAGS) $(LDFLAGS)
-MKINSTALLDIRS = $(R_HOME)/bin/mkinstalldirs
+MKINSTALLDIRS = "$(R_HOME)/bin/mkinstalldirs"
OBJC = @OBJC@
OBJCFLAGS = @OBJCFLAGS@ $(LTO)
OBJC_LIBS = @OBJC_LIBS@
diff --git a/etc/Makefile.in b/etc/Makefile.in
index b5a1988..9ee0dcd 100644
--- a/etc/Makefile.in
+++ b/etc/Makefile.in
@@ -89,7 +89,7 @@ clean:
distclean: clean
-@test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
@if test -n "$(R_ARCH)"; then \
- rm -rf .$(R_ARCH) ; \
+ rm -Rf .$(R_ARCH) ; \
fi
maintainer-clean: distclean
diff --git a/etc/javaconf.in b/etc/javaconf.in
index 57114d9..f59017f 100644
--- a/etc/javaconf.in
+++ b/etc/javaconf.in
@@ -3,4 +3,7 @@
: ${JAVA_CPPFLAGS=@custom_JAVA_CPPFLAGS@}
: ${JAVA_LD_LIBRARY_PATH=@custom_JAVA_LD_LIBRARY_PATH@}
: ${JAVA_LIBS=@custom_JAVA_LIBS@}
-
+: ${JAVA=@custom_JAVA@}
+: ${JAVAC=@custom_JAVAC@}
+: ${JAVAH=@custom_JAVAH@}
+: ${JAR=@custom_JAR@}
diff --git a/etc/repositories b/etc/repositories
index 49b1dc5..542f682 100644
--- a/etc/repositories
+++ b/etc/repositories
@@ -13,7 +13,6 @@ CRAN CRAN @CRAN@ TRUE TRUE TRUE TRUE
BioCsoft "BioC software" %bm/packages/%v/bioc FALSE TRUE TRUE TRUE
BioCann "BioC annotation" %bm/packages/%v/data/annotation FALSE TRUE TRUE TRUE
BioCexp "BioC experiment" %bm/packages/%v/data/experiment FALSE TRUE TRUE TRUE
-BioCextra "BioC extra" %bm/packages/%v/extra FALSE TRUE TRUE TRUE
CRANextra CRAN (extras) https://www.stats.ox.ac.uk/pub/RWin FALSE TRUE TRUE TRUE
Omegahat Omegahat http://www.omegahat.net/R FALSE TRUE FALSE FALSE
R-Forge R-Forge https://R-Forge.R-project.org FALSE TRUE TRUE TRUE
diff --git a/m4/R.m4 b/m4/R.m4
index 3fe8b27..d3bf508 100644
--- a/m4/R.m4
+++ b/m4/R.m4
@@ -57,7 +57,7 @@ else
$1="${[$1]}${separator}$2"
fi])# R_SH_VAR_ADD
-## R_MISSING_PROG(NAME, PROGRAM)
+## R_MISSING_PROG(NAME, PROGRAM, [ACTION-IF-MISSING])
## -----------------------------
## Simplified variant of AM_MISSING_PROG.
## Set NAME to PROGRAM if this is found and works (in the sense of
@@ -69,8 +69,9 @@ if ($2 --version) < /dev/null > /dev/null 2>&1; then
$1=$2
AC_MSG_RESULT([found])
else
- $1="\$(SHELL) \$(top_srcdir)/tools/missing $2"
+ $1="\$(SHELL) \"\$(abs_top_srcdir)/tools/missing\" $2"
AC_MSG_RESULT([missing])
+ [$3]
fi
AC_SUBST($1)
])# R_MISSING_PROG
@@ -368,7 +369,7 @@ if AC_TRY_EVAL(ac_try) \
else
r_cv_prog_cc_c_o_lo=no
fi
-rm -rf conftest* TMP])
+rm -Rf conftest* TMP])
])# R_PROG_CC_C_O_LO
## R_PROG_CC_MAKEFRAG
@@ -994,7 +995,7 @@ if ${CC} ${CFLAGS} -c conftest.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
fi
fi
])
-rm -rf conftest conftest.* conftestf.* core
+rm -Rf conftest conftest.* conftestf.* core
if test -n "${r_cv_prog_f77_can_run}"; then
AC_MSG_RESULT([yes])
else
@@ -1083,7 +1084,7 @@ if ${CC} ${CFLAGS} -c conftest.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
fi
fi
])
-rm -rf conftest conftest.* conftestf.* core
+rm -Rf conftest conftest.* conftestf.* core
if test -n "${r_cv_prog_f77_cc_compat}"; then
AC_MSG_RESULT([yes])
else
@@ -1170,7 +1171,7 @@ if ${CC} ${CFLAGS} -c conftest.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
fi
fi
])
-rm -rf conftest conftest.* conftestf.* core
+rm -Rf conftest conftest.* conftestf.* core
if test -n "${r_cv_prog_f77_cc_compat_complex}"; then
AC_MSG_RESULT([yes])
AC_DEFINE(HAVE_FORTRAN_DOUBLE_COMPLEX, 1,
@@ -1417,7 +1418,7 @@ EOF
echo "running: $1 -c conftest.mm ${CPPFLAGS} ${OBJCXXFLAGS}" >&AS_MESSAGE_LOG_FD
if $1 -c conftest.mm ${CPPFLAGS} ${OBJCXXFLAGS} >&AS_MESSAGE_LOG_FD 2>&1; then
AC_MSG_RESULT([yes])
- rm -rf conftest conftest.* core
+ rm -Rf conftest conftest.* core
m4_default([$2], OBJCXX=$1)
else
AC_MSG_RESULT([no])
@@ -2054,7 +2055,7 @@ BITMAP_LIBS=
if test "${use_jpeglib}" = yes; then
save_CPPFLAGS=${CPPFLAGS}
## IJG version 9c (Jan 2018) has support as libjpeg.
- ## libjpeg-turbo has had this for a while.
+ ## libjpeg-turbo has had this for a wh ile.
if "${PKGCONF}" --exists libjpeg; then
JPG_CPPFLAGS=`"${PKGCONF}" --cflags libjpeg`
JPG_LIBS=`"${PKGCONF}" --libs libjpeg`
@@ -2798,7 +2799,7 @@ if ${CC} ${CFLAGS} -c conftest.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
fi
fi
])
- rm -rf conftest conftest.* conftestf.* core
+ rm -Rf conftest conftest.* conftestf.* core
if test -n "${r_cv_zdotu_is_usable}"; then
AC_MSG_RESULT([yes])
else
@@ -3195,7 +3196,7 @@ if test "x${r_cv_have_pcre820}" != xyes; then
have_pcre=no
LIBS="${r_save_LIBS}"
else
-AC_CACHE_CHECK([if PCRE version >= 8.32], [r_cv_have_pcre832],
+AC_CACHE_CHECK([if PCRE version >= 8.32], [r_cv_have_pcre_832],
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
#ifdef HAVE_PCRE_PCRE_H
#include <pcre/pcre.h>
@@ -3211,7 +3212,7 @@ int main() {
exit(1);
#endif
}
-]])], [r_cv_have_pcre832=yes], [r_cv_have_pcre832=no], [r_cv_have_pcre832=no])])
+]])], [r_cv_have_pcre_832=yes], [r_cv_have_pcre_832=no], [r_cv_have_pcre_832=no])])
fi
AC_MSG_CHECKING([whether PCRE support suffices])
@@ -3220,12 +3221,48 @@ if test "x${r_cv_have_pcre820}" != xyes; then
else
AC_MSG_RESULT([yes])
fi
-if test "x${r_cv_have_pcre832}" != xyes; then
+if test "x${r_cv_have_pcre_832}" != xyes; then
warn_pcre_version="pcre < 8.32 is deprecated"
AC_MSG_WARN([${warn_pcre_version}])
fi
])# R_PCRE
+## R_PCRE2
+## -------
+## Try finding pcre2 (8-bit) library and header.
+AC_DEFUN([R_PCRE2],
+[have_pcre2=no
+if "${PKGCONF}" --exists libpcre2-8; then
+ PCRE2_CPPFLAGS=`"${PKGCONF}" --cflags libpcre2-8`
+ PCRE2_LIBS=`"${PKGCONF}" --libs libpcre2-8`
+ have_pcre2=yes
+else
+ AC_PATH_PROG(PCRE2_CONFIG, pcre2-config)
+ if test -n "${PCRE2_CONFIG}"; then
+ PCRE2_CPPFLAGS=`"${PCRE2_CONFIG}" --cflags`
+ PCRE2_LIBS=`"${PCRE2_CONFIG}" --libs8`
+ have_pcre2=yes
+ fi
+fi
+if test "x${have_pcre2}" = "xyes"; then
+ r_save_CPPFLAGS="${CPPFLAGS}"
+ CPPFLAGS="${PCRE2_CPPFLAGS} ${CPPFLAGS}"
+ r_save_LIBS="${LIBS}"
+ LIBS="${PCRE2_LIBS} ${LIBS}"
+ AC_DEFINE([PCRE2_CODE_UNIT_WIDTH], [8], [PCRE2 code unit width wanted.])
+ AC_CHECK_HEADER(pcre2.h, [have_pcre2=yes], [have_pcre2=no])
+ if test "x${have_pcre2}" = "xyes"; then
+ AC_CHECK_LIB(pcre2-8, pcre2_compile_8, [have_pcre2=yes], [have_pcre2=no])
+ fi
+ if test "x${have_pcre2}" = "xyes"; then
+ AC_DEFINE(HAVE_PCRE2, 1, [Define if your system has pcre2.])
+ else
+ CPPFLAGS="${r_save_CPPFLAGS}"
+ LIBS="${r_save_LIBS}"
+ fi
+fi
+])# R_PCRE2
+
## R_BZLIB
## -------
## Try finding bzlib library and headers.
@@ -3533,6 +3570,50 @@ int main () {
if test "$r_cv_iconv_latin1" != yes; then
AC_MSG_ERROR([a suitable iconv is essential])
fi
+
+ AC_CACHE_CHECK([whether iconv accepts "CP1252"],
+ [r_cv_iconv_cp1252],
+ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include "confdefs.h"
+#include <stdlib.h>
+#ifdef HAVE_ICONV_H
+#include <iconv.h>
+#endif
+
+int main () {
+ iconv_t cd;
+ cd = iconv_open("CP1252","UTF-8");
+ if(cd == (iconv_t)(-1)) exit(1);
+ iconv_close(cd);
+ cd = iconv_open("UTF-8","CP1252");
+ if(cd == (iconv_t)(-1)) exit(1);
+ iconv_close(cd);
+ cd = iconv_open("CP1252", "");
+ if(cd == (iconv_t)(-1)) exit(1);
+ iconv_close(cd);
+ cd = iconv_open("","CP1252");