diff -Nru r-base-3.0.1/config.site r-base-3.1.1/config.site --- r-base-3.0.1/config.site 2012-07-07 08:05:37.000000000 +0000 +++ r-base-3.1.1/config.site 2014-06-04 22:15:07.000000000 +0000 @@ -229,11 +229,35 @@ ## read compressed archives. The default is to choose 'gtar' or ## 'gnutar'(normally GNU tar) then 'tar'. ## Note that 'bsdtar' (from the libarchive project) is known to create -## archives in a non-POSIX format that untar() cannot read, -## so should be avoided. +## archives in a non-POSIX format that other tars and untar() cannot +## read, so should be avoided. ## TAR= -## Library path +## Dynamic library path ## This is be default created from libraries added to LIBS. +## Used for DYLD_FALLBACK_LIBRARY_PATH on OS X and LD_LIBRARY_PATH elsewhere. ## Allow user to override. ## R_LD_LIBRARY_PATH= + +## C++11 compiler, optional for use in packages. +## Introduced in R 3.1.0 +## The command which runs the C++11 compiler: defaults to $(CXX), but +## empty if that (plus standard) cannot compile the tested C++11 code. +## CXX1X= + +## The 'standard' for the C++11 compilier, which is invoked as +## $(CXX1X) $(CXX1XSTD) for both compiling and linking DSOs/DLLs. +## '-std=c++11' and '-std=c++0x' are tried in turn by configure. +## '-std=gnu++11' is another possibility. +## Experimental support such as '-std=c++1y' could be used. +## CXX1XSTD= + +## Analogues for the C++11 compiler: default to the settings for C++ +## CXX1XFLAGS= +## CXX1XPICFLAGS= +## SHLIB_CXXIXLD= +## SHLIB_CXXiXLDFLAGS= + +## Additional libraries to link the internet module against. +## Some claim Solaris needs -lsocket -lnsl +## INTERNET_LIBS= diff -Nru r-base-3.0.1/configure r-base-3.1.1/configure --- r-base-3.0.1/configure 2013-05-08 22:06:02.000000000 +0000 +++ r-base-3.1.1/configure 2014-07-02 22:16:35.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for R 3.0.1. +# Generated by GNU Autoconf 2.69 for R 3.1.1. # # Report bugs to . # @@ -729,8 +729,8 @@ # Identity of this package. PACKAGE_NAME='R' PACKAGE_TARNAME='R' -PACKAGE_VERSION='3.0.1' -PACKAGE_STRING='R 3.0.1' +PACKAGE_VERSION='3.1.1' +PACKAGE_STRING='R 3.1.1' PACKAGE_BUGREPORT='http://bugs.r-project.org' PACKAGE_URL='http://www.r-project.org' @@ -840,7 +840,11 @@ custom_JAVA_CPPFLAGS custom_JAVA_HOME PAPERCONF +BUILD_TZONE_FALSE +BUILD_TZONE_TRUE R_PROFILING +BUILD_TRE_FALSE +BUILD_TRE_TRUE BUILD_PCRE_FALSE BUILD_PCRE_TRUE BUILD_XZ_FALSE @@ -894,6 +898,15 @@ ALLOCA R_OPENMP_FFLAGS R_OPENMP_CFLAGS +SHLIB_CXX1XLDFLAGS +SHLIB_CXX1XLD +CXX1XPICFLAGS +CXX1XFLAGS +CXX1XSTD +CXX1X +HAVE_CXX11 +STATICR2 +STATICR1 FW_VERSION LAPACK_LDFLAGS RLAPACK_LDFLAGS @@ -908,6 +921,7 @@ BUILD_CYGWIN_TRUE DYLIB_UNDEFINED_ALLOWED_FALSE DYLIB_UNDEFINED_ALLOWED_TRUE +INTERNET_LIBS XMKMF R_SYSTEM_ABI OBJCXXFLAGS @@ -980,6 +994,7 @@ CFLAGS CC PKGCONF +REALPATH NOTANGLE R_BZIPCMD R_GZIPCMD @@ -1152,8 +1167,10 @@ with_system_zlib with_system_bzlib with_system_pcre +with_system_tre with_system_xz with_valgrind_instrumentation +with_internal_tzcode with_recommended_packages with_ICU enable_byte_compiled_packages @@ -1225,6 +1242,12 @@ CXXCPP OBJC OBJCFLAGS +CXX1X +CXX1XSTD +CXX1XFLAGS +CXX1XPICFLAGS +SHLIB_CXX1XLD +SHLIB_CXX1XLDFLAGS XMKMF FC FCFLAGS' @@ -1768,7 +1791,7 @@ # 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.0.1 to adapt to many kinds of systems. +\`configure' configures R 3.1.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1843,7 +1866,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of R 3.0.1:";; + short | recursive ) echo "Configuration of R 3.1.1:";; esac cat <<\_ACEOF @@ -1856,7 +1879,7 @@ attempt to compile support for Rprofmem(), tracemem() [no] --enable-R-framework[=DIR] - MacOS X only: build R framework (if possible), and + OS X only: build R framework (if possible), and specify its installation prefix [yes, /Library/Frameworks] --enable-R-shlib build the shared/dynamic library 'libR' [no] @@ -1887,7 +1910,7 @@ --with-lapack use system LAPACK library (if available), or specify it [no] --with-readline use readline library [yes] - --with-aqua MacOS X only: use Aqua (if available) [yes] + --with-aqua OS X only: use Aqua (if available) [yes] --with-tcltk use Tcl/Tk (if available), or specify its library dir [yes] --with-tcl-config=TCL_CONFIG @@ -1901,10 +1924,12 @@ --with-system-zlib use system zlib library (if available) [no] --with-system-bzlib use system bzlib library (if available) [no] --with-system-pcre use system PCRE library (if available) [no] + --with-system-tre use system tre library (if available) [no] --with-system-xz use system xz (lzma) library (if available) [yes] --with-valgrind-instrumentation Level of additional instrumentation for Valgrind (0/1/2) [0] + --with-internal-tzcode use internal time-zone code [no] --with-recommended-packages use/install recommended R packages [yes] --with-ICU use ICU library (if available) [yes] @@ -1991,6 +2016,18 @@ CXXCPP C++ preprocessor OBJC Objective C compiler command OBJCFLAGS Objective C compiler flags + CXX1X C++11 compiler command + CXX1XSTD special flag for compiling and for linking C++11 code, e.g. + -std=c++11 + CXX1XFLAGS C++11 compiler flags + CXX1XPICFLAGS + special flags for compiling C++11 code to be turned into a + shared object + SHLIB_CXX1XLD + command for linking shared objects which contain object files + from the C++11 compiler + SHLIB_CXX1XLDFLAGS + special flags used by SHLIB_CXX1XLD XMKMF Path to xmkmf, Makefile generator for X Window System FC Fortran compiler command FCFLAGS Fortran compiler flags @@ -2062,7 +2099,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -R configure 3.0.1 +R configure 3.1.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -3214,7 +3251,7 @@ 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.0.1, which was +It was created by R $as_me 3.1.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3723,13 +3760,13 @@ ## exclude some unsupported OSes case "${host_os}" in ## Darwin 1.3.1 was OS X 10.0, 1.4.1 was 10.1, 5 is 10.2 etc - ## with 11 being 10.7. We no longer support < 10.4 (Tiger) + ## with 13 being 10.9. We no longer support < 10.4 (Tiger) ## http://en.wikipedia.org/wiki/Darwin_OS darwin1.*) - as_fn_error $? "The earliest supported MacOS X is 10.4. + as_fn_error $? "The earliest supported OS X is 10.4. ;; darwin567*" "$LINENO" 5 - as_fn_error $? "The earliest supported MacOS X is 10.4. + as_fn_error $? "The earliest supported OS X is 10.4. ;; aix123*|aix4.01*" "$LINENO" 5 ## These need a form of linking we no longer support @@ -3911,7 +3948,7 @@ ## Allow the user to specify building R as a shared library. -## (but a 'dynamic library' in the terminology of Mac OS X). +## (but a 'dynamic library' in the terminology of OS X). ## ## Building a framework implies building R shared libraries, hence the ## strange default. @@ -4062,7 +4099,7 @@ use_blas=unset fi -# default is "no" except on MacOS X +# default is "no" except on OS X ## LAPACK. @@ -4078,7 +4115,7 @@ use_lapack=unset fi -# default is "no" except on MacOS X +# default is "no" except on OS X ## Readline. @@ -4237,6 +4274,19 @@ fi +# Check whether --with-system-tre was given. +if test "${with_system_tre+set}" = set; then : + withval=$with_system_tre; if test "${withval}" = no; then + use_system_tre=no +else + use_system_tre=yes +fi + +else + use_system_tre=no +fi + + # Check whether --with-system-xz was given. if test "${with_system_xz+set}" = set; then : withval=$with_system_xz; if test "${withval}" = no; then @@ -4260,6 +4310,16 @@ fi + +# Check whether --with-internal-tzcode was given. +if test "${with_internal_tzcode+set}" = set; then : + withval=$with_internal_tzcode; use_internal_tzcode=${withval} +else + use_internal_tzcode=default +fi + + + ## ## Completely disable using libtool for building shlibs until libtool ## fully supports Fortran and C++. @@ -5355,15 +5415,30 @@ done test -n "$KPSEWHICH" || KPSEWHICH="""" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for latex inconsolata package" >&5 +$as_echo_n "checking for latex inconsolata package... " >&6; } r_rd4pdf="times,inconsolata,hyper" if test -n "${KPSEWHICH}"; then - if test -z `${KPSEWHICH} inconsolata.sty`; then - r_rd4pdf="times,hyper" - if test -z "${R_RD4PDF}" ; then - warn_pdf3="inconsolata.sty not found: PDF vignettes and package manuals will not be rendered optimally" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ${warn_pdf3}" >&5 + ${KPSEWHICH} zi4.sty > /dev/null + if test $? -eq 0; then + r_rd4pdf="times,inconsolata,hyper" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found zi4.sty" >&5 +$as_echo "found zi4.sty" >&6; } + else + ${KPSEWHICH} inconsolata.sty > /dev/null + if test $? -ne 0; then + r_rd4pdf="times,hyper" + if test -z "${R_RD4PDF}" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: missing" >&5 +$as_echo "missing" >&6; } + warn_pdf3="neither inconsolata.sty nor zi4.sty found: PDF vignettes and package manuals will not be rendered optimally" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ${warn_pdf3}" >&5 $as_echo "$as_me: WARNING: ${warn_pdf3}" >&2;} - fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found insonsolata.sty" >&5 +$as_echo "found insonsolata.sty" >&6; } + fi fi fi : ${R_RD4PDF=${r_rd4pdf}} @@ -5707,6 +5782,49 @@ fi +## javareconf needs this +# Extract the first word of "realpath", so it can be a program name with args. +set dummy realpath; 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_REALPATH+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $REALPATH in + [\\/]* | ?:[\\/]*) + ac_cv_path_REALPATH="$REALPATH" # 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_REALPATH="$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 + + test -z "$ac_cv_path_REALPATH" && ac_cv_path_REALPATH="false" + ;; +esac +fi +REALPATH=$ac_cv_path_REALPATH +if test -n "$REALPATH"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $REALPATH" >&5 +$as_echo "$REALPATH" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + ## cairographics needs pkg-config # Extract the first word of "pkg-config ", so it can be a program name with args. @@ -8022,7 +8140,7 @@ $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h - ## needed to libintl + ## needed for libintl ac_ext=m ac_cpp='$OBJCPP $CPPFLAGS' @@ -8449,8 +8567,8 @@ OBJCXX="${r_cv_OBJCXX}" if test -z "${OBJCXX}"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no working compiler found" >&5 -$as_echo "no working compiler found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no working ObjC++ compiler found" >&5 +$as_echo "no working ObjC++ compiler found" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${OBJCXX}" >&5 $as_echo "${OBJCXX}" >&6; } @@ -8968,13 +9086,13 @@ else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:8971: $ac_compile\"" >&5) + (eval echo "\"\$as_me:9089: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:8974: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:9092: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:8977: output\"" >&5) + (eval echo "\"\$as_me:9095: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -11826,11 +11944,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:11829: $lt_compile\"" >&5) + (eval echo "\"\$as_me:11947: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:11833: \$? = $ac_status" >&5 + echo "$as_me:11951: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -12165,11 +12283,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12168: $lt_compile\"" >&5) + (eval echo "\"\$as_me:12286: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:12172: \$? = $ac_status" >&5 + echo "$as_me:12290: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -12270,11 +12388,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12273: $lt_compile\"" >&5) + (eval echo "\"\$as_me:12391: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:12277: \$? = $ac_status" >&5 + echo "$as_me:12395: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -12325,11 +12443,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12328: $lt_compile\"" >&5) + (eval echo "\"\$as_me:12446: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:12332: \$? = $ac_status" >&5 + echo "$as_me:12450: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -14692,7 +14810,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 14695 "configure" +#line 14813 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -14788,7 +14906,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 14791 "configure" +#line 14909 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -16737,11 +16855,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16740: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16858: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:16744: \$? = $ac_status" >&5 + echo "$as_me:16862: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -16836,11 +16954,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16839: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16957: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:16843: \$? = $ac_status" >&5 + echo "$as_me:16961: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -16888,11 +17006,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16891: $lt_compile\"" >&5) + (eval echo "\"\$as_me:17009: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:16895: \$? = $ac_status" >&5 + echo "$as_me:17013: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -18268,11 +18386,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:18271: $lt_compile\"" >&5) + (eval echo "\"\$as_me:18389: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:18275: \$? = $ac_status" >&5 + echo "$as_me:18393: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -18367,11 +18485,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:18370: $lt_compile\"" >&5) + (eval echo "\"\$as_me:18488: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:18374: \$? = $ac_status" >&5 + echo "$as_me:18492: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -18419,11 +18537,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:18422: $lt_compile\"" >&5) + (eval echo "\"\$as_me:18540: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:18426: \$? = $ac_status" >&5 + echo "$as_me:18544: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -20605,7 +20723,7 @@ case "${host_os}" in darwin*) - ## MacOS <= 10.2 dlcompat, >= 10.3 included dlcompat in libSystem + ## OS X <= 10.2 dlcompat, >= 10.3 included dlcompat in libSystem { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 $as_echo_n "checking for library containing dlopen... " >&6; } if ${ac_cv_search_dlopen+:} false; then : @@ -20996,7 +21114,7 @@ use_readline="${ac_cv_lib_readline_rl_callback_read_char}" fi - ## the NetBSD version as used in MacOS X does not have this + ## the NetBSD version as used in OS X does not have this for ac_func in history_truncate_file do : ac_fn_c_check_func "$LINENO" "history_truncate_file" "ac_cv_func_history_truncate_file" @@ -21392,7 +21510,8 @@ ## sys/param.h is one way to get PATH_MAX. ## sched.h is POSIX, but we use it for Linux-specific features (affinity) for ac_header in arpa/inet.h dl.h dlfcn.h elf.h fcntl.h floatingpoint.h \ - fpu_control.h glob.h grp.h netdb.h netinet/in.h pwd.h sched.h strings.h \ + fpu_control.h glob.h grp.h langinfo.h \ + netdb.h netinet/in.h pwd.h sched.h strings.h \ sys/param.h sys/resource.h sys/select.h sys/socket.h \ sys/stat.h sys/time.h sys/times.h sys/utsname.h unistd.h utime.h do : @@ -21572,6 +21691,25 @@ ;; esac +ac_fn_c_check_type "$LINENO" "int64_t" "ac_cv_type_int64_t" "$ac_includes_default" +if test "x$ac_cv_type_int64_t" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_INT64_T 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "int_fast64_t" "ac_cv_type_int_fast64_t" "$ac_includes_default" +if test "x$ac_cv_type_int_fast64_t" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_INT_FAST64_T 1 +_ACEOF + + +fi + ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : @@ -23114,7 +23252,7 @@ # flags. r_save_CFLAGS=$CFLAGS CFLAGS="$CFLAGS $r_verb" -(eval echo $as_me:23117: \"$ac_link\") >&5 +(eval echo $as_me:23255: \"$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 @@ -23189,7 +23327,7 @@ # flags. r_save_CFLAGS=$CFLAGS CFLAGS="$CFLAGS $r_cv_prog_c_v" -(eval echo $as_me:23192: \"$ac_link\") >&5 +(eval echo $as_me:23330: \"$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 @@ -25976,7 +26114,7 @@ ## We need to determine the following: ## -## MAIN_LD, MAINLD_FLAGS +## MAIN_LD, MAIN_LDFLAGS ## command and flags for loading the main binary so that it will load ## shared objects (DLLs) at runtime, also for profiling. ## CPICFLAGS, CXXPICFLAGS, FPICFLAGS, FCPICFLAGS @@ -26196,7 +26334,7 @@ esac fi ## some linkers are broken and need to be set to a specific - ## Mac OS X version to work better + ## OS X version to work better case "${host_os}" in darwin8*) # this is the 'old' way and it doesn't work with recent gcc as the driver @@ -26357,7 +26495,10 @@ esac ## Luke Tierney says that just '-export-dynamic' does not work for ## Intel compilers (icc). + ## Could also use -rdynamic main_ldflags="-Wl,--export-dynamic" + STATICR1="-Wl,--whole-archive" + STATICR2="-Wl,--no-whole-archive" ;; mingw*) SHLIB_EXT=".dll" @@ -26605,6 +26746,10 @@ fi fi +## some claim Solaris needs -lsocket -lnsl (PR#15815) +: ${INTERNET_LIBS="${internet_libs}"} + + if test "x${dylib_undefined_allowed}" = xyes; then DYLIB_UNDEFINED_ALLOWED_TRUE= DYLIB_UNDEFINED_ALLOWED_FALSE='#' @@ -26656,6 +26801,180 @@ + + +## C++11 and later +r_save_CXX="${CXX}" +r_save_CXXFLAGS="${CXXFLAGS}" + +: ${CXX1X=${CXX}} +: ${CXX1XFLAGS=${CXXFLAGS}} +: ${CXX1XPICFLAGS=${CXXPICFLAGS}} + +CXX="${CXX1X} ${CXX1XSTD}" +CXXFLAGS="${CXX1XFLAGS} ${CXX1XPICFLAGS}" +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + ax_cxx_compile_cxx11_required=falsednl + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + ac_success=no + { $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. */ + + template + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + typedef check> right_angle_brackets; + + int a; + decltype(a) b; + + typedef check check_type; + check_type c; + check_type&& cr = static_cast(c); + + auto d = a; + +_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 + + + + if test x$ac_success = xno; then + for switch in -std=c++11 -std=c++0x; 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; } +if eval \${$cachevar+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $switch" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + template + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + typedef check> right_angle_brackets; + + int a; + decltype(a) b; + + typedef check check_type; + check_type c; + check_type&& cr = static_cast(c); + + auto d = a; + +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + eval $cachevar=yes +else + eval $cachevar=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CXXFLAGS="$ac_save_CXXFLAGS" +fi +eval ac_res=\$$cachevar + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + if eval test x\$$cachevar = xyes; then + CXXFLAGS="$CXXFLAGS $switch" + ac_success=yes + break + fi + done + fi + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x$ax_cxx_compile_cxx11_required = xtrue; then + if test x$ac_success = xno; then + as_fn_error $? "*** A compiler with support for C++11 language features is required." "$LINENO" 5 + fi + else + if test x$ac_success = xno; then + HAVE_CXX11=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: No compiler with C++11 support was found" >&5 +$as_echo "$as_me: No compiler with C++11 support was found" >&6;} + else + HAVE_CXX11=1 + +$as_echo "#define HAVE_CXX11 1" >>confdefs.h + + fi + + + fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +CXX="${r_save_CXX}" +CXXFLAGS="${r_save_CXXFLAGS}" +if test "${HAVE_CXX11}" = "1"; then + CXX1XSTD="${CXX1XSTD} ${switch}" +else + CXX1X="" + CXX1XSTD="" + CXX1XFLAGS="" + CXX1XPICFLAGS="" +fi + + + + + +if test -z "${SHLIB_CXX1XLD}"; then + SHLIB_CXX1XLD="\$(CXX1X) \$(CXX1XSTD)" +fi + +: ${SHLIB_CXX1XLDFLAGS=${SHLIB_CXXLDFLAGS}} + + + + + + + + + + ### OpenMP. ## The basic checking is performed via AC_OPENMP added in Autoconf 2.62, @@ -27099,6 +27418,93 @@ done +## Solaris libsunmath +for ac_header in sunmath.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sunmath.h" "ac_cv_header_sunmath_h" "$ac_includes_default" +if test "x$ac_cv_header_sunmath_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SUNMATH_H 1 +_ACEOF + +fi + +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cospi in -lsunmath" >&5 +$as_echo_n "checking for cospi in -lsunmath... " >&6; } +if ${ac_cv_lib_sunmath_cospi+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsunmath $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 cospi (); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +return cospi (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sunmath_cospi=yes +else + ac_cv_lib_sunmath_cospi=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_sunmath_cospi" >&5 +$as_echo "$ac_cv_lib_sunmath_cospi" >&6; } +if test "x$ac_cv_lib_sunmath_cospi" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSUNMATH 1 +_ACEOF + + LIBS="-lsunmath $LIBS" + +fi + + +## Functions from draft C11 extensions, some of which are already in glibc +## For now, do not define _GNU_SOURCE here. +## All but pown have long been in libsunmath +for ac_func in atanpi atan2pi cospi exp10 pown sinpi tanpi +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#include +#ifdef HAVE_SUNMATH_H +#include +#endif +fi +done + + ## fseeko/ftello are POSIX, may be macros ## matherr is SVID, redefined in arithmetic.c if present for ac_func in fseeko ftello matherr @@ -27622,6 +28028,106 @@ fi done +for ac_func in gmtime_r localtime_r +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 + +#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 + +for ac_func in nl_langinfo +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 + +#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 + for ac_func in access chdir execv ftruncate getcwd geteuid getuid link readlink symlink sysconf do as_ac_Symbol=`$as_echo "ac_cv_have_decl_$ac_func" | $as_tr_sh` @@ -27776,7 +28282,7 @@ fi done -## clock_gettime is POSIX 1993, but not on MacOS X +## clock_gettime is POSIX 1993, but not on OS X ## Some OSes need -lrt: Linux (for glibc versions before 2.17), Solaris, ## not FreeBSD. ## Unsurprising, as POSIX 2008 moved it from its timers section to base. @@ -28896,6 +29402,62 @@ fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mktime works correctly outside 1902-2037" >&5 +$as_echo_n "checking whether mktime works correctly outside 1902-2037... " >&6; } +if ${r_cv_working_mktime+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + r_cv_working_mktime=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +main() { + if(sizeof(time_t) < 8) exit(1); + + struct tm tm; + time_t res; + putenv("TZ=Europe/London"); + tm.tm_sec = tm.tm_min = 0; tm.tm_hour = 12; + tm.tm_mday = 1; tm.tm_mon = 0; tm.tm_year = 80; tm.tm_isdst = 0; + res = mktime(&tm); + if(res == (time_t)-1) exit(2); + tm.tm_mday = 1; tm.tm_year = 01; tm.tm_isdst = 0; + res = mktime(&tm); + if(res == (time_t)-1) exit(3); + tm.tm_year = 140; + res = mktime(&tm); + if(res != 2209032000L) exit(4); + tm.tm_mon = 6; tm.tm_isdst = 1; + res = mktime(&tm); + if(res != 2224753200L) exit(5); + + exit(0); +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + r_cv_working_mktime=yes +else + r_cv_working_mktime=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_working_mktime" >&5 +$as_echo "$r_cv_working_mktime" >&6; } +if test "x${r_cv_working_mktime}" = xyes; then + +$as_echo "#define HAVE_WORKING_64BIT_MKTIME 1" >>confdefs.h + +fi + ac_fn_c_check_header_mongrel "$LINENO" "complex.h" "ac_cv_header_complex_h" "$ac_includes_default" if test "x$ac_cv_header_complex_h" = xyes; then : @@ -28975,9 +29537,77 @@ +## BSD extensions +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether 'struct tm' includes tm_zone" >&5 +$as_echo_n "checking whether 'struct tm' includes tm_zone... " >&6; } +if ${r_cv_have_tm_zone+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +// glibc needs this defined. +#define _BSD_SOURCE +#include + +int main() { + struct tm x; + x.tm_zone = ""; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + r_cv_have_tm_zone=yes +else + r_cv_have_tm_zone=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $r_cv_have_tm_zone" >&5 +$as_echo "$r_cv_have_tm_zone" >&6; } +if test "x${r_cv_have_tm_zone}" = xyes; then + +$as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether 'struct tm' includes tm_gmtoff" >&5 +$as_echo_n "checking whether 'struct tm' includes tm_gmtoff... " >&6; } +if ${r_cv_have_tm_gmtoff+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +// glibc needs this defined. +#define _BSD_SOURCE +#include + +int main() { + struct tm x; + x.tm_gmtoff = +3600; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + r_cv_have_tm_gmtoff=yes +else + r_cv_have_tm_gmtoff=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $r_cv_have_tm_gmtoff" >&5 +$as_echo "$r_cv_have_tm_gmtoff" >&6; } +if test "x${r_cv_have_tm_gmtoff}" = xyes; then + +$as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h + +fi + + ## check for vecLib framework (potentially to be used for BLAS) ## in theory vecLib is platform-independent, in practice only -## Apple's Mac OS X is known to provide it +## Apple's OS X is known to provide it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cblas_cdotu_sub in vecLib framework" >&5 $as_echo_n "checking for cblas_cdotu_sub in vecLib framework... " >&6; } if ${r_cv_check_fw_vecLib+:} false; then : @@ -29994,7 +30624,7 @@ ## LAPACK. -## The default has already been set on MacOS X: otherwise it is "no" +## The default has already been set on OS X: otherwise it is "no" ## and so this test fails. if test "${use_lapack}" = "yes"; then @@ -32026,7 +32656,7 @@ CAIROX11_CPPFLAGS=`"${PKGCONF}" --cflags ${xmodlist}` case "${host_os}" in darwin*) - ## This is for static MacOS build + ## This is for static OS X build CAIRO_LIBS=`"${PKGCONF}" --static --libs ${modlist}` CAIROX11_LIBS=`"${PKGCONF}" --static --libs ${xmodlist}` ;; @@ -33725,8 +34355,8 @@ fi if test "x${have_lzma}" = xyes; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if lzma version >= 4.999" >&5 -$as_echo_n "checking if lzma version >= 4.999... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if lzma version >= 5.0.3" >&5 +$as_echo_n "checking if lzma version >= 5.0.3... " >&6; } if ${r_cv_have_lzma+:} false; then : $as_echo_n "(cached) " >&6 else @@ -33750,7 +34380,9 @@ #include int main() { unsigned int ver = lzma_version_number(); - exit(ver < 49990000); + // This is 10000000*major + 10000*minor + 10*revision + [012] + // I.e. xyyyzzzs and 5.1.2 would be 50010020 + exit(ver < 50000030); } _ACEOF @@ -33939,6 +34571,93 @@ +## 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 +$as_echo_n "checking for tre_regncompb in -ltre... " >&6; } +if ${ac_cv_lib_tre_tre_regncompb+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ltre $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 tre_regncompb (); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +return tre_regncompb (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_tre_tre_regncompb=yes +else + ac_cv_lib_tre_tre_regncompb=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_tre_tre_regncompb" >&5 +$as_echo "$ac_cv_lib_tre_tre_regncompb" >&6; } +if test "x$ac_cv_lib_tre_tre_regncompb" = xyes; then : + have_tre=yes +else + have_tre=no +fi + + if test "${have_tre}" = yes; then + for ac_header in tre/tre.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "tre/tre.h" "ac_cv_header_tre_tre_h" "$ac_includes_default" +if test "x$ac_cv_header_tre_tre_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_TRE_TRE_H 1 +_ACEOF + have_tre=yes +else + have_tre=no +fi + +done + + fi +if test "x${have_tre}" = xyes; then + +$as_echo "#define HAVE_TRE 1" >>confdefs.h + + LIBS="-ltre ${LIBS}" +fi +else + have_tre="no" +fi + if test x${have_tre} != xyes; then + BUILD_TRE_TRUE= + BUILD_TRE_FALSE='#' +else + BUILD_TRE_TRUE='#' + BUILD_TRE_FALSE= +fi + + + ## POSIX times. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether leap seconds are treated according to POSIX" >&5 $as_echo_n "checking whether leap seconds are treated according to POSIX... " >&6; } @@ -34518,6 +35237,29 @@ _ACEOF +if test x${use_internal_tzcode} = xdefault; then +case "${host_os}" in + darwin*) + use_internal_tzcode=yes; + ;; +esac +fi + +if test "x${use_internal_tzcode}" = xyes; then + +$as_echo "#define USE_INTERNAL_MKTIME 1" >>confdefs.h + +fi + if test "x${use_internal_tzcode}" = xyes; then + BUILD_TZONE_TRUE= + BUILD_TZONE_FALSE='#' +else + BUILD_TZONE_TRUE='#' + BUILD_TZONE_FALSE= +fi + + + ## KERN_USRSTACK support (BSD, Darwin, ...) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether KERN_USRSTACK sysctl is supported" >&5 @@ -35743,11 +36485,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:35746: $lt_compile\"" >&5) + (eval echo "\"\$as_me:36488: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:35750: \$? = $ac_status" >&5 + echo "$as_me:36492: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -35842,11 +36584,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:35845: $lt_compile\"" >&5) + (eval echo "\"\$as_me:36587: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:35849: \$? = $ac_status" >&5 + echo "$as_me:36591: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -35894,11 +36636,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:35897: $lt_compile\"" >&5) + (eval echo "\"\$as_me:36639: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:35901: \$? = $ac_status" >&5 + echo "$as_me:36643: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -39238,7 +39980,7 @@ LTLIBTHREAD= fi fi - # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the + # OSF/1 4.0 and OS X 10.1 lack the pthread_rwlock_t type and the # pthread_rwlock_* functions. ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include " @@ -42079,7 +42821,7 @@ ac_config_headers="$ac_config_headers src/include/config.h" -ac_config_files="$ac_config_files Makeconf Makefile doc/Makefile doc/html/Makefile doc/manual/Makefile etc/Makefile etc/Makeconf etc/Renviron etc/javaconf etc/ldpaths m4/Makefile po/Makefile share/Makefile src/Makefile src/appl/Makefile src/extra/Makefile src/extra/blas/Makefile src/extra/bzip2/Makefile src/extra/intl/Makefile src/extra/pcre/Makefile src/extra/tre/Makefile src/extra/xdr/Makefile src/extra/xz/Makefile src/extra/zlib/Makefile src/include/Makefile src/include/Rmath.h0 src/include/R_ext/Makefile src/library/Recommended/Makefile src/library/Makefile src/library/base/DESCRIPTION src/library/base/Makefile src/library/compiler/DESCRIPTION src/library/compiler/Makefile src/library/datasets/DESCRIPTION src/library/datasets/Makefile src/library/graphics/DESCRIPTION src/library/graphics/Makefile src/library/graphics/src/Makefile src/library/grDevices/DESCRIPTION src/library/grDevices/Makefile src/library/grDevices/src/Makefile src/library/grDevices/src/cairo/Makefile src/library/grid/DESCRIPTION src/library/grid/Makefile src/library/grid/src/Makefile src/library/methods/DESCRIPTION src/library/methods/Makefile src/library/methods/src/Makefile src/library/parallel/DESCRIPTION src/library/parallel/Makefile src/library/parallel/src/Makefile src/library/profile/Makefile src/library/stats/DESCRIPTION src/library/stats/Makefile src/library/stats/src/Makefile src/library/stats4/DESCRIPTION src/library/stats4/Makefile src/library/splines/DESCRIPTION src/library/splines/Makefile src/library/splines/src/Makefile src/library/tcltk/DESCRIPTION src/library/tcltk/Makefile src/library/tcltk/src/Makefile src/library/tools/DESCRIPTION src/library/tools/Makefile src/library/tools/src/Makefile src/library/translations/DESCRIPTION src/library/translations/Makefile src/library/utils/DESCRIPTION src/library/utils/Makefile src/library/utils/src/Makefile src/main/Makefile src/modules/Makefile src/modules/X11/Makefile src/modules/internet/Makefile src/modules/lapack/Makefile src/modules/vfonts/Makefile src/nmath/Makefile src/nmath/standalone/Makefile src/scripts/Makefile src/scripts/R.sh src/scripts/Rcmd src/scripts/f77_f2c src/scripts/mkinstalldirs src/scripts/pager src/unix/Makefile tests/Makefile tests/Embedding/Makefile tests/Examples/Makefile tests/Native/Makefile tools/Makefile" +ac_config_files="$ac_config_files Makeconf Makefile doc/Makefile doc/html/Makefile doc/manual/Makefile etc/Makefile etc/Makeconf etc/Renviron etc/javaconf etc/ldpaths m4/Makefile po/Makefile share/Makefile src/Makefile src/appl/Makefile src/extra/Makefile src/extra/blas/Makefile src/extra/bzip2/Makefile src/extra/intl/Makefile src/extra/pcre/Makefile src/extra/tre/Makefile src/extra/tzone/Makefile src/extra/xdr/Makefile src/extra/xz/Makefile src/extra/zlib/Makefile src/include/Makefile src/include/Rmath.h0 src/include/R_ext/Makefile src/library/Recommended/Makefile src/library/Makefile src/library/base/DESCRIPTION src/library/base/Makefile src/library/compiler/DESCRIPTION src/library/compiler/Makefile src/library/datasets/DESCRIPTION src/library/datasets/Makefile src/library/graphics/DESCRIPTION src/library/graphics/Makefile src/library/graphics/src/Makefile src/library/grDevices/DESCRIPTION src/library/grDevices/Makefile src/library/grDevices/src/Makefile src/library/grDevices/src/cairo/Makefile src/library/grid/DESCRIPTION src/library/grid/Makefile src/library/grid/src/Makefile src/library/methods/DESCRIPTION src/library/methods/Makefile src/library/methods/src/Makefile src/library/parallel/DESCRIPTION src/library/parallel/Makefile src/library/parallel/src/Makefile src/library/profile/Makefile src/library/stats/DESCRIPTION src/library/stats/Makefile src/library/stats/src/Makefile src/library/stats4/DESCRIPTION src/library/stats4/Makefile src/library/splines/DESCRIPTION src/library/splines/Makefile src/library/splines/src/Makefile src/library/tcltk/DESCRIPTION src/library/tcltk/Makefile src/library/tcltk/src/Makefile src/library/tools/DESCRIPTION src/library/tools/Makefile src/library/tools/src/Makefile src/library/translations/DESCRIPTION src/library/translations/Makefile src/library/utils/DESCRIPTION src/library/utils/Makefile src/library/utils/src/Makefile src/main/Makefile src/modules/Makefile src/modules/X11/Makefile src/modules/internet/Makefile src/modules/lapack/Makefile src/modules/vfonts/Makefile src/nmath/Makefile src/nmath/standalone/Makefile src/scripts/Makefile src/scripts/R.sh src/scripts/Rcmd src/scripts/f77_f2c src/scripts/javareconf src/scripts/mkinstalldirs src/scripts/pager src/scripts/rtags src/unix/Makefile tests/Makefile tests/Embedding/Makefile tests/Examples/Makefile tools/Makefile" ac_config_commands="$ac_config_commands stamp-h" @@ -42300,6 +43042,14 @@ as_fn_error $? "conditional \"BUILD_PCRE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${BUILD_TRE_TRUE}" && test -z "${BUILD_TRE_FALSE}"; then + as_fn_error $? "conditional \"BUILD_TRE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_TZONE_TRUE}" && test -z "${BUILD_TZONE_FALSE}"; then + as_fn_error $? "conditional \"BUILD_TZONE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${USE_RECOMMENDED_PACKAGES_TRUE}" && test -z "${USE_RECOMMENDED_PACKAGES_FALSE}"; then as_fn_error $? "conditional \"USE_RECOMMENDED_PACKAGES\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -42709,7 +43459,7 @@ # 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.0.1, which was +This file was extended by R $as_me 3.1.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -42776,7 +43526,7 @@ 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.0.1 +R config.status 3.1.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -43446,6 +44196,7 @@ "src/extra/intl/Makefile") CONFIG_FILES="$CONFIG_FILES src/extra/intl/Makefile" ;; "src/extra/pcre/Makefile") CONFIG_FILES="$CONFIG_FILES src/extra/pcre/Makefile" ;; "src/extra/tre/Makefile") CONFIG_FILES="$CONFIG_FILES src/extra/tre/Makefile" ;; + "src/extra/tzone/Makefile") CONFIG_FILES="$CONFIG_FILES src/extra/tzone/Makefile" ;; "src/extra/xdr/Makefile") CONFIG_FILES="$CONFIG_FILES src/extra/xdr/Makefile" ;; "src/extra/xz/Makefile") CONFIG_FILES="$CONFIG_FILES src/extra/xz/Makefile" ;; "src/extra/zlib/Makefile") CONFIG_FILES="$CONFIG_FILES src/extra/zlib/Makefile" ;; @@ -43508,13 +44259,14 @@ "src/scripts/R.sh") CONFIG_FILES="$CONFIG_FILES src/scripts/R.sh" ;; "src/scripts/Rcmd") CONFIG_FILES="$CONFIG_FILES src/scripts/Rcmd" ;; "src/scripts/f77_f2c") CONFIG_FILES="$CONFIG_FILES src/scripts/f77_f2c" ;; + "src/scripts/javareconf") CONFIG_FILES="$CONFIG_FILES src/scripts/javareconf" ;; "src/scripts/mkinstalldirs") CONFIG_FILES="$CONFIG_FILES src/scripts/mkinstalldirs" ;; "src/scripts/pager") CONFIG_FILES="$CONFIG_FILES src/scripts/pager" ;; + "src/scripts/rtags") CONFIG_FILES="$CONFIG_FILES src/scripts/rtags" ;; "src/unix/Makefile") CONFIG_FILES="$CONFIG_FILES src/unix/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; "tests/Embedding/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Embedding/Makefile" ;; "tests/Examples/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Examples/Makefile" ;; - "tests/Native/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Native/Makefile" ;; "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; "stamp-h") CONFIG_COMMANDS="$CONFIG_COMMANDS stamp-h" ;; @@ -45272,6 +46024,7 @@ ## r_c_compiler="${CC} ${R_XTRA_CFLAGS} ${CFLAGS}" r_cxx_compiler="${CXX} ${R_XTRA_CXXFLAGS} ${CXXFLAGS}" +r_cxx1x_compiler="${CXX1X} ${CXX1XSTD} ${CXX1XFLAGS}" r_f77_compiler="${F77} ${R_XTRA_FFLAGS} ${FFLAGS}" r_f95_compiler="${FC} ${FCFLAGS}" r_objc_compiler="${OBJC} ${OBJCFLAGS}" @@ -45491,6 +46244,7 @@ Fortran 77 compiler: ${r_f77_compiler} C++ compiler: ${r_cxx_compiler} + C++ 11 compiler: ${r_cxx1x_compiler} Fortran 90/95 compiler: ${r_f95_compiler} Obj-C compiler: ${r_objc_compiler} @@ -45511,6 +46265,7 @@ Fortran 77 compiler: ${r_f77_compiler} C++ compiler: ${r_cxx_compiler} + C++ 11 compiler: ${r_cxx1x_compiler} Fortran 90/95 compiler: ${r_f95_compiler} Obj-C compiler: ${r_objc_compiler} diff -Nru r-base-3.0.1/configure.ac r-base-3.1.1/configure.ac --- r-base-3.0.1/configure.ac 2013-03-24 23:05:05.000000000 +0000 +++ r-base-3.1.1/configure.ac 2014-06-13 22:15:18.000000000 +0000 @@ -2,7 +2,7 @@ ### ### Process this file with autoconf to produce a configure script. ### -### Copyright (C) 1998-2011 R Core Team +### Copyright (C) 1998-2014 R Core Team ### ### This file is part of R. ### @@ -76,13 +76,13 @@ ## exclude some unsupported OSes case "${host_os}" in ## Darwin 1.3.1 was OS X 10.0, 1.4.1 was 10.1, 5 is 10.2 etc - ## with 11 being 10.7. We no longer support < 10.4 (Tiger) + ## with 13 being 10.9. We no longer support < 10.4 (Tiger) ## http://en.wikipedia.org/wiki/Darwin_OS darwin1.*) - AC_MSG_ERROR([The earliest supported MacOS X is 10.4.] + AC_MSG_ERROR([The earliest supported OS X is 10.4.] ;; darwin[[567]]*) - AC_MSG_ERROR([The earliest supported MacOS X is 10.4.] + AC_MSG_ERROR([The earliest supported OS X is 10.4.] ;; aix[123]*|aix4.[01]*) ## These need a form of linking we no longer support @@ -220,7 +220,7 @@ ## Allow the user to specify building an R framework (Darwin). AC_ARG_ENABLE([R-framework], -[AS_HELP_STRING([--enable-R-framework@<:@=DIR@:>@],[MacOS X only: build R framework (if possible), and specify +[AS_HELP_STRING([--enable-R-framework@<:@=DIR@:>@],[OS X only: build R framework (if possible), and specify its installation prefix @<:@yes, /Library/Frameworks@:>@])], [want_R_framework="${enableval}"], [want_R_framework=yes]) @@ -253,7 +253,7 @@ AM_CONDITIONAL(WANT_R_FRAMEWORK, [test "x${want_R_framework}" = xyes]) ## Allow the user to specify building R as a shared library. -## (but a 'dynamic library' in the terminology of Mac OS X). +## (but a 'dynamic library' in the terminology of OS X). ## ## Building a framework implies building R shared libraries, hence the ## strange default. @@ -339,14 +339,14 @@ [AS_HELP_STRING([--with-blas],[use system BLAS library (if available), or specify it @<:@no@:>@])], [R_ARG_USE(blas)], [use_blas=unset]) -# default is "no" except on MacOS X +# default is "no" except on OS X ## LAPACK. AC_ARG_WITH([lapack], [AS_HELP_STRING([--with-lapack],[use system LAPACK library (if available), or specify it @<:@no@:>@])], [R_ARG_USE(lapack)], [use_lapack=unset]) -# default is "no" except on MacOS X +# default is "no" except on OS X ## Readline. AC_ARG_WITH([readline], @@ -356,7 +356,7 @@ ## Aqua. AC_ARG_WITH([aqua], -[AS_HELP_STRING([--with-aqua],[MacOS X only: use Aqua (if available) @<:@yes@:>@])], +[AS_HELP_STRING([--with-aqua],[OS X only: use Aqua (if available) @<:@yes@:>@])], [if test "${withval}" = no; then want_aqua=no else @@ -420,6 +420,10 @@ [AS_HELP_STRING([--with-system-pcre],[use system PCRE library (if available) @<:@no@:>@])], [R_ARG_USE_SYSTEM(pcre)], [use_system_pcre=no]) +AC_ARG_WITH([system-tre], +[AS_HELP_STRING([--with-system-tre],[use system tre library (if available) @<:@no@:>@])], +[R_ARG_USE_SYSTEM(tre)], +[use_system_tre=no]) AC_ARG_WITH([system-xz], [AS_HELP_STRING([--with-system-xz],[use system xz (lzma) library (if available) @<:@yes@:>@])], [R_ARG_USE_SYSTEM(xz)], @@ -431,6 +435,12 @@ [valgrind_level=${withval}], [valgrind_level=0]) +AC_ARG_WITH([internal-tzcode], +[AS_HELP_STRING([--with-internal-tzcode],[use internal time-zone code @<:@no@:>@])], +[use_internal_tzcode=${withval}], +[use_internal_tzcode=default]) + + ## ## Completely disable using libtool for building shlibs until libtool ## fully supports Fortran and C++. @@ -599,6 +609,9 @@ R_PROG_PDFVIEWER ## Noweb AC_PATH_PROG(NOTANGLE, notangle, false) +## javareconf needs this +AC_PATH_PROG(REALPATH, realpath, false) + ## cairographics needs pkg-config AC_PATH_PROG(PKGCONF, pkg-config , [], @@ -621,7 +634,7 @@ fi AC_SUBST(CXXCPP0) R_GCC4_VISIBILITY -AC_GNU_SOURCE ## needed to libintl +AC_GNU_SOURCE ## needed for libintl AC_PROG_OBJC ## unfortunately autoconf sets OBJC to gcc even if there is no working compiler @@ -719,7 +732,7 @@ AC_CHECK_LIB(m, sin) case "${host_os}" in darwin*) - ## MacOS <= 10.2 dlcompat, >= 10.3 included dlcompat in libSystem + ## OS X <= 10.2 dlcompat, >= 10.3 included dlcompat in libSystem AC_SEARCH_LIBS(dlopen, dl,,[AC_MSG_ERROR([Your OS X is too old.])]) ## SI says we want '-lcc_dynamic' on Darwin, although currently ## http://developer.apple.com/documentation/MacOSX/ has nothing @@ -755,7 +768,7 @@ AC_CHECK_LIB(readline, rl_callback_read_char) use_readline="${ac_cv_lib_readline_rl_callback_read_char}" fi - ## the NetBSD version as used in MacOS X does not have this + ## the NetBSD version as used in OS X does not have this AC_CHECK_FUNCS(history_truncate_file) if test "${use_readline}" = no; then AC_MSG_ERROR([--with-readline=yes (default) and headers/libs are not available]) @@ -793,7 +806,8 @@ ## sys/param.h is one way to get PATH_MAX. ## sched.h is POSIX, but we use it for Linux-specific features (affinity) AC_CHECK_HEADERS(arpa/inet.h dl.h dlfcn.h elf.h fcntl.h floatingpoint.h \ - fpu_control.h glob.h grp.h netdb.h netinet/in.h pwd.h sched.h strings.h \ + fpu_control.h glob.h grp.h langinfo.h \ + netdb.h netinet/in.h pwd.h sched.h strings.h \ sys/param.h sys/resource.h sys/select.h sys/socket.h \ sys/stat.h sys/time.h sys/times.h sys/utsname.h unistd.h utime.h) ## @@ -813,6 +827,7 @@ AC_TYPE_SIGNAL ## xz needs uint64_t AC_TYPE_UINT64_T +AC_CHECK_TYPES([int64_t, int_fast64_t]) AC_TYPE_PID_T AC_TYPE_SIZE_T R_SIZE_MAX @@ -1145,7 +1160,7 @@ ## We need to determine the following: ## -## MAIN_LD, MAINLD_FLAGS +## MAIN_LD, MAIN_LDFLAGS ## command and flags for loading the main binary so that it will load ## shared objects (DLLs) at runtime, also for profiling. ## CPICFLAGS, CXXPICFLAGS, FPICFLAGS, FCPICFLAGS @@ -1320,7 +1335,7 @@ esac fi ## some linkers are broken and need to be set to a specific - ## Mac OS X version to work better + ## OS X version to work better case "${host_os}" in darwin8*) # this is the 'old' way and it doesn't work with recent gcc as the driver @@ -1471,7 +1486,10 @@ esac ## Luke Tierney says that just '-export-dynamic' does not work for ## Intel compilers (icc). + ## Could also use -rdynamic main_ldflags="-Wl,--export-dynamic" + STATICR1="-Wl,--whole-archive" + STATICR2="-Wl,--no-whole-archive" ;; mingw*) SHLIB_EXT=".dll" @@ -1690,6 +1708,10 @@ fi fi +## some claim Solaris needs -lsocket -lnsl (PR#15815) +: ${INTERNET_LIBS="${internet_libs}"} +AC_SUBST(INTERNET_LIBS) + AM_CONDITIONAL(DYLIB_UNDEFINED_ALLOWED, [test "x${dylib_undefined_allowed}" = xyes]) AM_CONDITIONAL(BUILD_CYGWIN, [test "x${is_cygwin}" = xyes]) @@ -1716,6 +1738,11 @@ AC_SUBST(RLAPACK_LDFLAGS) AC_SUBST(LAPACK_LDFLAGS) AC_SUBST(FW_VERSION) +AC_SUBST(STATICR1) +AC_SUBST(STATICR2) + +## C++11 and later +R_CXX1X ### OpenMP. @@ -1819,6 +1846,20 @@ ## isblank should be a macro according to C99. It was missing on Solaris 8 AC_CHECK_FUNCS(isblank) +## Solaris libsunmath +AC_CHECK_HEADERS(sunmath.h) +AC_CHECK_LIB(sunmath, cospi) + +## Functions from draft C11 extensions, some of which are already in glibc +## For now, do not define _GNU_SOURCE here. +## All but pown have long been in libsunmath +AC_CHECK_FUNCS([atanpi atan2pi cospi exp10 pown sinpi tanpi], +[#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#include +#ifdef HAVE_SUNMATH_H +#include +#endif]) + ## fseeko/ftello are POSIX, may be macros ## matherr is SVID, redefined in arithmetic.c if present AC_CHECK_FUNCS(fseeko ftello matherr) @@ -1841,6 +1882,8 @@ fi R_CHECK_FUNCS([gettimeofday utimes], [#include ]) R_CHECK_FUNCS([times], [#include ]) +R_CHECK_FUNCS([gmtime_r localtime_r], [#include ]) +R_CHECK_FUNCS([nl_langinfo], [#include ]) R_CHECK_FUNCS([access chdir execv ftruncate getcwd geteuid getuid link readlink symlink sysconf], [#ifdef HAVE_UNISTD_H # include @@ -1849,7 +1892,7 @@ R_CHECK_FUNCS([sched_setaffinity sched_getaffinity], [#include ]) ## utime was declared obsolescent in POSIX 2008 (use utimes instead) R_CHECK_FUNCS([utime], [#include ]) -## clock_gettime is POSIX 1993, but not on MacOS X +## clock_gettime is POSIX 1993, but not on OS X ## Some OSes need -lrt: Linux (for glibc versions before 2.17), Solaris, ## not FreeBSD. ## Unsurprising, as POSIX 2008 moved it from its timers section to base. @@ -1973,12 +2016,51 @@ R_FUNC_FTELL R_FUNC_SIGACTION R_MKTIME_ERRNO +R_FUNC_MKTIME R_C99_COMPLEX +## BSD extensions +AC_CACHE_CHECK([whether 'struct tm' includes tm_zone], + [r_cv_have_tm_zone], +[AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ +// glibc needs this defined. +#define _BSD_SOURCE +#include + +int main() { + struct tm x; + x.tm_zone = ""; +} +]])], + [r_cv_have_tm_zone=yes], + [r_cv_have_tm_zone=no])]) +if test "x${r_cv_have_tm_zone}" = xyes; then + AC_DEFINE(HAVE_TM_ZONE, 1, [Define to 1 if your 'struct tm' has tm_zone.]) +fi + +AC_CACHE_CHECK([whether 'struct tm' includes tm_gmtoff], + [r_cv_have_tm_gmtoff], +[AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ +// glibc needs this defined. +#define _BSD_SOURCE +#include + +int main() { + struct tm x; + x.tm_gmtoff = +3600; +} +]])], + [r_cv_have_tm_gmtoff=yes], + [r_cv_have_tm_gmtoff=no])]) +if test "x${r_cv_have_tm_gmtoff}" = xyes; then + AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define to 1 if your 'struct tm' has tm_gmtoff.]) +fi + + ## check for vecLib framework (potentially to be used for BLAS) ## in theory vecLib is platform-independent, in practice only -## Apple's Mac OS X is known to provide it +## Apple's OS X is known to provide it R_CHECK_FRAMEWORK(cblas_cdotu_sub, vecLib) ## BLAS. @@ -2112,7 +2194,7 @@ AM_CONDITIONAL(USE_EXTERNAL_BLAS, [test "${acx_blas_ok}" = "yes"]) ## LAPACK. -## The default has already been set on MacOS X: otherwise it is "no" +## The default has already been set on OS X: otherwise it is "no" ## and so this test fails. if test "${use_lapack}" = "yes"; then R_LAPACK_LIBS @@ -2212,6 +2294,9 @@ ## PCRE headers and libraries. R_PCRE +## tre headers and libraries. +R_TRE + ## POSIX times. R_SYS_POSIX_LEAPSECONDS @@ -2242,6 +2327,20 @@ fi AC_DEFINE_UNQUOTED(VALGRIND_LEVEL, ${valgrind_level}, [Define as 1 or 2 to specify levels of Valgrind instrumentation]) +if test x${use_internal_tzcode} = xdefault; then +case "${host_os}" in + darwin*) + use_internal_tzcode=yes; + ;; +esac +fi + +if test "x${use_internal_tzcode}" = xyes; then + AC_DEFINE(USE_INTERNAL_MKTIME, 1, [Define to use internal time-zone code]) +fi +AM_CONDITIONAL(BUILD_TZONE, [test "x${use_internal_tzcode}" = xyes]) + + ## KERN_USRSTACK support (BSD, Darwin, ...) R_KERN_USRSTACK @@ -2587,6 +2686,7 @@ src/extra/intl/Makefile src/extra/pcre/Makefile src/extra/tre/Makefile + src/extra/tzone/Makefile src/extra/xdr/Makefile src/extra/xz/Makefile src/extra/zlib/Makefile @@ -2649,13 +2749,14 @@ src/scripts/R.sh src/scripts/Rcmd src/scripts/f77_f2c + src/scripts/javareconf src/scripts/mkinstalldirs src/scripts/pager + src/scripts/rtags src/unix/Makefile tests/Makefile tests/Embedding/Makefile tests/Examples/Makefile - tests/Native/Makefile tools/Makefile ]) @@ -2677,6 +2778,7 @@ ## r_c_compiler="${CC} ${R_XTRA_CFLAGS} ${CFLAGS}" r_cxx_compiler="${CXX} ${R_XTRA_CXXFLAGS} ${CXXFLAGS}" +r_cxx1x_compiler="${CXX1X} ${CXX1XSTD} ${CXX1XFLAGS}" r_f77_compiler="${F77} ${R_XTRA_FFLAGS} ${FFLAGS}" r_f95_compiler="${FC} ${FCFLAGS}" r_objc_compiler="${OBJC} ${OBJCFLAGS}" @@ -2777,6 +2879,7 @@ Fortran 77 compiler: ${r_f77_compiler} C++ compiler: ${r_cxx_compiler} + C++ 11 compiler: ${r_cxx1x_compiler} Fortran 90/95 compiler: ${r_f95_compiler} Obj-C compiler: ${r_objc_compiler} diff -Nru r-base-3.0.1/debian/changelog r-base-3.1.1/debian/changelog --- r-base-3.0.1/debian/changelog 2014-07-11 23:10:18.000000000 +0000 +++ r-base-3.1.1/debian/changelog 2014-07-11 23:10:19.000000000 +0000 @@ -1,8 +1,156 @@ -r-base (3.0.1-3precise1) precise; urgency=low +r-base (3.1.1-1precise0) precise; urgency=low - * Reupload of the precise package (due to libtiff dependency change) + * Compilation for Ubuntu 12.04.4 LTS + * debian/control: Downgrade libtiff5 to libtiff4. - -- Jeroen Ooms Mon, 27 May 2013 17:29:17 +0000 + -- Michael Rutter Thu, 10 Jul 2014 18:33:54 +0000 + +r-base (3.1.1-1) unstable; urgency=low + + * New upstream version released this morning + + -- Dirk Eddelbuettel Thu, 10 Jul 2014 05:04:12 -0500 + +r-base (3.1.0.20140705-1) unstable; urgency=low + + * Initial rc build (r66073) of R 3.1.1 expected for July 10 + + -- Dirk Eddelbuettel Sat, 05 Jul 2014 10:48:31 -0500 + +r-base (3.1.0-1) unstable; urgency=low + + * New upstream version released this morning + + -- Dirk Eddelbuettel Thu, 10 Apr 2014 06:04:45 -0500 + +r-base (3.0.3.20140408-1) unstable; urgency=low + + * Third rc build (r65383) of R 3.1.0 expected for April 10 + + * debian/rules: Also reflect 'dpkg-buildflags --get cppflags' + + -- Dirk Eddelbuettel Tue, 08 Apr 2014 14:56:36 -0500 + +r-base (3.0.3.20140405-1) unstable; urgency=low + + * Second rc build (r65382) of R 3.1.0 expected for April 10 + + -- Dirk Eddelbuettel Sun, 06 Apr 2014 14:09:44 -0500 + +r-base (3.0.3.20140403-1) unstable; urgency=low + + * Initial rc build (r65367) of R 3.1.0 expected for April 10 + + * debian/rules: Also export ldflags variable + + -- Dirk Eddelbuettel Thu, 03 Apr 2014 18:48:57 -0500 + +r-base (3.0.3.20140331-1) unstable; urgency=low + + * Second beta build (r65345) of R 3.1.0 expected for April 10 + + * debian/control: Added liblzma-dev to Depends: of r-base-dev + (Closes: #743076) + + * debian/rules: Set optimflags, fcflags and ldflags via calls to + dpkg-buildflags with thanks to Julian Gilbey for the suggestion and + discussion (Closes: #726913) + + -- Dirk Eddelbuettel Mon, 31 Mar 2014 19:58:17 -0500 + +r-base (3.0.3.20140328-1) unstable; urgency=low + + * Initial beta build (r65330) of R 3.1.0 expected for April 10 + + * debian/R.bash_completion: New version from Deepayan's repository + * debian/rules: Updated installation command for bash completion + * debian/control: Added bash-completion to Build-Depends: + + -- Dirk Eddelbuettel Fri, 28 Mar 2014 20:05:20 -0500 + +r-base (3.0.3-1) unstable; urgency=low + + * New upstream version released this morning + + -- Dirk Eddelbuettel Thu, 06 Mar 2014 06:16:18 -0600 + +r-base (3.0.2.20140301-1) unstable; urgency=low + + * Second rc build (r65090) of R 3.0.3 expected for March 6 + + * debian/control: Re-enable Java on mips, mipsel as OpenJDK 7 is now + available for both. Thanks to Niels Thykier for the follow-up. + + -- Dirk Eddelbuettel Sat, 01 Mar 2014 11:18:10 -0600 + +r-base (3.0.2.20140226-1) unstable; urgency=low + + * Initial rc build (r65081) of R 3.0.3 expected for March 6 + + * debian/arm-perl-regexp.patch: Patch no longer needed as the change has + now been applied upstream + + * debian/control: Remove Build-Depends: on texi2html which has been + deprecated as a standalone package. (Closes: #726947) + * debian/control: Also remove Suggests: on texi2html for r-base-dev + + * debian/control: Added "!mipsel" to the Build-Depends as OpenJDK 7 is + not available here (cf emails with Niels Thykier in #727805) + + -- Dirk Eddelbuettel Wed, 26 Feb 2014 19:59:05 -0600 + +r-base (3.0.2-1) unstable; urgency=low + + * New upstream version released this morning + + * debian/arm-perl-regexp.patch: Re-apply ARM patch for regexp + + -- Dirk Eddelbuettel Wed, 25 Sep 2013 05:55:00 -0500 + +r-base (3.0.1.20130919-1) unstable; urgency=low + + * Initial rc build (r63954) of R 3.0.2 expected for September 25 + + * debian/arm-perl-regexp.patch: Re-apply ARM patch for regexp + + -- Dirk Eddelbuettel Thu, 19 Sep 2013 21:53:29 -0500 + +r-base (3.0.1.20130915-1) unstable; urgency=low + + * Initial build (r63932) of R 3.0.2 expected for September 25 + + * Version number scheme reverted to maj.min.pat.date rather than + maj.min.pat~date as the latex runs of the manuals once again break + when a tilde is present in the filename -- texi2dvi regression? + + * debian/arm-perl-regexp.patch: Re-apply ARM patch for regexp + + -- Dirk Eddelbuettel Sun, 15 Sep 2013 08:07:40 -0500 + +r-base (3.0.1-6) unstable; urgency=low + + * debian/r-cran.mk: Undo brown paper bag error and add pipe symbol + + * debian/rules: Do not run checks on kFreeBSD as it timed out + + -- Dirk Eddelbuettel Mon, 29 Jul 2013 19:35:24 -0500 + +r-base (3.0.1-5) unstable; urgency=low + + * debian/rules: Make a minor debian/rules clean more robust by using + 'rm -f' instead of plain 'rm' + + -- Dirk Eddelbuettel Fri, 26 Jul 2013 09:12:06 -0500 + +r-base (3.0.1-4) unstable; urgency=low + + * debian/rules: Set optimisation to -O2 on kFreeBSD (Closes: #714506) + + * debian/r-cran.mk: Minor tweak to regexp in 'make clean' step + + * debian/watch: Adjusted path to look in R-3/ directory + + -- Dirk Eddelbuettel Fri, 26 Jul 2013 06:24:24 -0500 r-base (3.0.1-3) unstable; urgency=low diff -Nru r-base-3.0.1/debian/control r-base-3.1.1/debian/control --- r-base-3.0.1/debian/control 2014-07-11 23:10:18.000000000 +0000 +++ r-base-3.1.1/debian/control 2014-07-11 23:10:19.000000000 +0000 @@ -2,8 +2,8 @@ Section: gnu-r Priority: optional Maintainer: Dirk Eddelbuettel -Standards-Version: 3.9.4 -Build-Depends: gcc (>= 4:4.1.0), g++ (>= 4:4.1.0), gfortran (>= 4:4.1.0), libblas-dev, liblapack-dev (>= 3.1.1), tcl8.5-dev, tk8.5-dev, bison, groff-base, libncurses5-dev, libreadline-dev, debhelper (>= 7.2.3), texi2html, texinfo (>= 4.1-2), libbz2-dev, liblzma-dev, libpcre3-dev, xdg-utils, zlib1g-dev, libpng-dev, libjpeg-dev, libx11-dev, libxt-dev, x11proto-core-dev, libpango1.0-dev, libcairo2-dev, libtiff4-dev, xvfb, xauth, xfonts-base, texlive-base, texlive-latex-base, texlive-generic-recommended, texlive-fonts-recommended, texlive-fonts-extra, texlive-extra-utils, texlive-latex-recommended, texlive-latex-extra, default-jdk [!arm !hppa !kfreebsd-i386 !kfreebsd-amd64 !hurd-i386 !mips], mpack +Standards-Version: 3.9.5 +Build-Depends: gcc (>= 4:4.1.0), g++ (>= 4:4.1.0), gfortran (>= 4:4.1.0), libblas-dev, liblapack-dev (>= 3.1.1), tcl8.5-dev, tk8.5-dev, bison, groff-base, libncurses5-dev, libreadline-dev, debhelper (>= 7.2.3), texinfo (>= 4.1-2), libbz2-dev, liblzma-dev, libpcre3-dev, xdg-utils, zlib1g-dev, libpng-dev, libjpeg-dev, libx11-dev, libxt-dev, x11proto-core-dev, libpango1.0-dev, libcairo2-dev, libtiff4-dev, xvfb, xauth, xfonts-base, texlive-base, texlive-latex-base, texlive-generic-recommended, texlive-fonts-recommended, texlive-fonts-extra, texlive-extra-utils, texlive-latex-recommended, texlive-latex-extra, default-jdk [!arm !hppa !kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], mpack, bash-completion Homepage: http://www.r-project.org/ Package: r-base @@ -83,8 +83,8 @@ Package: r-base-dev Architecture: all -Depends: ${misc:Depends}, r-base-core (>= ${source:Version}), build-essential, gcc, g++, gfortran, libblas-dev | libatlas-base-dev, liblapack-dev | libatlas-base-dev, libncurses5-dev, libreadline-dev, libjpeg-dev, libpcre3-dev, libpng-dev, zlib1g-dev, libbz2-dev, , cdbs -Suggests: debhelper, texlive-base, texlive-latex-base, texlive-generic-recommended, texlive-fonts-recommended, texlive-fonts-extra, texlive-extra-utils, texlive-latex-recommended, texlive-latex-extra, texinfo, texi2html +Depends: ${misc:Depends}, r-base-core (>= ${source:Version}), build-essential, gcc, g++, gfortran, libblas-dev | libatlas-base-dev, liblapack-dev | libatlas-base-dev, libncurses5-dev, libreadline-dev, libjpeg-dev, libpcre3-dev, libpng-dev, zlib1g-dev, libbz2-dev, liblzma-dev, cdbs +Suggests: debhelper, texlive-base, texlive-latex-base, texlive-generic-recommended, texlive-fonts-recommended, texlive-fonts-extra, texlive-extra-utils, texlive-latex-recommended, texlive-latex-extra, texinfo Description: GNU R installation of auxiliary GNU R packages R is a system for statistical computation and graphics. It consists of a language plus a run-time environment with graphics, a debugger, diff -Nru r-base-3.0.1/debian/r-base-core.bash-completion r-base-3.1.1/debian/r-base-core.bash-completion --- r-base-3.0.1/debian/r-base-core.bash-completion 1970-01-01 00:00:00.000000000 +0000 +++ r-base-3.1.1/debian/r-base-core.bash-completion 2014-07-11 23:10:19.000000000 +0000 @@ -0,0 +1 @@ +debian/R.bash-completion R diff -Nru r-base-3.0.1/debian/r-base-core.lintian r-base-3.1.1/debian/r-base-core.lintian --- r-base-3.0.1/debian/r-base-core.lintian 2014-07-11 23:10:18.000000000 +0000 +++ r-base-3.1.1/debian/r-base-core.lintian 2014-07-11 23:10:19.000000000 +0000 @@ -81,3 +81,29 @@ r-base-core: image-file-in-usr-lib usr/lib/R/library/graphics/help/figures/oma.png r-base-core: image-file-in-usr-lib usr/lib/R/library/graphics/help/figures/pch.png r-base-core: executable-not-elf-or-script usr/lib/R/bin/Rd2pdf +r-base-core: hardening-no-relro usr/bin/Rscript +r-base-core: hardening-no-relro usr/lib/R/bin/Rscript +r-base-core: hardening-no-relro usr/lib/R/bin/exec/R +r-base-core: hardening-no-relro usr/lib/R/lib/libR.so +r-base-core: hardening-no-relro usr/lib/R/library/grDevices/libs/cairo.so +r-base-core: hardening-no-relro usr/lib/R/library/grDevices/libs/grDevices.so +r-base-core: hardening-no-relro usr/lib/R/library/graphics/libs/graphics.so +r-base-core: hardening-no-relro usr/lib/R/library/grid/libs/grid.so +r-base-core: hardening-no-relro usr/lib/R/library/methods/libs/methods.so +r-base-core: hardening-no-relro usr/lib/R/library/parallel/libs/parallel.so +r-base-core: hardening-no-relro usr/lib/R/library/splines/libs/splines.so +r-base-core: hardening-no-relro usr/lib/R/library/stats/libs/stats.so +r-base-core: hardening-no-relro usr/lib/R/library/tcltk/libs/tcltk.so +r-base-core: hardening-no-relro usr/lib/R/library/tools/libs/tools.so +r-base-core: hardening-no-relro usr/lib/R/library/utils/libs/utils.so +r-base-core: hardening-no-relro usr/lib/R/modules/R_X11.so +r-base-core: hardening-no-relro usr/lib/R/modules/R_de.so +r-base-core: hardening-no-relro usr/lib/R/modules/internet.so +r-base-core: hardening-no-relro usr/lib/R/modules/lapack.so +r-base-core: hardening-no-relro usr/lib/R/modules/vfonts.so +r-base-core: extra-license-file usr/share/R/share/licenses/Artistic-2.0 +r-base-core: extra-license-file usr/share/R/share/licenses/GPL-2 +r-base-core: extra-license-file usr/share/R/share/licenses/GPL-3 +r-base-core: extra-license-file usr/share/R/share/licenses/LGPL-2 +r-base-core: extra-license-file usr/share/R/share/licenses/LGPL-2.1 +r-base-core: extra-license-file usr/share/R/share/licenses/LGPL-3 diff -Nru r-base-3.0.1/debian/R.bash_completion r-base-3.1.1/debian/R.bash_completion --- r-base-3.0.1/debian/R.bash_completion 2014-07-11 23:10:18.000000000 +0000 +++ r-base-3.1.1/debian/R.bash_completion 1970-01-01 00:00:00.000000000 +0000 @@ -1,493 +0,0 @@ -### Copyright (C) 2005-2011 Deepayan Sarkar -### -### This file provides programmable completion for R under the bash -### shell. It is made available under the terms of the GNU General -### Public License, version 2, or at your option, any later version, -### incorporated herein by reference. -### -### This program is distributed in the hope that it will be -### useful, but WITHOUT ANY WARRANTY; without even the implied -### warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -### PURPOSE. See the GNU General Public License, available at -### http://www.gnu.org/licenses/gpl.txt, for more details. - - -### NOTE: This does NOT provide completion for commands within R, only -### for R's command-line options. For example, -### -### R CMD build --f[TAB] -### -### will complete to --force and so on. In other words, this is -### potentially useful (for the most part) to package developers, not -### regular users. - -### NEWS: Updated for R 2.4.0 (October 2006) - -### BUGS: As it stands, this is far from perfect. Known bugs include: -### -### (1) file/directory name completion doesn't work when there is a ~ -### (1) in the name. Fortunately, in such situations, one can always -### (1) fall back to standard completion by using M-/ instead of TAB -### -### (2) Not all mutually exclusive options are properly handled -### -### (3) Doesn't test for the existence of R before defining the -### (3) completion function (not strictly a bug, but definitely not a -### (3) good feature) - - -### INSTALLATION AND USAGE: You need to first install and enable bash -### completion on your system to use this script. See -### -### http://www.caliban.org/bash/index.shtml#completion -### -### to learn more about bash completion. On a modern Debian system, -### all the necessary files are already installed by the bash package. -### To enable it, just uncomment the following lines in your .bashrc -### -### # if [ "$PS1" -a -f /etc/bash_completion ]; then -### # . /etc/bash_completion -### # fi -### -### or to try it out in your current shell, type -### -### . /etc/bash_completion -### -### Once you are using bash completion, you can enable completion for -### R by similarly sourcing this file. For permanent use, place it in -### your $BASH_COMPLETION_DIR (/etc/bash_completion.d in Debian). If -### you don't have access to do that, copy the contents of this file -### in it's entirety to your ~/.bash_completion, which is sourced by -### the bash_completion script. - - - - -_R() -{ - local cur loneOpts helpOpts stdOpts argOpts versOpts cmds cmd furtherOpts - local fileNames dirNames i lastToken - # local IFS=$'\t\n' - - COMPREPLY=() - cur=${COMP_WORDS[COMP_CWORD]} - - loneOpts='--version RHOME' - versOpts='-v --version' # only on commands - helpOpts='-h --help' - - stdOpts='--save --no-save --no-environ --no-site-file \ - --no-init-file --restore --no-restore-data --no-restore-history \ - --no-restore --vanilla --no-readline -q --quiet --silent --slave \ - --interactive --verbose -d -g --args -f -e' - - ## these should end with a '=' and not be followed by a space. - ## Unfortunately, I haven't figured out how to make that work. - ## -nospace doesn't suppress the space, and if I add = at the end, - ## they get completed as "--debugger\= " etc. Anyway, they are - ## kept separate in anticipation of some future fix... - - argOpts='--min-vsize --max-vsize --min-nsize --max-nsize \ - --encoding --max-ppsize --debugger --debugger-args \ - --gui --arch --file' - - cmds='BATCH COMPILE SHLIB INSTALL REMOVE build check LINK Rprof \ - Rdconv Rd2pdf Rd2txt Stangle Sweave Rdiff config javareconf rtags' - - - - - fileNames='' # possible to have files in certain commands (e.g. BATCH) - dirNames='' - - - if [[ $COMP_CWORD -eq 1 ]] ; then - COMPREPLY=( - $( compgen -W "CMD $loneOpts $helpOpts $stdOpts" -- $cur ) - $( compgen -o nospace -W "$argOpts" -- $cur ) - ) - return 0 - fi - - ## certain tokens preclude further activity - if [[ ${COMP_WORDS[$COMP_CWORD-1]} == @(-v|--version|RHOME|-h|--help) ]] ; then - return 0 - fi - - ## more complicated stuff - ## keep last token for use later - lastToken=${COMP_WORDS[$COMP_CWORD-1]} - - - ## if [[ $COMP_CWORD -gt 1 ]] && (implied) - if [[ ${COMP_WORDS[1]} == "CMD" ]] ; then - - if [[ $COMP_CWORD -eq 2 ]] ; then - COMPREPLY=( - $( compgen -W "$cmds" -- $cur ) - ) - return 0 - else - - ## COMP_CWORD >= 3. cmd=${COMP_WORDS[2]} is (hopefully) - ## one of $cmds. At this point, all further options - ## (except -v|-h|RHOME etc handled above) will be assumed - ## repeatable (except for duplicates and exclusives, to be - ## handled later). In the next step, possible completions - ## for each cmd will be derived. - - ## A largely similar derivation is also needed for the - ## case when ${COMP_WORDS[2]} is not CMD. A similar - ## completion list will be derived in that case. - ## Afterwards, things will be removed from these as - ## needed, before the final COMPREPLY is computed. - - cmd=${COMP_WORDS[2]} - case $cmd in - BATCH) - - ## if last word is a filename (not starting with - ## -) then no more options are allowed, but can be - ## followed by any file (outfile) - - if [[ $COMP_CWORD -gt 3 ]] && \ - [[ $lastToken != -* ]] ; then - - furtherOpts="" - fileNames=$( compgen -f -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - - else - - furtherOpts="$versOpts $helpOpts $stdOpts $argOpts --no-timing" - fileNames=$( compgen -f -X '!*.@(R|r|S|s)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - - fi - ;; - - COMPILE) - if [[ $COMP_CWORD -gt 3 ]] && \ - [[ $lastToken != -* ]] ; then - - furtherOpts="" - fileNames=$( compgen -f -X '!*.@(c|cc|cpp|C|f)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - - else - - furtherOpts="$versOpts $helpOpts -D" - fileNames=$( compgen -f -X '!*.@(c|cc|cpp|C|f)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - - fi - ;; - - SHLIB) - if [[ $COMP_CWORD -gt 3 ]] && \ - [[ $lastToken != -* ]] ; then - - furtherOpts="" - fileNames=$( compgen -f -X '!*.@(a|o)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - - else - - furtherOpts="$versOpts $helpOpts -o --output -c --clean \ - --preclean -n --dry-run" - fileNames=$( compgen -f -X '!*.@(a|o)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - - fi - - ;; - - INSTALL) - if [[ $COMP_CWORD -gt 3 ]] && \ - [[ $lastToken == @(-l|--library) ]] ; then - - furtherOpts="" - dirNames=$( compgen -d -- "$cur" ) - - else - - furtherOpts="$versOpts $helpOpts \ ---configure-args --configure-vars -c --clean --preclean -d --debug -l \ ---library --no-configure --no-docs --html --no-html --latex --example \ ---fake --no-lock --lock --pkglock --build --install-tests --no-R, \ ---no-libs --no-data --no-help --no-demo --no-exec --no-inst \ ---no-multiarch --libs-only --data-compress --resave-data \ ---compact-docs --with-keep.source --without-keep.source --byte-compile \ ---no-clean-on-error" - fileNames=$( compgen -f -X '!*.@(tar.gz|tgz)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - - fi - ;; - - REMOVE) - furtherOpts="$versOpts $helpOpts -l --library" - if [[ $COMP_CWORD -gt 3 ]] && \ - [[ $lastToken == @(-l|--library) ]] ; then - dirNames=$( compgen -d -- "$cur" ) - fi - ;; - - build) - - furtherOpts="$versOpts $helpOpts \ ---force --keep-empty-dirs --no-vignettes --no-manual --resave-data \ ---no-resave-data --compact-vignettes" - dirNames=$( compgen -d -- "$cur" ) - ;; - - check) - - furtherOpts="$versOpts $helpOpts \ --l --library -o --outdir \ ---no-clean --no-codoc --no-examples --no-install --no-tests \ ---no-manual --no-vignettes --no-rebuild-vignettes --use-gct \ ---use-valgrind --timings --install-args --check-subdirs \ ---extra-arch --multiarch --no-multiarch --force-multiarch" - - fileNames=$( compgen -f -X '!*.@(tar.gz|tgz)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - ;; - - LINK) - furtherOpts="$versOpts $helpOpts" - ;; - - Rprof) - furtherOpts="$versOpts $helpOpts --total --self --min%total --min%self" - fileNames=$( compgen -f -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - ;; - - Rdconv) - - furtherOpts="$versOpts $helpOpts -t --type \ - --encoding --package -o --output --os --OS" - - fileNames=$( compgen -f -X '!*.@(Rd)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - ;; - - Rd2pdf) - - furtherOpts="$versOpts $helpOpts --batch \ - --no-clean --no-preview --encoding --outputEncoding \ - --os --OS -o --output --force --title \ - --no-index --no-description --internals" - - fileNames=$( compgen -f -X '!*.@(Rd)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - ;; - - Rd2txt) - furtherOpts="$versOpts $helpOpts -t --type --encoding --package -o --output --os --OS" - fileNames=$( compgen -f -X '!*.@(Rd)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - ;; - - Sweave) - - ## if last word is a filename (not starting with - ## -) then nothing more is allowed - - if [[ $COMP_CWORD -gt 3 ]] && \ - [[ $lastToken != -* ]] ; then - - return 0 - - else - - furtherOpts="$versOpts $helpOpts --driver --encoding --options --pdf" - fileNames=$( compgen -f -X '!*.@(Rnw|rnw|Snw|snw)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - - fi - ;; - - Stangle) - - ## if last word is a filename (not starting with - ## -) then nothing more is allowed - - if [[ $COMP_CWORD -gt 3 ]] && \ - [[ $lastToken != -* ]] ; then - - return 0 - - else - - furtherOpts="$versOpts $helpOpts --encoding --options" - fileNames=$( compgen -f -X '!*.@(Rnw|rnw|Snw|snw)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - - fi - ;; - - config) - - if [[ $COMP_CWORD -gt 3 ]] ; then - - return 0 - - else - - furtherOpts="$versOpts $helpOpts --ldflags --cppflags \ -BLAS_LIBS CC CFLAGS CPICFLAGS CPP CPPFLAGS CXX CXXCPP CXXFLAGS \ -CXXPICFLAGS DYLIB_EXT DYLIB_LD DYLIB_LDFLAGS F77 FFLAGS FLIBS \ -FPICFLAGS FC FCFLAGS FCPICFLAGS JAR JAVA JAVAC JAVAH JAVA_HOME \ -JAVA_LIBS JAVA_CPPFLAGS LAPACK_LIBS LIBnn LDFLAGS OBJC OBJCFLAGS MAKE \ -SAFE_FFLAGS SHLIB_CFLAGS SHLIB_CXXLD SHLIB_CXXLDFLAGS SHLIB_EXT \ -SHLIB_FFLAGS SHLIB_LD SHLIB_LDFLAGS SHLIB_FCLD, SHLIB_FCLDFLAGS \ -TCLTK_CPPFLAGS TCLTK_LIBS" - - fi - ;; - - - javareconf) - furtherOpts="$versOpts $helpOpts -n --dry-run -e" - ;; - - - rtags) - furtherOpts="$versOpts $helpOpts -o --output --no-c --no-R \ - --no-Rd -a --append -V --verbose" - dirNames=$( compgen -d -- "$cur" ) - ;; - - esac - - fi - - elif [[ $lastToken == "<" ]] ; then - - ## R [options] < - furtherOpts="" - fileNames=$( compgen -f -X '!*.@(R|r|S|s)' -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - - elif [[ $lastToken == ">" ]] ; then - - ## R [options] > - furtherOpts="" - fileNames=$( compgen -f -- "$cur" ) - dirNames=$( compgen -d -- "$cur" ) - - else - - case $lastToken in - - -g|--gui) - furtherOpts="X11 Tk" - ;; - -d|--debugger) ## allow commands - furtherOpts=$( compgen -c -- "$cur" ) - ;; - - *) ## NOT 'R CMD ': see comments above - furtherOpts="$versOpts $helpOpts $stdOpts $argOpts" ;; - - esac - fi - - ## need some removal, - - ## take out options already given - for (( i=1; i<=$COMP_CWORD-1; ++i )) ; do - - opt=${COMP_WORDS[$i]} - - case $opt in - --*) optBase=${opt/=*/} ;; - -*) optBase=${opt:0:2} ;; - esac - - ## can't seem to do this using case - if [[ $opt == "<" ]] ; then - ## no more args allowed - furtherOpts="" - elif [[ $opt == ">" ]] ; then - ## no more args allowed - furtherOpts="" - fi - - - allOpts=" $furtherOpts " - allOpts=${allOpts/ ${optBase} / } - - #echo $allOpts - - ## take out alternatives and mutually exclusives - case $optBase in - -# not working -# "<") ## only filenames allowed -# echo "-----------" -# allOpts=">" ;; -# ">") ## only filenames allowed -# allOpts="<" ;; - - -q|--quiet|--silent) - allOpts=${allOpts/ -q / } - allOpts=${allOpts/ --quiet / } - allOpts=${allOpts/ --silent / } - #echo $allOpts - - ;; - --save|--no-save) - allOpts=${allOpts/ --save / } - allOpts=${allOpts/ --no-save / } - ;; - --vanilla) - allOpts=${allOpts/ --no-save / } - allOpts=${allOpts/ --no-restore / } - allOpts=${allOpts/ --no-site-file / } - allOpts=${allOpts/ --no-init-file / } - allOpts=${allOpts/ --no-environ / } - ;; - -d) allOpts=${allOpts/ --debugger / } ;; - --debugger) allOpts=${allOpts/ -d / } ;; - --restore) allOpts=${allOpts/ --no-restore / } ;; - --no-restore) allOpts=${allOpts/ --restore / } ;; - -g|--gui) - allOpts=${allOpts/ -g / } - allOpts=${allOpts/ --gui / } - ;; - - BATCH) - allOpts=${allOpts/ --restore / } - allOpts=${allOpts/ --save / } - allOpts=${allOpts/ --no-readline / } - ;; - - esac - - done - - ## and finally: - - COMPREPLY=( - $( compgen -W "$allOpts $fileNames $dirNames" -- $cur ) - ) - return 0 - - -} - - -complete -F _R -o filenames R - -## Add more aliases here, e.g. - -# for e in R-2.4 R-devel R-patched; do complete -F _R -o filenames ${e}; done - - - -### Local variables: -### mode: shell-script -### End: diff -Nru r-base-3.0.1/debian/R.bash-completion r-base-3.1.1/debian/R.bash-completion --- r-base-3.0.1/debian/R.bash-completion 1970-01-01 00:00:00.000000000 +0000 +++ r-base-3.1.1/debian/R.bash-completion 2014-07-11 23:10:19.000000000 +0000 @@ -0,0 +1,489 @@ +### Copyright (C) 2005-2011 Deepayan Sarkar +### +### This file provides programmable completion for R under the bash +### shell. It is made available under the terms of the GNU General +### Public License, version 2, or at your option, any later version, +### incorporated herein by reference. +### +### This program is distributed in the hope that it will be +### useful, but WITHOUT ANY WARRANTY; without even the implied +### warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +### PURPOSE. See the GNU General Public License, available at +### http://www.gnu.org/licenses/gpl.txt, for more details. + + +### NOTE: This does NOT provide completion for commands within R, only +### for R's command-line options. For example, +### +### R CMD build --f[TAB] +### +### will complete to --force and so on. In other words, this is +### potentially useful (for the most part) to package developers, not +### regular users. + +### NEWS: Updated for R 2.4.0 (October 2006) + +### BUGS: As it stands, this is far from perfect. Known bugs include: +### +### (1) Not all mutually exclusive options are properly handled +### +### (2) Doesn't test for the existence of R before defining the +### (2) completion function (not strictly a bug, but definitely not a +### (2) good feature) + + +### INSTALLATION AND USAGE: You need to first install and enable bash +### completion on your system to use this script. See +### +### http://www.caliban.org/bash/index.shtml#completion +### +### to learn more about bash completion. On a modern Debian system, +### all the necessary files are already installed by the bash package. +### To enable it, just uncomment the following lines in your .bashrc +### +### # if [ "$PS1" -a -f /etc/bash_completion ]; then +### # . /etc/bash_completion +### # fi +### +### or to try it out in your current shell, type +### +### . /etc/bash_completion +### +### Once you are using bash completion, you can enable completion for +### R by similarly sourcing this file. For permanent use, place it in +### your $BASH_COMPLETION_DIR (/etc/bash_completion.d in Debian). If +### you don't have access to do that, copy the contents of this file +### in it's entirety to your ~/.bash_completion, which is sourced by +### the bash_completion script. + + + + +_R() +{ + local cur loneOpts helpOpts stdOpts argOpts versOpts cmds cmd furtherOpts + local fileNames dirNames i lastToken + # local IFS=$'\t\n' + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + + loneOpts='--version RHOME' + versOpts='-v --version' # only on commands + helpOpts='-h --help' + + stdOpts='--save --no-save --no-environ --no-site-file \ + --no-init-file --restore --no-restore-data --no-restore-history \ + --no-restore --vanilla --no-readline -q --quiet --silent --slave \ + --interactive --verbose -d -g --args -f -e' + + ## these should end with a '=' and not be followed by a space. + ## Unfortunately, I haven't figured out how to make that work. + ## -nospace doesn't suppress the space, and if I add = at the end, + ## they get completed as "--debugger\= " etc. Anyway, they are + ## kept separate in anticipation of some future fix... + + argOpts='--min-vsize --max-vsize --min-nsize --max-nsize \ + --encoding --max-ppsize --debugger --debugger-args \ + --gui --arch --file' + + cmds='BATCH COMPILE SHLIB INSTALL REMOVE build check LINK Rprof \ + Rdconv Rd2pdf Rd2txt Stangle Sweave Rdiff config javareconf rtags' + + + + + fileNames='' # possible to have files in certain commands (e.g. BATCH) + dirNames='' + + + if [[ $COMP_CWORD -eq 1 ]] ; then + COMPREPLY=( + $( compgen -W "CMD $loneOpts $helpOpts $stdOpts" -- $cur ) + $( compgen -o nospace -W "$argOpts" -- $cur ) + ) + return 0 + fi + + ## certain tokens preclude further activity + if [[ ${COMP_WORDS[$COMP_CWORD-1]} == @(-v|--version|RHOME|-h|--help) ]] ; then + return 0 + fi + + ## more complicated stuff + ## keep last token for use later + lastToken=${COMP_WORDS[$COMP_CWORD-1]} + + + ## if [[ $COMP_CWORD -gt 1 ]] && (implied) + if [[ ${COMP_WORDS[1]} == "CMD" ]] ; then + + if [[ $COMP_CWORD -eq 2 ]] ; then + COMPREPLY=( + $( compgen -W "$cmds" -- $cur ) + ) + return 0 + else + + ## COMP_CWORD >= 3. cmd=${COMP_WORDS[2]} is (hopefully) + ## one of $cmds. At this point, all further options + ## (except -v|-h|RHOME etc handled above) will be assumed + ## repeatable (except for duplicates and exclusives, to be + ## handled later). In the next step, possible completions + ## for each cmd will be derived. + + ## A largely similar derivation is also needed for the + ## case when ${COMP_WORDS[2]} is not CMD. A similar + ## completion list will be derived in that case. + ## Afterwards, things will be removed from these as + ## needed, before the final COMPREPLY is computed. + + cmd=${COMP_WORDS[2]} + case $cmd in + BATCH) + + ## if last word is a filename (not starting with + ## -) then no more options are allowed, but can be + ## followed by any file (outfile) + + if [[ $COMP_CWORD -gt 3 ]] && \ + [[ $lastToken != -* ]] ; then + + furtherOpts="" + fileNames=$( compgen -f -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + + else + + furtherOpts="$versOpts $helpOpts $stdOpts $argOpts --no-timing" + fileNames=$( compgen -f -X '!*.@(R|r|S|s)' -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + + fi + ;; + + COMPILE) + if [[ $COMP_CWORD -gt 3 ]] && \ + [[ $lastToken != -* ]] ; then + + furtherOpts="" + fileNames=$( compgen -f -X '!*.@(c|cc|cpp|C|f)' -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + + else + + furtherOpts="$versOpts $helpOpts -D" + fileNames=$( compgen -f -X '!*.@(c|cc|cpp|C|f)' -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + + fi + ;; + + SHLIB) + if [[ $COMP_CWORD -gt 3 ]] && \ + [[ $lastToken != -* ]] ; then + + furtherOpts="" + fileNames=$( compgen -f -X '!*.@(a|o)' -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + + else + + furtherOpts="$versOpts $helpOpts -o --output -c --clean \ + --preclean -n --dry-run" + fileNames=$( compgen -f -X '!*.@(a|o)' -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + + fi + + ;; + + INSTALL) + if [[ $COMP_CWORD -gt 3 ]] && \ + [[ $lastToken == @(-l|--library) ]] ; then + + furtherOpts="" + dirNames=$( compgen -d -- "$cur" ) + + else + + furtherOpts="$versOpts $helpOpts \ +--configure-args --configure-vars -c --clean --preclean -d --debug -l \ +--library --no-configure --no-docs --html --no-html --latex --example \ +--fake --no-lock --lock --pkglock --build --install-tests --no-R \ +--no-libs --no-data --no-help --no-demo --no-exec --no-inst \ +--no-multiarch --libs-only --data-compress --resave-data \ +--compact-docs --with-keep.source --without-keep.source --byte-compile \ +--no-clean-on-error --merge-multiarch" + fileNames=$( compgen -f -X '!*.@(tar.gz|tgz)' -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + + fi + ;; + + REMOVE) + furtherOpts="$versOpts $helpOpts -l --library" + if [[ $COMP_CWORD -gt 3 ]] && \ + [[ $lastToken == @(-l|--library) ]] ; then + dirNames=$( compgen -d -- "$cur" ) + fi + ;; + + build) + + furtherOpts="$versOpts $helpOpts \ +--force --keep-empty-dirs --no-build-vignettes --no-manual --resave-data \ +--no-resave-data --compact-vignettes --md5" + dirNames=$( compgen -d -- "$cur" ) + ;; + + check) + + furtherOpts="$versOpts $helpOpts \ +-l --library -o --output \ +--no-clean --no-codoc --no-examples --no-install --no-tests \ +--no-manual --no-vignettes --no-build-vignettes --use-gct \ +--use-valgrind --timings --install-args --check-subdirs --as-cran \ +--extra-arch --multiarch --no-multiarch --force-multiarch" + + fileNames=$( compgen -f -X '!*.@(tar.gz|tgz)' -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + ;; + + LINK) + furtherOpts="$versOpts $helpOpts" + ;; + + Rprof) + furtherOpts="$versOpts $helpOpts --lines --total --self --linesonly --min%total --min%self" + fileNames=$( compgen -f -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + ;; + + Rdconv) + + furtherOpts="$versOpts $helpOpts -t --type \ + --encoding --package -o --output --os --OS" + + fileNames=$( compgen -f -X '!*.@(Rd)' -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + ;; + + Rd2pdf) + + furtherOpts="$versOpts $helpOpts --batch \ + --no-clean --no-preview --encoding --outputEncoding \ + --os --OS -o --output --force --title \ + --no-index --no-description --internals" + + fileNames=$( compgen -f -X '!*.@(Rd)' -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + ;; + + Rd2txt) + furtherOpts="$versOpts $helpOpts -t --type --encoding --package -o --output --os --OS" + fileNames=$( compgen -f -X '!*.@(Rd)' -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + ;; + + Sweave) + + ## if last word is a filename (not starting with + ## -) then nothing more is allowed + + if [[ $COMP_CWORD -gt 3 ]] && \ + [[ $lastToken != -* ]] ; then + + return 0 + + else + + furtherOpts="$versOpts $helpOpts --driver --engine --encoding --options --pdf --compact" + fileNames=$( compgen -f -X '!*.@(Rnw|rnw|Snw|snw)' -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + + fi + ;; + + Stangle) + + ## if last word is a filename (not starting with + ## -) then nothing more is allowed + + if [[ $COMP_CWORD -gt 3 ]] && \ + [[ $lastToken != -* ]] ; then + + return 0 + + else + + furtherOpts="$versOpts $helpOpts --engine --encoding --options" + fileNames=$( compgen -f -X '!*.@(Rnw|rnw|Snw|snw)' -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + + fi + ;; + + config) + + if [[ $COMP_CWORD -gt 3 ]] ; then + + return 0 + + else + + furtherOpts="$versOpts $helpOpts --ldflags --cppflags \ +--no-user-files --no-site-files \ +BLAS_LIBS CC CFLAGS CPICFLAGS CPP CPPFLAGS CXX CXXCPP CXXFLAGS \ +CXXPICFLAGS DYLIB_EXT DYLIB_LD DYLIB_LDFLAGS F77 FFLAGS FLIBS \ +FPICFLAGS FC FCFLAGS FCPICFLAGS JAR JAVA JAVAC JAVAH JAVA_HOME \ +JAVA_LIBS JAVA_CPPFLAGS LAPACK_LIBS LIBnn LDFLAGS OBJC OBJCFLAGS MAKE \ +SAFE_FFLAGS SHLIB_CFLAGS SHLIB_CXXLD SHLIB_CXXLDFLAGS SHLIB_EXT \ +SHLIB_FFLAGS SHLIB_LD SHLIB_LDFLAGS SHLIB_FCLD SHLIB_FCLDFLAGS \ +TCLTK_CPPFLAGS TCLTK_LIBS" + + fi + ;; + + + javareconf) + furtherOpts="$versOpts $helpOpts -n --dry-run -e" + ;; + + + rtags) + furtherOpts="$versOpts $helpOpts -o --output --no-c --no-R \ + --no-Rd -a --append -V --verbose" + dirNames=$( compgen -d -- "$cur" ) + ;; + + esac + + fi + + elif [[ $lastToken == "<" ]] ; then + + ## R [options] < + furtherOpts="" + fileNames=$( compgen -f -X '!*.@(R|r|S|s)' -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + + elif [[ $lastToken == ">" ]] ; then + + ## R [options] > + furtherOpts="" + fileNames=$( compgen -f -- "$cur" ) + dirNames=$( compgen -d -- "$cur" ) + + else + + case $lastToken in + + -g|--gui) + furtherOpts="X11 Tk" + ;; + -d|--debugger) ## allow commands + furtherOpts=$( compgen -c -- "$cur" ) + ;; + + *) ## NOT 'R CMD ': see comments above + furtherOpts="$versOpts $helpOpts $stdOpts $argOpts" ;; + + esac + fi + + ## need some removal + + ## take out options already given + for (( i=1; i<=$COMP_CWORD-1; ++i )) ; do + + opt=${COMP_WORDS[$i]} + + case $opt in + --*) optBase=${opt/=*/} ;; + -*) optBase=${opt:0:2} ;; + esac + + ## can't seem to do this using case + if [[ $opt == "<" ]] ; then + ## no more args allowed + furtherOpts="" + elif [[ $opt == ">" ]] ; then + ## no more args allowed + furtherOpts="" + fi + + + allOpts=" $furtherOpts " + allOpts=${allOpts/ ${optBase} / } + + #echo $allOpts + + ## take out alternatives and mutually exclusives + case $optBase in + +# not working +# "<") ## only filenames allowed +# echo "-----------" +# allOpts=">" ;; +# ">") ## only filenames allowed +# allOpts="<" ;; + + -q|--quiet|--silent) + allOpts=${allOpts/ -q / } + allOpts=${allOpts/ --quiet / } + allOpts=${allOpts/ --silent / } + #echo $allOpts + + ;; + --save|--no-save) + allOpts=${allOpts/ --save / } + allOpts=${allOpts/ --no-save / } + ;; + --vanilla) + allOpts=${allOpts/ --no-save / } + allOpts=${allOpts/ --no-restore / } + allOpts=${allOpts/ --no-site-file / } + allOpts=${allOpts/ --no-init-file / } + allOpts=${allOpts/ --no-environ / } + ;; + -d) allOpts=${allOpts/ --debugger / } ;; + --debugger) allOpts=${allOpts/ -d / } ;; + --restore) allOpts=${allOpts/ --no-restore / } ;; + --no-restore) allOpts=${allOpts/ --restore / } ;; + -g|--gui) + allOpts=${allOpts/ -g / } + allOpts=${allOpts/ --gui / } + ;; + + BATCH) + allOpts=${allOpts/ --restore / } + allOpts=${allOpts/ --save / } + allOpts=${allOpts/ --no-readline / } + ;; + + esac + + done + + ## and finally: + + COMPREPLY=( + $( compgen -W "$allOpts $fileNames $dirNames" -- $cur ) + ) + return 0 + + +} + +complete -F _R -o default R + +## Add more aliases here, e.g. + +# for e in R-devel R-patched; do complete -F _R -o default ${e}; done + + + +### Local variables: +### mode: shell-script +### End: diff -Nru r-base-3.0.1/debian/r-cran.mk r-base-3.1.1/debian/r-cran.mk --- r-base-3.0.1/debian/r-cran.mk 2014-07-11 23:10:18.000000000 +0000 +++ r-base-3.1.1/debian/r-cran.mk 2014-07-11 23:10:19.000000000 +0000 @@ -104,7 +104,7 @@ ## the re-invocation of a build process should not ## leave a footprint in Debian's diff.gz. if test -d src; then \ - find src -regex ".*\..*o" | \ + find src -regex ".*\.o" | \ xargs --no-run-if-empty -r rm; \ fi rm -f config.log config.status diff -Nru r-base-3.0.1/debian/r-mathlib.lintian r-base-3.1.1/debian/r-mathlib.lintian --- r-base-3.0.1/debian/r-mathlib.lintian 2014-07-11 23:10:18.000000000 +0000 +++ r-base-3.1.1/debian/r-mathlib.lintian 2014-07-11 23:10:19.000000000 +0000 @@ -1,3 +1,4 @@ r-mathlib: non-dev-pkg-with-shlib-symlink usr/lib/libRmath.so.1.0.0 usr/lib/libRmath.so r-mathlib: missing-depends-line r-mathlib: package-name-doesnt-match-sonames libRmath1 +r-mathlib: hardening-no-relro usr/lib/libRmath.so.1.0.0 diff -Nru r-base-3.0.1/debian/rules r-base-3.1.1/debian/rules --- r-base-3.0.1/debian/rules 2014-07-11 23:10:18.000000000 +0000 +++ r-base-3.1.1/debian/rules 2014-07-11 23:10:19.000000000 +0000 @@ -1,7 +1,7 @@ #!/usr/bin/make -f # debian/rules file for the Debian GNU/Linux r-base package # Copyright 1997-2003 Douglas Bates -# Copyright 1998-2012 Dirk Eddelbuettel +# Copyright 1998-2014 Dirk Eddelbuettel # # $Id: rules,v 1.3 2007/05/06 17:13:23 edd Exp edd $ @@ -33,7 +33,8 @@ ## updated rules throughout arch := $(shell dpkg-architecture -qDEB_BUILD_GNU_CPU) buildarch := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) - +## edd 26 Jul 2013 also use DEB_HOST_ARCH_OS to catch kFreeBSD +buildos := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) #export DH_VERBOSE = 1 # edd 15 Aug 2001 default to blas, atlas can override it @@ -76,7 +77,11 @@ f95compiler = gfortran compiler = "gcc -std=gnu99" cxxcompiler = g++ -optimflags = -O3 -pipe +# edd 31 Mar 2014 +#optimflags = -O3 -pipe +optimflags = $(shell dpkg-buildflags --get CFLAGS) +# edd 08 Apr 2014 add CPPFLAGS +optimflags += $(shell dpkg-buildflags --get CPPFLAGS) # edd 22 Apr 2012 gcc-4.7 needs -O2 to build R (also #67359) ifneq "$(shell gcc --version | head -1 | cut -d' ' -f4 | grep '^4.7')" "" @@ -135,18 +140,28 @@ optimflags += -mminimal-toc endif +## edd 26 Jul 2013 kFreeBSD wants -O2 per #714506 +ifeq ($(buildos),kfreebsd) +optimflags = -O2 -pipe +endif + + ## edd 04 Apr 2006 generalize from old compilerflags to per-compiler ## edd 11 Oct 2011 -std=gnu goes to CC (thanks to Kurt Hornik) cflags = $(optimflags) cxxflags = $(optimflags) -fcflags = $(optimflags) +## edd 31 Mar 2014 with thanks to Julian Gilbey in #726913 +#fcflags = $(optimflags) +fcflags = $(shell dpkg-buildflags --get FFLAGS) ## edd 17 Sep 2006 suggested by Brian Ripley in email dated 15 Sep 2006 #ldflags = -Wl,-O1,-Bdirect,--hash-style=both -ldflags = -Wl,-O1 +#ldflags = -Wl,-O1 ## edd 06 May 2007 try it ## edd 05 Feb 2008 still no go under gcc 4.3 #ldflags = -Wl,-O1,-Bdirect,--hash-style=both +## edd 31 Mar 2014 +ldflags = $(shell dpkg-buildflags --get LDFLAGS) ## edd 16 Apr 2008 add -g to optim flags to allow for -dbg package optimflags += -g @@ -233,7 +248,7 @@ FFLAGS="$(fcflags)" \ FCFLAGS="$(fcflags)" \ CPPFLAGS= \ - LDFLAGS= \ + LDFLAGS="$(ldflags)" \ FLIBS= \ rsharedir=/usr/share/R/share \ rincludedir=/usr/share/R/include \ @@ -322,7 +337,9 @@ # $(MAKE) html # $(MAKE) help $(MAKE) info - (cd doc/manual && $(MAKE) refman.pdf R-admin.pdf R-data.pdf R-exts.pdf R-FAQ.pdf R-intro.pdf R-ints.pdf R-lang.pdf && touch fullrefman.pdf ) + (cd doc/manual && \ + $(MAKE) refman.pdf R-admin.pdf R-data.pdf R-exts.pdf \ + R-FAQ.pdf R-intro.pdf R-ints.pdf R-lang.pdf) $(MAKE) pdf $(MAKE) vignettes touch make-indep-stamp @@ -337,8 +354,11 @@ ## edd 11 Oct 2005 also disable on hppa ## edd 15 Apr 2008 call inside of xvfb-run for virtual x11, and switch to check-all ifeq "$(findstring $(arch), hppa arm)" "" +## edd 29 Jul 2013 also disable on kFreeBSD +ifneq ($(buildos),kfreebsd) -xvfb-run make check-all endif +endif touch check-stamp clean: @@ -445,7 +465,6 @@ rdocdir=$(debtmp)/usr/share/R/doc \ install-pdf - # the indep package r-doc-info is made now make prefix=$(debtmp)/usr \ infodir=$(debtmp)/usr/share/info install-info @@ -532,8 +551,10 @@ # debian/$(corepackage)/usr/lib/R/share/perl/ # add tab completion by Deepayan - install -m 0644 debian/R.bash_completion \ - debian/$(corepackage)/etc/bash_completion.d/R + #install -m 0644 debian/R.bash_completion \ + # debian/$(corepackage)/etc/bash_completion.d/R + # edd 24 Mar 2014 now installs via dh_bash-completion + dh_bash-completion # edd 02 May 2007 add libR.conf for ld.so # edd 13 Sep 2009 no more under Policy 3.8.3 @@ -543,7 +564,7 @@ (cd $(debtmp)/usr/lib/; \ ln -sv R/lib/libR.so . ) - # edd 21 Jun 2012 add icon and desktop file from Philip Johnson's patch + # edd 21 Jun 2012 add icon and desktop file from Philip Johnson's patch (cd debian/icon-class-patch && munpack rlogo_icon.png.mpack) install -m 0644 debian/icon-class-patch/rlogo_icon.png \ debian/$(corepackage)/usr/share/icons/hicolor/48x48/apps @@ -628,10 +649,10 @@ dh_testroot -a #dh_installdebconf -a # edd 04 Apr 2006 AUTHORS RESOURCES THANKS Y2K FAQ all gone - dh_installdocs -p$(corepackage) NEWS ONEWS OONEWS README \ + dh_installdocs -p$(corepackage) doc/NEWS.* README \ debian/README.Atlas \ debian/README.mathlib - dh_installdocs -p$(nmathpackage) NEWS ONEWS OONEWS README \ + dh_installdocs -p$(nmathpackage) doc/NEWS.* README \ debian/README.mathlib dh_installdocs -p$(dbugpackage) #dh_installexamples -a @@ -663,7 +684,7 @@ # install -p -m 0644 debian/$(dbugpackage).lintian \ # $(debbase)/$(dbugpackage)/usr/share/lintian/overrides/$(dbugpackage) #dh_undocumented -a - dh_installchangelogs -a -k NEWS + dh_installchangelogs -a -k doc/NEWS # dh_strip -a dh_strip --sourcedir=$(debtmp) --dbg-package=r-base-core-dbg dh_strip --sourcedir=$(debmat) diff -Nru r-base-3.0.1/debian/watch r-base-3.1.1/debian/watch --- r-base-3.0.1/debian/watch 2014-07-11 23:10:18.000000000 +0000 +++ r-base-3.1.1/debian/watch 2014-07-11 23:10:19.000000000 +0000 @@ -2,4 +2,4 @@ version=2 # This is one format for an HTTP site, which is the same as the FTP format -http://cran.r-project.org/src/base/R-2/R-([-0-9\.]*).tar.gz +http://cran.r-project.org/src/base/R-3/R-([-0-9\.]*).tar.gz diff -Nru r-base-3.0.1/doc/COPYRIGHTS r-base-3.1.1/doc/COPYRIGHTS --- r-base-3.0.1/doc/COPYRIGHTS 2013-03-05 23:02:45.000000000 +0000 +++ r-base-3.1.1/doc/COPYRIGHTS 2014-03-12 23:03:32.000000000 +0000 @@ -58,8 +58,7 @@ To avoid any anomalies, the versions of the same files in R versions 1.0.0 to 1.2.1 may also be used under LGPL or GPL. -As from R 2.3.0 import libraries are no longer used under Windows, and -as from R 2.4.0 fewer export files are used under AIX. +Import libraries are no longer used under Windows. Some contributed files are also covered by the Library General Public License. These include (see also below) @@ -111,23 +110,18 @@ Copyright (C) 1997 R. Gentleman & R. Ihaka Copyright (C) 1997, 1998 M. Maechler -shares/licenses/* +share/licenses/* See the individual files. share/texmf/bibtex/bst/jss.bst - Copyright 1994-2005 Patrick W Daly + Copyright 1994-2007 Patrick W Daly share/texmf/tex/latex/jss.cls Copyright: (C) Achim Zeileis -share/texmf/tex/latex/upquote.sty - - Copyright 2000 Michael A. Covington. - Copyright 2003 Michael A. Covington, Frank Mittelbach. - src/library/graphics/R/mosaicplot.R Original code copyright (C) 1998 John W. Emerson @@ -147,6 +141,7 @@ src/library/datasets/man/austres.Rd src/library/datasets/man/beavers.Rd src/library/datasets/man/lh.Rd +src/library/datasets/man/npk.Rd src/library/datasets/man/rock.Rd src/library/datasets/man/UKLungDeaths.Rd src/library/datasets/man/USAccDeaths.Rd @@ -267,19 +262,65 @@ src/modules/lapack/dlapack.f, cmplx.f, dlamc.f Extracted from - * -- LAPACK computational routine (version 3.4.0) -- + * -- LAPACK computational routine (version 3.5.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- - * November 2011 + * September 2012 + + where the version number, providers and date vary by subroutine. + + LAPACK 3.5.0 contains a LICENSE file, copied to src/modules/lapack + (but many of these routines were originally copied from earlier + versions of LAPACK). For binary distributions it is reproduced here: - where the version number and date vary by subroutine. + Copyright (c) 1992-2011 The University of Tennessee and The University + of Tennessee Research Foundation. All rights + reserved. + Copyright (c) 2000-2011 The University of California Berkeley. All + rights reserved. + Copyright (c) 2006-2012 The University of Colorado Denver. All rights + reserved. - The LAPACK README says + $COPYRIGHT$ - It is freely-available software, and is copyrighted. + Additional copyrights may follow - but no copyright statements appear in the sources. + $HEADER$ + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer listed + in this license in the documentation and/or other materials + provided with the distribution. + + - Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + The copyright holders provide no reassurances that the source code + provided does not infringe any patent, copyright, or any other + intellectual property rights of third parties. The copyright holders + disclaim any liability to any recipient for claims brought against + recipient by any third party for infringement of that parties + intellectual property rights. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. src/extra/xdr/* @@ -290,7 +331,7 @@ src/extra/zlib/README, *.c, *.h - Taken from zlib-1.2.7 (C) 1995-2012 Jean-loup Gailly and Mark Adler + Taken from zlib-1.2.8 (C) 1995-2013 Jean-loup Gailly and Mark Adler See src/extra/zlib/README for the licence. src/main/connections.c, src/main/gzio.h @@ -308,9 +349,9 @@ src/extra/pcre/*.[ch] src/main/valid_utf8.h - Copyright (c) 1997-2012 University of Cambridge + Copyright (c) 1997-2013 University of Cambridge All rights reserved. - Copyright(c) 2009-2012 Zoltan Herczeg + Copyright(c) 2009-2013 Zoltan Herczeg See file src/extra/pcre/LICENCE. For binary builds of R that requires us to include @@ -394,6 +435,27 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +src/extra/tzone/strftime.c +/* + Based on code from tzcode, which is turn said to be + 'Based on the UCB version with the copyright notice appearing below.' + +** Copyright (c) 1989 The Regents of the University of California. +** All rights reserved. +** +** Redistribution and use in source and binary forms are permitted +** provided that the above copyright notice and this paragraph are +** duplicated in all such forms and that any documentation, +** advertising materials, and other materials related to such +** distribution and use acknowledge that the software was developed +** by the University of California, Berkeley. The name of the +** University may not be used to endorse or promote products derived +** from this software without specific prior written permission. +** THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +** IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +*/ + src/library/tools/src/md5.[ch] @@ -446,9 +508,7 @@ share/licenses/LGPL-2.1 share/licenses/LGPL-3 src/main/strdup.c -tools/config.quess tools/config.rpath -tools/config.sub tools/help2man.pl tools/ltmain.sh tools/mdate-sh @@ -456,11 +516,20 @@ Copyright various dates Free Software Foundation +tools/config.quess +tools/config.sub -tools/install-sh: + Copyright 1992-2013 Free Software Foundation. + The Exception to GPL-3 applies. + +tools/install-sh Copyright (C) 1994 X Consortium +m4/cxx_11.m4 +# Copyright (c) 2008 Benjamin Kosnik +# Copyright (c) 2012 Zack Weinberg +# Copyright (c) 2013 Roy Stogner m4/stat-time.m4 @@ -489,3 +558,8 @@ are part of LINPACK, with authors J.J. Dongarra, Cleve Moler and G.W. Stewart + +src/appl/dqrdc2.f is based on dqrdc.f by G.W. Stewart. + +src/appl/lbfgsb.c is based on the work of Zhu, Byrd, Lu-Chen and +Nocedal, which does not state any copyright. diff -Nru r-base-3.0.1/doc/CRAN_mirrors.csv r-base-3.1.1/doc/CRAN_mirrors.csv --- r-base-3.0.1/doc/CRAN_mirrors.csv 2013-04-18 22:05:05.000000000 +0000 +++ r-base-3.1.1/doc/CRAN_mirrors.csv 2014-05-20 22:15:08.000000000 +0000 @@ -6,23 +6,24 @@ "Australia (Melbourne)",Australia,Melbourne,http://cran.ms.unimelb.edu.au/,"University of Melbourne","cran # ms.unimelb.edu.au",1,au Austria,Austria,Wien,http://cran.at.r-project.org/,"Wirtschaftsuniversitaet Wien","CRAN # R-project.org",1,at Belgium,Belgium,Antwerp,http://www.freestatistics.org/cran/,"K.U.Leuven Association","patrick # wessa.net",1,be +"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 J. Ribeiro Jr ",1,br "Brazil (RJ)",Brazil,"Rio de Janeiro",http://cran.fiocruz.br/,"Oswaldo Cruz Foundation, Rio de Janeiro","oswaldo # fiocruz.br",1,br "Brazil (SP 1)",Brazil,"Sao Paulo",http://www.vps.fmvz.usp.br/CRAN/,"University of Sao Paulo, Sao Paulo","Fernando Ferreira ",1,br "Brazil (SP 2)",Brazil,Piracicaba,http://brieger.esalq.usp.br/CRAN/,"University of Sao Paulo, Piracicaba","aafgarci # esalq.usp.br",1,br "Canada (BC)",Canada,Burnaby,http://cran.stat.sfu.ca/,"Simon Fraser University, Burnaby","gripe # sfu.ca",1,ca "Canada (NS)",Canada,Halifax,http://mirror.its.dal.ca/cran/,"Dalhousie University, Halifax","mirror # lists.dal.ca",1,ca -"Canada (ON)",Canada,Toronto,http://probability.ca/cran/,"University of Toronto","Jeffrey S. Rosenthal ",1,ca +"Canada (ON)",Canada,Toronto,http://cran.utstat.utoronto.ca/,"University of Toronto","Dermot Whelan ",1,ca "Canada (QC 1)",Canada,Montreal,http://cran.skazkaforyou.com/,"iWeb, Montreal","mirrors # skazkaforyou.com",1,ca "Canada (QC 2)",Canada,Montreal,http://cran.parentingamerica.com/,"iWeb, Montreal","jmiller # Parentingamerica.com",1,ca Chile,Chile,Santiago,http://dirichlet.mat.puc.cl/,"Pontificia Universidad Catolica de Chile, Santiago","Fernando Quintana ",1,cl "China (Beijing 1)",China,Bejing,http://ftp.ctex.org/mirrors/CRAN/,CTEX.ORG,"Aloft Wu ",1,cn "China (Beijing 2)",China,Bejing,http://mirror.bjtu.edu.cn/cran,"Beijing Jiaotong University, Beijing","idealities # gmail.com",1,cn -"China (Guangzhou)",China,Guangzhou,http://cran.dataguru.cn,"Dataguru (a, Guangzhou","dataguru # 139.com",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 (Xiamen)",China,Xiamen,http://mirrors.xmu.edu.cn/CRAN/,"Xiamen University","admin # Xdmc.org",1,cn "Colombia (Bogota)",Colombia,Bogota,http://www.laqee.unal.edu.co/CRAN/,"National University of Colombia","Ernesto Parra Rincon ",1,co "Colombia (Cali)",Colombia,Cali,http://www.icesi.edu.co/CRAN/,"Icesi University","adminred # Icesi.edu.co",1,co +"Czech Republic","Czech Republic","Prague",http://mirrors.nic.cz/R/,"CZ.NIC, Prague","mirrors # nic.cz",1,cz Denmark,Denmark,Aalborg,http://mirrors.dotsrc.org/cran/,"dotsrc.org, Aalborg","mirror # dotsrc.org",1,dk Ecuador,Ecuador,Guayaquil,http://cran.espol.edu.ec/,"Escuela Superior Politecnica del Litoral","jrodrig # espol.edu.ec",1,ec "France (Lyon 1)",France,Lyon,http://cran.univ-lyon1.fr/,"Dept. of Biometry & Evol. Biology, University of Lyon","Jean Thioulouse ",1,fr @@ -32,36 +33,37 @@ "France (Paris 2)",France,Paris,http://cran.univ-paris1.fr/,"Universite Paris 1 Pantheon-Sorbonne","pierre.latouche # univ-paris1.fr",1,fr "Germany (Berlin)",Germany,Berlin,http://mirrors.softliste.de/cran/,"Softliste.de, Berlin","docko # docko.sk",1,de "Germany (Bonn)",Germany,Bonn,http://cran.r-mirror.de/,"Stefan Drees, Bonn","stefan # drees.name",1,de -"Germany (Falkenstein)",Germany,Falkenstein,http://mirror.layerjet.com/cran,layerjet.com,"Elton Chung ",1,de "Germany (Goettingen)",Germany,Goettingen,http://ftp5.gwdg.de/pub/misc/cran/,"GWDG Goettingen","Eberhard Moenkeberg ",1,de Greece,Greece,Crete,http://cran.cc.uoc.gr/,"University of Crete","mirrors # Cc.uoc.gr",1,gr Hungary,Hungary,Budapest,http://cran.rapporter.net/,"Rapporter.net, Budapest","Daróczi Gergely ",1,hu India,India,Chennai,http://ftp.iitm.ac.in/cran/,"Indian Institute of Technology Madras","sriram # iitm.ac.in",1,in -Indonesia,Indonesia,Jakarta,http://cran.repo.bppt.go.id/,"Agency for The Application and Assessment of Technology","Imam Cartealy ",1,id +"Indonesia (Jakarta)",Indonesia,Jakarta,http://cran.repo.bppt.go.id/,"Agency for The Application and Assessment of Technology","Imam Cartealy ",1,id +"Indonesia (Jember)",Indonesia,Jember,http://cran.unej.ac.id,"The University of Jember","itirta.fmipa # unej.ac.id, tirtaimade # gmail.com",1,id Iran,Iran,Mashhad,http://cran.um.ac.ir/,"Ferdowsi University of Mashhad","Majid Sarmad ",1,ir Ireland,Ireland,Dublin,http://ftp.heanet.ie/mirrors/cran.r-project.org/,"HEAnet, Dublin","Brian McArdle ",1,ie "Italy (Milano)",Italy,Milano,http://cran.mirror.garr.it/mirrors/CRAN/,"Garr Mirror, Milano","mirror-service # garr.it",1,it "Italy (Padua)",Italy,Padua,http://cran.stat.unipd.it/,"University of Padua","cran # stat.unipd.it",1,it "Italy (Palermo)",Italy,Palermo,http://dssm.unipa.it/CRAN/,"Universita degli Studi di Palermo","elio.mineo # dssm.unipa.it, alf # dssm.unipa.it",1,it "Japan (Hyogo)",Japan,Hyogo,http://essrc.hyogo-u.ac.jp/cran/,"Hyogo University of Teacher Education","essrc-cran # hyogo-u.ac.jp",1,jp -"Japan (Tsukuba)",Japan,Tsukuba,http://cran.md.tsukuba.ac.jp/,"University of Tsukuba",,1,jp "Japan (Tokyo)",Japan,Tokyo,http://cran.ism.ac.jp/,"Institute of Statistical Mathematics, Tokyo","Junji Nakano ",1,jp +"Japan (Tsukuba)",Japan,Tsukuba,http://cran.md.tsukuba.ac.jp/,"University of Tsukuba","mokada # md.tsukuba.ac.jp",1,jp "Korea (Seoul 1)",Korea,Seoul,http://cran.nexr.com/,"NexR Corporation, Seoul","mining # nexr.com",1,kr "Korea (Seoul 2)",Korea,Seoul,http://biostat.cau.ac.kr/CRAN/,"Chung-Ang University, Seoul","Sunghow # gmail.com",1,kr -Latvia,Latvia,Riga,http://mirrors.webhostinggeeks.com/cran/,Webhostinggeeks,"whg.igp # gmail.com",1,lv +Lebanon,Lebanon,Byblos,http://rmirror.lau.edu.lb/,"Lebanese American University, Byblos","gGeorges Khazen ",1,lb "Mexico (Mexico City)",Mexico,"Mexico City",http://cran.itam.mx/,"Instituto Tecnologico Autonomo de Mexico","Ernesto Barrios ",1,mx "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","New Zealand",Auckland,http://cran.stat.auckland.ac.nz/,"University of Auckland","w.schmidt # auckland.ac.nz",1,nz Norway,Norway,Bergen,http://cran.uib.no/,"University of Bergen","sundrift # It.uib.no",1,no -Philippines,Philippines,"Quezon City",http://cran.stat.upd.edu.ph/,"University of the Philippines and PREGINET","edward.p.santos # Up.edu.ph",1,ph Poland,Poland,Wroclaw,http://r.meteo.uni.wroc.pl/,"University of Wroclaw","Paweł Netzel ",1,pl +Portugal,Portugal,Porto,http://cran.dcc.fc.up.pt/,"University of Porto","labcc # labcc.dcc.fc.up.pt",1,pt Russia,Russia,Moscow,http://cran.gis-lab.info/,GIS-Lab.info,"sim # gis-lab.info",1,ru Singapore,Singapore,Singapore,http://cran.stat.nus.edu.sg/,"National University of Singapore","Zhang Rong ",1,sg Slovakia,Slovakia,Bratislava,http://cran.fyxm.net/,"FYXM.net, Bratislava","docko # docko.sk",1,sk "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 ",1,za +"Spain (A Coruña)","Spain","A Coruña",http://ftp.cixug.es/CRAN,"Oficina de software libre (CIXUG)","",1,es "Spain (Madrid)",Spain,Madrid,http://cran.es.r-project.org/,"Spanish National Research Network, Madrid","Jose Manuel Macias ",1,es Sweden,Sweden,Uppsala,http://ftp.sunet.se/pub/lang/CRAN/,"Swedish University Computer Network, Uppsala","Goran Brostrom ",1,se Switzerland,Switzerland,Zuerich,http://stat.ethz.ch/CRAN/,"ETH Zuerich","Martin.Maechler # R-project.org",1,ch @@ -70,11 +72,13 @@ Thailand,Thailand,Hatyai,http://mirrors.psu.ac.th/pub/cran/,"Prince of Songkla University, Hatyai","wipat.s # psu.ac.th",1,th Turkey,Turkey,Denizli,http://cran.pau.edu.tr,"Pamukkale University, Denizli","Ugur Zeybek ",1,tr "UK (Bristol)",UK,Bristol,http://www.stats.bris.ac.uk/R/,"University of Bristol","Guy Nason ",1,uk +"UK (Cambridge)",UK,"Cambridge",http://mirrors.ebi.ac.uk/CRAN/,"EMBL-EBI (European Bioinformatics Institute)","Andrew Tikhonov ",1,uk "UK (London)",UK,London,http://cran.ma.imperial.ac.uk/,"Imperial College London","s.rochford # imperial.ac.uk",1,uk +"UK (London)",UK,"London",http://mirror.mdx.ac.uk/R/,"Middlesex University London","Louis Slabbert ",1,uk "UK (St Andrews)",UK,"St Andrews",http://star-www.st-andrews.ac.uk/cran/,"St Andrews University","Lee Kelvin ",1,uk "USA (CA 1)",USA,Berkeley,http://cran.cnr.Berkeley.edu,"University of California, Berkeley, CA","casterln # nature.berkeley.edu",1,us "USA (CA 2)",USA,"Los Angeles",http://cran.stat.ucla.edu/,"University of California, Los Angeles, CA","Jose Hales-Garcia ",1,us -"USA (IA)",USA,Ames,http://streaming.stat.iastate.edu/CRAN/,"Iowa State University, Ames, IA","Ted Peterson ",1,us +"USA (IA)",USA,Ames,http://streaming.stat.iastate.edu/CRAN/,"Iowa State University, Ames, IA","statit # iastate.edu",1,us "USA (IN)",USA,Bloomington,http://ftp.ussg.iu.edu/CRAN/,"Indiana University","rtadmin # indiana.edu",1,us "USA (KS)",USA,Lawrence,http://rweb.quant.ku.edu/cran/,"University of Kansas, Lawrence, KS","Paul Johnson ",1,us "USA (MD)",USA,Bethesda,http://watson.nci.nih.gov/cran_mirror/,"National Cancer Institute, Bethesda, MD","Sean Davis ",1,us diff -Nru r-base-3.0.1/doc/FAQ r-base-3.1.1/doc/FAQ --- r-base-3.0.1/doc/FAQ 2013-05-16 07:01:22.000000000 +0000 +++ r-base-3.1.1/doc/FAQ 2014-07-10 07:01:18.000000000 +0000 @@ -1,6 +1,6 @@ R FAQ Frequently Asked Questions on R -Version 3.0.2013-05-12 +Version 3.1.2014-07-03 Kurt Hornik @@ -125,7 +125,7 @@ 1.1 Legalese ============ -This document is copyright (C) 1998-2013 by Kurt Hornik. +This document is copyright (C) 1998-2014 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 Free @@ -158,13 +158,13 @@ 1.3 Citing this document ======================== -In publications, please refer to this FAQ as Hornik (2013), "The R FAQ", +In publications, please refer to this FAQ as Hornik (2014), "The R FAQ", and give the above, _official_ URL: @Misc{, author = {Kurt Hornik}, - title = {The {R} {FAQ}}, - year = {2013}, + title = {{R} {FAQ}}, + year = {2014}, url = {http://CRAN.R-project.org/doc/FAQ/R-FAQ.html} } @@ -256,7 +256,7 @@ 2.3 What is the current version of R? ===================================== -The current released version is 3.0.1. Based on this +The current released version is 3.1.1. Based on this `major.minor.patchlevel' numbering scheme, there are two development versions of R, a patched version of the current release (`r-patched') and one working towards the next minor or eventually major (`r-devel') releases @@ -352,15 +352,14 @@ -------------------------------------- The `bin/windows' directory of a CRAN site contains binaries for a base -distribution and a large number of add-on packages from CRAN to run on -Windows 2000 and later (including 64-bit versions of Windows) on ix86 and -x86_64 chips. The Windows version of R was created by Robert Gentleman and -Guido Masarotto, and is now being developed and maintained by Duncan -Murdoch and Brian D. Ripley -. +distribution and add-on packages from CRAN to run on Windows XP and later +(including 64-bit versions of Windows) on ix86 and x86_64 chips. The +Windows version of R was created by Robert Gentleman and Guido Masarotto, +and is now being developed and maintained by Duncan Murdoch + and Brian D. Ripley . - For most installations the Windows installer program will be the easiest -tool to use. + The same directory has links to snapshots of the r-patched and r-devel +versions of R. See the "R for Windows FAQ" (http://CRAN.R-project.org/bin/windows/base/rw-FAQ.html) for more details. @@ -369,21 +368,15 @@ ---------------------------------------- The `bin/macosx' directory of a CRAN site contains a standard Apple -installer package inside a disk image named `R.dmg'. Once downloaded and -executed, the installer will install the current non-developer release of -R. RAqua is a native Mac OS X Darwin version of R with a R.app Mac OS X -GUI. Inside `bin/macosx/powerpc/contrib/X.Y' there are prebuilt binary -packages (for powerpc version of Mac OS X) to be used with RAqua -corresponding to the "X.Y" release of R. The installation of these packages -is available through the "Package" menu of the R.app GUI. This port of R -for Mac OS X is maintained by Stefano Iacus . -The "R for Mac OS X FAQ +installer package to run on OS X 10.6 (`Snow Leopard') and later. Once +downloaded and executed, the installer will install the current release of +R and a R.app Mac OS X GUI. This port of R for Mac OS X is maintained by +Simon Urbanek (and previously by Stefano +Iacus). The "R for Mac OS X FAQ (http://CRAN.R-project.org/bin/macosx/RMacOSX-FAQ.html) has more details. - The `bin/macos' directory of a CRAN site contains bin-hexed (`hqx') and -stuffit (`sit') archives for a base distribution and a large number of -add-on packages of R 1.7.1 to run under Mac OS 8.6 to Mac OS 9.2.2. This -port of R for Macintosh is no longer supported. + Snapshots of the r-patched and r-devel versions of R are available as +Apple installer packages at `http://r.research.att.com'. 2.6 Are there Unix-like binaries for R? ======================================= @@ -528,7 +521,7 @@ author = {{R Core Team}}, organization = {R Foundation for Statistical Computing}, address = {Vienna, Austria}, - year = 2013, + year = 2014, url = {http://www.R-project.org} } @@ -1663,7 +1656,7 @@ transcript files, manipulating and editing saved transcripts, and re-evaluating commands from transcript files). - The latest stable version of ESS are available via CRAN or the ESS web + The latest stable version of ESS is available via CRAN or the ESS web page (http://ESS.R-project.org/). The HTML version of the documentation can be found at `http://stat.ethz.ch/ESS/'. @@ -1788,7 +1781,7 @@ R> D(expression(x^2), "x") 2 * x - Although this behavior may initially seem to be rather strange, is + Although this behavior may initially seem to be rather strange, it is perfectly logical. The "intuitive" behavior could easily be implemented, but problems would arise whenever the expression is contained in a variable, passed as a parameter, or is the result of a function call. @@ -2004,7 +1997,7 @@ where subexpressions enclosed in `.()' are replaced by their values. - There are more worked examples in the mailing list archives. + There are more examples in the mailing list archives. 7.14 What are valid names? ========================== @@ -2020,7 +2013,7 @@ 1. A _syntactic name_ is a string the parser interprets as this type of expression. It consists of letters, numbers, and the dot and (for - version of R at least 1.9.0) underscore characters, and starts with + versions of R at least 1.9.0) underscore characters, and starts with either a letter or a dot not followed by a number. Reserved words are not syntactic names. @@ -2124,6 +2117,8 @@ outer(1:4, 1:2, FUN = wrapper, my.fun = foo, happy = 10) + Scalar functions can also be vectorized using `Vectorize()'. + 7.18 Why does the output from anova() depend on the order of factors in the model? ================================================================================== @@ -2157,7 +2152,7 @@ 2.7.0, or without support for cairo. From R 2.7.0 `png()' by default uses the Quartz device on Mac OS X, and that too works in batch mode. - Earlier versions of the `png()' device uses the X11 driver, which is a + Earlier versions of the `png()' device used the X11 driver, which is a problem in batch mode or for remote operation. If you have Ghostscript you can use `bitmap()', which produces a PostScript or PDF file then converts it to any bitmap format supported by Ghostscript. On some installations @@ -2488,7 +2483,7 @@ and _representations_ of character strings. Mostly, the representation in R is just the string with a single or double quote at either end, but there are strings that cannot be represented that way, e.g., strings that -themselves contains the quote character. So +themselves contain the quote character. So > str <- "This \"text\" is quoted" > str diff -Nru r-base-3.0.1/doc/html/Makefile.in r-base-3.1.1/doc/html/Makefile.in --- r-base-3.0.1/doc/html/Makefile.in 2010-09-16 22:02:28.000000000 +0000 +++ r-base-3.1.1/doc/html/Makefile.in 2013-09-01 22:05:04.000000000 +0000 @@ -12,7 +12,7 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) INSTFILES = \ - R.css Search.html SearchOn.html \ + NEWS.2.html R.css Search.html SearchOn.html \ favicon.ico left.jpg logo.jpg logosm.jpg right.jpg up.jpg \ about.html packages-head-utf8.html NON_SVN_INSTFILES = resources.html NEWS.html diff -Nru r-base-3.0.1/doc/html/NEWS.2.html r-base-3.1.1/doc/html/NEWS.2.html --- r-base-3.0.1/doc/html/NEWS.2.html 1970-01-01 00:00:00.000000000 +0000 +++ r-base-3.1.1/doc/html/NEWS.2.html 2013-09-01 22:05:04.000000000 +0000 @@ -0,0 +1,9001 @@ + +R: R News + + + + +
NEWSR Documentation
+ +

R News

+ +

LATER NEWS

+ +

News for R 3.0.0 and later can be found in file ‘NEWS.Rd’ in the +R sources and files ‘NEWS’ and ‘doc/html/NEWS.html’ +in an R build. +

+ + +

../../html/logo.jpg CHANGES IN R VERSION 2.15.3

+ + + +

NEW FEATURES

+ + +
    +
  • lgamma(x) for very small x (in the +denormalized range) is no longer Inf with a warning. +

    +
  • +
  • image() now sorts an unsorted breaks vector, +with a warning. +

    +
  • +
  • The internal methods for tar() and untar() do +a slightly more general job for ‘ustar’-style handling of +paths of more than 100 bytes. +

    +
  • +
  • Packages compiler and parallel have been added +to the reference index (‘refman.pdf’). +

    +
  • +
  • untar(tar = "internal") has some support for +pax headers as produced by e.g. gnutar --posix +(which seems prevalent on OpenSUSE 12.2) or +bsdtar --format pax, including long path and link names. +

    +
  • +
  • sQuote() and dQuote() now handle 0-length +inputs. (Suggestion of Ben Bolker.) +

    +
  • +
  • summaryRprof() returns zero-row data frames rather +than throw an error if no events are recorded, for consistency. +

    +
  • +
  • The included version of PCRE has been updated to 8.32. +

    +
  • +
  • The tcltk namespace can now be re-loaded after +unloading. +

    +

    The Tcl/Tk event loop is inhibited in a forked child from package +parallel (as in e.g. mclapply()). +

    +
  • +
  • parallel::makeCluster() recognizes the value +random for the environment variable R_PARALLEL_PORT: +this chooses a random value for the port and reduces the chance of +conflicts when multiple users start a cluster at the same time. +

    +
+ + + + +

UTILITIES

+ + +
    +
  • The default for TAR on Windows for R CMD + build has been changed to be internal if no +tar command is on the path. +

    +

    This enables most packages to be built ‘out of the box’ +without Rtools: the main exceptions are those which need +to be installed to re-build vignettes and need Rtools +for installation (usually because they contain compiled code). +

    +
+ + + + +

C-LEVEL FACILITIES

+ + +
    +
  • On a 64-bit Windows platform with enough RAM, R_alloc +can now allocate up to just under 32GB like other 64-bit +platforms. +

    +
+ + + + +

DEPRECATED AND DEFUNCT

+ + +
    +
  • Use of col2rgb(0) is deprecated (see the help page +for its limitations). +

    +
  • +
  • The deprecated intensities component returned by +hist() is no longer recognized by the plot() method +and will be removed in R 3.0.0. +

    +
  • +
  • real(), as.real() and is.real() are now +formally deprecated and give a warning. +

    +
  • +
  • This is formal notice that the non-API EISPACK entry points +in R will be removed shortly. +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • The configure tests for Objective C and Objective +C++ now work on Mac OS 10.8 with Xcode 4.5.2 (PR#15107). +

    +
  • +
  • The cairo-based versions of X11() now work with +current versions of cairographics (e.g. 1.12.10). (PR#15168) +

    +

    A workaround for earlier versions of R is to use +X11.options(type = "nbcairo"). +

    +
  • +
  • Configuration and R CMD javareconf now come up +with a smaller set of library paths for Java on Oracle-format JDK +(including OpenJDK). This helps avoid conflicts between libraries +(such as libjpeg) supplied in the JDK and system +libraries. This can always be overridden if needed: see the +‘R Installation and Administration’ manual. +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • beta(a, b) could overflow to infinity in its +calculations when one of a and b was less than one. +(PR#15075) +

    +
  • +
  • lbeta(a, b) no longer gives NaN if a or +b is very small (in the denormalized range). +

    +
  • +
  • bquote() is now able to substitute default arguments in +single-argument functions. (PR#15077) +

    +
  • +
  • browseEnv(html = FALSE) would segfault if called from +R (not R.app) on a CRAN-style Mac OS X build of R. +

    +
  • +
  • [[<- for lists (generic vectors) needed to increment +NAMED count when RHS is used more than once. (PR#15098) +

    +
  • +
  • On Windows, warnings about opening a file or pipe with a +non-ASCII description were sometimes output in UTF-8 rather than +in the current locale's character set. +

    +
  • +
  • The call() function did not duplicate its arguments. +(PR#15115) +

    +
  • +
  • TukeyHSD() could give NA results with some +na.action methods such as na.exclude(). +(Hinted at on R-help by John Fox.) +

    +
  • +
  • The deprecated svd(X, LINPACK = TRUE) could alter +X in R 2.15.[12]. (Reported by Bill Dunlap.) +

    +
  • +
  • Under Windows, file.link() and file.symlink() +used the link name twice, so would always fail. (Reported +by Rui Barradas/Oliver Soong). +

    +
  • +
  • summaryRprof(memory = "both") mixed up the units of +Vcells and Ncells: it now works in bytes. (PR#15138) +

    +
  • +
  • tools::Rd2HTML() would sometimes delete text. (PR#15134) +

    +
  • +
  • plot() failed for "table" objects containing +just one entry. (PR#15118) +

    +
  • +
  • embedFonts() needed to quote some filepaths. +(PR#15149) +

    +
  • +
  • parallel::mccollect() handled NULL returns +incorrectly (removing the element rather than setting it to +NULL). +

    +
  • +
  • The full reference index (‘fullrefman.pdf’) was missing +packages compiler and parallel. +

    +
  • +
  • The report for +optim(method = "L-BFGS-B", control = list(trace = 1)) +reported the last completed and not the current iteration, unlike +other methods and trace levels. (PR#15103) +

    +
  • +
  • qt(1e-12, 1.2) no longer gives NaN. +

    +
  • +
  • dt(1e160, 1.2, log=TRUE) no longer gives -Inf. +

    +
  • +
  • On Windows the untar() function now quotes the +directory name when using an external tar utility, so +R CMD check will handle pathnames containing spaces. +

    +
  • +
  • The version for Windows 8 and Windows Server 2012 is now +displayed by win.version(). (Reported by Gabor +Grothendieck.) +

    +
  • +
  • The custom Windows installer target myR in the +installer ‘Makefile’ did not work in 2.15.2. (Reported +by Erich Neuwirth.) +

    +
  • +
  • aperm(matrix(1:6, 2, dimnames=list(A={}, B={})), "A") +no longer segfaults. +

    +
  • +
  • Expressions involving user defined operators were not +always deparsed faithfully. (PR#15179) +

    +
  • +
  • The enc2utf8() function converted NA_character_ +to "NA" in non-UTF-8 locales. (PR#15201) +

    +
  • +
  • The exclude argument to xtabs() was ignored +for "factor" arguments. +

    +
  • +
  • On Windows, work around an event-timing problem when +the RGui console was closed from the ‘X’ control and the closure +cancelled. (This would on some 64-bit systems crash R, typically +those with a slow GPU relative to the CPU.) +

    +
  • +
  • On unix Rscript will pass the r_arch setting +it was compiled with on to the R process so that the architecture +of Rscript and that of R will match unless overridden. +

    +
  • +
  • On Windows, basename(), dirname() and +file.choose() have more support for long non-ASCII file +names with 260 or more bytes when expressed in UTF-8. +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.15.2

+ + + +

NEW FEATURES

+ + +
    +
  • The X11() window gains an icon: the +latter may be especially useful on Ubuntu's ‘Unity’ +interface. +

    +

    The WM_CLASS should be set in circumstances where the +Window Manager failed to make use of X11 resource settings. +

    +

    (Contributed by Philip Johnson.) +

    +
  • +
  • The "Date" and "POSIXt" methods for +cut() will accept an unsorted breaks argument (as +the default method does, although this was undocumented). +(Wish of PR#14961.) +

    +
  • +
  • Reference class methods (in the methods package) that +use other methods in an indirect way (e.g., by sapply()) +must tell the code analysis to include that method. They can now +do so by invoking $usingMethods(). +

    +
  • +
  • More Polish translations are available: for the +RGui menus and for several recommended packages. +

    +
  • +
  • Multistratum MANOVA works. In fact, it seems to have done so +for years in spite of the help page claiming it did not. +

    +
  • +
  • qqline() has new optional arguments +distribution, probs and qtype, following the +example of lattice's panel.qqmathline(). +

    +
  • +
  • The handling of single quotes in the en@quot +pseudo-language has been slightly improved. Double quotes are no +longer converted. +

    +
  • +
  • New functions checkPoFiles() and checkPoFile() +have been added to the tools package to check for +consistency of format strings in translation files. +

    +
  • +
  • model.matrix(~1, ...) now also contains the same +rownames that less trivial formulae produce. (Wish of PR#14992, +changes the output of several packages.) +

    +
  • +
  • Misuse of rep() on undocumented types of objects +(e.g. calls) is now reported as an error. +

    +
  • +
  • The included LAPACK has been updated to 3.4.1, with some +patches from the current SVN sources. (Inter alia, this +resolves PR#14692.) +

    +
  • +
  • file.copy(recursive = TRUE) has some additional +checks on user error leading to attempted infinite recursion (and on +some platforms to crashing R). +

    +
  • +
  • PCRE has been updated to version 8.31, a bug-fix release. +

    +
  • +
  • The included version of liblzma has been updated to +version 5.0.4, a minor bug-fix release. +

    +
  • +
  • New function .bincode(), a ‘bare-bones’ +version of cut.default(labels = FALSE) for use in packages +with image() methods. +

    +
  • +
  • The HTML manuals now use directional single quotes. +

    +
  • +
  • maintainer() now converts embedded new lines to +spaces. It no longer gives a non-obvious error for non-installed +packages. +

    +
  • +
  • The X11() device has some protection against +being used with forked processes via package parallel. +

    +
  • +
  • Setting the environment variable R_OSX_VALGRIND (to +any value) allows R to be run under valgrind on Mac OS +10.6 and 10.7 (valgrind currently has very limited +support for 10.8), provided system() is not used (directly +or indirectly). This should not be needed for valgrind +>= 3.8.1. +

    +
  • +
  • The model.frame() method for "lm" uses +xlevels: this is safer if data was supplied or +model = FALSE was used and the levels of factors used in +the fit had been re-ordered since fitting. +

    +

    Similarly, model.frame(fm, data=<data>) copies across +the variables used for safe prediction from the fit. +

    +
  • +
  • Functions such as parLapply() in package +parallel can make use of a default cluster if one is set. +(Reported by Martin Morgan.) +

    +
  • +
  • chol(pivot = TRUE, LINPACK = FALSE) is now available +using LAPACK 3.2 subroutine DPSTRF. +

    +
  • +
  • The functions .C(), .Call(), +.External() and .Fortran() now check that they are +called with an unnamed first argument: the formal arguments were +changed from name= to .NAME= in R 2.13.0, but some +packages were still using the old name. This is currently a +warning, but will be an error in future. +

    +
  • +
  • step() no longer tries to improve a model with +AIC of -Inf (a perfect fit). +

    +
  • +
  • spline() and splinefun() gain a new method +"hyman", an implementation of Hyman's method of +constructing monotonic interpolation splines. (Based on +contributions of Simon Wood and Rob Hyndman.) +

    +
  • +
  • On Windows, the C stack size has been increased to 64MB (it +has been 10MB since the days of 32MB RAM systems). +

    +
+ + + + +

PERFORMANCE IMPROVEMENTS

+ + +
    +
  • array() is now implemented in C code (for speed) when +data is atomic or an unclassed list (so it is known that +as.vector(data) will have no class to be used by rep()). +

    +
  • +
  • rep() is faster and uses less memory, +substantially so in some common cases (e.g. if times is of +length one or length.out is given, and each = 1). +

    +
  • +
  • findInterval(), tabulate(), cut(), +hist() and image.default() all use .Call() +and are more efficient. +

    +
  • +
  • duplicated(), unique() and similar now +support vectors of lengths above 2^29 on 64-bit +platforms. +

    +
  • +
  • Omitting PACKAGE in .C() etc calls was +supposed to make use of the DLL from the namespace within which +the enclosing function was defined. It was less successful in +doing so than it might be, and gave no indication it had failed. +

    +

    A new search strategy is very successful and gives a warning +when it fails. In most cases this is because the entry point is +not actually provided by that package (and so PACKAGE +should be used to indicate which package is intended) but in some +the namespace does not have a DLL specified by a +useDynLib() directive so PACKAGE is required. +

    +
+ + + + +

UTILITIES

+ + +
    +
  • R CMD check now checks if a package can be loaded +by library(pkgname, lib.loc = "somewhere") without being on +the library search path (unless it is already installed in +.Library, when it always will be). +

    +
  • +
  • R CMD check --as-cran notes ‘hidden’ files +and directories (with names starting with a dot) that are not +needed for the operation of R CMD INSTALL or R CMD + build: such files should be excluded from the published tarball. +

    +
  • +
  • R CMD check (if checking subdirectories) checks +that the R code in any demos is ASCII and can be parsed, and +warns if not. +

    +
  • +
  • When R CMD Rd2pdf is used with ‘inputenx.sty’, +it allows further characters (mainly for Eastern European +languages) by including ‘ix-utf8enc.dfu’ (if available). +(Wish of PR#14989.) +

    +
  • +
  • R CMD build now omits several types of hidden +files/directories, including ‘inst/doc/.Rinstignore’, +‘vignettes/.Rinstignore’, (‘.Rinstignore’ should be at +top level), ‘.deps’ under ‘src’, ‘.Renviron’, +‘.Rprofile’, ‘.Rproj.user’, ‘.backups’, +‘.cvsignore’, ‘.cproject’, ‘.directory’, +‘.dropbox’, ‘.exrc’, ‘.gdb.history’, +‘.gitattributes’, ‘.gitignore’, ‘.gitmodules’, +‘.hgignore’, ‘.hgtags’, ‘.htaccess’, +‘.latex2html-init’, ‘.project’, ‘.seed’, +‘.settings’, ‘.tm_properties’ and various leftovers. +

    +
  • +
  • R CMD check now checks for .C(), +.Call(), .External() and .Fortran() calls in +other packages, and gives a warning on those found from R itself +(which are not part of the API and change without notice: many +will be changed for R 3.0.0). +

    +
+ + + + +

C-LEVEL FACILITIES

+ + +
    +
  • The limit for R_alloc on 64-bit platforms has been +raised to just under 32GB (from just under 16GB). +

    +
  • +
  • The misuse of .C("name", ..., PACKAGE = foo) where +foo is an arbitrary R object is now an error. +

    +

    The misuse .C("name",..., PACKAGE = "") is now warned about +in R CMD check, and will be an error in future. +

    +
+ + + + +

DEPRECATED AND DEFUNCT

+ + +
    +
  • Use of array() with a 0-length dim argument is +deprecated with a warning (and was contrary to the documentation). +

    +
  • +
  • Use of tapply() with a 0-length INDEX list is +deprecated with a warning. +

    +
  • +
  • Translation packages are deprecated. +

    +
  • +
  • Calling rep() or rep.int() on a pairlist is +deprecated and will give a warning. In any case, rep() +converted a pairlist to a list so you may as well do that +explicitly. +

    +
  • +
  • Entry point rcont2 is no longer part of the API, and +will move to package stats in R 3.0.0. +

    +
  • +
  • The ‘internal’ graphics device invoked by +.Call("R_GD_nullDevice", package = "grDevices") is about to +be removed: use pdf(file = NULL) instead. +

    +
  • +
  • eigen(EISPACK = TRUE), +chol(pivot = FALSE, LINPACK = TRUE), +chol2inv(LINPACK = TRUE), solve(LINPACK = TRUE) and +svd(LINPACK = TRUE) are deprecated and give a warning. +

    +

    They were provided for compatibility with R 1.7.0 (Mar 2003)! +

    +
  • +
  • The ‘internal function’ kappa.tri() has been +renamed to .kappa_tri() so it is not inadvertently called +as a method for class "tri". +

    +
  • +
  • Functions sessionData() and browseAll() in +package methods are on a help page describing them as +‘deprecated’ and are now formally deprecated. +

    +
+ + + + +

PACKAGE INSTALLATION

+ + +
    +
  • For a Windows or Mac OS X binary package install, +install.packages() will check if a source package is +available on the same repositories, and report if it is a later +version or there is a source package but no binary package +available. +

    +

    This check can be suppressed: see the help page. +

    +
  • +
  • install.packages(type = "both") has been enhanced. +In interactive use it will ask whether to choose the source +version of a package if the binary version is older and contains +compiled code, and also asks if source packages with no binary +version should be installed). +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • There is a new configure option +--with-libtiff (mainly in case the system installation +needs to be avoided). +

    +
  • +
  • LAPACK 3.4.1 does use some Fortran 90 features, so +g77 no longer suffices. +

    +
  • +
  • If an external LAPACK is used, it must be version 3.2 or later. +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • On Windows, starting Rterm via R.exe +caused Ctrl-C to misbehave. (PR#14948) +

    +
  • +
  • The tools::latexToUtf8() function missed conversions that +were contained within braces. +

    +
  • +
  • Long timezone specifications (such as a file name preceded +by :) could crash as.POSIXlt. (PR#14945) +

    +
  • +
  • R CMD build --resave-data could fail if there was no +‘data’ directory but there was an ‘R/sysdata.rda’ file. +(PR#14947) +

    +
  • +
  • is.na() misbehaved on a 0-column data frame. +(PR#14959) +

    +
  • +
  • anova.lmlist() failed if test was +supplied. (PR#14960) +

    +

    It was unable to compute Cp tests for object of class "lm" +(it assumed class "glm"). +

    +
  • +
  • The formula method for sunflowerplot() now +allows xlab and ylab to be set. (Reported by Gerrit +Eichner.) +

    +
  • +
  • The "POSIXt" and "Date" methods for hist() +could fail on Windows where adjustments to the right-hand boundary +crossed a DST transition time. +

    +
  • +
  • On Windows, the code in as.POSIXct() to handle +incorrectly specified isdst fields might have resulted in +NA being returned. +

    +
  • +
  • aov() and manova() gave spurious warning about +singular error model in the multiresponse case. +

    +
  • +
  • In ns() and bs(), specifying knots = NULL +is now equivalent to omitting it, also when df is +specified. (PR#14970) +

    +
  • +
  • sprintf() did not accept numbered arguments ending +in zero. (PR#14975) +

    +
  • +
  • rWishart() could overflow the C stack and maybe crash +the R process for dimensions of several hundreds or more. +(Reported by Michael Braun on R-sig-mac.) +

    +
  • +
  • Base package vignettes (e.g. vignette("Sweave")) were +not fully installed in builds of R from the tarball. +

    +
  • +
  • lchoose() and choose() could overflow the C +stack and crash R. +

    +
  • +
  • When given a 0-byte file and asked to keep source +references, parse() read input from stdin() +instead. +

    +
  • +
  • pdf(compress = TRUE) did not delete temporary files +it created until the end of the R session. (PR#14991) +

    +
  • +
  • logLik() did not detect the error of applying it +to a multiple-response linear model. (PR#15000) +

    +
  • +
  • file.copy(recursive = TRUE) did not always report +FALSE for a failure two or more directories deep. +

    +
  • +
  • qgeom() could return -1 for extremely small +q. (PR#14967) +

    +
  • +
  • smooth.spline() used DUP = FALSE which allowed +its compiled C code to change the function: this was masked by the +default byte-compilation. (PR#14965) +

    +
  • +
  • In Windows, the GUI preferences for foreground color were +not always respected. (Reported by Benjamin Wells.) +

    +
  • +
  • On OS X, the Quartz versions of the bitmap devices did not +respect antialias = "none". (PR#15006) +

    +
  • +
  • unique() and similar would infinite-loop if called on +a vector of length > 2^29 (but reported that the +vector was too long for 2^30 or more). +

    +
  • +
  • parallel::stopCluster() now works with MPI +clusters without snow being on the search path. +

    +
  • +
  • terms.formula() could exhaust the stack, and the +stack check did not always catch this before the segfault. +(PR#15013) +

    +
  • +
  • sort.list(method = "radix") could give incorrect +results on certain compilers (seen with clang on Mac OS +10.7 and Xcode 4.4.1). +

    +
  • +
  • backsolve(T, b) gave incorrect results when +nrows(b) > ncols(T) and b had more than one column. +

    +

    It could segfault or give nonsense if k was specified as +more than ncols(T). +

    +
  • +
  • smooth.spline() did not check that a specified +numeric spar was of length 1, and gave corrupt results if +it was of length 0. +

    +
  • +
  • Protection added to do_system. (PR#15025) +

    +
  • +
  • Printing of vectors with names > 1000 characters now works +correctly rather than truncating. (PR#15028) +

    +
  • +
  • qr() for a complex matrix did not pivot the column names. +

    +
  • +
  • --with-blas='-framework vecLib' now also works on OS X 10.8. +

    +
  • +
  • R CMD check no longer fails with an error if +a ‘DESCRIPTION’ file incorrectly contains a blank line. +(Reported by Bill Dunlap.) +

    +
  • +
  • install.packages(type = "both") could call +chooseCRANmirror() twice. +

    +
  • +
  • lm.wfit() could segfault in R 2.15.1 if all the +weights were zero. (PR#15044) +

    +
  • +
  • A malformed package name could cause R CMD INSTALL +to write outside the target library. +

    +
  • +
  • Some of the quality control functions +(e.g. tools::checkFF()) were wrongly identifying the source +of S4 methods in a package and so not checking them. +

    +
  • +
  • The default type of display by browseEnv() when using +R.app on Mac OS X has been incorrect for a long time. +

    +
  • +
  • The implementation of importMethodsFrom in a +NAMESPACE file could be confused and fail to find generics +when importing from multiple packages (reported and fixed by +Michael Lawrence). +

    +
  • +
  • The detection of the C stack direction is better protected +against compiler optimization. (PR#15011) +

    +
  • +
  • Long custom line types would sometimes segfault on the +cairographics-based devices. (PR#15055) +

    +
  • +
  • tools::checkPoFile() unprotected too early in its C +code and so segfaulted from time to time. +

    +
  • +
  • The Fortran code underlying nlminb() could +infinite-loop if any of the input functions returned NA or +NaN. This is now an error for the gradient or Hessian, and +a warning for the function (with the value replaced by +Inf). (In part, PR#15052.) +

    +
  • +
  • The code for creating coerce() methods could +generate false notes about ambiguous selection; the notes have +been suppressed for this function. +

    +
  • +
  • arima.sim() could give too long an output in some +corner cases (in part, PR#15068). +

    +
  • +
  • anova.glm() with test = "Rao" didn't work when +models included an offset. (Reported by Søren Feodor Nielsen.) +

    +
  • +
  • as.data.frame.matrix() could return invalid data +frame with no row.names attribute for 0-row matrix. (Reported +by Hervé Pagès.) +

    +
  • +
  • Compilation with the vecLib or Accelerate +frameworks on OS X without using that also for LAPACK is more +likely to be successful. +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.15.1

+ + + +

NEW FEATURES

+ + +
    +
  • source() now uses withVisible() rather than +.Internal(eval.with.vis). This sometimes alters tracebacks +slightly. +

    +
  • +
  • install.packages("pkg_version.tgz") on Mac OS X now +has sanity checks that this is actually a binary package (as +people have tried it with incorrectly named source packages). +

    +
  • +
  • splineDesign() and spline.des() in package +splines have a new option sparse which can be used +for efficient construction of a sparse B-spline design matrix +(via Matrix). +

    +
  • +
  • norm() now allows type = "2" (the +‘spectral’ or 2-norm) as well, mainly for didactical +completeness. +

    +
  • +
  • pmin() and pmax()) now also work when one of +the inputs is of length zero and others are not, returning a +zero-length vector, analogously to, say, +. +

    +
  • +
  • colorRamp() (and hence colorRampPalette()) now +also works for the boundary case of just one color when the ramp is +flat. +

    +
  • +
  • .C() gains some protection against the misuse of +character vector arguments. (An all too common error is to pass +character(N), which initializes the elements to "", +and then attempt to edit the strings in-place, sometimes forgetting +to terminate them.) +

    +
  • +
  • Calls to the new function globalVariables() in +package utils declare that functions and other objects in a +package should be treated as globally defined, so that CMD + check will not note them. +

    +
  • +
  • print(packageDescription(*)) trims the Collate +field by default. +

    +
  • +
  • The included copy of zlib has been updated to version +1.2.7. +

    +
  • +
  • A new option "show.error.locations" has been added. +When set to TRUE, error messages will contain the +location of the most recent call containing source reference +information. (Other values are supported as well; see +?options.) +

    +
  • +
  • The NA warning messages from e.g. pchisq() now report +the call to the closure and not that of the .Internal. +

    +
  • +
  • Added Polish translations by Åukasz Daniel. +

    +
+ + + + +

PERFORMANCE IMPROVEMENTS

+ + +
    +
  • In package parallel, makeForkCluster() and the +multicore-based functions use native byte-order for serialization +(deferred from 2.15.0). +

    +
  • +
  • lm.fit(), lm.wfit(), glm.fit() and +lsfit() do less copying of objects, mainly by using +.Call() rather than .Fortran(). +

    +
  • +
  • .C() and .Fortran() do less copying: arguments +which are raw, logical, integer, real or complex vectors and are +unnamed are not copied before the call, and (named or not) are not +copied after the call. Lists are no longer copied (they are +supposed to be used read-only in the C code). +

    +
  • +
  • tabulate() makes use of .C(DUP = FALSE) and +hence does not copy bin. (Suggested by Tim Hesterberg.) +It also avoids making a copy of a factor argument bin. +

    +
  • +
  • Other functions (often or always) doing less copying include +cut(), dist(), the complex case of eigen(), +hclust(), image(), kmeans(), loess(), +stl() and svd(LINPACK = TRUE). +

    +
  • +
  • There is less copying when using primitive replacement +functions such as names(), attr() and +attributes(). +

    +
+ + + + +

DEPRECATED AND DEFUNCT

+ + +
    +
  • The converters for use with .C() (see +?getCConverterDescriptions) are deprecated: use the +.Call() interface instead. There are no known examples +(they were never fully documented). +

    +
+ + + + +

UTILITIES

+ + +
    +
  • For R CMD check, a few people have reported +problems with junctions on Windows (although they were tested on +Windows 7, XP and Server 2008 machines and it is unknown under +what circumstances the problems occur). Setting the environment +variable R_WIN_NO_JUNCTIONS to a non-empty value (e.g. in +‘~/.R/check.Renviron’) will force copies to be used instead. +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • R CMD INSTALL with _R_CHECK_INSTALL_DEPENDS_ +set to a true value (as done by R CMD check --as-cran) +now restricts the packages available when lazy-loading as well +as when test-loading (since packages such as ETLUtils +and agsemisc had top-level calls to library() +for undeclared packages). +

    +

    This check is now also available on Windows. +

    +
+ + + + +

C-LEVEL FACILITIES

+ + +
    +
  • C entry points mkChar and mkCharCE now check +that the length of the string they are passed does not exceed +2^31-1 bytes: they used to overflow with +unpredictable consequences. +

    +
  • +
  • C entry points R_GetCurrentSrcref and +R_GetSrcFilename have been added to the API to allow +debuggers access to the source references on the stack. +

    +
+ + + + +

WINDOWS-SPECIFIC CHANGES

+ + +
    +
  • Windows-specific changes will now be announced in this file +(‘NEWS’). Changes up and including R 2.15.0 remain in the +‘CHANGES’ file. +

    +
  • +
  • There are two new environment variables which +control the defaults for command-line options. +

    +

    If R_WIN_INTERNET2 is set to a non-empty value, it is as if +--internet2 was used. +

    +

    If R_MAX_MEM_SIZE is set, it gives the default memory limit +if --max-mem-size is not specified: invalid values being +ignored. +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • lsfit() lost the names from the residuals. +

    +
  • +
  • More cases in which merge() could create a data frame +with duplicate column names now give warnings. Cases where +names specified in by match multiple columns are errors. +

    +
  • +
  • Nonsense uses such as seq(1:50, by = 5) (from package +plotrix) and seq.int(1:50, by = 5) are now errors. +

    +
  • +
  • The residuals in the 5-number summary printed by +summary() on an "lm" object are now explicitly +labelled as weighted residuals when non-constant weights are +present. (Wish of PR#14840.) +

    +
  • +
  • tracemem() reported that all objects were copied +by .C() or .Fortran() whereas only some object types +were ever copied. +

    +

    It also reported and marked as copies some transformations +such as rexp(n, x): it no longer does so. +

    +
  • +
  • The plot() method for class "stepfun" only +used the optional xval argument to compute xlim and +not the points at which to plot (as documented). (PR#14864) +

    +
  • +
  • Names containing characters which need to be escaped were +not deparsed properly. (PR#14846) +

    +
  • +
  • Trying to update (recommended) packages in +‘R_HOME/library’ without write access is now dealt with more +gracefully. Further, such package updates may be skipped (with a +warning), when a newer installed version is already going to be +used from .libPaths(). (PR#14866) +

    +
  • +
  • hclust() is now fast again (as up to end of 2003), +with a different fix for the "median"/"centroid" problem. (PR#4195). +

    +
  • +
  • get_all_vars() failed when the data came entirely +from vectors in the global environment. (PR#14847) +

    +
  • +
  • R CMD check with _R_CHECK_NO_RECOMMENDED_ +set to a true value (as done by the --as-cran option) +could issue false errors if there was an indirect dependency +on a recommended package. +

    +
  • +
  • formatC() uses the C entry point str_signif +which could write beyond the length allocated for the output string. +

    +
  • +
  • Missing default argument added to implicit S4 generic for +backsolve(). (PR#14883) +

    +
  • +
  • Some bugs have been fixed in handling load actions that +could fail to export assigned items or generate spurious warnings +in CMD check on loading. +

    +
  • +
  • For tiff(type = "windows"), the numbering of per-page +files except the last was off by one. +

    +
  • +
  • On Windows, loading package stats (which is done for +a default session) would switch line endings on ‘stdout’ +and ‘stderr’ from CRLF to LF. This affected +Rterm and R CMD BATCH. +

    +
  • +
  • On Windows, the compatibility function x11() had +not kept up with changes to windows(), and issued +warnings about bad parameters. (PR#14880) +

    +
  • +
  • On Windows, the Sys.glob() function did not handle +UNC paths as it was designed to try to do. (PR#14884) +

    +
  • +
  • In package parallel, clusterApply() and similar +failed to handle a (pretty pointless) length-1 argument. (PR#14898) +

    +
  • +
  • Quartz Cocoa display reacted asynchronously to +dev.flush() which means that the redraw could be performed +after the plot has been already modified by subsequent code. The +redraw is now done synchronously in dev.flush() to allow +animations without sleep cycles. +

    +
  • +
  • Source locations reported in traceback() were +incorrect when byte-compiled code was on the stack. +

    +
  • +
  • plogis(x, lower = FALSE, log.p = TRUE) no longer +underflows early for large x (e.g. 800). +

    +
  • +
  • ?Arithmetic's “1 ^ y and y ^ 0 +are 1, always” now also applies for integer +vectors y. +

    +
  • +
  • X11-based pixmap devices like png(type = "Xlib") were +trying to set the cursor style, which triggered some warnings and +hangs. +

    +
  • +
  • Code executed by the built-in HTTP server no longer allows +other HTTP clients to re-enter R until the current worker +evaluation finishes, to prevent cascades. +

    +
  • +
  • The plot() and Axis() methods for class +"table" now respect graphical parameters such as +cex.axis. (Reported by Martin Becker.) +

    +
  • +
  • Under some circumstances package.skeleton() would +give out progress reports that could not be translated and so were +displayed by question marks. Now they are always in English. +(This was seen for CJK locales on Windows, but may have occurred +elsewhere.) +

    +
  • +
  • The evaluator now keeps track of source references outside +of functions, e.g. when source() executes a script. +

    +
  • +
  • The replacement method for window() now works +correctly for multiple time series of class "mts". +(PR#14925) +

    +
  • +
  • is.unsorted() gave incorrect results on non-atomic +objects such as data frames. (Reported by Matthew Dowle.) +

    +
  • +
  • The value returned by tools::psnice() for invalid +pid values was not always NA as documented. +

    +
  • +
  • Closing an X11() window while locator() was +active could abort the R process. +

    +
  • +
  • getMethod(f, sig) produced an incorrect error message +in some cases when f was not a string). +

    +
  • +
  • Using a string as a “call” in an error condition +with options(showErrorCalls=TRUE) could cause a segfault. +(PR#14931) +

    +
  • +
  • The string "infinity" allowed by C99 was not accepted +as a numerical string value by e.g. scan() and +as.numeric(). (PR#14933) +

    +
  • +
  • In legend(), setting some entries of lwd to +NA was inconsistent (depending on the graphics device) in +whether it would suppress those lines; now it consistently does +so. (PR#14926) +

    +
  • +
  • by() failed for a zero-row data frame. (Reported by +Weiqiang Qian.) +

    +
  • +
  • The Yates' correction in chisq.test() could be bigger +than the terms it corrected, previously leading to an infinite +test statistic in some corner cases which are now reported as +NaN. +

    +
  • +
  • xgettext() and related functions sometimes returned +items that were not strings for translation. (PR#14935) +

    +
  • +
  • plot(<lm>, which=5) now correctly labels the factor +level combinations for the special case where all +h[i,i] are the same. (PR#14837) +

    +
  • +
  • Sys.glob() caused a segfault if the first element of +path was NA_character. (PR#14990) +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.15.0

+ + + +

SIGNIFICANT USER-VISIBLE CHANGES

+ + +
    +
  • The behaviour of unlink(recursive = TRUE) for a +symbolic link to a directory has changed: it now removes the link +rather than the directory contents (just as rm -r does). +

    +

    On Windows it no longer follows reparse points (including +junctions and symbolic links). +

    +
+ + + + +

NEW FEATURES

+ + +
    +
  • Environment variable RD2DVI_INPUTENC has been renamed +to RD2PDF_INPUTENC. +

    +
  • +
  • .Deprecated() becomes a bit more flexible, getting an +old argument. +

    +
  • +
  • Even data-only packages without R code need a namespace and +so may need to be installed under R 2.14.0 or later. +

    +
  • +
  • assignInNamespace() has further restrictions on use +apart from at top-level, as its help page has warned. +Expect it to be disabled from programmatic use in the future. +

    +
  • +
  • system() and system2() when capturing output +report a non-zero status in the new "status" attribute. +

    +
  • +
  • kronecker() now has an S4 generic in package +methods on which packages can set methods. It will be +invoked by X %x% Y if either X or Y is an S4 +object. +

    +
  • +
  • pdf() accepts forms like file = "|lpr" in the +same way as postscript(). +

    +
  • +
  • pdf() accepts file = NULL. +This means that the device does NOT create a PDF file +(but it can still be queried, e.g., for font metric info). +

    +
  • +
  • format() (and hence print()) on +"bibentry" objects now uses options("width") to +set the output width. +

    +
  • +
  • legend() gains a text.font argument. (Suggested +by Tim Paine, PR#14719.) +

    +
  • +
  • nchar() and nzchar() no longer accept factors +(as integer vectors). (Wish of PR#6899.) +

    +
  • +
  • summary() behaves slightly differently (or more +precisely, its print() method does). For numeric inputs, the +number of NAs is printed as an integer and not a real. For dates +and datetimes, the number of NAs is included in the printed output +(the latter being the wish of PR#14720). +

    +

    The "data.frame" method is more consistent with the default +method: in particular it now applies zapsmall() to +numeric/complex summaries. +

    +
  • +
  • The number of items retained with options(warn = 0) +can be set by options(nwarnings=). +

    +
  • +
  • There is a new function assignInMyNamespace() which +uses the namespace of the function it is called from. +

    +
  • +
  • attach() allows the default name for an attached file +to be overridden. +

    +
  • +
  • bxp(), the work horse of boxplot(), now uses a +more sensible default xlim in the case where at is +specified differently from 1:n, see the discussion on R-devel, +https://stat.ethz.ch/pipermail/r-devel/2011-November/062586.html. +

    +
  • +
  • New function paste0(), an efficient version of +paste(*, sep=""), to be used in many places for more +concise (and slightly more efficient) code. +

    +
  • +
  • Function setClass() in package methods now +returns, invisibly, a generator function for the new class, +slightly preferred to calling new(), as explained on the +setClass help page. +

    +
  • +
  • The "dendrogram" method of str() now takes +its default for last.str from option str.dendrogram.last. +

    +
  • +
  • New simple fitted() method for "kmeans" objects. +

    +
  • +
  • The traceback() function can now be called with +an integer argument, to display a current stack trace. (Wish of +PR#14770.) +

    +
  • +
  • setGeneric() calls can be simplified when creating +a new generic function by supplying the default method as the +def argument. See ?setGeneric. +

    +
  • +
  • serialize() has a new option xdr = FALSE which +will use the native byte-order for binary serializations. In +scenarios where only little-endian machines are involved (these +days, close to universal) and (un)serialization takes an +appreciable amount of time this may speed up noticeably +transferring data between systems. +

    +
  • +
  • The internal (un)serialization code is faster for long +vectors, particularly with XDR on some platforms. (Based on a +suggested patch by Michael Spiegel.) + +

    +
  • +
  • For consistency, circles with zero radius are omitted by +points() and grid.circle(). Previously this was +device-dependent, but they were usually invisible. +

    +
  • +
  • NROW(x) and NCOL(x) now work whenever +dim(x) looks appropriate, e.g., also for more generalized +matrices. +

    +
  • +
  • PCRE has been updated to version 8.30. +

    +
  • +
  • The internal R_Srcref variable is now updated +before the browser stops on entering a function. (Suggestion of +PR#14818.) +

    +
  • +
  • There are ‘bare-bones’ functions .colSums(), +.rowSums(), .colMeans() and .rowMeans() for +use in programming where ultimate speed is required. +

    +
  • +
  • The formerly internal function +.package_dependencies() from package tools for +calculating (recursive) (reverse) dependencies on package databases +has been renamed to package_dependencies() and is now +exported. +

    +
  • +
  • There is a new function optimHess() to compute the +(approximate) Hessian for an optim() solution if +hessian = TRUE was forgotten. +

    +
  • +
  • .filled.contour() is a ‘bare-bones’ function to +add a filled-contour rectangular plot to an already prepared plot +region. +

    +
  • +
  • The stepping in debugging and single-step browsing modes has +changed slightly: now left braces at the start of the body are +stepped over for if statements as well as for for and +while statements. (Wish of PR#14814.) +

    +
  • +
  • library() no longer warns about a conflict with a +function from package:base if the function has the same +code as the base one but with a different environment. (An +example is Matrix::det().) +

    +
  • +
  • When deparsing very large language objects, +as.character() now inserts newlines after each line of +approximately 500 bytes, rather than truncating to the first +line. +

    +
  • +
  • New function rWishart() generates Wishart-distributed +random matrices. +

    +
  • +
  • Packages may now specify actions to be taken when the +package is loaded (setLoadActions()). +

    +
  • +
  • options(max.print = Inf) and similar now give an +error (instead of warnings later). +

    +
  • +
  • The "difftime" replacement method of units +tries harder to preserve other attributes of the argument. (Wish +of PR#14839.) +

    +
  • +
  • poly(raw = TRUE) no longer requires more unique +points than the degree. (Requested by John Fox.) +

    +
+ + + + +

PACKAGE parallel

+ + +
    +
  • There is a new function mcmapply(), a parallel version +of mapply(), and a wrapper mcMap(), a parallel +version of Map(). +

    +
  • +
  • A default cluster can be registered by the new function +setDefaultCluster(): this will be used by default in +functions such as parLapply(). +

    +
  • +
  • clusterMap() has a new argument .scheduling to +allow the use of load-balancing. +

    +
  • +
  • There are new load-balancing functions parLapplyLB() +and parSapplyLB(). +

    +
  • +
  • makePSOCKCluster() has a new option useXDR = + FALSE which can be used to avoid byte-shuffling for +serialization when all the nodes are known to be little-endian (or +all big-endian). +

    +
+ + + + +

PACKAGE INSTALLATION

+ + +
    +
  • Non-ASCII vignettes without a declared encoding are no +longer accepted. +

    +
  • +
  • C/C++ code in packages is now compiled with -NDEBUG +to mitigate against the C/C++ function assert being called +in production use. Developers can turn this off during package +development with PKG_CPPFLAGS = -UNDEBUG. +

    +
  • +
  • R CMD INSTALL has a new option --dsym +which on Mac OS X (Darwin) dumps the symbols alongside the +‘.so’ file: this is helpful when debugging with +valgrind (and especially when installing packages into +‘R.framework’). [This can also be enabled by setting the +undocumented environment variable PKG_MAKE_DSYM, since R +2.12.0.] +

    +
  • +
  • R CMD INSTALL will test loading under all installed +sub-architectures even for packages without compiled code, unless +the flag --no-multiarch is used. (Pure R packages can +do things which are architecture-dependent: in the case which +prompted this, looking for an icon in a Windows R executable.) +

    +
  • +
  • There is a new option install.packages(type = "both") +which tries source packages if binary packages are not available, +on those platforms where the latter is the default. +

    +
  • +
  • The meaning of install.packages(dependencies = TRUE) +has changed: it now means to install the essential dependencies of +the named packages plus the Suggests, but only the +essential dependencies of dependencies. To get the previous +behaviour, specify dependencies as a character vector. +

    +
  • +
  • R CMD INSTALL --merge-multiarch is now supported +on OS X and other Unix-alikes using multiple sub-architectures. +

    +
  • +
  • R CMD INSTALL --libs-only now by default does a +test load on Unix-alikes as well as on Windows: suppress with +--no-test-load. +

    +
+ + + + +

UTILITIES

+ + +
    +
  • R CMD check now gives a warning rather than a +note if it finds inefficiently compressed datasets. With +bzip2 and xz compression having been +available since R 2.10.0, it only exceptionally makes sense to +not use them. +

    +

    The environment variable _R_CHECK_COMPACT_DATA2_ is +no longer consulted: the check is always done if +_R_CHECK_COMPACT_DATA_ has a true value (its default). +

    +
  • +
  • Where multiple sub-architectures are to be tested, +R CMD check now runs the examples and tests for all the +sub-architectures even if one fails. +

    +
  • +
  • R CMD check can optionally report timings on +various parts of the check: this is controlled by environment +variable _R_CHECK_TIMINGS_ documented in ‘Writing R +Extensions’. Timings (in the style of R CMD BATCH) are +given at the foot of the output files from running each test and +the R code in each vignette. +

    +
  • +
  • There are new options for more rigorous testing by +R CMD check selected by environment variables – see +the ‘Writing R Extensions’ manual. +

    +
  • +
  • R CMD check now warns (rather than notes) on +undeclared use of other packages in examples and tests: +increasingly people are using the metadata in the +‘DESCRIPTION’ file to compute information about packages, +for example reverse dependencies. +

    +
  • +
  • The defaults for some of the options in R CMD + check (described in the ‘R Internals’ manual) have +changed: checks for unsafe and .Internal() calls and +for partial matching of arguments in R function calls are now +done by default. +

    +
  • +
  • R CMD check has more comprehensive facilities for +checking compiled code and so gives fewer reports on entry points +linked into ‘.so’/‘.dll’ files from libraries +(including C++ and Fortran runtimes). +

    +

    Checking compiled code is now done on FreeBSD (as well as the +existing supported platforms of Linux, Mac OS X, Solaris and +Windows). +

    +
  • +
  • R CMD build has more options for +--compact-vignettes: see R CMD build --help. +

    +
  • +
  • R CMD build has a new option --md5 to +add an ‘MD5’ file (as done by CRAN): this is used by R + CMD INSTALL to check the integrity of the distribution. +

    +

    If this option is not specified, any existing (and probably +stale) ‘MD5’ file is removed. +

    +
+ + + + +

DEPRECATED AND DEFUNCT

+ + +
    +
  • R CMD Rd2dvi is now defunct: use R CMD Rd2pdf. +

    +
  • +
  • Options such --max-nsize, --max-vsize and +the function mem.limits() are now defunct. (Options +--min-nsize and --min-vsize remain available.) +

    +
  • +
  • Use of library.dynam() without specifying all the +first three arguments is now disallowed. +

    +

    Use of an argument chname in library.dynam() +including the extension ‘.so’ or ‘.dll’ (which was never +allowed according to the help page) is defunct. This also applies +to library.dynam.unload() and to useDynLib +directives in ‘NAMESPACE’ files. +

    +
  • +
  • The internal functions .readRDS() and +.saveRDS() are now defunct. +

    +
  • +
  • The off-line help() types "postscript" and +"ps" are defunct. +

    +
  • +
  • Sys.putenv(), replaced and deprecated in R 2.5.0, is +finally removed. +

    +
  • +
  • Some functions/objects which have been defunct for five or +more years have been removed completely. These include +.Alias(), La.chol(), La.chol2inv(), +La.eigen(), Machine(), Platform(), +Version, codes(), delay(), +format.char(), getenv(), httpclient(), +loadURL(), machine(), parse.dcf(), +printNoClass(), provide(), read.table.url(), +restart(), scan.url(), symbol.C(), +symbol.For() and unix(). +

    +
  • +
  • The ENCODING argument to .C() is deprecated. +It was intended to smooth the transition to multi-byte character +strings, but can be replaced by the use of iconv() in the +rare cases where it is still needed. +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • Building with a positive value of +--with-valgrind-instrumentation now also instruments logical, +complex and raw vectors. +

    +
+ + + + +

C-LEVEL FACILITIES

+ + +
    +
  • Passing R objects other than atomic vectors, functions, +lists and environments to .C() is now deprecated and will +give a warning. Most cases (especially NULL) are actually +coding errors. NULL will be disallowed in future. +

    +

    .C() now passes a pairlist as a SEXP to the compiled +code. This is as was documented, but pairlists were in reality +handled differently as a legacy from the early days of R. +

    +
  • +
  • call_R and call_S are deprecated. They still +exist in the headers and as entry points, but are no longer +documented and should not be used for new code. +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • str(x, width) now obeys its width +argument also for function headers and other objects x +where deparse() is applied. +

    +
  • +
  • The convention for x %/% 0L for integer-mode x +has been changed from 0L to NA_integer_. +(PR#14754) +

    +
  • +
  • The exportMethods directive in a ‘NAMESPACE’ +file now exports S4 generics as necessary, as the extensions +manual said it does. The manual has also been updated to be a +little more informative on this point. +

    +

    It is now required that there is an S4 generic (imported or +created in the package) when methods are to be exported. +

    +
  • +
  • Reference methods cannot safely use non-exported entries +in the namespace. We now do not do so, and warn in the documentation. +

    +
  • +
  • The namespace import code was warning when identical +S4 generic functions were imported more than once, but should +not (reported by Brian Ripley, then Martin Morgan). +

    +
  • +
  • merge() is no longer allowed (in some ways) to create +a data frame with duplicate column names (which confused +PR#14786). +

    +
  • +
  • Fixes for rendering raster images on X11 and Windows devices +when the x-axis or y-axis scale is reversed. +

    +
  • +
  • getAnywhere() found S3 methods as seen from the +utils namespace and not from the environment from which it +was called. +

    +
  • +
  • selectMethod(f, sig) would not return inherited group +methods when caching was off (as it is by default). +

    +
  • +
  • dev.copy2pdf(out.type = "cairo") gave an error. +(PR#14827) +

    +
  • +
  • Virtual classes (e.g., class unions) had a NULL +prototype even if that was not a legal subclass. See +?setClassUnion. +

    +
  • +
  • The C prototypes for zdotc and zdotu in +‘R_ext/BLAS.h’ have been changed to the more modern style +rather than that used by f2c. (Patch by Berwin Turlach.) +

    +
  • +
  • isGeneric() produced an error for primitives that +can not have methods. +

    +
  • +
  • .C() or .Fortran() had a lack-of-protection +error if the registration information resulted in an argument +being coerced to another type. +

    +
  • +
  • boxplot(x=x, at=at) with non finite elements in x +and non integer at could not generate a warning but failed. +

    +
  • +
  • heatmap(x, symm=TRUE, RowSideColors=*) no longer +draws the colors in reversed order. +

    +
  • +
  • predict(<ar>) was incorrect in the multivariate case, +for p >= 2. +

    +
  • +
  • print(x, max=m) is now consistent when x is a +"Date"; also the “reached ... max.print ..” messages +are now consistently using single brackets. +

    +
  • +
  • Closed the <li> tag in pages generated by + Rd2HTML(). (PR#14841) +

    +
  • +
  • Axis tick marks could go out of range when a log scale was +used. (PR#14833) +

    +
  • +
  • Signature objects in methods were not allocated as S4 +objects (caused a problem with trace() reported by Martin Morgan). +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.14.2

+ + + +

NEW FEATURES

+ + +
    +
  • The internal untar() (as used by default by +R CMD INSTALL) now knows about some pax +headers which bsdtar (e.g., the default tar for +Mac OS >= 10.6) can incorrectly include in tar files, +and will skip them with a warning. +

    +
  • +
  • PCRE has been upgraded to version 8.21: as well as bug fixes +and greater Perl compatibility, this adds a JIT pattern compiler, +about which PCRE's news says +‘large performance benefits can be had in many situations’. +This is supported on most but not all R platforms. +

    +
  • +
  • Function compactPDF() in package tools now +takes the default for argument gs_quality from environment +variable GS_QUALITY: there is a new value "none", the +ultimate default, which prevents GhostScript being used in +preference to qpdf just because environment variable +R_GSCMD is set. If R_GSCMD is unset or set to +"", the function will try to find a suitable GhostScript +executable. +

    +
  • +
  • The included version of zlib has been updated to 1.2.6. +

    +
  • +
  • For consistency with the logLik() method, +nobs() for "nls" files now excludes observations +with zero weight. (Reported by Berwin Turlach.) +

    +
+ + + + +

UTILITIES

+ + +
    +
  • R CMD check now reports by default on licenses not +according to the description in ‘Writing R Extensions’. +

    +
  • +
  • R CMD check has a new option --as-cran to +turn on most of the customizations that CRAN uses for its incoming +checks. +

    +
+ + + + +

PACKAGE INSTALLATION

+ + +
    +
  • R CMD INSTALL will now no longer install certain +file types from ‘inst/doc’: these are almost certainly +mistakes and for some packages are wasting a lot of space. These +are ‘Makefile’, files generated by running LaTeX, and unless +the package uses a ‘vignettes’ directory, PostScript and +image bitmap files. +

    +

    Note that only PDF vignettes have ever been supported: some of +these files come from DVI/PS output from the Sweave defaults prior +to R 2.13.0. +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • R configured with --disable-openmp would mistakenly +set HAVE_OPENMP (internal) and SUPPORT_OPENMP (in +‘Rconfig.h’) even though no OpenMP flags were populated. +

    +
  • +
  • The getS3method() implementation had an old +computation to find an S4 default method. +

    +
  • +
  • readLines() could overflow a buffer if the last line +of the file was not terminated. (PR#14766) +

    +
  • +
  • R CMD check could miss undocumented S4 objects in +packages which used S4 classes but did not Depends: methods +in their ‘DESCRIPTION’ file. +

    +
  • +
  • The HTML Help Search page had malformed links. +(PR#14769) +

    +
  • +
  • A couple of instances of lack of protection of SEXPs +have been squashed. (PR#14772, PR#14773) +

    +
  • +
  • image(x, useRaster=TRUE) misbehaved on single-column +x. (PR#14774) +

    +
  • +
  • Negative values for options("max.print") or the max +argument to print.default() caused crashes. Now the former +are ignored and the latter trigger an error. (PR#14779) +

    +
  • +
  • The text of a function body containing more than 4096 +bytes was not properly saved by the parser when entered +at the console. +

    +
  • +
  • Forgetting the #endif tag in an Rd file could cause +the parser to go into a loop. (Reported by Hans-Jorg Bibiko.) +

    +
  • +
  • str(*, ....., strict.width="cut") now also obeys +list.len = n. (Reported by Sören Vogel.) +

    +
  • +
  • Printing of arrays did not have enough protection (C level), +e.g., in the context of capture.output(). (Reported by +Hervé Pagès and Martin Morgan.) +

    +
  • +
  • pdf(file = NULL) would produce a spurious file named +‘NA’. (PR#14808) +

    +
  • +
  • list2env() did not check the type of its envir +argument. (PR#14807) +

    +
  • +
  • svg() could segfault if called with a non-existent +file path. (PR#14790) +

    +
  • +
  • make install can install to a path containing ++ characters. (PR#14798) +

    +
  • +
  • The edit() function did not respect the +options("keep.source") setting. (Reported by Cleridy +Lennert.) +

    +
  • +
  • predict.lm(*, type="terms", terms=*, se.fit=TRUE) did +not work. (PR#14817) +

    +
  • +
  • There is a partial workaround for errors in the TRE +regular-expressions engine with named classes and repeat counts of +at least 2 in a MBCS locale (PR#14408): these are avoided when +TRE is in 8-bit mode (e.g. for useBytes = TRUE and when all +the data are ASCII). +

    +
  • +
  • The C function R_ReplDLLdo1() did not call top-level +handlers. +

    +
  • +
  • The Quartz device was unable to detect window sessions on +Mac OS X 10.7 (Lion) and higher and thus it was not used as the +default device on the console. Since Lion any application can use +window sessions, so Quartz will now be the default device if the +user's window session is active and R is not run via +ssh which is at least close to the behavior in prior OS +X versions. +

    +
  • +
  • mclapply() would fail in code assembling the translated +error message if some (but not all) cores encountered an error. +

    +
  • +
  • format.POSIXlt(x) raised an arithmetic exception when +x was an invalid object of class "POSIXlt" and parts +were empty. +

    +
  • +
  • installed.packages() has some more protection against +package installs going on in parallel. +

    +
  • +
  • .Primitive() could be mis-used to call +.Internal() entry points. +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.14.1

+ + + +

NEW FEATURES

+ + +
    +
  • parallel::detectCores() is now able to find the +number of physical cores (rather than CPUs) on Sparc Solaris. +

    +

    It can also do so on most versions of Windows; however the default +remains detectCores(logical = TRUE) on that platform. +

    +
  • +
  • Reference classes now keep a record of which fields are +locked. $lock() with no arguments returns the names +of the locked fields. +

    +
  • +
  • HoltWinters() reports a warning rather than an error +for some optimization failures (where the answer might be a +reasonable one). +

    +
  • +
  • tools::dependsOnPkg() now accepts the shorthand +dependencies = "all". +

    +
  • +
  • parallel::clusterExport() now allows specification of +an environment from which to export. +

    +
  • +
  • The quartz() device now does tilde expansion on its +file argument. +

    +
  • +
  • tempfile() on a Unix-alike now takes the process ID +into account. This is needed with multicore (and as part of +parallel) because the parent and all the children share a +session temporary directory, and they can share the C random +number stream used to produce the unique part. Further, two +children can call tempfile() simultaneously. +

    +
  • +
  • Option print in Sweave's RweaveLatex() driver +now emulates auto-printing rather than printing (which can differ +for an S4 object by calling show() rather than +print()). +

    +
  • +
  • filled.contour() now accepts infinite values: +previously it might have generated invalid graphics files +(e.g. containing NaN values). +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • On 64-bit Linux systems, configure now only sets +LIBnn to lib64 if ‘/usr/lib64’ exists. This +may obviate setting LIBnn explicitly on Debian-derived +systems. +

    +

    It is still necessary to set LIBnn = lib (or +lib32) for 32-bit builds of R on a 64-bit OS on those Linux +distributions capable for supporting that concept. +

    +
  • +
  • configure looks for ‘inconsolata.sty’, and if +not found adjusts the default R_RD4PDF to not use it (with a +warning, since it is needed for high-quality rendering of manuals). +

    +
+ + + + +

PACKAGE INSTALLATION

+ + +
    +
  • R CMD INSTALL will now do a test load for all +sub-architectures for which code was compiled (rather than just +the primary sub-architecture). +

    +
+ + + + +

UTILITIES

+ + +
    +
  • When checking examples under more than one sub-architecture, +R CMD check now uses a separate directory +‘examples_arch’ for each sub-architecture, and leaves the +output in file ‘pkgname-Ex_arch.Rout’. Some packages +expect their examples to be run in a clean directory .... +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • stack() now gives an error if no vector column is +selected, rather than returning a 1-column data frame (contrary to +its documentation). +

    +
  • +
  • summary.mlm() did not handle objects where the +formula had been specified by an expression. (Reported by +Helios de Rosario Martinez). +

    +
  • +
  • tools::deparseLatex(dropBraces=TRUE) could drop +text as well as braces. +

    +
  • +
  • colormodel = "grey" (new in R 2.14.0)) +did not always work in postscript() and pdf(). +

    +
  • +
  • file.append() could return TRUE for failures. +(PR#14727) +

    +
  • +
  • gzcon() connections are no longer subject to garbage +collection: it was possible for this to happen when unintended +(e.g. when calling load()). +

    +
  • +
  • nobs() does not count zero-weight observations for +glm() fits, for consistency with lm(). This affects +the BIC() values reported for such glm() fits. +(Spotted by Bill Dunlap.) +

    +
  • +
  • options(warn = 0) failed to end a (C-level) context +with more than 50 accumulated warnings. (Spotted by Jeffrey +Horner.) +

    +
  • +
  • The internal plot.default() code did not do sanity +checks on a cex argument, so invalid input could cause +problems. (Reported by Ben Bolker.) +

    +
  • +
  • anyDuplicated(<array>, MARGIN=0) no longer fails. +(Reported by Hervé Pagès.) +

    +
  • +
  • read.dcf() removes trailing blanks: unfortunately +on some platforms this included \xa0 (non-breaking space) +which is the trailing byte of a UTF-8 character. It now only +considers ASCII space and tab to be ‘blank’. +

    +
  • +
  • There was a sign error in part of the calculations for the +variance returned by KalmanSmooth(). (PR#14738) +

    +
  • +
  • pbinom(10, 1e6, 0.01, log.p = TRUE) was NaN +thanks to the buggy fix to PR#14320 in R 2.11.0. (PR#14739) +

    +
  • +
  • RweaveLatex() now emulates auto-printing rather than +printing, by calling methods::show() when auto-printing +would. +

    +
  • +
  • duplicated() ignored fromLast for a +one-column data frame. (PR#14742) +

    +
  • +
  • source() and related functions did not put the correct +timestamp on the source references; srcfilecopy() has gained +a new argument timestamp to support this fix. (PR#14750) +

    +
  • +
  • srcfilecopy() has gained a new argument isFile +and now records the working directory, to allow debuggers to find +the original source file. (PR#14826) +

    +
  • +
  • LaTeX conversion of Rd files did not correctly handle +preformatted backslashes. (PR#14751) +

    +
  • +
  • HTML conversion of Rd files did not handle markup within +tabular cells properly. (PR#14708) +

    +
  • +
  • source() on an empty file with keep.source = + TRUE tried to read from stdin(), in R 2.14.0 only. +(PR#14753) +

    +
  • +
  • The code to check Rd files in packages would abort if +duplicate description sections were present. +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.14.0

+ + + +

SIGNIFICANT USER-VISIBLE CHANGES

+ + +
    +
  • All packages must have a namespace, and one is created on +installation if not supplied in the sources. This means that any +package without a namespace must be re-installed under this +version of R (but previously-installed data-only packages without +R code can still be used). +

    +
  • +
  • The yLineBias of the X11() and +windows() families of devices has been changed from 0.1 to +0.2: this changes slightly the vertical positioning of text in the +margins (including axis annotations). This is mainly for +consistency with other devices such as quartz() and +pdf(). (Wish of PR#14538.) +

    +

    There is a new graphics parameter "ylbias" which +allows the y-line bias of the graphics device to be tweaked, +including to reproduce output from earlier versions of R. +

    +
  • +
  • Labeling of the p-values in various anova tables has been +rationalized to be either "Pr(>F)" or "Pr(>Chi)" +(i.e. the "Pr(F)", "Pr(Chi)" and "P(>|Chi|)" +variants have been eliminated). Code which extracts the p value +via indexing by name may need adjustment. +

    +
  • +
  • :: can now be used for datasets made available for +lazy-loading in packages with namespaces (which makes it consistent +with its use for data-only packages without namespaces in earlier +versions of R). +

    +
  • +
  • There is a new package parallel. +

    +

    It incorporates (slightly revised) copies of packages +multicore and snow (excluding MPI, PVM and NWS +clusters). Code written to use the higher-level API functions in +those packages should work unchanged (apart from changing any +references to their namespaces to a reference to parallel, +and links explicitly to multicore or snow on help +pages). +

    +

    It also contains support for multiple RNG streams following +L'Ecuyer et al (2002), with support for both +mclapply and snow clusters. This replaces functions +like clusterSetupRNG() from snow (which are not in +parallel). +

    +

    The version released for R 2.14.0 contains base functionality: +higher-level convenience functions are planned (and some are +already available in the ‘R-devel’ version of R). +

    +
  • +
  • Building PDF manuals (for R itself or packages, +e.g. via R CMD check) by default requires the +LaTeX package inconsolata: see the section on +‘Making the manuals’ in the ‘R Installation and +Administration Manual’. +

    +
  • +
  • axTicks(*, log=TRUE) has changed in some cases to +satisfy the documented behavior and be consistent. +

    +
+ + + + +

NEW FEATURES

+ + +
    +
  • txtProgressBar() can write to an open connection +instead of the console. +

    +
  • +
  • Non-portable package names ending in ‘.’ are no longer +allowed. Nor are single-character package names (R was +already disallowed). +

    +
  • +
  • regexpr() and gregexpr() with perl = + TRUE allows Python-style named captures. (Wish and +contribution of PR#14518.) +

    +
  • +
  • The placement of ‘plotmath’ text in the margins of +plots done by base graphics now makes the same vertical adjustment +as ordinary text, so using ordinary and plotmath text on the same +margin line will seem better aligned (but not exactly aligned, +since ordinary text has descenders below the baseline and plotmath +places them on the baseline). (Related to PR#14537.) +

    +
  • +
  • sunflowerplot() now has a formula interface. +(Wish of PR#14541.) +

    +
  • +
  • iconv() has a new argument toRaw to handle +encodings such as UTF-16 with embedded nuls (as was +possible before the CHARSXP cache was introduced). +

    +

    It will also accept as input the type of list generated with +toRaw = TRUE. +

    +
  • +
  • Garbage-collecting an unused input text connection no longer +gives a warning (since it ‘connects’ to nothing outside +R). +

    +
  • +
  • read.table() and scan() have gained a +text argument, to allow reading data from a (possibly +literal) character string. +

    +
  • +
  • optim(*, method = .) now allows method = "Brent" +as an interface to optimize(), for use in cases such as +mle() where optim() is used internally. +

    +
  • +
  • mosaicplot() gains a border argument. +(Wish of PR#14550.) +

    +
  • +
  • smooth.spline() gains a tol argument which +controls how different x values need to be to be treated as +distinct. The default has been changed to be more reliable for +inputs whose range is small compared to their maximum absolute +value. (Wish of PR#14452.) +

    +
  • +
  • gl() runs faster by avoiding calling factor(). +

    +
  • +
  • The print() method for object.size() accepts +B as well as b as an abbreviation for ‘bytes’. +

    +
  • +
  • unlink() gains a force argument to work like +rm -f and if possible override restrictive permissions. +

    +
  • +
  • pbirthday() and qbirthday() now use exact +calculations for coincident = 2. +

    +
  • +
  • unzip() and unz() connections have been +updated with support for more recent Zip64 features (including +large file sizes and bzip2 compression, but not UTF-8 +file names). +

    +

    unzip() has a new option to restore file times from those +recorded (in an unknown timezone) in the zip file. +

    +
  • +
  • update.packages() now accepts a character vector of +package names for the oldPkgs argument. (Suggestion of +Tal Galili.) +

    +
  • +
  • The special reference class fields .self and +.refClassDef are now read-only to prevent corrupting +the object. +

    +
  • +
  • decompose() now returns the original series as part +of its value, so it can be used (rather than reconstructed) when +plotting. (Suggestion of Rob Hyndman.) +

    +
  • +
  • Rao's efficient score test has been implemented for +glm objects. Specifically, the add1, drop1, +and anova methods now allow test = "Rao". +

    +
  • +
  • If a saved workspace (e.g. ‘.RData’) contains objects +that cannot be loaded, R will now start with an warning message +and an empty workspace, rather than failing to start. +

    +
  • +
  • strptime() now accepts times such as 24:00 for +midnight at the end of the day, for although these are disallowed by +POSIX 1003.1-2008, ISO 8601:2004 allows them. +

    +
  • +
  • Assignment of names() to S4 objects now checks for +a corresponding "names" slot, and generates a warning or +an error if that slot is not defined. See the section on slots +in ?Classes. +

    +
  • +
  • The default methods for is.finite(), is.infinite() +and is.nan() now signal an error if their argument is not +an atomic vector. +

    +
  • +
  • The formula method for plot() no longer places +package stats on the search path (it loads the namespace +instead). +

    +
  • +
  • There now is a genuine "function" method for +plot() rather than the generic dispatching internally to +graphics::plot.function(). It is now exported, so can be +called directly as plot.function(). +

    +
  • +
  • The one-sided ks.test() allows exact = TRUE to +be specified in the presence of ties (but the approximate +calculation remains the default: the ‘exact’ computation +makes assumptions known to be invalid in the presence of ties). +

    +
  • +
  • The behaviour of curve(add = FALSE) has changed: it +now no longer takes the default x limits from the previous plot +(if any): rather they default to c(0, 1) just as the +"function" method for plot(). To get the previous +behaviour use curve(add = NA), which also takes the default for +log-scaling of the x-axis from the previous plot. +

    +
  • +
  • Both curve() and the plot() method for +functions have a new argument xname to facilitate plots +such as sin(t) vs t. +

    +
  • +
  • The local argument to source() can specify an +environment as well as TRUE (parent.env()) and +FALSE (.GlobalEnv). It gives better error messages +for other values, such as NA. +

    +
  • +
  • vcov() gains methods for classes "summary.lm" and +"summary.glm". +

    +
  • +
  • The plot() method for class "profile.nls" +gains ylab and lty arguments, and passes +... on to plot.default. +

    +
  • +
  • Character-string arguments such as the mode argument +of vector(), as.vector() and is.vector() and +the description argument of file() are required to +be of length exactly one, rather than any further elements being +silently discarded. This helps catch incorrect usage in +programming. +

    +
  • +
  • The length argument of vector() and its +wrappers such as numeric() is required to be of length +exactly one (other values are now an error rather than giving a +warning as previously). +

    +
  • +
  • vector(len) and length(x) <- len no longer +accept TRUE/FALSE for len (not that they +were ever documented to, but there was special-casing in the C +code). +

    +
  • +
  • There is a new function Sys.setFileTime() to set the +time of a file (including a directory). See its help for exactly +which times it sets on various OSes. +

    +
  • +
  • The file times reported by file.info() are reported +to sub-second resolution on systems which support it. (Currently +the POSIX 2008 and FreeBSD/Darwin/NetBSD methods are detected.) +

    +
  • +
  • New function getCall(m) as an abstraction for +m$call, enabling update()'s default method to apply +more universally. (NB: this can be masked by existing functions +in packages.) +

    +
  • +
  • Sys.info() gains a euser component to report +the ‘effective’ user on OSes which have that concept. +

    +
  • +
  • The result returned by try() now contains the +original error condition object as the "condition" +attribute. +

    +
  • +
  • All packages with R code are lazy-loaded irrespective of +the LazyLoad field in the ‘DESCRIPTION’ file. A +warning is given if the LazyLoad field is overridden. +

    +
  • +
  • Rd markup has a new \figure tag so that +figures can be included in help pages when converted to HTML or +LaTeX. There are examples on the help pages for par() and +points(). +

    +
  • +
  • The built-in httpd server now allows access to files +in the session temporary directory tempdir(), +addressed as the ‘/session’ directory on the httpd +server. +

    +
  • +
  • Development versions of R are no longer referred to by the +number under which they might be released, e.g. in the startup +banner, R --version and sessionUtils(). The +correct way to refer to a development version of R is +‘R-devel’, preferably with the date and SVN version number.
    +E.g. R-devel (2011-07-04 r56266) +

    +
  • +
  • There is a new function texi2pdf() in package +tools, currently a convenience wrapper for +texi2dvi(pdf = TRUE). +

    +
  • +
  • There are two new options for typesetting PDF manuals from +Rd files. These are beramono and inconsolata, and +used the named font for monospaced output. They are intended to +be used in combination with times, and +times,inconsolata,hyper is now the default for the +reference manual and package manuals. If you do not have that +font installed, you can set R_RD4PF to one of the other +options: see the ‘R Installation and Administration Manual’. +

    +
  • +
  • Automatic printing for reference classes is now done by +the $show() method. A method is defined for class +envRefClass and may be overridden for user classes (see +the ?ReferenceClasses example). S4 show() methods +should no longer be needed for reference classes. +

    +
  • +
  • tools::Rdiff (by default) and R CMD Rdiff +now ignore differences in pointer values when comparing printed +environments, compiled byte code, etc. +

    +
  • +
  • The "source" attribute on functions created with +keep.source=TRUE has been replaced with a "srcref" +attribute. The "srcref" attribute references an in-memory +copy of the source file using the "srcfilecopy" class or +the new "srcfilealias" class. +

    +

    NB: This means that functions sourced with +keep.source = TRUE and saved (e.g., by save() or +readRDS()) in earlier versions of R will no longer show +the original sources (including comments). +

    +
  • +
  • New items User Manuals and +Technical Papers +have been added to the HTML help main page. These link to +vignettes in the base and recommended packages and to a +collection of papers about R issues, respectively. +

    +
  • +
  • Documentation and messages have been standardized to +use “namespace” rather than “name space”. +

    +
  • +
  • setGeneric() now looks in the default packages for +a non-generic version of a function if called from a package with a +namespace. (It always did for packages without a namespace.) +

    +
  • +
  • Setting the environment variable +_R_WARN_ON_LOCKED_BINDINGS_ will give a warning if an +attempt is made to change a locked binding. +

    +
  • +
  • \SweaveInput is now supported when generating +concordances in Sweave(). +

    +
  • +
  • findLineNum() and setBreakpoint() now allow +the environment to be specified indirectly; the latter gains +a clear argument to allow it to call untrace(). +

    +
  • +
  • The body of a closure can be one of further types of R +objects, including environments and external pointers. +

    +
  • +
  • The Rd2HTML() function in package tools now has +a stylesheet argument, allowing pages to be displayed in +alternate formats. +

    +
  • +
  • New function requireNamespace() analogous to +require(), returning a logical value after attempting to +load a namespace. +

    +
  • +
  • There is a new type of RNG, "L'Ecuyer-CMRG", +implementing L'Ecuyer (1999)'s ‘combined multiple-recursive +generator’ MRG32k3a. See the comments on ?RNG. +

    +
  • +
  • help.search() and ?? can now display +vignettes and demos as well as help pages. The new option +"help.search.types" controls the types of documentation +and the order of their display. +

    +

    This also applies to HTML searches, which now give results in all +of help pages, vignettes and demos. +

    +
  • +
  • socketConnection() now has a timeout argument. +It is now documented that large values (package snow used a +year) do not work on some OSes. +

    +
  • +
  • The initialization of the random-number generator now uses +the process ID as well as the current time, just in case two R +processes are launched very rapidly on a machine with +low-resolution wall clock (some have a resolution of a second; +modern systems have microsecond-level resolution). +

    +
  • +
  • New function pskill() in the tools package to +send a terminate signal to one or more processes, plus constants +such as SIGTERM to provide a portable way to refer to +signals (since the numeric values are OS-dependent). +

    +
  • +
  • New function psnice() in the tools package to +return or change the ‘niceness’ of a process. (Refers to +the ‘priority class’ on Windows.) +

    +
  • +
  • list.dirs() gains a recursive argument. +

    +
  • +
  • An Authors@R field in a package ‘DESCRIPTION’ +file can now be used to generate Author and +Maintainer fields if needed, and to auto-generate package +citations. +

    +
  • +
  • New utility getElement() for accessing either a list +component or a slot in an S4 object. +

    +
  • +
  • stars() gains a col.lines argument, thanks to +Dustin Sallings. (Wish of PR#14657.) +

    +
  • +
  • New function regmatches() for extracting or replacing +matched or non-matched substrings from match data obtained by +regexpr(), gregexpr() and regexec(). +

    +
  • +
  • help(package = "pkg_name", help_type = "HTML") now +gives HTML help on the package rather than text help. (This gives +direct access to the HTML version of the package manual shown +via help.start()'s ‘Packages’ menu.) +

    +
  • +
  • agrep() gains a fixed argument to optionally +allow approximate regular expression matching, and a costs +argument to specify possibly different integer match costs for +insertions, deletions and substitutions. +

    +
  • +
  • read.dcf() and write.dcf() gain a +keep.white argument to indicate fields where whitespace +should be kept as is. +

    +
  • +
  • available.packages() now works around servers that +fail to return an error code when ‘PACKAGES.gz’ does not +exist. (Patch submitted by Seth Schommer.) +

    +
  • +
  • readBin() can now read more than +2^31 - 1 bytes in a single call (the previously +documented limitation). +

    +
  • +
  • New function regexec() for finding the positions of +matches as well as all substrings corresponding to parenthesized +subexpressions of the given regular expression. +

    +
  • +
  • New function adist() in package utils for +computing ‘edit’ (generalized Levenshtein) distances between +strings. +

    +
  • +
  • Class "raster" gains an is.na method to avoid +confusion from the misuse of the matrix method (such as PR#14618). +

    +
  • +
  • The identical() function gains an +ignore.bytecode argument to control comparison of +compiled functions. +

    +
  • +
  • pmin and pmax now warn if an argument is +partially recycled (wish of PR#14638). +

    +
  • +
  • The default for image(useRaster=) is now taken from +option "preferRaster": for the small print see ?image. +

    +
  • +
  • str() now displays reference class objects and their +fields, rather than treating them as classical S4 classes. +

    +
  • +
  • New function aregexec() in package utils for +finding the positions of approximate string matches as well as all +substrings corresponding to parenthesized subexpressions of the +given regular expression. +

    +
  • +
  • download.file() has an extra argument to pass +additional command-line options to the non-default methods using +command-line utilities. +

    +

    cacheOK = FALSE is now supported for method = "curl". +

    +
  • +
  • interaction.plot(*, type = .) now also allows type +"o" or "c". +

    +
  • +
  • axTicks(*, log=TRUE) did sometimes give more values +than the ticks in the corresponding graphics::axis(). By +default, it now makes use of the new (graphics-package +independent) axisTicks() which can make use of a new +utility .axisPars(). Further, it now returns a decreasing +sequence (as for log=FALSE) when usr is decreasing. +

    +
  • +
  • Using fix() or edit() on a R object (except +perhaps a matrix or data frame) writes its temporary file with +extension ‘.R’ so editors which select their mode based on +the extension will select a suitable mode. +

    +
+ + + + +

GRAPHICS DEVICES

+ + +
    +
  • The pdf() device makes use of Flate compression: this +is controlled by the new logical argument compress, and is +enabled by default. +

    +
  • +
  • Devices svg(), cairo_pdf() and +cairo_ps() gain a family argument. +

    +

    On a Unix-alike X11() gains a family argument. This +is one of the x11.options() and so can be passed as an +argument to the bmp(), jpeg(), png() and +tiff() devices. +

    +

    Analogous changes have been made on Windows, so all built-in R +graphics devices now have a family argument except +pictex() (which has no means to change fonts). +

    +
  • +
  • The bmp(), jpeg(), png() and tiff() +devices now make use of the antialias argument for +type = "quartz". +

    +
  • +
  • There are several new built-in font mappings for +X11(type = "Xlib"): see the help on X11Fonts(). +

    +
  • +
  • There is a new type X11(type = "dbcairo") which +updates the screen less frequently: see its help page. +

    +
  • +
  • The X11() device now makes use of cursors to +distinguish its states. The normal cursor is an arrow (rather +than a crosshair); the crosshair is used when the locator is in +use, and a watch cursor is shown when plotting computations are +being done. (These are the standard names for X11 cursors: how +they are actually displayed depends on the window manager.) +

    +
  • +
  • New functions dev.hold() and dev.flush() for +use with graphics devices with buffering. These are used for most +of the high-level graphics functions such as boxplot(), so +that the plot is only displayed when the page is complete. +

    +

    Currently implemented for windows(buffered = TRUE), +quartz() and the cairographics-based X11() types +with buffering (which are the default on-screen devices). +

    +
  • +
  • New function dev.capture() for capture of bitmap +snapshots of image-based devices (a superset of the functionality +provided by grid.cap() in grid). +

    +
  • +
  • The default colormodel for pdf() and +postscript() is now called "srgb" to more accurately +describe it. (Instead of "rgb", and in the case of +postscript() it no longer switches to and from the gray +colorspace, by default.) +

    +

    The colormodel for postscript() which does use both +gray and sRGB colorspaces is now called "srgb+gray". +

    +

    Plots which are known to use only black/white/transparent can +advantageously use colormodel = "gray" (just as before, but +there is now slightly more advantage in doing so). +

    +
  • +
  • postscript() with values colormodel = "rgb" and +colormodel = "rgb-nogray" give the behaviour prior to R +2.13.0 of uncalibrated RGB, which under some circumstances can be +rendered much faster by a viewer. +

    +

    pdf(colormodel = "rgb") gives the behaviour prior to R +2.13.0 of uncalibrated RGB, which under some circumstances can be +rendered faster by a viewer, and the files will be smaller (by +about 9KB if compression is not used). +

    +
  • +
  • The postscript() device only includes the definition +of the sRGB colorspace in the output file for the colormodels +which use it. +

    +
  • +
  • The postscript() and pdf() devices now output +greyscale raster images (and not RGB) when colormodel = "gray". +

    +
  • +
  • postscript(colormodel = "gray") now accepts non-grey +colours and uses their luminance (as pdf() long has). +

    +
  • +
  • colormodel = "grey" is allowed as an alternative name +for postscript() and pdf(). +

    +
  • +
  • pdf() in the default sRGB colorspace outputs many +fewer changes of colorspace, which may speed up rendering in some +viewing applications. +

    +
  • +
  • There is a new function dev.capabilities() to query +the capabilities of the current device. The initial set of +capabilities are support for semi-transparent colours, rendering +and capturing raster images, the locator and for interactive +events. +

    +
  • +
  • For pdf(), maxRasters is increased as needed +so the argument is no longer used. +

    +
+ + + + +

SWEAVE & VIGNETTES

+ + +
    +
  • Options keep.source = TRUE, figs.only = FALSE +are now the default. +

    +
  • +
  • The way the type of user-defined options is determined has +changed. Previously they were all regarded as logical: now the +type is determined by the value given at first use. +

    +
  • +
  • The allowed values of logical options are now precisely +those allowed for character inputs to as.logical(): this +means that t and f are no longer allowed (although +T and F still are). +

    +
  • +
  • The preferred location for vignette sources is now the +directory ‘vignettes’ and not ‘inst/doc’: R CMD + build will now re-build vignettes in directory ‘vignettes’ +and copy the ‘.Rnw’ (etc) files and the corresponding PDFs to +‘inst/doc’. Further files to be copied to ‘inst/doc’ +can be specified via the file +‘vignettes/.install_extras’. +

    +
  • +
  • R CMD Sweave now supports a --driver +option to select the Sweave driver: the default is equivalent to +--driver=RweaveLatex. +

    +
  • +
  • R CMD Sweave and R CMD Stangle support +options --encoding and --options. +

    +
  • +
  • The Rtangle() driver allows output = "stdout" +or output = "stderr" to select the output or message +connection. This is convenient for scripting using something like +

    +
        R CMD Stangle --options='output="stdout"' foo.Rnw > foo2.R
    +
  • +
  • There is a new option pdf.compress controlling +whether PDF figures are generated using Flate compression (they +are by default). +

    +
  • +
  • R CMD Sweave now has a --pdf option to +produce a PDF version of the processed Sweave document. +

    +
  • +
  • It is no longer allowed to have two vignettes with the +same vignette basename (e.g. ‘vig.Rnw’ and ‘vig.Snw’). +(Previously one vignette hid the other in the vignette() +function.) +

    +
+ + + + +

C-LEVEL FACILITIES

+ + +
    +
  • Function R_tmpnam2 has been added to the API to allow +a temporary filename to include a specified extension. +

    +
+ + + + +

PACKAGE INSTALLATION

+ + +
    +
  • Package ‘DESCRIPTION’ file field KeepSource +forces the package to be installed with keep.source = + TRUE (or FALSE). (Suggestion of Greg Snow. Note that +as all packages are lazy-loaded, this is now only relevant at +installation.) +

    +

    There are corresponding options --with-keep.source and +--without-keep.source for R CMD INSTALL. +

    +
  • +
  • R CMD INSTALL has a new option +--byte-compile to byte-compile the packages during +installation (since all packages are now lazy-loaded). This can +be controlled on a per-package basis by the optional field +ByteCompile in the ‘DESCRIPTION’ file. +

    +
  • +
  • A package R code but without a ‘NAMESPACE’ file will +have a default one created at R CMD build or R + CMD INSTALL time, so all packages will be installed with +namespaces. A consequence of this is that .First.lib() +functions need to be copied to .onLoad() (usually) or +.onAttach(). For the time being, if there is an +auto-generated ‘NAMESPACE’ file and no .onLoad() nor +.onAttach() function is found but .First.lib() is, +it will be run as the attach hook (unless the package is one of a +list of known exceptions, when it will be run as the load hook). +

    +
  • +
  • A warning is given if test-loading a package changes a +locked binding in a package other than itself. It is likely that +this will be disallowed in future releases. (There are pro +tem some exceptions to the warning.) +

    +
  • +
  • A dependency on SVN revision is allowed for R, +e.g. R (>= r56550). This should be used in conjunction with a +version number, e.g. R (>= 2.14.0), R (>= r56550) to +distinguish between R-patched and R-devel versions with the same +SVN revision. +

    +
  • +
  • installed.packages() now hashes the names of its +cache files to avoid very rare problems with excessively long path +names. (PR#14669) +

    +
  • +
  • A top-level ‘COPYING’ file in a package is no longer +installed (file names ‘LICENSE’ or ‘LICENCE’ having long +been preferred). +

    +
+ + + + +

UTILITIES

+ + +
    +
  • R CMD check now gives an error if the R code in a +vignette fails to run, unless this is caused by a missing package. +

    +
  • +
  • R CMD check now unpacks tarballs in the same way +as R CMD INSTALL, including making use of the +environment variable R_INSTALL_TAR to override the default +behaviour. +

    +
  • +
  • R CMD check performs additional code analysis of +package startup functions, and notifies about incorrect argument +lists and (incorrect) calls to functions which modify the search +path or inappropriately generate messages. +

    +
  • +
  • R CMD check now also checks compiled code for +symbols corresponding to functions which might terminate R or +write to ‘stdout’/‘stderr’ instead of the console. +

    +
  • +
  • R CMD check now uses a pdf() device when +checking examples (rather than postscript()). +

    +
  • +
  • R CMD check now checks line-endings of makefiles +and C/C++/Fortran sources in subdirectories of ‘src’ as well +as in ‘src’ itself. +

    +
  • +
  • R CMD check now reports as a NOTE what look like +methods documented with their full names even if there is a +namespace and they are exported. In almost all cases they are +intended to be used only as methods and should use the +\method markup. In the other rare cases the recommended +form is to use a function such as coefHclust which would +not get confused with a method, document that and register it in +the ‘NAMESPACE’ file by s3method(coef, hclust, + coefHclust). +

    +
  • +
  • The default for the environment variable +_R_CHECK_COMPACT_DATA2_ is now true: thus if using the newer +forms of compression introduced in R 2.10.0 would be beneficial +is now checked (by default). +

    +
  • +
  • Reference output for a vignette can be supplied when +checking a package by R CMD check: see ‘Writing R +Extensions’. +

    +
  • +
  • R CMD Rd2dvi allows the use of LaTeX package +inputenx rather than inputenc: the value of the +environment variable RD2DVI_INPUTENC is used. (LaTeX package +inputenx is an optional install which provides greater +coverage of the UTF-8 encoding.) +

    +
  • +
  • Rscript on a Unix-alike now accepts file names +containing spaces (provided these are escaped or quoted in the +shell). +

    +
  • +
  • R CMD build on a Unix-alike (only) now tries to +preserve dates on files it copies from its input directory. (This +was the undocumented behaviour prior to R 2.13.0.) +

    +
+ + + + +

DEPRECATED AND DEFUNCT

+ + +
    +
  • require() no longer has a save argument. +

    +
  • +
  • The gamma argument to hsv(), +rainbow(), and rgb2hsv() has been removed. +

    +
  • +
  • The --no-docs option for +R CMD build --binary is defunct: use +--install-args instead. +

    +
  • +
  • The option --unsafe to R CMD INSTALL is +defunct: use the identical option --no-lock instead. +

    +
  • +
  • The entry point pythag formerly in ‘Rmath.h’ is +defunct: use instead the C99 function hypot. +

    +
  • +
  • R CMD build --binary is formally defunct: +R CMD INSTALL --build has long been the preferred +alternative. +

    +
  • +
  • zip.file.extract() is now defunct: use +unzip() or unz() instead. +

    +
  • +
  • R CMD Rd2dvi without the --pdf option is +now deprecated: only PDF output will be supported in future +releases (since this allows the use of fonts only supported for +PDF), and only R CMD Rd2pdf will be available. +

    +
  • +
  • Options such as --max-nsize and the function +mem.limits() are now deprecated: these limits are nowadays +almost never used, and are reported by gc() when they are +in use. +

    +
  • +
  • Forms like binomial(link = "link") for GLM families +deprecated since R 2.4.0 are now defunct. +

    +
  • +
  • The declarativeOnly argument to +loadNamespace() (not relevant since R 2.13.0) has been +removed. +

    +
  • +
  • Use of library.dynam() without specifying all the +first three arguments is deprecated. (It is often called from a +namespace, and the defaults are only appropriate to a package.) +

    +

    Use of chname in library.dynam() with the extension +‘.so’ or .dll (which is clearly not allowed according +to the help page) is deprecated. This also applies to +library.dynam.unload() and useDynLib directives in +‘NAMESPACE’ files. +

    +
  • +
  • It is deprecated to use mean(x) and sd(x) +directly on data frames (or also matrices, for sd) +x, instead of simply using sapply. +

    +

    In the same spirit, median(x) now gives an error for a data +frame x (it often gave nonsensical results). +

    +
  • +
  • The keep.source argument to library() and +require() is deprecated: it was only used for packages +installed without lazy-loading, and now all packages are +lazy-loaded. +

    +
  • +
  • Using a false value for the ‘DESCRIPTION’ field +LazyLoad is deprecated. +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • The base and recommended packages are now byte-compiled +(equivalent to make bytecode in R 2.13.x). +

    +
  • +
  • Configure option --with-system-zlib now only makes +use of the basic interface of zlib and not the +C function gzseek which has shown erroneous behaviour in +zlib 1.2.4 and 1.2.5. +

    +
  • +
  • The zlib in the R sources is now version 1.2.5. +(This is safe even on 32-bit Linux systems because only the basic +interface is now used.) +

    +
  • +
  • The ‘.afm’ files in package grDevices are now +installed as compressed files (as long done on Windows), saving ca +2MB on the installed size. +

    +
  • +
  • The non-screen cairo-based devices are no longer in the X11 +module and so can be installed without X11. (We have never seen a +Unix-alike system with cairographics installed but not X11, but a +user might select --without-x.) +

    +
  • +
  • Configure will try to use -fobjc-exceptions for the +Objective-C compiler (if present) to ensure that even compilers +that do not enable exceptions by default (such as vanilla gcc) can +be used. (Objective-C is currently only used on Mac OS X.) +

    +
  • +
  • The system call times is required. +

    +
  • +
  • The C99 functions acosh, asinh, atanh, +snprintf and vsnprintf are now required. +

    +
  • +
  • There is no longer support for making DVI manuals via +make dvi, make install-dvi and similar. Only +PDF manuals are supported (to allow the use of fonts which are +only available for PDF.) +

    +
  • +
  • The ‘configure’ arguments used during configuration of +R are included as a comment in ‘Makeconf’ for informative +purposes on Unix-alikes in a form suitable for shell execution. +Note that those are merely command-line arguments, they do not +include environment variables (one more reason to use configure +variables instead) or site configuration settings. +

    +
  • +
  • Framework installation now supports DESTDIR +(Mac OS X only). +

    +
  • +
  • Java detection (R CMD javareconf) works around bogus +java.library.path property in recent Oracle Java binaries. +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • The locale category LC_MONETARY was only being set on +startup on Windows: that is now done on Unix-alikes where +supported. +

    +
  • +
  • Reference class utilities will detect an attempt to modify +methods or fields in a locked class definition (e.g., in a +namespace) and generate an error. +

    +
  • +
  • The formula methods for lines(), points() and +text() now work even if package stats is not on the +search path. +

    +
  • +
  • In principle, S4 classes from different packages could +have the same name. This has not previously worked. Changes +have now been installed that should allow such classes and +permit methods to use them. New functions className() +and multipleClasses() are related tools for programming. +

    +
  • +
  • Work around an issue in Linux (a system select call +resetting tv) which prevented internet operations from +timing out properly. +

    +
  • +
  • Several stack trampling and overflow issues have been fixed +in TRE, triggered by agrep and friends with long patterns. +(PR#14627) +

    +
  • +
  • (“design infelicity”) Field assignments in reference +classes are now consistent with slots in S4 classes: the +assigned value must come from the declared class (if any) for the field +or from a subclass. +

    +
  • +
  • The methods objects constructed for "coerce" and +"coerce<-" were lacking some essential information in the +generic, defined and target slots; +as() did not handle duplicate class definitions correctly. +

    +
  • +
  • The parser no longer accepts the digit 8 in an octal +character code in a string, nor does it accept unterminated +strings in a file. (Reported by Bill Dunlap.) +

    +
  • +
  • The print() method for class "summary.aov" did +not pass on argument digits when summary() was +called on a single object, and hence used more digits than +documented. +

    +
  • +
  • The X11() device's cairo back-end produced incorrect +capture snapshot images on big-endian machines. +

    +
  • +
  • loglin() gave a spurious error when argument +margin consisted of a single element of length one. +(PR#14690) +

    +
  • +
  • loess() is better protected against misuse, +e.g. zero-length span. (PR#14691) +

    +
  • +
  • HoltWinters() checks that the optimization +succeeded. (PR#14694) +

    +
  • +
  • The (undocumented) inclusion of superclass objects in +default initializing of reference classes overwrote explicit +field arguments. The bug is fixed, the feature documented and a +test added. +

    +
  • +
  • round(x, -Inf) now does something sensible (return +zero rather than NA). +

    +
  • +
  • signif(x, -Inf) now behaves as documented +(signif(x, 1)) rather than giving zero. +

    +
  • +
  • The "table" method for Axis() hardcoded +side = 1, hence calls to plot(<vector>, <table>) +labelled the wrong axis. (PR#14699) +

    +
  • +
  • Creating a connection might fail under gctorture(TRUE). +

    +
  • +
  • stack() and unstack() converted character +columns to factors. +

    +

    unstack() sometimes produced incorrect results (a list or a +vector) if the factor on which to un-split had only one level. +

    +
  • +
  • On some systems help(".C", help_type = "pdf") and +similar generated file names that TeX was unable to handle. +

    +
  • +
  • Non-blocking listening socket connections continued to +report isIncomplete() as true even when the peer had closed +down and all available input had been read. +

    +
  • +
  • The revised HTML search system now generates better +hyperlinks to help topics found: previously it gave problems with +help pages with names containing e.g. spaces and slashes. +

    +
  • +
  • A late change in R 2.13.2 broke \Sexpr expressions +in Rd files. +

    +
  • +
  • The creation of ticks on log axes (including by +axTicks()) sometimes incorrectly omitted a tick at one end +of the range by rounding error in a platform-dependent way. This +could be seen in the examples for axTicks(), where with +axis limits c(0.2, 88) the tick for 0.2 was +sometimes omitted. +

    +
  • +
  • qgamma() for small shape underflows to +0 rather than sometimes giving NaN. +(PR#8528, PR#14710) +

    +
  • +
  • mapply() now gives an explicit error message (rather +than an obscure one) if inputs of zero and positive length are +mixed. +

    +
  • +
  • Setting a Hershey font family followed by string height +query would crash R. +

    +
  • +
  • R CMD javareconf -e would fail for some shells due to +a shift error. Also the resulting paths will no longer contain +$(JAVA_HOME) as that can result in an unintended +substitution based on ‘Makeconf’ instead of the shell +setting. +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.13.2

+ + + +

NEW FEATURES

+ + +
    +
  • mem.limits() now reports values larger than the +maximum integer (previously documented to be reported as +NA), and allows larger values to be set, including +Inf to remove the limit. +

    +
  • +
  • The print() methods for classes "Date", +"POSIXct" and "POSIXlt" respect the option +"max.print" and so are much faster for very long datetime +vectors. (Suggestion of Yohan Chalabi.) +

    +
  • +
  • untar2() now works around errors generated with +tar files that use more than the standard 6 digits for the +checksum. (PR#14654) +

    +
  • +
  • install.packages() with Ncpus > 1 guards +against simultaneous installation of indirect dependencies as well +as direct ones. +

    +
  • +
  • Sweave now knows about a few more Windows' encodings +(including cp1250 and cp1257) and some +inputenx encodings such as koi8-r. +

    +
  • +
  • postscript(colormodel = "rgb-nogray") no longer sets +the sRGB colorspace for each colour and so some viewers may render +its files much faster than the default colormodel ="rgb". +

    +
  • +
  • The default for pdf(maxRasters=) has been increased +from 64 to 1000. +

    +
  • +
  • readBin() now warns if signed = FALSE is used +inappropriately (rather than being silently ignored). +

    +

    It enforces the documented limit of 2^31-1 bytes +in a single call. +

    +
  • +
  • PCRE has been updated to version 8.13, a bug-fix release +with updated Unicode tables (version 6.0.0). An additional patch +(r611 from PCRE 8.20-to-be) has been added to fix a collation +symbol recognition issue. +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • It is possible to build in ‘src/extra/xdr’ on more +platforms. (Needed since glibc 2.14 hides its RPC implementation.) +

    +
  • +
  • configure will find the Sun TI-RPC implementation +of xdr (in ‘libtirpc’) provided its header files are in the +search path: see the ‘R Installation and Administration +Manual’. +

    +
+ + + + +

PACKAGE INSTALLATION

+ + +
    +
  • Using a broad exportPattern directive in a +‘NAMESPACE’ file is no longer allowed to export internal +objects such as .onLoad and .__S3MethodsTable__. . +

    +

    These are also excluded from imports, along with .First.lib. +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • fisher.test() had a buglet: If arguments were factors +with unused levels, levels were dropped and you would get an error +saying that there should be at least two levels, inconsistently +with pre-tabulated data. (Reported by Michael Fay). +

    +
  • +
  • package.skeleton() will no longer dump S4 objects +supplied directly rather than in a code file. These cannot be +restored correctly from the dumped version. +

    +
  • +
  • Build-time expressions in help files did not have access +to functions in the package being built (with R CMD build). +

    +
  • +
  • Because quote() did not mark its result as being in +use, modification of the result could in some circumstances +modify the original call. +

    +
  • +
  • Plotting pch = '.' now guarantees at least a one-pixel +dot if cex > 0. +

    +
  • +
  • The very-rarely-used command-line option +--max-vsize was incorrectly interpreted as a number of +Vcells and not in bytes as documented. (Spotted by Christophe +Rhodes.) +

    +
  • +
  • The HTML generated by Rd2HTML() comes closer to +being standards compliant. +

    +
  • +
  • filter(x, recursive = TRUE) gave incorrect results on a +series containing NAs. (Spotted by Bill Dunlap.) +

    +
  • +
  • Profiling stats::mle() fits with a fixed +parameter was not supported. (PR#14646) +

    +
  • +
  • retracemem() was still using positional matching. +(PR#14650) +

    +
  • +
  • The quantile method for "ecdf" objects now +works and is documented. +

    +
  • +
  • xtabs(~ .., ..., sparse=TRUE) now also works together +with an exclude = .. specification. +

    +
  • +
  • decompose() computed an incorrect seasonal component for +time series with odd frequencies. +

    +
  • +
  • The pdf() device only includes the definition of the +sRGB colorspace in the output file for the "rgb" colormodel +(and not for "gray" nor "cmyk"): this saves ca +9KB in the output file. +

    +
  • +
  • .hasSlot() wrongly gave FALSE in some cases. +

    +
  • +
  • Sweave() with keep.source=TRUE could generate +spurious NA lines when a chunk reference appeared last in +a code chunk. +

    +
  • +
  • \Sexpr[results=rd] in an ‘.Rd’ file now first tries +parse_Rd(fragment=FALSE) to allow Rd section-level macros +to be inserted. +

    +
  • +
  • The print() method for class "summary.aov" did +not pass on arguments such as signif.stars when +summary() was called on a single object. (PR#14684) +

    +
  • +
  • In rare cases ks.test() could return a p-value +very slightly less than 0 by rounding error. (PR#14671) +

    +
  • +
  • If trunc() was called on a "POSIXlt" vector +and the result was subsetted, all but the first element was +converted to NA. (PR#14679) +

    +
  • +
  • cbind() and rbind() could cause memory +corruption when used on a combination of raw and logical/integer +vectors. +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.13.1

+ + + +

NEW FEATURES

+ + +
    +
  • iconv() no longer translates NA strings as +"NA". +

    +
  • +
  • persp(box = TRUE) now warns if the surface extends +outside the box (since occlusion for the box and axes is computed +assuming the box is a bounding box). (PR#202) +

    +
  • +
  • RShowDoc() can now display the licences shipped with +R, e.g. RShowDoc("GPL-3"). +

    +
  • +
  • New wrapper function showNonASCIIfile() in package +tools. +

    +
  • +
  • nobs() now has a "mle" method in package +stats4. +

    +
  • +
  • trace() now deals correctly with S4 reference classes +and corresponding reference methods (e.g., $trace()) +have been added. +

    +
  • +
  • xz has been updated to 5.0.3 (very minor bugfix +release). +

    +
  • +
  • tools::compactPDF() gets more compression (usually a +little, sometimes a lot) by using the compressed object streams of +PDF 1.5. +

    +
  • +
  • cairo_ps(onefile = TRUE) generates encapsulated EPS +on platforms with cairo >= 1.6. +

    +
  • +
  • Binary reads (e.g. by readChar() and readBin()) +are now supported on clipboard connections. (Wish of PR#14593.) +

    +
  • +
  • as.POSIXlt.factor() now passes ... to the +character method (suggestion of Joshua Ulrich). [Intended for R +2.13.0 but accidentally removed before release.] +

    +
  • +
  • vector() and its wrappers such as integer() +and double() now warn if called with a length +argument of more than one element. This helps track down user +errors such as calling double(x) instead of +as.double(x). +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • Building the vignette PDFs in packages grid and +utils is now part of running make from an SVN +checkout on a Unix-alike: a separate make vignettes step +is no longer required. +

    +

    These vignettes are now made with keep.source = TRUE and +hence will be laid out differently. +

    +
  • +
  • make install-strip failed under some configuration +options. +

    +
  • +
  • Packages can customize non-standard installation of compiled +code via a src/install.libs.R script. This allows packages that +have architecture-specific binaries (beyond the package's shared +objects/DLLs) to be installed in a multi-architecture setting. +

    +
+ + + + +

SWEAVE & VIGNETTES

+ + +
    +
  • Sweave() and Stangle() gain an encoding +argument to specify the encoding of the vignette sources if the +latter do not contain a \usepackage[]{inputenc} statement +specifying a single input encoding. +

    +
  • +
  • There is a new Sweave option figs.only = TRUE to run +each figure chunk only for each selected graphics device, and not +first using the default graphics device. This will become the +default in R 2.14.0. +

    +
  • +
  • Sweave custom graphics devices can have a custom function +foo.off() to shut them down. +

    +
  • +
  • Warnings are issued when non-portable filenames are found +for graphics files (and chunks if split = TRUE). Portable +names are regarded as alphanumeric plus hyphen, underscore, plus +and hash (periods cause problems with recognizing file +extensions). +

    +
  • +
  • The Rtangle() driver has a new option +show.line.nos which is by default false; if true it +annotates code chunks with a comment giving the line number of the +first line in the sources (the behaviour of R >= 2.12.0). +

    +
  • +
  • Package installation tangles the vignette sources: this step +now converts the vignette sources from the vignette/package +encoding to the current encoding, and records the encoding (if not +ASCII) in a comment line at the top of the installed ‘.R’ +file. +

    +
+ + + + +

LICENCE

+ + +
    +
  • No parts of R are now licensed solely under GPL-2. The +licences for packages rpart and survival have been +changed, which means that the licence terms for R as distributed +are GPL-2 | GPL-3. +

    +
+ + + + +

DEPRECATED AND DEFUNCT

+ + +
    +
  • The internal functions .readRDS() and +.saveRDS() are now deprecated in favour of the public +functions readRDS() and saveRDS() introduced in R +2.13.0. +

    +
  • +
  • Switching off lazy-loading of code via the +LazyLoad field of the ‘DESCRIPTION’ file is now +deprecated. In future all packages will be lazy-loaded. +

    +
  • +
  • The off-line help() types "postscript" and +"ps" are deprecated. +

    +
+ + + + +

UTILITIES

+ + +
    +
  • R CMD check on a multi-architecture installation now +skips the user's ‘.Renviron’ file for the +architecture-specific tests (which do read the +architecture-specific ‘Renviron.site’ files). This is +consistent with single-architecture checks, which use +--no-environ. +

    +
  • +
  • R CMD build now looks for ‘DESCRIPTION’ +fields BuildResaveData and BuildKeepEmpty for +per-package overrides. See ‘Writing R Extensions’. +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • plot.lm(which = 5) was intended to order factor +levels in increasing order of mean standardized residual. It +ordered the factor labels correctly, but could plot the wrong +group of residuals against the label. (PR#14545) +

    +
  • +
  • mosaicplot() could clip the factor labels, and could +overlap them with the cells if a non-default value of +cex.axis was used. (Related to PR#14550.) +

    +
  • +
  • dataframe[[row,col]] now dispatches on [[ +methods for the selected column. (Spotted by Bill Dunlap). +

    +
  • +
  • sort.int() would strip the class of an object, but +leave its object bit set. (Reported by Bill Dunlap.) +

    +
  • +
  • pbirthday() and qbirthday() did not implement +the algorithm exactly as given in their reference and so were +unnecessarily inaccurate. +

    +

    pbirthday() now solves the approximate formula analytically +rather than using uniroot() on a discontinuous function. +

    +

    The description of the problem was inaccurate: the probability is +a tail probability (‘2 or more people share a birthday’) +

    +
  • +
  • Complex arithmetic sometimes warned incorrectly about +producing NAs when there were NaNs in the input. +

    +
  • +
  • seek(origin = "current") incorrectly reported it was +not implemented for a gzfile() connection. +

    +
  • +
  • c(), unlist(), cbind() and +rbind() could silently overflow the maximum vector length +and cause a segfault. (PR#14571) +

    +
  • +
  • The fonts argument to X11(type = "Xlib") was +being ignored. +

    +
  • +
  • Reading (e.g. with readBin()) from a raw connection +was not advancing the pointer, so successive reads would read the +same value. (Spotted by Bill Dunlap.) +

    +
  • +
  • Parsed text containing embedded newlines was printed +incorrectly by as.character.srcref(). (Reported by Hadley +Wickham.) +

    +
  • +
  • decompose() used with a series of a non-integer +number of periods returned a seasonal component shorter than the +original series. (Reported by Rob Hyndman.) +

    +
  • +
  • fields = list() failed for setRefClass(). +(Reported by Michael Lawrence.) +

    +
  • +
  • Reference classes could not redefine an inherited field +which had class "ANY". (Reported by Janko Thyson.) +

    +
  • +
  • Methods that override previously loaded versions will now +be installed and called. (Reported by Iago Mosqueira.) +

    +
  • +
  • addmargins() called numeric(apos) rather than +numeric(length(apos)). +

    +
  • +
  • The HTML help search sometimes produced bad links. +(PR#14608) +

    +
  • +
  • Command completion will no longer be broken if +tail.default() is redefined by the user. (Problem reported +by Henrik Bengtsson.) +

    +
  • +
  • LaTeX rendering of markup in titles of help pages has been +improved; in particular, \eqn{} may be used there. +

    +
  • +
  • isClass() used its own namespace as the default of +the where argument inadvertently. +

    +
  • +
  • Rd conversion to latex mishandled multi-line titles +(including cases where there was a blank line in the \title +section). (It seems this happened only in 2.13.0 patched.) +

    +
  • +
  • postscript() with an sRGB colormodel now uses sRGB +for raster images (in R 2.13.[01] it used uncalibrated RGB). +

    +

    There is no longer an undocumented 21845-pixel limit on raster images. +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.13.0

+ + + +

SIGNIFICANT USER-VISIBLE CHANGES

+ + +
    +
  • replicate() (by default) and vapply() (always) +now return a higher-dimensional array instead of a matrix in the case +where the inner function value is an array of dimension >= 2. +

    +
  • +
  • Printing and formatting of floating point numbers is now +using the correct number of digits, where it previously rarely +differed by a few digits. (See “scientific” entry below.) +This affects many*.Rout.save’ checks in packages. +

    +
+ + + + +

NEW FEATURES

+ + +
    +
  • normalizePath() has been moved to the base +package (from utils): this is so it can be used by +library() and friends. +

    +

    It now does tilde expansion. +

    +

    It gains new arguments winslash (to select the separator on +Windows) and mustWork to control the action if a canonical +path cannot be found. +

    +
  • +
  • The previously barely documented limit of 256 bytes on a +symbol name has been raised to 10,000 bytes (a sanity check). +Long symbol names can sometimes occur when deparsing expressions +(for example, in model.frame). +

    +
  • +
  • reformulate() gains a intercept argument. +

    +
  • +
  • cmdscale(add = FALSE) now uses the more common +definition that there is a representation in n-1 or less +dimensions, and only dimensions corresponding to positive +eigenvalues are used. (Avoids confusion such as PR#14397.) +

    +
  • +
  • Names used by c(), unlist(), cbind() +and rbind() are marked with an encoding when this can be +ascertained. +

    +
  • +
  • R colours are now defined to refer to the sRGB color space. +

    +

    The PDF, PostScript, and Quartz graphics devices record this fact. +X11 (and cairo) and Windows just assume that your screen conforms. +

    +
  • +
  • system.file() gains a mustWork argument +(suggestion of Bill Dunlap). +

    +
  • +
  • new.env(hash = TRUE) is now the default. +

    +
  • +
  • list2env(envir = NULL) defaults to hashing (with a +suitably sized environment) for lists of more than 100 elements. +

    +
  • +
  • text() gains a formula method. +

    +
  • +
  • IQR() now has a type argument which is passed +to quantile(). +

    +
  • +
  • as.vector(), as.double() etc duplicate less +when they leave the mode unchanged but remove attributes. +

    +

    as.vector(mode = "any") no longer duplicates when it does +not remove attributes. This helps memory usage in matrix() +and array(). +

    +

    matrix() duplicates less if data is an atomic vector +with attributes such as names (but no class). +

    +

    dim(x) <- NULL duplicates less if x has neither +dimensions nor names (since this operation removes names and +dimnames). +

    +
  • +
  • setRepositories() gains an addURLs argument. +

    +
  • +
  • chisq.test() now also returns a stdres +component, for standardized residuals (which have unit variance, +unlike the Pearson residuals). +

    +
  • +
  • write.table() and friends gain a fileEncoding +argument, to simplify writing files for use on other OSes (e.g. a +spreadsheet intended for Windows or Mac OS X Excel). +

    +
  • +
  • Assignment expressions of the form foo::bar(x) <- y +and foo:::bar(x) <- y now work; the replacement functions +used are foo::`bar<-` and foo:::`bar<-`. +

    +
  • +
  • Sys.getenv() gains a names argument so +Sys.getenv(x, names = FALSE) can replace the common idiom +of as.vector(Sys.getenv()). The default has been changed +to not name a length-one result. +

    +
  • +
  • Lazy loading of environments now preserves attributes and +locked status. (The locked status of bindings and active bindings +are still not preserved; this may be addressed in the future). +

    +
  • +
  • options("install.lock") may be set to FALSE +so that install.packages() defaults to --no-lock +installs, or (on Windows) to TRUE so that binary installs +implement locking. +

    +
  • +
  • sort(partial = p) for large p now tries +Shellsort if quicksort is not appropriate and so works for +non-numeric atomic vectors. +

    +
  • +
  • sapply() gets a new option simplify = "array" +which returns a “higher rank” array instead of just a matrix +when FUN() returns a dim() length of two or more. +

    +

    replicate() has this option set by default, and +vapply() now behaves that way internally. +

    +
  • +
  • aperm() becomes S3 generic and gets a table +method which preserves the class. +

    +
  • +
  • merge() and as.hclust() methods for objects of +class "dendrogram" are now provided. +

    +
  • +
  • The character method of as.POSIXlt() now tries to +find a format that works for all non-NA inputs, not just +the first one. +

    +
  • +
  • str() now has a method for class "Date" +analogous to that for class "POSIXt". +

    +
  • +
  • New function file.link() to create hard links on +those file systems (POSIX, NTFS but not FAT) that support them. +

    +
  • +
  • New Summary() group method for class "ordered" +implements min(), max() and range() for +ordered factors. +

    +
  • +
  • mostattributes<-() now consults the "dim" +attribute and not the dim() function, making it more useful +for objects (such as data frames) from classes with methods for +dim(). It also uses attr<-() in preference to the +generics name<-(), dim<-() and dimnames<-(). +(Related to PR#14469.) +

    +
  • +
  • There is a new option "browserNLdisabled" to disable +the use of an empty (e.g. via the ‘Return’ key) as a synonym +for c in browser() or n under debug(). +(Wish of PR#14472.) +

    +
  • +
  • example() gains optional new arguments +character.only and give.lines enabling programmatic +exploration. +

    +
  • +
  • serialize() and unserialize() are no longer +described as ‘experimental’. The interface is now regarded +as stable, although the serialization format may well change in +future releases. (serialize() has a new argument +version which would allow the current format to be written +if that happens.) +

    +

    New functions saveRDS() and readRDS() are public +versions of the ‘internal’ functions .saveRDS() and +.readRDS() made available for general use. The dot-name +versions remain available as several package authors have made use +of them, despite the documentation. readRDS() no longer +wraps non-file connections in a call to gzcon(), for +efficiency (see its documentation). +

    +

    saveRDS() supports compress = "xz". +

    +
  • +
  • Many functions when called with a not-open connection will +now ensure that the connection is left not-open in the event of +error. These include read.dcf(), dput(), +dump(), load(), parse(), readBin(), +readChar(), readLines(), save(), +writeBin(), writeChar(), writeLines(), +.readRDS(), .saveRDS() and tools::parse_Rd(), +as well as functions calling these. +

    +
  • +
  • Public functions find.package() and path.package() +replace the internal dot-name versions. +

    +
  • +
  • The default method for terms() now looks for a +"terms" attribute if it does not find a "terms" +component, and so works for model frames. +

    +
  • +
  • httpd() handlers receive an additional argument +containing the full request headers as a raw vector (this can be +used to parse cookies, multi-part forms etc.). The recommended +full signature for handlers is therefore function(url, + query, body, headers, ...). +

    +
  • +
  • file.edit() gains a fileEncoding argument to +specify the encoding of the file(s). +

    +
  • +
  • The format of the HTML package listings has changed. If +there is more than one library tree , a table of links to +libraries is provided at the top and bottom of the page. Where a +library contains more than 100 packages, an alphabetic index is +given at the top of the section for that library. (As a +consequence, package names are now sorted case-insensitively +whatever the locale.) +

    +
  • +
  • isSeekable() now returns FALSE on connections +which have non-default encoding. Although documented to +record if ‘in principle’ the connection supports seeking, +it seems safer to report FALSE when it may not work. +

    +
  • +
  • R CMD REMOVE and remove.packages() now +remove file R.css when removing all remaining packages in a +library tree. (Related to the wish of PR#14475: note that this +file is no longer installed.) +

    +
  • +
  • unzip() now has a unzip argument like +zip.file.extract(). This allows an external +unzip program to be used, which can be useful to access +features supported by Info-ZIP's unzip version 6 which +is now becoming more widely available. +

    +
  • +
  • There is a simple zip() function, as wrapper for an +external zip command. +

    +
  • +
  • bzfile() connections can now read from concatenated +bzip2 files (including files written with +bzfile(open = "a")) and files created by some other +compressors (such as the example of PR#14479). +

    +
  • +
  • The primitive function c() is now of type BUILTIN. +

    +
  • +
  • plot(<dendrogram>, .., nodePar=*) now obeys an optional +xpd specification (allowing clipping to be turned off +completely). +

    +
  • +
  • nls(algorithm="port") now shares more code with +nlminb(), and is more consistent with the other +nls() algorithms in its return value. +

    +
  • +
  • xz has been updated to 5.0.1 (very minor bugfix +release). +

    +
  • +
  • image() has gained a logical useRaster +argument allowing it to use a bitmap raster for plotting a +regular grid instead of polygons. This can be more efficient, but +may not be supported by all devices. The default is FALSE. +

    +
  • +
  • list.files()/dir() gains a new argument +include.dirs() to include directories in the listing when +recursive = TRUE. +

    +
  • +
  • New function list.dirs() lists all directories, +(even empty ones). +

    +
  • +
  • file.copy() now (by default) copies +read/write/execute permissions on files, moderated by the current +setting of Sys.umask(). +

    +
  • +
  • Sys.umask() now accepts mode = NA and returns +the current umask value (visibly) without changing it. +

    +
  • +
  • There is a ! method for classes "octmode" and +"hexmode": this allows xor(a, b) to work if both +a and b are from one of those classes. +

    +
  • +
  • as.raster() no longer fails for vectors or matrices +containing NAs. +

    +
  • +
  • New hook "before.new.plot" allows functions to be run +just before advancing the frame in plot.new, which is +potentially useful for custom figure layout implementations. +

    +
  • +
  • Package tools has a new function compactPDF() +to try to reduce the size of PDF files via qpdf +or gs. +

    +
  • +
  • tar() has a new argument extra_flags. +

    +
  • +
  • dotchart() accepts more general objects x such +as 1D tables which can be coerced by as.numeric() to a +numeric vector, with a warning since that might not be +appropriate. +

    +
  • +
  • The previously internal function create.post() is now +exported from utils, and the documentation for +bug.report() and help.request() now refer to that +for create.post(). +

    +

    It has a new method = "mailto" on Unix-alikes similar to +that on Windows: it invokes a default mailer via open +(Mac OS X) or xdg-open or the default browser (elsewhere). +

    +

    The default for ccaddress is now +getOption("ccaddress") which is by default unset: using the +username as a mailing address nowadays rarely works as expected. +

    +
  • +
  • The default for options("mailer") is now +"mailto" on all platforms. +

    +
  • +
  • unlink() now does tilde-expansion (like most other +file functions). +

    +
  • +
  • file.rename() now allows vector arguments (of the +same length). +

    +
  • +
  • The "glm" method for logLik() now returns an +"nobs" attribute (which stats4::BIC() assumed it +did). +

    +

    The "nls" method for logLik() gave incorrect results +for zero weights. +

    +
  • +
  • There is a new generic function nobs() in package +stats, to extract from model objects a suitable value for +use in BIC calculations. An S4 generic derived from it is defined +in package stats4. +

    +
  • +
  • Code for S4 reference-class methods is now examined for +possible errors in non-local assignments. +

    +
  • +
  • findClasses, getGeneric, findMethods +and hasMethods are revised to deal consistently with +the package= argument and be consistent with soft namespace +policy for finding objects. +

    +
  • +
  • tools::Rdiff() now has the option to return not only +the status but a character vector of observed differences (which +are still by default sent to ‘stdout’). +

    +
  • +
  • The startup environment variables R_ENVIRON_USER, +R_ENVIRON, R_PROFILE_USER and R_PROFILE are now +treated more consistently. In all cases an empty value is +considered to be set and will stop the default being used, and for +the last two tilde expansion is performed on the file name. (Note +that setting an empty value is probably impossible on Windows.) +

    +
  • +
  • Using R --no-environ CMD, R + --no-site-file CMD or R --no-init-file CMD sets +environment variables so these settings are passed on to child R +processes, notably those run by INSTALL, check and +build. R --vanilla CMD sets these three options +(but not --no-restore). +

    +
  • +
  • smooth.spline() is somewhat faster. With +cv=NA it allows some leverage computations to be skipped, +

    +
  • +
  • The internal (C) function scientific(), at the heart +of R's format.info(x), format(x), print(x), +etc, for numeric x, has been re-written in order to provide +slightly more correct results, fixing PR#14491, notably in +border cases including when digits >= 16, thanks to +substantial contributions (code and experiments) from Petr +Savicky. This affects a noticeable amount of numeric output from +R. +

    +
  • +
  • A new function grepRaw() has been introduced for +finding subsets of raw vectors. It supports both literal searches +and regular expressions. +

    +
  • +
  • Package compiler is now provided as a standard +package. See ?compiler::compile for information on how to +use the compiler. This package implements a byte code compiler +for R: by default the compiler is not used in this release. See +the ‘R Installation and Administration Manual’ for how to +compile the base and recommended packages. +

    +
  • +
  • Providing an exportPattern directive in a NAMESPACE +file now causes classes to be exported according to the same +pattern, for example the default from package.skeleton() +to specify all names starting with a letter. An explicit +directive to exportClassPattern will still over-ride. +

    +
  • +
  • There is an additional marked encoding "bytes" for +character strings. This is intended to be used for non-ASCII +strings which should be treated as a set of bytes, and never +re-encoded as if they were in the encoding of the current locale: +useBytes = TRUE is automatically selected in functions such +as writeBin(), writeLines(), grep() and +strsplit(). +

    +

    Only a few character operations are supported (such as substr()). +

    +

    Printing, format() and cat() will represent non-ASCII +bytes in such strings by a \xab escape. +

    +
  • +
  • The new function removeSource() removes the internally +stored source from a function. +

    +
  • +
  • "srcref" attributes now include two additional +line number values, recording the line numbers in the order they +were parsed. +

    +
  • +
  • New functions have been added for source reference access: +getSrcFilename(), getSrcDirectory(), +getSrcLocation() and getSrcref(). +

    +
  • +
  • Sys.chmod() has an extra argument use_umask +which defaults to true and restricts the file mode by the current +setting of umask. This means that all the R functions +which manipulate file/directory permissions by default respect +umask, notably R CMD INSTALL. +

    +
  • +
  • tempfile() has an extra argument fileext to +create a temporary filename with a specified extension. +(Suggestion and initial implementation by Dirk Eddelbuettel.) +

    +

    There are improvements in the way Sweave() and +Stangle() handle non-ASCII vignette sources, especially in +a UTF-8 locale: see ‘Writing R Extensions’ which now has a +subsection on this topic. +

    +
  • +
  • factanal() now returns the rotation matrix if a +rotation such as "promax" is used, and hence factor +correlations are displayed. (Wish of PR#12754.) +

    +
  • +
  • The gctorture2() function provides a more refined +interface to the GC torture process. Environment variables +R_GCTORTURE, R_GCTORTURE_WAIT, and +R_GCTORTURE_INHIBIT_RELEASE can also be used to control the +GC torture process. +

    +
  • +
  • file.copy(from, to) no longer regards it as an error +to supply a zero-length from: it now simply does nothing. +

    +
  • +
  • rstandard.glm() gains a type argument which can +be used to request standardized Pearson residuals. +

    +
  • +
  • A start on a Turkish translation, thanks to Murat Alkan. +

    +
  • +
  • .libPaths() calls normalizePath(winslash = "/") +on the paths: this helps (usually) to present them in a +user-friendly form and should detect duplicate paths accessed via +different symbolic links. +

    +
  • +
  • download.file() can be now used with external methods +even if there are spaces in the URL or the target filename. +

    +
  • +
  • The first formal argument of .C(), .Fortran(), +.Call() and .External() is now referred to a +.NAME rather than name: however actual calls should +have an unnamed first argument. +

    +
+ + + + +

SWEAVE CHANGES

+ + +
    +
  • Sweave() has options to produce PNG and JPEG figures, +and to use a custom function to open a graphics device (see +?RweaveLatex).
    +(Based in part on the contribution of PR#14418.) +

    +
  • +
  • The default for Sweave() is to produce only PDF +figures (rather than both EPS and PDF). +

    +
  • +
  • Environment variable SWEAVE_OPTIONS can be used to +supply defaults for existing or new options to be applied after +the Sweave driver setup has been run. +

    +
  • +
  • The Sweave manual is now included as a vignette in the +utils package. +

    +
  • +
  • Sweave() handles keep.source=TRUE much better: +it could duplicate some lines and omit comments. (Reported by John +Maindonald and others.) +

    +
+ + + + +

C-LEVEL FACILITIES

+ + +
    +
  • Because they use a C99 interface which a C++ compiler is not +required to support, Rvprintf and REvprintf are only +defined by ‘R_ext/Print.h’ in C++ code if the macro +R_USE_C99_IN_CXX is defined when it is included. +

    +
  • +
  • pythag duplicated the C99 function hypot. It +is no longer provided, but is used as a substitute for hypot +in the very unlikely event that the latter is not available. +

    +
  • +
  • R_inspect(obj) and R_inspect3(obj, deep, pvec) +are (hidden) C-level entry points to the internal inspect +function and can be used for C-level debugging (e.g., in conjunction +with the p command in gdb). +

    +
  • +
  • Compiling R with --enable-strict-barrier now also +enables additional checking for use of unprotected objects. In +combination with gctorture() or gctorture2() and a +C-level debugger this can be useful for tracking down memory +protection issues. +

    +
+ + + + +

UTILITIES

+ + +
    +
  • R CMD Rdiff is now implemented in R on +Unix-alikes (as it has been on Windows since R 2.12.0). +

    +
  • +
  • R CMD build no longer does any cleaning in the +supplied package directory: all the cleaning is done in the copy. +

    +

    It has a new option --install-args to pass arguments to +R CMD INSTALL for --build (but not when +installing to rebuild vignettes). +

    +

    There is new option, --resave-data, to call +tools::resaveRdaFiles() on the ‘data’ directory, to +compress tabular files (‘.tab’, ‘.csv’ etc) and to +convert ‘.R’ files to ‘.rda’ files. The default, +--resave-data=gzip, is to do so in a way compatible even +with years-old versions of R, but better compression is given by +--resave-data=best, requiring R >= 2.10.0. +

    +

    It now adds a ‘datalist’ file for ‘data’ directories of +more than 1Mb. +

    +

    Patterns in ‘.Rbuildignore’ are now also matched against all +directory names (including those of empty directories). +

    +

    There is a new option, --compact-vignettes, to try +reducing the size of PDF files in the ‘inst/doc’ directory. +Currently this tries qpdf: other options may be used in +future. +

    +

    When re-building vignettes and a ‘inst/doc/Makefile’ file is +found, make clean is run if the makefile has a +clean: target. +

    +

    After re-building vignettes the default clean-up operation will +remove any directories (and not just files) created during the +process: e.g. one package created a ‘.R_cache’ directory. +

    +

    Empty directories are now removed unless the option +--keep-empty-dirs is given (and a few packages do +deliberately include empty directories). +

    +

    If there is a field BuildVignettes in the package +‘DESCRIPTION’ file with a false value, re-building the +vignettes is skipped. +

    +
  • +
  • R CMD check now also checks for filenames that are +case-insensitive matches to Windows' reserved file names with +extensions, such as ‘nul.Rd’, as these have caused problems +on some Windows systems. +

    +

    It checks for inefficiently saved ‘data/*.rda’ and +‘data/*.RData’ files, and reports on those large than 100Kb. +A more complete check (including of the type of compression, but +potentially much slower) can be switched on by setting environment +variable _R_CHECK_COMPACT_DATA2_ to TRUE. +

    +

    The types of files in the ‘data’ directory are now checked, +as packages are still misusing it for non-R data files. +

    +

    It now extracts and runs the R code for each vignette in a +separate directory and R process: this is done in the package's +declared encoding. Rather than call +tools::checkVignettes(), it calls +tools::buildVignettes() to see if the vignettes can be +re-built as they would be by R CMD build. Option +--use-valgrind now applies only to these runs, and not +when running code to rebuild the vignettes. This version does a +much better job of suppressing output from successful vignette +tests. +

    +

    The ‘00check.log’ file is a more complete record of what is +output to ‘stdout’: in particular contains more details of +the tests. +

    +

    It now checks all syntactically valid Rd usage entries, and warns +about assignments (unless these give the usage of replacement +functions). +

    +

    .tar.xz’ compressed tarballs are now allowed, if +tar supports them (and setting environment variable +TAR to internal ensures so on all platforms). +

    +
  • +
  • R CMD check now warns if it finds +‘inst/doc/makefile’, and R CMD build renames such a +file to ‘inst/doc/Makefile’. +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • Installing R no longer tries to find perl, and +R CMD no longer tries to substitute a full path for +awk nor perl – this was a legacy from the +days when they were used by R itself. Because a couple of +packages do use awk, it is set as the make +(rather than environment) variable AWK. +

    +
  • +
  • make check will now fail if there are differences +from the reference output when testing package examples and if +environment variable R_STRICT_PACKAGE_CHECK is set to a true +value. +

    +
  • +
  • The C99 double complex type is now required. +

    +

    The C99 complex trigonometric functions (such as csin) are +not currently required (FreeBSD lacks most of them): substitutes +are used if they are missing. +

    +
  • +
  • The C99 system call va_copy is now required. +

    +
  • +
  • If environment variable R_LD_LIBRARY_PATH is set +during configuration (for example in ‘config.site’) it is +used unchanged in file ‘etc/ldpaths’ rather than being +appended to. +

    +
  • +
  • configure looks for support for OpenMP and if +found compiles R with appropriate flags and also makes them +available for use in packages: see ‘Writing R Extensions’. +

    +

    This is currently experimental, and is only used in R with a +single thread for colSums() and colMeans(). Expect +it to be more widely used in later versions of R. +

    +

    This can be disabled by the --disable-openmp flag. +

    +
+ + + + +

PACKAGE INSTALLATION

+ + +
    +
  • R CMD INSTALL --clean now removes copies of a +‘src’ directory which are created when multiple +sub-architectures are in use. (Following a comment from +Berwin Turlach.) +

    +
  • +
  • File ‘R.css’ is now installed on a per-package basis +(in the package's ‘html’ directory) rather than in each +library tree, and this is used for all the HTML pages in the +package. This helps when installing packages with static HTML +pages for use on a webserver. It will also allow future versions +of R to use different stylesheets for the packages they install. +

    +
  • +
  • A top-level file ‘.Rinstignore’ in the package sources +can list (in the same way as ‘.Rbuildignore’) files under +inst that should not be installed. (Why should there be any +such files? Because all the files needed to re-build vignettes +need to be under inst/doc, but they may not need to be +installed.) +

    +
  • +
  • R CMD INSTALL has a new option +--compact-docs to compact any PDFs under the +‘inst/doc’ directory. Currently this uses qpdf, +which must be installed (see ‘Writing R Extensions’). +

    +
  • +
  • There is a new option --lock which can be used to +cancel the effect of --no-lock or --pkglock earlier +on the command line. +

    +
  • +
  • Option --pkglock can now be used with more than one +package, and is now the default if only one package is specified. +

    +
  • +
  • Argument lock of install.packages() can now be +use for Mac binary installs as well as for Windows ones. The +value "pkglock" is now accepted, as well as TRUE and +FALSE (the default). +

    +
  • +
  • There is a new option --no-clean-on-error for +R CMD INSTALL to retain a partially installed package for +forensic analysis. +

    +
  • +
  • Packages with names ending in ‘.’ are not portable +since Windows does not work correctly with such directory names. +This is now warned about in R CMD check, and will not be +allowed in R 2.14.x. +

    +
  • +
  • The vignette indices are more comprehensive (in the style of +browseVignetttes()). +

    +
+ + + + +

DEPRECATED & DEFUNCT

+ + +
    +
  • require(save = TRUE) is defunct, and use of the +save argument is deprecated. +

    +
  • +
  • R CMD check --no-latex is defunct: use +--no-manual instead. +

    +
  • +
  • R CMD Sd2Rd is defunct. +

    +
  • +
  • The gamma argument to hsv(), +rainbow(), and rgb2hsv() is deprecated +and no longer has any effect. +

    +
  • +
  • The previous options for R CMD build --binary +(--auto-zip, --use-zip-data and +--no-docs) are deprecated (or defunct): +use the new option --install-args instead. +

    +
  • +
  • When a character value is used for the EXPR +argument in switch(), only a single unnamed alternative +value is now allowed. +

    +
  • +
  • The wrapper utils::link.html.help() is no longer +available. +

    +
  • +
  • Zip-ing data sets in packages (and hence R CMD + INSTALL options --use-zip-data and --auto-zip, as +well as the ZipData: yes field in a DESCRIPTION file) +is defunct. +

    +

    Installed packages with zip-ed data sets can still be used, but a +warning that they should be re-installed will be given. +

    +
  • +
  • The ‘experimental’ alternative specification of a +namespace via .Export() etc is now defunct. +

    +
  • +
  • The option --unsafe to R CMD INSTALL is +deprecated: use the identical option --no-lock instead. +

    +
  • +
  • The entry point pythag in ‘Rmath.h’ is deprecated +in favour of the C99 function hypot. A wrapper for +hypot is provided for R 2.13.x only. +

    +
  • +
  • Direct access to the "source" attribute of functions +is deprecated; use deparse(fn, control="useSource") to access +it, and removeSource(fn) to remove it. +

    +
  • +
  • R CMD build --binary is now formally deprecated: +R CMD INSTALL --build has long been the preferred +alternative. +

    +
  • +
  • Single-character package names are deprecated (and R +is already disallowed to avoid confusion in Depends: +fields). +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • drop.terms and the [ method for class +"terms" no longer add back an intercept. (Reported by +Niels Hansen.) +

    +
  • +
  • aggregate preserves the class of a column (e.g. a +date) under some circumstances where it discarded the class +previously. +

    +
  • +
  • p.adjust() now always returns a vector result, as +documented. In previous versions it copied attributes (such as +dimensions) from the p argument: now it only copies names. +

    +
  • +
  • On PDF and PostScript devices, a line width of zero was +recorded verbatim and this caused problems for some viewers +(a very thin line combined with a non-solid line dash pattern +could also cause a problem). On these devices, the line width is +now limited at 0.01 and for very thin lines with complex dash +patterns the device may force the line dash pattern to be solid. +(Reported by Jari Oksanen.) +

    +
  • +
  • The str() method for class "POSIXt" now gives +sensible output for 0-length input. +

    +
  • +
  • The one- and two-argument complex maths functions failed to +warn if NAs were generated (as their numeric analogues do). +

    +
  • +
  • Added .requireCachedGenerics to the dont.mind +list for library() to avoid warnings about duplicates. +

    +
  • +
  • $<-.data.frame messed with the class attribute, +breaking any S4 subclass. The S4 data.frame class now has its own +$<- method, and turns dispatch on for this primitive. +

    +
  • +
  • Map() did not look up a character argument f +in the correct frame, thanks to lazy evaluation. (PR#14495) +

    +
  • +
  • file.copy() did not tilde-expand from and to +when to was a directory. (PR#14507) +

    +
  • +
  • It was possible (but very rare) for the loading test in +R CMD INSTALL to crash a child R process and so leave +around a lock directory and a partially installed package. That +test is now done in a separate process. +

    +
  • +
  • plot(<formula>, data=<matrix>,..) now works in more +cases; similarly for points(), lines() and +text(). +

    +
  • +
  • edit.default() contained a manual dispatch for matrices +(the "matrix" class didn't really exist when it was written). +This caused an infinite recursion in the no-GUI case and has now +been removed. +

    +
  • +
  • data.frame(check.rows = TRUE) sometimes worked when +it should have detected an error. (PR#14530) +

    +
  • +
  • scan(sep= , strip.white=TRUE) sometimes stripped +trailing spaces from within quoted strings. (The real bug in +PR#14522.) +

    +
  • +
  • The rank-correlation methods for cor() and +cov() with use = "complete.obs" computed the ranks +before removing missing values, whereas the documentation implied +incomplete cases were removed first. (PR#14488) +

    +

    They also failed for 1-row matrices. +

    +
  • +
  • The perpendicular adjustment used in placing text and +expressions in the margins of plots was not scaled by +par("mex"). (Part of PR#14532.) +

    +
  • +
  • Quartz Cocoa device now catches any Cocoa exceptions that +occur during the creation of the device window to prevent crashes. +It also imposes a limit of 144 ft^2 on the area used by a window +to catch user errors (unit misinterpretation) early. +

    +
  • +
  • The browser (invoked by debug(), browser() +or otherwise) would display attributes such as "wholeSrcref" +that were intended for internal use only. +

    +
  • +
  • R's internal filename completion now properly handles +filenames with spaces in them even when the readline library is +used. This resolves PR#14452 provided the internal filename +completion is used (e.g., by setting rc.settings(files = + TRUE)). +

    +
  • +
  • Inside uniroot(f, ...), -Inf function values +are now replaced by a maximally negative value. +

    +
  • +
  • rowsum() could silently over/underflow on integer +inputs (reported by Bill Dunlap). +

    +
  • +
  • as.matrix() did not handle "dist" objects with +zero rows. +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.12.2 patched

+ + + +

NEW FEATURES

+ + +
    +
  • max() and min() work harder to ensure that +NA has precedence over NaN, so e.g. min(NaN, + NA) is NA. (This was not previously documented except +for within a single numeric vector, where compiler optimizations +often defeated the code.) +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • A change to the C function R_tryEval had broken error +messages in S4 method selection; the error message is now printed. +

    +
  • +
  • PDF output with a non-RGB color model used RGB for the line +stroke color. (PR#14511) +

    +
  • +
  • stats4::BIC() assumed without checking that an object +of class "logLik" has an "nobs" attribute: +glm() fits did not and so BIC() failed for them. +

    +
  • +
  • In some circumstances a one-sided mantelhaen.test() +reported the p-value for the wrong tail. (PR#14514) +

    +
  • +
  • Passing the invalid value lty = NULL to axis() +sent an invalid value to the graphics device, and might cause the +device to segfault. +

    +
  • +
  • Sweave() with concordance=TRUE could lead to +invalid PDF files; ‘Sweave.sty’ has been updated to avoid +this. +

    +
  • +
  • Non-ASCII characters in the titles of help pages were +not rendered properly in some locales, and could cause errors +or warnings. +

    +
  • +
  • checkRd() gave a spurious error if the \href +macro was used. +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.12.2

+ + + +

SIGNIFICANT USER-VISIBLE CHANGES

+ + +
    +
  • Complex arithmetic (notably z^n for complex z +and integer n) gave incorrect results since R 2.10.0 on +platforms without C99 complex support. This and some +lesser issues in trigonometric functions have been corrected. +

    +

    Such platforms were rare (we know of Cygwin and FreeBSD). +However, because of new compiler optimizations in the way complex +arguments are handled, the same code was selected on x86_64 Linux +with gcc 4.5.x at the default -O2 optimization +(but not at -O). +

    +
  • +
  • There is a workaround for crashes seen with several packages +on systems using zlib 1.2.5: see the INSTALLATION section. +

    +
+ + + + +

NEW FEATURES

+ + +
    +
  • PCRE has been updated to 8.12 (two bug-fix releases since 8.10). +

    +
  • +
  • rep(), seq(), seq.int() and +seq_len() report more often when the first element is taken +of an argument of incorrect length. +

    +
  • +
  • The Cocoa back-end for the quartz() graphics device +on Mac OS X provides a way to disable event loop processing +temporarily (useful, e.g., for forked instances of R). +

    +
  • +
  • kernel()'s default for m was not appropriate +if coef was a set of coefficients. (Reported by Pierre +Chausse.) +

    +
  • +
  • bug.report() has been updated for the current R bug +tracker, which does not accept emailed submissions. +

    +
  • +
  • R CMD check now checks for the correct use of +$(LAPACK_LIBS) (as well as $(BLAS_LIBS)), since +several CRAN recent submissions have ignored ‘Writing R +Extensions’. +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • The zlib sources in the distribution are now built +with all symbols remapped: this is intended to avoid problems seen +with packages such as XML and rggobi which link to +‘zlib.so.1’ on systems using zlib 1.2.5. +

    +
  • +
  • The default for FFLAGS and FCFLAGS with +gfortran on x86_64 Linux has been changed back to -g + -O2: however, setting -g -O may still be needed for +gfortran 4.3.x. +

    +
+ + + + +

PACKAGE INSTALLATION

+ + +
    +
  • A LazyDataCompression field in the ‘DESCRIPTION’ +file will be used to set the value for the +--data-compress option of R CMD INSTALL. +

    +
  • +
  • Files ‘R/sysdata.rda’ of more than 1Mb are now stored +in the lazyload database using xz compression: this for +example halves the installed size of package Imap. +

    +
  • +
  • R CMD INSTALL now ensures that directories +installed from ‘inst’ have search permission for everyone. +

    +

    It no longer installs files ‘inst/doc/Rplots.ps’ and +‘inst/doc/Rplots.pdf’. These are almost certainly left-overs +from Sweave runs, and are often large. +

    +
+ + + + +

DEPRECATED & DEFUNCT

+ + +
    +
  • The ‘experimental’ alternative specification of a +namespace via .Export() etc is now deprecated. +

    +
  • +
  • zip.file.extract() is now deprecated. +

    +
  • +
  • Zip-ing data sets in packages (and hence R CMD + INSTALL --use-zip-data and the ZipData: yes field in a +DESCRIPTION file) is deprecated: using efficiently +compressed ‘.rda’ images and lazy-loading of data has +superseded it. +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • identical() could in rare cases generate a warning +about non-pairlist attributes on CHARSXPs. As these are used for +internal purposes, the attribute check should be skipped. +(Reported by Niels Richard Hansen). +

    +
  • +
  • If the filename extension (usually ‘.Rnw’) was not +included in a call to Sweave(), source references would not +work properly and the keep.source option failed. (PR#14459) +

    +
  • +
  • format.data.frame() now keeps zero character column names. +

    +
  • +
  • pretty(x) no longer raises an error when x +contains solely non-finite values. (PR#14468) +

    +
  • +
  • The plot.TukeyHSD() function now uses a line width of +0.5 for its reference lines rather than lwd = 0 (which +caused problems for some PDF and PostScript viewers). +

    +
  • +
  • The big.mark argument to prettyNum(), +format(), etc. was inserted reversed if it was more than +one character long. +

    +
  • +
  • R CMD check failed to check the filenames under +‘man’ for Windows' reserved names. +

    +
  • +
  • The "Date" and "POSIXt" methods for +seq() could overshoot when to was supplied and +by was specified in months or years. +

    +
  • +
  • The internal method of untar() now restores hard +links as file copies rather than symbolic links (which did not +work for cross-directory links). +

    +
  • +
  • unzip() did not handle zip files which contained +filepaths with two or more leading directories which were not in +the zipfile and did not already exist. (It is unclear if such +zipfiles are valid and the third-party C code used did not support +them, but PR#14462 created one.) +

    +
  • +
  • combn(n, m) now behaves more regularly for the border +case m = 0. (PR#14473) +

    +
  • +
  • The rendering of numbers in plotmath expressions (e.g. +expression(10^2)) used the current settings for conversion +to strings rather than setting the defaults, and so could be +affected by what has been done before. (PR#14477) +

    +
  • +
  • The methods of napredict() and naresid() for +na.action = na.exclude fits did not work correctly in the +very rare event that every case had been omitted in the fit. +(Reported by Simon Wood.) +

    +
  • +
  • weighted.residuals(drop0=TRUE) returned a vector when +the residuals were a matrix (e.g. those of class "mlm"). +(Reported by Bill Dunlap.) +

    +
  • +
  • Package HTML index files ‘<pkg>/html/00Index.html’ were +generated with a stylesheet reference that was not correct for +static browsing in libraries. +

    +
  • +
  • ccf(na.action = na.pass) was not implemented. +

    +
  • +
  • The parser accepted some incorrect numeric constants, +e.g. 20x2. (Reported by Olaf Mersmann.) +

    +
  • +
  • format(*, zero.print) did not always replace the full +zero parts. +

    +
  • +
  • Fixes for subsetting or subassignment of "raster" +objects when not both i and j are specified. +

    +
  • +
  • R CMD INSTALL was not always respecting the +ZipData: yes field of a ‘DESCRIPTION’ file (although +this is frequently incorrectly specified for packages with no data +or which specify lazy-loading of data). +

    +

    R CMD INSTALL --use-zip-data was incorrectly implemented +as --use-zipdata since R 2.9.0. +

    +
  • +
  • source(file, echo=TRUE) could fail if the file +contained #line directives. It now recovers more gracefully, but +may still display the wrong line if the directive gives incorrect +information. +

    +
  • +
  • atan(1i) returned NaN+Infi (rather than +0+Infi) on platforms without C99 complex support. +

    +
  • +
  • library() failed to cache S4 metadata (unlike +loadNamespace()) causing failures in S4-using packages +without a namespace (e.g. those using reference classes). +

    +
  • +
  • The function qlogis(lp, log.p=TRUE) no longer +prematurely overflows to Inf when exp(lp) is close to 1. +

    +
  • +
  • Updating S4 methods for a group generic function requires +resetting the methods tables for the members of the group (patch +contributed by Martin Morgan). +

    +
  • +
  • In some circumstances (including for package XML), +R CMD INSTALL installed version-control directories from +source packages. +

    +
  • +
  • Added PROTECT calls to some constructed expressions +used in C level eval calls. +

    +
  • +
  • utils:::create.post() (used by bug.report() +and help.request()) failed to quote arguments to the +mailer, and so often failed. +

    +
  • +
  • bug.report() was naive about how to extract +maintainer email addresses from package descriptions, so would +often try mailing to incorrect addresses. +

    +
  • +
  • debugger() could fail to read the environment of a +call to a function with a ... argument. (Reported by +Charlie Roosen.) +

    +
  • +
  • prettyNum(c(1i, NA), drop0=TRUE) or +str(NA_complex_) now work correctly. +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.12.1

+ + + +

NEW FEATURES

+ + +
    +
  • The DVI/PDF reference manual now includes the help pages for +all the standard packages: splines, stats4 and +tcltk were previously omitted (intentionally). +

    +
  • +
  • http://www.rforge.net has been added to the default +set of repositories known to setRepositories(). +

    +
  • +
  • xz-utils has been updated to version 5.0.0. +

    +
  • +
  • reshape() now makes use of sep when forming +names during reshaping to wide format. (PR#14435) +

    +
  • +
  • legend() allows the length of lines to be set by the +end user via the new argument seg.len. +

    +
  • +
  • New S4 reference class utility methods copy(), +field(), getRefClass() and getClass() have +been added to package methods. +

    +
  • +
  • When a character value is used for the EXPR +argument in switch(), a warning is given if more than +one unnamed alternative value is given. This will become an +error in R 2.13.0. +

    +
  • +
  • StructTS(type = "BSM") now allows series with just +two seasons. (Reported by Birgit Erni.) +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • The PDF reference manual is now built as PDF version 1.5 +with object compression, which on platforms for which this is not +the default (notably MiKTeX) halves its size. +

    +
  • +
  • Variable FCLIBS can be set during configuration, for +any additional library flags needed when linking a shared object +with the Fortran 9x compiler. (Needed with Solaris Studio 12.2.) +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • seq.int() no longer sometimes evaluates arguments +twice. (PR#14388) +

    +
  • +
  • The data.frame method of format() failed if a +column name was longer than 256 bytes (the maximum length allowed +for an R name). +

    +
  • +
  • predict(<lm object>, type ="terms", ...) failed if +both terms and interval were specified. (Reported +by Bill Dunlap.) +

    +

    Also, if se.fit = TRUE the standard errors were reported +for all terms, not just those selected by a non-null terms. +

    +
  • +
  • The TRE regular expressions engine could terminate R rather +than give an error when given certain invalid regular expressions. +(PR#14398) +

    +
  • +
  • cmdscale(eig = TRUE) was documented to return n-1 +eigenvalues but in fact only returned k. It now returns +all n eigenvalues. +

    +

    cmdscale(add = TRUE) failed to centre the return +configuration and sometimes lost the labels on the points. Its +return value was described wrongly (it is always a list and +contains component ac). +

    +
  • +
  • promptClass() in package methods now works for +reference classes and gives a suitably specialized skeleton of +documentation. +

    +

    Also, callSuper() now works via the methods() +invocation as well as for initially specified methods. +

    +
  • +
  • download.file() could leave the destination file open +if the URL was not able to be opened. (PR#14414) +

    +
  • +
  • Assignment of an environment to functions or as an attribute +to other objects now works for S4 subclasses of "environment". +

    +
  • +
  • Use of [[<- for S4 subclasses of +"environment" generated an infinite recursion from the +method. The method has been replaced by internal code. +

    +
  • +
  • In a reference class S4 method, callSuper() now works in +initialize() methods when there is no explicit superclass +method. +

    +
  • +
  • ! dropped attributes such as names and dimensions from a +length-zero argument. (PR#14424) +

    +
  • +
  • When list2env() created an environment it was missing +a PROTECT call and so was vulnerable to garbage collection. +

    +
  • +
  • Sweave() with keep.source=TRUE dropped +comments at the start and end of code chunks. It could also +fail when \SweaveInput was combined with named chunks. +

    +
  • +
  • The Fortran code used by nls(algorithm = "port") +could infinite-loop when compiled with high optimization on a +modern version of gcc, and SAFE_FFLAGS is now used +to make this less likely. (PR#14427, seen with 32-bit Windows +using gcc 4.5.0 used from R 2.12.0.) +

    +
  • +
  • sapply() with default simplify = TRUE and +mapply() with default SIMPLIFY = TRUE wrongly +simplified language-like results, as, e.g., in +mapply(1:2, c(3,7), FUN = function(i,j) call(':',i,j)). +

    +
  • +
  • Backreferences to undefined patterns in +[g]sub(pcre = TRUE) could cause a segfault. (PR#14431) +

    +
  • +
  • The format() (and hence the print()) method +for class "Date" rounded fractional dates towards zero: it +now always rounds them down. +

    +
  • +
  • Reference S4 class creation could generate ambiguous +inheritance patterns under very special circumstances. +

    +
  • +
  • [[<- turned S4 subclasses of "environment" into +plain environments. +

    +
  • +
  • Long titles for help pages were truncated in package indices +and a few other places. +

    +
  • +
  • Additional utilities now work correctly with S4 subclasses of +"environment" (rm, locking tools and active +bindings). +

    +
  • +
  • spec.ar() now also work for the "ols" method. +(Reported by Hans-Ruedi Kuensch.) +

    +
  • +
  • The initialization of objects from S4 subclasses of +"environment" now allocates a new environment object. +

    +
  • +
  • R CMD check has more protection against (probably +erroneous) example or test output which is invalid in the current +locale. +

    +
  • +
  • qr.X() with column names and pivoting now also pivots +the column names. (PR#14438) +

    +
  • +
  • unit.pmax() and unit.pmin() in package +grid gave incorrect results when all inputs were of length 1. +(PR#14443) +

    +
  • +
  • The parser for ‘NAMESPACE’ files ignored misspelled +directives, rather than signalling an error. For 2.12.x a warning +will be issued, but this will be correctly reported as an error +in later releases. (Reported by Charles Berry.) +

    +
  • +
  • Fix for subsetting of "raster" objects when only one +of i or j is specified. +

    +
  • +
  • grid.raster() in package grid did not accept +"nativeRaster" objects (like rasterImage() does). +

    +
  • +
  • Rendering raster images in PDF output was resetting the +clipping region. +

    +
  • +
  • Rendering of raster images on cairo X11 device was wrong, +particularly when a small image was being scaled up using +interpolation. +

    +

    With cairo < 1.6, will be better than before, though still a +little clunky. With cairo >= 1.6, should be sweet as. +

    +
  • +
  • Several bugs fixed in read.DIF(): single column +inputs caused errors, cells marked as "character" could +be converted to other types, and (in Windows) copying from the +clipboard failed. +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.12.0

+ + + +

NEW FEATURES

+ + +
    +
  • Reading a package's ‘CITATION’ file now defaults to +ASCII rather than Latin-1: a package with a non-ASCII +‘CITATION’ file should declare an encoding in its +‘DESCRIPTION’ file and use that encoding for the +‘CITATION’ file. +

    +
  • +
  • difftime() now defaults to the "tzone" +attribute of "POSIXlt" objects rather than to the current +timezone as set by the default for the tz argument. (Wish +of PR#14182.) +

    +
  • +
  • pretty() is now generic, with new methods for +"Date" and "POSIXt" classes (based on code +contributed by Felix Andrews). +

    +
  • +
  • unique() and match() are now faster on +character vectors where all elements are in the global CHARSXP +cache and have unmarked encoding (ASCII). Thanks to Matthew +Dowle for suggesting improvements to the way the hash code is +generated in ‘unique.c’. +

    +
  • +
  • The enquote() utility, in use internally, is exported now. +

    +
  • +
  • .C() and .Fortran() now map non-zero return +values (other than NA_LOGICAL) for logical vectors to +TRUE: it has been an implicit assumption that they are +treated as true. +

    +
  • +
  • The print() methods for "glm" and "lm" +objects now insert linebreaks in long calls in the same way that +the print() methods for "summary.[g]lm" objects +have long done. This does change the layout of the examples for +a number of packages, e.g. MASS. (PR#14250) +

    +
  • +
  • constrOptim() can now be used with method +"SANN". (PR#14245) +

    +

    It gains an argument hessian to be passed to +optim(), which allows all the ... arguments to be +intended for f() and grad(). (PR#14071) +

    +
  • +
  • curve() now allows expr to be an object of +mode "expression" as well as "call" and +"function". +

    +
  • +
  • The "POSIX[cl]t" methods for Axis() have been +replaced by a single method for "POSIXt". +

    +

    There are no longer separate plot() methods for +"POSIX[cl]t" and "Date": the default method has +been able to handle those classes for a long time. This +inter alia allows a single date-time object to be +supplied, the wish of PR#14016. +

    +

    The methods had a different default ("") for xlab. +

    +
  • +
  • Classes "POSIXct", "POSIXlt" and +"difftime" have generators .POSIXct(), +.POSIXlt() and .difftime(). Package authors are +advised to make use of them (they are available from R 2.11.0) to +proof against planned future changes to the classes. +

    +

    The ordering of the classes has been changed, so "POSIXt" +is now the second class. See the document ‘Updating +packages for changes in R 2.12.x’ on +http://developer.r-project.org for the consequences for a +handful of CRAN packages. +

    +
  • +
  • The "POSIXct" method of as.Date() allows a +timezone to be specified (but still defaults to UTC). +

    +
  • +
  • New list2env() utility function as an inverse of +as.list(<environment>) and for fast multi-assign() +to existing environment. as.environment() is now generic +and uses list2env() as list method. +

    +
  • +
  • There are several small changes to output which ‘zap’ +small numbers, e.g. in printing quantiles of residuals in +summaries from "lm" and "glm" fits, and in test +statistics in print.anova(). +

    +
  • +
  • Special names such as "dim", "names", etc, are +now allowed as slot names of S4 classes, with "class" the +only remaining exception. +

    +
  • +
  • File ‘.Renviron’ can have architecture-specific versions +such as ‘.Renviron.i386’ on systems with sub-architectures. +

    +
  • +
  • installed.packages() has a new argument +subarch to filter on sub-architecture. +

    +
  • +
  • The summary() method for packageStatus() now +has a separate print() method. +

    +
  • +
  • The default summary() method returns an object +inheriting from class "summaryDefault" which has a +separate print() method that calls zapsmall() for +numeric/complex values. +

    +
  • +
  • The startup message now includes the platform and if used, +sub-architecture: this is useful where different +(sub-)architectures run on the same OS. +

    +
  • +
  • The getGraphicsEvent() mechanism now allows multiple windows +to return graphics events, through the new functions +setGraphicsEventHandlers(), setGraphicsEventEnv(), and +getGraphicsEventEnv(). (Currently implemented in the +windows() and X11() devices.) +

    +
  • +
  • tools::texi2dvi() gains an index argument, +mainly for use by R CMD Rd2pdf. +

    +

    It avoids the use of texindy by texinfo's +texi2dvi >= 1.157, since that does not emulate +'makeindex' well enough to avoid problems with special characters +(such as (, {, !) in indices. +

    +
  • +
  • The ability of readLines() and scan() to +re-encode inputs to marked UTF-8 strings on Windows since R 2.7.0 +is extended to non-UTF-8 locales on other OSes. +

    +
  • +
  • scan() gains a fileEncoding argument to +match read.table(). +

    +
  • +
  • points() and lines() gain "table" +methods to match plot(). (Wish of PR#10472.) +

    +
  • +
  • Sys.chmod() allows argument mode to be a +vector, recycled along paths. +

    +
  • +
  • There are |, & and xor() methods for +classes "octmode" and "hexmode", which work +bitwise. +

    +
  • +
  • Environment variables R_DVIPSCMD, R_LATEXCMD, +R_MAKEINDEXCMD, R_PDFLATEXCMD are no longer used +nor set in an R session. (With the move to +tools::texi2dvi(), the conventional environment variables +LATEX, MAKEINDEX and PDFLATEX will be used. +options("dvipscmd") defaults to the value of DVIPS, +then to "dvips".) +

    +
  • +
  • New function isatty() to see if terminal connections are +redirected. +

    +
  • +
  • summaryRprof() returns the sampling interval in +component sample.interval and only returns in +by.self data for functions with non-zero self times. +

    +
  • +
  • print(x) and str(x) now indicate if an empty +list x is named. +

    +
  • +
  • install.packages() and remove.packages() with +lib unspecified and multiple libraries in +.libPaths() inform the user of the library location used +with a message rather than a warning. +

    +
  • +
  • There is limited support for multiple compressed streams on a +file: all of [bgx]zfile() allow streams to be appended to an +existing file, but bzfile() reads only the first stream. +

    +
  • +
  • Function person() in package utils now uses +a given/family scheme in preference to first/middle/last, is +vectorized to handle an arbitrary number of persons, and gains a +role argument to specify person roles using a controlled +vocabulary (the MARC relator terms). +

    +
  • +
  • Package utils adds a new "bibentry" class +for representing and manipulating bibliographic information in +enhanced BibTeX style, unifying and enhancing the previously +existing mechanisms. +

    +
  • +
  • A bibstyle() function has been added to the +tools package with default JSS style for rendering +"bibentry" objects, and a mechanism for registering other +rendering styles. +

    +
  • +
  • Several aspects of the display of text help are now +customizable using the new Rd2txt_options() function. +options("help_text_width") is no longer used. +

    +
  • +
  • Added \href tag to the Rd format, to allow +hyperlinks to URLs without displaying the full URL. +

    +
  • +
  • Added \newcommand and \renewcommand tags +to the Rd format, to allow user-defined macros. +

    +
  • +
  • New toRd() generic in the tools package to +convert objects to fragments of Rd code, and added +"fragment" argument to Rd2txt(), Rd2HTML(), +and Rd2latex() to support it. +

    +
  • +
  • Directory ‘R_HOME/share/texmf’ now follows the TDS +conventions, so can be set as a texmf tree (‘root +directory’ in MiKTeX parlance). +

    +
  • +
  • S3 generic functions now use correct S4 inheritance when +dispatching on an S4 object. See ?Methods, section on +“Methods for S3 Generic Functions” for recommendations +and details. +

    +
  • +
  • format.pval() gains a ... argument to pass +arguments such as nsmall to format(). (Wish of +PR#9574) +

    +
  • +
  • legend() supports title.adj. (Wish of +PR#13415) +

    +
  • +
  • Added support for subsetting "raster" objects, plus +assigning to a subset, conversion to a matrix (of colour +strings), and comparisons (== and !=). +

    +
  • +
  • Added a new parseLatex() function (and related +functions deparseLatex() and latexToUtf8()) to +support conversion of bibliographic entries for display in R. +

    +
  • +
  • Text rendering of \itemize in help uses a Unicode +bullet in UTF-8 and most single-byte Windows locales. +

    +
  • +
  • Added support for polygons with holes to the graphics +engine. This is implemented for the pdf(), +postscript(), x11(type="cairo"), windows(), +and quartz() devices (and associated raster formats), +but not for x11(type="Xlib") or xfig() or +pictex(). The user-level interface is the +polypath() function in graphics and +grid.path() in grid. +

    +
  • +
  • File ‘NEWS’ is now generated at installation with a +slightly different format: it will be in UTF-8 on platforms using +UTF-8, and otherwise in ASCII. There is also a PDF version, +‘NEWS.pdf’, installed at the top-level of the R distribution. +

    +
  • +
  • kmeans(x, 1) now works. Further, kmeans now +returns between and total sum of squares. +

    +
  • +
  • arrayInd() and which() gain an argument +useNames. For arrayInd, the default is now false, +for speed reasons. +

    +
  • +
  • As is done for closures, the default print method for +the formula class now displays the associated environment if it is +not the global environment. +

    +
  • +
  • A new facility has been added for inserting code into a +package without re-installing it, to facilitate testing +changes which can be selectively added and backed out. See +?insertSource. +

    +
  • +
  • New function readRenviron to (re-)read files in the +format of ‘~/.Renviron’ and ‘Renviron.site’. +

    +
  • +
  • require() will now return FALSE (and not fail) +if loading the package or one of its dependencies fails. +

    +
  • +
  • aperm() now allows argument perm to be a +character vector when the array has named dimnames (as the results +of table() calls do). Similarly, array() allows +MARGIN to be a character vector. (Based on suggestions of +Michael Lachmann.) +

    +
  • +
  • Package utils now exports and documents functions +aspell_package_Rd_files() and +aspell_package_vignettes() for spell checking package Rd +files and vignettes using Aspell, Ispell or Hunspell. +

    +
  • +
  • Package news can now be given in Rd format, and +news() prefers these ‘inst/NEWS.Rd’ files to old-style +plain text ‘NEWS’ or ‘inst/NEWS’ files. +

    +
  • +
  • New simple function packageVersion(). +

    +
  • +
  • The PCRE library has been updated to version 8.10. +

    +
  • +
  • The standard Unix-alike terminal interface declares its name +to readline as 'R', so that can be used for conditional sections +in ‘~/.inputrc’ files. +

    +
  • +
  • ‘Writing R Extensions’ now stresses that the standard +sections in ‘.Rd’ files (other than \alias, +\keyword and \note) are intended to be unique, and +the conversion tools now drop duplicates with a warning. +

    +

    The ‘.Rd’ conversion tools also warn about an unrecognized type +in a \docType section. +

    +
  • +
  • ecdf() objects now have a quantile() method. +

    +
  • +
  • format() methods for date-time objects now attempt to make +use of a "tzone" attribute with "%Z" and +"%z" formats, but it is not always possible. (Wish of +PR#14358.) +

    +
  • +
  • tools::texi2dvi(file, clean = TRUE) now works in more +cases (e.g. where emulation is used and when ‘file’ is not in +the current directory). +

    +
  • +
  • New function droplevels() to remove unused factor levels. +

    +
  • +
  • system(command, intern = TRUE) now gives an error on +a Unix-alike (as well as on Windows) if command cannot be +run. It reports a non-success exit status from running +command as a warning. +

    +

    On a Unix-alike an attempt is made to return the actual exit +status of the command in system(intern = FALSE): previously +this had been system-dependent but on POSIX-compliant systems the +value return was 256 times the status. +

    +
  • +
  • system() has a new argument ignore.stdout +which can be used to (portably) ignore standard output. +

    +
  • +
  • system(intern = TRUE) and pipe() connections +are guaranteed to be available on all builds of R. +

    +
  • +
  • Sys.which() has been altered to return "" if +the command is not found (even on Solaris). +

    +
  • +
  • A facility for defining reference-based S4 classes (in the +OOP style of Java, C++, etc.) has been added experimentally to +package methods; see ?ReferenceClasses. +

    +
  • +
  • The predict method for "loess" fits gains an +na.action argument which defaults to na.pass rather +than the previous default of na.omit. +

    +

    Predictions from "loess" fits are now named from the row +names of newdata. +

    +
  • +
  • Parsing errors detected during Sweave() processing +will now be reported referencing their original location in the +source file. +

    +
  • +
  • New adjustcolor() utility, e.g., for simple +translucent color schemes. +

    +
  • +
  • qr() now has a trivial lm method with a +simple (fast) validity check. +

    +
  • +
  • An experimental new programming model has been added to +package methods for reference (OOP-style) classes and +methods. See ?ReferenceClasses. +

    +
  • +
  • bzip2 has been updated to version 1.0.6 (bug-fix release). +--with-system-bzlib now requires at least version 1.0.6. +

    +
  • +
  • R now provides ‘jss.cls’ and ‘jss.bst’ (the class +and bib style file for the Journal of Statistical Software) as +well as ‘RJournal.bib’ and ‘Rnews.bib’, and +R CMD ensures that the ‘.bst’ and ‘.bib’ files +are found by BibTeX. +

    +
  • +
  • Functions using the TAR environment variable no longer +quote the value when making system calls. This allows +values such as tar --force-local, but does require +additional quotes in, e.g., TAR = "'/path with spaces/mytar'". +

    +
+ + + + +

DEPRECATED & DEFUNCT

+ + +
    +
  • Supplying the parser with a character string containing both +octal/hex and Unicode escapes is now an error. +

    +
  • +
  • File extension ‘.C’ for C++ code files in packages is +now defunct. +

    +
  • +
  • R CMD check no longer supports configuration +files containing Perl configuration variables: use the environment +variables documented in ‘R Internals’ instead. +

    +
  • +
  • The save argument of require() now defaults to +FALSE and save = TRUE is now deprecated. (This +facility is very rarely actually used, and was superseded by the +Depends field of the ‘DESCRIPTION’ file long ago.) +

    +
  • +
  • R CMD check --no-latex is deprecated in favour of +--no-manual. +

    +
  • +
  • R CMD Sd2Rd is formally deprecated and will be +removed in R 2.13.0. +

    +
+ + + + +

PACKAGE INSTALLATION

+ + +
    +
  • install.packages() has a new argument +libs_only to optionally pass --libs-only to +R CMD INSTALL and works analogously for Windows binary +installs (to add support for 64- or 32-bit Windows). +

    +
  • +
  • When sub-architectures are in use, the installed +architectures are recorded in the Archs field of the +‘DESCRIPTION’ file. There is a new default filter, +"subarch", in available.packages() to make use of +this. +

    +

    Code is compiled in a copy of the ‘src’ directory when a +package is installed for more than one sub-architecture: this +avoid problems with cleaning the sources between building +sub-architectures. +

    +
  • +
  • R CMD INSTALL --libs-only no longer overrides the +setting of locking, so a previous version of the package will be +restored unless --no-lock is specified. +

    +
+ + + + +

UTILITIES

+ + +
    +
  • R CMD Rprof|build|check are now based on R rather +than Perl scripts. The only remaining Perl scripts are the +deprecated R CMD Sd2Rd and install-info.pl (used +only if install-info is not found) as well as some +maintainer-mode-only scripts. +

    +

    NB: because these have been completely rewritten, users +should not expect undocumented details of previous +implementations to have been duplicated. +

    +

    R CMD no longer manipulates the environment variables +PERL5LIB and PERLLIB. +

    +
  • +
  • R CMD check has a new argument --extra-arch +to confine tests to those needed to check an additional +sub-architecture. +

    +

    Its check for “Subdirectory 'inst' contains no files” is +more thorough: it looks for files, and warns if there are only +empty directories. +

    +

    Environment variables such as R_LIBS and those used for +customization can be set for the duration of checking via a file +‘~/.R/check.Renviron’ (in the format used by +‘.Renviron’, and with sub-architecture specific versions +such as ‘~/.R/check.Renviron.i386’ taking precedence). +

    +

    There are new options --multiarch to check the package +under all of the installed sub-architectures and +--no-multiarch to confine checking to the +sub-architecture under which check is invoked. If +neither option is supplied, a test is done of installed +sub-architectures and all those which can be run on the current +OS are used. +

    +

    Unless multiple sub-architectures are selected, the install done +by check for testing purposes is only of the current +sub-architecture (via R CMD INSTALL --no-multiarch). +

    +

    It will skip the check for non-ascii characters in code or data +if the environment variables _R_CHECK_ASCII_CODE_ or +_R_CHECK_ASCII_DATA_ are respectively set to FALSE. +(Suggestion of Vince Carey.) +

    +
  • +
  • R CMD build no longer creates an ‘INDEX’ file +(R CMD INSTALL does so), and --force removes +(rather than overwrites) an existing ‘INDEX’ file. +

    +

    It supports a file ‘~/.R/build.Renviron’ analogously to +check. +

    +

    It now runs build-time \Sexpr expressions in help files. +

    +
  • +
  • R CMD Rd2dvi makes use of tools::texi2dvi() +to process the package manual. It is now implemented entirely in +R (rather than partially as a shell script). +

    +
  • +
  • R CMD Rprof now uses utils::summaryRprof() +rather than Perl. It has new arguments to select one of the +tables and to limit the number of entries printed. +

    +
  • +
  • R CMD Sweave now runs R with --vanilla so +the environment setting of R_LIBS will always be used. +

    +
+ + + + +

C-LEVEL FACILITIES

+ + +
    +
  • lang5() and lang6() (in addition to +pre-existing lang[1-4]()) convenience functions for easier +construction of eval() calls. If you have your own +definition, do wrap it inside #ifndef lang5 .... #endif +to keep it working with old and new R. +

    +
  • +
  • Header ‘R.h’ now includes only the C headers it itself needs, +hence no longer includes errno.h. (This helps avoid problems +when it is included from C++ source files.) +

    +
  • +
  • Headers ‘Rinternals.h’ and ‘R_ext/Print.h’ include +the C++ versions of ‘stdio.h’ and ‘stdarg.h’ +respectively if included from a C++ source file. +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • A C99 compiler is now required, and more C99 language features +will be used in the R sources. +

    +
  • +
  • Tcl/Tk >= 8.4 is now required (increased from 8.3). +

    +
  • +
  • System functions access, chdir and +getcwd are now essential to configure R. (In practice +they have been required for some time.) +

    +
  • +
  • make check compares the output of the examples +from several of the base packages to reference output rather than +the previous output (if any). Expect some differences due to +differences in floating-point computations between platforms. +

    +
  • +
  • File ‘NEWS’ is no longer in the sources, but generated as +part of the installation. The primary source for changes is now +‘doc/NEWS.Rd’. +

    +
  • +
  • The popen system call is now required to build R. +This ensures the availability of system(intern = TRUE), +pipe() connections and printing from postscript(). +

    +
  • +
  • The pkg-config file ‘libR.pc’ now also works +when R is installed using a sub-architecture. +

    +
  • +
  • R has always required a BLAS that conforms to IE60559 +arithmetic, but after discovery of more real-world problems caused +by a BLAS that did not, this is tested more thoroughly in this +version. +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • Calls to selectMethod() by default no longer cache +inherited methods. This could previously corrupt methods used by +as(). +

    +
  • +
  • The densities of non-central chi-squared are now more accurate +in some cases in the extreme tails, e.g. dchisq(2000, 2, + 1000), as a series expansion was truncated too early. +(PR#14105) +

    +
  • +
  • pt() is more accurate in the left tail for ncp +large, e.g. pt(-1000, 3, 200). (PR#14069) +

    +
  • +
  • The default C function (R_binary) for binary ops now +sets the S4 bit in the result if either argument is an S4 object. +(PR#13209) +

    +
  • +
  • source(echo=TRUE) failed to echo comments that +followed the last statement in a file. +

    +
  • +
  • S4 classes that contained one of "matrix", +"array" or "ts" and also another class now accept +superclass objects in new(). Also fixes failure to call +validObject() for these classes. +

    +
  • +
  • Conditional inheritance defined by argument test in +methods::setIs() will no longer be used in S4 method +selection (caching these methods could give incorrect results). +See ?setIs. +

    +
  • +
  • The signature of an implicit generic is now used by +setGeneric() when that does not use a definition nor +explicitly set a signature. +

    +
  • +
  • A bug in callNextMethod() for some examples with +"..." in the arguments has been fixed. See file +‘src/library/methods/tests/nextWithDots.R’ in the sources. +

    +
  • +
  • match(x, table) (and hence %in%) now treat +"POSIXlt" consistently with, e.g., "POSIXct". +

    +
  • +
  • Built-in code dealing with environments (get(), +assign(), parent.env(), is.environment() and +others) now behave consistently to recognize S4 subclasses; +is.name() also recognizes subclasses. +

    +
  • +
  • The abs.tol control parameter to nlminb() +now defaults to 0.0 to avoid false declarations of +convergence in objective functions that may go negative. +

    +
  • +
  • The standard Unix-alike termination dialog to ask whether to +save the workspace takes a EOF response as n to avoid +problems with a damaged terminal connection. (PR#14332) +

    +
  • +
  • Added warn.unused argument to hist.default() +to allow suppression of spurious warnings about graphical +parameters used with plot=FALSE. (PR#14341) +

    +
  • +
  • predict.lm(), summary.lm(), and indeed +lm() itself had issues with residual DF in zero-weighted +cases (the latter two only in connection with empty +models). (Thanks to Bill Dunlap for spotting the +predict() case.) +

    +
  • +
  • aperm() treated resize = NA as resize = + TRUE. +

    +
  • +
  • constrOptim() now has an improved convergence +criterion, notably for cases where the minimum was (very close to) +zero; further, other tweaks inspired from code proposals by Ravi +Varadhan. +

    +
  • +
  • Rendering of S3 and S4 methods in man pages has been +corrected and made consistent across output formats. +

    +
  • +
  • Simple markup is now allowed in \title sections +in ‘.Rd’ files. +

    +
  • +
  • The behaviour of as.logical() on factors (to use the +levels) was lost in R 2.6.0 and has been restored. +

    +
  • +
  • prompt() did not backquote some default arguments in +the \usage section. (Reported by Claudia Beleites.) +

    +
  • +
  • writeBin() disallows attempts to write 2GB or +more in a single call. (PR#14362) +

    +
  • +
  • new() and getClass() will now work if Class +is a subclass of "classRepresentation" and should also be +faster in typical calls. +

    +
  • +
  • The summary() method for data frames makes a better +job of names containing characters invalid in the current locale. +

    +
  • +
  • [[ sub-assignment for factors could create an invalid +factor (reported by Bill Dunlap). +

    +
  • +
  • Negate(f) would not evaluate argument f +until first use of returned function (reported by Olaf Mersmann). +

    +
  • +
  • quietly=FALSE is now also an optional argument of +library(), and consequently, quietly is now +propagated also for loading dependent packages, e.g., in +require(*, quietly=TRUE). +

    +
  • +
  • If the loop variable in a for loop was deleted, it +would be recreated as a global variable. (Reported by Radford +Neal; the fix includes his optimizations as well.) +

    +
  • +
  • Task callbacks could report the wrong expression when +the task involved parsing new code. (PR#14368) +

    +
  • +
  • getNamespaceVersion() failed; this was an +accidental change in 2.11.0. (PR#14374) +

    +
  • +
  • identical() returned FALSE for external +pointer objects even when the pointer addresses were the same. +

    +
  • +
  • L$a@x[] <- val did not duplicate in a case it should have. +

    +
  • +
  • tempfile() now always gives a random file name (even +if the directory is specified) when called directly after +startup and before the R RNG had been used. (PR#14381) +

    +
  • +
  • quantile(type=6) behaved inconsistently. (PR#14383) +

    +
  • +
  • backSpline(.) behaved incorrectly when the knot +sequence was decreasing. (PR#14386) +

    +
  • +
  • The reference BLAS included in R was assuming that +0*x and x*0 were always zero (whereas they could be +NA or NaN in IEC 60559 arithmetic). This was seen +in results from tcrossprod, and for example that +log(0) %*% 0 gave 0. +

    +
  • +
  • The calculation of whether text was completely outside +the device region (in which case, you draw nothing) +was wrong for screen devices (which have [0, 0] at top-left). +The symptom was (long) text disappearing when +resizing a screen window (to make it smaller). (PR#14391) +

    +
  • +
  • model.frame(drop.unused.levels = TRUE) did not +take into account NA values of factors when deciding to +drop levels. (PR#14393) +

    +
  • +
  • library.dynam.unload required an absolute path for +libpath. (PR#14385) +

    +

    Both library() and loadNamespace() now record +absolute paths for use by searchpaths() and +getNamespaceInfo(ns, "path"). +

    +
  • +
  • The self-starting model NLSstClosestX failed if some +deviation was exactly zero. (PR#14384) +

    +
  • +
  • X11(type = "cairo") (and other devices such as +png using cairographics) and which use Pango font selection +now work around a bug in Pango when very small fonts (those with +sizes between 0 and 1 in Pango's internal units) are requested. +(PR#14369) +

    +
  • +
  • Added workaround for the font problem with X11(type = + "cairo") and similar on Mac OS X whereby italic and bold styles +were interchanged. (PR#13463 amongst many other reports.) +

    +
  • +
  • source(chdir = TRUE) failed to reset the working +directory if it could not be determined – that is now an error. +

    +
  • +
  • Fix for crash of example(rasterImage) on +x11(type="Xlib"). +

    +
  • +
  • Force Quartz to bring the on-screen display up-to-date +immediately before the snapshot is taken by grid.cap() +in the Cocoa implementation. (PR#14260) +

    +
  • +
  • model.frame had an unstated 500 byte limit on +variable names. (Example reported by Terry Therneau.) +

    +
  • +
  • The 256-byte limit on names is now documented. +

    +
  • +
  • Subassignment by [, [[ or $ on an +expression object with value NULL coerced the object to a +list. +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.11.1 patched

+ + + +

NEW FEATURES

+ + +
    +
  • install.packages() has a new optional argument +INSTALL_opts which can be used to pass options to +R CMD INSTALL for source-package installs. +

    +
  • +
  • R CMD check now runs the package-specific tests +with LANGUAGE=en to facilitate comparison to +‘.Rout.save’ files. +

    +
  • +
  • sessionInfo() gives more detailed platform +information, including 32/64-bit and the sub-architecture if one +is used. +

    +
+ + + + +

DEPRECATED & DEFUNCT

+ + +
    +
  • The use of Perl configuration variables for R CMD + check (as previously documented in ‘Writing R +Extensions’) is deprecated and will be removed in R 2.12.0. Use +the environment variables documented in ‘R Internals’ +instead. +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • R CMD Rd2dvi failed if run from a path containing +space(s). This also affected R CMD check, which calls +Rd2dvi. +

    +
  • +
  • stripchart() could fail with an empty factor +level. (PR#14317) +

    +
  • +
  • Text help rendering of \tabular{} has been +improved: under some circumstances leading blank columns were +not rendered. +

    +
  • +
  • strsplit(x, fixed=TRUE) marked UTF-8 strings with the +local encoding when no splits were found. +

    +
  • +
  • weighted.mean(NA, na.rm=TRUE) and similar now returns +NaN again, as it did prior to R 2.10.0. +

    +
  • +
  • R CMD had a typo in its detection of whether the +environment variable TEXINPUTS was set (reported by Martin +Morgan). +

    +
  • +
  • The command-line parser could mistake +--file=size... for one of the options for setting limits +for Ncells or Vcells. +

    +
  • +
  • The internal strptime() could corrupt its copy of the +timezone which would then lead to spurious warnings. (PR#14338) +

    +
  • +
  • dir.create(recursive = TRUE) could fail if one of the +components existed but was a directory on a read-only file system. +(Seen on Solaris, where the error code returned is not even listed +as possible on the man page.) +

    +
  • +
  • The postscript() and pdf() devices will now +allow lwd values less than 1 (they used to force such +values to be 1). +

    +
  • +
  • Fixed font face for CID fonts in pdf() graphics output. +(PR#14326) +

    +
  • +
  • GERaster() now checks for width or height of zero and +does nothing in those cases; previously the behaviour was +undefined, probably device-specific, and possibly dangerous. +

    +
  • +
  • wilcox.test(x, y, conf.int = TRUE) failed with an unhelpful +message if x and y were constant vectors, and +similarly in the one-sample case. (PR#14329) +

    +
  • +
  • Improperly calling Recall() from outside a function +could cause a segfault. (Reported by Robert McGehee.) +

    +
  • +
  • \Sexpr[result=rd] in an Rd file added a +spurious newline, which was displayed as extra whitespace when +rendered. +

    +
  • +
  • require(save = TRUE) recorded the names of packages +it failed to load. +

    +
  • +
  • packageStatus() could return a data frame with +duplicate row names which could then not be printed. +

    +
  • +
  • txtProgressBar(style = 2) did not work correctly. +

    +

    txtProgressBar(style = 3) did not display until a +non-minimum value was set. +

    +
  • +
  • contour() did not display dashed line types +properly when contour lines were labelled. (Reported by +David B. Thompson.) +

    +
  • +
  • tools::undoc() again detects undocumented data +objects. Of course, this also affects R CMD check. +

    +
  • +
  • ksmooth(x,NULL) no longer segfaults. +

    +
  • +
  • approxfun(), approx(), splinefun() +and spline() could be confused by x values that +were different but so close as to print identically. +(PR#14377) +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.11.1

+ + + +

NEW FEATURES

+ + +
    +
  • R CMD INSTALL checks if dependent packages are +available early on in the installation of source packages, +thereby giving clearer error messages. +

    +
  • +
  • R CMD INSTALL --build now names the file in the +format used for Mac OS X binary files on that platform. +

    +
  • +
  • BIC() in package stats4 now also works with +multiple fitted models, analogously to AIC(). +

    +
+ + + + +

DEPRECATED & DEFUNCT

+ + +
    +
  • Use of file extension ‘.C’ for C++ code in packages is now +deprecated: it has caused problems for some makes on +case-insensitive file systems (although it currently works +with the recommended toolkits). +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • Command gnutar is preferred to tar +when configure sets TAR. This is needed on Mac OS 10.6, +where the default tar, bsdtar 2.6.2, has been +reported to produce archives with illegal extensions to tar +(according to the POSIX standard). +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • The C function mkCharLenCE now no longer reads past +len bytes (unlikely to be a problem except in user +code). (PR#14246) +

    +
  • +
  • On systems without any default LD_LIBRARY_PATH (not +even ‘/usr/local/lib’), [DY]LIB_LIBRARY_PATH is now +set without a trailing colon. (PR#13637) +

    +
  • +
  • More efficient implementation of utf8ToInt() on long +multi-byte strings with many multi-byte characters. (PR#14262) +

    +
  • +
  • aggregate.ts() gave platform-dependent results due to +rounding error for ndeltat != 1. +

    +
  • +
  • package.skeleton() sometimes failed to fix filenames +for ‘.R’ or ‘.Rd’ files to start with an alphanumeric. +(PR#14253) +

    +

    It also failed when only an S4 class without any methods was +defined. (PR#14280) +

    +
  • +
  • splinefun(method = "monoH.FC") was not +quite monotone in rare cases. (PR#14215) +

    +
  • +
  • Rhttpd no longer crashes due to SIGPIPE when +the client closes the connection prematurely. (PR#14266) +

    +
  • +
  • format.POSIXlt() could cause a stack overflow and +crash when used on very long vectors. (PR#14267) +

    +
  • +
  • Rd2latex() incorrectly escaped special characters in +\usage sections. +

    +
  • +
  • mcnemar.test() could alter the levels (dropping +unused levels) if passed x and y as factors +(reported by Greg Snow). +

    +
  • +
  • Rd2pdf sometimes needed a further +pdflatex pass to get hyperlinked pages correct. +

    +
  • +
  • interaction() produced malformed results when levels were +duplicated, causing segfaults in split(). +

    +
  • +
  • cut(d, breaks = <n>) now also works for "Date" +or "POSIXt" argument d. +(PR#14288) +

    +
  • +
  • memDecompress() could decompress incompletely rare +xz-compressed input due to incorrect documentation of +xz utils. (Report and patch from Olaf Mersmann.) +

    +
  • +
  • The S4 initialize() methods for "matrix", +"array", and "ts" have been fixed to call +validObject(). (PR#14284) +

    +
  • +
  • R CMD INSTALL now behaves the same way with or +without --no-multiarch on platforms with only one +installed architecture. (It used to clean the ‘src’ +directory without --no-multiarch.) +

    +
  • +
  • [<-.data.frame was not quite careful enough in +assigning (and potentially deleting) columns +right-to-left. (PR#14263) +

    +
  • +
  • rbeta(n, a, b) no longer occasionally returns +NaN for a >> 1 > b. (PR#14291) +

    +
  • +
  • pnorm(x, log.p = TRUE) could return NaN not +-Inf for x near (minus for lower.tail=TRUE) +the largest representable number. +

    +
  • +
  • Compressed data files ‘*.(txt|tab|csv).(gz|bz2|xz)’ +were not recognized for the list of data topics and hence for +packages using LazyData. (PR#14273) +

    +
  • +
  • textConnection() did an unnecessary translation on +strings in a foreign encoding (e.g. UTF-8 strings on Windows) and +so was slower than it could have been on very long input strings. +(PR#14286) +

    +
  • +
  • tools::Rd2txt() did not render poorly written Rd +files consistently with other renderers. +

    +

    It computed widths of strings that would be print()ed with +escapes incorrectly, for example in the computation of column +width for \tabular. +

    +
  • +
  • na.action() did not extract the na.action +component as documented. +

    +
  • +
  • do.call()ing NextMethod in erroneous ways no +longer segfaults. (PR#13487) +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.11.0

+ + + +

SIGNIFICANT USER-VISIBLE CHANGES

+ + +
    +
  • Packages must have been installed under R >= 2.10.0, as the +current help system is the only one now supported. +

    +
  • +
  • A port to 64-bit Windows is now available as well as binary +package repositories: see the ‘R Administration and +Installation Manual’. +

    +
  • +
  • Argument matching for primitive functions is now done in the +same way as for interpreted functions except for the deliberate +exceptions +

    +
    +	 call switch .C .Fortran .Call .External
    +       
    +all of which use positional matching for their first argument, +and also some internal-use-only primitives. +
  • +
  • The default device for command-line R at the console on Mac OS X +is now quartz() and not X11(). +

    +
+ + + + +

NEW FEATURES

+ + +
    +
  • The open modes for connections are now interpreted +more consistently. open = "r" is now equivalent to +open = "rt" for all connections. The default open = + "" now means "rt" for all connections except the +compressed-file connections gzfile(), bzfile() and +xzfile() for which it means "rb". +

    +
  • +
  • R CMD INSTALL now uses the internal untar() +function in package utils: this ensures that all platforms +can install bzip2- and xz-compressed +tarballs. In case this causes problems (as it has on some +Windows file systems when run from Cygwin tools) it can be +overridden by the environment variable R_INSTALL_TAR: +setting this to a modern external tar program will speed up +unpacking of large (tens of Mb or more) tarballs. +

    +
  • +
  • help(try.all.packages = TRUE) is much faster +(although the time taken by the OS to find all the packages the +first time it is used can dominate the time). +

    +
  • +
  • R CMD check has a new option --timings +to record per-example timings in file +‘<pkg>.Rcheck/<pkg>-Ex.timings’. +

    +
  • +
  • The TRE library has been updated to version 0.8.0 (minor bugfixes). +

    +
  • +
  • grep[l], [g]sub and [g]regexpr now work +in bytes in an 8-bit locales if there is no marked UTF-8 input +string: this will be somewhat faster, and for [g]sub() +give the result in the native encoding rather than in UTF-8 +(which returns to the behaviour prior to R 2.10.0). +

    +
  • +
  • A new argument skipCalls has been added to +browser() so that it can report the original context when +called by other debugging functions. +

    +
  • +
  • More validity checking of UTF-8 and MBCS strings is done by +agrep() and the regular-expression matching functions. +

    +
  • +
  • The undocumented restriction on gregexpr() to +length(text) > 0 has been removed. +

    +
  • +
  • Package tcltk now sends strings to Tcl in UTF-8: this +means that strings with a marked UTF-8 encoding are supported in +non-UTF-8 locales. +

    +
  • +
  • The graphics engine now supports rendering of raster (bitmap) +images, though not all graphics devices can provide (full) +support. Packages providing graphics devices (e.g., Cairo, +RSvgDevice, cairoDevice) will need to be reinstalled. +

    +

    There is also support in the graphics engine for capturing +raster images from graphics devices (again not supported +on all graphics devices). +

    +
  • +
  • R CMD check now also checks if the package and +namespace can be unloaded: this provides a check of the +.Last.lib() and .onUnload() hook functions (unless +--install=fake). +

    +
  • +
  • prop.table(x) now accepts a one-dimensional table for +x. +

    +
  • +
  • A new function vapply() has been added, based on a +suggestion from Bill Dunlap. It requires that a template for the +function value be specified, and uses it to determine the output +type and to check for consistency in the function values. +

    +
  • +
  • The main HTML help page now links to a reformatted copy of +this ‘NEWS’ file. (Suggested by Henrik Bengtsson.) Package +index files link to the package ‘DESCRIPTION’ and +‘NEWS’ files and a list of demos when using dynamic help. +

    +
  • +
  • The [ method for class "AsIs" allows the next +method to change the underlying class. (Wish of Jens +Oehlschlägel.) +

    +
  • +
  • write.csv[2] no longer allow argument append +to be changed: as ever, direct calls to write.table() give +more flexibility as well as more room for error. +

    +
  • +
  • The index page for HTML help for a package now collapses +multiple signatures for S4 methods into a single entry. +

    +
  • +
  • The use of .required by require() and +detach() has been replaced by .Depends which is set +from the Depends field of a package (even in packages with +namespaces). By default detach() prevents such +dependencies from being detached: this can be overridden by the +argument force. +

    +
  • +
  • bquote() has been extended to work on function +definitions. (Wish of +PR#14031). +

    +
  • +
  • detach() when applied to an object other than a +package returns the environment that has been detached, to +parallel attach(). +

    +
  • +
  • readline() in non-interactive use returns "" +and does not attempt to read from the ‘terminal’. +

    +
  • +
  • New function file_ext() in package tools. +

    +
  • +
  • xtfrm() is now primitive and internally generic, as +this allows S4 methods to be set on it without name-space scoping +issues. +

    +

    There are now "AsIs" and "difftime" methods, and +the default method uses unclass(x) if is.numeric(x) +is true (which will be faster but relies on is.numeric() +having been set correctly for the class). +

    +
  • +
  • is.numeric(x) is now false for a "difftime" +object (multiplication and division make no sense for such +objects). +

    +
  • +
  • The default method of weighted.mean(x, w) coerces +w to be numeric (aka double); previously only integer +weights were coerced. Zero weights are handled specially so an +infinite value with zero weight does not force an NaN +result. +

    +

    There is now a "difftime" method. +

    +
  • +
  • bug.report() now has arguments package and +lib.loc to generate bug reports about packages. When +this is used, it looks for a BugReports field in the +package ‘DESCRIPTION’ file, which will be assumed to be a +URL at which to submit the report, and otherwise generates an +email to the package maintainer. (Suggested by Barry +Rowlingson.) +

    +
  • +
  • quantile() now has a method for the date-time class +"POSIXt", and types 1 and 3 (which never interpolate) work +for Dates and ordered factors. +

    +
  • +
  • length(<POSIXlt>) now returns the length of the +corresponding abstract timedate-vector rather than always 9 (the +length of the underlying list structure). (Wish of PR#14073 +and PR#10507.) +

    +
  • +
  • The readline completion backend no longer sorts +possible completions alphabetically (e.g., function argument +names) if R was built with readline >= 6. +

    +
  • +
  • select.list() gains a graphics argument to +allow Windows/Mac users to choose the text interface. This +changes the behaviour of new.packages(ask=TRUE) to be like +update.packages(ask=TRUE) on those platforms in using a +text menu: use ask="graphics" for a graphical menu. +

    +
  • +
  • New function chooseBioCmirror() to set the +"BioC_mirror" option. +

    +
  • +
  • The R grammar now prevents using the argument name +in signatures of S4 methods for $ and $<-, since +they will always be called with a character string value for +name. The implicit S4 generic functions have been +changed to reflect this: packages which included name in +the signature of their methods need to be updated and +re-installed. +

    +
  • +
  • The handling of the method argument of glm() +has been refined following suggestions by Ioannis Kosmidis and +Heather Turner. +

    +
  • +
  • str() gains a new argument list.len with +default 99, limiting the number of list() items (per +level), thanks to suggestions from David Winsenius. +

    +
  • +
  • Having formal arguments of an S4 method in a different order +from the generic is now an error (the warning having been +ignored by some package maintainers for a long time). +

    +
  • +
  • New functions enc2native() and enc2utf8() +convert character vectors with possibly marked encodings to the +current locale and UTF-8 respectively. +

    +
  • +
  • Unrecognized escapes and embedded nuls in character strings are +now an error, not just a warning. Thus option "warnEscapes" +is no longer needed. rawToChar() now removes trailing nuls +silently, but other embedded nuls become errors. +

    +
  • +
  • Informational messages about masked objects displayed when a +package is attached are now more compact, using strwrap() +instead of one object per line. +

    +
  • +
  • print.rle() gains argument prefix. +

    +
  • +
  • download.file() gains a "curl" method, mainly +for use on platforms which have curl but not +wget, but also for some hard-to-access URLs. +

    +
  • +
  • In Rd, \eqn and \deqn will render in +HTML (and convert to text) upper- and lower-case Greek letters +(entered as \alpha ...), \ldots, \dots, +\ge and \le. +

    +
  • +
  • utf8ToInt() and intToUtf8() now map NA inputs +to NA outputs. +

    +
  • +
  • file() has a new argument raw which may help +if it is used with something other than a regular file, e.g. a +character device. +

    +
  • +
  • New function strtoi(), a wrapper for the C function +strtol. +

    +
  • +
  • as.octmode() and as.hexmode() now allow inputs +of length other than one. +

    +

    The format() and print() methods for +"octmode" now preserve names and dimensions (as those for +"hexmode" did). +

    +

    The format() methods for classes "octmode" and +"hexmode" gain a width argument. +

    +
  • +
  • seq.int() returns an integer result in some further cases +where seq() does, e.g. seq.int(1L, 9L, by = 2L). +

    +
  • +
  • Added \subsection{}{} macro to Rd syntax, for +subsections within sections. +

    +
  • +
  • n-dimensional arrays with dimension names can now be indexed +by an n-column character matrix. The indices are matched against +the dimension names. NA indices are propagated to the +result. Unmatched values and "" are not allowed and +result in an error. +

    +
  • +
  • interaction(drop=TRUE) uses less memory (related to +PR#14121). +

    +
  • +
  • summary() methods have been added to the +"srcref" and "srcfile" classes, and various +encoding issues have been cleaned up. +

    +
  • +
  • If option "checkPackageLicense" is set to TRUE (not +currently the default), users will be asked to agree to +non-known-to-be-FOSS package licences at first use. +

    +
  • +
  • Checking setAs(a, b) methods only gives a message +instead of a warning, when one of a or b is +unknown. +

    +
  • +
  • New function norm() to compute a matrix norm. +norm() and also backsolve() and sample() +have implicit S4 generics. +

    +
  • +
  • Files ‘Renviron.site’ and ‘Rprofile.site’ can have +architecture-specific versions on systems with sub-architectures. +

    +
  • +
  • R CMD check now (by default) also checks Rd files +for auto-generated content in need of editing, and missing +argument descriptions. +

    +
  • +
  • aggregate() gains a formula method thanks to a +contribution by Arni Magnusson. The data frame method now allows +summary functions to return arbitrarily many values. +

    +
  • +
  • path.expand() now propagates NA values rather +than converting them to "NA". +

    +
  • +
  • file.show() now disallows NA values for file names, +headers, and pager. +

    +
  • +
  • The ‘fuzz’ used by seq() and seq.int() has +been reduced from 1e-7 to 1e-10, which should be +ample for the double-precision calculations used in R. It +ensures that the fuzz never comes into play with sequences of +integers (wish of PR#14169). +

    +
  • +
  • The default value of RSiteSearch(restrict=) has been +changed to include vignettes but to exclude R-help. The R-help +archives available have been split, with a new option of +"Rhelp10" for those from 2010. +

    +
  • +
  • New function rasterImage() in the graphics +package for drawing raster images. +

    +
  • +
  • stats:::extractAIC.coxph() now omits aliased terms +when computing the degrees of freedom (suggestion of Terry +Therneau). +

    +
  • +
  • cor() and cov() now test for misuse with +non-numeric arguments, such as the non-bug report PR#14207. +

    +
  • +
  • pchisq(ncp =, log.p = TRUE) is more accurate for +probabilities near one. E.g. pchisq(80, 4, ncp=1, + log.p=TRUE). (Maybe what was meant in PR#14216.) +

    +
  • +
  • maintainer() has been added, to give convenient +access to the name of the maintainer of a package (contributed by +David Scott). +

    +
  • +
  • sample() and sample.int() allow zero items to +be sampled from a zero-length input. sample.int() gains a +default value size=n to be more similar to +sample(). +

    +
  • +
  • switch() returned NULL on error (not +previously documented on the help page): it now does so +invisibly, analogously to if-without-else. +

    +

    It is now primitive: this means that argument EXPR is +always matched to the first argument and there is no danger of +partial matching to later named arguments. +

    +
  • +
  • Primitive functions UseMethod(), attr(), +attr<-(), on.exit(), retracemem() and +substitute() now use standard argument matching (rather +than positional matching). This means that all multi-argument +primitives which are not internal now use standard argument +matching except where positional matching is desirable (as for +switch(), call(), .C() ...). +

    +
  • +
  • All the one-argument primitives now check that any name +supplied for their first argument is a partial match to the +argument name as documented on the help page: this also +applies to replacement functions of two arguments. +

    +
  • +
  • base::which() uses a new .Internal function +when arr.ind is FALSE resulting in a 10x speedup. +Thanks to Patrick Aboyoun for implementation suggestions. +

    +
  • +
  • Help conversion to text now uses the first part of +\enc{}{} markup if it is representable in the current +output encoding. On the other hand, conversion to LaTeX with the +default outputEncoding = "ASCII" uses the second part. +

    +
  • +
  • A new class "listOfMethods" has been introduced to +represent the methods in a methods table, to replace the +deprecated class "MethodsList". +

    +
  • +
  • any() and all() return early if possible. +This may speed up operations on long vectors. +

    +
  • +
  • strptime() now accepts "%z" (for the offset +from UTC in the RFC822 format of +/-hhmm). +

    +
  • +
  • The PCRE library has been updated to version 8.02, a bug-fix +release which also updates tables to Unicode 5.02. +

    +
  • +
  • Functions which may use a graphical select.list() +(including menu() and install.packages()) now check +on a Unix-alike that Tk can be started (and not just +capabilities("tcltk") && capabilities("X11")). +

    +
  • +
  • The parser no longer marks strings containing octal or hex +escapes as being in UTF-8 when entered in a UTF-8 locale. +

    +
  • +
  • On platforms with cairo but not Pango (notably Mac OS X) the +initial default X11() type is set to "Xlib": this avoids +several problems with font selection when done by cairo rather +than Pango (at least on Mac OS X). +

    +
  • +
  • New function arrayInd() such that which(x, + arr.ind = TRUE) for an array 'x' is now equivalent to +arrayInd(which(x), dim(x), dimnames(x)). +

    +
+ + + + +

DEPRECATED & DEFUNCT

+ + +
    +
  • Bundles of packages are defunct. +

    +
  • +
  • stats::clearNames() is defunct: use unname(). +

    +
  • +
  • Basic regular expressions are defunct, and +strsplit(), grep(), grepl(), sub(), +gsub(), regexpr() and gregexpr() no longer +have an extended argument. +

    +
  • +
  • methods::trySilent() is defunct. +

    +
  • +
  • index.search() (which was deprecated in 2.10.0) is no +longer exported and has a different argument list. +

    +
  • +
  • Use of multiple arguments to return() is now defunct. +

    +
  • +
  • The use of UseMethod() with more than two arguments +is now defunct. +

    +
  • +
  • In the methods package, the "MethodsList" +metadata objects which had been superseded by hash tables +(environments) since R 2.8.0 are being phased out. Objects of +this class are no longer assigned or used as metadata by the +package. +

    +

    getMethods() is now deprecated, with its internal use replaced +by findMethods() and other changes. Creating objects from the +"MethodsList" class is also deprecated. +

    +
  • +
  • Parsing strings containing both octal/hex and Unicode escapes +now gives a warning and will become an error in R 2.12.0. +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • UTF-8 is now used for the reference manual and package +manuals. This requires LaTeX ‘2005/12/01’ or later. +

    +
  • +
  • configure looks for a POSIX compliant +tr, Solaris's /usr/ucb/tr having been found +to cause Rdiff to malfunction. +

    +
  • +
  • configure is now generated with autoconf + 2.65, which works better on recent systems and on Mac OS X. +

    +
+ + + + +

PACKAGE INSTALLATION

+ + +
    +
  • Characters in R source which are not translatable to the +current locale are now handled more tolerantly: these will be +converted to hex codes with a warning. Such characters are +only really portable if they appear in comments. +

    +
  • +
  • R CMD INSTALL now tests that the installed package +can be loaded (and backs out the installation if it cannot): this +can be suppressed by --no-test-load. This avoids +installing/updating a package that cannot be used: common causes +of failures to load are missing/incompatible external software +and missing/broken dependent packages. +

    +
  • +
  • Package installation on Windows for a package with a +‘src’ directory now checks if a DLL is created unless there +is a ‘src/Makefile.win’ file: this helps catch broken +installations where the toolchain has not reported problems in +building the DLL. (Note: this can be any DLL, not just one named +‘<pkg-name>.dll’.) +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • Using with(), eval() etc with a list with some +unnamed elements now works. +(PR#14035) +

    +
  • +
  • The "quick" dispatch of S4 methods for primitive +functions was not happening, forcing a search each time. +(Dispatch for closures was not affected.) A side effect is that +default values for arguments in a method that do not have +defaults in the generic will now be ignored. +

    +
  • +
  • Trying to dispatch S4 methods for primitives during the search +for inherited methods slows that search down and potentially +could cause an infinite recursion. An internal switch was +added to turn off all such methods from +findInheritedMethods(). +

    +
  • +
  • R framework installation (on Mac OS X) would not work +properly if a rogue Resources directory was present at the +top level. Such a non-symlink will now be renamed to +Resources.old (and anything previously named +Resources.old removed) as part of the framework +installation process. +

    +
  • +
  • The checks for conforming S4 method arguments could fail +when the signature of the generic function omitted some of the +formal arguments (in addition to ...). Arguments omitted +from the method definition but conforming (per the documentation) +should now be ignored (treated as "ANY") in dispatching. +

    +
  • +
  • The computations for S4 method evaluation when ... +was in the signature could fail, treating ... as an +ordinary symbol. This has been fixed, for the known cases. +

    +
  • +
  • Various ar() fitting methods have more protection for +singular fits. +

    +
  • +
  • callNextMethod now works again with the drop= +argument in [ +

    +
  • +
  • parse() and parse_Rd() miscounted columns when +multibyte UTF-8 characters were present. +

    +
  • +
  • Formatting of help pages has had minor improvements: extra +blank lines have been removed from the text format, and empty +package labels removed from HTML. +

    +
  • +
  • cor(A, B) where A is n x 1 +and B a 1-dimensional array segfaulted or gave an internal +error. (The case cor(B, A) was +PR#7116.) +

    +
  • +
  • cut.POSIXt() applied to a start value after the DST +transition on a DST-change day could give the wrong time for +argument breaks in units of days or longer. (PR#14208) +

    +
  • +
  • do_par() UNPROTECTed too early (PR#14214) +

    +
  • +
  • Subassignment x[[....]] <- y didn't check for a +zero-length right hand side, and inserted a rubbish +value. (PR#14217) +

    +
  • +
  • fisher.test() no longer gives a P-value very +slightly > 1, in some borderline cases. +

    +
  • +
  • Internal function matchArgs() no longer modifies the +general purpose bits of the SEXPs that make up the formals +list of R functions. This fixes an invalid error message that +would occur when a garbage collection triggered a second call to +matchArgs for the same function via a finalizer. +

    +
  • +
  • gsub() in 2.10.x could fail from stack overflow for +extremely long strings due to temporary data being allocated on +the stack. Also, gsub() with fixed=TRUE is in some +circumstances considerably faster. +

    +
  • +
  • Several primitives, including attributes(), +attr<-() interactive(), nargs() and +proc.time(), did not check that they were called with the +correct number of arguments. +

    +
  • +
  • A potential race condition in list.files() when other +processes are operating on the directory has been fixed; the code +now dynamically allocates memory for file listings in a single +pass instead of making an initial count pass. +

    +
  • +
  • mean(x, trim=, na.rm = FALSE) failed to return NA if +x contained missing values. (Reported by Bill Dunlap.) +

    +
  • +
  • Extreme tail behavior of, pbeta() {and hence +pf()}, e.g., pbeta(x, 3, 2200, lower.tail=FALSE, + log.p=TRUE) now returns finite values instead of jumping to +-Inf too early. (PR#14230). +

    +
  • +
  • parse(text=x) misbehaved for objects x that +were not coerced internally to character, notably symbols. +(Reported to R-devel by Bill Dunlap.) +

    +
  • +
  • The internal C function coerceSymbol now handles +coercion to character, and warns if coercion fails (rather than +silently returning NULL). This allows a name to be given +where a character vector is required in functions which coerce +internally. +

    +
  • +
  • The interpretation by strptime() of "%c" was +non-standard (not that it is ever advisable to use locale- and +system-specific input formats). +

    +
  • +
  • capabilities("X11") now works the same way on Mac OS X as on +other platforms (and as documented: it was always true for R +built with --with-aqua, as the CRAN builds are). +

    +
  • +
  • The X11() device with cairo but not Pango (notably Mac OS X) +now checks validity of text strings in UTF-8 locales (since +Pango does but cairo it seems does not). +

    +
  • +
  • read.fwf() misread multi-line records when n was specified. +(PR#14241) +

    +
  • +
  • all.equal(tolerance = e) passes the numeric +tolerance also to the comparison of the attributes. +

    +
  • +
  • pgamma(0, 0), a boundary case, now returns 0, its +limit from the left, rather than the limit from the right. +

    +
  • +
  • Issuing POST requests to the internal web server could stall +the request under certain circumstances. +

    +
  • +
  • gzcon( <textConnection> ), an error, no longer +damages the connection (in a way to have it +segfault). (PR#14237) +

    +
  • +
  • All the results from hist() now use the nominal +breaks not those adjusted by the numeric ‘fuzz’: +in recent versions the nominal breaks were reported but +the 'density' referred to the intervals used in the calculation +– which mattered very slightly for one of the extreme bins. +(Based on a report by Martin Becker.) +

    +
  • +
  • If xy[z].coords (used internally by many graphics +functions) are given a list as x, they now check that +the list has suitable names and give a more informative error +message. (PR#13936) +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.10.1 patched

+ + + +

NEW FEATURES

+ + +
    +
  • The handling of line textures in the postscript() and +pdf() devices was set up for round end caps (the only type +which existed at the time): it has now been adjusted for butt +endcaps. +

    +
  • +
  • lchoose(a, k) is now defined as +log(abs(choose(a,k))), analogously to lfactorial(). +

    +
  • +
  • Although \eqn{} in Rd files is defined as a +‘verbatim’ macro, many packages expected \dots and +\ldots to be interpreted there (as was the case in R < +2.10.0), so this is now done (using an ellipsis in HTML +rendering). +

    +
  • +
  • Escaping of braces in quoted strings in R-code sections of +Rd files is allowed again. This had been changed for the new Rd +format in R 2.10.0 but was only documented on the developer site +and was handled inconsistently by the converters: text and +example conversion removed the escapes but HTML conversion did +not. +

    +
  • +
  • The PCRE library has been updated to version 8.01, a bug-fix +release. +

    +
  • +
  • tools::readNEWS() now accepts a digit as the first +character of a news section. +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • Using read.table(header=TRUE) on a header with an +embedded new line would copy part of the header into the data. +(PR#14103) +

    +
  • +
  • qpois(p = 1, lambda = 0) now gives 0 as for all other +p. (PR#14135) +

    +
  • +
  • Functions related to string comparison +(e.g. unique(), match()) could cause crashes when +used with strings not in the native encoding, e.g. UTF-8 strings +on Windows. (PR#14114 and PR#14125) +

    +
  • +
  • x[ , drop=TRUE] dropped an NA level even if it +was in use. +

    +
  • +
  • The dynamic HTML help system reported the wrong MIME type +for the style sheet. +

    +
  • +
  • tools::codoc() (used by R CMD check) was +missing cases where the function had no arguments but was +documented to have some. +

    +
  • +
  • Help links containing special characters (e.g. "?") +were not generated correctly when rendered in +HTML. (PR#14155) +

    +
  • +
  • lchoose(a, k) no longer wrongly gives NaN for +negative a. +

    +
  • +
  • ks.test() could give a p-value that was off by one +observation due to rounding error. (PR#14145) +

    +
  • +
  • readBin()/readChar() when reading millions of +character strings in a single call used excessive amounts of +memory (which also slowed them down). +

    +
  • +
  • R CMD SHLIB could fail if used with paths that +were not alphanumeric, e.g. contained +. (PR#14168) +

    +
  • +
  • sprintf() was not re-entrant, which potentially +caused problems if an as.character() method called it. +

    +
  • +
  • The quartz() device did not restore the clipping +region when filling the background for a new page. This could be +observed in multi-page bitmap output as stale outer regions of +the plot. +

    +
  • +
  • p.adjust(method, n) now works correctly for the +rare case n > length(p), also when method differs from +"bonferroni" or "none", thanks to a patch from +Gordon Smyth. +

    +
  • +
  • tools::showNonASCII() failed to detect non-ASCII characters +if iconv() (incorrectly) converted them to different ASCII +characters. (Seen on Windows only.) +

    +
  • +
  • tcrossprod() wrongly failed in some cases when one of the +arguments was a vector and the other a matrix. +

    +
  • +
  • [cr]bind(..., deparse.level=2) was not always giving +names when documented to do so. (Discovered whilst investigating +PR#14189.) +

    +
  • +
  • match(incomparables=<non-NULL>) could in rare cases +infinite-loop. +

    +
  • +
  • poisson.test() needed to pass argument +conf.level to binom.test(). (PR#14195) +

    +
  • +
  • The "nls" method for df.residual() gave +incorrect results for models fitted with na.action = + na.exclude. (PR#14194) +

    +
  • +
  • A change to options(scipen=) was only implemented +when printing next occurred, even though it should have affected +intervening calls to axis(), contour() and +filledcontour(). +

    +
  • +
  • prettyNum(drop0trailing=TRUE) did not handle signs of +imaginary parts of complex numbers correctly (and this was used +by str(): PR#14201). +

    +
  • +
  • system.time() had the sys.child component +wrong (copied user.child instead) on systems with +HAVE_GETRUSAGE. +(PR#14210) +

    +
  • +
  • Changing both line texture and line cap (end) resulted in the +latter to be omitted form the PDF code. In addition, line cap +(end) and join are now set explicitly in PDF output to ensure +correct defaults. +

    +
  • +
  • The suppression of auto-rotation in bitmap() and +dev2bitmap() with the "pdfwrite" device was not +working correctly. +

    +
  • +
  • plot(ecdf(), log="x") no longer gives an incorrect +warning. +

    +
  • +
  • read.fwf() works again when argument file is +a connection. +

    +
  • +
  • Startup files will now be found if their paths exceed 255 +bytes. (PR#14228) +

    +
  • +
  • contrasts<- (in the stats package) no longer has an +undeclared dependence on methods (introduced in 2.10.0). +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.10.1

+ + + +

NEW FEATURES

+ + +
    +
  • The PCRE library has been updated to version 8.00. +

    +
  • +
  • R CMD INSTALL has new options --no-R, +--no-libs, --no-data, --no-help, +--no-demo, --no-exec, and --no-inst to +suppress installation of the specified part of the package. +These are intended for special purposes (e.g. building a database +of help pages without fully installing all packages). +

    +
  • +
  • The documented line-length limit of 4095 bytes when reading +from the console now also applies also to parse(file="") +(which previously had a limit of around 1024 bytes). +

    +
  • +
  • A Bioconductor mirror can be set for use by +setRepositories() via the option "BioC_mirror", +e.g. the European mirror can be selected by +options(BioC_mirror="http://bioconductor.statistik.tu-dortmund.de"). +

    +
  • +
  • Double-clicking in a tk_select.list() list box now +selects the item and closes the list box (as happens on the +Windows select.list() widget). +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • configure will be able to find a usable +libtiff in some rare circumstances where it did not +previously (where libtiff needed to be linked explicitly against +-ljpeg). +

    +
  • +
  • Making refman.pdf works around a problem with the indexing +with hyperref 6.79d and later. +

    +
+ + + + +

DEPRECATED & DEFUNCT

+ + +
    +
  • The extended argument is deprecated in +strsplit(), grep(), grepl(), sub(), +gsub(), regexpr() and gregexpr() (not just +the value extended = FALSE) and will be removed in R +2.11.0. +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • trigamma(x) and other psigamma(x, n) calls +are now accurate for very large abs(x). (PR#14020) +

    +
  • +
  • [g]sub(perl=FALSE, fixed=FALSE) could use excessive +stack space when used with a very long vector containing some +non-ASCII strings. +

    +
  • +
  • The default method of weighted.mean(na.rm = TRUE) +did not omit weights for NA observations in 2.10.0. +(PR#14032) +

    +
  • +
  • [g]regexpr(pattern, fixed = TRUE) returned match +positions in bytes (not characters) in an MBCS locale if +pattern was a single byte. +

    +

    [g]sub(fixed = TRUE) with a single-byte pattern could +conceivably have matched part of a multibyte character in a +non-UTF-8 MBCS. +

    +
  • +
  • findLineNum() and setBreakpoint() would +sometimes fail if the specified file was not in the current +directory. +

    +
  • +
  • Package tcltk's demo(tkdensity) was broken in +2.9.0 when demo() was changed to set par(ask = TRUE). +

    +
  • +
  • gsub() with backrefs could fail on extremely long strings +(hundreds of thousands of characters) due to integer overflow +in a length calculation. +

    +
  • +
  • abline(untf=TRUE) now uses a better x-grid in +log-scale, e.g., for plot(c(1,300), c(1,300), log="xy"); + abline(4,1, untf=TRUE). +

    +
  • +
  • detach()/unloadNamespace() arrange to flush +the package's lazyload cache of R objects once the +package/namespace is no longer needed. +

    +
  • +
  • There have been small fixes to the rendering of help, +e.g. \command is now rendered verbatim (so e.g. -- +is not interpreted, PR#14045). +

    +

    Also, there are many small changes to help files where the new +converters were not rendering them in the same way as before. +

    +
  • +
  • available.packages() would fail when run on a +repository with no packages meeting the filtering conditions. +(PR#14042) +

    +
  • +
  • rep(x, times, each = 2) gave invalid results when the +times argument was a vector longer than x. +Reported by Bill Dunlap. +

    +
  • +
  • An error when unloadNamespace() attempted to run the +.onUnload() function gave an error in the reporting +function and so was not reported properly. +

    +
  • +
  • Text help rendering did not handle very long input lines +properly. +

    +
  • +
  • promptMethods() generated signature documentation +improperly. +

    +
  • +
  • pgamma(x, a, lower.tail=FALSE) and +qgamma(...) are now considerably more accurate in some +regions for very small a. qgamma() now correctly +returns 0 instead of NaN in similar extreme cases, +and qgamma() no longer warns in the case of small +a, see (PR#12324). +

    +
  • +
  • unname() now also removes names from a zero length vector. +

    +
  • +
  • Printing results from ls.str() no longer evaluates +unevaluated calls. +

    +
  • +
  • complete.cases() failed on a 0-column data frame +argument. (Underlies PR#14066.) +

    +

    It could return nonsensical results if no input determined the +number of cases (seen in the no-segfault tests). +

    +
  • +
  • An error in nls() with a long formula could cause a +segfault. (PR#14059) +

    +
  • +
  • qchisq(p, df, ncp, lower.tail = FALSE) with +ncp >= 80 was inaccurate for small p (as the help page +said): it is now less inaccurate. (In part, +PR#13999.) +

    +

    For ncp less than but close to 80, pchisq() and +qchisq() are more accurate for probabilities very close +to 1 (a series expansion was truncated slightly too early). +

    +

    pchisq(x, df, ncp) can no longer return values just larger +than one for large values of ncp. +

    +
  • +
  • intToUtf8() could fail when asked to produce 10Mb or more +strings, something it was never intended to do: unfortunately +Windows crashed R (other OSes reported a lack of resources). +(PR#14068) +

    +
  • +
  • chisq.test() could fail when given argument +x or y which deparsed to more than one line. +(Reported by Laurent Gauthier.) +

    +
  • +
  • S4 methods are uncached whenever the namespace containing +them is unloaded (by unloadNamespace() as well as by +detach(unload = TRUE)). +

    +
  • +
  • The internal record-keeping by +dyn.load/dyn.unload was incomplete, which could +crash R if a DLL that registered .External routines had +earlier been unloaded. +

    +
  • +
  • bessel[JY](x, nu) with nu a negative integer (a +singular case) is now correct, analogously to besselI(), +see PR#13556. +

    +
  • +
  • tools::file_path_as_absolute() doubled the file +separator when applied to a file such as ‘"/vmunix"’ or (on +Windows) ‘"d:/afile"’ in a directory for which +getwd() would return a path with a trailing separator +(largely cosmetic, as reasonable file systems handle such a path +correctly). (Perhaps what was meant by PR#14078.) +

    +
  • +
  • unsplit(drop = TRUE) applied to a data frame failed +to pass drop to the computation of row names. (PR#14084) +

    +
  • +
  • The "difftime" method of mean() ignored its +na.rm argument. +

    +
  • +
  • tcltk::tk_select.list() is now more likely to remove the +widget immediately after selection is complete. +

    +
  • +
  • Adding/subtracting a "difftime" object to/from a +"POSIXt" or "Date" object works again (it was +broken by the addition of Ops.difftime). +

    +
  • +
  • Conversion to latex of an Rd file with no aliases failed. +

    +
  • +
  • wilcox.test(conf.int=TRUE) has achieved.level +corrected and, for exact=FALSE, now returns a +estimate component which does not depend on the +alternative used. +

    +
  • +
  • help.search() failed when the package argument was +specified. (PR#14113) +

    +
  • +
  • switch(EXPR = "A") now returns NULL, as does +switch(1) (which used to signal an error). +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R VERSION 2.10.0

+ + + +

SIGNIFICANT USER-VISIBLE CHANGES

+ + +
    +
  • Package help is now converted from Rd by the R-based +converters that were first introduced in 2.9.0. This means +

    + +
      +
    • Packages that were installed by R-devel after 2009-08-09 +should not be used with earlier versions of R, and most +aspects of package help (including the runnable examples) +will be missing if they are so used. +

      +
    • +
    • Text, HTML and latex help and examples for packages +installed under the new system are converted on-demand from +stored parsed Rd files. (Conversions stored in packages +installed under R < 2.10.0 are used if no parsed Rd files +are found. It is recommended that such packages be +re-installed.) +

      +
    + +
  • +
  • HTML help is now generated dynamically using an HTTP server +running in the R process and listening on the loopback +interface. +

    + +
      +
    • Those worried about security implications of such +a server can disable it by setting the environment variable +R_DISABLE_HTTPD to a non-empty value. This disables +help.start() and HTML help (so text help is shown +instead). +

      +
    • +
    • The Java/Javascript search engine has been replaced by an +HTML interface to help.search(). help.start() no +longer has an argument searchEngine as it is no longer +needed. +

      +
    • +
    • The HTML help can now locate cross-references of the form +\link[pkg]{foo} and \link[pkg:foo]{bar} +where foo is an alias in the package, rather than the +documented (basename of a) filename (since the documentation +has been much ignored). +

      +
    + +
+ + + + +

NEW FEATURES

+ + +
    +
  • polygon(), pdf() and postscript() now +have an argument fillOddEven (default FALSE), +which controls the mode used for polygon fills of +self-intersecting shapes. +

    +
  • +
  • New debugonce() function; further, +getOption("deparse.max.lines") is now observed when +debugging, from a code suggestion by John Brzustowski. +(PR#13647/8) +

    +
  • +
  • plot() methods for "stepfun" and hence +"ecdf" no longer plot points by default for n >= 1000. +

    +
  • +
  • [g]sub(perl=TRUE) now also supports "\E" +in order to end "\U" and "\L" case changes, +thanks to a patch from Bill Dunlap. +

    +
  • +
  • factor(), levels()<-, etc, now ensure that +the resulting factor levels are unique (as was always the implied +intention). Factors with duplicated levels are still +constructible by low-level means, but are now declared illegal. +

    +
  • +
  • New print() (S3) method for class "function", +also used for auto-printing. Further, .Primitive +functions now print and auto-print identically. The new method +is based on code suggestions by Romain François. +

    +
  • +
  • The print() and toLatex() methods for class +"sessionInfo" now show the locale in a nicer format and +have arguments to suppress locale information. +

    +
  • +
  • In addition to previously only round(), there are +other Math group (S3) methods for "difftime", +such as floor(), signif(), abs(), etc. +

    +
  • +
  • For completeness, old.packages() and +available.packages() allow arguments type to be +specified (you could always specify arguments available +or contriburl). +

    +
  • +
  • available.packages() by default only returns +information on the latest versions of packages whose version +requirements are satisfied by the currently running R. +

    +
  • +
  • tools::write_PACKAGES() has a new argument +latestOnly, which defaults to TRUE when only the +latest versions in the repository will be listed in the index. +

    +
  • +
  • getOption() has a new argument default that +is returned if the specified option is not set. This simplifies +querying a value and checking whether it is NULL or not. +

    +
  • +
  • parse() now warns if the requested encoding is not supported. +

    +
  • +
  • The "table" method of as.data.frame() gains a +stringsAsFactors argument to allow the classifying +factors to be returned as character vectors rather than the +default factor type. +

    +
  • +
  • If model.frame.default() encounters a character +variable where xlev indicates a factor, it now converts +the variable to a factor (with a warning). +

    +
  • +
  • curve() now returns a list containing the points that +w§ere drawn. +

    +
  • +
  • spineplot() now accepts axes = FALSE, for +consistency with other functions called by plot.factor(). +

    +
  • +
  • The Kendall and Spearman methods of cor.test() can +optionally use continuity correction when not computing exact +p-values. (The Kendall case is the wish of PR#13691.) +

    +
  • +
  • R now keeps track of line numbers during execution for code +sourced with options(keep.source = TRUE). The source +reference is displayed by debugging functions such as +traceback(), browser(), recover(), and +dump.frames(), and is stored as an attribute on each +element returned by sys.calls(). +

    +
  • +
  • More functions now have an implicit (S4) generic definition. +

    +
  • +
  • quantile.default() now disallows factors (wish of +PR#13631) and its help +documents what numeric-like properties its input need to have to +work correctly. +

    +
  • +
  • weighted.mean() is now generic and has "Date", +"POSIXct" and "POSIXlt" methods. +

    +
  • +
  • Naming subscripts (e.g. x[i=1, j=2]) in +data.frame methods for [ and [[ now gives a +warning. (Names are ignored in the default method, but could +have odd semantics for other methods, and do for the data.frame +ones.) +

    +
  • +
  • as.data.frame() has an "aovproj" method. +(Wish of PR#13505) +

    +
  • +
  • as.character(x) for numeric x no longer +produces strings such as "0.30", i.e., with trailing +zeros. This change also renders levels construction in +factor() more consistent. +

    +
  • +
  • codocClasses(), which checks consistency of the +documentation of S4 class slots, now does so in considerably more +cases. The documentation of inherited slots (from superclasses) +is now optional. This affects R CMD check <pkg> when +the package defines S4 classes. +

    +
  • +
  • codoc() now also checks S4 methods for code/documentation +mismatches. +

    +
  • +
  • for(), while(), and repeat() loops now +always return NULL as their (invisible) value. This change was +needed to address a reference counting bug without creating +performance penalties for some common use cases. +

    +
  • +
  • The print() method for ls.str() results now +obeys an optional digits argument. +

    +
  • +
  • The method argument of glm() now allows +user-contributed methods. +

    +
  • +
  • More general reorder.default() replaces functionality of +reorder.factor() and reorder.character(). +

    +
  • +
  • The function aspell() has been added to provide an +interface to the Aspell spell-checker. +

    +
  • +
  • Filters RdTextFilter() and SweaveTeXFilter() +have been added to the tools package to provide support for +aspell() or other spell checkers. +

    +
  • +
  • xtabs() with the new argument sparse = TRUE +now returns a sparse Matrix, using package Matrix. +

    +
  • +
  • contr.sum() etc gain an argument sparse +which allows sparse matrices to be returned. +

    +

    contrasts() also gains a sparse argument which it +passes to the actual contrast function if that has a formal +argument sparse. +

    +

    contrasts(f, .) <- val now also works when val +is a sparse Matrix. It is planned that model.matrix() +will work with such factors f in the future. +

    +
  • +
  • readNEWS() will recognize a UTF-8 byte-order mark +(BOM) in the ‘NEWS’ file. However, it is safer to use only +ASCII code there because not all editors recognize BOMs. +

    +
  • +
  • New utility function inheritedSlotNames() for S4 +class programming. +

    +
  • +
  • tabulate() now allows NAs to pass through (and be ignored). +

    +
  • +
  • If debug() is called on an S3 generic function then +all methods are debugged as well. +

    +
  • +
  • Outlier symbols drawn by boxplot() now obey the +outlwd argument. Reported by Jurgen Kluge. +

    +
  • +
  • svd(x) and eigen(x) now behave analogously to +qr(x) in accepting logical matrices x. +

    +
  • +
  • File ‘NEWS’ is now in UTF-8, and has a BOM (often +invisible) on the first line, and Emacs local variables +set for UTF-8 at the end. RShowDoc("NEWS") should display +this correctly, given suitable fonts. +

    +
  • +
  • terms.formula(simplify = TRUE) now does not deparse +the LHS and so preserves non-standard responses such as `a: + b` (requested by Sundar Dorai-Raj). +

    +
  • +
  • New function news() for building and querying R or +package news information. +

    +
  • +
  • z^n for integer n and complex z is more +accurate now if |n| <= 65536. +

    +
  • +
  • factor(NULL) now returns the same as +factor(character(0)) instead of an error, and +table(NULL) consequently does analogously. +

    +
  • +
  • as.data.frame.vector() (and its copies) is slightly faster +by avoiding a copy if there are no names (following a +suggestion of Tim Hesterberg). +

    +
  • +
  • writeLines(), writeBin() and +writeChar() have a new argument useBytes. If +false, character strings with marked encodings are translated to +the current locale (as before) but if true they are written +byte-by-byte. +

    +
  • +
  • iconv() has a new argument mark which can be +used (by experts) to suppress the declaration of encodings. +

    +
  • +
  • DESCRIPTION’ file's LinkingTo specs are now +recognized as installation dependencies, and included in package +management computations. +

    +
  • +
  • Standardized ‘DESCRIPTION’ file License specs +are now available for package management computations. +

    +
  • +
  • "\uxxxx" and "\Uxxxxxxxx" escapes can now be +parsed to a UTF-8 encoded string even in non-UTF-8 locales (this +has been implemented on Windows since R 2.7.0). The semantics +have been changed slightly: a string containing such escapes is +always stored in UTF-8 (and hence is suitable for portably +including Unicode text in packages). +

    +
  • +
  • New as.raw() method for "tclObj" objects (wish +of PR#13758). +

    +
  • +
  • Rd.sty now makes a better job of setting email addresses, +including using a monospaced font. +

    +
  • +
  • textConnection() gains an encoding argument +to determine how input strings with marked encodings will be +handled. +

    +
  • +
  • R CMD Rd2pdf is available as a shortcut for +R CMD Rd2dvi --pdf. +

    +
  • +
  • R CMD check now checks links where a package is +specified (\link[pkg]{file} or +\link[pkg:file]{topic}), if the package is available. +It notes if the package is not available, as in many cases this +is an error in the link. +

    +
  • +
  • identical() gains three logical arguments, which +allow for even more differentiation, notably -0 and +0. +

    +
  • +
  • legend() now can specify the border color of +filled boxes, thanks to a patch from Frederic Schutz. +

    +
  • +
  • Indexing with a vector index to [[ ]] has now been +extended to all recursive types. +

    +
  • +
  • Pairlists may now be assigned as elements of lists. (Lists +could always be created with pairlist elements, but [[<- +didn't support assigning them.) +

    +
  • +
  • The parser now supports C-preprocessor-like #line +directives, so error messages and source references may refer to +the original file rather than an intermediate one. +

    +
  • +
  • New functions findLineNum() and +setBreakpoint() work with the source references to find +the location of source lines and set breakpoints (using +trace()) at those lines. +

    +
  • +
  • Namespace importing is more careful about warning on masked +generics, thanks to a patch by Yohan Chalabi. +

    +
  • +
  • detach() now has an argument character.only +with the same meaning as for library() or +require(). +

    +
  • +
  • available.packages() gains a filters +argument for specifying the filtering operations performed on the +packages found in the repositories. A new built-in +"license/FOSS" filter only retains packages for which +installation can proceed solely based on packages which can be +verified as Free or Open Source Software (FOSS) employing the +available license specifications. +

    +
  • +
  • In registering an S3 class by a call to +setOldClass(), the data part (e.g., the object type) +required for the class can be included as one of the superclasses +in the Classes argument. +

    +
  • +
  • The argument f to showMethods() can be an +expression evaluating to a generic function, allowing methods to +be shown for non-exported generics and other nonstandard cases. +

    +
  • +
  • sprintf() now supports %o for octal +conversions. +

    +
  • +
  • New function Sys.readlink() for information about symbolic +links, including if a file is a symbolic link. +

    +
  • +
  • Package tools has new functions +checkRdaFiles() and resaveRdaFiles() to report on +the format of ‘.rda’/‘.RData’ data files, and to +re-save them in a different compressed format, including choosing +the most compact format available. +

    +

    A new INSTALL option, --resave-data, makes use +of this. +

    +
  • +
  • File ‘~/.R/config’ is used in preference to +‘~/.Rconfig’, and these are now documented in ‘R +Installation and Administration’. +

    +
  • +
  • Logic operations with complex numbers now work, as they were always +documented to, and as in S. +

    +
  • +
  • arrows() and segments() allow one of x1 +or y1 to be omitted to simplify the specification of +vertical or horizontal lines (suggestion of Tim Hesterberg). +

    +
  • +
  • approxfun() is faster by avoiding repeated NA +checks (diagnosis and patch by Karline Soetaert & Thomas +Petzoldt). +

    +
  • +
  • There are the beginnings of a Nynorsk translation by Karl Ove +Hufthammer. +

    +
  • +
  • stripchart() allows par bg to be +passed in for the background colour for pch = 21 (wish of +PR#13984). +

    +
  • +
  • New generic function .DollarNames() to enable class authors +to customize completion after the $ extractor. +

    +
  • +
  • load(), save(), dput() and +dump() now open a not-yet-open connection in the +appropriate mode (as other functions using connections directly +already did). +

    +
+ + + + +

REGULAR EXPRESSIONS

+ + +
    +
  • A different regular expression engine is used for basic and +extended regexps and is also for approximate matching. This is +based on the TRE library of Ville Laurikari, a modified copy of +which is included in the R sources. +

    +

    This is often faster, especially in a MBCS locale. +

    +

    Some known differences are that it is less tolerant of invalid +inputs in MBCS locales, and in its interpretation of undefined +(extended) regexps such as "^*". Also, the interpretation of +ranges such as [W-z] in caseless matching is no longer to map +the range to lower case. +

    +

    This engine may in future be used in ‘literal’ mode for +fixed = TRUE, and there is a compile-time option in +src/main/grep.c to do so. +

    +
  • +
  • The use of repeated boundary regexps in gsub() and +gregexpr() as warned about in the help page does not work +in this engine (it did in the previous one since 2005). +

    +
  • +
  • Extended (and basic) regexps now support same set of options +as for fixed = TRUE and perl = TRUE, including +useBytes and support for UTF-8-encoded strings in +non-UTF-8 locales. +

    +
  • +
  • agrep() now has full support for MBCS locales with a modest +speed penalty. This enables help.search() to use approximate +matching character-wise rather than byte-wise. +

    +
  • +
  • [g]sub use a single-pass algorithm instead of +matching twice and so is usually faster. +

    +
  • +
  • The perl = TRUE versions now work correctly in a +non-UTF-8 MBCS locale, by translating the inputs to UTF-8. +

    +
  • +
  • useBytes = TRUE now inhibits the translation of inputs with +marked encodings. +

    +
  • +
  • strsplit() gains a useBytes argument. +

    +
  • +
  • The algorithm used by strsplit() has been reordered +to batch by elements of split: this can be much faster for +fixed = FALSE (as multiple compilation of regexps is avoided). +

    +
  • +
  • The help pages, including ?regexp, have been updated +and should be consulted for details of the new implementations. +

    +
+ + + + +

HELP & Rd FILE CHANGES

+ + +
    +
  • A new dynamic HTML help system is used by default, and may be +controlled using tools::startDynamicHelp(). With this enabled, +HTML help pages will be generated on request, resolving links +by searching through the current .libPaths(). The user +may set options("help.ports") to control which IP port is used +by the server. +

    +
  • +
  • help.start() no longer sets options(htmlhelp = + TRUE) (it used to on Unix but not on Windows). Nor does it on +Unix reset the "browser" option if given an argument of +that name. +

    +

    Arguments update and remote are now available +on all platforms: the default is update = FALSE since the +http server will update the package index at first use. +

    +
  • +
  • help() has a new argument help_type (with +default set by the option of that name) to supersede arguments +offline, htmlhelp and chmhelp +(although for now they still work if help_type is +unset). There is a new type, "PDF" to allow offline PDF +(rather than PostScript). +

    +

    A function offline_help_helper() will be used if this exists +in the workspace or further down the search path, otherwise +the function of that name in the utils namespace is used. +

    +
  • +
  • Plain text help is now used as the fallback for HTML help (as +it always was for Compiled HTML help on Windows). +

    +
  • +
  • It is possible to ask for static HTML pages to be prebuilt +via the configure option --enable-prebuilt-html. This +may be useful for those who wish to make HTML help available +outside R, e.g. on a local web site. +

    +
  • +
  • An experimental tag \Sexpr has been added to Rd +files, to evaluate expressions at build, install, or render time. +Currently install time and render time evaluation are supported. +

    +
  • +
  • Tags \if, \ifelse and \out have been +added to allow format-specific (or more general, using +\Sexpr) conditional text in man pages. +

    +
  • +
  • The parse_Rd() parser has been made more tolerant of coding +errors in Rd files: now all syntax errors are reported as +warnings, and an attempt is made to continue parsing. +

    +
  • +
  • parse_Rd() now has an argument fragment +(default FALSE) to accept small fragments of Rd files (so +that \Sexpr can output Rd code which is then parsed). +

    +
  • +
  • parse_Rd() now always converts its input to UTF-8. +The Rd2* rendering functions have a new argument, +outputEncoding, which controls how their output is +encoded. +

    +
  • +
  • parse_Rd() no longer includes the newline as part of +a "%"-style comment. +

    +
  • +
  • There have been various bug fixes and code reorganization in +the Rd renderers Rd2HTML, Rd2latex, Rd2txt, +and Rd2ex. +

    +

    All example files are now created with either ASCII or UTF-8 +encoding, and the encoding is only marked in the file if there +is any non-UTF-8 code (previously it was marked if the help +file had non-ASCII contents, possibly in other sections). +

    +
  • +
  • print.Rd() now adds necessary escape characters so that +printing and re-parsing an Rd object should produce an +equivalent object. +

    +
  • +
  • parse_Rd() was incorrectly handling multiple backslashes in +R code strings, converting 4n+3 backslashes to 2n+1 instead +of 2n+2. +

    +
  • +
  • parse_Rd() now recognizes the \var tag within +a quoted string in R-like text. +

    +
  • +
  • parse_Rd() now treats the argument of +\command as LaTeX-like, rather than verbatim. +

    +
+ + + + +

COMPRESSION

+ + +
    +
  • New function untar() to list or unpack tar archives, +possibly compressed. This uses either an external tar +command or an internal implementation. +

    +
  • +
  • New function tar() to create (possibly compressed) +tar archives. +

    +
  • +
  • New functions memCompress() and +memDecompress() for in-memory compression and +decompression. +

    +
  • +
  • bzfile() has a compress argument to select +the amount of effort put into compression when writing. +

    +
  • +
  • New function xzfile() for use with +xz-compressed files. (This can also read files +compressed by some versions of lzma.) +

    +
  • +
  • gzfile() looks at the file header and so can now also +read bzip2-ed files and xz-compressed files. +

    +
  • +
  • There are the new options of save(compress = "bzip2") +and "xz" to use bzip2 or xz +compression (which will be slower, but can give substantially +smaller files). Argument compression_level gives finer +control over the space/time tradeoffs. +

    +

    load() can read such saves (but only as from this version of R). +

    +
  • +
  • R CMD INSTALL/check and +tools::writePACKAGES accept a wider range of compressed +tar archives. Precisely how wide depends on the capabilities of +the host system's tar command: they almost always +include .tar.bz2 archives, and with modern versions of +tar other forms of compression such as lzma +and xz, and arbitrary extensions. +

    +
  • +
  • R CMD INSTALL has a new option +--data-compress to control the compression used when +lazy-loading data. New possibilities are +--data-compress=bzip2 which will give ca 15% better +compression at the expense of slower installation times, and +--data-compress=xz, often giving even better compression +on large datasets at the expense of much longer installation +times. (The latter is used for the recommended packages: it is +particularly effective for survival.) +

    +
  • +
  • file() for open = "", "r" or +"rt" will automagically detect compressed files (from +gzip, bzip2 or xz). This means +that compressed files can be specified by file name (rather than +via a gzfile() connection) to read.table(), +readlines(), scan() and so on. +

    +
  • +
  • data() can handle compressed text files with extensions +‘.{txt,tab,csv}.{gz,bz2,xz}’ . +

    +
+ + + + +

DEPRECATED & DEFUNCT

+ + +
    +
  • png(type="cairo1") is defunct: the value is no longer +recognized. +

    +
  • +
  • tools::Rd_parse() is defunct (as this version of R +uses only Rd version 2). +

    +
  • +
  • Use of file ‘~/.Rconf’ (which was deprecated in favour +of ‘~/.Rconfig’ in 2004) has finally been removed. +

    +
  • +
  • Bundles of packages are deprecated. See ‘Writing R +Extensions’ for the steps needed to unbundle a bundle. +

    +
  • +
  • help() arguments offline, htmlhelp and +chmhelp are deprecated in favour of help_type. +

    +
  • +
  • clearNames() (in package stats) is deprecated +for unname(). +

    +
  • +
  • Basic regular expressions (extended = FALSE) are +deprecated in strsplit, grep and friends. There is +a precise POSIX standard for them, but it is not what recent RE +engines implement, and it seems that in almost all cases package +authors intended fixed = TRUE when using extended = + FALSE. +

    +
  • +
  • methods::trySilent() is deprecated in favour of +try(silent=TRUE) or – more efficiently and flexibly – +something like tryCatch(error = function(e) e). +

    +
  • +
  • index.search() is deprecated: there are no longer +directories of types other than help. +

    +
+ + + + +

INSTALLATION

+ + +
    +
  • cairo >= 1.2 is now required (1.2.0 was released in July 2006) +for cairo-based graphics devices (which remain optional). +

    +
  • +
  • A suitable iconv() is now required: support for +configure option --without-iconv has been withdrawn (it +was deprecated in R 2.5.0). +

    +
  • +
  • Perl is no longer ‘essential’. R can be built +without it, but scripts R CMD build, check, +Rprof and Sd2d currently require it. +

    +
  • +
  • A system glob function is now essential (a working +Sys.glob() has been assumed since R 2.9.0 at least). +

    +
  • +
  • C99 support for MBCS is now required, and configure option +--disable-mbcs has been withdrawn. +

    +
  • +
  • Having a version of tar capable of automagically +detecting compressed archives is useful for +utils::untar(), and so gtar (a common name for +GNU tar) is preferred to tar: set environment +variable TAR to specify a particular tar command. +

    +
+ + + + +

INTERNATIONALIZATION

+ + +
    +
  • There is some makefile support for adding/updating translations +in packages: see po/README and ‘Writing R Extensions’. +

    +

    There is support for the use of dngettext for C-level +translations in packages: see ‘Writing R Extensions’. +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • Assigning an extra 0-length column to a data frame by +DF[, "foo"] <- value now works in most cases (by filling +with NAs) or fails. (It used to give a corrupt data +frame.) +

    +
  • +
  • validObject() avoids an error during evaluation in the case +of various incorrect slot definitions. +

    +
  • +
  • n:m now returns a result of type "integer" in +a few more boundary cases. +

    +
  • +
  • The zap.ind argument to printCoefmat() did +not usually work as other code attempted to ensure that non-zero +values had a non-zero representation. +

    +
  • +
  • printCoefmat() formatted groups of columns together, +not just the cs.ind group but also the zap.ind +group and a residual group. It now formats all columns except +the cs.ind group separately (and zaps the zap.ind +group column-by-column). The main effect will be see in the +output from print.anova(), as this grouped SS-like columns +in the zap.ind group. +

    +
  • +
  • R_ReplDLLinit() initializes the top-level jump so +that some embedded applications on Windows no longer crash on +error. +

    +
  • +
  • identical() failed to take the encoding of character +strings into account, so identical byte patterns are not +necessarily identical strings, and similarly Latin-1 and UTF-8 +versions of the same string differ in byte pattern. +

    +
  • +
  • methods(f) used to warn unnecessarily for an S4 +generic f which had been created based on an existing S3 +generic. +

    +
  • +
  • The check for consistent ordering of superclasses was not +ignoring all conditional relations (the symptom was usually +spurious warnings for classes extending "array"). +

    +
  • +
  • Trying to assign into a raw vector with an index vector +containing NAs could cause a segfault. Reported by Hervé +Pagès. +

    +
  • +
  • Rscript could segfault if (by user error) its +filename argument was missing. Reported by Martin Morgan. +

    +
  • +
  • getAnywhere() (and functions that use it, including argument +completion in the console) did not handle special built-in +functions. Reported by Romain Francois. +

    +
  • +
  • order() was missing a PROTECT() call and so +could segfault when called on character data under certain (rare) +circumstances involving marked non-native encodings. +

    +
  • +
  • prettyNum(z, drop0trailing=TRUE) did not work +correctly when z was a complex vector. Consequently, +str(z, ...) also did not. (PR#13985) +

    +
  • +
  • make distclean removed too many files in +etc/ if builddir = srcdir. +

    +
  • +
  • R CMD replaced TEXINPUTS rather than +appending to it (as documented and intended). +

    +
  • +
  • help.start() no longer fails on unix when +"browser" is a function. +

    +
  • +
  • pbeta(x, ..., log.p = TRUE) is sometimes more accurate, +e.g., for very small x. +

    +
  • +
  • Unserializing a pre-2.8 workspace containing pure ASCII +character objects with a Latin-1 or UTF-8 encoding would corrupt +the CHARSXP cache. +

    +
+ + + + +

OLDER NEWS

+ +

News for R 2.9.2 patched and earlier can be found in top-level files +such as ‘NEWS.2’. +

+ + + diff -Nru r-base-3.0.1/doc/html/NEWS.html r-base-3.1.1/doc/html/NEWS.html --- r-base-3.0.1/doc/html/NEWS.html 2013-05-16 07:05:47.000000000 +0000 +++ r-base-3.1.1/doc/html/NEWS.html 2014-07-10 07:05:12.000000000 +0000 @@ -6,9 +6,9 @@
NEWSR Documentation
-

R News

+

R News

-

../../html/logo.jpg CHANGES IN R 3.0.1

+

../../html/logo.jpg CHANGES IN R 3.1.1

@@ -16,88 +16,132 @@
    -
  • chooseCRANmirror() and chooseBioCmirror() gain -an ind argument (like setRepositories()). +

  • When attach() reports conflicts, it does so +compatibly with library() by using message().

  • -
  • mcparallel has a new argument mc.interactive -which can modify the interactive flag in the child process. The -new default is FALSE which makes child processes -non-interactive by default (this prevents lock-ups due to children -waiting for interactive input). +

  • R CMD Sweave no longer cleans any files by +default, compatibly with versions of R prior to 3.1.0. There are +new options --clean, --clean=default and +--clean=keepOuts.

  • -
  • scan() now warns when end-of-file occurs within -a quoted string. +

  • tools::buildVignette() and tools::buildVignettes() +with clean = FALSE no longer remove any created files. +buildvignette() gains a keep argument for more +cleaning customization.

  • -
  • count.fields() is now consistent with scan() -in its handling of newlines in quoted strings. Instead of -triggering an error, this results in the current line receiving -NA as the field count, with the next line getting the total -count of the two lines. +

  • The Bioconductor ‘version’ used by +setRepositories() can now be set by environment variable +R_BIOC_VERSION at runtime, not just when R is installed. +(It has been stated that Bioconductor will switch from +‘version’ 2.14 to ‘version’ 3.0 during the lifetime +of the R 3.1 series.)

  • -
  • The default method of image() will plot axes of the -class of xlim and ylim (and hence of x and -y if there is a suitable range() method). Based on -a suggestion of Michael Sumner. +

  • Error messages from bugs in embedded Sexpr code +in Sweave documents now report the source location.

  • -
  • load() now has a verbose argument for -debugging support, to print the names of objects just before -loading them. +

  • type.convert(), read.table() and similar +read.*() functions get a new numerals argument, +specifying how numeric input is converted when its conversion to +double precision loses accuracy. The default value, +"allow.loss" allows accuracy loss, as in R versions before +3.1.0.

  • -
  • When loading a serialized object encounters a reference to a -namespace which cannot be loaded, this is replaced by a reference -to the global environment, with a warning. +

  • For some compilers, integer addition could overflow without +a warning. R's internal code for both integer addition and +subtraction is more robust now. (PR#15774)

  • -
  • pairs() gains a line.main option for title placement. +

  • The function determining the default number of knots for +smooth.spline() is now exported, as .nknots.smspl().

  • -
  • The remaining instances in which serialization to a raw -vector was limited to 2GB have been unlimited on a 64-bit -platform, and in most cases serialization to a vector of more than -1GB will be substantially faster. +

  • dbeta(, a,b), pbeta(), qbeta() and +rbeta() are now defined also for a = 0, b = 0, +or infinite a and b (where they typically returned +NaN before).

    -
- - - - -

UTILITIES

- - -
    -
  • R CMD config now make use of personal -‘Makevars’ files under ‘~/.R’ and a site file -‘Makevars.site’, in the same way as R CMD SHLIB and -R CMD INSTALL. This makes the utility more useful in -package configure scripts. +

  • +
  • Many package authors report that the RStudio graphics device +does not work correctly with their package's use of +dev.new(). The new option dev.new(noRStudioGD = + TRUE) replaces the RStudio override by the default device as +selected by R itself, still respecting environment variables +R_INTERACTIVE_DEVICE and R_DEFAULT_DEVICE.

    -

    On Windows finding the personal files may require the environment -variable HOME set. +

  • +
  • readRDS() now returns visibly.

    -

    The old behaviour can be obtained with the new options ---no-user-files and --no-site-files. +

  • +
  • Modifying internal logical scalar constants now results in +an error instead of a warning. +

    +
  • +
  • install.packages(repos = NULL) now accepts +http:// or ftp:// URLs of package archives as well +as file paths, and will download as required. In most cases +repos = NULL can be deduced from the extension of the URL. +

    +
  • +
  • The warning when using partial matching with the $ +operator on data frames is now only given when +options("warnPartialMatchDollar") is TRUE. +

    +
  • +
  • Package help requests like package?foo now +try the package foo whether loaded or not. +

    +
  • +
  • General help requests now default to trying all loaded +packages, not just those on the search path. +

    +
  • +
  • Added a new function promptImport(), to generate a +help page for a function that was imported from another package +(and presumably re-exported, or help would not be needed).

-

PACKAGE INSTALLATION

+

INSTALLATION and INCLUDED SOFTWARE

    -
  • Alternatives to the site and user customization files -‘Makevars.site’ and ‘~/.R/Makevars’ can be specified -via the environment variables R_MAKEVARS_SITE and -R_MAKEVARS_USER respectively. These can be used to suppress -the use of the default files by setting an empty value (where -possible) or a non-existent path. +

  • configure option --with-internal-tzcode +can now be used with variable rsharedir. +

    +
  • +
  • The included version of PCRE has been updated to 8.35. +

    +
  • +
  • There is a new target make uninstall-libR to +remove an installed shared/static ‘libR’. +

    +

    make install-libR now works if a sub-architecture is +used, although the user will need to specify libdir +differently for different sub-architectures. +

    +
  • +
  • There is more extensive advice on which LaTeX packages are +required to install R or to make package manuals (as done by +R CMD check) in the ‘Writing R Extensions’ +manual. +

    +
  • +
  • Compilers/linkers were handling the visibility controls in +‘src/extra/xz’ inconsistently (and apparently in some cases +incorrectly), so it has been simplified. (PR#15327) +

    +
  • +
  • (Windows) There is updated support for the use of ICU for +collation: see the ‘R Installation and Administration Manual’.

@@ -108,7514 +152,1079 @@
    -
  • sys.source() did not report error locations when -keep.source = TRUE. +

  • dbinom(x, n), pbinom(), dpois(), etc, +are slightly less restrictive in checking if n is +integer-valued. (Wish of PR#15734.)

  • -
  • as.POSIXct.numeric was coercing origin using -the tz argument and not "GMT" as documented -(PR#14973). +

  • pchisq(x, df, ncp, log.p = TRUE) is more accurate and +no longer underflows for small x and ncp < 80, e.g, +for pchisq(1e-5, df = 100, ncp = 1, log = TRUE). +(Based on PR#15635 and a suggestion by Roby Joehanes.)

  • -
  • The active binding to assign fields in reference classes -has been cleaned up to reduce dependence on the class' package -environment, also fixing bug in initializing read-only fields -(inspired by a report from Hadley Wickham). +

  • The s (“step into”) command in the debugger +would cause R to step into expressions evaluated there, +not just into functions being debugged. (PR#15770)

  • -
  • str(d) no longer gives an error when names(d) -contain illegal multibyte strings (PR#15247). +

  • The C code used by strptime() rejected time-zone +offsets of more than +1200 (+1245, +1300 and ++1400 can occur). (PR#15768)

  • -
  • Profiling of built-in functions with line.profiling= - TRUE did not record the line from which they were called. +

  • (Windows only.) +png(type = "cairo", antialias = "gray") +was not accepted. (PR#15760)

  • -
  • citation(pkg) dropped the header and footer specified -in the ‘CITATION’ file (PR#15257). +

  • Use of save(..., envir=) with named objects could +fail. (PR#15758)

  • -
  • Quotes were handled differently when reading the first line -and reading the rest, so read.table() misread some files -that contained quote characters (PR#15245). +

  • Sweave() mis-parsed Sexpr expressions that +contained backslashes. (PR#15779)

  • -
  • cat() with sep a character vector of length -greater than one and more than one argument was using separators -inconsistently (PR#15261). +

  • The return value from options(foo = NULL) was not +the previous value of the option. (PR#15781)

  • -
  • On Windows in R 3.0.0, savePlot() failed because of -an incorrect check on the argument count. +

  • enc2utf8() and enc2native() did not always +mark the encoding of the return values when it was known.

  • -
  • unzip(list = TRUE) returned Names as a factor -and not a character vector (as documented) for the internal method. -(Noticed by Sean O'Riordain.) +

  • dnbinom(x, size = <large>, mu, log = TRUE) no longer +underflows to -Inf for large mu, thanks to a suggestion +from Alessandro Mammana (MPI MolGen, Berlin).

  • -
  • contourLines() now checks more comprehensively for -conformance of its x, y and z arguments (it -was used incorrectly in package R2G2). +

  • pbeta(x, a, b, log = TRUE) no longer behaves +discontinuously (in a small x-region) because of denormalized +numbers. Also, pbeta(1-1e-12, 1e30, 1.001, log=TRUE) now +terminates “in real time”.

  • -
  • Saved graphics display lists are R version-specific. -Attempting to load workspaces containing them (or some other -version-specific objects) aborted the load in R 3.0.0 and -earlier; now it does a partial load and generates a warning -instead. +

  • The "CRAN" filter (see available.packages()) +no longer removes duplicates other than of packages on CRAN, and +does not fail if there is no CRAN repository in +getOption("repos").

  • -
  • In R 3.0.0, identify() and locator() did -not record information correctly, so replaying a graph (e.g. by -copying it to another device) would fail. (PR#15271) +

  • The device listing from dev2bitmap() and +bitmap() was truncated to 1000 characters: modern versions +of GhostScript on most platforms have many more devices.

  • -
  • Calling file.copy() or dirname() with the -invalid input "" (which was being used in packages, despite -not being a file path) could have caused a segfault. +

  • (Windows.) Commands such as Sys.which() and +pipe() which needed to find the full path to a command +could segfault if the ‘long’ path name was much longer than +the ‘short’ path name (which Sys.which() returns), +as the behaviour of the Windows API call had changed.

    -

    dirname("") is now "" rather than "." (unless -it segfaulted). +

  • +
  • R CMD build will fail with an error if one of the +packages specified in the VignetteBuilder field is not +installed. (Without loading those packages it cannot be +ascertained which files are intended to be vignettes. This means +that the VignetteBuilder packages have to be installed for +package checking too.) +(Wish of PR#15775.)

  • -
  • supsmu() could read/write outside its input vectors -for very short inputs (seen in package rms for n = 4). +

  • Misguided attempts to use chull() with non-finite +points now give an error (related to PR#15777).

  • -
  • as.dendrogram()'s hclust method uses less -memory and hence gets considerably faster for large (n ~ 1000) -clusterings, thanks to Daniel Müllner. (PR#15174) +

  • For a formula with exactly 32 variables the 32nd variable +was aliased to the intercept in some C-level computations of +terms, so that for example attempting to remove it would remove +the intercept instead (and leave a corrupt internal structure). +(PR#15735)

  • -
  • The return value when all workers failed from -parallel::mclapply(mc.presechedule = TRUE) was a list of -strings and not of error objects. (Spotted by Karl Forner and -Bernd Bischl.) +

  • anyDuplicated() silently returned wrong values when +the first duplicate was at an index which was too large to be +stored in an integer vector (although a lot of RAM and patience +would have been needed to encounter this).

  • -
  • In R 3.0.0, when help() found multiple pages with -the same alias, the HTML display of all the selections was not -produced. (PR#15282) +

  • tools::Rd2ex(commentDontrun = FALSE) failed if the +block had only one line.

  • -
  • splinefun(method="monoH.FC") now produces a -function with first argument named x and allows -deriv=3, as documented. (PR#15273) +

  • Hexadecimal constants such as 0x110p-5L which were +incorrectly qualified by L were parsed incorrectly since R +3.0.0, with a slightly garbled warning. (PR#15753)

  • -
  • summaryRprof() would only read the first -chunksize lines of an Rprof file produced with -line.profiling=TRUE. By default, this is the first 100 -seconds. (PR#15288) +

  • system() returned success on some platforms even if +the system was unable to launch a process. (PR#15796)

  • -
  • lsfit() produced an incorrect error message when -argument x had more columns than rows or x had a -different number of rows than y. (Spotted by Renaud Gaujoux.) +

  • (Windows Rgui console.) Unbuffered output was +sometimes not output immediately if the prompt was not on the last +line of the console.

  • -
  • Binary operations on equal length vectors copied the -class name from the second operand when the first had no -class name, but did not set the object bit. (PR#15299) +

  • The built-in help server did not declare the encoding for +the ‘DESCRIPTION’ or other text files to be the package +encoding, so non-ASCII characters could be displayed incorrectly.

  • -
  • The trace() method for reference generator objects -failed after those objects became function definitions. +

  • R is now trying harder to not cleanup child processes +that were not spawned by mcparallel() on platforms that +provide information about the source process of the SIGCHLD +signal. This allows 3rd party libraries to manage the exit status +of children that they spawn without R interfering.

  • -
  • write.table() did not check that factors were -constructed correctly, and so caused a segment fault when -writing bad ones. (PR#15300) +

  • mcmapply() was only parallelizing if the number of +jobs was bigger than the number of cores. It now parallelizes if +the number of jobs is more than one.

  • -
  • The internal HTTP server no longer chokes on POST requests -without body. It will also pass-through other request types for -custom handlers (with the method stored in Request-Method header) -instead of failing. +

  • Auto-printing would re-evaluate its argument when trying to +dispatch to a print method. This is now avoided when possible. +

    +
  • +
  • Unserializing (including load() and readRDS()) +could silently return incorrect numeric values from ASCII saves if +there was a read error. +

    +
  • +
  • getParseData() could return incorrect values for +the parents of some elements. (Reported by Andrew Redd.) +

    +
  • +
  • Attempting to use data frames of 2^31 or more rows with +merge() or to create a merged data frame of that size now +gives a clearer error message. +

    +
  • +
  • parse() did not check its file argument was a +connection if it was not a character string, so +e.g. parse(FALSE) attempted to read from stdin. +

    +

    Nor did dump() and dput(). +

    +
  • +
  • The "help.try.all.packages" option was ignored when +the shortcut syntax for help was used, e.g. ?foo. +

    +
  • +
  • A potential segfault in string allocation has been fixed. +(Found by Radford Neal.) +

    +
  • +
  • Potential memory protection errors in sort() and +D() have been fixed. (Found by Radford Neal.) +

    +
  • +
  • Fixed a lack of error checking in graphics event functions. +(Found by Radford Neal; a different patch used here than the +one in pqR.) +

    +
  • +
  • numericDeriv() sometimes miscalculated the gradient. +(PR#15849, reported originally by Radford Neal)

-

../../html/logo.jpg CHANGES IN R 3.0.0

+

../../html/logo.jpg CHANGES IN R 3.1.0

-

SIGNIFICANT USER-VISIBLE CHANGES

+

NEW FEATURES

    -
  • Packages need to be (re-)installed under this version -(3.0.0) of R. +

  • type.convert() (and hence by default +read.table()) returns a character vector or factor when +representing a numeric input as a double would lose accuracy. +Similarly for complex inputs. +

    +

    If a file contains numeric data with unrepresentable numbers of +decimal places that are intended to be read as numeric, specify +colClasses in read.table() to be "numeric".

  • -
  • There is a subtle change in behaviour for numeric index -values 2^31 and larger. These never used to be -legitimate and so were treated as NA, sometimes with a -warning. They are now legal for long vectors so there is no -longer a warning, and x[2^31] <- y will now extend the -vector on a 64-bit platform and give an error on a 32-bit one. +

  • tools::Rdiff(useDiff = FALSE) is closer to the POSIX +definition of diff -b (as distinct from the description +in the man pages of most systems).

  • -
  • It is now possible for 64-bit builds to allocate amounts of -memory limited only by the OS. It may be wise to use OS -facilities (e.g. ulimit in a bash shell, -limit in csh), to set limits on overall memory -consumption of an R process, particularly in a multi-user -environment. A number of packages need a limit of at least 4GB of -virtual memory to load. +

  • New function anyNA(), a version of +any(is.na(.)) which is fast for atomic vectors, based on a +proposal by Tim Hesterberg. (Wish of PR#15239.)

    -

    64-bit Windows builds of R are by default limited in memory usage -to the amount of RAM installed: this limit can be changed by -command-line option --max-mem-size or setting environment -variable R_MAX_MEM_SIZE. +

  • +
  • arrayInd(*, useNames = TRUE) and, analogously, +which(*, arr.ind = TRUE) now make use of +names(.dimnames) when available.

  • -
  • Negative numbers for colours are consistently an error: -previously they were sometimes taken as transparent, sometimes -mapped into the current palette and sometimes an error. +

  • is.unsorted() now also works for raw vectors. +

    +
  • +
  • The "table" method for as.data.frame() (also +useful as as.data.frame.table()) now passes sep and +base arguments to provideDimnames(). +

    +
  • +
  • uniroot() gets new optional arguments, notably +extendInt, allowing to auto-extend the search interval when +needed. The return value has an extra component, init.it.

    -
- - -

NEW FEATURES

-
    -
  • identical() has a new argument, -ignore.environment, used when comparing functions (with -default FALSE as before). +

  • +
  • switch(f, ...) now warns when f is a factor, +as this typically happens accidentally where the useR meant to +pass a character string, but f is treated as integer (as +always documented).

  • -
  • There is a new option, options(CBoundsCheck=), which -controls how .C() and .Fortran() pass arguments to -compiled code. If true (which can be enabled by setting the -environment variable R_C_BOUNDS_CHECK to yes), raw, -integer, double and complex arguments are always copied, and -checked for writing off either end of the array on return from the -compiled code (when a second copy is made). This also checks -individual elements of character vectors passed to .C(). +

  • The parser has been modified to use less memory.

    -

    This is not intended for routine use, but can be very helpful in -finding segfaults in package code. +

  • +
  • The way the unary operators (+ - !) handle attributes +is now more consistent. If there is no coercion, all attributes +(including class) are copied from the input to the result: +otherwise only names, dims and dimnames are.

  • -
  • In layout(), the limits on the grid size have been -raised (again). +

  • colorRamp() and colorRampPalette() now allow +non-opaque colours and a ramp in opacity via the new argument +alpha = TRUE. (Suggested by Alberto Krone-Martins, but +optionally as there are existing uses which expect only RGB values.) +

  • -
  • New simple provideDimnames() utility function. +

  • grid.show.layout() and grid.show.viewport() +get an optional vp.ex argument.

  • -
  • Where methods for length() return a double value -which is representable as an integer (as often happens for package -Matrix), this is converted to an integer. +

  • There is a new function find_gs_cmd() in the +tools package to locate a GhostScript executable. (This is +an enhanced version of a previously internal function there.)

  • -
  • Matrix indexing of dataframes by two-column numeric indices -is now supported for replacement as well as extraction. +

  • object.size() gains a format() method.

  • -
  • setNames() now has a default for its object -argument, useful for a character result. +

  • There is a new family, "ArialMT", for the +pdf() and postscript() devices. This will only be +rendered correctly on viewers which have access to Monotype +TrueType fonts (which are sometimes requested by journals).

  • -
  • StructTS() has a revised additive constant in the -loglik component of the result: the previous definition is -returned as the loglik0 component. However, the help page has -always warned of a lack of comparability of log-likelihoods for -non-stationary models. (Suggested by Jouni Helske.) +

  • The text and PDF news files, including ‘NEWS’ and +‘NEWS.2’, have been moved to the ‘doc’ directory.

  • -
  • The logic in aggregate.formula() has been revised. -It is now possible to use a formula stored in a variable; -previously, it had to be given explicitly in the function call. +

  • combn(x, simplify = TRUE) now gives a factor result +for factor input x (previously user error). +(Related to PR#15442.)

  • -
  • install.packages() has a new argument quiet to -reduce the amount of output shown. +

  • Added utils::fileSnapshot() and +utils::changedFiles() functions to allow snapshots and +comparison of directories of files.

  • -
  • Setting an element of the graphics argument lwd to a -negative or infinite value is now an error. Lines corresponding -to elements with values NA or NaN are silently -omitted. +

  • make.names(names, unique=TRUE) now tries to preserve +existing names. (Suggestion of PR#15452.)

    -

    Previously the behaviour was device-dependent. +

  • +
  • New functions cospi(x), sinpi(x), and +tanpi(x), for more accurate computation of +cos(pi*x), etc, both in R and the C API. Using these +gains accuracy in some cases, e.g., inside lgamma() or +besselI(). (Suggested by Morten Welinder in PR#15529.)

  • -
  • Setting graphical parameters cex, col, -lty, lwd and pch in par() now requires a -length-one argument. Previously some silently took the first -element of a longer vector, but not always when documented to do so. +

  • print.table(x, zero.print = ".") now also has an +effect when x is not integer-valued.

  • -
  • Sys.which() when used with inputs which would be -unsafe in a shell (e.g. absolute paths containing spaces) now uses -appropriate quoting. +

  • There is more support to explore the system's idea of +time-zone names. Sys.timezone() tries to give the current +system setting by name (and succeeds at least on Linux, OS X, +Solaris and Windows), and OlsonNames() lists the names in +the system's Olson database. Sys.timezone(location = FALSE) +gives the previous behaviour.

  • -
  • as.tclObj() has been extended to handle raw vectors. -Previously, it only worked in the other direction. -(Contributed by Charlie Friedemann, PR#14939.) +

  • Platforms with a 64-bit time_t type are allowed to +handle conversions between the "POSIXct" and +"POSIXlt" classes for date-times outside the 32-bit range +(before 1902 or after 2037): the existing workarounds are used on +other platforms. (Note that time-zone information for post-2037 +is speculative at best, and the OS services are tested for known +errors and so not used on OS X.)

    -
  • -
  • New functions cite() and citeNatbib() have -been added, to allow generation of in-text citations from -"bibentry" objects. A cite() function may be added -to bibstyle() environments. +

    Currently time_t is usually long and hence 64-bit on +Unix-alike 64-bit platforms: however in several cases the +time-zone database is 32-bit. For R for Windows it is 64-bit +(for both architectures as from this version).

  • -
  • A sort() method has been added for "bibentry" -objects. +

  • The "save.defaults" option can include a value for +compression_level. (Wish of PR#15579.)

  • -
  • The bibstyle() function now defaults to setting the -default bibliography style. The getBibstyle() function -has been added to report the name of the current default style. +

  • colSums() and friends now have support for arrays and +data-frame columns with 2^31 or more elements.

  • -
  • scatter.smooth() now has an argument lpars to -pass arguments to lines(). +

  • as.factor() is faster when f is an unclassed +integer vector (for example, when called from tapply()).

  • -
  • pairs() has a new log argument, to allow some -or all variables to be plotted on logarithmic scale. -(In part, wish of PR#14919.) +

  • fft() now works with longer inputs, from the 12 +million previously supported up to 2 billion. (PR#15593)

  • -
  • split() gains a sep argument. +

  • Complex svd() now uses LAPACK subroutine +ZGESDD, the complex analogue of the routine used for the +real case.

  • -
  • termplot() does a better job when given a model with -interactions (and no longer attempts to plot interaction terms). +

  • Sweave now outputs ‘.tex’ files in UTF-8 if the +input encoding is declared to be UTF-8, regardless of the +local encoding. The UTF-8 encoding may now be declared using +a LaTeX comment containing the string %\SweaveUTF8 +on a line by itself.

  • -
  • The parser now incorporates code from Romain Francois' -parser package, to support more detailed computation on -the code, such as syntax highlighting, comment-based -documentation, etc. Functions getParseData() and -getParseText() access the data. +

  • file.copy() gains a copy.date argument.

  • -
  • There is a new function rep_len() analogous to -rep.int() for when speed is required (and names are not). +

  • Printing of date-times will make use of the time-zone +abbreviation in use at the time, if known. For example, for Paris +pre-1940 this could be LMT, PMT, WET or +WEST. To enable this, the "POSIXlt" class has an +optional component "zone" recording the abbreviation for +each element.

    -
  • -
  • The undocumented use rep(NULL, length.out = n) for -n > 0 (which returns NULL) now gives a warning. +

    For platforms which support it, there is also a component +"gmtoff" recording the offset from GMT where known.

  • -
  • demo() gains an encoding argument for those -packages with non-ASCII demos: it defaults to the package encoding -where there is one. +

  • (On Windows, by default on OS X and optionally elsewhere.) +The system C function strftime has been replaced by a more +comprehensive version with closer conformance to the POSIX 2008 +standard.

  • -
  • strwrap() converts inputs with a marked encoding to -the current locale: previously it made some attempt to pass -through as bytes inputs invalid in the current locale. +

  • dnorm(x, log = FALSE) is more accurate (but somewhat +slower) for |x| > 5; as suggested in PR#15620.

  • -
  • Specifying both rate and scale to -[dpqr]gamma is a warning (if they are essentially the same -value) or an error. +

  • Some versions of the tiff() device have further +compression options.

  • -
  • merge() works in more cases where the data frames -include matrices. (Wish of PR#14974.) +

  • read.table(), readLines() and scan() +have a new argument to influence the treatment of embedded nuls.

  • -
  • optimize() and uniroot() no longer use a -shared parameter object across calls. (nlm(), -nlminb() and optim() with numerical derivatives -still do, as documented.) +

  • Avoid duplicating the right hand side values in complex +assignments when possible. This reduces copying of replacement +values in expressions such as Z$a <- a0 and +ans[[i]] <- tmp: some package code has relied on there +being copies.

    -
  • -
  • The all.equal() method for date-times is now -documented: times are regarded as equal (by default) if they -differ by up to 1 msec. +

    Also, a number of other changes to reduce copying of objects; all +contributed by or based on suggestions by Michael Lawrence.

  • -
  • duplicated() and unique() gain a nmax -argument which can be used to make them much more efficient when -it is known that there are only a small number of unique entries. -This is done automatically for factors. +

  • The fast argument of KalmanLike(), +KalmanRun() and KalmanForecast() has been replaced +by update, which instead of updating mod in place, +optionally returns the updated model in an attribute "mod" +of the return value.

  • -
  • Functions rbinom(), rgeom(), rhyper(), -rpois(), rnbinom(), rsignrank() and -rwilcox() now return integer (not double) vectors. This -halves the storage requirements for large simulations. +

  • arima() and makeARIMA() get a new optional +argument SSinit, allowing the choice of a different +state space initialization which has been observed +to be more reliable close to non-stationarity: see PR#14682.

  • -
  • sort(), sort.int() and sort.list() now -use radix sorting for factors of less than 100,000 levels when -method is not supplied. So does order() if called -with a single factor, unless na.last = NA. +

  • warning() has a new argument noBreaks., to +simplify post-processing of output with options(warn = 1).

  • -
  • diag() as used to generate a diagonal matrix has been -re-written in C for speed and less memory usage. It now forces -the result to be numeric in the case diag(x) since it is -said to have ‘zero off-diagonal entries’. +

  • pushBack() gains an argument encoding, to +support reading of UTF-8 characters using scan(), +read.table() and related functions in a non-UTF-8 locale.

  • -
  • backsolve() (and forwardsolve()) are now -internal functions, for speed and support for large matrices. +

  • all.equal.list() gets a new argument use.names +which by default labels differing components by names (if they +match) rather than by integer index. Saved R output in packages may +need to be updated.

  • -
  • More matrix algebra functions (e.g. chol() and -solve()) accept logical matrices (and coerce to numeric). +

  • The methods for all.equal() and +attr.all.equal() now have argument check.attributes +after ... so it cannot be partially nor positionally +matched (as it has been, unintentionally).

    -
  • -
  • sample.int() has some support for n >= 2^31: see its help for the limitations. +

    A side effect is that some previously undetected errors of passing +empty arguments (no object between commas) to all.equal() +are detected and reported.

    -

    A different algorithm is used for (n, size, replace = FALSE, - prob = NULL) for n > 1e7 and size <= n/2. This -is much faster and uses less memory, but does give different results. +

    There are explicit checks that check.attributes is logical, +tolerance is numeric and scale is NULL or +numeric. This catches some unintended positional matching.

    -
  • -
  • approxfun() and splinefun() now return a -wrapper to an internal function in the stats namespace -rather than a .C() or .Call() call. This is more -likely to work if the function is saved and used in a different -session. +

    The message for all.equal.numeric() reports a +"scaled difference" only for scale != 1.

  • -
  • The functions .C(), .Call(), -.External() and .Fortran() now give an error (rather -than a warning) if called with a named first argument. +

  • all.equal() now has a "POSIXt" method +replacing the "POSIXct" method.

  • -
  • Sweave() by default now reports the locations in -the source file(s) of each chunk. +

  • The "Date" and "POSIXt" methods of +seq() allows by = "quarter" for completeness +(by = "3 months" always worked).

  • -
  • clearPushBack() is now a documented interface to a -long-existing internal call. +

  • file.path() removes any trailing separator on +Windows, where they are invalid (although sometimes accepted). +This is intended to enhance the portability of code written by +those using POSIX file systems (where a trailing / can be +used to confine path matching to directories).

  • -
  • aspell() gains filters for R code, Debian Control -Format and message catalog files, and support for R level -dictionaries. In addition, package utils now provides -functions aspell_package_R_files() and -aspell_package_C_files() for spell checking R and C level -message strings in packages. +

  • New function agrepl() which like grepl() +returns a logical vector.

  • -
  • bibentry() gains some support for “incomplete” -entries with a crossref field. +

  • fifo() is now supported on Windows. (PR#15600)

  • -
  • gray() and gray.colors() finally allow -alpha to be specified. +

  • sort.list(method = "radix") now allows negative +integers (wish of PR#15644).

  • -
  • monthplot() gains parameters to control the look of -the reference lines. (Suggestion of Ian McLeod.) +

  • Some functionality of print.ts() is now available in +.preformat.ts() for more modularity.

  • -
  • Added support for new %~% relation -(“is distributed as”) in plotmath. +

  • mcparallel() gains an option detach = TRUE +which allows execution of code independently of the current +session. It is based on a new estranged = TRUE argument to +mcfork() which forks child processes such that they become +independent of the parent process.

  • -
  • domain = NA is accepted by gettext() and -ngettext(), analogously to stop() etc. +

  • The pdf() device omits circles and text at extremely +small sizes, since some viewers were failing on such files.

  • -
  • termplot() gains a new argument plot = FALSE -which returns information to allow the plots to be modified for -use as part of other plots, but does not plot them. -(Contributed by Terry Therneau, PR#15076.) +

  • The rightmost break for the "months", +"quarters" and "years" cases of +hist.POSIXlt() has been increased by a day. (Inter alia, +fixes PR#15717.)

  • -
  • quartz.save(), formerly an undocumented part of -R.app, is now available to copy a device to a -quartz() device. dev.copy2pdf() optionally does -this for PDF output: quartz.save() defaults to PNG. +

  • The handling of DF[i,] <- a where i is of +length 0 is improved. (Inter alia, fixes PR#15718.)

  • -
  • The default method of pairs() now allows -text.panel = NULL and the use of <foo>.panel = NULL -is now documented. +

  • hclust() gains a new method "ward.D2" which +implements Ward's method correctly. The previous "ward" +method is "ward.D" now, with the old name still working. +Thanks to research and proposals by Pierre Legendre.

  • -
  • setRefClass() and getRefClass() now return -class generator functions, similar to setClass(), but -still with the reference fields and methods as before -(suggestion of Romain Francois). +

  • The sunspot.month dataset has been amended and +updated from the official source, whereas the sunspots and +sunspot.year datasets will remain immutable. The +documentation and source links have been updated correspondingly.

  • -
  • New functions bitwNot(), bitwAnd(), -bitwOr() and bitwXor(), using the internal -interfaces previously used for classes "octmode" and -"hexmode". +

  • The summary() method for "lm" fits warns if +the fit is essentially perfect, as most of the summary may be +computed inaccurately (and with platform-dependent values).

    -

    Also bitwShiftL() and bitwShiftR() for shifting bits -in elements of integer vectors. +

    Programmers who use summary() in order to extract just +a component which will be reliable (e.g. $cov.unscaled) +should wrap their calls in suppressWarnings(). +

    +
+ + + + +

INSTALLATION and INCLUDED SOFTWARE

+ + +
    +
  • The included version of LAPACK has been updated to 3.5.0.

  • -
  • New option "deparse.cutoff" to control the deparsing -of language objects such as calls and formulae when printing. -(Suggested by a comment of Sarah Goslee.) +

  • There is some support for parallel testing of an +installation, by setting TEST_MC_CORES to an integer +greater than one to indicate the maximum number of cores to be +used in parallel. (It is worth specifying at least 8 cores if +available.) Most of these require a make program (such +as GNU make and dmake) which supports the +$MAKE -j nproc syntax. +

    +

    Except on Windows: the tests of standard package examples in +make check are done in parallel. This also applies to +running tools::testInstalledPackages(). +

    +

    The more time-consuming regression tests are done in parallel. +

    +

    The package checks in make check-devel and make + check-recommended are done in parallel.

  • -
  • colors() gains an argument distinct. +

  • More of make check will work if recommended packages +are not installed: but recommended packages remain needed for +thorough checking of an R build.

  • -
  • New demo(colors) and demo(hclColors), with -utility functions. +

  • The version of tzcode included in +‘src/extra/tzone’ has been updated. (Formerly used only on +Windows.)

  • -
  • list.files() (aka dir()) gains a new optional -argument no.. which allows to exclude "." and -".." from listings. +

  • The included (64-bit) time-zone conversion code and Olson +time-zone database can be used instead of the system version: use +configure option --with-internal-tzcode. This +is the default on Windows and OS X. (Note that this does not +currently work if a non-default rsharedir +configure variable is used.) +

    +

    (It might be necessary to set environment variable TZ on +OSes where this is not already set, although the system timezone is +deduced correctly on at least Linux, OS X and Windows.) +

    +

    This option also switches to the version of strftime +included in directory ‘src/extra/tzone’.

  • -
  • Multiple time series are also of class "matrix"; -consequently, head(), e.g., is more useful. +

  • configure now tests for a C++11-compliant compiler +by testing some basic features. This by default tries flags for +the compiler specified by CXX, but an alternative compiler, +options and standard can be specified by variables CXX1X, +CXX1XFLAGS and CXX1XSTD (e.g. -std=gnu++11).

  • -
  • encodeString() preserves UTF-8 marked encodings. -Thus if factor levels are marked as UTF-8 an attempt is made to -print them in UTF-8 in RGui on Windows. +

  • R can now optionally be compiled to use reference +counting instead of the NAMED mechanism by defining +SWITCH_TO_REFCNT in ‘Rinternals.h’. This may become +the default in the future.

  • -
  • readLines() and scan() (and hence -read.table()) in a UTF-8 locale now discard a UTF-8 -byte-order-mark (BOM). Such BOMs are allowed but not recommended -by the Unicode Standard: however Microsoft applications can -produce them and so they are sometimes found on websites. +

  • There is a new option --use-system-tre to use a +suitable system tre library: at present this means a version +from their git repository, after corrections. +(Wish of PR#15660.)

    -

    The encoding name "UTF-8-BOM" for a connection will -ensure that a UTF-8 BOM is discarded. +

+ + + + +

PACKAGE INSTALLATION

+ + +
    +
  • The CRANextra repository is no longer a default +repository on Windows: all the binary versions of packages from +CRAN are now on CRAN, although CRANextra contains packages +from Omegahat and elsewhere used by CRAN packages.

  • -
  • mapply(FUN, a1, ..) now also works when a1 (or -a further such argument) needs a length() method (which the -documented arguments never do). (Requested by Hervé Pagès; with a -patch.) +

  • Only vignettes sources in directory ‘vignettes’ are +considered to be vignettes and hence indexed as such.

  • -
  • .onDetach() is supported as an alternative to -.Last.lib. Unlike .Last.lib, this does not need to -be exported from the package's namespace. -

    +
  • In the ‘DESCRIPTION’ file,

    +
        License: X11
    +is no longer recognized as valid. Use MIT or +BSD_2_clause instead, both of which need + file LICENSE.
  • -
  • The srcfile argument to parse() may now be a -character string, to be used in error messages. +

  • For consistency, entries in ‘.Rinstignore’ are now matched +case-insensitively on all platforms.

  • -
  • The format() method for ftable objects gains -a method argument, propagated to write.ftable() and -print(), allowing more compact output, notably for LaTeX -formatting, thanks to Marius Hofert. +

  • Help for S4 methods with very long signatures now tries +harder to split the description in the Usage field to no +more than 80 characters per line (some packages had over 120 +characters).

  • -
  • The utils::process.events() function has been added -to trigger immediate event handling. +

  • R CMD INSTALL --build (not Windows) now defaults to +the internal tar() unless R_INSTALL_TAR is set.

  • -
  • Sys.which() now returns NA (not "") for -NA inputs (related to PR#15147). +

  • There is support for compiling C++11 code in packages on +suitable platforms: see ‘Writing R Extensions’.

  • -
  • The print() method for class "htest" gives -fewer trailing spaces (wish of PR#15124). +

  • Fake installs now install the contents of directory +‘inst’: some packages use this to install e.g. C++ headers +for use by other packages that are independent of the package +itself. Option --no-inst can be used to get the previous +behaviour.

    -

    Also print output from HoltWinters(), nls() and others. +

+ + + + +

DEBUGGING

+ + +
    +
  • The behaviour of the code browser has been made more +consistent, in part following the suggestions in PR#14985.

  • -
  • loadNamespace() allows a version specification to be -given, and this is used to check version specifications given in -the Imports field when a namespace is loaded. +

  • Calls to browser() are now consistent with calls +to the browser triggered by debug(), in that Enter +will default to n rather than c.

  • -
  • setClass() has a new argument, slots, clearer -and less ambiguous than representation. It is recommended -for future code, but should be back-compatible. At the same time, -the allowed slot specification is slightly more general. See the -documentation for details. +

  • A new browser command s has been added, to +“step into” function calls.

  • -
  • mget() now has a default for envir (the frame -from which it is called), for consistency with get() and -assign(). +

  • A new browser command f has been added, to +“finish” the current loop or function.

  • -
  • close() now returns an integer status where available, -invisibly. (Wish of PR#15088.) +

  • Within the browser, the command help will +display a short list of available commands. +

    +
+ + + + +

UTILITIES

+ + +
    +
  • Only vignettes sources in directory ‘vignettes’ are +considered to be vignettes by R CMD check. That has +been the preferred location since R 2.14.0 and is now obligatory.

  • -
  • The internal method of tar() can now store paths too -long for the ustar format, using the (widely supported) GNU -extension. It can also store long link names, but these are much -less widely supported. There is support for larger files, up to -the ustar limit of 8GB. +

  • For consistency, R CMD build now matches entries +in ‘.Rbuildignore’ and ‘vignettes/.install_extras’ +case-insensitively on all platforms (not just on Windows).

  • -
  • Local reference classes have been added to package -methods. These are a technique for avoiding unneeded -copying of large components of objects while retaining standard R -functional behavior. See ?LocalReferenceClasses. +

  • checkFF() (called by R CMD check by +default) can optionally check foreign function calls for +consistency with the registered type and argument count. This is +the default for R CMD check --as-cran or can be enabled +by setting environment variable _R_CHECK_FF_CALLS_ to +registration (but is in any case suppressed by +--install=no). Because this checks calls in which +.NAME is an R object and not just a literal character +string, some other problems are detected for such calls. +

    +

    Functions suppressForeignCheck() and dontCheck() +have been added to allow package authors to suppress false +positive reports.

  • -
  • untar() has a new argument restore_times which -if false (not the default) discards the times in the tarball. -This is useful if they are incorrect (some tarballs submitted to -CRAN have times in a local timezone or many years in the -past even though the standard required them to be in UTC). +

  • R CMD check --as-cran warns about a false value of +the ‘DESCRIPTION’ field BuildVignettes for Open Source +packages, and ignores it. (An Open Source package needs to have +complete sources for its vignettes which should be usable on a +suitably well-equipped system).

  • -
  • replayplot() cannot (and will not attempt to) replay -plots recorded under R < 3.0.0. It may crash the R session if -an attempt is made to replay plots created in a different build of -R >= 3.0.0. +

  • R CMD check --no-rebuild-vignettes is defunct:
    +R CMD check --no-build-vignettes has been preferred since +R 3.0.0.

  • -
  • Palette changes get recorded on the display list, so -replaying plots (including when resizing screen devices and using -dev.copy()) will work better when the palette is changed -during a plot. +

  • R CMD build --no-vignettes is defunct:
    +R CMD build --no-build-vignettes has been preferred since +R 3.0.0.

  • -
  • chol(pivot = TRUE) now defaults to LAPACK, not LINPACK. +

  • R CMD Sweave and R CMD Stangle now +process both Sweave and non-Sweave vignettes. The +tools::buildVignette() function has been added to do the +same tasks from within R.

  • -
  • The parse() function has a new parameter -keep.source, which defaults to options("keep.source"). +

  • The flags returned by R CMD config --ldflags and +(where installed) pkg-config --libs libR are now those +needed to link a front-end against the (shared or static) R +library.

  • -
  • Profiling via Rprof() now optionally records information -at the statement level, not just the function level. +

  • Sweave.sty’ has a new option [inconsolata].

  • -
  • The Rprof() function now quotes function names in -in its output file on Windows, to be consistent with the quoting -in Unix. +

  • R CMD check customizations such as +_R_CHECK_DEPENDS_ONLY_ make available packages only in +LinkingTo only for installation, and not for +loading/runtime tests.

  • -
  • Profiling via Rprof() now optionally records -information about time spent in GC. +

  • tools::checkFF() reports on .C and +.Fortran calls with DUP = FALSE if argument +check_DUP is true. This is selected by +R CMD check by default.

  • -
  • The HTML help page for a package now displays non-vignette -documentation files in a more accessible format. +

  • R CMD check --use-gct can be tuned to +garbage-collect less frequently using gctorture2() +via the setting of environment variable +_R_CHECK_GCT_N_.

  • -
  • To support options(stringsAsFactors = FALSE), -model.frame(), model.matrix() and -replications() now automatically convert character -vectors to factors without a warning. -

    -
  • -
  • The print method for objects of class "table" -now detects tables with 0-extents and prints the results as, e.g., -< table of extent 0 x 1 x 2 >. (Wish of PR#15198.) -

    -
  • -
  • Deparsing involving calls to anonymous functions and has been -made closer to reversible by the addition of extra parentheses. -

    -
  • -
  • The function utils::packageName() has been added as -a lightweight version of methods::getPackageName(). -

    -
  • -
  • find.package(lib.loc = NULL) now treats loaded -namespaces preferentially in the same way as attached packages -have been for a long time. -

    -
  • -
  • In Windows, the Change Directory dialog now defaults to -the current working directory, rather than to the last directory -chosen in that dialog. -

    -
  • -
  • available.packages() gains a -"license/restricts_use" filter which retains only packages -for which installation can proceed solely based on packages which -are guaranteed not to restrict use. -

    -
  • -
  • New check_packages_in_dir() function in package -tools for conveniently checking source packages along with -their reverse dependencies. -

    -
  • -
  • R's completion mechanism has been improved to handle help -requests (starting with a question mark). In particular, help -prefixes are now supported, as well as quoted help topics. To -support this, completion inside quotes are now handled by R by -default on all platforms. -

    -
  • -
  • The memory manager now allows the strategy used to balance -garbage collection and memory growth to be controlled by setting -the environment variable R_GC_MEM_GROW. See ?Memory -for more details. -

    -
  • -
  • (‘For experts only’, as the introductory manual -says.) The use of environment variables R_NSIZE and -R_VSIZE to control the initial (= minimum) garbage -collection trigger for number of cons cels and size of heap has -been restored: they can be overridden by the command-line options ---min-nsize and --min-vsize; see ?Memory. -

    -
  • -
  • On Windows, the device name for bitmap devices as reported -by .Device and .Devices no longer includes the file -name. This is for consistency with other platforms and was -requested by the lattice maintainer. -

    -

    win.metafile() still uses the file name: the exact form is -used by package tkrplot. -

    -
  • -
  • set.seed(NULL) re-initializes .Random.seed as -done at the beginning of the session if not already set. -(Suggestion of Bill Dunlap.) -

    -
  • -
  • The breaks argument in hist.default() can now be -a function that returns the breakpoints to be used (previously it -could only return the suggested number of breakpoints). -

    -
  • -
  • File ‘share/licenses/licenses.db’ has some -clarifications, especially as to which variants of ‘BSD’ -and ‘MIT’ is intended and how to apply them to packages. -The problematic licence ‘Artistic-1.0’ has been removed. -

    -
- - - - -

LONG VECTORS

- -

This section applies only to 64-bit platforms. -

- -
    -
  • There is support for vectors longer than 2^31 - - 1 elements. This applies to raw, logical, integer, double, -complex and character vectors, as well as lists. (Elements of -character vectors remain limited to 2^31 - 1 -bytes.) -

    -
  • -
  • Most operations which can sensibly be done with long vectors -work: others may return the error ‘long vectors not -supported yet’. Most of these are because they explicitly work -with integer indices (e.g. anyDuplicated() and -match()) or because other limits (e.g. of character strings -or matrix dimensions) would be exceeded or the operations would be -extremely slow. -

    -
  • -
  • length() returns a double for long vectors, and -lengths can be set to 2^31 or more by the -replacement function with a double value. -

    -
  • -
  • Most aspects of indexing are available. Generally -double-valued indices can be used to access elements beyond -2^31 - 1. -

    -
  • -
  • There is some support for matrices and arrays with each -dimension less than 2^31 but total number of -elements more than that. Only some aspects of matrix algebra work -for such matrices, often taking a very long time. In other cases -the underlying Fortran code has an unstated restriction (as was -found for complex svd()). -

    -
  • -
  • dist() can produce dissimilarity objects for more -than 65536 rows (but for example hclust() cannot process -such objects). -

    -
  • -
  • serialize() to a raw vector is unlimited in size -(except by resources). -

    -
  • -
  • The C-level function R_alloc can now allocate -2^35 or more bytes. -

    -
  • -
  • agrep() and grep() will return double vectors -of indices for long vector inputs. -

    -
  • -
  • Many calls to .C() have been replaced by -.Call() to allow long vectors to be supported (now or in -the future). Regrettably several packages had copied the non-API -.C() calls and so failed. -

    -
  • -
  • .C() and .Fortran() do not accept long vector -inputs. This is a precaution as it is very unlikely that existing -code will have been written to handle long vectors (and the R -wrappers often assume that length(x) is an integer). -

    -
  • -
  • Most of the methods for sort() work for long vectors. -

    -

    rank(), sort.list() and order() support -long vectors (slowly except for radix sorting). -

    -
  • -
  • sample() can do uniform sampling from a long vector. -

    -
- - - - -

PERFORMANCE IMPROVEMENTS

- - -
    -
  • More use has been made of R objects representing registered -entry points, which is more efficient as the address is provided -by the loader once only when the package is loaded. -

    -

    This has been done for packages base, methods, -splines and tcltk: it was already in place for the -other standard packages. -

    -

    Since these entry points are always accessed by the R entry -points they do not need to be in the load table which can be -substantially smaller and hence searched faster. This does mean -that .C / .Fortran / .Call calls copied from -earlier versions of R may no longer work – but they were never -part of the API. -

    -
  • -
  • Many .Call() calls in package base have been -migrated to .Internal() calls. -

    -
  • -
  • solve() makes fewer copies, especially when b -is a vector rather than a matrix. -

    -
  • -
  • eigen() makes fewer copies if the input has dimnames. -

    -
  • -
  • Most of the linear algebra functions make fewer copies when -the input(s) are not double (e.g. integer or logical). -

    -
  • -
  • A foreign function call (.C() etc) in a package -without a PACKAGE argument will only look in the first DLL -specified in the ‘NAMESPACE’ file of the package rather than -searching all loaded DLLs. A few packages needed PACKAGE -arguments added. -

    -
  • -
  • The @<- operator is now implemented as a primitive, -which should reduce some copying of objects when used. Note that -the operator object must now be in package base: do not try -to import it explicitly from package methods. -

    -
- - - - -

PACKAGE INSTALLATION

- - -
    -
  • The transitional support for installing packages without -namespaces (required since R 2.14.0) has been removed. -R CMD build will still add a namespace, but a -.First.lib() function will need to be converted. -

    -

    R CMD INSTALL no longer adds a namespace (so -installation will fail), and a .First.lib() function in a -package will be ignored (with an installation warning for now). -

    -

    As an exception, packages without a ‘R’ directory and no -‘NAMESPACE’ file can still be installed. -

    -
  • -
  • Packages can specify in their ‘DESCRIPTION file’ a line -like

    -
         Biarch: yes
    -
    -to be installed on Windows with --force-biarch. -
  • -
  • Package vignettes can now be processed by other engines -besides Sweave; see ‘Writing R Extensions’ and the -tools::vignetteEngine help topic for details. -

    -
  • -
  • The ‘*.R’ tangled source code for vignettes is now -included in tarballs when R CMD build is used to produce -them. In R 3.0.0, ‘*.R’ files not in the sources will be -produced at install time, but eventually this will be dropped. -

    -
  • -
  • The package type "mac.binary" now looks in a path in -the repository without any Mac subtype (which used to be -universal or leopard): it looks in -‘bin/macosx/contrib/3.0’ rather than -‘bin/macosx/leopard/contrib/2.15’). This is the type used -for the CRAN binary distribution for OS X as from R -3.0.0. -

    -
  • -
  • File ‘etc/Makeconf’ makes more use of the macros -$(CC), $(CXX), $(F77) and $(FC), so -the compiler in use can be changed by setting just these (and if -necessary the corresponding flags and FLIBS) in file -‘~/.R/Makevars’. -

    -

    This is convenient for those working with binary distributions of -R, e.g. on OS X. -

    -
- - - - -

UTILITIES

- - -
    -
  • R CMD check now gives a warning rather than a -note if it finds calls to abort, assert or -exit in compiled code, and has been able to find the -‘.o’ file in which the calls occur. -

    -

    Such calls can terminate the R process which loads the package. -

    -
  • -
  • The location of the build and check environment files can -now be specified by the environment variables -R_BUILD_ENVIRON and R_CHECK_ENVIRON, respectively. -

    -
  • -
  • R CMD Sweave gains a --compact option -to control possibly reducing the size of the PDF file it creates -when --pdf is given. -

    -
  • -
  • R CMD build now omits Eclipse's ‘.metadata’ -directories, and R CMD check warns if it finds them. -

    -
  • -
  • R CMD check now does some checks on functions -defined within reference classes, including of .Call() etc -calls. -

    -
  • -
  • R CMD check --as-cran notes assignments to the -global environment, calls to data() which load into the -global environment, and calls to attach(). -

    -
  • -
  • R CMD build by default uses the internal method of -tar() to prepare the tarball. This is more likely to -produce a tarball compatible with R CMD INSTALL and -R CMD check: an external tar program, -including options, can be specified via the environment -variable R_BUILD_TAR. -

    -
  • -
  • tools::massageExamples() is better protected against -packages which re-define base functions such as cat() and -get() and so can cause R CMD check to fail when -checking examples. -

    -
  • -
  • R CMD javareconf has been enhanced to be more -similar to the code used by configure. -

    -

    There is now a test that a JNI program can be compiled (like -configure did) and only working settings are used. -

    -

    It makes use of custom settings from configuration recorded in -‘etc/javaconf’. -

    -
  • -
  • The --no-vignettes argument of R CMD - build has been renamed to the more accurate ---no-build-vignettes: its action has always been to -(re)build vignettes and never omitted them. -

    -

    R CMD check accepts --no-build-vignettes as a -preferred synonym for --no-rebuild-vignettes. -

    -
- - - - -

DEPRECATED AND DEFUNCT

- - -
    -
  • The ENCODING argument to .C() is defunct. -Use iconv() instead. -

    -
  • -
  • The .Internal(eval.with.vis) non-API function has -been removed. -

    -
  • -
  • Support for the converters for use with .C() has been -removed, including the oft misused non-API header -‘R_ext/RConverters.h’. -

    -
  • -
  • The previously deprecated uses of array() with a -0-length dim argument and tapply() with a 0-length -INDEX list are now errors. -

    -
  • -
  • Translation packages are defunct. -

    -
  • -
  • Calling rep() or rep.int() on a pairlist or -other non-vector object is now an error. -

    -
  • -
  • Several non-API entry points have been transferred to -packages (e.g. R_zeroin2) or replaced by different non-API -entry points (e.g. R_tabulate). -

    -
  • -
  • The ‘internal’ graphics device invoked by -.Call("R_GD_nullDevice", package = "grDevices") has -been removed: use pdf(file = NULL) instead. -

    -
  • -
  • The .Fortran() entry point "dqrls" which has -not been used by R since version 2.15.1 is no longer available. -

    -
  • -
  • Functions traceOn() and traceOff() in package -methods are now defunct. -

    -
  • -
  • Function CRAN.packages() is finally defunct. -

    -
  • -
  • Use of col2rgb(0) is defunct: use par("bg") or -NA instead. -

    -
  • -
  • The long-defunct functions Rd_parse(), -anovalist.lm(), categpry(), clearNames(), -gammaCody(), glm.fit.null(), lm.fit.null(), -lm.wfit.null(), manglePackageNames(), -mauchley.test(), package.contents(), -print.coefmat(), reshapeLong(), -reshapeWide(), tkclose(), tkcmd(), -tkfile.dir(), tkfile.tail(), tkopen(), -tkputs(), tkread(), trySilent() and -zip.file.extract() have been removed entirely (but are -still documented in the help system). -

    -
  • -
  • The unused dataPath argument to -attachNamespace() has been removed. -

    -
  • -
  • grid.prompt() has been removed: use -devAskNewPage() instead. -

    -
  • -
  • The long-deprecated intensities component is no -longer returned by hist(). -

    -
  • -
  • mean() for data frames and sd() for data -frames and matrices are defunct. -

    -
  • -
  • chol(pivot = FALSE, LINPACK = TRUE), -ch2inv(LINPACK = TRUE), eigen(EISPACK = TRUE), -solve(LINPACK = TRUE) and svd(LINPACK = TRUE) are -defunct: LAPACK will be used, with a warning. -

    -
  • -
  • The keep.source argument to library() and -require() is defunct. This option needs to be set -at install time. -

    -
  • -
  • Documentation for real(), as.real() and -is.real() has been moved to ‘defunct’ and the -functions removed. -

    -
  • -
  • The maxRasters argument of pdf() (unused since -R 2.14.0) has been removed. -

    -
  • -
  • The unused fontsmooth argument has been removed from -the quartz() device. -

    -
  • -
  • All the (non-API) EISPACK entry points in R have been removed. -

    -
  • -
  • chol(pivot = TRUE, LINPACK = TRUE) is deprecated. -

    -
  • -
  • The long-deprecated use of \synopsis in the -Usage section of ‘.Rd’ files will be removed in R -3.1.0. -

    -
  • -
  • .find.package() and .path.package() are -deprecated: only the public versions without the dot have ever -been in the API. -

    -
  • -
  • In a package's ‘DESCRIPTION’ file,

    -
        License: X11
    -is deprecated, since it includes -‘Copyright (C) 1996 X Consortium’ which cannot be -appropriate for a current R package. Use ‘MIT’ or -‘BSD_2_clause’ instead. -
- - - - -

CODE MIGRATION

- - -
    -
  • The C code underlying base graphics has been migrated to the -graphics package (and hence no longer uses -.Internal() calls). -

    -
  • -
  • Most of the .Internal() calls used in the stats -package have been migrated to C code in that package. -

    -

    This means that a number of .Internal() calls which have -been used by packages no longer exist, including -.Internal(cor) .Internal(cov), -.Internal(optimhess) and .Internal(update.formula). -

    -
  • -
  • Some .External() calls to the base package -(really to the R executable or shared library) have been moved to -more appropriate packages. Packages should not have been using -such calls, but some did (mainly those used by integrate()). -

    -
- - - - -

PACKAGE parallel

- - -
    -
  • There is a new function mcaffinity() which allows -getting or setting the CPU affinity mask for the current R process on -systems that supports this (currently only Linux has been tested -successfully). It has no effect on systems which do not support -process affinity. Users are not expected to use this function -directly (with the exception of fixing libraries that break -affinity settings like OpenBLAS) – the function is rather -intended to support affinity control in high-level parallel -functions. In the future, R may supplement lack of affinity -control in the OS by its own bookkeeping via mcaffinity() -related to processes and threads it spawns. -

    -
  • -
  • mcparallel() has a new argument mc.affinity -which attempts to set the affinity of the child process according -to the specification contained therein. -

    -
  • -
  • The port used by socket clusters is chosen randomly: this -should help to avoid clashes observed when two users of a -multi-user machine try to create a cluster at the same time. To -reproduce the previous behaviour set environment variable -R_PARALLEL_PORT to 10187. -

    -
- - - - -

C-LEVEL FACILITIES

- - -
    -
  • There has been some minor re-organization of the non-API -header files. In particular, ‘Rinternals.h’ no longer -includes the non-API header ‘R_exts/PrtUtil.h’, and that no -longer includes ‘R_exts/Print.h’. -

    -
  • -
  • Passing NULL to .C() is now an error. -

    -
  • -
  • .C() and .Fortran() now warn if -"single" arguments are used with DUP = FALSE, as -changes to such arguments are not returned to the caller. -

    -
  • -
  • C entry points R_qsort and R_qsort_I now have -start and end as size_t to allow them to work -with longer vectors on 64-bit platforms. Code using them should -be recompiled. -

    -
  • -
  • A few recently added C entry points were missing the -remapping to Rf_, notably [dpq]nbinom_mu. -

    -
  • -
  • Some of the interface pointers formerly available only to -R.app are now available to front-ends on all -Unix-alikes: one has been added for the interface to -View(). -

    -
  • -
  • PACKAGE = "" is now an error in .C() etc calls: -it was always contrary to the documentation. -

    -
  • -
  • Entry point rcont2 has been migrated to package -stats and so is no longer available. -

    -
  • -
  • R_SVN_REVISION in ‘Rversion.h’ is now an integer -(rather than a string) and hence usable as e.g. -#if R_SVN_REVISION < 70000. -

    -
  • -
  • The entry points rgb2hsv and hsv2rgb have been -migrated to package grDevices and so are no longer available. -

    -
  • -
  • R_GE_version has been increased to 10 and -name2col removed (use R_GE_str2col instead). R -internal colour codes are now defined using the typedef -rcolor. -

    -
  • -
  • The REPROTECT macro now checks that the protect index -is valid. -

    -
  • -
  • Several non-API entry points no longer used by R have been -removed, including the Fortran entry points chol, -chol2inv, cg, ch and rg, and the C -entry points Brent_fmin, fft_factor and fft_work. -

    -
  • -
  • If a .External call is registered with a number of -arguments (other than -1), the number of arguments passed -is checked for each call (as for other foreign function calls). -

    -
  • -
  • It is now possible to write custom connection -implementations outside core R using ‘R_ext/Connections.h’. -Please note that the implementation of connections is still -considered internal and may change in the future (see the above -file for details). -

    -
- - - - -

INTERNATIONALIZATION

- - -
    -
  • The management of translations has been converted to R -code: see ?tools::update_pkg_po. -

    -
  • -
  • The translations for the R interpreter and -RGui.exe are now part of the base package (rather than -having sources in directory ‘po’ and being installed to -‘share/locale’). Thus the base package supports three -translation domains, R-base, R and RGui. -

    -
  • -
  • The compiled translations which ship with R are all -installed to the new package translations for easier -updating. The first package of that name found on -.libPaths() at the start of the R session will be used. -(It is possible messages will be used before .libPaths() is -set up in which case the default translations will be used: set -environment variable R_TRANSLATIONS to point to the location -of the intended translations package to use this right from -the start.) -

    -
  • -
  • The translations form a separate group in the Windows -installer, so can be omitted if desired. -

    -
  • -
  • The markup for many messages has been changed to make them -easier to translate, incorporating suggestions from Åukasz Daniel. -

    -
- - - - -

INSTALLATION

- - -
    -
  • There is again support for building without using the C -‘long double’ type. This is required by C99, but system -implementations can be slow or flawed. Use configure -option --disable-long-double. -

    -
  • -
  • make pdf and make install-pdf now make -and install the full reference index (including all base and -recommended packages). -

    -
  • -
  • The 'reference manual' on the Windows GUI menu and included -in the installer is now the full reference index, including all -base and recommended packages. -

    -
  • -
  • R help pages and manuals have no ISBNs because ISBN -rules no longer allow constantly changing content to be assigned -an ISBN. -

    -
  • -
  • The Windows installer no longer installs a Start Menu -link to the static help pages; as most pages are generated -dynamically, this led to a lot of broken links. -

    -
  • -
  • Any custom settings for Java configuration are recorded in -file ‘etc/javaconf’ for subsequent use by R CMD - javareconf. -

    -
  • -
  • There is now support for makeinfo version 5.0 -(which requires a slightly different ‘.texi’ syntax). -

    -
  • -
  • The minimum versions for --use-system-zlib and ---use-system-pcre are now tested as 1.2.5 and 8.10 -respectively. -

    -
  • -
  • On Windows, the stack size is reduced to 16MB on 32-bit -systems: misguided users were launching many threads without -controlling the stack size. -

    -
  • -
  • configure no longer looks for file -‘~/.Rconfig’: ‘~/.R/config’ has long been preferred. -

    -
- - - - -

BUG FIXES

- - -
    -
  • When R CMD build is run in an encoding other than -the one specified in the package's ‘DESCRIPTION’ file it -tries harder to expand the authors@R field in the specified -encoding. (PR#14958) -

    -
  • -
  • If R CMD INSTALL is required to expand the -authors@R field of the ‘DESCRIPTION’ file, it tries -harder to do so in the encoding specified for the package (rather -than using ASCII escapes). -

    -
  • -
  • Fix in package grid for pushing a viewport into a -layout cell, where the layout is within a viewport that has zero -physical width OR where the layout has zero total relative width -(likewise for height). The layout column widths (or row heights) -in this case were being calculated with non-finite values. -(Reported by Winston Chang.) -

    -
  • -
  • solve(A, b) for a vector b gave the answer -names from colnames(A) for LINPACK = TRUE but not in -the default case. -

    -
  • -
  • La.svd() accepts logical matrices (as documented, and -as svd() did). -

    -
  • -
  • legend() now accepts negative pch values, in -the same way points() long has. -

    -
  • -
  • Parse errors when installing files now correctly display -the name of the file containing the bad code. -

    -
  • -
  • In Windows, tcltk windows were not always properly constructed. -(PR#15150) -

    -
  • -
  • The internal functions implementing parse(), -tools::parseLatex() and tools::parse_Rd() were not -reentrant, leading to errors in rare circumstances such as a -garbage collection triggering a recursive call. -

    -
  • -
  • Field assignments in reference class objects via -$<- were not being checked -because the magic incantation to turn methods on for that -primitive operator had been inadvertently omitted. -

    -
  • -
  • setHook(hookname, value, action="replace") set the -hook to be the value, rather than a list containing the value as -documented. (PR#15167) -

    -
  • -
  • If a package used a ‘NEWS.Rd’ file, the main HTML -package index page did not link to it. (Reported by Dirk -Eddelbuettel.) -

    -
  • -
  • The primitive implementation of @<- was not -checking the class of the replacement. It now does a check, -quicker but less general than slot<-. See the help. -

    -
  • -
  • split(x, f) now recycles classed objects x in -the same way as vectors. (Reported by Martin Morgan.) -

    -
  • -
  • pbeta(.28, 1/2, 2200, lower.tail=FALSE, log.p=TRUE) -is no longer -Inf; ditto for corresponding pt() and -pf() calls, such as pt(45, df=5000, lower.tail=FALSE, - log.p=TRUE). (PR#15162) -

    -
  • -
  • The Windows graphics device would crash R if a user -attempted to load the graphics history from a variable that was -not a saved history. (PR#15230) -

    -
  • -
  • The workspace size for the predict() -method for loess() could exceed the maximum integer size. -(Reported by Hiroyuki Kawakatsu.) -

    -
  • -
  • ftable(x, row.vars, col.vars) now also works when the -*.vars arguments are (integer or character vectors) of -length zero. -

    -
  • -
  • Calling cat() on a malformed UTF-8 string could cause -the Windows GUI to lock up. (PR#15227) -

    -
  • -
  • removeClass(cc) gave "node stack overflow" for some -class definitions containing "array" or "matrix". -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.15.3

- - - -

NEW FEATURES

- - -
    -
  • lgamma(x) for very small x (in the -denormalized range) is no longer Inf with a warning. -

    -
  • -
  • image() now sorts an unsorted breaks vector, -with a warning. -

    -
  • -
  • The internal methods for tar() and untar() do -a slightly more general job for ‘ustar’-style handling of -paths of more than 100 bytes. -

    -
  • -
  • Packages compiler and parallel have been added -to the reference index (‘refman.pdf’). -

    -
  • -
  • untar(tar = "internal") has some support for -pax headers as produced by e.g. gnutar --posix -(which seems prevalent on OpenSUSE 12.2) or -bsdtar --format pax, including long path and link names. -

    -
  • -
  • sQuote() and dQuote() now handle 0-length -inputs. (Suggestion of Ben Bolker.) -

    -
  • -
  • summaryRprof() returns zero-row data frames rather -than throw an error if no events are recorded, for consistency. -

    -
  • -
  • The included version of PCRE has been updated to 8.32. -

    -
  • -
  • The tcltk namespace can now be re-loaded after -unloading. -

    -

    The Tcl/Tk event loop is inhibited in a forked child from package -parallel (as in e.g. mclapply()). -

    -
  • -
  • parallel::makeCluster() recognizes the value -random for the environment variable R_PARALLEL_PORT: -this chooses a random value for the port and reduces the chance of -conflicts when multiple users start a cluster at the same time. -

    -
- - - - -

UTILITIES

- - -
    -
  • The default for TAR on Windows for R CMD - build has been changed to be internal if no -tar command is on the path. -

    -

    This enables most packages to be built ‘out of the box’ -without Rtools: the main exceptions are those which need -to be installed to re-build vignettes and need Rtools -for installation (usually because they contain compiled code). -

    -
- - - - -

C-LEVEL FACILITIES

- - -
    -
  • On a 64-bit Windows platform with enough RAM, R_alloc -can now allocate up to just under 32GB like other 64-bit -platforms. -

    -
- - - - -

DEPRECATED AND DEFUNCT

- - -
    -
  • Use of col2rgb(0) is deprecated (see the help page -for its limitations). -

    -
  • -
  • The deprecated intensities component returned by -hist() is no longer recognized by the plot() method -and will be removed in R 3.0.0. -

    -
  • -
  • real(), as.real() and is.real() are now -formally deprecated and give a warning. -

    -
  • -
  • This is formal notice that the non-API EISPACK entry points -in R will be removed shortly. -

    -
- - - - -

INSTALLATION

- - -
    -
  • The configure tests for Objective C and Objective -C++ now work on Mac OS 10.8 with Xcode 4.5.2 (PR#15107). -

    -
  • -
  • The cairo-based versions of X11() now work with -current versions of cairographics (e.g. 1.12.10). (PR#15168) -

    -

    A workaround for earlier versions of R is to use -X11.options(type = "nbcairo"). -

    -
  • -
  • Configuration and R CMD javareconf now come up -with a smaller set of library paths for Java on Oracle-format JDK -(including OpenJDK). This helps avoid conflicts between libraries -(such as libjpeg) supplied in the JDK and system -libraries. This can always be overridden if needed: see the -‘R Installation and Administration’ manual. -

    -
- - - - -

BUG FIXES

- - -
    -
  • beta(a, b) could overflow to infinity in its -calculations when one of a and b was less than one. -(PR#15075) -

    -
  • -
  • lbeta(a, b) no longer gives NaN if a or -b is very small (in the denormalized range). -

    -
  • -
  • bquote() is now able to substitute default arguments in -single-argument functions. (PR#15077) -

    -
  • -
  • browseEnv(html = FALSE) would segfault if called from -R (not R.app) on a CRAN-style Mac OS X build of R. -

    -
  • -
  • [[<- for lists (generic vectors) needed to increment -NAMED count when RHS is used more than once. (PR#15098) -

    -
  • -
  • On Windows, warnings about opening a file or pipe with a -non-ASCII description were sometimes output in UTF-8 rather than -in the current locale's character set. -

    -
  • -
  • The call() function did not duplicate its arguments. -(PR#15115) -

    -
  • -
  • TukeyHSD() could give NA results with some -na.action methods such as na.exclude(). -(Hinted at on R-help by John Fox.) -

    -
  • -
  • The deprecated svd(X, LINPACK = TRUE) could alter -X in R 2.15.[12]. (Reported by Bill Dunlap.) -

    -
  • -
  • Under Windows, file.link() and file.symlink() -used the link name twice, so would always fail. (Reported -by Rui Barradas/Oliver Soong). -

    -
  • -
  • summaryRprof(memory = "both") mixed up the units of -Vcells and Ncells: it now works in bytes. (PR#15138) -

    -
  • -
  • tools::Rd2HTML() would sometimes delete text. (PR#15134) -

    -
  • -
  • plot() failed for "table" objects containing -just one entry. (PR#15118) -

    -
  • -
  • embedFonts() needed to quote some filepaths. -(PR#15149) -

    -
  • -
  • parallel::mccollect() handled NULL returns -incorrectly (removing the element rather than setting it to -NULL). -

    -
  • -
  • The full reference index (‘fullrefman.pdf’) was missing -packages compiler and parallel. -

    -
  • -
  • The report for -optim(method = "L-BFGS-B", control = list(trace = 1)) -reported the last completed and not the current iteration, unlike -other methods and trace levels. (PR#15103) -

    -
  • -
  • qt(1e-12, 1.2) no longer gives NaN. -

    -
  • -
  • dt(1e160, 1.2, log=TRUE) no longer gives -Inf. -

    -
  • -
  • On Windows the untar() function now quotes the -directory name when using an external tar utility, so -R CMD check will handle pathnames containing spaces. -

    -
  • -
  • The version for Windows 8 and Windows Server 2012 is now -displayed by win.version(). (Reported by Gabor -Grothendieck.) -

    -
  • -
  • The custom Windows installer target myR in the -installer ‘Makefile’ did not work in 2.15.2. (Reported -by Erich Neuwirth.) -

    -
  • -
  • aperm(matrix(1:6, 2, dimnames=list(A={}, B={})), "A") -no longer segfaults. -

    -
  • -
  • Expressions involving user defined operators were not -always deparsed faithfully. (PR#15179) -

    -
  • -
  • The enc2utf8() function converted NA_character_ -to "NA" in non-UTF-8 locales. (PR#15201) -

    -
  • -
  • The exclude argument to xtabs() was ignored -for "factor" arguments. -

    -
  • -
  • On Windows, work around an event-timing problem when -the RGui console was closed from the ‘X’ control and the closure -cancelled. (This would on some 64-bit systems crash R, typically -those with a slow GPU relative to the CPU.) -

    -
  • -
  • On unix Rscript will pass the r_arch setting -it was compiled with on to the R process so that the architecture -of Rscript and that of R will match unless overridden. -

    -
  • -
  • On Windows, basename(), dirname() and -file.choose() have more support for long non-ASCII file -names with 260 or more bytes when expressed in UTF-8. -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.15.2

- - - -

NEW FEATURES

- - -
    -
  • The X11() window gains an icon: the -latter may be especially useful on Ubuntu's ‘Unity’ -interface. -

    -

    The WM_CLASS should be set in circumstances where the -Window Manager failed to make use of X11 resource settings. -

    -

    (Contributed by Philip Johnson.) -

    -
  • -
  • The "Date" and "POSIXt" methods for -cut() will accept an unsorted breaks argument (as -the default method does, although this was undocumented). -(Wish of PR#14961.) -

    -
  • -
  • Reference class methods (in the methods package) that -use other methods in an indirect way (e.g., by sapply()) -must tell the code analysis to include that method. They can now -do so by invoking $usingMethods(). -

    -
  • -
  • More Polish translations are available: for the -RGui menus and for several recommended packages. -

    -
  • -
  • Multistratum MANOVA works. In fact, it seems to have done so -for years in spite of the help page claiming it did not. -

    -
  • -
  • qqline() has new optional arguments -distribution, probs and qtype, following the -example of lattice's panel.qqmathline(). -

    -
  • -
  • The handling of single quotes in the en@quot -pseudo-language has been slightly improved. Double quotes are no -longer converted. -

    -
  • -
  • New functions checkPoFiles() and checkPoFile() -have been added to the tools package to check for -consistency of format strings in translation files. -

    -
  • -
  • model.matrix(~1, ...) now also contains the same -rownames that less trivial formulae produce. (Wish of PR#14992, -changes the output of several packages.) -

    -
  • -
  • Misuse of rep() on undocumented types of objects -(e.g. calls) is now reported as an error. -

    -
  • -
  • The included LAPACK has been updated to 3.4.1, with some -patches from the current SVN sources. (Inter alia, this -resolves PR#14692.) -

    -
  • -
  • file.copy(recursive = TRUE) has some additional -checks on user error leading to attempted infinite recursion (and on -some platforms to crashing R). -

    -
  • -
  • PCRE has been updated to version 8.31, a bug-fix release. -

    -
  • -
  • The included version of liblzma has been updated to -version 5.0.4, a minor bug-fix release. -

    -
  • -
  • New function .bincode(), a ‘bare-bones’ -version of cut.default(labels = FALSE) for use in packages -with image() methods. -

    -
  • -
  • The HTML manuals now use directional single quotes. -

    -
  • -
  • maintainer() now converts embedded new lines to -spaces. It no longer gives a non-obvious error for non-installed -packages. -

    -
  • -
  • The X11() device has some protection against -being used with forked processes via package parallel. -

    -
  • -
  • Setting the environment variable R_OSX_VALGRIND (to -any value) allows R to be run under valgrind on Mac OS -10.6 and 10.7 (valgrind currently has very limited -support for 10.8), provided system() is not used (directly -or indirectly). This should not be needed for valgrind ->= 3.8.1. -

    -
  • -
  • The model.frame() method for "lm" uses -xlevels: this is safer if data was supplied or -model = FALSE was used and the levels of factors used in -the fit had been re-ordered since fitting. -

    -

    Similarly, model.frame(fm, data=<data>) copies across -the variables used for safe prediction from the fit. -

    -
  • -
  • Functions such as parLapply() in package -parallel can make use of a default cluster if one is set. -(Reported by Martin Morgan.) -

    -
  • -
  • chol(pivot = TRUE, LINPACK = FALSE) is now available -using LAPACK 3.2 subroutine DPSTRF. -

    -
  • -
  • The functions .C(), .Call(), -.External() and .Fortran() now check that they are -called with an unnamed first argument: the formal arguments were -changed from name= to .NAME= in R 2.13.0, but some -packages were still using the old name. This is currently a -warning, but will be an error in future. -

    -
  • -
  • step() no longer tries to improve a model with -AIC of -Inf (a perfect fit). -

    -
  • -
  • spline() and splinefun() gain a new method -"hyman", an implementation of Hyman's method of -constructing monotonic interpolation splines. (Based on -contributions of Simon Wood and Rob Hyndman.) -

    -
  • -
  • On Windows, the C stack size has been increased to 64MB (it -has been 10MB since the days of 32MB RAM systems). -

    -
- - - - -

PERFORMANCE IMPROVEMENTS

- - -
    -
  • array() is now implemented in C code (for speed) when -data is atomic or an unclassed list (so it is known that -as.vector(data) will have no class to be used by rep()). -

    -
  • -
  • rep() is faster and uses less memory, -substantially so in some common cases (e.g. if times is of -length one or length.out is given, and each = 1). -

    -
  • -
  • findInterval(), tabulate(), cut(), -hist() and image.default() all use .Call() -and are more efficient. -

    -
  • -
  • duplicated(), unique() and similar now -support vectors of lengths above 2^29 on 64-bit -platforms. -

    -
  • -
  • Omitting PACKAGE in .C() etc calls was -supposed to make use of the DLL from the namespace within which -the enclosing function was defined. It was less successful in -doing so than it might be, and gave no indication it had failed. -

    -

    A new search strategy is very successful and gives a warning -when it fails. In most cases this is because the entry point is -not actually provided by that package (and so PACKAGE -should be used to indicate which package is intended) but in some -the namespace does not have a DLL specified by a -useDynLib() directive so PACKAGE is required. -

    -
- - - - -

UTILITIES

- - -
    -
  • R CMD check now checks if a package can be loaded -by library(pkgname, lib.loc = "somewhere") without being on -the library search path (unless it is already installed in -.Library, when it always will be). -

    -
  • -
  • R CMD check --as-cran notes ‘hidden’ files -and directories (with names starting with a dot) that are not -needed for the operation of R CMD INSTALL or R CMD - build: such files should be excluded from the published tarball. -

    -
  • -
  • R CMD check (if checking subdirectories) checks -that the R code in any demos is ASCII and can be parsed, and -warns if not. -

    -
  • -
  • When R CMD Rd2pdf is used with ‘inputenx.sty’, -it allows further characters (mainly for Eastern European -languages) by including ‘ix-utf8enc.dfu’ (if available). -(Wish of PR#14989.) -

    -
  • -
  • R CMD build now omits several types of hidden -files/directories, including ‘inst/doc/.Rinstignore’, -‘vignettes/.Rinstignore’, (‘.Rinstignore’ should be at -top level), ‘.deps’ under ‘src’, ‘.Renviron’, -‘.Rprofile’, ‘.Rproj.user’, ‘.backups’, -‘.cvsignore’, ‘.cproject’, ‘.directory’, -‘.dropbox’, ‘.exrc’, ‘.gdb.history’, -‘.gitattributes’, ‘.gitignore’, ‘.gitmodules’, -‘.hgignore’, ‘.hgtags’, ‘.htaccess’, -‘.latex2html-init’, ‘.project’, ‘.seed’, -‘.settings’, ‘.tm_properties’ and various leftovers. -

    -
  • -
  • R CMD check now checks for .C(), -.Call(), .External() and .Fortran() calls in -other packages, and gives a warning on those found from R itself -(which are not part of the API and change without notice: many -will be changed for R 3.0.0). -

    -
- - - - -

C-LEVEL FACILITIES

- - -
    -
  • The limit for R_alloc on 64-bit platforms has been -raised to just under 32GB (from just under 16GB). -

    -
  • -
  • The misuse of .C("name", ..., PACKAGE = foo) where -foo is an arbitrary R object is now an error. -

    -

    The misuse .C("name",..., PACKAGE = "") is now warned about -in R CMD check, and will be an error in future. -

    -
- - - - -

DEPRECATED AND DEFUNCT

- - -
    -
  • Use of array() with a 0-length dim argument is -deprecated with a warning (and was contrary to the documentation). -

    -
  • -
  • Use of tapply() with a 0-length INDEX list is -deprecated with a warning. -

    -
  • -
  • Translation packages are deprecated. -

    -
  • -
  • Calling rep() or rep.int() on a pairlist is -deprecated and will give a warning. In any case, rep() -converted a pairlist to a list so you may as well do that -explicitly. -

    -
  • -
  • Entry point rcont2 is no longer part of the API, and -will move to package stats in R 3.0.0. -

    -
  • -
  • The ‘internal’ graphics device invoked by -.Call("R_GD_nullDevice", package = "grDevices") is about to -be removed: use pdf(file = NULL) instead. -

    -
  • -
  • eigen(EISPACK = TRUE), -chol(pivot = FALSE, LINPACK = TRUE), -chol2inv(LINPACK = TRUE), solve(LINPACK = TRUE) and -svd(LINPACK = TRUE) are deprecated and give a warning. -

    -

    They were provided for compatibility with R 1.7.0 (Mar 2003)! -

    -
  • -
  • The ‘internal function’ kappa.tri() has been -renamed to .kappa_tri() so it is not inadvertently called -as a method for class "tri". -

    -
  • -
  • Functions sessionData() and browseAll() in -package methods are on a help page describing them as -‘deprecated’ and are now formally deprecated. -

    -
- - - - -

PACKAGE INSTALLATION

- - -
    -
  • For a Windows or Mac OS X binary package install, -install.packages() will check if a source package is -available on the same repositories, and report if it is a later -version or there is a source package but no binary package -available. -

    -

    This check can be suppressed: see the help page. -

    -
  • -
  • install.packages(type = "both") has been enhanced. -In interactive use it will ask whether to choose the source -version of a package if the binary version is older and contains -compiled code, and also asks if source packages with no binary -version should be installed). -

    -
- - - - -

INSTALLATION

- - -
    -
  • There is a new configure option ---with-libtiff (mainly in case the system installation -needs to be avoided). -

    -
  • -
  • LAPACK 3.4.1 does use some Fortran 90 features, so -g77 no longer suffices. -

    -
  • -
  • If an external LAPACK is used, it must be version 3.2 or later. -

    -
- - - - -

BUG FIXES

- - -
    -
  • On Windows, starting Rterm via R.exe -caused Ctrl-C to misbehave. (PR#14948) -

    -
  • -
  • The tools::latexToUtf8() function missed conversions that -were contained within braces. -

    -
  • -
  • Long timezone specifications (such as a file name preceded -by :) could crash as.POSIXlt. (PR#14945) -

    -
  • -
  • R CMD build --resave-data could fail if there was no -‘data’ directory but there was an ‘R/sysdata.rda’ file. -(PR#14947) -

    -
  • -
  • is.na() misbehaved on a 0-column data frame. -(PR#14959) -

    -
  • -
  • anova.lmlist() failed if test was -supplied. (PR#14960) -

    -

    It was unable to compute Cp tests for object of class "lm" -(it assumed class "glm"). -

    -
  • -
  • The formula method for sunflowerplot() now -allows xlab and ylab to be set. (Reported by Gerrit -Eichner.) -

    -
  • -
  • The "POSIXt" and "Date" methods for hist() -could fail on Windows where adjustments to the right-hand boundary -crossed a DST transition time. -

    -
  • -
  • On Windows, the code in as.POSIXct() to handle -incorrectly specified isdst fields might have resulted in -NA being returned. -

    -
  • -
  • aov() and manova() gave spurious warning about -singular error model in the multiresponse case. -

    -
  • -
  • In ns() and bs(), specifying knots = NULL -is now equivalent to omitting it, also when df is -specified. (PR#14970) -

    -
  • -
  • sprintf() did not accept numbered arguments ending -in zero. (PR#14975) -

    -
  • -
  • rWishart() could overflow the C stack and maybe crash -the R process for dimensions of several hundreds or more. -(Reported by Michael Braun on R-sig-mac.) -

    -
  • -
  • Base package vignettes (e.g. vignette("Sweave")) were -not fully installed in builds of R from the tarball. -

    -
  • -
  • lchoose() and choose() could overflow the C -stack and crash R. -

    -
  • -
  • When given a 0-byte file and asked to keep source -references, parse() read input from stdin() -instead. -

    -
  • -
  • pdf(compress = TRUE) did not delete temporary files -it created until the end of the R session. (PR#14991) -

    -
  • -
  • logLik() did not detect the error of applying it -to a multiple-response linear model. (PR#15000) -

    -
  • -
  • file.copy(recursive = TRUE) did not always report -FALSE for a failure two or more directories deep. -

    -
  • -
  • qgeom() could return -1 for extremely small -q. (PR#14967) -

    -
  • -
  • smooth.spline() used DUP = FALSE which allowed -its compiled C code to change the function: this was masked by the -default byte-compilation. (PR#14965) -

    -
  • -
  • In Windows, the GUI preferences for foreground color were -not always respected. (Reported by Benjamin Wells.) -

    -
  • -
  • On OS X, the Quartz versions of the bitmap devices did not -respect antialias = "none". (PR#15006) -

    -
  • -
  • unique() and similar would infinite-loop if called on -a vector of length > 2^29 (but reported that the -vector was too long for 2^30 or more). -

    -
  • -
  • parallel::stopCluster() now works with MPI -clusters without snow being on the search path. -

    -
  • -
  • terms.formula() could exhaust the stack, and the -stack check did not always catch this before the segfault. -(PR#15013) -

    -
  • -
  • sort.list(method = "radix") could give incorrect -results on certain compilers (seen with clang on Mac OS -10.7 and Xcode 4.4.1). -

    -
  • -
  • backsolve(T, b) gave incorrect results when -nrows(b) > ncols(T) and b had more than one column. -

    -

    It could segfault or give nonsense if k was specified as -more than ncols(T). -

    -
  • -
  • smooth.spline() did not check that a specified -numeric spar was of length 1, and gave corrupt results if -it was of length 0. -

    -
  • -
  • Protection added to do_system. (PR#15025) -

    -
  • -
  • Printing of vectors with names > 1000 characters now works -correctly rather than truncating. (PR#15028) -

    -
  • -
  • qr() for a complex matrix did not pivot the column names. -

    -
  • -
  • --with-blas='-framework vecLib' now also works on OS X 10.8. -

    -
  • -
  • R CMD check no longer fails with an error if -a ‘DESCRIPTION’ file incorrectly contains a blank line. -(Reported by Bill Dunlap.) -

    -
  • -
  • install.packages(type = "both") could call -chooseCRANmirror() twice. -

    -
  • -
  • lm.wfit() could segfault in R 2.15.1 if all the -weights were zero. (PR#15044) -

    -
  • -
  • A malformed package name could cause R CMD INSTALL -to write outside the target library. -

    -
  • -
  • Some of the quality control functions -(e.g. tools::checkFF()) were wrongly identifying the source -of S4 methods in a package and so not checking them. -

    -
  • -
  • The default type of display by browseEnv() when using -R.app on Mac OS X has been incorrect for a long time. -

    -
  • -
  • The implementation of importMethodsFrom in a -NAMESPACE file could be confused and fail to find generics -when importing from multiple packages (reported and fixed by -Michael Lawrence). -

    -
  • -
  • The detection of the C stack direction is better protected -against compiler optimization. (PR#15011) -

    -
  • -
  • Long custom line types would sometimes segfault on the -cairographics-based devices. (PR#15055) -

    -
  • -
  • tools::checkPoFile() unprotected too early in its C -code and so segfaulted from time to time. -

    -
  • -
  • The Fortran code underlying nlminb() could -infinite-loop if any of the input functions returned NA or -NaN. This is now an error for the gradient or Hessian, and -a warning for the function (with the value replaced by -Inf). (In part, PR#15052.) -

    -
  • -
  • The code for creating coerce() methods could -generate false notes about ambiguous selection; the notes have -been suppressed for this function. -

    -
  • -
  • arima.sim() could give too long an output in some -corner cases (in part, PR#15068). -

    -
  • -
  • anova.glm() with test = "Rao" didn't work when -models included an offset. (Reported by Søren Feodor Nielsen.) -

    -
  • -
  • as.data.frame.matrix() could return invalid data -frame with no row.names attribute for 0-row matrix. (Reported -by Hervé Pagès.) -

    -
  • -
  • Compilation with the vecLib or Accelerate -frameworks on OS X without using that also for LAPACK is more -likely to be successful. -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.15.1

- - - -

NEW FEATURES

- - -
    -
  • source() now uses withVisible() rather than -.Internal(eval.with.vis). This sometimes alters tracebacks -slightly. -

    -
  • -
  • install.packages("pkg_version.tgz") on Mac OS X now -has sanity checks that this is actually a binary package (as -people have tried it with incorrectly named source packages). -

    -
  • -
  • splineDesign() and spline.des() in package -splines have a new option sparse which can be used -for efficient construction of a sparse B-spline design matrix -(via Matrix). -

    -
  • -
  • norm() now allows type = "2" (the -‘spectral’ or 2-norm) as well, mainly for didactical -completeness. -

    -
  • -
  • pmin() and pmax()) now also work when one of -the inputs is of length zero and others are not, returning a -zero-length vector, analogously to, say, +. -

    -
  • -
  • colorRamp() (and hence colorRampPalette()) now -also works for the boundary case of just one color when the ramp is -flat. -

    -
  • -
  • .C() gains some protection against the misuse of -character vector arguments. (An all too common error is to pass -character(N), which initializes the elements to "", -and then attempt to edit the strings in-place, sometimes forgetting -to terminate them.) -

    -
  • -
  • Calls to the new function globalVariables() in -package utils declare that functions and other objects in a -package should be treated as globally defined, so that CMD - check will not note them. -

    -
  • -
  • print(packageDescription(*)) trims the Collate -field by default. -

    -
  • -
  • The included copy of zlib has been updated to version -1.2.7. -

    -
  • -
  • A new option "show.error.locations" has been added. -When set to TRUE, error messages will contain the -location of the most recent call containing source reference -information. (Other values are supported as well; see -?options.) -

    -
  • -
  • The NA warning messages from e.g. pchisq() now report -the call to the closure and not that of the .Internal. -

    -
  • -
  • Added Polish translations by Åukasz Daniel. -

    -
- - - - -

PERFORMANCE IMPROVEMENTS

- - -
    -
  • In package parallel, makeForkCluster() and the -multicore-based functions use native byte-order for serialization -(deferred from 2.15.0). -

    -
  • -
  • lm.fit(), lm.wfit(), glm.fit() and -lsfit() do less copying of objects, mainly by using -.Call() rather than .Fortran(). -

    -
  • -
  • .C() and .Fortran() do less copying: arguments -which are raw, logical, integer, real or complex vectors and are -unnamed are not copied before the call, and (named or not) are not -copied after the call. Lists are no longer copied (they are -supposed to be used read-only in the C code). -

    -
  • -
  • tabulate() makes use of .C(DUP = FALSE) and -hence does not copy bin. (Suggested by Tim Hesterberg.) -It also avoids making a copy of a factor argument bin. -

    -
  • -
  • Other functions (often or always) doing less copying include -cut(), dist(), the complex case of eigen(), -hclust(), image(), kmeans(), loess(), -stl() and svd(LINPACK = TRUE). -

    -
  • -
  • There is less copying when using primitive replacement -functions such as names(), attr() and -attributes(). -

    -
- - - - -

DEPRECATED AND DEFUNCT

- - -
    -
  • The converters for use with .C() (see -?getCConverterDescriptions) are deprecated: use the -.Call() interface instead. There are no known examples -(they were never fully documented). -

    -
- - - - -

UTILITIES

- - -
    -
  • For R CMD check, a few people have reported -problems with junctions on Windows (although they were tested on -Windows 7, XP and Server 2008 machines and it is unknown under -what circumstances the problems occur). Setting the environment -variable R_WIN_NO_JUNCTIONS to a non-empty value (e.g. in -‘~/.R/check.Renviron’) will force copies to be used instead. -

    -
- - - - -

INSTALLATION

- - -
    -
  • R CMD INSTALL with _R_CHECK_INSTALL_DEPENDS_ -set to a true value (as done by R CMD check --as-cran) -now restricts the packages available when lazy-loading as well -as when test-loading (since packages such as ETLUtils -and agsemisc had top-level calls to library() -for undeclared packages). -

    -

    This check is now also available on Windows. -

    -
- - - - -

C-LEVEL FACILITIES

- - -
    -
  • C entry points mkChar and mkCharCE now check -that the length of the string they are passed does not exceed -2^31-1 bytes: they used to overflow with -unpredictable consequences. -

    -
  • -
  • C entry points R_GetCurrentSrcref and -R_GetSrcFilename have been added to the API to allow -debuggers access to the source references on the stack. -

    -
- - - - -

WINDOWS-SPECIFIC CHANGES

- - -
    -
  • Windows-specific changes will now be announced in this file -(‘NEWS’). Changes up and including R 2.15.0 remain in the -‘CHANGES’ file. -

    -
  • -
  • There are two new environment variables which -control the defaults for command-line options. -

    -

    If R_WIN_INTERNET2 is set to a non-empty value, it is as if ---internet2 was used. -

    -

    If R_MAX_MEM_SIZE is set, it gives the default memory limit -if --max-mem-size is not specified: invalid values being -ignored. -

    -
- - - - -

BUG FIXES

- - -
    -
  • lsfit() lost the names from the residuals. -

    -
  • -
  • More cases in which merge() could create a data frame -with duplicate column names now give warnings. Cases where -names specified in by match multiple columns are errors. -

    -
  • -
  • Nonsense uses such as seq(1:50, by = 5) (from package -plotrix) and seq.int(1:50, by = 5) are now errors. -

    -
  • -
  • The residuals in the 5-number summary printed by -summary() on an "lm" object are now explicitly -labelled as weighted residuals when non-constant weights are -present. (Wish of PR#14840.) -

    -
  • -
  • tracemem() reported that all objects were copied -by .C() or .Fortran() whereas only some object types -were ever copied. -

    -

    It also reported and marked as copies some transformations -such as rexp(n, x): it no longer does so. -

    -
  • -
  • The plot() method for class "stepfun" only -used the optional xval argument to compute xlim and -not the points at which to plot (as documented). (PR#14864) -

    -
  • -
  • Names containing characters which need to be escaped were -not deparsed properly. (PR#14846) -

    -
  • -
  • Trying to update (recommended) packages in -‘R_HOME/library’ without write access is now dealt with more -gracefully. Further, such package updates may be skipped (with a -warning), when a newer installed version is already going to be -used from .libPaths(). (PR#14866) -

    -
  • -
  • hclust() is now fast again (as up to end of 2003), -with a different fix for the "median"/"centroid" problem. (PR#4195). -

    -
  • -
  • get_all_vars() failed when the data came entirely -from vectors in the global environment. (PR#14847) -

    -
  • -
  • R CMD check with _R_CHECK_NO_RECOMMENDED_ -set to a true value (as done by the --as-cran option) -could issue false errors if there was an indirect dependency -on a recommended package. -

    -
  • -
  • formatC() uses the C entry point str_signif -which could write beyond the length allocated for the output string. -

    -
  • -
  • Missing default argument added to implicit S4 generic for -backsolve(). (PR#14883) -

    -
  • -
  • Some bugs have been fixed in handling load actions that -could fail to export assigned items or generate spurious warnings -in CMD check on loading. -

    -
  • -
  • For tiff(type = "windows"), the numbering of per-page -files except the last was off by one. -

    -
  • -
  • On Windows, loading package stats (which is done for -a default session) would switch line endings on ‘stdout’ -and ‘stderr’ from CRLF to LF. This affected -Rterm and R CMD BATCH. -

    -
  • -
  • On Windows, the compatibility function x11() had -not kept up with changes to windows(), and issued -warnings about bad parameters. (PR#14880) -

    -
  • -
  • On Windows, the Sys.glob() function did not handle -UNC paths as it was designed to try to do. (PR#14884) -

    -
  • -
  • In package parallel, clusterApply() and similar -failed to handle a (pretty pointless) length-1 argument. (PR#14898) -

    -
  • -
  • Quartz Cocoa display reacted asynchronously to -dev.flush() which means that the redraw could be performed -after the plot has been already modified by subsequent code. The -redraw is now done synchronously in dev.flush() to allow -animations without sleep cycles. -

    -
  • -
  • Source locations reported in traceback() were -incorrect when byte-compiled code was on the stack. -

    -
  • -
  • plogis(x, lower = FALSE, log.p = TRUE) no longer -underflows early for large x (e.g. 800). -

    -
  • -
  • ?Arithmetic's “1 ^ y and y ^ 0 -are 1, always” now also applies for integer -vectors y. -

    -
  • -
  • X11-based pixmap devices like png(type = "Xlib") were -trying to set the cursor style, which triggered some warnings and -hangs. -

    -
  • -
  • Code executed by the built-in HTTP server no longer allows -other HTTP clients to re-enter R until the current worker -evaluation finishes, to prevent cascades. -

    -
  • -
  • The plot() and Axis() methods for class -"table" now respect graphical parameters such as -cex.axis. (Reported by Martin Becker.) -

    -
  • -
  • Under some circumstances package.skeleton() would -give out progress reports that could not be translated and so were -displayed by question marks. Now they are always in English. -(This was seen for CJK locales on Windows, but may have occurred -elsewhere.) -

    -
  • -
  • The evaluator now keeps track of source references outside -of functions, e.g. when source() executes a script. -

    -
  • -
  • The replacement method for window() now works -correctly for multiple time series of class "mts". -(PR#14925) -

    -
  • -
  • is.unsorted() gave incorrect results on non-atomic -objects such as data frames. (Reported by Matthew Dowle.) -

    -
  • -
  • The value returned by tools::psnice() for invalid -pid values was not always NA as documented. -

    -
  • -
  • Closing an X11() window while locator() was -active could abort the R process. -

    -
  • -
  • getMethod(f, sig) produced an incorrect error message -in some cases when f was not a string). -

    -
  • -
  • Using a string as a “call” in an error condition -with options(showErrorCalls=TRUE) could cause a segfault. -(PR#14931) -

    -
  • -
  • The string "infinity" allowed by C99 was not accepted -as a numerical string value by e.g. scan() and -as.numeric(). (PR#14933) -

    -
  • -
  • In legend(), setting some entries of lwd to -NA was inconsistent (depending on the graphics device) in -whether it would suppress those lines; now it consistently does -so. (PR#14926) -

    -
  • -
  • by() failed for a zero-row data frame. (Reported by -Weiqiang Qian.) -

    -
  • -
  • The Yates' correction in chisq.test() could be bigger -than the terms it corrected, previously leading to an infinite -test statistic in some corner cases which are now reported as -NaN. -

    -
  • -
  • xgettext() and related functions sometimes returned -items that were not strings for translation. (PR#14935) -

    -
  • -
  • plot(<lm>, which=5) now correctly labels the factor -level combinations for the special case where all -h[i,i] are the same. (PR#14837) -

    -
  • -
  • Sys.glob() caused a segfault if the first element of -path was NA_character. (PR#14990) -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.15.0

- - - -

SIGNIFICANT USER-VISIBLE CHANGES

- - -
    -
  • The behaviour of unlink(recursive = TRUE) for a -symbolic link to a directory has changed: it now removes the link -rather than the directory contents (just as rm -r does). -

    -

    On Windows it no longer follows reparse points (including -junctions and symbolic links). -

    -
- - - - -

NEW FEATURES

- - -
    -
  • Environment variable RD2DVI_INPUTENC has been renamed -to RD2PDF_INPUTENC. -

    -
  • -
  • .Deprecated() becomes a bit more flexible, getting an -old argument. -

    -
  • -
  • Even data-only packages without R code need a namespace and -so may need to be installed under R 2.14.0 or later. -

    -
  • -
  • assignInNamespace() has further restrictions on use -apart from at top-level, as its help page has warned. -Expect it to be disabled from programmatic use in the future. -

    -
  • -
  • system() and system2() when capturing output -report a non-zero status in the new "status" attribute. -

    -
  • -
  • kronecker() now has an S4 generic in package -methods on which packages can set methods. It will be -invoked by X %x% Y if either X or Y is an S4 -object. -

    -
  • -
  • pdf() accepts forms like file = "|lpr" in the -same way as postscript(). -

    -
  • -
  • pdf() accepts file = NULL. -This means that the device does NOT create a PDF file -(but it can still be queried, e.g., for font metric info). -

    -
  • -
  • format() (and hence print()) on -"bibentry" objects now uses options("width") to -set the output width. -

    -
  • -
  • legend() gains a text.font argument. (Suggested -by Tim Paine, PR#14719.) -

    -
  • -
  • nchar() and nzchar() no longer accept factors -(as integer vectors). (Wish of PR#6899.) -

    -
  • -
  • summary() behaves slightly differently (or more -precisely, its print() method does). For numeric inputs, the -number of NAs is printed as an integer and not a real. For dates -and datetimes, the number of NAs is included in the printed output -(the latter being the wish of PR#14720). -

    -

    The "data.frame" method is more consistent with the default -method: in particular it now applies zapsmall() to -numeric/complex summaries. -

    -
  • -
  • The number of items retained with options(warn = 0) -can be set by options(nwarnings=). -

    -
  • -
  • There is a new function assignInMyNamespace() which -uses the namespace of the function it is called from. -

    -
  • -
  • attach() allows the default name for an attached file -to be overridden. -

    -
  • -
  • bxp(), the work horse of boxplot(), now uses a -more sensible default xlim in the case where at is -specified differently from 1:n, see the discussion on R-devel, -https://stat.ethz.ch/pipermail/r-devel/2011-November/062586.html. -

    -
  • -
  • New function paste0(), an efficient version of -paste(*, sep=""), to be used in many places for more -concise (and slightly more efficient) code. -

    -
  • -
  • Function setClass() in package methods now -returns, invisibly, a generator function for the new class, -slightly preferred to calling new(), as explained on the -setClass help page. -

    -
  • -
  • The "dendrogram" method of str() now takes -its default for last.str from option str.dendrogram.last. -

    -
  • -
  • New simple fitted() method for "kmeans" objects. -

    -
  • -
  • The traceback() function can now be called with -an integer argument, to display a current stack trace. (Wish of -PR#14770.) -

    -
  • -
  • setGeneric() calls can be simplified when creating -a new generic function by supplying the default method as the -def argument. See ?setGeneric. -

    -
  • -
  • serialize() has a new option xdr = FALSE which -will use the native byte-order for binary serializations. In -scenarios where only little-endian machines are involved (these -days, close to universal) and (un)serialization takes an -appreciable amount of time this may speed up noticeably -transferring data between systems. -

    -
  • -
  • The internal (un)serialization code is faster for long -vectors, particularly with XDR on some platforms. (Based on a -suggested patch by Michael Spiegel.) - -

    -
  • -
  • For consistency, circles with zero radius are omitted by -points() and grid.circle(). Previously this was -device-dependent, but they were usually invisible. -

    -
  • -
  • NROW(x) and NCOL(x) now work whenever -dim(x) looks appropriate, e.g., also for more generalized -matrices. -

    -
  • -
  • PCRE has been updated to version 8.30. -

    -
  • -
  • The internal R_Srcref variable is now updated -before the browser stops on entering a function. (Suggestion of -PR#14818.) -

    -
  • -
  • There are ‘bare-bones’ functions .colSums(), -.rowSums(), .colMeans() and .rowMeans() for -use in programming where ultimate speed is required. -

    -
  • -
  • The formerly internal function -.package_dependencies() from package tools for -calculating (recursive) (reverse) dependencies on package databases -has been renamed to package_dependencies() and is now -exported. -

    -
  • -
  • There is a new function optimHess() to compute the -(approximate) Hessian for an optim() solution if -hessian = TRUE was forgotten. -

    -
  • -
  • .filled.contour() is a ‘bare-bones’ function to -add a filled-contour rectangular plot to an already prepared plot -region. -

    -
  • -
  • The stepping in debugging and single-step browsing modes has -changed slightly: now left braces at the start of the body are -stepped over for if statements as well as for for and -while statements. (Wish of PR#14814.) -

    -
  • -
  • library() no longer warns about a conflict with a -function from package:base if the function has the same -code as the base one but with a different environment. (An -example is Matrix::det().) -

    -
  • -
  • When deparsing very large language objects, -as.character() now inserts newlines after each line of -approximately 500 bytes, rather than truncating to the first -line. -

    -
  • -
  • New function rWishart() generates Wishart-distributed -random matrices. -

    -
  • -
  • Packages may now specify actions to be taken when the -package is loaded (setLoadActions()). -

    -
  • -
  • options(max.print = Inf) and similar now give an -error (instead of warnings later). -

    -
  • -
  • The "difftime" replacement method of units -tries harder to preserve other attributes of the argument. (Wish -of PR#14839.) -

    -
  • -
  • poly(raw = TRUE) no longer requires more unique -points than the degree. (Requested by John Fox.) -

    -
- - - - -

PACKAGE parallel

- - -
    -
  • There is a new function mcmapply(), a parallel version -of mapply(), and a wrapper mcMap(), a parallel -version of Map(). -

    -
  • -
  • A default cluster can be registered by the new function -setDefaultCluster(): this will be used by default in -functions such as parLapply(). -

    -
  • -
  • clusterMap() has a new argument .scheduling to -allow the use of load-balancing. -

    -
  • -
  • There are new load-balancing functions parLapplyLB() -and parSapplyLB(). -

    -
  • -
  • makePSOCKCluster() has a new option useXDR = - FALSE which can be used to avoid byte-shuffling for -serialization when all the nodes are known to be little-endian (or -all big-endian). -

    -
- - - - -

PACKAGE INSTALLATION

- - -
    -
  • Non-ASCII vignettes without a declared encoding are no -longer accepted. -

    -
  • -
  • C/C++ code in packages is now compiled with -NDEBUG -to mitigate against the C/C++ function assert being called -in production use. Developers can turn this off during package -development with PKG_CPPFLAGS = -UNDEBUG. -

    -
  • -
  • R CMD INSTALL has a new option --dsym -which on Mac OS X (Darwin) dumps the symbols alongside the -‘.so’ file: this is helpful when debugging with -valgrind (and especially when installing packages into -‘R.framework’). [This can also be enabled by setting the -undocumented environment variable PKG_MAKE_DSYM, since R -2.12.0.] -

    -
  • -
  • R CMD INSTALL will test loading under all installed -sub-architectures even for packages without compiled code, unless -the flag --no-multiarch is used. (Pure R packages can -do things which are architecture-dependent: in the case which -prompted this, looking for an icon in a Windows R executable.) -

    -
  • -
  • There is a new option install.packages(type = "both") -which tries source packages if binary packages are not available, -on those platforms where the latter is the default. -

    -
  • -
  • The meaning of install.packages(dependencies = TRUE) -has changed: it now means to install the essential dependencies of -the named packages plus the Suggests, but only the -essential dependencies of dependencies. To get the previous -behaviour, specify dependencies as a character vector. -

    -
  • -
  • R CMD INSTALL --merge-multiarch is now supported -on OS X and other Unix-alikes using multiple sub-architectures. -

    -
  • -
  • R CMD INSTALL --libs-only now by default does a -test load on Unix-alikes as well as on Windows: suppress with ---no-test-load. -

    -
- - - - -

UTILITIES

- - -
    -
  • R CMD check now gives a warning rather than a -note if it finds inefficiently compressed datasets. With -bzip2 and xz compression having been -available since R 2.10.0, it only exceptionally makes sense to -not use them. -

    -

    The environment variable _R_CHECK_COMPACT_DATA2_ is -no longer consulted: the check is always done if -_R_CHECK_COMPACT_DATA_ has a true value (its default). -

    -
  • -
  • Where multiple sub-architectures are to be tested, -R CMD check now runs the examples and tests for all the -sub-architectures even if one fails. -

    -
  • -
  • R CMD check can optionally report timings on -various parts of the check: this is controlled by environment -variable _R_CHECK_TIMINGS_ documented in ‘Writing R -Extensions’. Timings (in the style of R CMD BATCH) are -given at the foot of the output files from running each test and -the R code in each vignette. -

    -
  • -
  • There are new options for more rigorous testing by -R CMD check selected by environment variables – see -the ‘Writing R Extensions’ manual. -

    -
  • -
  • R CMD check now warns (rather than notes) on -undeclared use of other packages in examples and tests: -increasingly people are using the metadata in the -‘DESCRIPTION’ file to compute information about packages, -for example reverse dependencies. -

    -
  • -
  • The defaults for some of the options in R CMD - check (described in the ‘R Internals’ manual) have -changed: checks for unsafe and .Internal() calls and -for partial matching of arguments in R function calls are now -done by default. -

    -
  • -
  • R CMD check has more comprehensive facilities for -checking compiled code and so gives fewer reports on entry points -linked into ‘.so’/‘.dll’ files from libraries -(including C++ and Fortran runtimes). -

    -

    Checking compiled code is now done on FreeBSD (as well as the -existing supported platforms of Linux, Mac OS X, Solaris and -Windows). -

    -
  • -
  • R CMD build has more options for ---compact-vignettes: see R CMD build --help. -

    -
  • -
  • R CMD build has a new option --md5 to -add an ‘MD5’ file (as done by CRAN): this is used by R - CMD INSTALL to check the integrity of the distribution. -

    -

    If this option is not specified, any existing (and probably -stale) ‘MD5’ file is removed. -

    -
- - - - -

DEPRECATED AND DEFUNCT

- - -
    -
  • R CMD Rd2dvi is now defunct: use R CMD Rd2pdf. -

    -
  • -
  • Options such --max-nsize, --max-vsize and -the function mem.limits() are now defunct. (Options ---min-nsize and --min-vsize remain available.) -

    -
  • -
  • Use of library.dynam() without specifying all the -first three arguments is now disallowed. -

    -

    Use of an argument chname in library.dynam() -including the extension ‘.so’ or ‘.dll’ (which was never -allowed according to the help page) is defunct. This also applies -to library.dynam.unload() and to useDynLib -directives in ‘NAMESPACE’ files. -

    -
  • -
  • The internal functions .readRDS() and -.saveRDS() are now defunct. -

    -
  • -
  • The off-line help() types "postscript" and -"ps" are defunct. -

    -
  • -
  • Sys.putenv(), replaced and deprecated in R 2.5.0, is -finally removed. -

    -
  • -
  • Some functions/objects which have been defunct for five or -more years have been removed completely. These include -.Alias(), La.chol(), La.chol2inv(), -La.eigen(), Machine(), Platform(), -Version, codes(), delay(), -format.char(), getenv(), httpclient(), -loadURL(), machine(), parse.dcf(), -printNoClass(), provide(), read.table.url(), -restart(), scan.url(), symbol.C(), -symbol.For() and unix(). -

    -
  • -
  • The ENCODING argument to .C() is deprecated. -It was intended to smooth the transition to multi-byte character -strings, but can be replaced by the use of iconv() in the -rare cases where it is still needed. -

    -
- - - - -

INSTALLATION

- - -
    -
  • Building with a positive value of ---with-valgrind-instrumentation now also instruments logical, -complex and raw vectors. -

    -
- - - - -

C-LEVEL FACILITIES

- - -
    -
  • Passing R objects other than atomic vectors, functions, -lists and environments to .C() is now deprecated and will -give a warning. Most cases (especially NULL) are actually -coding errors. NULL will be disallowed in future. -

    -

    .C() now passes a pairlist as a SEXP to the compiled -code. This is as was documented, but pairlists were in reality -handled differently as a legacy from the early days of R. -

    -
  • -
  • call_R and call_S are deprecated. They still -exist in the headers and as entry points, but are no longer -documented and should not be used for new code. -

    -
- - - - -

BUG FIXES

- - -
    -
  • str(x, width) now obeys its width -argument also for function headers and other objects x -where deparse() is applied. -

    -
  • -
  • The convention for x %/% 0L for integer-mode x -has been changed from 0L to NA_integer_. -(PR#14754) -

    -
  • -
  • The exportMethods directive in a ‘NAMESPACE’ -file now exports S4 generics as necessary, as the extensions -manual said it does. The manual has also been updated to be a -little more informative on this point. -

    -

    It is now required that there is an S4 generic (imported or -created in the package) when methods are to be exported. -

    -
  • -
  • Reference methods cannot safely use non-exported entries -in the namespace. We now do not do so, and warn in the documentation. -

    -
  • -
  • The namespace import code was warning when identical -S4 generic functions were imported more than once, but should -not (reported by Brian Ripley, then Martin Morgan). -

    -
  • -
  • merge() is no longer allowed (in some ways) to create -a data frame with duplicate column names (which confused -PR#14786). -

    -
  • -
  • Fixes for rendering raster images on X11 and Windows devices -when the x-axis or y-axis scale is reversed. -

    -
  • -
  • getAnywhere() found S3 methods as seen from the -utils namespace and not from the environment from which it -was called. -

    -
  • -
  • selectMethod(f, sig) would not return inherited group -methods when caching was off (as it is by default). -

    -
  • -
  • dev.copy2pdf(out.type = "cairo") gave an error. -(PR#14827) -

    -
  • -
  • Virtual classes (e.g., class unions) had a NULL -prototype even if that was not a legal subclass. See -?setClassUnion. -

    -
  • -
  • The C prototypes for zdotc and zdotu in -‘R_ext/BLAS.h’ have been changed to the more modern style -rather than that used by f2c. (Patch by Berwin Turlach.) -

    -
  • -
  • isGeneric() produced an error for primitives that -can not have methods. -

    -
  • -
  • .C() or .Fortran() had a lack-of-protection -error if the registration information resulted in an argument -being coerced to another type. -

    -
  • -
  • boxplot(x=x, at=at) with non finite elements in x -and non integer at could not generate a warning but failed. -

    -
  • -
  • heatmap(x, symm=TRUE, RowSideColors=*) no longer -draws the colors in reversed order. -

    -
  • -
  • predict(<ar>) was incorrect in the multivariate case, -for p >= 2. -

    -
  • -
  • print(x, max=m) is now consistent when x is a -"Date"; also the “reached ... max.print ..” messages -are now consistently using single brackets. -

    -
  • -
  • Closed the <li> tag in pages generated by - Rd2HTML(). (PR#14841) -

    -
  • -
  • Axis tick marks could go out of range when a log scale was -used. (PR#14833) -

    -
  • -
  • Signature objects in methods were not allocated as S4 -objects (caused a problem with trace() reported by Martin Morgan). -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.14.2

- - - -

NEW FEATURES

- - -
    -
  • The internal untar() (as used by default by -R CMD INSTALL) now knows about some pax -headers which bsdtar (e.g., the default tar for -Mac OS >= 10.6) can incorrectly include in tar files, -and will skip them with a warning. -

    -
  • -
  • PCRE has been upgraded to version 8.21: as well as bug fixes -and greater Perl compatibility, this adds a JIT pattern compiler, -about which PCRE's news says -‘large performance benefits can be had in many situations’. -This is supported on most but not all R platforms. -

    -
  • -
  • Function compactPDF() in package tools now -takes the default for argument gs_quality from environment -variable GS_QUALITY: there is a new value "none", the -ultimate default, which prevents GhostScript being used in -preference to qpdf just because environment variable -R_GSCMD is set. If R_GSCMD is unset or set to -"", the function will try to find a suitable GhostScript -executable. -

    -
  • -
  • The included version of zlib has been updated to 1.2.6. -

    -
  • -
  • For consistency with the logLik() method, -nobs() for "nls" files now excludes observations -with zero weight. (Reported by Berwin Turlach.) -

    -
- - - - -

UTILITIES

- - -
    -
  • R CMD check now reports by default on licenses not -according to the description in ‘Writing R Extensions’. -

    -
  • -
  • R CMD check has a new option --as-cran to -turn on most of the customizations that CRAN uses for its incoming -checks. -

    -
- - - - -

PACKAGE INSTALLATION

- - -
    -
  • R CMD INSTALL will now no longer install certain -file types from ‘inst/doc’: these are almost certainly -mistakes and for some packages are wasting a lot of space. These -are ‘Makefile’, files generated by running LaTeX, and unless -the package uses a ‘vignettes’ directory, PostScript and -image bitmap files. -

    -

    Note that only PDF vignettes have ever been supported: some of -these files come from DVI/PS output from the Sweave defaults prior -to R 2.13.0. -

    -
- - - - -

BUG FIXES

- - -
    -
  • R configured with --disable-openmp would mistakenly -set HAVE_OPENMP (internal) and SUPPORT_OPENMP (in -‘Rconfig.h’) even though no OpenMP flags were populated. -

    -
  • -
  • The getS3method() implementation had an old -computation to find an S4 default method. -

    -
  • -
  • readLines() could overflow a buffer if the last line -of the file was not terminated. (PR#14766) -

    -
  • -
  • R CMD check could miss undocumented S4 objects in -packages which used S4 classes but did not Depends: methods -in their ‘DESCRIPTION’ file. -

    -
  • -
  • The HTML Help Search page had malformed links. -(PR#14769) -

    -
  • -
  • A couple of instances of lack of protection of SEXPs -have been squashed. (PR#14772, PR#14773) -

    -
  • -
  • image(x, useRaster=TRUE) misbehaved on single-column -x. (PR#14774) -

    -
  • -
  • Negative values for options("max.print") or the max -argument to print.default() caused crashes. Now the former -are ignored and the latter trigger an error. (PR#14779) -

    -
  • -
  • The text of a function body containing more than 4096 -bytes was not properly saved by the parser when entered -at the console. -

    -
  • -
  • Forgetting the #endif tag in an Rd file could cause -the parser to go into a loop. (Reported by Hans-Jorg Bibiko.) -

    -
  • -
  • str(*, ....., strict.width="cut") now also obeys -list.len = n. (Reported by Sören Vogel.) -

    -
  • -
  • Printing of arrays did not have enough protection (C level), -e.g., in the context of capture.output(). (Reported by -Hervé Pagès and Martin Morgan.) -

    -
  • -
  • pdf(file = NULL) would produce a spurious file named -‘NA’. (PR#14808) -

    -
  • -
  • list2env() did not check the type of its envir -argument. (PR#14807) -

    -
  • -
  • svg() could segfault if called with a non-existent -file path. (PR#14790) -

    -
  • -
  • make install can install to a path containing -+ characters. (PR#14798) -

    -
  • -
  • The edit() function did not respect the -options("keep.source") setting. (Reported by Cleridy -Lennert.) -

    -
  • -
  • predict.lm(*, type="terms", terms=*, se.fit=TRUE) did -not work. (PR#14817) -

    -
  • -
  • There is a partial workaround for errors in the TRE -regular-expressions engine with named classes and repeat counts of -at least 2 in a MBCS locale (PR#14408): these are avoided when -TRE is in 8-bit mode (e.g. for useBytes = TRUE and when all -the data are ASCII). -

    -
  • -
  • The C function R_ReplDLLdo1() did not call top-level -handlers. -

    -
  • -
  • The Quartz device was unable to detect window sessions on -Mac OS X 10.7 (Lion) and higher and thus it was not used as the -default device on the console. Since Lion any application can use -window sessions, so Quartz will now be the default device if the -user's window session is active and R is not run via -ssh which is at least close to the behavior in prior OS -X versions. -

    -
  • -
  • mclapply() would fail in code assembling the translated -error message if some (but not all) cores encountered an error. -

    -
  • -
  • format.POSIXlt(x) raised an arithmetic exception when -x was an invalid object of class "POSIXlt" and parts -were empty. -

    -
  • -
  • installed.packages() has some more protection against -package installs going on in parallel. -

    -
  • -
  • .Primitive() could be mis-used to call -.Internal() entry points. -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.14.1

- - - -

NEW FEATURES

- - -
    -
  • parallel::detectCores() is now able to find the -number of physical cores (rather than CPUs) on Sparc Solaris. -

    -

    It can also do so on most versions of Windows; however the default -remains detectCores(logical = TRUE) on that platform. -

    -
  • -
  • Reference classes now keep a record of which fields are -locked. $lock() with no arguments returns the names -of the locked fields. -

    -
  • -
  • HoltWinters() reports a warning rather than an error -for some optimization failures (where the answer might be a -reasonable one). -

    -
  • -
  • tools::dependsOnPkg() now accepts the shorthand -dependencies = "all". -

    -
  • -
  • parallel::clusterExport() now allows specification of -an environment from which to export. -

    -
  • -
  • The quartz() device now does tilde expansion on its -file argument. -

    -
  • -
  • tempfile() on a Unix-alike now takes the process ID -into account. This is needed with multicore (and as part of -parallel) because the parent and all the children share a -session temporary directory, and they can share the C random -number stream used to produce the unique part. Further, two -children can call tempfile() simultaneously. -

    -
  • -
  • Option print in Sweave's RweaveLatex() driver -now emulates auto-printing rather than printing (which can differ -for an S4 object by calling show() rather than -print()). -

    -
  • -
  • filled.contour() now accepts infinite values: -previously it might have generated invalid graphics files -(e.g. containing NaN values). -

    -
- - - - -

INSTALLATION

- - -
    -
  • On 64-bit Linux systems, configure now only sets -LIBnn to lib64 if ‘/usr/lib64’ exists. This -may obviate setting LIBnn explicitly on Debian-derived -systems. -

    -

    It is still necessary to set LIBnn = lib (or -lib32) for 32-bit builds of R on a 64-bit OS on those Linux -distributions capable for supporting that concept. -

    -
  • -
  • configure looks for ‘inconsolata.sty’, and if -not found adjusts the default R_RD4PDF to not use it (with a -warning, since it is needed for high-quality rendering of manuals). -

    -
- - - - -

PACKAGE INSTALLATION

- - -
    -
  • R CMD INSTALL will now do a test load for all -sub-architectures for which code was compiled (rather than just -the primary sub-architecture). -

    -
- - - - -

UTILITIES

- - -
    -
  • When checking examples under more than one sub-architecture, -R CMD check now uses a separate directory -‘examples_arch’ for each sub-architecture, and leaves the -output in file ‘pkgname-Ex_arch.Rout’. Some packages -expect their examples to be run in a clean directory .... -

    -
- - - - -

BUG FIXES

- - -
    -
  • stack() now gives an error if no vector column is -selected, rather than returning a 1-column data frame (contrary to -its documentation). -

    -
  • -
  • summary.mlm() did not handle objects where the -formula had been specified by an expression. (Reported by -Helios de Rosario Martinez). -

    -
  • -
  • tools::deparseLatex(dropBraces=TRUE) could drop -text as well as braces. -

    -
  • -
  • colormodel = "grey" (new in R 2.14.0)) -did not always work in postscript() and pdf(). -

    -
  • -
  • file.append() could return TRUE for failures. -(PR#14727) -

    -
  • -
  • gzcon() connections are no longer subject to garbage -collection: it was possible for this to happen when unintended -(e.g. when calling load()). -

    -
  • -
  • nobs() does not count zero-weight observations for -glm() fits, for consistency with lm(). This affects -the BIC() values reported for such glm() fits. -(Spotted by Bill Dunlap.) -

    -
  • -
  • options(warn = 0) failed to end a (C-level) context -with more than 50 accumulated warnings. (Spotted by Jeffrey -Horner.) -

    -
  • -
  • The internal plot.default() code did not do sanity -checks on a cex argument, so invalid input could cause -problems. (Reported by Ben Bolker.) -

    -
  • -
  • anyDuplicated(<array>, MARGIN=0) no longer fails. -(Reported by Hervé Pagès.) -

    -
  • -
  • read.dcf() removes trailing blanks: unfortunately -on some platforms this included \xa0 (non-breaking space) -which is the trailing byte of a UTF-8 character. It now only -considers ASCII space and tab to be ‘blank’. -

    -
  • -
  • There was a sign error in part of the calculations for the -variance returned by KalmanSmooth(). (PR#14738) -

    -
  • -
  • pbinom(10, 1e6, 0.01, log.p = TRUE) was NaN -thanks to the buggy fix to PR#14320 in R 2.11.0. (PR#14739) -

    -
  • -
  • RweaveLatex() now emulates auto-printing rather than -printing, by calling methods::show() when auto-printing -would. -

    -
  • -
  • duplicated() ignored fromLast for a -one-column data frame. (PR#14742) -

    -
  • -
  • source() and related functions did not put the correct -timestamp on the source references; srcfilecopy() has gained -a new argument timestamp to support this fix. (PR#14750) -

    -
  • -
  • srcfilecopy() has gained a new argument isFile -and now records the working directory, to allow debuggers to find -the original source file. (PR#14826) -

    -
  • -
  • LaTeX conversion of Rd files did not correctly handle -preformatted backslashes. (PR#14751) -

    -
  • -
  • HTML conversion of Rd files did not handle markup within -tabular cells properly. (PR#14708) -

    -
  • -
  • source() on an empty file with keep.source = - TRUE tried to read from stdin(), in R 2.14.0 only. -(PR#14753) -

    -
  • -
  • The code to check Rd files in packages would abort if -duplicate description sections were present. -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.14.0

- - - -

SIGNIFICANT USER-VISIBLE CHANGES

- - -
    -
  • All packages must have a namespace, and one is created on -installation if not supplied in the sources. This means that any -package without a namespace must be re-installed under this -version of R (but previously-installed data-only packages without -R code can still be used). -

    -
  • -
  • The yLineBias of the X11() and -windows() families of devices has been changed from 0.1 to -0.2: this changes slightly the vertical positioning of text in the -margins (including axis annotations). This is mainly for -consistency with other devices such as quartz() and -pdf(). (Wish of PR#14538.) -

    -

    There is a new graphics parameter "ylbias" which -allows the y-line bias of the graphics device to be tweaked, -including to reproduce output from earlier versions of R. -

    -
  • -
  • Labeling of the p-values in various anova tables has been -rationalized to be either "Pr(>F)" or "Pr(>Chi)" -(i.e. the "Pr(F)", "Pr(Chi)" and "P(>|Chi|)" -variants have been eliminated). Code which extracts the p value -via indexing by name may need adjustment. -

    -
  • -
  • :: can now be used for datasets made available for -lazy-loading in packages with namespaces (which makes it consistent -with its use for data-only packages without namespaces in earlier -versions of R). -

    -
  • -
  • There is a new package parallel. -

    -

    It incorporates (slightly revised) copies of packages -multicore and snow (excluding MPI, PVM and NWS -clusters). Code written to use the higher-level API functions in -those packages should work unchanged (apart from changing any -references to their namespaces to a reference to parallel, -and links explicitly to multicore or snow on help -pages). -

    -

    It also contains support for multiple RNG streams following -L'Ecuyer et al (2002), with support for both -mclapply and snow clusters. This replaces functions -like clusterSetupRNG() from snow (which are not in -parallel). -

    -

    The version released for R 2.14.0 contains base functionality: -higher-level convenience functions are planned (and some are -already available in the ‘R-devel’ version of R). -

    -
  • -
  • Building PDF manuals (for R itself or packages, -e.g. via R CMD check) by default requires the -LaTeX package inconsolata: see the section on -‘Making the manuals’ in the ‘R Installation and -Administration Manual’. -

    -
  • -
  • axTicks(*, log=TRUE) has changed in some cases to -satisfy the documented behavior and be consistent. -

    -
- - - - -

NEW FEATURES

- - -
    -
  • txtProgressBar() can write to an open connection -instead of the console. -

    -
  • -
  • Non-portable package names ending in ‘.’ are no longer -allowed. Nor are single-character package names (R was -already disallowed). -

    -
  • -
  • regexpr() and gregexpr() with perl = - TRUE allows Python-style named captures. (Wish and -contribution of PR#14518.) -

    -
  • -
  • The placement of ‘plotmath’ text in the margins of -plots done by base graphics now makes the same vertical adjustment -as ordinary text, so using ordinary and plotmath text on the same -margin line will seem better aligned (but not exactly aligned, -since ordinary text has descenders below the baseline and plotmath -places them on the baseline). (Related to PR#14537.) -

    -
  • -
  • sunflowerplot() now has a formula interface. -(Wish of PR#14541.) -

    -
  • -
  • iconv() has a new argument toRaw to handle -encodings such as UTF-16 with embedded nuls (as was -possible before the CHARSXP cache was introduced). -

    -

    It will also accept as input the type of list generated with -toRaw = TRUE. -

    -
  • -
  • Garbage-collecting an unused input text connection no longer -gives a warning (since it ‘connects’ to nothing outside -R). -

    -
  • -
  • read.table() and scan() have gained a -text argument, to allow reading data from a (possibly -literal) character string. -

    -
  • -
  • optim(*, method = .) now allows method = "Brent" -as an interface to optimize(), for use in cases such as -mle() where optim() is used internally. -

    -
  • -
  • mosaicplot() gains a border argument. -(Wish of PR#14550.) -

    -
  • -
  • smooth.spline() gains a tol argument which -controls how different x values need to be to be treated as -distinct. The default has been changed to be more reliable for -inputs whose range is small compared to their maximum absolute -value. (Wish of PR#14452.) -

    -
  • -
  • gl() runs faster by avoiding calling factor(). -

    -
  • -
  • The print() method for object.size() accepts -B as well as b as an abbreviation for ‘bytes’. -

    -
  • -
  • unlink() gains a force argument to work like -rm -f and if possible override restrictive permissions. -

    -
  • -
  • pbirthday() and qbirthday() now use exact -calculations for coincident = 2. -

    -
  • -
  • unzip() and unz() connections have been -updated with support for more recent Zip64 features (including -large file sizes and bzip2 compression, but not UTF-8 -file names). -

    -

    unzip() has a new option to restore file times from those -recorded (in an unknown timezone) in the zip file. -

    -
  • -
  • update.packages() now accepts a character vector of -package names for the oldPkgs argument. (Suggestion of -Tal Galili.) -

    -
  • -
  • The special reference class fields .self and -.refClassDef are now read-only to prevent corrupting -the object. -

    -
  • -
  • decompose() now returns the original series as part -of its value, so it can be used (rather than reconstructed) when -plotting. (Suggestion of Rob Hyndman.) -

    -
  • -
  • Rao's efficient score test has been implemented for -glm objects. Specifically, the add1, drop1, -and anova methods now allow test = "Rao". -

    -
  • -
  • If a saved workspace (e.g. ‘.RData’) contains objects -that cannot be loaded, R will now start with an warning message -and an empty workspace, rather than failing to start. -

    -
  • -
  • strptime() now accepts times such as 24:00 for -midnight at the end of the day, for although these are disallowed by -POSIX 1003.1-2008, ISO 8601:2004 allows them. -

    -
  • -
  • Assignment of names() to S4 objects now checks for -a corresponding "names" slot, and generates a warning or -an error if that slot is not defined. See the section on slots -in ?Classes. -

    -
  • -
  • The default methods for is.finite(), is.infinite() -and is.nan() now signal an error if their argument is not -an atomic vector. -

    -
  • -
  • The formula method for plot() no longer places -package stats on the search path (it loads the namespace -instead). -

    -
  • -
  • There now is a genuine "function" method for -plot() rather than the generic dispatching internally to -graphics::plot.function(). It is now exported, so can be -called directly as plot.function(). -

    -
  • -
  • The one-sided ks.test() allows exact = TRUE to -be specified in the presence of ties (but the approximate -calculation remains the default: the ‘exact’ computation -makes assumptions known to be invalid in the presence of ties). -

    -
  • -
  • The behaviour of curve(add = FALSE) has changed: it -now no longer takes the default x limits from the previous plot -(if any): rather they default to c(0, 1) just as the -"function" method for plot(). To get the previous -behaviour use curve(add = NA), which also takes the default for -log-scaling of the x-axis from the previous plot. -

    -
  • -
  • Both curve() and the plot() method for -functions have a new argument xname to facilitate plots -such as sin(t) vs t. -

    -
  • -
  • The local argument to source() can specify an -environment as well as TRUE (parent.env()) and -FALSE (.GlobalEnv). It gives better error messages -for other values, such as NA. -

    -
  • -
  • vcov() gains methods for classes "summary.lm" and -"summary.glm". -

    -
  • -
  • The plot() method for class "profile.nls" -gains ylab and lty arguments, and passes -... on to plot.default. -

    -
  • -
  • Character-string arguments such as the mode argument -of vector(), as.vector() and is.vector() and -the description argument of file() are required to -be of length exactly one, rather than any further elements being -silently discarded. This helps catch incorrect usage in -programming. -

    -
  • -
  • The length argument of vector() and its -wrappers such as numeric() is required to be of length -exactly one (other values are now an error rather than giving a -warning as previously). -

    -
  • -
  • vector(len) and length(x) <- len no longer -accept TRUE/FALSE for len (not that they -were ever documented to, but there was special-casing in the C -code). -

    -
  • -
  • There is a new function Sys.setFileTime() to set the -time of a file (including a directory). See its help for exactly -which times it sets on various OSes. -

    -
  • -
  • The file times reported by file.info() are reported -to sub-second resolution on systems which support it. (Currently -the POSIX 2008 and FreeBSD/Darwin/NetBSD methods are detected.) -

    -
  • -
  • New function getCall(m) as an abstraction for -m$call, enabling update()'s default method to apply -more universally. (NB: this can be masked by existing functions -in packages.) -

    -
  • -
  • Sys.info() gains a euser component to report -the ‘effective’ user on OSes which have that concept. -

    -
  • -
  • The result returned by try() now contains the -original error condition object as the "condition" -attribute. -

    -
  • -
  • All packages with R code are lazy-loaded irrespective of -the LazyLoad field in the ‘DESCRIPTION’ file. A -warning is given if the LazyLoad field is overridden. -

    -
  • -
  • Rd markup has a new \figure tag so that -figures can be included in help pages when converted to HTML or -LaTeX. There are examples on the help pages for par() and -points(). -

    -
  • -
  • The built-in httpd server now allows access to files -in the session temporary directory tempdir(), -addressed as the ‘/session’ directory on the httpd -server. -

    -
  • -
  • Development versions of R are no longer referred to by the -number under which they might be released, e.g. in the startup -banner, R --version and sessionUtils(). The -correct way to refer to a development version of R is -‘R-devel’, preferably with the date and SVN version number.
    -E.g. R-devel (2011-07-04 r56266) -

    -
  • -
  • There is a new function texi2pdf() in package -tools, currently a convenience wrapper for -texi2dvi(pdf = TRUE). -

    -
  • -
  • There are two new options for typesetting PDF manuals from -Rd files. These are beramono and inconsolata, and -used the named font for monospaced output. They are intended to -be used in combination with times, and -times,inconsolata,hyper is now the default for the -reference manual and package manuals. If you do not have that -font installed, you can set R_RD4PF to one of the other -options: see the ‘R Installation and Administration Manual’. -

    -
  • -
  • Automatic printing for reference classes is now done by -the $show() method. A method is defined for class -envRefClass and may be overridden for user classes (see -the ?ReferenceClasses example). S4 show() methods -should no longer be needed for reference classes. -

    -
  • -
  • tools::Rdiff (by default) and R CMD Rdiff -now ignore differences in pointer values when comparing printed -environments, compiled byte code, etc. -

    -
  • -
  • The "source" attribute on functions created with -keep.source=TRUE has been replaced with a "srcref" -attribute. The "srcref" attribute references an in-memory -copy of the source file using the "srcfilecopy" class or -the new "srcfilealias" class. -

    -

    NB: This means that functions sourced with -keep.source = TRUE and saved (e.g., by save() or -readRDS()) in earlier versions of R will no longer show -the original sources (including comments). -

    -
  • -
  • New items User Manuals and -Technical Papers -have been added to the HTML help main page. These link to -vignettes in the base and recommended packages and to a -collection of papers about R issues, respectively. -

    -
  • -
  • Documentation and messages have been standardized to -use “namespace” rather than “name space”. -

    -
  • -
  • setGeneric() now looks in the default packages for -a non-generic version of a function if called from a package with a -namespace. (It always did for packages without a namespace.) -

    -
  • -
  • Setting the environment variable -_R_WARN_ON_LOCKED_BINDINGS_ will give a warning if an -attempt is made to change a locked binding. -

    -
  • -
  • \SweaveInput is now supported when generating -concordances in Sweave(). -

    -
  • -
  • findLineNum() and setBreakpoint() now allow -the environment to be specified indirectly; the latter gains -a clear argument to allow it to call untrace(). -

    -
  • -
  • The body of a closure can be one of further types of R -objects, including environments and external pointers. -

    -
  • -
  • The Rd2HTML() function in package tools now has -a stylesheet argument, allowing pages to be displayed in -alternate formats. -

    -
  • -
  • New function requireNamespace() analogous to -require(), returning a logical value after attempting to -load a namespace. -

    -
  • -
  • There is a new type of RNG, "L'Ecuyer-CMRG", -implementing L'Ecuyer (1999)'s ‘combined multiple-recursive -generator’ MRG32k3a. See the comments on ?RNG. -

    -
  • -
  • help.search() and ?? can now display -vignettes and demos as well as help pages. The new option -"help.search.types" controls the types of documentation -and the order of their display. -

    -

    This also applies to HTML searches, which now give results in all -of help pages, vignettes and demos. -

    -
  • -
  • socketConnection() now has a timeout argument. -It is now documented that large values (package snow used a -year) do not work on some OSes. -

    -
  • -
  • The initialization of the random-number generator now uses -the process ID as well as the current time, just in case two R -processes are launched very rapidly on a machine with -low-resolution wall clock (some have a resolution of a second; -modern systems have microsecond-level resolution). -

    -
  • -
  • New function pskill() in the tools package to -send a terminate signal to one or more processes, plus constants -such as SIGTERM to provide a portable way to refer to -signals (since the numeric values are OS-dependent). -

    -
  • -
  • New function psnice() in the tools package to -return or change the ‘niceness’ of a process. (Refers to -the ‘priority class’ on Windows.) -

    -
  • -
  • list.dirs() gains a recursive argument. -

    -
  • -
  • An Authors@R field in a package ‘DESCRIPTION’ -file can now be used to generate Author and -Maintainer fields if needed, and to auto-generate package -citations. -

    -
  • -
  • New utility getElement() for accessing either a list -component or a slot in an S4 object. -

    -
  • -
  • stars() gains a col.lines argument, thanks to -Dustin Sallings. (Wish of PR#14657.) -

    -
  • -
  • New function regmatches() for extracting or replacing -matched or non-matched substrings from match data obtained by -regexpr(), gregexpr() and regexec(). -

    -
  • -
  • help(package = "pkg_name", help_type = "HTML") now -gives HTML help on the package rather than text help. (This gives -direct access to the HTML version of the package manual shown -via help.start()'s ‘Packages’ menu.) -

    -
  • -
  • agrep() gains a fixed argument to optionally -allow approximate regular expression matching, and a costs -argument to specify possibly different integer match costs for -insertions, deletions and substitutions. -

    -
  • -
  • read.dcf() and write.dcf() gain a -keep.white argument to indicate fields where whitespace -should be kept as is. -

    -
  • -
  • available.packages() now works around servers that -fail to return an error code when ‘PACKAGES.gz’ does not -exist. (Patch submitted by Seth Schommer.) -

    -
  • -
  • readBin() can now read more than -2^31 - 1 bytes in a single call (the previously -documented limitation). -

    -
  • -
  • New function regexec() for finding the positions of -matches as well as all substrings corresponding to parenthesized -subexpressions of the given regular expression. -

    -
  • -
  • New function adist() in package utils for -computing ‘edit’ (generalized Levenshtein) distances between -strings. -

    -
  • -
  • Class "raster" gains an is.na method to avoid -confusion from the misuse of the matrix method (such as PR#14618). -

    -
  • -
  • The identical() function gains an -ignore.bytecode argument to control comparison of -compiled functions. -

    -
  • -
  • pmin and pmax now warn if an argument is -partially recycled (wish of PR#14638). -

    -
  • -
  • The default for image(useRaster=) is now taken from -option "preferRaster": for the small print see ?image. -

    -
  • -
  • str() now displays reference class objects and their -fields, rather than treating them as classical S4 classes. -

    -
  • -
  • New function aregexec() in package utils for -finding the positions of approximate string matches as well as all -substrings corresponding to parenthesized subexpressions of the -given regular expression. -

    -
  • -
  • download.file() has an extra argument to pass -additional command-line options to the non-default methods using -command-line utilities. -

    -

    cacheOK = FALSE is now supported for method = "curl". -

    -
  • -
  • interaction.plot(*, type = .) now also allows type -"o" or "c". -

    -
  • -
  • axTicks(*, log=TRUE) did sometimes give more values -than the ticks in the corresponding graphics::axis(). By -default, it now makes use of the new (graphics-package -independent) axisTicks() which can make use of a new -utility .axisPars(). Further, it now returns a decreasing -sequence (as for log=FALSE) when usr is decreasing. -

    -
  • -
  • Using fix() or edit() on a R object (except -perhaps a matrix or data frame) writes its temporary file with -extension ‘.R’ so editors which select their mode based on -the extension will select a suitable mode. -

    -
- - - - -

GRAPHICS DEVICES

- - -
    -
  • The pdf() device makes use of Flate compression: this -is controlled by the new logical argument compress, and is -enabled by default. -

    -
  • -
  • Devices svg(), cairo_pdf() and -cairo_ps() gain a family argument. -

    -

    On a Unix-alike X11() gains a family argument. This -is one of the x11.options() and so can be passed as an -argument to the bmp(), jpeg(), png() and -tiff() devices. -

    -

    Analogous changes have been made on Windows, so all built-in R -graphics devices now have a family argument except -pictex() (which has no means to change fonts). -

    -
  • -
  • The bmp(), jpeg(), png() and tiff() -devices now make use of the antialias argument for -type = "quartz". -

    -
  • -
  • There are several new built-in font mappings for -X11(type = "Xlib"): see the help on X11Fonts(). -

    -
  • -
  • There is a new type X11(type = "dbcairo") which -updates the screen less frequently: see its help page. -

    -
  • -
  • The X11() device now makes use of cursors to -distinguish its states. The normal cursor is an arrow (rather -than a crosshair); the crosshair is used when the locator is in -use, and a watch cursor is shown when plotting computations are -being done. (These are the standard names for X11 cursors: how -they are actually displayed depends on the window manager.) -

    -
  • -
  • New functions dev.hold() and dev.flush() for -use with graphics devices with buffering. These are used for most -of the high-level graphics functions such as boxplot(), so -that the plot is only displayed when the page is complete. -

    -

    Currently implemented for windows(buffered = TRUE), -quartz() and the cairographics-based X11() types -with buffering (which are the default on-screen devices). -

    -
  • -
  • New function dev.capture() for capture of bitmap -snapshots of image-based devices (a superset of the functionality -provided by grid.cap() in grid). -

    -
  • -
  • The default colormodel for pdf() and -postscript() is now called "srgb" to more accurately -describe it. (Instead of "rgb", and in the case of -postscript() it no longer switches to and from the gray -colorspace, by default.) -

    -

    The colormodel for postscript() which does use both -gray and sRGB colorspaces is now called "srgb+gray". -

    -

    Plots which are known to use only black/white/transparent can -advantageously use colormodel = "gray" (just as before, but -there is now slightly more advantage in doing so). -

    -
  • -
  • postscript() with values colormodel = "rgb" and -colormodel = "rgb-nogray" give the behaviour prior to R -2.13.0 of uncalibrated RGB, which under some circumstances can be -rendered much faster by a viewer. -

    -

    pdf(colormodel = "rgb") gives the behaviour prior to R -2.13.0 of uncalibrated RGB, which under some circumstances can be -rendered faster by a viewer, and the files will be smaller (by -about 9KB if compression is not used). -

    -
  • -
  • The postscript() device only includes the definition -of the sRGB colorspace in the output file for the colormodels -which use it. -

    -
  • -
  • The postscript() and pdf() devices now output -greyscale raster images (and not RGB) when colormodel = "gray". -

    -
  • -
  • postscript(colormodel = "gray") now accepts non-grey -colours and uses their luminance (as pdf() long has). -

    -
  • -
  • colormodel = "grey" is allowed as an alternative name -for postscript() and pdf(). -

    -
  • -
  • pdf() in the default sRGB colorspace outputs many -fewer changes of colorspace, which may speed up rendering in some -viewing applications. -

    -
  • -
  • There is a new function dev.capabilities() to query -the capabilities of the current device. The initial set of -capabilities are support for semi-transparent colours, rendering -and capturing raster images, the locator and for interactive -events. -

    -
  • -
  • For pdf(), maxRasters is increased as needed -so the argument is no longer used. -

    -
- - - - -

SWEAVE & VIGNETTES

- - -
    -
  • Options keep.source = TRUE, figs.only = FALSE -are now the default. -

    -
  • -
  • The way the type of user-defined options is determined has -changed. Previously they were all regarded as logical: now the -type is determined by the value given at first use. -

    -
  • -
  • The allowed values of logical options are now precisely -those allowed for character inputs to as.logical(): this -means that t and f are no longer allowed (although -T and F still are). -

    -
  • -
  • The preferred location for vignette sources is now the -directory ‘vignettes’ and not ‘inst/doc’: R CMD - build will now re-build vignettes in directory ‘vignettes’ -and copy the ‘.Rnw’ (etc) files and the corresponding PDFs to -‘inst/doc’. Further files to be copied to ‘inst/doc’ -can be specified via the file -‘vignettes/.install_extras’. -

    -
  • -
  • R CMD Sweave now supports a --driver -option to select the Sweave driver: the default is equivalent to ---driver=RweaveLatex. -

    -
  • -
  • R CMD Sweave and R CMD Stangle support -options --encoding and --options. -

    -
  • -
  • The Rtangle() driver allows output = "stdout" -or output = "stderr" to select the output or message -connection. This is convenient for scripting using something like -

    -
        R CMD Stangle --options='output="stdout"' foo.Rnw > foo2.R
    -
  • -
  • There is a new option pdf.compress controlling -whether PDF figures are generated using Flate compression (they -are by default). -

    -
  • -
  • R CMD Sweave now has a --pdf option to -produce a PDF version of the processed Sweave document. -

    -
  • -
  • It is no longer allowed to have two vignettes with the -same vignette basename (e.g. ‘vig.Rnw’ and ‘vig.Snw’). -(Previously one vignette hid the other in the vignette() -function.) -

    -
- - - - -

C-LEVEL FACILITIES

- - -
    -
  • Function R_tmpnam2 has been added to the API to allow -a temporary filename to include a specified extension. -

    -
- - - - -

PACKAGE INSTALLATION

- - -
    -
  • Package ‘DESCRIPTION’ file field KeepSource -forces the package to be installed with keep.source = - TRUE (or FALSE). (Suggestion of Greg Snow. Note that -as all packages are lazy-loaded, this is now only relevant at -installation.) -

    -

    There are corresponding options --with-keep.source and ---without-keep.source for R CMD INSTALL. -

    -
  • -
  • R CMD INSTALL has a new option ---byte-compile to byte-compile the packages during -installation (since all packages are now lazy-loaded). This can -be controlled on a per-package basis by the optional field -ByteCompile in the ‘DESCRIPTION’ file. -

    -
  • -
  • A package R code but without a ‘NAMESPACE’ file will -have a default one created at R CMD build or R - CMD INSTALL time, so all packages will be installed with -namespaces. A consequence of this is that .First.lib() -functions need to be copied to .onLoad() (usually) or -.onAttach(). For the time being, if there is an -auto-generated ‘NAMESPACE’ file and no .onLoad() nor -.onAttach() function is found but .First.lib() is, -it will be run as the attach hook (unless the package is one of a -list of known exceptions, when it will be run as the load hook). -

    -
  • -
  • A warning is given if test-loading a package changes a -locked binding in a package other than itself. It is likely that -this will be disallowed in future releases. (There are pro -tem some exceptions to the warning.) -

    -
  • -
  • A dependency on SVN revision is allowed for R, -e.g. R (>= r56550). This should be used in conjunction with a -version number, e.g. R (>= 2.14.0), R (>= r56550) to -distinguish between R-patched and R-devel versions with the same -SVN revision. -

    -
  • -
  • installed.packages() now hashes the names of its -cache files to avoid very rare problems with excessively long path -names. (PR#14669) -

    -
  • -
  • A top-level ‘COPYING’ file in a package is no longer -installed (file names ‘LICENSE’ or ‘LICENCE’ having long -been preferred). -

    -
- - - - -

UTILITIES

- - -
    -
  • R CMD check now gives an error if the R code in a -vignette fails to run, unless this is caused by a missing package. -

    -
  • -
  • R CMD check now unpacks tarballs in the same way -as R CMD INSTALL, including making use of the -environment variable R_INSTALL_TAR to override the default -behaviour. -

    -
  • -
  • R CMD check performs additional code analysis of -package startup functions, and notifies about incorrect argument -lists and (incorrect) calls to functions which modify the search -path or inappropriately generate messages. -

    -
  • -
  • R CMD check now also checks compiled code for -symbols corresponding to functions which might terminate R or -write to ‘stdout’/‘stderr’ instead of the console. -

    -
  • -
  • R CMD check now uses a pdf() device when -checking examples (rather than postscript()). -

    -
  • -
  • R CMD check now checks line-endings of makefiles -and C/C++/Fortran sources in subdirectories of ‘src’ as well -as in ‘src’ itself. -

    -
  • -
  • R CMD check now reports as a NOTE what look like -methods documented with their full names even if there is a -namespace and they are exported. In almost all cases they are -intended to be used only as methods and should use the -\method markup. In the other rare cases the recommended -form is to use a function such as coefHclust which would -not get confused with a method, document that and register it in -the ‘NAMESPACE’ file by s3method(coef, hclust, - coefHclust). -

    -
  • -
  • The default for the environment variable -_R_CHECK_COMPACT_DATA2_ is now true: thus if using the newer -forms of compression introduced in R 2.10.0 would be beneficial -is now checked (by default). -

    -
  • -
  • Reference output for a vignette can be supplied when -checking a package by R CMD check: see ‘Writing R -Extensions’. -

    -
  • -
  • R CMD Rd2dvi allows the use of LaTeX package -inputenx rather than inputenc: the value of the -environment variable RD2DVI_INPUTENC is used. (LaTeX package -inputenx is an optional install which provides greater -coverage of the UTF-8 encoding.) -

    -
  • -
  • Rscript on a Unix-alike now accepts file names -containing spaces (provided these are escaped or quoted in the -shell). -

    -
  • -
  • R CMD build on a Unix-alike (only) now tries to -preserve dates on files it copies from its input directory. (This -was the undocumented behaviour prior to R 2.13.0.) -

    -
- - - - -

DEPRECATED AND DEFUNCT

- - -
    -
  • require() no longer has a save argument. -

    -
  • -
  • The gamma argument to hsv(), -rainbow(), and rgb2hsv() has been removed. -

    -
  • -
  • The --no-docs option for -R CMD build --binary is defunct: use ---install-args instead. -

    -
  • -
  • The option --unsafe to R CMD INSTALL is -defunct: use the identical option --no-lock instead. -

    -
  • -
  • The entry point pythag formerly in ‘Rmath.h’ is -defunct: use instead the C99 function hypot. -

    -
  • -
  • R CMD build --binary is formally defunct: -R CMD INSTALL --build has long been the preferred -alternative. -

    -
  • -
  • zip.file.extract() is now defunct: use -unzip() or unz() instead. -

    -
  • -
  • R CMD Rd2dvi without the --pdf option is -now deprecated: only PDF output will be supported in future -releases (since this allows the use of fonts only supported for -PDF), and only R CMD Rd2pdf will be available. -

    -
  • -
  • Options such as --max-nsize and the function -mem.limits() are now deprecated: these limits are nowadays -almost never used, and are reported by gc() when they are -in use. -

    -
  • -
  • Forms like binomial(link = "link") for GLM families -deprecated since R 2.4.0 are now defunct. -

    -
  • -
  • The declarativeOnly argument to -loadNamespace() (not relevant since R 2.13.0) has been -removed. -

    -
  • -
  • Use of library.dynam() without specifying all the -first three arguments is deprecated. (It is often called from a -namespace, and the defaults are only appropriate to a package.) -

    -

    Use of chname in library.dynam() with the extension -‘.so’ or .dll (which is clearly not allowed according -to the help page) is deprecated. This also applies to -library.dynam.unload() and useDynLib directives in -‘NAMESPACE’ files. -

    -
  • -
  • It is deprecated to use mean(x) and sd(x) -directly on data frames (or also matrices, for sd) -x, instead of simply using sapply. -

    -

    In the same spirit, median(x) now gives an error for a data -frame x (it often gave nonsensical results). -

    -
  • -
  • The keep.source argument to library() and -require() is deprecated: it was only used for packages -installed without lazy-loading, and now all packages are -lazy-loaded. -

    -
  • -
  • Using a false value for the ‘DESCRIPTION’ field -LazyLoad is deprecated. -

    -
- - - - -

INSTALLATION

- - -
    -
  • The base and recommended packages are now byte-compiled -(equivalent to make bytecode in R 2.13.x). -

    -
  • -
  • Configure option --with-system-zlib now only makes -use of the basic interface of zlib and not the -C function gzseek which has shown erroneous behaviour in -zlib 1.2.4 and 1.2.5. -

    -
  • -
  • The zlib in the R sources is now version 1.2.5. -(This is safe even on 32-bit Linux systems because only the basic -interface is now used.) -

    -
  • -
  • The ‘.afm’ files in package grDevices are now -installed as compressed files (as long done on Windows), saving ca -2MB on the installed size. -

    -
  • -
  • The non-screen cairo-based devices are no longer in the X11 -module and so can be installed without X11. (We have never seen a -Unix-alike system with cairographics installed but not X11, but a -user might select --without-x.) -

    -
  • -
  • Configure will try to use -fobjc-exceptions for the -Objective-C compiler (if present) to ensure that even compilers -that do not enable exceptions by default (such as vanilla gcc) can -be used. (Objective-C is currently only used on Mac OS X.) -

    -
  • -
  • The system call times is required. -

    -
  • -
  • The C99 functions acosh, asinh, atanh, -snprintf and vsnprintf are now required. -

    -
  • -
  • There is no longer support for making DVI manuals via -make dvi, make install-dvi and similar. Only -PDF manuals are supported (to allow the use of fonts which are -only available for PDF.) -

    -
  • -
  • The ‘configure’ arguments used during configuration of -R are included as a comment in ‘Makeconf’ for informative -purposes on Unix-alikes in a form suitable for shell execution. -Note that those are merely command-line arguments, they do not -include environment variables (one more reason to use configure -variables instead) or site configuration settings. -

    -
  • -
  • Framework installation now supports DESTDIR -(Mac OS X only). -

    -
  • -
  • Java detection (R CMD javareconf) works around bogus -java.library.path property in recent Oracle Java binaries. -

    -
- - - - -

BUG FIXES

- - -
    -
  • The locale category LC_MONETARY was only being set on -startup on Windows: that is now done on Unix-alikes where -supported. -

    -
  • -
  • Reference class utilities will detect an attempt to modify -methods or fields in a locked class definition (e.g., in a -namespace) and generate an error. -

    -
  • -
  • The formula methods for lines(), points() and -text() now work even if package stats is not on the -search path. -

    -
  • -
  • In principle, S4 classes from different packages could -have the same name. This has not previously worked. Changes -have now been installed that should allow such classes and -permit methods to use them. New functions className() -and multipleClasses() are related tools for programming. -

    -
  • -
  • Work around an issue in Linux (a system select call -resetting tv) which prevented internet operations from -timing out properly. -

    -
  • -
  • Several stack trampling and overflow issues have been fixed -in TRE, triggered by agrep and friends with long patterns. -(PR#14627) -

    -
  • -
  • (“design infelicity”) Field assignments in reference -classes are now consistent with slots in S4 classes: the -assigned value must come from the declared class (if any) for the field -or from a subclass. -

    -
  • -
  • The methods objects constructed for "coerce" and -"coerce<-" were lacking some essential information in the -generic, defined and target slots; -as() did not handle duplicate class definitions correctly. -

    -
  • -
  • The parser no longer accepts the digit 8 in an octal -character code in a string, nor does it accept unterminated -strings in a file. (Reported by Bill Dunlap.) -

    -
  • -
  • The print() method for class "summary.aov" did -not pass on argument digits when summary() was -called on a single object, and hence used more digits than -documented. -

    -
  • -
  • The X11() device's cairo back-end produced incorrect -capture snapshot images on big-endian machines. -

    -
  • -
  • loglin() gave a spurious error when argument -margin consisted of a single element of length one. -(PR#14690) -

    -
  • -
  • loess() is better protected against misuse, -e.g. zero-length span. (PR#14691) -

    -
  • -
  • HoltWinters() checks that the optimization -succeeded. (PR#14694) -

    -
  • -
  • The (undocumented) inclusion of superclass objects in -default initializing of reference classes overwrote explicit -field arguments. The bug is fixed, the feature documented and a -test added. -

    -
  • -
  • round(x, -Inf) now does something sensible (return -zero rather than NA). -

    -
  • -
  • signif(x, -Inf) now behaves as documented -(signif(x, 1)) rather than giving zero. -

    -
  • -
  • The "table" method for Axis() hardcoded -side = 1, hence calls to plot(<vector>, <table>) -labelled the wrong axis. (PR#14699) -

    -
  • -
  • Creating a connection might fail under gctorture(TRUE). -

    -
  • -
  • stack() and unstack() converted character -columns to factors. -

    -

    unstack() sometimes produced incorrect results (a list or a -vector) if the factor on which to un-split had only one level. -

    -
  • -
  • On some systems help(".C", help_type = "pdf") and -similar generated file names that TeX was unable to handle. -

    -
  • -
  • Non-blocking listening socket connections continued to -report isIncomplete() as true even when the peer had closed -down and all available input had been read. -

    -
  • -
  • The revised HTML search system now generates better -hyperlinks to help topics found: previously it gave problems with -help pages with names containing e.g. spaces and slashes. -

    -
  • -
  • A late change in R 2.13.2 broke \Sexpr expressions -in Rd files. -

    -
  • -
  • The creation of ticks on log axes (including by -axTicks()) sometimes incorrectly omitted a tick at one end -of the range by rounding error in a platform-dependent way. This -could be seen in the examples for axTicks(), where with -axis limits c(0.2, 88) the tick for 0.2 was -sometimes omitted. -

    -
  • -
  • qgamma() for small shape underflows to -0 rather than sometimes giving NaN. -(PR#8528, PR#14710) -

    -
  • -
  • mapply() now gives an explicit error message (rather -than an obscure one) if inputs of zero and positive length are -mixed. -

    -
  • -
  • Setting a Hershey font family followed by string height -query would crash R. -

    -
  • -
  • R CMD javareconf -e would fail for some shells due to -a shift error. Also the resulting paths will no longer contain -$(JAVA_HOME) as that can result in an unintended -substitution based on ‘Makeconf’ instead of the shell -setting. -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.13.2

- - - -

NEW FEATURES

- - -
    -
  • mem.limits() now reports values larger than the -maximum integer (previously documented to be reported as -NA), and allows larger values to be set, including -Inf to remove the limit. -

    -
  • -
  • The print() methods for classes "Date", -"POSIXct" and "POSIXlt" respect the option -"max.print" and so are much faster for very long datetime -vectors. (Suggestion of Yohan Chalabi.) -

    -
  • -
  • untar2() now works around errors generated with -tar files that use more than the standard 6 digits for the -checksum. (PR#14654) -

    -
  • -
  • install.packages() with Ncpus > 1 guards -against simultaneous installation of indirect dependencies as well -as direct ones. -

    -
  • -
  • Sweave now knows about a few more Windows' encodings -(including cp1250 and cp1257) and some -inputenx encodings such as koi8-r. -

    -
  • -
  • postscript(colormodel = "rgb-nogray") no longer sets -the sRGB colorspace for each colour and so some viewers may render -its files much faster than the default colormodel ="rgb". -

    -
  • -
  • The default for pdf(maxRasters=) has been increased -from 64 to 1000. -

    -
  • -
  • readBin() now warns if signed = FALSE is used -inappropriately (rather than being silently ignored). -

    -

    It enforces the documented limit of 2^31-1 bytes -in a single call. -

    -
  • -
  • PCRE has been updated to version 8.13, a bug-fix release -with updated Unicode tables (version 6.0.0). An additional patch -(r611 from PCRE 8.20-to-be) has been added to fix a collation -symbol recognition issue. -

    -
- - - - -

INSTALLATION

- - -
    -
  • It is possible to build in ‘src/extra/xdr’ on more -platforms. (Needed since glibc 2.14 hides its RPC implementation.) -

    -
  • -
  • configure will find the Sun TI-RPC implementation -of xdr (in ‘libtirpc’) provided its header files are in the -search path: see the ‘R Installation and Administration -Manual’. -

    -
- - - - -

PACKAGE INSTALLATION

- - -
    -
  • Using a broad exportPattern directive in a -‘NAMESPACE’ file is no longer allowed to export internal -objects such as .onLoad and .__S3MethodsTable__. . -

    -

    These are also excluded from imports, along with .First.lib. -

    -
- - - - -

BUG FIXES

- - -
    -
  • fisher.test() had a buglet: If arguments were factors -with unused levels, levels were dropped and you would get an error -saying that there should be at least two levels, inconsistently -with pre-tabulated data. (Reported by Michael Fay). -

    -
  • -
  • package.skeleton() will no longer dump S4 objects -supplied directly rather than in a code file. These cannot be -restored correctly from the dumped version. -

    -
  • -
  • Build-time expressions in help files did not have access -to functions in the package being built (with R CMD build). -

    -
  • -
  • Because quote() did not mark its result as being in -use, modification of the result could in some circumstances -modify the original call. -

    -
  • -
  • Plotting pch = '.' now guarantees at least a one-pixel -dot if cex > 0. -

    -
  • -
  • The very-rarely-used command-line option ---max-vsize was incorrectly interpreted as a number of -Vcells and not in bytes as documented. (Spotted by Christophe -Rhodes.) -

    -
  • -
  • The HTML generated by Rd2HTML() comes closer to -being standards compliant. -

    -
  • -
  • filter(x, recursive = TRUE) gave incorrect results on a -series containing NAs. (Spotted by Bill Dunlap.) -

    -
  • -
  • Profiling stats::mle() fits with a fixed -parameter was not supported. (PR#14646) -

    -
  • -
  • retracemem() was still using positional matching. -(PR#14650) -

    -
  • -
  • The quantile method for "ecdf" objects now -works and is documented. -

    -
  • -
  • xtabs(~ .., ..., sparse=TRUE) now also works together -with an exclude = .. specification. -

    -
  • -
  • decompose() computed an incorrect seasonal component for -time series with odd frequencies. -

    -
  • -
  • The pdf() device only includes the definition of the -sRGB colorspace in the output file for the "rgb" colormodel -(and not for "gray" nor "cmyk"): this saves ca -9KB in the output file. -

    -
  • -
  • .hasSlot() wrongly gave FALSE in some cases. -

    -
  • -
  • Sweave() with keep.source=TRUE could generate -spurious NA lines when a chunk reference appeared last in -a code chunk. -

    -
  • -
  • \Sexpr[results=rd] in an ‘.Rd’ file now first tries -parse_Rd(fragment=FALSE) to allow Rd section-level macros -to be inserted. -

    -
  • -
  • The print() method for class "summary.aov" did -not pass on arguments such as signif.stars when -summary() was called on a single object. (PR#14684) -

    -
  • -
  • In rare cases ks.test() could return a p-value -very slightly less than 0 by rounding error. (PR#14671) -

    -
  • -
  • If trunc() was called on a "POSIXlt" vector -and the result was subsetted, all but the first element was -converted to NA. (PR#14679) -

    -
  • -
  • cbind() and rbind() could cause memory -corruption when used on a combination of raw and logical/integer -vectors. -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.13.1

- - - -

NEW FEATURES

- - -
    -
  • iconv() no longer translates NA strings as -"NA". -

    -
  • -
  • persp(box = TRUE) now warns if the surface extends -outside the box (since occlusion for the box and axes is computed -assuming the box is a bounding box). (PR#202) -

    -
  • -
  • RShowDoc() can now display the licences shipped with -R, e.g. RShowDoc("GPL-3"). -

    -
  • -
  • New wrapper function showNonASCIIfile() in package -tools. -

    -
  • -
  • nobs() now has a "mle" method in package -stats4. -

    -
  • -
  • trace() now deals correctly with S4 reference classes -and corresponding reference methods (e.g., $trace()) -have been added. -

    -
  • -
  • xz has been updated to 5.0.3 (very minor bugfix -release). -

    -
  • -
  • tools::compactPDF() gets more compression (usually a -little, sometimes a lot) by using the compressed object streams of -PDF 1.5. -

    -
  • -
  • cairo_ps(onefile = TRUE) generates encapsulated EPS -on platforms with cairo >= 1.6. -

    -
  • -
  • Binary reads (e.g. by readChar() and readBin()) -are now supported on clipboard connections. (Wish of PR#14593.) -

    -
  • -
  • as.POSIXlt.factor() now passes ... to the -character method (suggestion of Joshua Ulrich). [Intended for R -2.13.0 but accidentally removed before release.] -

    -
  • -
  • vector() and its wrappers such as integer() -and double() now warn if called with a length -argument of more than one element. This helps track down user -errors such as calling double(x) instead of -as.double(x). -

    -
- - - - -

INSTALLATION

- - -
    -
  • Building the vignette PDFs in packages grid and -utils is now part of running make from an SVN -checkout on a Unix-alike: a separate make vignettes step -is no longer required. -

    -

    These vignettes are now made with keep.source = TRUE and -hence will be laid out differently. -

    -
  • -
  • make install-strip failed under some configuration -options. -

    -
  • -
  • Packages can customize non-standard installation of compiled -code via a src/install.libs.R script. This allows packages that -have architecture-specific binaries (beyond the package's shared -objects/DLLs) to be installed in a multi-architecture setting. -

    -
- - - - -

SWEAVE & VIGNETTES

- - -
    -
  • Sweave() and Stangle() gain an encoding -argument to specify the encoding of the vignette sources if the -latter do not contain a \usepackage[]{inputenc} statement -specifying a single input encoding. -

    -
  • -
  • There is a new Sweave option figs.only = TRUE to run -each figure chunk only for each selected graphics device, and not -first using the default graphics device. This will become the -default in R 2.14.0. -

    -
  • -
  • Sweave custom graphics devices can have a custom function -foo.off() to shut them down. -

    -
  • -
  • Warnings are issued when non-portable filenames are found -for graphics files (and chunks if split = TRUE). Portable -names are regarded as alphanumeric plus hyphen, underscore, plus -and hash (periods cause problems with recognizing file -extensions). -

    -
  • -
  • The Rtangle() driver has a new option -show.line.nos which is by default false; if true it -annotates code chunks with a comment giving the line number of the -first line in the sources (the behaviour of R >= 2.12.0). -

    -
  • -
  • Package installation tangles the vignette sources: this step -now converts the vignette sources from the vignette/package -encoding to the current encoding, and records the encoding (if not -ASCII) in a comment line at the top of the installed ‘.R’ -file. -

    -
- - - - -

LICENCE

- - -
    -
  • No parts of R are now licensed solely under GPL-2. The -licences for packages rpart and survival have been -changed, which means that the licence terms for R as distributed -are GPL-2 | GPL-3. -

    -
- - - - -

DEPRECATED AND DEFUNCT

- - -
    -
  • The internal functions .readRDS() and -.saveRDS() are now deprecated in favour of the public -functions readRDS() and saveRDS() introduced in R -2.13.0. -

    -
  • -
  • Switching off lazy-loading of code via the -LazyLoad field of the ‘DESCRIPTION’ file is now -deprecated. In future all packages will be lazy-loaded. -

    -
  • -
  • The off-line help() types "postscript" and -"ps" are deprecated. -

    -
- - - - -

UTILITIES

- - -
    -
  • R CMD check on a multi-architecture installation now -skips the user's ‘.Renviron’ file for the -architecture-specific tests (which do read the -architecture-specific ‘Renviron.site’ files). This is -consistent with single-architecture checks, which use ---no-environ. -

    -
  • -
  • R CMD build now looks for ‘DESCRIPTION’ -fields BuildResaveData and BuildKeepEmpty for -per-package overrides. See ‘Writing R Extensions’. -

    -
- - - - -

BUG FIXES

- - -
    -
  • plot.lm(which = 5) was intended to order factor -levels in increasing order of mean standardized residual. It -ordered the factor labels correctly, but could plot the wrong -group of residuals against the label. (PR#14545) -

    -
  • -
  • mosaicplot() could clip the factor labels, and could -overlap them with the cells if a non-default value of -cex.axis was used. (Related to PR#14550.) -

    -
  • -
  • dataframe[[row,col]] now dispatches on [[ -methods for the selected column. (Spotted by Bill Dunlap). -

    -
  • -
  • sort.int() would strip the class of an object, but -leave its object bit set. (Reported by Bill Dunlap.) -

    -
  • -
  • pbirthday() and qbirthday() did not implement -the algorithm exactly as given in their reference and so were -unnecessarily inaccurate. -

    -

    pbirthday() now solves the approximate formula analytically -rather than using uniroot() on a discontinuous function. -

    -

    The description of the problem was inaccurate: the probability is -a tail probability (‘2 or more people share a birthday’) -

    -
  • -
  • Complex arithmetic sometimes warned incorrectly about -producing NAs when there were NaNs in the input. -

    -
  • -
  • seek(origin = "current") incorrectly reported it was -not implemented for a gzfile() connection. -

    -
  • -
  • c(), unlist(), cbind() and -rbind() could silently overflow the maximum vector length -and cause a segfault. (PR#14571) -

    -
  • -
  • The fonts argument to X11(type = "Xlib") was -being ignored. -

    -
  • -
  • Reading (e.g. with readBin()) from a raw connection -was not advancing the pointer, so successive reads would read the -same value. (Spotted by Bill Dunlap.) -

    -
  • -
  • Parsed text containing embedded newlines was printed -incorrectly by as.character.srcref(). (Reported by Hadley -Wickham.) -

    -
  • -
  • decompose() used with a series of a non-integer -number of periods returned a seasonal component shorter than the -original series. (Reported by Rob Hyndman.) -

    -
  • -
  • fields = list() failed for setRefClass(). -(Reported by Michael Lawrence.) -

    -
  • -
  • Reference classes could not redefine an inherited field -which had class "ANY". (Reported by Janko Thyson.) -

    -
  • -
  • Methods that override previously loaded versions will now -be installed and called. (Reported by Iago Mosqueira.) -

    -
  • -
  • addmargins() called numeric(apos) rather than -numeric(length(apos)). -

    -
  • -
  • The HTML help search sometimes produced bad links. -(PR#14608) -

    -
  • -
  • Command completion will no longer be broken if -tail.default() is redefined by the user. (Problem reported -by Henrik Bengtsson.) -

    -
  • -
  • LaTeX rendering of markup in titles of help pages has been -improved; in particular, \eqn{} may be used there. -

    -
  • -
  • isClass() used its own namespace as the default of -the where argument inadvertently. -

    -
  • -
  • Rd conversion to latex mishandled multi-line titles -(including cases where there was a blank line in the \title -section). (It seems this happened only in 2.13.0 patched.) -

    -
  • -
  • postscript() with an sRGB colormodel now uses sRGB -for raster images (in R 2.13.[01] it used uncalibrated RGB). -

    -

    There is no longer an undocumented 21845-pixel limit on raster images. -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.13.0

- - - -

SIGNIFICANT USER-VISIBLE CHANGES

- - -
    -
  • replicate() (by default) and vapply() (always) -now return a higher-dimensional array instead of a matrix in the case -where the inner function value is an array of dimension >= 2. -

    -
  • -
  • Printing and formatting of floating point numbers is now -using the correct number of digits, where it previously rarely -differed by a few digits. (See “scientific” entry below.) -This affects many*.Rout.save’ checks in packages. -

    -
- - - - -

NEW FEATURES

- - -
    -
  • normalizePath() has been moved to the base -package (from utils): this is so it can be used by -library() and friends. -

    -

    It now does tilde expansion. -

    -

    It gains new arguments winslash (to select the separator on -Windows) and mustWork to control the action if a canonical -path cannot be found. -

    -
  • -
  • The previously barely documented limit of 256 bytes on a -symbol name has been raised to 10,000 bytes (a sanity check). -Long symbol names can sometimes occur when deparsing expressions -(for example, in model.frame). -

    -
  • -
  • reformulate() gains a intercept argument. -

    -
  • -
  • cmdscale(add = FALSE) now uses the more common -definition that there is a representation in n-1 or less -dimensions, and only dimensions corresponding to positive -eigenvalues are used. (Avoids confusion such as PR#14397.) -

    -
  • -
  • Names used by c(), unlist(), cbind() -and rbind() are marked with an encoding when this can be -ascertained. -

    -
  • -
  • R colours are now defined to refer to the sRGB color space. -

    -

    The PDF, PostScript, and Quartz graphics devices record this fact. -X11 (and cairo) and Windows just assume that your screen conforms. -

    -
  • -
  • system.file() gains a mustWork argument -(suggestion of Bill Dunlap). -

    -
  • -
  • new.env(hash = TRUE) is now the default. -

    -
  • -
  • list2env(envir = NULL) defaults to hashing (with a -suitably sized environment) for lists of more than 100 elements. -

    -
  • -
  • text() gains a formula method. -

    -
  • -
  • IQR() now has a type argument which is passed -to quantile(). -

    -
  • -
  • as.vector(), as.double() etc duplicate less -when they leave the mode unchanged but remove attributes. -

    -

    as.vector(mode = "any") no longer duplicates when it does -not remove attributes. This helps memory usage in matrix() -and array(). -

    -

    matrix() duplicates less if data is an atomic vector -with attributes such as names (but no class). -

    -

    dim(x) <- NULL duplicates less if x has neither -dimensions nor names (since this operation removes names and -dimnames). -

    -
  • -
  • setRepositories() gains an addURLs argument. -

    -
  • -
  • chisq.test() now also returns a stdres -component, for standardized residuals (which have unit variance, -unlike the Pearson residuals). -

    -
  • -
  • write.table() and friends gain a fileEncoding -argument, to simplify writing files for use on other OSes (e.g. a -spreadsheet intended for Windows or Mac OS X Excel). -

    -
  • -
  • Assignment expressions of the form foo::bar(x) <- y -and foo:::bar(x) <- y now work; the replacement functions -used are foo::`bar<-` and foo:::`bar<-`. -

    -
  • -
  • Sys.getenv() gains a names argument so -Sys.getenv(x, names = FALSE) can replace the common idiom -of as.vector(Sys.getenv()). The default has been changed -to not name a length-one result. -

    -
  • -
  • Lazy loading of environments now preserves attributes and -locked status. (The locked status of bindings and active bindings -are still not preserved; this may be addressed in the future). -

    -
  • -
  • options("install.lock") may be set to FALSE -so that install.packages() defaults to --no-lock -installs, or (on Windows) to TRUE so that binary installs -implement locking. -

    -
  • -
  • sort(partial = p) for large p now tries -Shellsort if quicksort is not appropriate and so works for -non-numeric atomic vectors. -

    -
  • -
  • sapply() gets a new option simplify = "array" -which returns a “higher rank” array instead of just a matrix -when FUN() returns a dim() length of two or more. -

    -

    replicate() has this option set by default, and -vapply() now behaves that way internally. -

    -
  • -
  • aperm() becomes S3 generic and gets a table -method which preserves the class. -

    -
  • -
  • merge() and as.hclust() methods for objects of -class "dendrogram" are now provided. -

    -
  • -
  • The character method of as.POSIXlt() now tries to -find a format that works for all non-NA inputs, not just -the first one. -

    -
  • -
  • str() now has a method for class "Date" -analogous to that for class "POSIXt". -

    -
  • -
  • New function file.link() to create hard links on -those file systems (POSIX, NTFS but not FAT) that support them. -

    -
  • -
  • New Summary() group method for class "ordered" -implements min(), max() and range() for -ordered factors. -

    -
  • -
  • mostattributes<-() now consults the "dim" -attribute and not the dim() function, making it more useful -for objects (such as data frames) from classes with methods for -dim(). It also uses attr<-() in preference to the -generics name<-(), dim<-() and dimnames<-(). -(Related to PR#14469.) -

    -
  • -
  • There is a new option "browserNLdisabled" to disable -the use of an empty (e.g. via the ‘Return’ key) as a synonym -for c in browser() or n under debug(). -(Wish of PR#14472.) -

    -
  • -
  • example() gains optional new arguments -character.only and give.lines enabling programmatic -exploration. -

    -
  • -
  • serialize() and unserialize() are no longer -described as ‘experimental’. The interface is now regarded -as stable, although the serialization format may well change in -future releases. (serialize() has a new argument -version which would allow the current format to be written -if that happens.) -

    -

    New functions saveRDS() and readRDS() are public -versions of the ‘internal’ functions .saveRDS() and -.readRDS() made available for general use. The dot-name -versions remain available as several package authors have made use -of them, despite the documentation. readRDS() no longer -wraps non-file connections in a call to gzcon(), for -efficiency (see its documentation). -

    -

    saveRDS() supports compress = "xz". -

    -
  • -
  • Many functions when called with a not-open connection will -now ensure that the connection is left not-open in the event of -error. These include read.dcf(), dput(), -dump(), load(), parse(), readBin(), -readChar(), readLines(), save(), -writeBin(), writeChar(), writeLines(), -.readRDS(), .saveRDS() and tools::parse_Rd(), -as well as functions calling these. -

    -
  • -
  • Public functions find.package() and path.package() -replace the internal dot-name versions. -

    -
  • -
  • The default method for terms() now looks for a -"terms" attribute if it does not find a "terms" -component, and so works for model frames. -

    -
  • -
  • httpd() handlers receive an additional argument -containing the full request headers as a raw vector (this can be -used to parse cookies, multi-part forms etc.). The recommended -full signature for handlers is therefore function(url, - query, body, headers, ...). -

    -
  • -
  • file.edit() gains a fileEncoding argument to -specify the encoding of the file(s). -

    -
  • -
  • The format of the HTML package listings has changed. If -there is more than one library tree , a table of links to -libraries is provided at the top and bottom of the page. Where a -library contains more than 100 packages, an alphabetic index is -given at the top of the section for that library. (As a -consequence, package names are now sorted case-insensitively -whatever the locale.) -

    -
  • -
  • isSeekable() now returns FALSE on connections -which have non-default encoding. Although documented to -record if ‘in principle’ the connection supports seeking, -it seems safer to report FALSE when it may not work. -

    -
  • -
  • R CMD REMOVE and remove.packages() now -remove file R.css when removing all remaining packages in a -library tree. (Related to the wish of PR#14475: note that this -file is no longer installed.) -

    -
  • -
  • unzip() now has a unzip argument like -zip.file.extract(). This allows an external -unzip program to be used, which can be useful to access -features supported by Info-ZIP's unzip version 6 which -is now becoming more widely available. -

    -
  • -
  • There is a simple zip() function, as wrapper for an -external zip command. -

    -
  • -
  • bzfile() connections can now read from concatenated -bzip2 files (including files written with -bzfile(open = "a")) and files created by some other -compressors (such as the example of PR#14479). -

    -
  • -
  • The primitive function c() is now of type BUILTIN. -

    -
  • -
  • plot(<dendrogram>, .., nodePar=*) now obeys an optional -xpd specification (allowing clipping to be turned off -completely). -

    -
  • -
  • nls(algorithm="port") now shares more code with -nlminb(), and is more consistent with the other -nls() algorithms in its return value. -

    -
  • -
  • xz has been updated to 5.0.1 (very minor bugfix -release). -

    -
  • -
  • image() has gained a logical useRaster -argument allowing it to use a bitmap raster for plotting a -regular grid instead of polygons. This can be more efficient, but -may not be supported by all devices. The default is FALSE. -

    -
  • -
  • list.files()/dir() gains a new argument -include.dirs() to include directories in the listing when -recursive = TRUE. -

    -
  • -
  • New function list.dirs() lists all directories, -(even empty ones). -

    -
  • -
  • file.copy() now (by default) copies -read/write/execute permissions on files, moderated by the current -setting of Sys.umask(). -

    -
  • -
  • Sys.umask() now accepts mode = NA and returns -the current umask value (visibly) without changing it. -

    -
  • -
  • There is a ! method for classes "octmode" and -"hexmode": this allows xor(a, b) to work if both -a and b are from one of those classes. -

    -
  • -
  • as.raster() no longer fails for vectors or matrices -containing NAs. -

    -
  • -
  • New hook "before.new.plot" allows functions to be run -just before advancing the frame in plot.new, which is -potentially useful for custom figure layout implementations. -

    -
  • -
  • Package tools has a new function compactPDF() -to try to reduce the size of PDF files via qpdf -or gs. -

    -
  • -
  • tar() has a new argument extra_flags. -

    -
  • -
  • dotchart() accepts more general objects x such -as 1D tables which can be coerced by as.numeric() to a -numeric vector, with a warning since that might not be -appropriate. -

    -
  • -
  • The previously internal function create.post() is now -exported from utils, and the documentation for -bug.report() and help.request() now refer to that -for create.post(). -

    -

    It has a new method = "mailto" on Unix-alikes similar to -that on Windows: it invokes a default mailer via open -(Mac OS X) or xdg-open or the default browser (elsewhere). -

    -

    The default for ccaddress is now -getOption("ccaddress") which is by default unset: using the -username as a mailing address nowadays rarely works as expected. -

    -
  • -
  • The default for options("mailer") is now -"mailto" on all platforms. -

    -
  • -
  • unlink() now does tilde-expansion (like most other -file functions). -

    -
  • -
  • file.rename() now allows vector arguments (of the -same length). -

    -
  • -
  • The "glm" method for logLik() now returns an -"nobs" attribute (which stats4::BIC() assumed it -did). -

    -

    The "nls" method for logLik() gave incorrect results -for zero weights. -

    -
  • -
  • There is a new generic function nobs() in package -stats, to extract from model objects a suitable value for -use in BIC calculations. An S4 generic derived from it is defined -in package stats4. -

    -
  • -
  • Code for S4 reference-class methods is now examined for -possible errors in non-local assignments. -

    -
  • -
  • findClasses, getGeneric, findMethods -and hasMethods are revised to deal consistently with -the package= argument and be consistent with soft namespace -policy for finding objects. -

    -
  • -
  • tools::Rdiff() now has the option to return not only -the status but a character vector of observed differences (which -are still by default sent to ‘stdout’). -

    -
  • -
  • The startup environment variables R_ENVIRON_USER, -R_ENVIRON, R_PROFILE_USER and R_PROFILE are now -treated more consistently. In all cases an empty value is -considered to be set and will stop the default being used, and for -the last two tilde expansion is performed on the file name. (Note -that setting an empty value is probably impossible on Windows.) -

    -
  • -
  • Using R --no-environ CMD, R - --no-site-file CMD or R --no-init-file CMD sets -environment variables so these settings are passed on to child R -processes, notably those run by INSTALL, check and -build. R --vanilla CMD sets these three options -(but not --no-restore). -

    -
  • -
  • smooth.spline() is somewhat faster. With -cv=NA it allows some leverage computations to be skipped, -

    -
  • -
  • The internal (C) function scientific(), at the heart -of R's format.info(x), format(x), print(x), -etc, for numeric x, has been re-written in order to provide -slightly more correct results, fixing PR#14491, notably in -border cases including when digits >= 16, thanks to -substantial contributions (code and experiments) from Petr -Savicky. This affects a noticeable amount of numeric output from -R. -

    -
  • -
  • A new function grepRaw() has been introduced for -finding subsets of raw vectors. It supports both literal searches -and regular expressions. -

    -
  • -
  • Package compiler is now provided as a standard -package. See ?compiler::compile for information on how to -use the compiler. This package implements a byte code compiler -for R: by default the compiler is not used in this release. See -the ‘R Installation and Administration Manual’ for how to -compile the base and recommended packages. -

    -
  • -
  • Providing an exportPattern directive in a NAMESPACE -file now causes classes to be exported according to the same -pattern, for example the default from package.skeleton() -to specify all names starting with a letter. An explicit -directive to exportClassPattern will still over-ride. -

    -
  • -
  • There is an additional marked encoding "bytes" for -character strings. This is intended to be used for non-ASCII -strings which should be treated as a set of bytes, and never -re-encoded as if they were in the encoding of the current locale: -useBytes = TRUE is automatically selected in functions such -as writeBin(), writeLines(), grep() and -strsplit(). -

    -

    Only a few character operations are supported (such as substr()). -

    -

    Printing, format() and cat() will represent non-ASCII -bytes in such strings by a \xab escape. -

    -
  • -
  • The new function removeSource() removes the internally -stored source from a function. -

    -
  • -
  • "srcref" attributes now include two additional -line number values, recording the line numbers in the order they -were parsed. -

    -
  • -
  • New functions have been added for source reference access: -getSrcFilename(), getSrcDirectory(), -getSrcLocation() and getSrcref(). -

    -
  • -
  • Sys.chmod() has an extra argument use_umask -which defaults to true and restricts the file mode by the current -setting of umask. This means that all the R functions -which manipulate file/directory permissions by default respect -umask, notably R CMD INSTALL. -

    -
  • -
  • tempfile() has an extra argument fileext to -create a temporary filename with a specified extension. -(Suggestion and initial implementation by Dirk Eddelbuettel.) -

    -

    There are improvements in the way Sweave() and -Stangle() handle non-ASCII vignette sources, especially in -a UTF-8 locale: see ‘Writing R Extensions’ which now has a -subsection on this topic. -

    -
  • -
  • factanal() now returns the rotation matrix if a -rotation such as "promax" is used, and hence factor -correlations are displayed. (Wish of PR#12754.) -

    -
  • -
  • The gctorture2() function provides a more refined -interface to the GC torture process. Environment variables -R_GCTORTURE, R_GCTORTURE_WAIT, and -R_GCTORTURE_INHIBIT_RELEASE can also be used to control the -GC torture process. -

    -
  • -
  • file.copy(from, to) no longer regards it as an error -to supply a zero-length from: it now simply does nothing. -

    -
  • -
  • rstandard.glm() gains a type argument which can -be used to request standardized Pearson residuals. -

    -
  • -
  • A start on a Turkish translation, thanks to Murat Alkan. -

    -
  • -
  • .libPaths() calls normalizePath(winslash = "/") -on the paths: this helps (usually) to present them in a -user-friendly form and should detect duplicate paths accessed via -different symbolic links. -

    -
  • -
  • download.file() can be now used with external methods -even if there are spaces in the URL or the target filename. -

    -
  • -
  • The first formal argument of .C(), .Fortran(), -.Call() and .External() is now referred to a -.NAME rather than name: however actual calls should -have an unnamed first argument. -

    -
- - - - -

SWEAVE CHANGES

- - -
    -
  • Sweave() has options to produce PNG and JPEG figures, -and to use a custom function to open a graphics device (see -?RweaveLatex).
    -(Based in part on the contribution of PR#14418.) -

    -
  • -
  • The default for Sweave() is to produce only PDF -figures (rather than both EPS and PDF). -

    -
  • -
  • Environment variable SWEAVE_OPTIONS can be used to -supply defaults for existing or new options to be applied after -the Sweave driver setup has been run. -

    -
  • -
  • The Sweave manual is now included as a vignette in the -utils package. -

    -
  • -
  • Sweave() handles keep.source=TRUE much better: -it could duplicate some lines and omit comments. (Reported by John -Maindonald and others.) -

    -
- - - - -

C-LEVEL FACILITIES

- - -
    -
  • Because they use a C99 interface which a C++ compiler is not -required to support, Rvprintf and REvprintf are only -defined by ‘R_ext/Print.h’ in C++ code if the macro -R_USE_C99_IN_CXX is defined when it is included. -

    -
  • -
  • pythag duplicated the C99 function hypot. It -is no longer provided, but is used as a substitute for hypot -in the very unlikely event that the latter is not available. -

    -
  • -
  • R_inspect(obj) and R_inspect3(obj, deep, pvec) -are (hidden) C-level entry points to the internal inspect -function and can be used for C-level debugging (e.g., in conjunction -with the p command in gdb). -

    -
  • -
  • Compiling R with --enable-strict-barrier now also -enables additional checking for use of unprotected objects. In -combination with gctorture() or gctorture2() and a -C-level debugger this can be useful for tracking down memory -protection issues. -

    -
- - - - -

UTILITIES

- - -
    -
  • R CMD Rdiff is now implemented in R on -Unix-alikes (as it has been on Windows since R 2.12.0). -

    -
  • -
  • R CMD build no longer does any cleaning in the -supplied package directory: all the cleaning is done in the copy. -

    -

    It has a new option --install-args to pass arguments to -R CMD INSTALL for --build (but not when -installing to rebuild vignettes). -

    -

    There is new option, --resave-data, to call -tools::resaveRdaFiles() on the ‘data’ directory, to -compress tabular files (‘.tab’, ‘.csv’ etc) and to -convert ‘.R’ files to ‘.rda’ files. The default, ---resave-data=gzip, is to do so in a way compatible even -with years-old versions of R, but better compression is given by ---resave-data=best, requiring R >= 2.10.0. -

    -

    It now adds a ‘datalist’ file for ‘data’ directories of -more than 1Mb. -

    -

    Patterns in ‘.Rbuildignore’ are now also matched against all -directory names (including those of empty directories). -

    -

    There is a new option, --compact-vignettes, to try -reducing the size of PDF files in the ‘inst/doc’ directory. -Currently this tries qpdf: other options may be used in -future. -

    -

    When re-building vignettes and a ‘inst/doc/Makefile’ file is -found, make clean is run if the makefile has a -clean: target. -

    -

    After re-building vignettes the default clean-up operation will -remove any directories (and not just files) created during the -process: e.g. one package created a ‘.R_cache’ directory. -

    -

    Empty directories are now removed unless the option ---keep-empty-dirs is given (and a few packages do -deliberately include empty directories). -

    -

    If there is a field BuildVignettes in the package -‘DESCRIPTION’ file with a false value, re-building the -vignettes is skipped. -

    -
  • -
  • R CMD check now also checks for filenames that are -case-insensitive matches to Windows' reserved file names with -extensions, such as ‘nul.Rd’, as these have caused problems -on some Windows systems. -

    -

    It checks for inefficiently saved ‘data/*.rda’ and -‘data/*.RData’ files, and reports on those large than 100Kb. -A more complete check (including of the type of compression, but -potentially much slower) can be switched on by setting environment -variable _R_CHECK_COMPACT_DATA2_ to TRUE. -

    -

    The types of files in the ‘data’ directory are now checked, -as packages are still misusing it for non-R data files. -

    -

    It now extracts and runs the R code for each vignette in a -separate directory and R process: this is done in the package's -declared encoding. Rather than call -tools::checkVignettes(), it calls -tools::buildVignettes() to see if the vignettes can be -re-built as they would be by R CMD build. Option ---use-valgrind now applies only to these runs, and not -when running code to rebuild the vignettes. This version does a -much better job of suppressing output from successful vignette -tests. -

    -

    The ‘00check.log’ file is a more complete record of what is -output to ‘stdout’: in particular contains more details of -the tests. -

    -

    It now checks all syntactically valid Rd usage entries, and warns -about assignments (unless these give the usage of replacement -functions). -

    -

    .tar.xz’ compressed tarballs are now allowed, if -tar supports them (and setting environment variable -TAR to internal ensures so on all platforms). -

    -
  • -
  • R CMD check now warns if it finds -‘inst/doc/makefile’, and R CMD build renames such a -file to ‘inst/doc/Makefile’. -

    -
- - - - -

INSTALLATION

- - -
    -
  • Installing R no longer tries to find perl, and -R CMD no longer tries to substitute a full path for -awk nor perl – this was a legacy from the -days when they were used by R itself. Because a couple of -packages do use awk, it is set as the make -(rather than environment) variable AWK. -

    -
  • -
  • make check will now fail if there are differences -from the reference output when testing package examples and if -environment variable R_STRICT_PACKAGE_CHECK is set to a true -value. -

    -
  • -
  • The C99 double complex type is now required. -

    -

    The C99 complex trigonometric functions (such as csin) are -not currently required (FreeBSD lacks most of them): substitutes -are used if they are missing. -

    -
  • -
  • The C99 system call va_copy is now required. -

    -
  • -
  • If environment variable R_LD_LIBRARY_PATH is set -during configuration (for example in ‘config.site’) it is -used unchanged in file ‘etc/ldpaths’ rather than being -appended to. -

    -
  • -
  • configure looks for support for OpenMP and if -found compiles R with appropriate flags and also makes them -available for use in packages: see ‘Writing R Extensions’. -

    -

    This is currently experimental, and is only used in R with a -single thread for colSums() and colMeans(). Expect -it to be more widely used in later versions of R. -

    -

    This can be disabled by the --disable-openmp flag. -

    -
- - - - -

PACKAGE INSTALLATION

- - -
    -
  • R CMD INSTALL --clean now removes copies of a -‘src’ directory which are created when multiple -sub-architectures are in use. (Following a comment from -Berwin Turlach.) -

    -
  • -
  • File ‘R.css’ is now installed on a per-package basis -(in the package's ‘html’ directory) rather than in each -library tree, and this is used for all the HTML pages in the -package. This helps when installing packages with static HTML -pages for use on a webserver. It will also allow future versions -of R to use different stylesheets for the packages they install. -

    -
  • -
  • A top-level file ‘.Rinstignore’ in the package sources -can list (in the same way as ‘.Rbuildignore’) files under -inst that should not be installed. (Why should there be any -such files? Because all the files needed to re-build vignettes -need to be under inst/doc, but they may not need to be -installed.) -

    -
  • -
  • R CMD INSTALL has a new option ---compact-docs to compact any PDFs under the -‘inst/doc’ directory. Currently this uses qpdf, -which must be installed (see ‘Writing R Extensions’). -

    -
  • -
  • There is a new option --lock which can be used to -cancel the effect of --no-lock or --pkglock earlier -on the command line. -

    -
  • -
  • Option --pkglock can now be used with more than one -package, and is now the default if only one package is specified. -

    -
  • -
  • Argument lock of install.packages() can now be -use for Mac binary installs as well as for Windows ones. The -value "pkglock" is now accepted, as well as TRUE and -FALSE (the default). -

    -
  • -
  • There is a new option --no-clean-on-error for -R CMD INSTALL to retain a partially installed package for -forensic analysis. -

    -
  • -
  • Packages with names ending in ‘.’ are not portable -since Windows does not work correctly with such directory names. -This is now warned about in R CMD check, and will not be -allowed in R 2.14.x. -

    -
  • -
  • The vignette indices are more comprehensive (in the style of -browseVignetttes()). -

    -
- - - - -

DEPRECATED & DEFUNCT

- - -
    -
  • require(save = TRUE) is defunct, and use of the -save argument is deprecated. -

    -
  • -
  • R CMD check --no-latex is defunct: use ---no-manual instead. -

    -
  • -
  • R CMD Sd2Rd is defunct. -

    -
  • -
  • The gamma argument to hsv(), -rainbow(), and rgb2hsv() is deprecated -and no longer has any effect. -

    -
  • -
  • The previous options for R CMD build --binary -(--auto-zip, --use-zip-data and ---no-docs) are deprecated (or defunct): -use the new option --install-args instead. -

    -
  • -
  • When a character value is used for the EXPR -argument in switch(), only a single unnamed alternative -value is now allowed. -

    -
  • -
  • The wrapper utils::link.html.help() is no longer -available. -

    -
  • -
  • Zip-ing data sets in packages (and hence R CMD - INSTALL options --use-zip-data and --auto-zip, as -well as the ZipData: yes field in a DESCRIPTION file) -is defunct. -

    -

    Installed packages with zip-ed data sets can still be used, but a -warning that they should be re-installed will be given. -

    -
  • -
  • The ‘experimental’ alternative specification of a -namespace via .Export() etc is now defunct. -

    -
  • -
  • The option --unsafe to R CMD INSTALL is -deprecated: use the identical option --no-lock instead. -

    -
  • -
  • The entry point pythag in ‘Rmath.h’ is deprecated -in favour of the C99 function hypot. A wrapper for -hypot is provided for R 2.13.x only. -

    -
  • -
  • Direct access to the "source" attribute of functions -is deprecated; use deparse(fn, control="useSource") to access -it, and removeSource(fn) to remove it. -

    -
  • -
  • R CMD build --binary is now formally deprecated: -R CMD INSTALL --build has long been the preferred -alternative. -

    -
  • -
  • Single-character package names are deprecated (and R -is already disallowed to avoid confusion in Depends: -fields). -

    -
- - - - -

BUG FIXES

- - -
    -
  • drop.terms and the [ method for class -"terms" no longer add back an intercept. (Reported by -Niels Hansen.) -

    -
  • -
  • aggregate preserves the class of a column (e.g. a -date) under some circumstances where it discarded the class -previously. -

    -
  • -
  • p.adjust() now always returns a vector result, as -documented. In previous versions it copied attributes (such as -dimensions) from the p argument: now it only copies names. -

    -
  • -
  • On PDF and PostScript devices, a line width of zero was -recorded verbatim and this caused problems for some viewers -(a very thin line combined with a non-solid line dash pattern -could also cause a problem). On these devices, the line width is -now limited at 0.01 and for very thin lines with complex dash -patterns the device may force the line dash pattern to be solid. -(Reported by Jari Oksanen.) -

    -
  • -
  • The str() method for class "POSIXt" now gives -sensible output for 0-length input. -

    -
  • -
  • The one- and two-argument complex maths functions failed to -warn if NAs were generated (as their numeric analogues do). -

    -
  • -
  • Added .requireCachedGenerics to the dont.mind -list for library() to avoid warnings about duplicates. -

    -
  • -
  • $<-.data.frame messed with the class attribute, -breaking any S4 subclass. The S4 data.frame class now has its own -$<- method, and turns dispatch on for this primitive. -

    -
  • -
  • Map() did not look up a character argument f -in the correct frame, thanks to lazy evaluation. (PR#14495) -

    -
  • -
  • file.copy() did not tilde-expand from and to -when to was a directory. (PR#14507) -

    -
  • -
  • It was possible (but very rare) for the loading test in -R CMD INSTALL to crash a child R process and so leave -around a lock directory and a partially installed package. That -test is now done in a separate process. -

    -
  • -
  • plot(<formula>, data=<matrix>,..) now works in more -cases; similarly for points(), lines() and -text(). -

    -
  • -
  • edit.default() contained a manual dispatch for matrices -(the "matrix" class didn't really exist when it was written). -This caused an infinite recursion in the no-GUI case and has now -been removed. -

    -
  • -
  • data.frame(check.rows = TRUE) sometimes worked when -it should have detected an error. (PR#14530) -

    -
  • -
  • scan(sep= , strip.white=TRUE) sometimes stripped -trailing spaces from within quoted strings. (The real bug in -PR#14522.) -

    -
  • -
  • The rank-correlation methods for cor() and -cov() with use = "complete.obs" computed the ranks -before removing missing values, whereas the documentation implied -incomplete cases were removed first. (PR#14488) -

    -

    They also failed for 1-row matrices. -

    -
  • -
  • The perpendicular adjustment used in placing text and -expressions in the margins of plots was not scaled by -par("mex"). (Part of PR#14532.) -

    -
  • -
  • Quartz Cocoa device now catches any Cocoa exceptions that -occur during the creation of the device window to prevent crashes. -It also imposes a limit of 144 ft^2 on the area used by a window -to catch user errors (unit misinterpretation) early. -

    -
  • -
  • The browser (invoked by debug(), browser() -or otherwise) would display attributes such as "wholeSrcref" -that were intended for internal use only. -

    -
  • -
  • R's internal filename completion now properly handles -filenames with spaces in them even when the readline library is -used. This resolves PR#14452 provided the internal filename -completion is used (e.g., by setting rc.settings(files = - TRUE)). -

    -
  • -
  • Inside uniroot(f, ...), -Inf function values -are now replaced by a maximally negative value. -

    -
  • -
  • rowsum() could silently over/underflow on integer -inputs (reported by Bill Dunlap). -

    -
  • -
  • as.matrix() did not handle "dist" objects with -zero rows. -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.12.2 patched

- - - -

NEW FEATURES

- - -
    -
  • max() and min() work harder to ensure that -NA has precedence over NaN, so e.g. min(NaN, - NA) is NA. (This was not previously documented except -for within a single numeric vector, where compiler optimizations -often defeated the code.) -

    -
- - - - -

BUG FIXES

- - -
    -
  • A change to the C function R_tryEval had broken error -messages in S4 method selection; the error message is now printed. -

    -
  • -
  • PDF output with a non-RGB color model used RGB for the line -stroke color. (PR#14511) -

    -
  • -
  • stats4::BIC() assumed without checking that an object -of class "logLik" has an "nobs" attribute: -glm() fits did not and so BIC() failed for them. -

    -
  • -
  • In some circumstances a one-sided mantelhaen.test() -reported the p-value for the wrong tail. (PR#14514) -

    -
  • -
  • Passing the invalid value lty = NULL to axis() -sent an invalid value to the graphics device, and might cause the -device to segfault. -

    -
  • -
  • Sweave() with concordance=TRUE could lead to -invalid PDF files; ‘Sweave.sty’ has been updated to avoid -this. -

    -
  • -
  • Non-ASCII characters in the titles of help pages were -not rendered properly in some locales, and could cause errors -or warnings. -

    -
  • -
  • checkRd() gave a spurious error if the \href -macro was used. -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.12.2

- - - -

SIGNIFICANT USER-VISIBLE CHANGES

- - -
    -
  • Complex arithmetic (notably z^n for complex z -and integer n) gave incorrect results since R 2.10.0 on -platforms without C99 complex support. This and some -lesser issues in trigonometric functions have been corrected. -

    -

    Such platforms were rare (we know of Cygwin and FreeBSD). -However, because of new compiler optimizations in the way complex -arguments are handled, the same code was selected on x86_64 Linux -with gcc 4.5.x at the default -O2 optimization -(but not at -O). -

    -
  • -
  • There is a workaround for crashes seen with several packages -on systems using zlib 1.2.5: see the INSTALLATION section. -

    -
- - - - -

NEW FEATURES

- - -
    -
  • PCRE has been updated to 8.12 (two bug-fix releases since 8.10). -

    -
  • -
  • rep(), seq(), seq.int() and -seq_len() report more often when the first element is taken -of an argument of incorrect length. -

    -
  • -
  • The Cocoa back-end for the quartz() graphics device -on Mac OS X provides a way to disable event loop processing -temporarily (useful, e.g., for forked instances of R). -

    -
  • -
  • kernel()'s default for m was not appropriate -if coef was a set of coefficients. (Reported by Pierre -Chausse.) -

    -
  • -
  • bug.report() has been updated for the current R bug -tracker, which does not accept emailed submissions. -

    -
  • -
  • R CMD check now checks for the correct use of -$(LAPACK_LIBS) (as well as $(BLAS_LIBS)), since -several CRAN recent submissions have ignored ‘Writing R -Extensions’. -

    -
- - - - -

INSTALLATION

- - -
    -
  • The zlib sources in the distribution are now built -with all symbols remapped: this is intended to avoid problems seen -with packages such as XML and rggobi which link to -‘zlib.so.1’ on systems using zlib 1.2.5. -

    -
  • -
  • The default for FFLAGS and FCFLAGS with -gfortran on x86_64 Linux has been changed back to -g - -O2: however, setting -g -O may still be needed for -gfortran 4.3.x. -

    -
- - - - -

PACKAGE INSTALLATION

- - -
    -
  • A LazyDataCompression field in the ‘DESCRIPTION’ -file will be used to set the value for the ---data-compress option of R CMD INSTALL. -

    -
  • -
  • Files ‘R/sysdata.rda’ of more than 1Mb are now stored -in the lazyload database using xz compression: this for -example halves the installed size of package Imap. -

    -
  • -
  • R CMD INSTALL now ensures that directories -installed from ‘inst’ have search permission for everyone. -

    -

    It no longer installs files ‘inst/doc/Rplots.ps’ and -‘inst/doc/Rplots.pdf’. These are almost certainly left-overs -from Sweave runs, and are often large. -

    -
- - - - -

DEPRECATED & DEFUNCT

- - -
    -
  • The ‘experimental’ alternative specification of a -namespace via .Export() etc is now deprecated. -

    -
  • -
  • zip.file.extract() is now deprecated. -

    -
  • -
  • Zip-ing data sets in packages (and hence R CMD - INSTALL --use-zip-data and the ZipData: yes field in a -DESCRIPTION file) is deprecated: using efficiently -compressed ‘.rda’ images and lazy-loading of data has -superseded it. -

    -
- - - - -

BUG FIXES

- - -
    -
  • identical() could in rare cases generate a warning -about non-pairlist attributes on CHARSXPs. As these are used for -internal purposes, the attribute check should be skipped. -(Reported by Niels Richard Hansen). -

    -
  • -
  • If the filename extension (usually ‘.Rnw’) was not -included in a call to Sweave(), source references would not -work properly and the keep.source option failed. (PR#14459) -

    -
  • -
  • format.data.frame() now keeps zero character column names. -

    -
  • -
  • pretty(x) no longer raises an error when x -contains solely non-finite values. (PR#14468) -

    -
  • -
  • The plot.TukeyHSD() function now uses a line width of -0.5 for its reference lines rather than lwd = 0 (which -caused problems for some PDF and PostScript viewers). -

    -
  • -
  • The big.mark argument to prettyNum(), -format(), etc. was inserted reversed if it was more than -one character long. -

    -
  • -
  • R CMD check failed to check the filenames under -‘man’ for Windows' reserved names. -

    -
  • -
  • The "Date" and "POSIXt" methods for -seq() could overshoot when to was supplied and -by was specified in months or years. -

    -
  • -
  • The internal method of untar() now restores hard -links as file copies rather than symbolic links (which did not -work for cross-directory links). -

    -
  • -
  • unzip() did not handle zip files which contained -filepaths with two or more leading directories which were not in -the zipfile and did not already exist. (It is unclear if such -zipfiles are valid and the third-party C code used did not support -them, but PR#14462 created one.) -

    -
  • -
  • combn(n, m) now behaves more regularly for the border -case m = 0. (PR#14473) -

    -
  • -
  • The rendering of numbers in plotmath expressions (e.g. -expression(10^2)) used the current settings for conversion -to strings rather than setting the defaults, and so could be -affected by what has been done before. (PR#14477) -

    -
  • -
  • The methods of napredict() and naresid() for -na.action = na.exclude fits did not work correctly in the -very rare event that every case had been omitted in the fit. -(Reported by Simon Wood.) -

    -
  • -
  • weighted.residuals(drop0=TRUE) returned a vector when -the residuals were a matrix (e.g. those of class "mlm"). -(Reported by Bill Dunlap.) -

    -
  • -
  • Package HTML index files ‘<pkg>/html/00Index.html’ were -generated with a stylesheet reference that was not correct for -static browsing in libraries. -

    -
  • -
  • ccf(na.action = na.pass) was not implemented. -

    -
  • -
  • The parser accepted some incorrect numeric constants, -e.g. 20x2. (Reported by Olaf Mersmann.) -

    -
  • -
  • format(*, zero.print) did not always replace the full -zero parts. -

    -
  • -
  • Fixes for subsetting or subassignment of "raster" -objects when not both i and j are specified. -

    -
  • -
  • R CMD INSTALL was not always respecting the -ZipData: yes field of a ‘DESCRIPTION’ file (although -this is frequently incorrectly specified for packages with no data -or which specify lazy-loading of data). -

    -

    R CMD INSTALL --use-zip-data was incorrectly implemented -as --use-zipdata since R 2.9.0. -

    -
  • -
  • source(file, echo=TRUE) could fail if the file -contained #line directives. It now recovers more gracefully, but -may still display the wrong line if the directive gives incorrect -information. -

    -
  • -
  • atan(1i) returned NaN+Infi (rather than -0+Infi) on platforms without C99 complex support. -

    -
  • -
  • library() failed to cache S4 metadata (unlike -loadNamespace()) causing failures in S4-using packages -without a namespace (e.g. those using reference classes). -

    -
  • -
  • The function qlogis(lp, log.p=TRUE) no longer -prematurely overflows to Inf when exp(lp) is close to 1. -

    -
  • -
  • Updating S4 methods for a group generic function requires -resetting the methods tables for the members of the group (patch -contributed by Martin Morgan). -

    -
  • -
  • In some circumstances (including for package XML), -R CMD INSTALL installed version-control directories from -source packages. -

    -
  • -
  • Added PROTECT calls to some constructed expressions -used in C level eval calls. -

    -
  • -
  • utils:::create.post() (used by bug.report() -and help.request()) failed to quote arguments to the -mailer, and so often failed. -

    -
  • -
  • bug.report() was naive about how to extract -maintainer email addresses from package descriptions, so would -often try mailing to incorrect addresses. -

    -
  • -
  • debugger() could fail to read the environment of a -call to a function with a ... argument. (Reported by -Charlie Roosen.) -

    -
  • -
  • prettyNum(c(1i, NA), drop0=TRUE) or -str(NA_complex_) now work correctly. -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.12.1

- - - -

NEW FEATURES

- - -
    -
  • The DVI/PDF reference manual now includes the help pages for -all the standard packages: splines, stats4 and -tcltk were previously omitted (intentionally). -

    -
  • -
  • http://www.rforge.net has been added to the default -set of repositories known to setRepositories(). -

    -
  • -
  • xz-utils has been updated to version 5.0.0. -

    -
  • -
  • reshape() now makes use of sep when forming -names during reshaping to wide format. (PR#14435) -

    -
  • -
  • legend() allows the length of lines to be set by the -end user via the new argument seg.len. -

    -
  • -
  • New S4 reference class utility methods copy(), -field(), getRefClass() and getClass() have -been added to package methods. -

    -
  • -
  • When a character value is used for the EXPR -argument in switch(), a warning is given if more than -one unnamed alternative value is given. This will become an -error in R 2.13.0. -

    -
  • -
  • StructTS(type = "BSM") now allows series with just -two seasons. (Reported by Birgit Erni.) -

    -
- - - - -

INSTALLATION

- - -
    -
  • The PDF reference manual is now built as PDF version 1.5 -with object compression, which on platforms for which this is not -the default (notably MiKTeX) halves its size. -

    -
  • -
  • Variable FCLIBS can be set during configuration, for -any additional library flags needed when linking a shared object -with the Fortran 9x compiler. (Needed with Solaris Studio 12.2.) -

    -
- - - - -

BUG FIXES

- - -
    -
  • seq.int() no longer sometimes evaluates arguments -twice. (PR#14388) -

    -
  • -
  • The data.frame method of format() failed if a -column name was longer than 256 bytes (the maximum length allowed -for an R name). -

    -
  • -
  • predict(<lm object>, type ="terms", ...) failed if -both terms and interval were specified. (Reported -by Bill Dunlap.) -

    -

    Also, if se.fit = TRUE the standard errors were reported -for all terms, not just those selected by a non-null terms. -

    -
  • -
  • The TRE regular expressions engine could terminate R rather -than give an error when given certain invalid regular expressions. -(PR#14398) -

    -
  • -
  • cmdscale(eig = TRUE) was documented to return n-1 -eigenvalues but in fact only returned k. It now returns -all n eigenvalues. -

    -

    cmdscale(add = TRUE) failed to centre the return -configuration and sometimes lost the labels on the points. Its -return value was described wrongly (it is always a list and -contains component ac). -

    -
  • -
  • promptClass() in package methods now works for -reference classes and gives a suitably specialized skeleton of -documentation. -

    -

    Also, callSuper() now works via the methods() -invocation as well as for initially specified methods. -

    -
  • -
  • download.file() could leave the destination file open -if the URL was not able to be opened. (PR#14414) -

    -
  • -
  • Assignment of an environment to functions or as an attribute -to other objects now works for S4 subclasses of "environment". -

    -
  • -
  • Use of [[<- for S4 subclasses of -"environment" generated an infinite recursion from the -method. The method has been replaced by internal code. -

    -
  • -
  • In a reference class S4 method, callSuper() now works in -initialize() methods when there is no explicit superclass -method. -

    -
  • -
  • ! dropped attributes such as names and dimensions from a -length-zero argument. (PR#14424) -

    -
  • -
  • When list2env() created an environment it was missing -a PROTECT call and so was vulnerable to garbage collection. -

    -
  • -
  • Sweave() with keep.source=TRUE dropped -comments at the start and end of code chunks. It could also -fail when \SweaveInput was combined with named chunks. -

    -
  • -
  • The Fortran code used by nls(algorithm = "port") -could infinite-loop when compiled with high optimization on a -modern version of gcc, and SAFE_FFLAGS is now used -to make this less likely. (PR#14427, seen with 32-bit Windows -using gcc 4.5.0 used from R 2.12.0.) -

    -
  • -
  • sapply() with default simplify = TRUE and -mapply() with default SIMPLIFY = TRUE wrongly -simplified language-like results, as, e.g., in -mapply(1:2, c(3,7), FUN = function(i,j) call(':',i,j)). -

    -
  • -
  • Backreferences to undefined patterns in -[g]sub(pcre = TRUE) could cause a segfault. (PR#14431) -

    -
  • -
  • The format() (and hence the print()) method -for class "Date" rounded fractional dates towards zero: it -now always rounds them down. -

    -
  • -
  • Reference S4 class creation could generate ambiguous -inheritance patterns under very special circumstances. -

    -
  • -
  • [[<- turned S4 subclasses of "environment" into -plain environments. -

    -
  • -
  • Long titles for help pages were truncated in package indices -and a few other places. -

    -
  • -
  • Additional utilities now work correctly with S4 subclasses of -"environment" (rm, locking tools and active -bindings). -

    -
  • -
  • spec.ar() now also work for the "ols" method. -(Reported by Hans-Ruedi Kuensch.) -

    -
  • -
  • The initialization of objects from S4 subclasses of -"environment" now allocates a new environment object. -

    -
  • -
  • R CMD check has more protection against (probably -erroneous) example or test output which is invalid in the current -locale. -

    -
  • -
  • qr.X() with column names and pivoting now also pivots -the column names. (PR#14438) -

    -
  • -
  • unit.pmax() and unit.pmin() in package -grid gave incorrect results when all inputs were of length 1. -(PR#14443) -

    -
  • -
  • The parser for ‘NAMESPACE’ files ignored misspelled -directives, rather than signalling an error. For 2.12.x a warning -will be issued, but this will be correctly reported as an error -in later releases. (Reported by Charles Berry.) -

    -
  • -
  • Fix for subsetting of "raster" objects when only one -of i or j is specified. -

    -
  • -
  • grid.raster() in package grid did not accept -"nativeRaster" objects (like rasterImage() does). -

    -
  • -
  • Rendering raster images in PDF output was resetting the -clipping region. -

    -
  • -
  • Rendering of raster images on cairo X11 device was wrong, -particularly when a small image was being scaled up using -interpolation. -

    -

    With cairo < 1.6, will be better than before, though still a -little clunky. With cairo >= 1.6, should be sweet as. -

    -
  • -
  • Several bugs fixed in read.DIF(): single column -inputs caused errors, cells marked as "character" could -be converted to other types, and (in Windows) copying from the -clipboard failed. +

  • Where supported, tools::texi2dvi() limits the number +of passes tried to 20.

-

../../html/logo.jpg CHANGES IN R VERSION 2.12.0

- - - -

NEW FEATURES

+

C-LEVEL FACILITIES

    -
  • Reading a package's ‘CITATION’ file now defaults to -ASCII rather than Latin-1: a package with a non-ASCII -‘CITATION’ file should declare an encoding in its -‘DESCRIPTION’ file and use that encoding for the -‘CITATION’ file. -

    -
  • -
  • difftime() now defaults to the "tzone" -attribute of "POSIXlt" objects rather than to the current -timezone as set by the default for the tz argument. (Wish -of PR#14182.) -

    -
  • -
  • pretty() is now generic, with new methods for -"Date" and "POSIXt" classes (based on code -contributed by Felix Andrews). -

    -
  • -
  • unique() and match() are now faster on -character vectors where all elements are in the global CHARSXP -cache and have unmarked encoding (ASCII). Thanks to Matthew -Dowle for suggesting improvements to the way the hash code is -generated in ‘unique.c’. -

    -
  • -
  • The enquote() utility, in use internally, is exported now. -

    -
  • -
  • .C() and .Fortran() now map non-zero return -values (other than NA_LOGICAL) for logical vectors to -TRUE: it has been an implicit assumption that they are -treated as true. -

    -
  • -
  • The print() methods for "glm" and "lm" -objects now insert linebreaks in long calls in the same way that -the print() methods for "summary.[g]lm" objects -have long done. This does change the layout of the examples for -a number of packages, e.g. MASS. (PR#14250) -

    -
  • -
  • constrOptim() can now be used with method -"SANN". (PR#14245) -

    -

    It gains an argument hessian to be passed to -optim(), which allows all the ... arguments to be -intended for f() and grad(). (PR#14071) -

    -
  • -
  • curve() now allows expr to be an object of -mode "expression" as well as "call" and -"function". -

    -
  • -
  • The "POSIX[cl]t" methods for Axis() have been -replaced by a single method for "POSIXt". -

    -

    There are no longer separate plot() methods for -"POSIX[cl]t" and "Date": the default method has -been able to handle those classes for a long time. This -inter alia allows a single date-time object to be -supplied, the wish of PR#14016. -

    -

    The methods had a different default ("") for xlab. -

    -
  • -
  • Classes "POSIXct", "POSIXlt" and -"difftime" have generators .POSIXct(), -.POSIXlt() and .difftime(). Package authors are -advised to make use of them (they are available from R 2.11.0) to -proof against planned future changes to the classes. -

    -

    The ordering of the classes has been changed, so "POSIXt" -is now the second class. See the document ‘Updating -packages for changes in R 2.12.x’ on -http://developer.r-project.org for the consequences for a -handful of CRAN packages. -

    -
  • -
  • The "POSIXct" method of as.Date() allows a -timezone to be specified (but still defaults to UTC). -

    -
  • -
  • New list2env() utility function as an inverse of -as.list(<environment>) and for fast multi-assign() -to existing environment. as.environment() is now generic -and uses list2env() as list method. -

    -
  • -
  • There are several small changes to output which ‘zap’ -small numbers, e.g. in printing quantiles of residuals in -summaries from "lm" and "glm" fits, and in test -statistics in print.anova(). -

    -
  • -
  • Special names such as "dim", "names", etc, are -now allowed as slot names of S4 classes, with "class" the -only remaining exception. -

    -
  • -
  • File ‘.Renviron’ can have architecture-specific versions -such as ‘.Renviron.i386’ on systems with sub-architectures. -

    -
  • -
  • installed.packages() has a new argument -subarch to filter on sub-architecture. -

    -
  • -
  • The summary() method for packageStatus() now -has a separate print() method. -

    -
  • -
  • The default summary() method returns an object -inheriting from class "summaryDefault" which has a -separate print() method that calls zapsmall() for -numeric/complex values. -

    -
  • -
  • The startup message now includes the platform and if used, -sub-architecture: this is useful where different -(sub-)architectures run on the same OS. -

    -
  • -
  • The getGraphicsEvent() mechanism now allows multiple windows -to return graphics events, through the new functions -setGraphicsEventHandlers(), setGraphicsEventEnv(), and -getGraphicsEventEnv(). (Currently implemented in the -windows() and X11() devices.) +

  • (Windows only) A function R_WaitEvent() has been +added (with declaration in header‘R.h’) to block execution +until the next event is received by R.

  • -
  • tools::texi2dvi() gains an index argument, -mainly for use by R CMD Rd2pdf. -

    -

    It avoids the use of texindy by texinfo's -texi2dvi >= 1.157, since that does not emulate -'makeindex' well enough to avoid problems with special characters -(such as (, {, !) in indices. +

  • Remapping in the ‘Rmath.h’ header can be suppressed by +defining R_NO_REMAP_RMATH.

  • -
  • The ability of readLines() and scan() to -re-encode inputs to marked UTF-8 strings on Windows since R 2.7.0 -is extended to non-UTF-8 locales on other OSes. +

  • The remapping of rround() in header ‘Rmath.h’ +has been removed: use fround() instead.

  • -
  • scan() gains a fileEncoding argument to -match read.table(). +

  • ftrunc() in header ‘Rmath.h’ is now a wrapper +for the C99 function trunc(), which might as well be used +in C code: ftrunc() is still needed for portable C++ code.

  • -
  • points() and lines() gain "table" -methods to match plot(). (Wish of PR#10472.) +

  • The never-documented remapping of prec() to +fprec() in header ‘Rmath.h’ has been removed.

  • -
  • Sys.chmod() allows argument mode to be a -vector, recycled along paths. +

  • The included LAPACK subset now contains ZGESDD and +ZGELSD.

  • -
  • There are |, & and xor() methods for -classes "octmode" and "hexmode", which work -bitwise. +

  • The function LENGTH() now checks that it is only +applied to vector arguments. However, in packages length() +should be used. (In R itself LENGTH() is a macro without +the function overhead of length().)

  • -
  • Environment variables R_DVIPSCMD, R_LATEXCMD, -R_MAKEINDEXCMD, R_PDFLATEXCMD are no longer used -nor set in an R session. (With the move to -tools::texi2dvi(), the conventional environment variables -LATEX, MAKEINDEX and PDFLATEX will be used. -options("dvipscmd") defaults to the value of DVIPS, -then to "dvips".) +

  • Calls to SET_VECTOR_ELT() and SET_STRING_ELT() +are now checked for indices which are in-range: several packages +were writing one element beyond the allocated length.

  • -
  • New function isatty() to see if terminal connections are -redirected. +

  • allocVector3 has been added which allows custom +allocators to be used for individual vector allocations.

    -
  • -
  • summaryRprof() returns the sampling interval in -component sample.interval and only returns in -by.self data for functions with non-zero self times. +

+ + + + +

DEPRECATED AND DEFUNCT

+ + +
    +
  • chol(pivot = TRUE, LINPACK = TRUE) is defunct.

    -
  • -
  • print(x) and str(x) now indicate if an empty -list x is named. +

    Arguments EISPACK for eigen() and LINPACK for +chol(), chol2inv(), solve() and svd() +are ignored: LAPACK is always used.

  • -
  • install.packages() and remove.packages() with -lib unspecified and multiple libraries in -.libPaths() inform the user of the library location used -with a message rather than a warning. +

  • .find.package() and .path.package() are +defunct: only the versions without the initial dot introduced in +R 2.13.0 have ever been in the API.

  • -
  • There is limited support for multiple compressed streams on a -file: all of [bgx]zfile() allow streams to be appended to an -existing file, but bzfile() reads only the first stream. +

  • Partial matching when using the $ operator on +data frames now throws a warning and may become defunct in the +future. If partial matching is intended, replace foo$bar +by foo[["bar", exact = FALSE]].

  • -
  • Function person() in package utils now uses -a given/family scheme in preference to first/middle/last, is -vectorized to handle an arbitrary number of persons, and gains a -role argument to specify person roles using a controlled -vocabulary (the MARC relator terms). +

  • The long-deprecated use of \synopsis in the +Usage section of ‘.Rd’ files has been removed: such +sections are now ignored (with a warning).

  • -
  • Package utils adds a new "bibentry" class -for representing and manipulating bibliographic information in -enhanced BibTeX style, unifying and enhancing the previously -existing mechanisms. +

  • package.skeleton()'s deprecated argument +namespace has been removed.

  • -
  • A bibstyle() function has been added to the -tools package with default JSS style for rendering -"bibentry" objects, and a mechanism for registering other -rendering styles. +

  • Many methods are no longer exported by package stats. +They are all registered on their generic, which should be called +rather than calling a method directly.

  • -
  • Several aspects of the display of text help are now -customizable using the new Rd2txt_options() function. -options("help_text_width") is no longer used. +

  • Functions readNEWS() and checkNEWS() in +package tools are defunct.

  • -
  • Added \href tag to the Rd format, to allow -hyperlinks to URLs without displaying the full URL. +

  • download.file(method = "lynx") is deprecated.

  • -
  • Added \newcommand and \renewcommand tags -to the Rd format, to allow user-defined macros. +

  • .C(DUP = FALSE) and .Fortran(DUP = FALSE) are +now deprecated, and may be disabled in future versions of R. As +their help has long said, .Call() is much preferred.

    -
  • -
  • New toRd() generic in the tools package to -convert objects to fragments of Rd code, and added -"fragment" argument to Rd2txt(), Rd2HTML(), -and Rd2latex() to support it. +

    R CMD check notes such usages (by default).

  • -
  • Directory ‘R_HOME/share/texmf’ now follows the TDS -conventions, so can be set as a texmf tree (‘root -directory’ in MiKTeX parlance). +

  • The workaround of setting R_OSX_VALGRIND has been +removed: it is not needed in current valgrind.

    -
  • -
  • S3 generic functions now use correct S4 inheritance when -dispatching on an S4 object. See ?Methods, section on -“Methods for S3 Generic Functions” for recommendations -and details. +

+ + + + +

BUG FIXES

+ + +
    +
  • Calling lm.wfit() with no non-zero weights gave an +array-overrun in the Fortran code and a not very sensible answer. +It is now special-cased with a simpler answer (no qr +component).

  • -
  • format.pval() gains a ... argument to pass -arguments such as nsmall to format(). (Wish of -PR#9574) +

  • Error messages involving non-syntactic names (e.g. as produced +by `\r` when that object does not exist) now encode +the control characters. (Reported by Hadley Wickham.)

  • -
  • legend() supports title.adj. (Wish of -PR#13415) +

  • getGraphicsEvent() caused 100% usage of one CPU in +Windows. (PR#15500)

  • -
  • Added support for subsetting "raster" objects, plus -assigning to a subset, conversion to a matrix (of colour -strings), and comparisons (== and !=). +

  • nls() with no start argument may now work +inside another function (scoping issue).

  • -
  • Added a new parseLatex() function (and related -functions deparseLatex() and latexToUtf8()) to -support conversion of bibliographic entries for display in R. +

  • pbeta() and similar work better for very large +(billions) ncp.

  • -
  • Text rendering of \itemize in help uses a Unicode -bullet in UTF-8 and most single-byte Windows locales. +

  • Where time zones have changed abbreviations over the years, +the software tries to more consistently use the abbreviation +appropriate to the time or if that is unknown, the current +abbreviation. On some platforms where the C function +localtime changed the tzname variables the reported +abbreviation could have been that of the last time converted.

  • -
  • Added support for polygons with holes to the graphics -engine. This is implemented for the pdf(), -postscript(), x11(type="cairo"), windows(), -and quartz() devices (and associated raster formats), -but not for x11(type="Xlib") or xfig() or -pictex(). The user-level interface is the -polypath() function in graphics and -grid.path() in grid. +

  • all.equal(list(1), identity) now works.

  • -
  • File ‘NEWS’ is now generated at installation with a -slightly different format: it will be in UTF-8 on platforms using -UTF-8, and otherwise in ASCII. There is also a PDF version, -‘NEWS.pdf’, installed at the top-level of the R distribution. +

  • Bug fix for pushing viewports in grid (reported by +JJ Allaire and Kevin Ushey).

    -
  • -
  • kmeans(x, 1) now works. Further, kmeans now -returns between and total sum of squares. +

    NOTE for anyone poking around within the graphics engine display +list (despite the warnings not to) that this changes what +is recorded by grid on the graphics engine display list.

  • -
  • arrayInd() and which() gain an argument -useNames. For arrayInd, the default is now false, -for speed reasons. +

  • Extra checks have been added for unit resolution and +conversion in grid, to catch instances of division-by-zero. +This may introduce error messages in existing code and/or produce +a different result in existing code (but only where a non-finite +location or dimension may now become zero).

  • -
  • As is done for closures, the default print method for -the formula class now displays the associated environment if it is -not the global environment. +

  • Some bugs in TRE have been corrected by updating from the +git repository. This allows R to be installed on some +platforms for which this was a blocker (PR#15087 suggests Linux +on ARM and HP-UX).

  • -
  • A new facility has been added for inserting code into a -package without re-installing it, to facilitate testing -changes which can be selectively added and backed out. See -?insertSource. +

  • ? applied to a call to an S4 generic failed in +several cases. (PR#15680)

  • -
  • New function readRenviron to (re-)read files in the -format of ‘~/.Renviron’ and ‘Renviron.site’. +

  • The implicit S4 generics for primitives with ... in +their argument list were incorrect. (PR#15690)

  • -
  • require() will now return FALSE (and not fail) -if loading the package or one of its dependencies fails. +

  • Bug fixes to methods::callGeneric(). (PR#15691)

  • -
  • aperm() now allows argument perm to be a -character vector when the array has named dimnames (as the results -of table() calls do). Similarly, array() allows -MARGIN to be a character vector. (Based on suggestions of -Michael Lachmann.) +

  • The bug fix to aggregrate() in PR#15004 introduced +a new bug in the case of no grouping variables. (PR#15699)

  • -
  • Package utils now exports and documents functions -aspell_package_Rd_files() and -aspell_package_vignettes() for spell checking package Rd -files and vignettes using Aspell, Ispell or Hunspell. +

  • In rare cases printing deeply nested lists overran a buffer +by one byte and on a few platforms segfaulted. (PR#15679)

  • -
  • Package news can now be given in Rd format, and -news() prefers these ‘inst/NEWS.Rd’ files to old-style -plain text ‘NEWS’ or ‘inst/NEWS’ files. +

  • The dendrogram method of as.dendrogram() was hidden +accidentally, (PR#15703), and order.dendrogram(d) gave +too much for a leaf d. (PR#15702)

  • -
  • New simple function packageVersion(). +

  • R would try to kill processes on exit that have pids ever +used by a child process spawned by mcparallel even though +the current process with that pid was not actually its child.

  • -
  • The PCRE library has been updated to version 8.10. +

  • cophenetic() applied to a "dendrogram" object +sometimes incorrectly returned a "Labels" attribute with +dimensions. (PR#15706)

  • -
  • The standard Unix-alike terminal interface declares its name -to readline as 'R', so that can be used for conditional sections -in ‘~/.inputrc’ files. +

  • printCoefmat() called from quite a few print() +methods now obeys small getOption("width") settings, +line wrapping the "signif. codes" legend appropriately. +(PR#15708)

  • -
  • ‘Writing R Extensions’ now stresses that the standard -sections in ‘.Rd’ files (other than \alias, -\keyword and \note) are intended to be unique, and -the conversion tools now drop duplicates with a warning. -

    -

    The ‘.Rd’ conversion tools also warn about an unrecognized type -in a \docType section. +

  • model.matrix() assumed that the stored dimnames for a +matrix was NULL or length 2, but length 1 occurred.

  • -
  • ecdf() objects now have a quantile() method. +

  • The clipping region for a device was sometimes used in base +graphics before it was set.

    -
  • -
  • format() methods for date-time objects now attempt to make -use of a "tzone" attribute with "%Z" and -"%z" formats, but it is not always possible. (Wish of -PR#14358.) +

+ + + + +

../../html/logo.jpg CHANGES IN R 3.0.3

+ + + +

NEW FEATURES

+ + +
    +
  • On Windows there is support for making ‘.texi’ manuals +using texinfo 5.0 or later: the setting is in file +‘src/gnuwin32/MkRules.dist’.

    -
  • -
  • tools::texi2dvi(file, clean = TRUE) now works in more -cases (e.g. where emulation is used and when ‘file’ is not in -the current directory). +

    A packaging of the Perl script and modules for texinfo +5.2 has been made available at +http://www.stats.ox.ac.uk/pub/Rtools/.

  • -
  • New function droplevels() to remove unused factor levels. +

  • write.table() now handles matrices of +2^31 or more elements, for those with large amounts +of patience and disc space.

  • -
  • system(command, intern = TRUE) now gives an error on -a Unix-alike (as well as on Windows) if command cannot be -run. It reports a non-success exit status from running -command as a warning. -

    -

    On a Unix-alike an attempt is made to return the actual exit -status of the command in system(intern = FALSE): previously -this had been system-dependent but on POSIX-compliant systems the -value return was 256 times the status. +

  • There is a new function, La_version(), to report the +version of LAPACK in use.

  • -
  • system() has a new argument ignore.stdout -which can be used to (portably) ignore standard output. +

  • The HTML version of ‘An Introduction to R’ now has +links to PNG versions of the figures.

  • -
  • system(intern = TRUE) and pipe() connections -are guaranteed to be available on all builds of R. +

  • There is some support to produce manuals in ebook +formats. (See ‘doc/manual/Makefile’. Suggested by Mauro +Cavalcanti.)

  • -
  • Sys.which() has been altered to return "" if -the command is not found (even on Solaris). +

  • On a Unix-alike Sys.timezone() returns NA if +the environment variable TZ is unset, to distinguish it from +an empty string which on some OSes means the UTC time zone.

  • -
  • A facility for defining reference-based S4 classes (in the -OOP style of Java, C++, etc.) has been added experimentally to -package methods; see ?ReferenceClasses. +

  • The backtick may now be escaped in strings, to allow names +containing them to be constructed, e.g. `\``. (PR#15621)

  • -
  • The predict method for "loess" fits gains an -na.action argument which defaults to na.pass rather -than the previous default of na.omit. -

    -

    Predictions from "loess" fits are now named from the row -names of newdata. +

  • read.table(), readLines() and scan() +now warn when an embedded nul is found in the input. (Related to +PR#15625 which was puzzled by the behaviour in this unsupported +case.)

  • -
  • Parsing errors detected during Sweave() processing -will now be reported referencing their original location in the -source file. +

  • (Windows only.) file.symlink() works around the +undocumented restriction of the Windows system call to +backslashes. (Wish of PR#15631.)

  • -
  • New adjustcolor() utility, e.g., for simple -translucent color schemes. +

  • KalmanForecast(fast = FALSE) is now the default, and +the help contains an example of how fast = TRUE can be used +in this version. (The usage will change in 3.1.0.)

  • -
  • qr() now has a trivial lm method with a -simple (fast) validity check. +

  • strptime() now checks the locale only when +locale-specific formats are used and caches the locale in use: +this can halve the time taken on OSes with slow system +functions (e.g. OS X).

  • -
  • An experimental new programming model has been added to -package methods for reference (OOP-style) classes and -methods. See ?ReferenceClasses. +

  • strptime() and the format() methods for +classes "POSIXct", "POSIXlt" and "Date" +recognize strings with marked encodings: this allows, for example, +UTF-8 French month names to be read on (French) Windows.

  • -
  • bzip2 has been updated to version 1.0.6 (bug-fix release). ---with-system-bzlib now requires at least version 1.0.6. +

  • iconv(to = "utf8") is now accepted on all platforms +(some implementations did already, but GNU libiconv did not: +however converted strings were not marked as being in UTF-8). The +official name, "UTF-8" is still preferred.

  • -
  • R now provides ‘jss.cls’ and ‘jss.bst’ (the class -and bib style file for the Journal of Statistical Software) as -well as ‘RJournal.bib’ and ‘Rnews.bib’, and -R CMD ensures that the ‘.bst’ and ‘.bib’ files -are found by BibTeX. +

  • available.packages() is better protected against +corrupt metadata files. (A recurring problem with Debian package +shogun-r: PR#14713.)

  • -
  • Functions using the TAR environment variable no longer -quote the value when making system calls. This allows -values such as tar --force-local, but does require -additional quotes in, e.g., TAR = "'/path with spaces/mytar'". +

  • Finalizers are marked to be run at garbage collection, but +run only at a somewhat safer later time (when interrupts are +checked). This circumvents some problems with finalizers running +arbitrary code during garbage collection (the known instances being +running options() and (C-level) path.expand() +re-entrantly).

-

DEPRECATED & DEFUNCT

+

INSTALLATION and INCLUDED SOFTWARE

    -
  • Supplying the parser with a character string containing both -octal/hex and Unicode escapes is now an error. -

    -
  • -
  • File extension ‘.C’ for C++ code files in packages is -now defunct. -

    -
  • -
  • R CMD check no longer supports configuration -files containing Perl configuration variables: use the environment -variables documented in ‘R Internals’ instead. -

    -
  • -
  • The save argument of require() now defaults to -FALSE and save = TRUE is now deprecated. (This -facility is very rarely actually used, and was superseded by the -Depends field of the ‘DESCRIPTION’ file long ago.) -

    -
  • -
  • R CMD check --no-latex is deprecated in favour of ---no-manual. -

    -
  • -
  • R CMD Sd2Rd is formally deprecated and will be -removed in R 2.13.0. +

  • The included version of PCRE has been updated to 8.34. This +fixes bugs and makes the behaviour closer to Perl 5.18. In +particular, the concept of ‘space’ includes VT and +hence agrees with POSIX's.

@@ -7626,105 +1235,14 @@
    -
  • install.packages() has a new argument -libs_only to optionally pass --libs-only to -R CMD INSTALL and works analogously for Windows binary -installs (to add support for 64- or 32-bit Windows). -

    -
  • -
  • When sub-architectures are in use, the installed -architectures are recorded in the Archs field of the -‘DESCRIPTION’ file. There is a new default filter, -"subarch", in available.packages() to make use of -this. -

    -

    Code is compiled in a copy of the ‘src’ directory when a -package is installed for more than one sub-architecture: this -avoid problems with cleaning the sources between building -sub-architectures. -

    -
  • -
  • R CMD INSTALL --libs-only no longer overrides the -setting of locking, so a previous version of the package will be -restored unless --no-lock is specified. -

    -
- - - - -

UTILITIES

- - -
    -
  • R CMD Rprof|build|check are now based on R rather -than Perl scripts. The only remaining Perl scripts are the -deprecated R CMD Sd2Rd and install-info.pl (used -only if install-info is not found) as well as some -maintainer-mode-only scripts. -

    -

    NB: because these have been completely rewritten, users -should not expect undocumented details of previous -implementations to have been duplicated. -

    -

    R CMD no longer manipulates the environment variables -PERL5LIB and PERLLIB. +

  • The new field SysDataCompression in the +‘DESCRIPTION’ file allows user control over the compression +used for ‘sysdata.rda’ objects in the lazy-load database.

  • -
  • R CMD check has a new argument --extra-arch -to confine tests to those needed to check an additional -sub-architecture. -

    -

    Its check for “Subdirectory 'inst' contains no files” is -more thorough: it looks for files, and warns if there are only -empty directories. -

    -

    Environment variables such as R_LIBS and those used for -customization can be set for the duration of checking via a file -‘~/.R/check.Renviron’ (in the format used by -‘.Renviron’, and with sub-architecture specific versions -such as ‘~/.R/check.Renviron.i386’ taking precedence). -

    -

    There are new options --multiarch to check the package -under all of the installed sub-architectures and ---no-multiarch to confine checking to the -sub-architecture under which check is invoked. If -neither option is supplied, a test is done of installed -sub-architectures and all those which can be run on the current -OS are used. -

    -

    Unless multiple sub-architectures are selected, the install done -by check for testing purposes is only of the current -sub-architecture (via R CMD INSTALL --no-multiarch). -

    -

    It will skip the check for non-ascii characters in code or data -if the environment variables _R_CHECK_ASCII_CODE_ or -_R_CHECK_ASCII_DATA_ are respectively set to FALSE. -(Suggestion of Vince Carey.) -

    -
  • -
  • R CMD build no longer creates an ‘INDEX’ file -(R CMD INSTALL does so), and --force removes -(rather than overwrites) an existing ‘INDEX’ file. -

    -

    It supports a file ‘~/.R/build.Renviron’ analogously to -check. -

    -

    It now runs build-time \Sexpr expressions in help files. -

    -
  • -
  • R CMD Rd2dvi makes use of tools::texi2dvi() -to process the package manual. It is now implemented entirely in -R (rather than partially as a shell script). -

    -
  • -
  • R CMD Rprof now uses utils::summaryRprof() -rather than Perl. It has new arguments to select one of the -tables and to limit the number of entries printed. -

    -
  • -
  • R CMD Sweave now runs R with --vanilla so -the environment setting of R_LIBS will always be used. +

  • install.packages(dependencies = value) for value = + NA (the default) or value = TRUE omits packages only in +LinkingTo for binary package installs.

@@ -7735,313 +1253,252 @@
    -
  • lang5() and lang6() (in addition to -pre-existing lang[1-4]()) convenience functions for easier -construction of eval() calls. If you have your own -definition, do wrap it inside #ifndef lang5 .... #endif -to keep it working with old and new R. -

    -
  • -
  • Header ‘R.h’ now includes only the C headers it itself needs, -hence no longer includes errno.h. (This helps avoid problems -when it is included from C++ source files.) +

  • The long undocumented remapping of rround() to +Rf_fround() in header ‘Rmath.h’ is now formally +deprecated: use fround() directly.

  • -
  • Headers ‘Rinternals.h’ and ‘R_ext/Print.h’ include -the C++ versions of ‘stdio.h’ and ‘stdarg.h’ -respectively if included from a C++ source file. +

  • Remapping of prec() and trunc() in the +‘Rmath.h’ header has been disabled in C++ code (it has caused +breakage with libc++ headers).

-

INSTALLATION

+

BUG FIXES

    -
  • A C99 compiler is now required, and more C99 language features -will be used in the R sources. -

    -
  • -
  • Tcl/Tk >= 8.4 is now required (increased from 8.3). -

    -
  • -
  • System functions access, chdir and -getcwd are now essential to configure R. (In practice -they have been required for some time.) -

    -
  • -
  • make check compares the output of the examples -from several of the base packages to reference output rather than -the previous output (if any). Expect some differences due to -differences in floating-point computations between platforms. -

    -
  • -
  • File ‘NEWS’ is no longer in the sources, but generated as -part of the installation. The primary source for changes is now -‘doc/NEWS.Rd’. -

    -
  • -
  • The popen system call is now required to build R. -This ensures the availability of system(intern = TRUE), -pipe() connections and printing from postscript(). +

  • getParseData() truncated the imaginary part of +complex number constants. (Reported by Yihui Xie.)

  • -
  • The pkg-config file ‘libR.pc’ now also works -when R is installed using a sub-architecture. +

  • dbeta(x, a, b) with a or b within a +factor of 2 of the largest representable number could +infinite-loop. (Reported by Ioannis Kosmidis.)

  • -
  • R has always required a BLAS that conforms to IE60559 -arithmetic, but after discovery of more real-world problems caused -by a BLAS that did not, this is tested more thoroughly in this -version. -

    -
- - - - -

BUG FIXES

- - -
    -
  • Calls to selectMethod() by default no longer cache -inherited methods. This could previously corrupt methods used by -as(). +

  • provideDimnames() failed for arrays with a 0 +dimension. (PR#15465)

  • -
  • The densities of non-central chi-squared are now more accurate -in some cases in the extreme tails, e.g. dchisq(2000, 2, - 1000), as a series expansion was truncated too early. -(PR#14105) +

  • rbind() and cbind() did not handle +list objects correctly. (PR#15468)

  • -
  • pt() is more accurate in the left tail for ncp -large, e.g. pt(-1000, 3, 200). (PR#14069) +

  • replayPlot() now checks if it is replaying a plot +from the same session.

  • -
  • The default C function (R_binary) for binary ops now -sets the S4 bit in the result if either argument is an S4 object. -(PR#13209) +

  • rasterImage() and grid.raster() now give +error on an empty (zero-length) raster. (Reported by Ben North.)

  • -
  • source(echo=TRUE) failed to echo comments that -followed the last statement in a file. +

  • plot.lm() would sometimes scramble the labels +in plot type 5. (PR#15458 and PR#14837)

  • -
  • S4 classes that contained one of "matrix", -"array" or "ts" and also another class now accept -superclass objects in new(). Also fixes failure to call -validObject() for these classes. +

  • min() did not handle NA_character_ values +properly. (Reported by Magnus Thor Torfason.)

  • -
  • Conditional inheritance defined by argument test in -methods::setIs() will no longer be used in S4 method -selection (caching these methods could give incorrect results). -See ?setIs. +

  • (Windows only.) readRegistry() would duplicate +default values for keys. (PR#15455)

  • -
  • The signature of an implicit generic is now used by -setGeneric() when that does not use a definition nor -explicitly set a signature. +

  • str(..., strict.width = "cut") did not handle +it properly when more than one line needed to be cut. (Reported +by Gerrit Eichner.)

  • -
  • A bug in callNextMethod() for some examples with -"..." in the arguments has been fixed. See file -‘src/library/methods/tests/nextWithDots.R’ in the sources. +

  • Removing subclass back-references when S4 classes were +removed or their namespace unloaded had several bugs (e.g., PR#15481).

  • -
  • match(x, table) (and hence %in%) now treat -"POSIXlt" consistently with, e.g., "POSIXct". +

  • aggregate() could fail when there were too many +levels present in the by argument. (PR#15004)

  • -
  • Built-in code dealing with environments (get(), -assign(), parent.env(), is.environment() and -others) now behave consistently to recognize S4 subclasses; -is.name() also recognizes subclasses. +

  • namespaceImportFrom() needed to detect primitive +functions when checking for duplicated imports (reported by +Karl Forner).

  • -
  • The abs.tol control parameter to nlminb() -now defaults to 0.0 to avoid false declarations of -convergence in objective functions that may go negative. +

  • getGraphicsEvent() did not exit when a user closed +the graphics window. (PR#15208)

  • -
  • The standard Unix-alike termination dialog to ask whether to -save the workspace takes a EOF response as n to avoid -problems with a damaged terminal connection. (PR#14332) +

  • Errors in vignettes were not always captured and displayed +properly. (PR#15495)

  • -
  • Added warn.unused argument to hist.default() -to allow suppression of spurious warnings about graphical -parameters used with plot=FALSE. (PR#14341) +

  • contour() could fail when dealing with extremely +small z values. (PR#15454)

  • -
  • predict.lm(), summary.lm(), and indeed -lm() itself had issues with residual DF in zero-weighted -cases (the latter two only in connection with empty -models). (Thanks to Bill Dunlap for spotting the -predict() case.) +

  • Several functions did not handle zero-length vectors properly, +including browseEnv(), format(), gl(), +relist() and summary.data.frame(). (E.g., PR#15499)

  • -
  • aperm() treated resize = NA as resize = - TRUE. +

  • Sweave() did not restore the R output to the +console if it was interrupted by a user in the middle of evaluating +a code chunk. (Reported by Michael Sumner.)

  • -
  • constrOptim() now has an improved convergence -criterion, notably for cases where the minimum was (very close to) -zero; further, other tweaks inspired from code proposals by Ravi -Varadhan. +

  • Fake installs of packages with vignettes work again.

  • -
  • Rendering of S3 and S4 methods in man pages has been -corrected and made consistent across output formats. +

  • Illegal characters in the input caused parse() +(and thus source()) to segfault. (PR#15518)

  • -
  • Simple markup is now allowed in \title sections -in ‘.Rd’ files. +

  • The nonsensical use of nmax = 1 in +duplicated() or unique() is now silently ignored.

  • -
  • The behaviour of as.logical() on factors (to use the -levels) was lost in R 2.6.0 and has been restored. +

  • qcauchy(p, *) is now fully accurate even when p is +very close to 1. (PR#15521)

  • -
  • prompt() did not backquote some default arguments in -the \usage section. (Reported by Claudia Beleites.) +

  • The validmu() and valideta() functions in the +standard glm() families now also report non-finite values, +rather than failing.

  • -
  • writeBin() disallows attempts to write 2GB or -more in a single call. (PR#14362) +

  • Saved vignette results (in a ‘.Rout.save’ file) were +not being compared to the new ones during R CMD check.

  • -
  • new() and getClass() will now work if Class -is a subclass of "classRepresentation" and should also be -faster in typical calls. +

  • Double-clicking outside of the list box (e.g. on the scrollbar) +of a Tk listbox widget generated by tk_select.list() no +longer causes the window to close. (PR#15407)

  • -
  • The summary() method for data frames makes a better -job of names containing characters invalid in the current locale. +

  • Improved handling of edge cases in +parallel::splitindices(). (PR#15552)

  • -
  • [[ sub-assignment for factors could create an invalid -factor (reported by Bill Dunlap). +

  • HTML display of results from help.search() and +?? sometimes contained badly constructed links.

  • -
  • Negate(f) would not evaluate argument f -until first use of returned function (reported by Olaf Mersmann). +

  • c() and related functions such as unlist() +converted raw vectors to invalid logical vectors. (PR#15535)

  • -
  • quietly=FALSE is now also an optional argument of -library(), and consequently, quietly is now -propagated also for loading dependent packages, e.g., in -require(*, quietly=TRUE). +

  • (Windows only) When a call to system2() specified +one of stdin, stdout or stderr to be a file, +but the command was not found (e.g. it contained its arguments, +or the program was not on the PATH), it left the file open +and unusable until R terminated. (Reported by Mathew McLean.)

  • -
  • If the loop variable in a for loop was deleted, it -would be recreated as a global variable. (Reported by Radford -Neal; the fix includes his optimizations as well.) +

  • The bmp() device was not recording res = NA +correctly: it is now recorded as 72 ppi.

  • -
  • Task callbacks could report the wrong expression when -the task involved parsing new code. (PR#14368) +

  • Several potential problems with compiler-specific behaviour +have been identified using the ‘Undefined Behaviour +Sanitizer’ in conjunction with the clang compiler.

  • -
  • getNamespaceVersion() failed; this was an -accidental change in 2.11.0. (PR#14374) +

  • hcl() now honours NA inputs (previously they +were mapped to black).

  • -
  • identical() returned FALSE for external -pointer objects even when the pointer addresses were the same. +

  • Some translations in base packages were being looked up in +the main catalog rather than that for the package.

  • -
  • L$a@x[] <- val did not duplicate in a case it should have. +

  • As a result of the 3.0.2 change about ‘the last +second before the epoch’, most conversions which should have given +NA returned that time. (The platforms affected include +Linux and OS X, but not Windows nor Solaris.)

  • -
  • tempfile() now always gives a random file name (even -if the directory is specified) when called directly after -startup and before the R RNG had been used. (PR#14381) +

  • rowsum() has more support for matrices and dataframes +with 2^31 or more elements. (PR#15587)

  • -
  • quantile(type=6) behaved inconsistently. (PR#14383) +

  • predict(<lm object>, interval = "confidence", scale = + <something>) now works. (PR#15564)

  • -
  • backSpline(.) behaved incorrectly when the knot -sequence was decreasing. (PR#14386) +

  • The bug fix in 3.0.2 for PR#15411 was too aggressive, +and sometimes removed spaces that should not have been removed. +(PR#15583)

  • -
  • The reference BLAS included in R was assuming that -0*x and x*0 were always zero (whereas they could be -NA or NaN in IEC 60559 arithmetic). This was seen -in results from tcrossprod, and for example that -log(0) %*% 0 gave 0. +

  • Running R code in a tcltk callback failed to set the +busy flag, which will be needed to tell OS X not to ‘App Nap’.

  • -
  • The calculation of whether text was completely outside -the device region (in which case, you draw nothing) -was wrong for screen devices (which have [0, 0] at top-left). -The symptom was (long) text disappearing when -resizing a screen window (to make it smaller). (PR#14391) +

  • The code for date-times before 1902 assumed that the offset +from GMT in 1902 was a whole number of minutes: that was not true +of Paris (as recorded on some platforms).

  • -
  • model.frame(drop.unused.levels = TRUE) did not -take into account NA values of factors when deciding to -drop levels. (PR#14393) +

  • Using Sys.setlocale to set LC_NUMERIC to +"C" (to restore the sane behavior) no longer gives a +warning.

  • -
  • library.dynam.unload required an absolute path for -libpath. (PR#14385) -

    -

    Both library() and loadNamespace() now record -absolute paths for use by searchpaths() and -getNamespaceInfo(ns, "path"). +

  • deparse() now deparses complex vectors in a way that +re-parses to the original values. (PR#15534, patch based on code +submitted by Alex Bertram.)

  • -
  • The self-starting model NLSstClosestX failed if some -deviation was exactly zero. (PR#14384) +

  • In some extreme cases (more than 10^15) +integer inputs to dpqrxxx() functions might have been +rounded up by one (with a warning about being non-integer). +(PR#15624)

  • -
  • X11(type = "cairo") (and other devices such as -png using cairographics) and which use Pango font selection -now work around a bug in Pango when very small fonts (those with -sizes between 0 and 1 in Pango's internal units) are requested. -(PR#14369) +

  • Plotting symbol pch = 14 had the triangle upside down +on some devices (typically screen devices). The triangle is +supposed to be point up. (Reported by Bill Venables.)

  • -
  • Added workaround for the font problem with X11(type = - "cairo") and similar on Mac OS X whereby italic and bold styles -were interchanged. (PR#13463 amongst many other reports.) +

  • getSrcref() did not work on method definitions if +rematchDefinition() had been used.

  • -
  • source(chdir = TRUE) failed to reset the working -directory if it could not be determined – that is now an error. +

  • KalmanForecast(fast = FALSE) reported a (harmless) +stack imbalance.

  • -
  • Fix for crash of example(rasterImage) on -x11(type="Xlib"). +

  • The count of observations used by KalmanRun() did not +take missing values into account.

  • -
  • Force Quartz to bring the on-screen display up-to-date -immediately before the snapshot is taken by grid.cap() -in the Cocoa implementation. (PR#14260) +

  • In locales where the abbreviated name of one month is a +partial match for the full name of a later one, the %B +format in strptime() could fail. An example was French on +OS X, where juin is abbreviated to jui and partially +matches juillet. Similarly for weekday names.

  • -
  • model.frame had an unstated 500 byte limit on -variable names. (Example reported by Terry Therneau.) +

  • pbeta(x, a, b, log.p = TRUE) sometimes underflowed to +zero for very small and very differently sized a, b. +(PR#15641)

  • -
  • The 256-byte limit on names is now documented. +

  • approx() and approxfun() now handle infinite +values with the "constant" method. (PR#15655)

  • -
  • Subassignment by [, [[ or $ on an -expression object with value NULL coerced the object to a -list. +

  • stripchart() again respects reversed limits in +xlim and ylim. (PR#15664)

-

../../html/logo.jpg CHANGES IN R VERSION 2.11.1 patched

+

../../html/logo.jpg CHANGES IN R 3.0.2

@@ -8049,2367 +1506,2089 @@
    -
  • install.packages() has a new optional argument -INSTALL_opts which can be used to pass options to -R CMD INSTALL for source-package installs. +

  • The ‘NEWS’ files have been re-organized.

    -
  • -
  • R CMD check now runs the package-specific tests -with LANGUAGE=en to facilitate comparison to -‘.Rout.save’ files. +

    This file contains news for R >= 3.0.0: news for the 0.x.y, 1.x.y +and 2.x.y releases is in files ‘NEWS.0’, ‘NEWS.1’ and +‘NEWS.2’. The latter files are now installed when R is +installed. An HTML version of news from 2.10.0 to 2.15.3 is +available as ‘doc/html/NEWS.2.html’.

  • -
  • sessionInfo() gives more detailed platform -information, including 32/64-bit and the sub-architecture if one -is used. -

    -
- - - - -

DEPRECATED & DEFUNCT

- - -
    -
  • The use of Perl configuration variables for R CMD - check (as previously documented in ‘Writing R -Extensions’) is deprecated and will be removed in R 2.12.0. Use -the environment variables documented in ‘R Internals’ -instead. -

    -
- - - - -

BUG FIXES

- - -
    -
  • R CMD Rd2dvi failed if run from a path containing -space(s). This also affected R CMD check, which calls -Rd2dvi. +

  • sum() for integer arguments now uses an integer +accumulator of at least 64 bits and so will be more accurate in +the very rare case that a cumulative sum exceeds +2^53 (necessarily summing more than 4 million +elements).

  • -
  • stripchart() could fail with an empty factor -level. (PR#14317) +

  • The example() and tools::Rd2ex() functions now +have parameters to allow them to ignore \dontrun markup in +examples. (Suggested by Peter Solymos.)

  • -
  • Text help rendering of \tabular{} has been -improved: under some circumstances leading blank columns were -not rendered. +

  • str(x) is considerably faster for very large lists, +or factors with 100,000 levels, the latter as in PR#15337.

  • -
  • strsplit(x, fixed=TRUE) marked UTF-8 strings with the -local encoding when no splits were found. +

  • col2rgb() now converts factors to character strings +not integer codes (suggested by Bryan Hanson).

  • -
  • weighted.mean(NA, na.rm=TRUE) and similar now returns -NaN again, as it did prior to R 2.10.0. +

  • tail(warnings()) now works, via the new `[` +method.

  • -
  • R CMD had a typo in its detection of whether the -environment variable TEXINPUTS was set (reported by Martin -Morgan). +

  • There is now support for the LaTeX style file ‘zi4.sty’ +which has in some distributions replaced ‘inconsolata.sty’.

  • -
  • The command-line parser could mistake ---file=size... for one of the options for setting limits -for Ncells or Vcells. +

  • unlist(x) now typically returns all non-list +xs unchanged, not just the “vector” ones. +Consequently, format(lst) now also works when the list +lst has non-vector elements.

  • -
  • The internal strptime() could corrupt its copy of the -timezone which would then lead to spurious warnings. (PR#14338) +

  • The tools::getVignetteInfo() function has been added +to give information about installed vignettes.

  • -
  • dir.create(recursive = TRUE) could fail if one of the -components existed but was a directory on a read-only file system. -(Seen on Solaris, where the error code returned is not even listed -as possible on the man page.) +

  • New assertCondition(), etc. utilities in tools, useful +for testing.

  • -
  • The postscript() and pdf() devices will now -allow lwd values less than 1 (they used to force such -values to be 1). +

  • Profiling now records non-inlined calls from byte-compiled +code to BUILTIN functions.

  • -
  • Fixed font face for CID fonts in pdf() graphics output. -(PR#14326) +

  • Various functions in stats and elsewhere that use +non-standard evaluation are now more careful to follow the +namespace scoping rules. E.g. stats::lm() can now find +stats::model.frame() even if stats is not on the +search path or if some package defines a function of that name.

  • -
  • GERaster() now checks for width or height of zero and -does nothing in those cases; previously the behaviour was -undefined, probably device-specific, and possibly dangerous. +

  • If an invalid/corrupt .Random.seed object is +encountered in the workspace it is ignored with a warning rather +than giving an error. (This allows R itself to rely on a working +RNG, e.g. to choose a random port.)

  • -
  • wilcox.test(x, y, conf.int = TRUE) failed with an unhelpful -message if x and y were constant vectors, and -similarly in the one-sample case. (PR#14329) +

  • seq() and seq.int() give more explicit error +messages if called with invalid (e.g. NaN) inputs.

  • -
  • Improperly calling Recall() from outside a function -could cause a segfault. (Reported by Robert McGehee.) +

  • When parse() finds a syntax error, it now makes +partial parse information available up to the location of the +error. (Request of Reijo Sund.)

  • -
  • \Sexpr[result=rd] in an Rd file added a -spurious newline, which was displayed as extra whitespace when -rendered. +

  • Methods invoked by NextMethod() had a different +dynamic parent to the generic. This was causing trouble where S3 +methods invoked via lazy evaluation could lose track of their +generic. (PR#15267)

  • -
  • require(save = TRUE) recorded the names of packages -it failed to load. +

  • Code for the negative binomial distribution now treats the case +size == 0 as a one-point distribution at zero.

  • -
  • packageStatus() could return a data frame with -duplicate row names which could then not be printed. +

  • abbreviate() handles without warning non-ASCII input +strings which require no abbreviation.

  • -
  • txtProgressBar(style = 2) did not work correctly. -

    -

    txtProgressBar(style = 3) did not display until a -non-minimum value was set. +

  • read.dcf() no longer has a limit of 8191 bytes per +line. (Wish of PR#15250.)

  • -
  • contour() did not display dashed line types -properly when contour lines were labelled. (Reported by -David B. Thompson.) +

  • formatC(x) no longer copies the class of x to +the result, to avoid misuse creating invalid objects as in +PR#15303. A warning is given if a class is discarded.

  • -
  • tools::undoc() again detects undocumented data -objects. Of course, this also affects R CMD check. +

  • Dataset npk has been copied from MASS to +allow more tests to be run without recommended packages being +installed.

  • -
  • ksmooth(x,NULL) no longer segfaults. +

  • The initialization of the regression coefficients for +non-degenerate differenced models in arima() has been +changed and in some examples avoids a local maximum. (PR#15396)

  • -
  • approxfun(), approx(), splinefun() -and spline() could be confused by x values that -were different but so close as to print identically. -(PR#14377) -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.11.1

- - - -

NEW FEATURES

- - -
    -
  • R CMD INSTALL checks if dependent packages are -available early on in the installation of source packages, -thereby giving clearer error messages. +

  • termplot() now has an argument transform.x +to control the display of individual terms in the plot. +(PR#15329)

  • -
  • R CMD INSTALL --build now names the file in the -format used for Mac OS X binary files on that platform. +

  • format() now supports digits = 0, to +display nsmall decimal places.

  • -
  • BIC() in package stats4 now also works with -multiple fitted models, analogously to AIC(). -

    -
- - - - -

DEPRECATED & DEFUNCT

- - -
    -
  • Use of file extension ‘.C’ for C++ code in packages is now -deprecated: it has caused problems for some makes on -case-insensitive file systems (although it currently works -with the recommended toolkits). -

    -
- - - - -

INSTALLATION

- - -
    -
  • Command gnutar is preferred to tar -when configure sets TAR. This is needed on Mac OS 10.6, -where the default tar, bsdtar 2.6.2, has been -reported to produce archives with illegal extensions to tar -(according to the POSIX standard). +

  • There is a new read-only par() parameter called +"page", which returns a logical value indicating whether +the next plot.new() call will start a new page. +

    +
  • +
  • Processing Sweave and Rd documents to PDF now renders +backticks and single quotes better in several instances, including +in \code and \samp expressions. +

    +
  • +
  • utils::modifyList() gets a new argument keep.null +allowing NULL components in the replacement to be retained, +instead of causing corresponding components to be deleted. +

    +
  • +
  • tools::pkgVignettes() gains argument check; +if set to TRUE, it will warn when it appears a vignette requests +a non-existent vignette engine.

-

BUG FIXES

+

UTILITIES

    -
  • The C function mkCharLenCE now no longer reads past -len bytes (unlikely to be a problem except in user -code). (PR#14246) +

  • R CMD check --as-cran checks the line widths in +usage and examples sections of the package Rd files.

  • -
  • On systems without any default LD_LIBRARY_PATH (not -even ‘/usr/local/lib’), [DY]LIB_LIBRARY_PATH is now -set without a trailing colon. (PR#13637) +

  • R CMD check --as-cran now implies --timings.

  • -
  • More efficient implementation of utf8ToInt() on long -multi-byte strings with many multi-byte characters. (PR#14262) +

  • R CMD check looks for command gfile if a +suitable file is not found. (Although file is +not from GNU, OpenCSW on Solaris installs it as gfile.)

  • -
  • aggregate.ts() gave platform-dependent results due to -rounding error for ndeltat != 1. +

  • R CMD build (with the internal tar) checks +the permissions of ‘configure’ and ‘cleanup’ files and +adds execute permission to the recorded permissions for these +files if needed, with a warning. This is useful on OSes and file +systems which do not support execute permissions (notably, on +Windows).

  • -
  • package.skeleton() sometimes failed to fix filenames -for ‘.R’ or ‘.Rd’ files to start with an alphanumeric. -(PR#14253) +

  • R CMD build now weaves and tangles all vignettes, +so suggested packages are not required during package installation +if the source tarball was prepared with current +R CMD build.

    -

    It also failed when only an S4 class without any methods was -defined. (PR#14280) +

  • +
  • checkFF() (used by R CMD check) does a +better job of detecting calls from other packages, including not +reporting those where a function has been copied from another +namespace (e.g. as a default method). It now reports calls where +.NAME is a symbol registered in another package.

  • -
  • splinefun(method = "monoH.FC") was not -quite monotone in rare cases. (PR#14215) +

  • On Unix-alike systems, R CMD INSTALL now installs packages +group writably whenever the library (lib.loc) is group +writable. Hence, update.packages() works for other group +members (suggested originally and from a patch by Dirk Eddelbuettel).

  • -
  • Rhttpd no longer crashes due to SIGPIPE when -the client closes the connection prematurely. (PR#14266) +

  • R CMD javareconf now supports the use of symbolic +links for JAVA_HOME on platforms which have +realpath. So it is now possible to +use

    +
    R CMD javareconf JAVA_HOME=/usr/lib/jvm/java-1.7.0
    +on a Linux system and record that value rather than the +frequently-changing full path such as +‘/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.25.x86_64’. +
  • +
  • (Windows only.) Rscript -e requires a non-empty +argument for consistency with Unix versions of R. (Also +Rterm -e and R -e.)

  • -
  • format.POSIXlt() could cause a stack overflow and -crash when used on very long vectors. (PR#14267) +

  • R CMD check does more thorough checking of +declared packages and namespaces. It reports +

    + +
      +
    • packages declared in more than one of the +Depends, Imports, Suggests and +Enhances fields of the ‘DESCRIPTION’ file.

    • -
    • Rd2latex() incorrectly escaped special characters in -\usage sections. +

    • namespaces declared in Imports but not +imported from, neither in the ‘NAMESPACE’ file nor using +the :: nor ::: operators.

    • -
    • mcnemar.test() could alter the levels (dropping -unused levels) if passed x and y as factors -(reported by Greg Snow). +

    • packages which are used in library() or +requires() calls in the R code but were already put on +the search path via Depends.

    • -
    • Rd2pdf sometimes needed a further -pdflatex pass to get hyperlinked pages correct. +

    • packages declared in Depends not imported +via the ‘NAMESPACE’ file (except the standard +packages). Objects used from Depends packages should be +imported to avoid conflicts and to allow correct operation when +the namespace is loaded but not attached.

    • -
    • interaction() produced malformed results when levels were -duplicated, causing segfaults in split(). +

    • objects imported via ::: calls where +:: would do.

    • -
    • cut(d, breaks = <n>) now also works for "Date" -or "POSIXt" argument d. -(PR#14288) +

    • objects imported by :: which are not exported.

    • -
    • memDecompress() could decompress incompletely rare -xz-compressed input due to incorrect documentation of -xz utils. (Report and patch from Olaf Mersmann.) +

    • objects imported by ::: calls which do not exist. +

      +
    + +

    See ‘Writing R Extensions’ for good practice.

  • -
  • The S4 initialize() methods for "matrix", -"array", and "ts" have been fixed to call -validObject(). (PR#14284) +

  • R CMD check optionally checks for non-standard +top-level files and directories (which are often mistakes): this +is enabled for --as-cran.

  • -
  • R CMD INSTALL now behaves the same way with or -without --no-multiarch on platforms with only one -installed architecture. (It used to clean the ‘src’ -directory without --no-multiarch.) +

  • LaTeX style file upquote.sty is no longer included +(the version was several years old): it is no longer used in R. +A much later version is commonly included in LaTeX distributions +but does not play well with the ae fonts which are the +default for Sweave vignettes.

  • -
  • [<-.data.frame was not quite careful enough in -assigning (and potentially deleting) columns -right-to-left. (PR#14263) +

  • R CMD build makes more use of the ‘build’ +sub-directory of package sources, for example to record +information about the vignettes.

  • -
  • rbeta(n, a, b) no longer occasionally returns -NaN for a >> 1 > b. (PR#14291) +

  • R CMD check analyses ::: calls. +

    +
+ + + + +

INSTALLATION and INCLUDED SOFTWARE

+ + +
    +
  • The macros used for the texinfo manuals have been changed to +work better with the incompatible changes made in texinfo + 5.x.

  • -
  • pnorm(x, log.p = TRUE) could return NaN not --Inf for x near (minus for lower.tail=TRUE) -the largest representable number. +

  • The minimum version for a system xz library is now +5.0.3 (was 4.999). This is in part to avoid 5.0.2, which can +compress in ways other versions cannot decompress.

  • -
  • Compressed data files ‘*.(txt|tab|csv).(gz|bz2|xz)’ -were not recognized for the list of data topics and hence for -packages using LazyData. (PR#14273) +

  • The included version of PCRE has been updated to 8.33.

  • -
  • textConnection() did an unnecessary translation on -strings in a foreign encoding (e.g. UTF-8 strings on Windows) and -so was slower than it could have been on very long input strings. -(PR#14286) +

  • The included version of zlib has been updated to +1.2.8, a bug-fix release.

  • -
  • tools::Rd2txt() did not render poorly written Rd -files consistently with other renderers. +

  • The included version of xz utils's liblzma has been +updated to 5.0.5.

    -

    It computed widths of strings that would be print()ed with -escapes incorrectly, for example in the computation of column -width for \tabular. +

  • +
  • Since javareconf (see above) is used when R is +installed, a stable link for JAVA_HOME can be supplied then.

  • -
  • na.action() did not extract the na.action -component as documented. +

  • Configuring with --disable-byte-compilation will +override the ‘DESCRIPTION’ files of recommended packages, +which typically require byte-compilation.

  • -
  • do.call()ing NextMethod in erroneous ways no -longer segfaults. (PR#13487) +

  • More of the installation and checking process will work even +when TMPDIR is set to a path containing spaces, but this is +not recommended and external software (such as +texi2dvi) may fail.

-

../../html/logo.jpg CHANGES IN R VERSION 2.11.0

- - - -

SIGNIFICANT USER-VISIBLE CHANGES

+

PACKAGE INSTALLATION

    -
  • Packages must have been installed under R >= 2.10.0, as the -current help system is the only one now supported. +

  • Installation is aborted immediately if a LinkingTo +package is not installed.

  • -
  • A port to 64-bit Windows is now available as well as binary -package repositories: see the ‘R Administration and -Installation Manual’. +

  • R CMD INSTALL has a new option +--no-byte-compile which will override a ByteCompile +field in the package's ‘DESCRIPTION’ file. +

    +
  • +
  • License BSD is deprecated: use BSD_3_clause +or BSD_2_clause instead. +

    +

    License X11 is deprecated: use MIT or +BSD_2_clause instead.

  • -
  • Argument matching for primitive functions is now done in the -same way as for interpreted functions except for the deliberate -exceptions +

  • Version requirements for LinkingTo packages are now +recognized: they are checked at installation. (Fields with +version requirements were previously silently ignored.)

    -
    -	 call switch .C .Fortran .Call .External
    -       
    -all of which use positional matching for their first argument, -and also some internal-use-only primitives.
  • -
  • The default device for command-line R at the console on Mac OS X -is now quartz() and not X11(). +

  • The limit of 500 S3method entries in a +NAMESPACE file has been removed. +

    +
  • +
  • The default ‘version’ of Bioconductor for its +packages has been changed to the upcoming 2.13, but this +can be set by the environment variable R_BIOC_VERSION when +R is installed.

-

NEW FEATURES

+

C-LEVEL FACILITIES

    -
  • The open modes for connections are now interpreted -more consistently. open = "r" is now equivalent to -open = "rt" for all connections. The default open = - "" now means "rt" for all connections except the -compressed-file connections gzfile(), bzfile() and -xzfile() for which it means "rb". +

  • Rdefines.h’ has been tweaked so it can be included in +C++ code after ‘R_ext/Boolean.h’ (which is included by +‘R.h’).

    -
  • -
  • R CMD INSTALL now uses the internal untar() -function in package utils: this ensures that all platforms -can install bzip2- and xz-compressed -tarballs. In case this causes problems (as it has on some -Windows file systems when run from Cygwin tools) it can be -overridden by the environment variable R_INSTALL_TAR: -setting this to a modern external tar program will speed up -unpacking of large (tens of Mb or more) tarballs. +

    Note that ‘Rdefines.h’ is not kept up-to-date, and +‘Rinternals.h’ is preferred for new code.

  • -
  • help(try.all.packages = TRUE) is much faster -(although the time taken by the OS to find all the packages the -first time it is used can dominate the time). +

  • eval and applyClosure are now protected +against package code supplying an invalid rho.

    -
  • -
  • R CMD check has a new option --timings -to record per-example timings in file -‘<pkg>.Rcheck/<pkg>-Ex.timings’. +

+ + + + +

DEPRECATED AND DEFUNCT

+ + +
    +
  • The unused namespace argument to +package.skeleton() is now formally deprecated and will be +removed in R 3.1.0.

  • -
  • The TRE library has been updated to version 0.8.0 (minor bugfixes). +

  • plclust() is deprecated: use the plot() method +for class "hclust" instead.

  • -
  • grep[l], [g]sub and [g]regexpr now work -in bytes in an 8-bit locales if there is no marked UTF-8 input -string: this will be somewhat faster, and for [g]sub() -give the result in the native encoding rather than in UTF-8 -(which returns to the behaviour prior to R 2.10.0). +

  • Functions readNEWS() and checkNEWS() in +package tools are deprecated (and they have not worked with +current ‘NEWS’ files for a long time).

    -
  • -
  • A new argument skipCalls has been added to -browser() so that it can report the original context when -called by other debugging functions. +

+ + + + +

DOCUMENTATION

+ + +
    +
  • ‘An Introduction to R’ has a new chapter on using R +as a scripting language including interacting with the OS.

    -
  • -
  • More validity checking of UTF-8 and MBCS strings is done by -agrep() and the regular-expression matching functions. +

+ + + + +

BUG FIXES

+ + +
    +
  • help.request() could not determine the current version +of R on CRAN. (PR#15241)

  • -
  • The undocumented restriction on gregexpr() to -length(text) > 0 has been removed. +

  • On Windows, file.info() failed on root directories unless +the path was terminated with an explicit ".". (PR#15302)

  • -
  • Package tcltk now sends strings to Tcl in UTF-8: this -means that strings with a marked UTF-8 encoding are supported in -non-UTF-8 locales. +

  • The regmatches<-() replacement function mishandled +results coming from regexpr(). (PR#15311)

  • -
  • The graphics engine now supports rendering of raster (bitmap) -images, though not all graphics devices can provide (full) -support. Packages providing graphics devices (e.g., Cairo, -RSvgDevice, cairoDevice) will need to be reinstalled. -

    -

    There is also support in the graphics engine for capturing -raster images from graphics devices (again not supported -on all graphics devices). +

  • The help for setClass() and +representation() still suggested the deprecated argument +representation=. (PR#15312)

  • -
  • R CMD check now also checks if the package and -namespace can be unloaded: this provides a check of the -.Last.lib() and .onUnload() hook functions (unless ---install=fake). +

  • R CMD config failed in an installed build of R +3.0.1 (only) when a sub-architecture was used. (Reported by +Berwin Turlach.)

  • -
  • prop.table(x) now accepts a one-dimensional table for -x. +

  • On Windows, the installer modified the ‘etc/Rconsole’ +and ‘etc/Rprofile.site’ files even when default options were +chosen, so the MD5 sums did not refer to the installed versions. +(Reported by Tal Galili.)

  • -
  • A new function vapply() has been added, based on a -suggestion from Bill Dunlap. It requires that a template for the -function value be specified, and uses it to determine the output -type and to check for consistency in the function values. +

  • plot(hclust(), cex =) respects cex again +(and possibly others similarly). (Reported by Peter Langfelder.)

  • -
  • The main HTML help page now links to a reformatted copy of -this ‘NEWS’ file. (Suggested by Henrik Bengtsson.) Package -index files link to the package ‘DESCRIPTION’ and -‘NEWS’ files and a list of demos when using dynamic help. +

  • If multiple packages were checked by R CMD check, +and one was written for a different OS, it would set +--no-install for all following packages as well as +itself.

  • -
  • The [ method for class "AsIs" allows the next -method to change the underlying class. (Wish of Jens -Oehlschlägel.) +

  • qr.coef() and related functions did not properly coerce +real vectors to complex when necessary. (PR#15332)

  • -
  • write.csv[2] no longer allow argument append -to be changed: as ever, direct calls to write.table() give -more flexibility as well as more room for error. +

  • ftable(a) now fixes up empty dimnames such +that the result is printable.

  • -
  • The index page for HTML help for a package now collapses -multiple signatures for S4 methods into a single entry. +

  • package.skeleton() was not starting its search for +function objects in the correct place if environment was +supplied. (Reported by Karl Forner.)

  • -
  • The use of .required by require() and -detach() has been replaced by .Depends which is set -from the Depends field of a package (even in packages with -namespaces). By default detach() prevents such -dependencies from being detached: this can be overridden by the -argument force. +

  • Parsing code was changing the length field of vectors and +confusing the memory manager. (PR#15345)

  • -
  • bquote() has been extended to work on function -definitions. (Wish of -PR#14031). +

  • The Fortran routine ZHER2K in the reference BLAS +had a comment-out bug in two places. +This caused trouble with eigen() for Hermitian matrices. +(PR#15345 and report from Robin Hankin)

  • -
  • detach() when applied to an object other than a -package returns the environment that has been detached, to -parallel attach(). +

  • vignette() and browseVignettes() did not +display non-Sweave vignettes properly.

  • -
  • readline() in non-interactive use returns "" -and does not attempt to read from the ‘terminal’. +

  • Two warning/error messages have been corrected: +the (optional) warning produced by a partial name match +with a pairlist, the error message from a zero-length argument to +the : operator. (Found by Radford Neal; PR#15358, +PR#15356)

  • -
  • New function file_ext() in package tools. +

  • svd() returned NULL rather than omitting +components as documented. (Found by Radford Neal; PR#15360)

  • -
  • xtfrm() is now primitive and internally generic, as -this allows S4 methods to be set on it without name-space scoping -issues. -

    -

    There are now "AsIs" and "difftime" methods, and -the default method uses unclass(x) if is.numeric(x) -is true (which will be faster but relies on is.numeric() -having been set correctly for the class). +

  • mclapply() and mcparallel() with +silent = TRUE could break a process that uses +stdout output +unguarded against broken pipes (e.g., zip will fail +silently). To work around such issues, they now replace +stdout with a descriptor pointed to ‘/dev/null’ +instead. For this purpose, internal closeStdout and +closeStderr functions have gained the to.null flag.

  • -
  • is.numeric(x) is now false for a "difftime" -object (multiplication and division make no sense for such -objects). +

  • log(), signif() and round() now raise an +error if a single named argument is not named x. (PR#15361)

  • -
  • The default method of weighted.mean(x, w) coerces -w to be numeric (aka double); previously only integer -weights were coerced. Zero weights are handled specially so an -infinite value with zero weight does not force an NaN -result. +

  • deparse() now deparses raw vectors in a form that +is syntactically correct. (PR#15369)

    -

    There is now a "difftime" method. +

  • +
  • The jpeg driver in Sweave created a JPEG file, but gave +it a ‘.png’ extension. (PR#15370)

  • -
  • bug.report() now has arguments package and -lib.loc to generate bug reports about packages. When -this is used, it looks for a BugReports field in the -package ‘DESCRIPTION’ file, which will be assumed to be a -URL at which to submit the report, and otherwise generates an -email to the package maintainer. (Suggested by Barry -Rowlingson.) +

  • Deparsing of infix operators with named arguments is +improved. (PR#15350)

  • -
  • quantile() now has a method for the date-time class -"POSIXt", and types 1 and 3 (which never interpolate) work -for Dates and ordered factors. +

  • mget(), seq.int() and numericDeriv() +did not duplicate arguments properly. (PR#15352, PR#15353, +PR#15354)

  • -
  • length(<POSIXlt>) now returns the length of the -corresponding abstract timedate-vector rather than always 9 (the -length of the underlying list structure). (Wish of PR#14073 -and PR#10507.) +

  • kmeans(algorithm = "Hartigan-Wong") now always stops +iterating in the QTran stage. (PR#15364).

  • -
  • The readline completion backend no longer sorts -possible completions alphabetically (e.g., function argument -names) if R was built with readline >= 6. +

  • read.dcf() re-allocated incorrectly and so could +segfault when called on a file with lines of more than 100 bytes.

  • -
  • select.list() gains a graphics argument to -allow Windows/Mac users to choose the text interface. This -changes the behaviour of new.packages(ask=TRUE) to be like -update.packages(ask=TRUE) on those platforms in using a -text menu: use ask="graphics" for a graphical menu. +

  • On systems where mktime() does not set errno, +the last second before the epoch could not be converted from +POSIXlt to POSIXct. (Reported by Bill Dunlap.)

  • -
  • New function chooseBioCmirror() to set the -"BioC_mirror" option. +

  • add1.glm() miscalculated F-statistics when df > 1. (Bill +Dunlap, PR#15386).

  • -
  • The R grammar now prevents using the argument name -in signatures of S4 methods for $ and $<-, since -they will always be called with a character string value for -name. The implicit S4 generic functions have been -changed to reflect this: packages which included name in -the signature of their methods need to be updated and -re-installed. +

  • stem() now discards infinite inputs rather than +hanging. (PR#15376)

  • -
  • The handling of the method argument of glm() -has been refined following suggestions by Ioannis Kosmidis and -Heather Turner. +

  • The parser now enforces C99 syntax for floating point +hexadecimal constants (e.g. 0x1.1p0), rather than returning +unintended values for malformed constants. (PR#15234)

  • -
  • str() gains a new argument list.len with -default 99, limiting the number of list() items (per -level), thanks to suggestions from David Winsenius. +

  • model.matrix() now works with very long LHS +names (more than 500 bytes). (PR#15377)

  • -
  • Having formal arguments of an S4 method in a different order -from the generic is now an error (the warning having been -ignored by some package maintainers for a long time). +

  • integrate() reverts to the pre-2.12.0 behaviour: from +2.12.0 to 3.0.1 it sometimes failed to achieve the requested +tolerance and reported error estimates that were exceeded. +(PR#15219)

  • -
  • New functions enc2native() and enc2utf8() -convert character vectors with possibly marked encodings to the -current locale and UTF-8 respectively. +

  • strptime() now handles %W fields with value +0. (PR#15915)

  • -
  • Unrecognized escapes and embedded nuls in character strings are -now an error, not just a warning. Thus option "warnEscapes" -is no longer needed. rawToChar() now removes trailing nuls -silently, but other embedded nuls become errors. +

  • R is now better protected against people trying to interact +with the console in startup code. (PR#15325)

  • -
  • Informational messages about masked objects displayed when a -package is attached are now more compact, using strwrap() -instead of one object per line. +

  • Subsetting 1D arrays often lost dimnames (PR#15301).

  • -
  • print.rle() gains argument prefix. +

  • Unary + on a logical vector did not coerce to +integer, although unary - did.

  • -
  • download.file() gains a "curl" method, mainly -for use on platforms which have curl but not -wget, but also for some hard-to-access URLs. +

  • na.omit() and na.exclude() added a row +to a zero-row data frame. (PR#15399)

  • -
  • In Rd, \eqn and \deqn will render in -HTML (and convert to text) upper- and lower-case Greek letters -(entered as \alpha ...), \ldots, \dots, -\ge and \le. +

  • All the (where necessary cut-down) vignettes are installed +if R was configured with --without-recommended-packages.

  • -
  • utf8ToInt() and intToUtf8() now map NA inputs -to NA outputs. +

  • source() did not display filenames when reporting +syntax errors.

  • -
  • file() has a new argument raw which may help -if it is used with something other than a regular file, e.g. a -character device. +

  • Syntax error reports misplaced the caret pointing out the bad +token.

  • -
  • New function strtoi(), a wrapper for the C function -strtol. +

  • (Windows only) Starting R with R (instead of +Rterm or Rgui) would lose any +zero-length strings from the command line arguments. (PR#15406)

  • -
  • as.octmode() and as.hexmode() now allow inputs -of length other than one. +

  • Errors in the encoding specified on the command line via +--encoding=foo were not handled properly. (PR#15405)

    -

    The format() and print() methods for -"octmode" now preserve names and dimensions (as those for -"hexmode" did). +

  • +
  • If x is a symbol, is.vector(x, "name") now +returns TRUE, since "name" and "symbol" +should be synonyms. (Reported by Hervé Pagès.)

    -

    The format() methods for classes "octmode" and -"hexmode" gain a width argument. +

  • +
  • R CMD rtags works on platforms (such as OS X) +with a XSI-conformant shell command echo. (PR#15231)

  • -
  • seq.int() returns an integer result in some further cases -where seq() does, e.g. seq.int(1L, 9L, by = 2L). +

  • is.unsorted(NA) returns false as documented (rather than +NA).

  • -
  • Added \subsection{}{} macro to Rd syntax, for -subsections within sections. +

  • R CMD LINK did not know about sub-architectures.

  • -
  • n-dimensional arrays with dimension names can now be indexed -by an n-column character matrix. The indices are matched against -the dimension names. NA indices are propagated to the -result. Unmatched values and "" are not allowed and -result in an error. +

  • system() and system2() are better protected +against users who misguidedly have spaces in the temporary +directory path.

  • -
  • interaction(drop=TRUE) uses less memory (related to -PR#14121). +

  • file.show() and edit() are now more likely to +work on file paths containing spaces. (Where external utilities +are used, not the norm on Windows nor in R.app which +should previously have worked.)

  • -
  • summary() methods have been added to the -"srcref" and "srcfile" classes, and various -encoding issues have been cleaned up. +

  • Packages using the methods package are more likely to +work when they import it but it is not attached. (Several parts +of its C code were looking for its R functions on the search path +rather than in its namespace.)

  • -
  • If option "checkPackageLicense" is set to TRUE (not -currently the default), users will be asked to agree to -non-known-to-be-FOSS package licences at first use. +

  • lgamma(-x) is no longer NaN for very small x.

  • -
  • Checking setAs(a, b) methods only gives a message -instead of a warning, when one of a or b is -unknown. +

  • (Windows) system2() now respects specifying +stdout and stderr as files if called from +Rgui. (PR#15393)

  • -
  • New function norm() to compute a matrix norm. -norm() and also backsolve() and sample() -have implicit S4 generics. +

  • Closing an x11() device whilst locator() or +identify() is in progress no longer hangs R. (PR#15253)

  • -
  • Files ‘Renviron.site’ and ‘Rprofile.site’ can have -architecture-specific versions on systems with sub-architectures. +

  • list.dirs(full.names = FALSE) was not implemented. +(PR#15170)

  • -
  • R CMD check now (by default) also checks Rd files -for auto-generated content in need of editing, and missing -argument descriptions. +

  • format() sometimes added unnecessary spaces. +(PR#15411)

  • -
  • aggregate() gains a formula method thanks to a -contribution by Arni Magnusson. The data frame method now allows -summary functions to return arbitrarily many values. +

  • all.equal(check.names = FALSE) would ignore the request +to ignore the names and would check them as attributes.

  • -
  • path.expand() now propagates NA values rather -than converting them to "NA". +

  • The symbol set by tools::Rd2txt_options(itemBullet=) +was not respected in some locales. (PR#15435)

  • -
  • file.show() now disallows NA values for file names, -headers, and pager. +

  • mcMap() was not exported by package +parallel. (PR#15439)

  • -
  • The ‘fuzz’ used by seq() and seq.int() has -been reduced from 1e-7 to 1e-10, which should be -ample for the double-precision calculations used in R. It -ensures that the fuzz never comes into play with sequences of -integers (wish of PR#14169). +

  • plot() for TukeyHSD objects did not balance +dev.hold() and dev.flush() calls on multi-page plots. +(PR#15449) +

    +
+ + + + +

../../html/logo.jpg CHANGES IN R 3.0.1

+ + + +

NEW FEATURES

+ + +
    +
  • chooseCRANmirror() and chooseBioCmirror() gain +an ind argument (like setRepositories()).

  • -
  • The default value of RSiteSearch(restrict=) has been -changed to include vignettes but to exclude R-help. The R-help -archives available have been split, with a new option of -"Rhelp10" for those from 2010. +

  • mcparallel has a new argument mc.interactive +which can modify the interactive flag in the child process. The +new default is FALSE which makes child processes +non-interactive by default (this prevents lock-ups due to children +waiting for interactive input).

  • -
  • New function rasterImage() in the graphics -package for drawing raster images. +

  • scan() now warns when end-of-file occurs within +a quoted string.

  • -
  • stats:::extractAIC.coxph() now omits aliased terms -when computing the degrees of freedom (suggestion of Terry -Therneau). +

  • count.fields() is now consistent with scan() +in its handling of newlines in quoted strings. Instead of +triggering an error, this results in the current line receiving +NA as the field count, with the next line getting the total +count of the two lines.

  • -
  • cor() and cov() now test for misuse with -non-numeric arguments, such as the non-bug report PR#14207. +

  • The default method of image() will plot axes of the +class of xlim and ylim (and hence of x and +y if there is a suitable range() method). Based on +a suggestion of Michael Sumner.

  • -
  • pchisq(ncp =, log.p = TRUE) is more accurate for -probabilities near one. E.g. pchisq(80, 4, ncp=1, - log.p=TRUE). (Maybe what was meant in PR#14216.) +

  • load() now has a verbose argument for +debugging support, to print the names of objects just before +loading them.

  • -
  • maintainer() has been added, to give convenient -access to the name of the maintainer of a package (contributed by -David Scott). +

  • When loading a serialized object encounters a reference to a +namespace which cannot be loaded, this is replaced by a reference +to the global environment, with a warning.

  • -
  • sample() and sample.int() allow zero items to -be sampled from a zero-length input. sample.int() gains a -default value size=n to be more similar to -sample(). +

  • pairs() gains a line.main option for title placement.

  • -
  • switch() returned NULL on error (not -previously documented on the help page): it now does so -invisibly, analogously to if-without-else. +

  • The remaining instances in which serialization to a raw +vector was limited to 2GB have been unlimited on a 64-bit +platform, and in most cases serialization to a vector of more than +1GB will be substantially faster. +

    +
+ + + + +

UTILITIES

+ + +
    +
  • R CMD config now make use of personal +‘Makevars’ files under ‘~/.R’ and a site file +‘Makevars.site’, in the same way as R CMD SHLIB and +R CMD INSTALL. This makes the utility more useful in +package configure scripts. +

    +

    On Windows finding the personal files may require the environment +variable HOME set.

    -

    It is now primitive: this means that argument EXPR is -always matched to the first argument and there is no danger of -partial matching to later named arguments. +

    The old behaviour can be obtained with the new options +--no-user-files and --no-site-files.

    -
  • -
  • Primitive functions UseMethod(), attr(), -attr<-(), on.exit(), retracemem() and -substitute() now use standard argument matching (rather -than positional matching). This means that all multi-argument -primitives which are not internal now use standard argument -matching except where positional matching is desirable (as for -switch(), call(), .C() ...). +

+ + + + +

PACKAGE INSTALLATION

+ + +
    +
  • Alternatives to the site and user customization files +‘Makevars.site’ and ‘~/.R/Makevars’ can be specified +via the environment variables R_MAKEVARS_SITE and +R_MAKEVARS_USER respectively. These can be used to suppress +the use of the default files by setting an empty value (where +possible) or a non-existent path. +

    +
+ + + + +

BUG FIXES

+ + +
    +
  • sys.source() did not report error locations when +keep.source = TRUE.

  • -
  • All the one-argument primitives now check that any name -supplied for their first argument is a partial match to the -argument name as documented on the help page: this also -applies to replacement functions of two arguments. +

  • as.POSIXct.numeric was coercing origin using +the tz argument and not "GMT" as documented +(PR#14973).

  • -
  • base::which() uses a new .Internal function -when arr.ind is FALSE resulting in a 10x speedup. -Thanks to Patrick Aboyoun for implementation suggestions. +

  • The active binding to assign fields in reference classes +has been cleaned up to reduce dependence on the class' package +environment, also fixing bug in initializing read-only fields +(inspired by a report from Hadley Wickham).

  • -
  • Help conversion to text now uses the first part of -\enc{}{} markup if it is representable in the current -output encoding. On the other hand, conversion to LaTeX with the -default outputEncoding = "ASCII" uses the second part. +

  • str(d) no longer gives an error when names(d) +contain illegal multibyte strings (PR#15247).

  • -
  • A new class "listOfMethods" has been introduced to -represent the methods in a methods table, to replace the -deprecated class "MethodsList". +

  • Profiling of built-in functions with line.profiling= + TRUE did not record the line from which they were called.

  • -
  • any() and all() return early if possible. -This may speed up operations on long vectors. +

  • citation(pkg) dropped the header and footer specified +in the ‘CITATION’ file (PR#15257).

  • -
  • strptime() now accepts "%z" (for the offset -from UTC in the RFC822 format of +/-hhmm). +

  • Quotes were handled differently when reading the first line +and reading the rest, so read.table() misread some files +that contained quote characters (PR#15245).

  • -
  • The PCRE library has been updated to version 8.02, a bug-fix -release which also updates tables to Unicode 5.02. +

  • cat() with sep a character vector of length +greater than one and more than one argument was using separators +inconsistently (PR#15261).

  • -
  • Functions which may use a graphical select.list() -(including menu() and install.packages()) now check -on a Unix-alike that Tk can be started (and not just -capabilities("tcltk") && capabilities("X11")). +

  • On Windows in R 3.0.0, savePlot() failed because of +an incorrect check on the argument count.

  • -
  • The parser no longer marks strings containing octal or hex -escapes as being in UTF-8 when entered in a UTF-8 locale. +

  • unzip(list = TRUE) returned Names as a factor +and not a character vector (as documented) for the internal method. +(Noticed by Sean O'Riordain.)

  • -
  • On platforms with cairo but not Pango (notably Mac OS X) the -initial default X11() type is set to "Xlib": this avoids -several problems with font selection when done by cairo rather -than Pango (at least on Mac OS X). +

  • contourLines() now checks more comprehensively for +conformance of its x, y and z arguments (it +was used incorrectly in package R2G2).

  • -
  • New function arrayInd() such that which(x, - arr.ind = TRUE) for an array 'x' is now equivalent to -arrayInd(which(x), dim(x), dimnames(x)). +

  • Saved graphics display lists are R version-specific. +Attempting to load workspaces containing them (or some other +version-specific objects) aborted the load in R 3.0.0 and +earlier; now it does a partial load and generates a warning +instead.

    -
- - - - -

DEPRECATED & DEFUNCT

- - -
    -
  • Bundles of packages are defunct. +

  • +
  • In R 3.0.0, identify() and locator() did +not record information correctly, so replaying a graph (e.g. by +copying it to another device) would fail. (PR#15271)

  • -
  • stats::clearNames() is defunct: use unname(). +

  • Calling file.copy() or dirname() with the +invalid input "" (which was being used in packages, despite +not being a file path) could have caused a segfault. +

    +

    dirname("") is now "" rather than "." (unless +it segfaulted).

  • -
  • Basic regular expressions are defunct, and -strsplit(), grep(), grepl(), sub(), -gsub(), regexpr() and gregexpr() no longer -have an extended argument. +

  • supsmu() could read/write outside its input vectors +for very short inputs (seen in package rms for n = 4).

  • -
  • methods::trySilent() is defunct. +

  • as.dendrogram()'s hclust method uses less +memory and hence gets considerably faster for large (n ~ 1000) +clusterings, thanks to Daniel Müllner. (PR#15174)

  • -
  • index.search() (which was deprecated in 2.10.0) is no -longer exported and has a different argument list. +

  • The return value when all workers failed from +parallel::mclapply(mc.preschedule = TRUE) was a list of +strings and not of error objects. (Spotted by Karl Forner and +Bernd Bischl.)

  • -
  • Use of multiple arguments to return() is now defunct. +

  • In R 3.0.0, when help() found multiple pages with +the same alias, the HTML display of all the selections was not +produced. (PR#15282)

  • -
  • The use of UseMethod() with more than two arguments -is now defunct. +

  • splinefun(method="monoH.FC") now produces a +function with first argument named x and allows +deriv=3, as documented. (PR#15273)

  • -
  • In the methods package, the "MethodsList" -metadata objects which had been superseded by hash tables -(environments) since R 2.8.0 are being phased out. Objects of -this class are no longer assigned or used as metadata by the -package. +

  • summaryRprof() would only read the first +chunksize lines of an Rprof file produced with +line.profiling=TRUE. By default, this is the first 100 +seconds. (PR#15288)

    -

    getMethods() is now deprecated, with its internal use replaced -by findMethods() and other changes. Creating objects from the -"MethodsList" class is also deprecated. +

  • +
  • lsfit() produced an incorrect error message when +argument x had more columns than rows or x had a +different number of rows than y. (Spotted by Renaud Gaujoux.)

  • -
  • Parsing strings containing both octal/hex and Unicode escapes -now gives a warning and will become an error in R 2.12.0. +

  • Binary operations on equal length vectors copied the +class name from the second operand when the first had no +class name, but did not set the object bit. (PR#15299)

    -
- - - - -

INSTALLATION

- - -
    -
  • UTF-8 is now used for the reference manual and package -manuals. This requires LaTeX ‘2005/12/01’ or later. +

  • +
  • The trace() method for reference generator objects +failed after those objects became function definitions.

  • -
  • configure looks for a POSIX compliant -tr, Solaris's /usr/ucb/tr having been found -to cause Rdiff to malfunction. +

  • write.table() did not check that factors were +constructed correctly, and so caused a segment fault when +writing bad ones. (PR#15300)

  • -
  • configure is now generated with autoconf - 2.65, which works better on recent systems and on Mac OS X. +

  • The internal HTTP server no longer chokes on POST requests +without body. It will also pass-through other request types for +custom handlers (with the method stored in Request-Method header) +instead of failing.

-

PACKAGE INSTALLATION

- - -
    -
  • Characters in R source which are not translatable to the -current locale are now handled more tolerantly: these will be -converted to hex codes with a warning. Such characters are -only really portable if they appear in comments. -

    -
  • -
  • R CMD INSTALL now tests that the installed package -can be loaded (and backs out the installation if it cannot): this -can be suppressed by --no-test-load. This avoids -installing/updating a package that cannot be used: common causes -of failures to load are missing/incompatible external software -and missing/broken dependent packages. -

    -
  • -
  • Package installation on Windows for a package with a -‘src’ directory now checks if a DLL is created unless there -is a ‘src/Makefile.win’ file: this helps catch broken -installations where the toolchain has not reported problems in -building the DLL. (Note: this can be any DLL, not just one named -‘<pkg-name>.dll’.) -

    -
- +

../../html/logo.jpg CHANGES IN R 3.0.0

-

BUG FIXES

+

SIGNIFICANT USER-VISIBLE CHANGES

    -
  • Using with(), eval() etc with a list with some -unnamed elements now works. -(PR#14035) -

    -
  • -
  • The "quick" dispatch of S4 methods for primitive -functions was not happening, forcing a search each time. -(Dispatch for closures was not affected.) A side effect is that -default values for arguments in a method that do not have -defaults in the generic will now be ignored. -

    -
  • -
  • Trying to dispatch S4 methods for primitives during the search -for inherited methods slows that search down and potentially -could cause an infinite recursion. An internal switch was -added to turn off all such methods from -findInheritedMethods(). -

    -
  • -
  • R framework installation (on Mac OS X) would not work -properly if a rogue Resources directory was present at the -top level. Such a non-symlink will now be renamed to -Resources.old (and anything previously named -Resources.old removed) as part of the framework -installation process. -

    -
  • -
  • The checks for conforming S4 method arguments could fail -when the signature of the generic function omitted some of the -formal arguments (in addition to ...). Arguments omitted -from the method definition but conforming (per the documentation) -should now be ignored (treated as "ANY") in dispatching. -

    -
  • -
  • The computations for S4 method evaluation when ... -was in the signature could fail, treating ... as an -ordinary symbol. This has been fixed, for the known cases. -

    -
  • -
  • Various ar() fitting methods have more protection for -singular fits. -

    -
  • -
  • callNextMethod now works again with the drop= -argument in [ +

  • Packages need to be (re-)installed under this version +(3.0.0) of R.

  • -
  • parse() and parse_Rd() miscounted columns when -multibyte UTF-8 characters were present. +

  • There is a subtle change in behaviour for numeric index +values 2^31 and larger. These never used to be +legitimate and so were treated as NA, sometimes with a +warning. They are now legal for long vectors so there is no +longer a warning, and x[2^31] <- y will now extend the +vector on a 64-bit platform and give an error on a 32-bit one.

  • -
  • Formatting of help pages has had minor improvements: extra -blank lines have been removed from the text format, and empty -package labels removed from HTML. +

  • It is now possible for 64-bit builds to allocate amounts of +memory limited only by the OS. It may be wise to use OS +facilities (e.g. ulimit in a bash shell, +limit in csh), to set limits on overall memory +consumption of an R process, particularly in a multi-user +environment. A number of packages need a limit of at least 4GB of +virtual memory to load.

    -
  • -
  • cor(A, B) where A is n x 1 -and B a 1-dimensional array segfaulted or gave an internal -error. (The case cor(B, A) was -PR#7116.) +

    64-bit Windows builds of R are by default limited in memory usage +to the amount of RAM installed: this limit can be changed by +command-line option --max-mem-size or setting environment +variable R_MAX_MEM_SIZE.

  • -
  • cut.POSIXt() applied to a start value after the DST -transition on a DST-change day could give the wrong time for -argument breaks in units of days or longer. (PR#14208) +

  • Negative numbers for colours are consistently an error: +previously they were sometimes taken as transparent, sometimes +mapped into the current palette and sometimes an error.

    -
  • -
  • do_par() UNPROTECTed too early (PR#14214) +

+ + + + +

NEW FEATURES

+ + +
    +
  • identical() has a new argument, +ignore.environment, used when comparing functions (with +default FALSE as before).

  • -
  • Subassignment x[[....]] <- y didn't check for a -zero-length right hand side, and inserted a rubbish -value. (PR#14217) +

  • There is a new option, options(CBoundsCheck=), which +controls how .C() and .Fortran() pass arguments to +compiled code. If true (which can be enabled by setting the +environment variable R_C_BOUNDS_CHECK to yes), raw, +integer, double and complex arguments are always copied, and +checked for writing off either end of the array on return from the +compiled code (when a second copy is made). This also checks +individual elements of character vectors passed to .C().

    -
  • -
  • fisher.test() no longer gives a P-value very -slightly > 1, in some borderline cases. +

    This is not intended for routine use, but can be very helpful in +finding segfaults in package code.

  • -
  • Internal function matchArgs() no longer modifies the -general purpose bits of the SEXPs that make up the formals -list of R functions. This fixes an invalid error message that -would occur when a garbage collection triggered a second call to -matchArgs for the same function via a finalizer. +

  • In layout(), the limits on the grid size have been +raised (again).

  • -
  • gsub() in 2.10.x could fail from stack overflow for -extremely long strings due to temporary data being allocated on -the stack. Also, gsub() with fixed=TRUE is in some -circumstances considerably faster. +

  • New simple provideDimnames() utility function.

  • -
  • Several primitives, including attributes(), -attr<-() interactive(), nargs() and -proc.time(), did not check that they were called with the -correct number of arguments. +

  • Where methods for length() return a double value +which is representable as an integer (as often happens for package +Matrix), this is converted to an integer.

  • -
  • A potential race condition in list.files() when other -processes are operating on the directory has been fixed; the code -now dynamically allocates memory for file listings in a single -pass instead of making an initial count pass. +

  • Matrix indexing of dataframes by two-column numeric indices +is now supported for replacement as well as extraction.

  • -
  • mean(x, trim=, na.rm = FALSE) failed to return NA if -x contained missing values. (Reported by Bill Dunlap.) +

  • setNames() now has a default for its object +argument, useful for a character result.

  • -
  • Extreme tail behavior of, pbeta() {and hence -pf()}, e.g., pbeta(x, 3, 2200, lower.tail=FALSE, - log.p=TRUE) now returns finite values instead of jumping to --Inf too early. (PR#14230). +

  • StructTS() has a revised additive constant in the +loglik component of the result: the previous definition is +returned as the loglik0 component. However, the help page has +always warned of a lack of comparability of log-likelihoods for +non-stationary models. (Suggested by Jouni Helske.)

  • -
  • parse(text=x) misbehaved for objects x that -were not coerced internally to character, notably symbols. -(Reported to R-devel by Bill Dunlap.) +

  • The logic in aggregate.formula() has been revised. +It is now possible to use a formula stored in a variable; +previously, it had to be given explicitly in the function call.

  • -
  • The internal C function coerceSymbol now handles -coercion to character, and warns if coercion fails (rather than -silently returning NULL). This allows a name to be given -where a character vector is required in functions which coerce -internally. +

  • install.packages() has a new argument quiet to +reduce the amount of output shown.

  • -
  • The interpretation by strptime() of "%c" was -non-standard (not that it is ever advisable to use locale- and -system-specific input formats). +

  • Setting an element of the graphics argument lwd to a +negative or infinite value is now an error. Lines corresponding +to elements with values NA or NaN are silently +omitted.

    -
  • -
  • capabilities("X11") now works the same way on Mac OS X as on -other platforms (and as documented: it was always true for R -built with --with-aqua, as the CRAN builds are). +

    Previously the behaviour was device-dependent.

  • -
  • The X11() device with cairo but not Pango (notably Mac OS X) -now checks validity of text strings in UTF-8 locales (since -Pango does but cairo it seems does not). +

  • Setting graphical parameters cex, col, +lty, lwd and pch in par() now requires a +length-one argument. Previously some silently took the first +element of a longer vector, but not always when documented to do so.

  • -
  • read.fwf() misread multi-line records when n was specified. -(PR#14241) +

  • Sys.which() when used with inputs which would be +unsafe in a shell (e.g. absolute paths containing spaces) now uses +appropriate quoting.

  • -
  • all.equal(tolerance = e) passes the numeric -tolerance also to the comparison of the attributes. +

  • as.tclObj() has been extended to handle raw vectors. +Previously, it only worked in the other direction. +(Contributed by Charlie Friedemann, PR#14939.)

  • -
  • pgamma(0, 0), a boundary case, now returns 0, its -limit from the left, rather than the limit from the right. +

  • New functions cite() and citeNatbib() have +been added, to allow generation of in-text citations from +"bibentry" objects. A cite() function may be added +to bibstyle() environments.

  • -
  • Issuing POST requests to the internal web server could stall -the request under certain circumstances. +

  • A sort() method has been added for "bibentry" +objects.

  • -
  • gzcon( <textConnection> ), an error, no longer -damages the connection (in a way to have it -segfault). (PR#14237) +

  • The bibstyle() function now defaults to setting the +default bibliography style. The getBibstyle() function +has been added to report the name of the current default style.

  • -
  • All the results from hist() now use the nominal -breaks not those adjusted by the numeric ‘fuzz’: -in recent versions the nominal breaks were reported but -the 'density' referred to the intervals used in the calculation -– which mattered very slightly for one of the extreme bins. -(Based on a report by Martin Becker.) +

  • scatter.smooth() now has an argument lpars to +pass arguments to lines().

  • -
  • If xy[z].coords (used internally by many graphics -functions) are given a list as x, they now check that -the list has suitable names and give a more informative error -message. (PR#13936) -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.10.1 patched

- - - -

NEW FEATURES

- - -
    -
  • The handling of line textures in the postscript() and -pdf() devices was set up for round end caps (the only type -which existed at the time): it has now been adjusted for butt -endcaps. +

  • pairs() has a new log argument, to allow some +or all variables to be plotted on logarithmic scale. +(In part, wish of PR#14919.)

  • -
  • lchoose(a, k) is now defined as -log(abs(choose(a,k))), analogously to lfactorial(). +

  • split() gains a sep argument.

  • -
  • Although \eqn{} in Rd files is defined as a -‘verbatim’ macro, many packages expected \dots and -\ldots to be interpreted there (as was the case in R < -2.10.0), so this is now done (using an ellipsis in HTML -rendering). +

  • termplot() does a better job when given a model with +interactions (and no longer attempts to plot interaction terms).

  • -
  • Escaping of braces in quoted strings in R-code sections of -Rd files is allowed again. This had been changed for the new Rd -format in R 2.10.0 but was only documented on the developer site -and was handled inconsistently by the converters: text and -example conversion removed the escapes but HTML conversion did -not. +

  • The parser now incorporates code from Romain Francois' +parser package, to support more detailed computation on +the code, such as syntax highlighting, comment-based +documentation, etc. Functions getParseData() and +getParseText() access the data.

  • -
  • The PCRE library has been updated to version 8.01, a bug-fix -release. +

  • There is a new function rep_len() analogous to +rep.int() for when speed is required (and names are not).

  • -
  • tools::readNEWS() now accepts a digit as the first -character of a news section. -

    -
- - - - -

BUG FIXES

- - -
    -
  • Using read.table(header=TRUE) on a header with an -embedded new line would copy part of the header into the data. -(PR#14103) +

  • The undocumented use rep(NULL, length.out = n) for +n > 0 (which returns NULL) now gives a warning.

  • -
  • qpois(p = 1, lambda = 0) now gives 0 as for all other -p. (PR#14135) +

  • demo() gains an encoding argument for those +packages with non-ASCII demos: it defaults to the package encoding +where there is one.

  • -
  • Functions related to string comparison -(e.g. unique(), match()) could cause crashes when -used with strings not in the native encoding, e.g. UTF-8 strings -on Windows. (PR#14114 and PR#14125) +

  • strwrap() converts inputs with a marked encoding to +the current locale: previously it made some attempt to pass +through as bytes inputs invalid in the current locale.

  • -
  • x[ , drop=TRUE] dropped an NA level even if it -was in use. +

  • Specifying both rate and scale to +[dpqr]gamma is a warning (if they are essentially the same +value) or an error.

  • -
  • The dynamic HTML help system reported the wrong MIME type -for the style sheet. +

  • merge() works in more cases where the data frames +include matrices. (Wish of PR#14974.)

  • -
  • tools::codoc() (used by R CMD check) was -missing cases where the function had no arguments but was -documented to have some. +

  • optimize() and uniroot() no longer use a +shared parameter object across calls. (nlm(), +nlminb() and optim() with numerical derivatives +still do, as documented.)

  • -
  • Help links containing special characters (e.g. "?") -were not generated correctly when rendered in -HTML. (PR#14155) +

  • The all.equal() method for date-times is now +documented: times are regarded as equal (by default) if they +differ by up to 1 msec.

  • -
  • lchoose(a, k) no longer wrongly gives NaN for -negative a. +

  • duplicated() and unique() gain a nmax +argument which can be used to make them much more efficient when +it is known that there are only a small number of unique entries. +This is done automatically for factors.

  • -
  • ks.test() could give a p-value that was off by one -observation due to rounding error. (PR#14145) +

  • Functions rbinom(), rgeom(), rhyper(), +rpois(), rnbinom(), rsignrank() and +rwilcox() now return integer (not double) vectors. This +halves the storage requirements for large simulations.

  • -
  • readBin()/readChar() when reading millions of -character strings in a single call used excessive amounts of -memory (which also slowed them down). +

  • sort(), sort.int() and sort.list() now +use radix sorting for factors of less than 100,000 levels when +method is not supplied. So does order() if called +with a single factor, unless na.last = NA.

  • -
  • R CMD SHLIB could fail if used with paths that -were not alphanumeric, e.g. contained +. (PR#14168) +

  • diag() as used to generate a diagonal matrix has been +re-written in C for speed and less memory usage. It now forces +the result to be numeric in the case diag(x) since it is +said to have ‘zero off-diagonal entries’.

  • -
  • sprintf() was not re-entrant, which potentially -caused problems if an as.character() method called it. +

  • backsolve() (and forwardsolve()) are now +internal functions, for speed and support for large matrices.

  • -
  • The quartz() device did not restore the clipping -region when filling the background for a new page. This could be -observed in multi-page bitmap output as stale outer regions of -the plot. +

  • More matrix algebra functions (e.g. chol() and +solve()) accept logical matrices (and coerce to numeric).

  • -
  • p.adjust(method, n) now works correctly for the -rare case n > length(p), also when method differs from -"bonferroni" or "none", thanks to a patch from -Gordon Smyth. +

  • sample.int() has some support for n >= 2^31: see its help for the limitations.

    -
  • -
  • tools::showNonASCII() failed to detect non-ASCII characters -if iconv() (incorrectly) converted them to different ASCII -characters. (Seen on Windows only.) +

    A different algorithm is used for (n, size, replace = FALSE, + prob = NULL) for n > 1e7 and size <= n/2. This +is much faster and uses less memory, but does give different results.

  • -
  • tcrossprod() wrongly failed in some cases when one of the -arguments was a vector and the other a matrix. +

  • approxfun() and splinefun() now return a +wrapper to an internal function in the stats namespace +rather than a .C() or .Call() call. This is more +likely to work if the function is saved and used in a different +session.

  • -
  • [cr]bind(..., deparse.level=2) was not always giving -names when documented to do so. (Discovered whilst investigating -PR#14189.) +

  • The functions .C(), .Call(), +.External() and .Fortran() now give an error (rather +than a warning) if called with a named first argument.

  • -
  • match(incomparables=<non-NULL>) could in rare cases -infinite-loop. +

  • Sweave() by default now reports the locations in +the source file(s) of each chunk.

  • -
  • poisson.test() needed to pass argument -conf.level to binom.test(). (PR#14195) +

  • clearPushBack() is now a documented interface to a +long-existing internal call.

  • -
  • The "nls" method for df.residual() gave -incorrect results for models fitted with na.action = - na.exclude. (PR#14194) +

  • aspell() gains filters for R code, Debian Control +Format and message catalog files, and support for R level +dictionaries. In addition, package utils now provides +functions aspell_package_R_files() and +aspell_package_C_files() for spell checking R and C level +message strings in packages.

  • -
  • A change to options(scipen=) was only implemented -when printing next occurred, even though it should have affected -intervening calls to axis(), contour() and -filledcontour(). +

  • bibentry() gains some support for “incomplete” +entries with a crossref field.

  • -
  • prettyNum(drop0trailing=TRUE) did not handle signs of -imaginary parts of complex numbers correctly (and this was used -by str(): PR#14201). +

  • gray() and gray.colors() finally allow +alpha to be specified.

  • -
  • system.time() had the sys.child component -wrong (copied user.child instead) on systems with -HAVE_GETRUSAGE. -(PR#14210) +

  • monthplot() gains parameters to control the look of +the reference lines. (Suggestion of Ian McLeod.)

  • -
  • Changing both line texture and line cap (end) resulted in the -latter to be omitted form the PDF code. In addition, line cap -(end) and join are now set explicitly in PDF output to ensure -correct defaults. +

  • Added support for new %~% relation +(“is distributed as”) in plotmath.

  • -
  • The suppression of auto-rotation in bitmap() and -dev2bitmap() with the "pdfwrite" device was not -working correctly. +

  • domain = NA is accepted by gettext() and +ngettext(), analogously to stop() etc.

  • -
  • plot(ecdf(), log="x") no longer gives an incorrect -warning. +

  • termplot() gains a new argument plot = FALSE +which returns information to allow the plots to be modified for +use as part of other plots, but does not plot them. +(Contributed by Terry Therneau, PR#15076.)

  • -
  • read.fwf() works again when argument file is -a connection. +

  • quartz.save(), formerly an undocumented part of +R.app, is now available to copy a device to a +quartz() device. dev.copy2pdf() optionally does +this for PDF output: quartz.save() defaults to PNG.

  • -
  • Startup files will now be found if their paths exceed 255 -bytes. (PR#14228) +

  • The default method of pairs() now allows +text.panel = NULL and the use of <foo>.panel = NULL +is now documented.

  • -
  • contrasts<- (in the stats package) no longer has an -undeclared dependence on methods (introduced in 2.10.0). -

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.10.1

- - - -

NEW FEATURES

- - -
    -
  • The PCRE library has been updated to version 8.00. +

  • setRefClass() and getRefClass() now return +class generator functions, similar to setClass(), but +still with the reference fields and methods as before +(suggestion of Romain Francois).

  • -
  • R CMD INSTALL has new options --no-R, ---no-libs, --no-data, --no-help, ---no-demo, --no-exec, and --no-inst to -suppress installation of the specified part of the package. -These are intended for special purposes (e.g. building a database -of help pages without fully installing all packages). +

  • New functions bitwNot(), bitwAnd(), +bitwOr() and bitwXor(), using the internal +interfaces previously used for classes "octmode" and +"hexmode".

    -
  • -
  • The documented line-length limit of 4095 bytes when reading -from the console now also applies also to parse(file="") -(which previously had a limit of around 1024 bytes). +

    Also bitwShiftL() and bitwShiftR() for shifting bits +in elements of integer vectors.

  • -
  • A Bioconductor mirror can be set for use by -setRepositories() via the option "BioC_mirror", -e.g. the European mirror can be selected by -options(BioC_mirror="http://bioconductor.statistik.tu-dortmund.de"). +

  • New option "deparse.cutoff" to control the deparsing +of language objects such as calls and formulae when printing. +(Suggested by a comment of Sarah Goslee.)

  • -
  • Double-clicking in a tk_select.list() list box now -selects the item and closes the list box (as happens on the -Windows select.list() widget). -

    -
- - - - -

INSTALLATION

- - -
    -
  • configure will be able to find a usable -libtiff in some rare circumstances where it did not -previously (where libtiff needed to be linked explicitly against --ljpeg). +

  • colors() gains an argument distinct.

  • -
  • Making refman.pdf works around a problem with the indexing -with hyperref 6.79d and later. -

    -
- - - - -

DEPRECATED & DEFUNCT

- - -
    -
  • The extended argument is deprecated in -strsplit(), grep(), grepl(), sub(), -gsub(), regexpr() and gregexpr() (not just -the value extended = FALSE) and will be removed in R -2.11.0. +

  • New demo(colors) and demo(hclColors), with +utility functions.

    -
- - - - -

BUG FIXES

- - -
    -
  • trigamma(x) and other psigamma(x, n) calls -are now accurate for very large abs(x). (PR#14020) +

  • +
  • list.files() (aka dir()) gains a new optional +argument no.. which allows to exclude "." and +".." from listings.

  • -
  • [g]sub(perl=FALSE, fixed=FALSE) could use excessive -stack space when used with a very long vector containing some -non-ASCII strings. +

  • Multiple time series are also of class "matrix"; +consequently, head(), e.g., is more useful.

  • -
  • The default method of weighted.mean(na.rm = TRUE) -did not omit weights for NA observations in 2.10.0. -(PR#14032) +

  • encodeString() preserves UTF-8 marked encodings. +Thus if factor levels are marked as UTF-8 an attempt is made to +print them in UTF-8 in RGui on Windows.

  • -
  • [g]regexpr(pattern, fixed = TRUE) returned match -positions in bytes (not characters) in an MBCS locale if -pattern was a single byte. +

  • readLines() and scan() (and hence +read.table()) in a UTF-8 locale now discard a UTF-8 +byte-order-mark (BOM). Such BOMs are allowed but not recommended +by the Unicode Standard: however Microsoft applications can +produce them and so they are sometimes found on websites.

    -

    [g]sub(fixed = TRUE) with a single-byte pattern could -conceivably have matched part of a multibyte character in a -non-UTF-8 MBCS. +

    The encoding name "UTF-8-BOM" for a connection will +ensure that a UTF-8 BOM is discarded.

  • -
  • findLineNum() and setBreakpoint() would -sometimes fail if the specified file was not in the current -directory. +

  • mapply(FUN, a1, ..) now also works when a1 (or +a further such argument) needs a length() method (which the +documented arguments never do). (Requested by Hervé Pagès; with a +patch.)

  • -
  • Package tcltk's demo(tkdensity) was broken in -2.9.0 when demo() was changed to set par(ask = TRUE). +

  • .onDetach() is supported as an alternative to +.Last.lib. Unlike .Last.lib, this does not need to +be exported from the package's namespace.

  • -
  • gsub() with backrefs could fail on extremely long strings -(hundreds of thousands of characters) due to integer overflow -in a length calculation. +

  • The srcfile argument to parse() may now be a +character string, to be used in error messages.

  • -
  • abline(untf=TRUE) now uses a better x-grid in -log-scale, e.g., for plot(c(1,300), c(1,300), log="xy"); - abline(4,1, untf=TRUE). +

  • The format() method for ftable objects gains +a method argument, propagated to write.ftable() and +print(), allowing more compact output, notably for LaTeX +formatting, thanks to Marius Hofert.

  • -
  • detach()/unloadNamespace() arrange to flush -the package's lazyload cache of R objects once the -package/namespace is no longer needed. +

  • The utils::process.events() function has been added +to trigger immediate event handling.

  • -
  • There have been small fixes to the rendering of help, -e.g. \command is now rendered verbatim (so e.g. -- -is not interpreted, PR#14045). -

    -

    Also, there are many small changes to help files where the new -converters were not rendering them in the same way as before. +

  • Sys.which() now returns NA (not "") for +NA inputs (related to PR#15147).

  • -
  • available.packages() would fail when run on a -repository with no packages meeting the filtering conditions. -(PR#14042) +

  • The print() method for class "htest" gives +fewer trailing spaces (wish of PR#15124).

    -
  • -
  • rep(x, times, each = 2) gave invalid results when the -times argument was a vector longer than x. -Reported by Bill Dunlap. +

    Also print output from HoltWinters(), nls() and others.

  • -
  • An error when unloadNamespace() attempted to run the -.onUnload() function gave an error in the reporting -function and so was not reported properly. +

  • loadNamespace() allows a version specification to be +given, and this is used to check version specifications given in +the Imports field when a namespace is loaded.

  • -
  • Text help rendering did not handle very long input lines -properly. +

  • setClass() has a new argument, slots, clearer +and less ambiguous than representation. It is recommended +for future code, but should be back-compatible. At the same time, +the allowed slot specification is slightly more general. See the +documentation for details.

  • -
  • promptMethods() generated signature documentation -improperly. +

  • mget() now has a default for envir (the frame +from which it is called), for consistency with get() and +assign().

  • -
  • pgamma(x, a, lower.tail=FALSE) and -qgamma(...) are now considerably more accurate in some -regions for very small a. qgamma() now correctly -returns 0 instead of NaN in similar extreme cases, -and qgamma() no longer warns in the case of small -a, see (PR#12324). +

  • close() now returns an integer status where available, +invisibly. (Wish of PR#15088.)

  • -
  • unname() now also removes names from a zero length vector. +

  • The internal method of tar() can now store paths too +long for the ustar format, using the (widely supported) GNU +extension. It can also store long link names, but these are much +less widely supported. There is support for larger files, up to +the ustar limit of 8GB.

  • -
  • Printing results from ls.str() no longer evaluates -unevaluated calls. +

  • Local reference classes have been added to package +methods. These are a technique for avoiding unneeded +copying of large components of objects while retaining standard R +functional behavior. See ?LocalReferenceClasses.

  • -
  • complete.cases() failed on a 0-column data frame -argument. (Underlies PR#14066.) -

    -

    It could return nonsensical results if no input determined the -number of cases (seen in the no-segfault tests). +

  • untar() has a new argument restore_times which +if false (not the default) discards the times in the tarball. +This is useful if they are incorrect (some tarballs submitted to +CRAN have times in a local time zone or many years in the +past even though the standard required them to be in UTC).

  • -
  • An error in nls() with a long formula could cause a -segfault. (PR#14059) +

  • replayplot() cannot (and will not attempt to) replay +plots recorded under R < 3.0.0. It may crash the R session if +an attempt is made to replay plots created in a different build of +R >= 3.0.0.

  • -
  • qchisq(p, df, ncp, lower.tail = FALSE) with -ncp >= 80 was inaccurate for small p (as the help page -said): it is now less inaccurate. (In part, -PR#13999.) -

    -

    For ncp less than but close to 80, pchisq() and -qchisq() are more accurate for probabilities very close -to 1 (a series expansion was truncated slightly too early). -

    -

    pchisq(x, df, ncp) can no longer return values just larger -than one for large values of ncp. +

  • Palette changes get recorded on the display list, so +replaying plots (including when resizing screen devices and using +dev.copy()) will work better when the palette is changed +during a plot.

  • -
  • intToUtf8() could fail when asked to produce 10Mb or more -strings, something it was never intended to do: unfortunately -Windows crashed R (other OSes reported a lack of resources). -(PR#14068) +

  • chol(pivot = TRUE) now defaults to LAPACK, not LINPACK.

  • -
  • chisq.test() could fail when given argument -x or y which deparsed to more than one line. -(Reported by Laurent Gauthier.) +

  • The parse() function has a new parameter +keep.source, which defaults to options("keep.source").

  • -
  • S4 methods are uncached whenever the namespace containing -them is unloaded (by unloadNamespace() as well as by -detach(unload = TRUE)). +

  • Profiling via Rprof() now optionally records information +at the statement level, not just the function level.

  • -
  • The internal record-keeping by -dyn.load/dyn.unload was incomplete, which could -crash R if a DLL that registered .External routines had -earlier been unloaded. +

  • The Rprof() function now quotes function names in +in its output file on Windows, to be consistent with the quoting +in Unix.

  • -
  • bessel[JY](x, nu) with nu a negative integer (a -singular case) is now correct, analogously to besselI(), -see PR#13556. +

  • Profiling via Rprof() now optionally records +information about time spent in GC.

  • -
  • tools::file_path_as_absolute() doubled the file -separator when applied to a file such as ‘"/vmunix"’ or (on -Windows) ‘"d:/afile"’ in a directory for which -getwd() would return a path with a trailing separator -(largely cosmetic, as reasonable file systems handle such a path -correctly). (Perhaps what was meant by PR#14078.) +

  • The HTML help page for a package now displays non-vignette +documentation files in a more accessible format.

  • -
  • unsplit(drop = TRUE) applied to a data frame failed -to pass drop to the computation of row names. (PR#14084) +

  • To support options(stringsAsFactors = FALSE), +model.frame(), model.matrix() and +replications() now automatically convert character +vectors to factors without a warning.

  • -
  • The "difftime" method of mean() ignored its -na.rm argument. +

  • The print method for objects of class "table" +now detects tables with 0-extents and prints the results as, e.g., +< table of extent 0 x 1 x 2 >. (Wish of PR#15198.)

  • -
  • tcltk::tk_select.list() is now more likely to remove the -widget immediately after selection is complete. +

  • Deparsing involving calls to anonymous functions has been +made closer to reversible by the addition of extra parentheses.

  • -
  • Adding/subtracting a "difftime" object to/from a -"POSIXt" or "Date" object works again (it was -broken by the addition of Ops.difftime). +

  • The function utils::packageName() has been added as +a lightweight version of methods::getPackageName().

  • -
  • Conversion to latex of an Rd file with no aliases failed. +

  • find.package(lib.loc = NULL) now treats loaded +namespaces preferentially in the same way as attached packages +have been for a long time.

  • -
  • wilcox.test(conf.int=TRUE) has achieved.level -corrected and, for exact=FALSE, now returns a -estimate component which does not depend on the -alternative used. +

  • In Windows, the Change Directory dialog now defaults to +the current working directory, rather than to the last directory +chosen in that dialog.

  • -
  • help.search() failed when the package argument was -specified. (PR#14113) +

  • available.packages() gains a +"license/restricts_use" filter which retains only packages +for which installation can proceed solely based on packages which +are guaranteed not to restrict use.

  • -
  • switch(EXPR = "A") now returns NULL, as does -switch(1) (which used to signal an error). +

  • New check_packages_in_dir() function in package +tools for conveniently checking source packages along with +their reverse dependencies.

    -
- - - - -

../../html/logo.jpg CHANGES IN R VERSION 2.10.0

- - - -

SIGNIFICANT USER-VISIBLE CHANGES

- - -
    -
  • Package help is now converted from Rd by the R-based -converters that were first introduced in 2.9.0. This means +

  • +
  • R's completion mechanism has been improved to handle help +requests (starting with a question mark). In particular, help +prefixes are now supported, as well as quoted help topics. To +support this, completion inside quotes are now handled by R by +default on all platforms.

    - -
      -
    • Packages that were installed by R-devel after 2009-08-09 -should not be used with earlier versions of R, and most -aspects of package help (including the runnable examples) -will be missing if they are so used. +

    • +
    • The memory manager now allows the strategy used to balance +garbage collection and memory growth to be controlled by setting +the environment variable R_GC_MEM_GROW. See ?Memory +for more details.

    • -
    • Text, HTML and latex help and examples for packages -installed under the new system are converted on-demand from -stored parsed Rd files. (Conversions stored in packages -installed under R < 2.10.0 are used if no parsed Rd files -are found. It is recommended that such packages be -re-installed.) +

    • (‘For experts only’, as the introductory manual +says.) The use of environment variables R_NSIZE and +R_VSIZE to control the initial (= minimum) garbage +collection trigger for number of cons cels and size of heap has +been restored: they can be overridden by the command-line options +--min-nsize and --min-vsize; see ?Memory.

      -
    -
  • -
  • HTML help is now generated dynamically using an HTTP server -running in the R process and listening on the loopback -interface. +

  • On Windows, the device name for bitmap devices as reported +by .Device and .Devices no longer includes the file +name. This is for consistency with other platforms and was +requested by the lattice maintainer.

    - -
      -
    • Those worried about security implications of such -a server can disable it by setting the environment variable -R_DISABLE_HTTPD to a non-empty value. This disables -help.start() and HTML help (so text help is shown -instead). +

      win.metafile() still uses the file name: the exact form is +used by package tkrplot.

    • -
    • The Java/Javascript search engine has been replaced by an -HTML interface to help.search(). help.start() no -longer has an argument searchEngine as it is no longer -needed. +

    • set.seed(NULL) re-initializes .Random.seed as +done at the beginning of the session if not already set. +(Suggestion of Bill Dunlap.)

    • -
    • The HTML help can now locate cross-references of the form -\link[pkg]{foo} and \link[pkg:foo]{bar} -where foo is an alias in the package, rather than the -documented (basename of a) filename (since the documentation -has been much ignored). +

    • The breaks argument in hist.default() can now be +a function that returns the breakpoints to be used (previously it +could only return the suggested number of breakpoints). +

      +
    • +
    • File ‘share/licenses/licenses.db’ has some +clarifications, especially as to which variants of ‘BSD’ +and ‘MIT’ is intended and how to apply them to packages. +The problematic licence ‘Artistic-1.0’ has been removed.

      -
    -
-

NEW FEATURES

+

LONG VECTORS

+

This section applies only to 64-bit platforms. +

    -
  • polygon(), pdf() and postscript() now -have an argument fillOddEven (default FALSE), -which controls the mode used for polygon fills of -self-intersecting shapes. -

    -
  • -
  • New debugonce() function; further, -getOption("deparse.max.lines") is now observed when -debugging, from a code suggestion by John Brzustowski. -(PR#13647/8) -

    -
  • -
  • plot() methods for "stepfun" and hence -"ecdf" no longer plot points by default for n >= 1000. -

    -
  • -
  • [g]sub(perl=TRUE) now also supports "\E" -in order to end "\U" and "\L" case changes, -thanks to a patch from Bill Dunlap. -

    -
  • -
  • factor(), levels()<-, etc, now ensure that -the resulting factor levels are unique (as was always the implied -intention). Factors with duplicated levels are still -constructible by low-level means, but are now declared illegal. +

  • There is support for vectors longer than 2^31 + - 1 elements. This applies to raw, logical, integer, double, +complex and character vectors, as well as lists. (Elements of +character vectors remain limited to 2^31 - 1 +bytes.)

  • -
  • New print() (S3) method for class "function", -also used for auto-printing. Further, .Primitive -functions now print and auto-print identically. The new method -is based on code suggestions by Romain François. +

  • Most operations which can sensibly be done with long vectors +work: others may return the error ‘long vectors not +supported yet’. Most of these are because they explicitly work +with integer indices (e.g. anyDuplicated() and +match()) or because other limits (e.g. of character strings +or matrix dimensions) would be exceeded or the operations would be +extremely slow.

  • -
  • The print() and toLatex() methods for class -"sessionInfo" now show the locale in a nicer format and -have arguments to suppress locale information. +

  • length() returns a double for long vectors, and +lengths can be set to 2^31 or more by the +replacement function with a double value.

  • -
  • In addition to previously only round(), there are -other Math group (S3) methods for "difftime", -such as floor(), signif(), abs(), etc. +

  • Most aspects of indexing are available. Generally +double-valued indices can be used to access elements beyond +2^31 - 1.

  • -
  • For completeness, old.packages() and -available.packages() allow arguments type to be -specified (you could always specify arguments available -or contriburl). +

  • There is some support for matrices and arrays with each +dimension less than 2^31 but total number of +elements more than that. Only some aspects of matrix algebra work +for such matrices, often taking a very long time. In other cases +the underlying Fortran code has an unstated restriction (as was +found for complex svd()).

  • -
  • available.packages() by default only returns -information on the latest versions of packages whose version -requirements are satisfied by the currently running R. +

  • dist() can produce dissimilarity objects for more +than 65536 rows (but for example hclust() cannot process +such objects).

  • -
  • tools::write_PACKAGES() has a new argument -latestOnly, which defaults to TRUE when only the -latest versions in the repository will be listed in the index. +

  • serialize() to a raw vector is unlimited in size +(except by resources).

  • -
  • getOption() has a new argument default that -is returned if the specified option is not set. This simplifies -querying a value and checking whether it is NULL or not. +

  • The C-level function R_alloc can now allocate +2^35 or more bytes.

  • -
  • parse() now warns if the requested encoding is not supported. +

  • agrep() and grep() will return double vectors +of indices for long vector inputs.

  • -
  • The "table" method of as.data.frame() gains a -stringsAsFactors argument to allow the classifying -factors to be returned as character vectors rather than the -default factor type. +

  • Many calls to .C() have been replaced by +.Call() to allow long vectors to be supported (now or in +the future). Regrettably several packages had copied the non-API +.C() calls and so failed.

  • -
  • If model.frame.default() encounters a character -variable where xlev indicates a factor, it now converts -the variable to a factor (with a warning). +

  • .C() and .Fortran() do not accept long vector +inputs. This is a precaution as it is very unlikely that existing +code will have been written to handle long vectors (and the R +wrappers often assume that length(x) is an integer).

  • -
  • curve() now returns a list containing the points that -w§ere drawn. +

  • Most of the methods for sort() work for long vectors.

    -
  • -
  • spineplot() now accepts axes = FALSE, for -consistency with other functions called by plot.factor(). +

    rank(), sort.list() and order() support +long vectors (slowly except for radix sorting).

  • -
  • The Kendall and Spearman methods of cor.test() can -optionally use continuity correction when not computing exact -p-values. (The Kendall case is the wish of PR#13691.) +

  • sample() can do uniform sampling from a long vector.

    -
  • -
  • R now keeps track of line numbers during execution for code -sourced with options(keep.source = TRUE). The source -reference is displayed by debugging functions such as -traceback(), browser(), recover(), and -dump.frames(), and is stored as an attribute on each -element returned by sys.calls(). +

+ + + + +

PERFORMANCE IMPROVEMENTS

+ + +
    +
  • More use has been made of R objects representing registered +entry points, which is more efficient as the address is provided +by the loader once only when the package is loaded.

    -
  • -
  • More functions now have an implicit (S4) generic definition. +

    This has been done for packages base, methods, +splines and tcltk: it was already in place for the +other standard packages.

    -
  • -
  • quantile.default() now disallows factors (wish of -PR#13631) and its help -documents what numeric-like properties its input need to have to -work correctly. +

    Since these entry points are always accessed by the R entry +points they do not need to be in the load table which can be +substantially smaller and hence searched faster. This does mean +that .C / .Fortran / .Call calls copied from +earlier versions of R may no longer work – but they were never +part of the API.

  • -
  • weighted.mean() is now generic and has "Date", -"POSIXct" and "POSIXlt" methods. +

  • Many .Call() calls in package base have been +migrated to .Internal() calls.

  • -
  • Naming subscripts (e.g. x[i=1, j=2]) in -data.frame methods for [ and [[ now gives a -warning. (Names are ignored in the default method, but could -have odd semantics for other methods, and do for the data.frame -ones.) +

  • solve() makes fewer copies, especially when b +is a vector rather than a matrix.

  • -
  • as.data.frame() has an "aovproj" method. -(Wish of PR#13505) +

  • eigen() makes fewer copies if the input has dimnames.

  • -
  • as.character(x) for numeric x no longer -produces strings such as "0.30", i.e., with trailing -zeros. This change also renders levels construction in -factor() more consistent. +

  • Most of the linear algebra functions make fewer copies when +the input(s) are not double (e.g. integer or logical).

  • -
  • codocClasses(), which checks consistency of the -documentation of S4 class slots, now does so in considerably more -cases. The documentation of inherited slots (from superclasses) -is now optional. This affects R CMD check <pkg> when -the package defines S4 classes. +

  • A foreign function call (.C() etc) in a package +without a PACKAGE argument will only look in the first DLL +specified in the ‘NAMESPACE’ file of the package rather than +searching all loaded DLLs. A few packages needed PACKAGE +arguments added.

  • -
  • codoc() now also checks S4 methods for code/documentation -mismatches. +

  • The @<- operator is now implemented as a primitive, +which should reduce some copying of objects when used. Note that +the operator object must now be in package base: do not try +to import it explicitly from package methods.

    -
  • -
  • for(), while(), and repeat() loops now -always return NULL as their (invisible) value. This change was -needed to address a reference counting bug without creating -performance penalties for some common use cases. +

+ + + + +

PACKAGE INSTALLATION

+ + +
    +
  • The transitional support for installing packages without +namespaces (required since R 2.14.0) has been removed. +R CMD build will still add a namespace, but a +.First.lib() function will need to be converted.

    -
  • -
  • The print() method for ls.str() results now -obeys an optional digits argument. +

    R CMD INSTALL no longer adds a namespace (so +installation will fail), and a .First.lib() function in a +package will be ignored (with an installation warning for now).

    -
  • -
  • The method argument of glm() now allows -user-contributed methods. +

    As an exception, packages without a ‘R’ directory and no +‘NAMESPACE’ file can still be installed.

  • -
  • More general reorder.default() replaces functionality of -reorder.factor() and reorder.character(). -

    +
  • Packages can specify in their ‘DESCRIPTION file’ a line +like

    +
         Biarch: yes
    +
    +to be installed on Windows with --force-biarch.
  • -
  • The function aspell() has been added to provide an -interface to the Aspell spell-checker. +

  • Package vignettes can now be processed by other engines +besides Sweave; see ‘Writing R Extensions’ and the +tools::vignetteEngine help topic for details.

  • -
  • Filters RdTextFilter() and SweaveTeXFilter() -have been added to the tools package to provide support for -aspell() or other spell checkers. +

  • The ‘*.R’ tangled source code for vignettes is now +included in tarballs when R CMD build is used to produce +them. In R 3.0.0, ‘*.R’ files not in the sources will be +produced at install time, but eventually this will be dropped.

  • -
  • xtabs() with the new argument sparse = TRUE -now returns a sparse Matrix, using package Matrix. +

  • The package type "mac.binary" now looks in a path in +the repository without any Mac subtype (which used to be +universal or leopard): it looks in +‘bin/macosx/contrib/3.0’ rather than +‘bin/macosx/leopard/contrib/2.15’). This is the type used +for the CRAN binary distribution for OS X as from R +3.0.0.

  • -
  • contr.sum() etc gain an argument sparse -which allows sparse matrices to be returned. -

    -

    contrasts() also gains a sparse argument which it -passes to the actual contrast function if that has a formal -argument sparse. +

  • File ‘etc/Makeconf’ makes more use of the macros +$(CC), $(CXX), $(F77) and $(FC), so +the compiler in use can be changed by setting just these (and if +necessary the corresponding flags and FLIBS) in file +‘~/.R/Makevars’.

    -

    contrasts(f, .) <- val now also works when val -is a sparse Matrix. It is planned that model.matrix() -will work with such factors f in the future. +

    This is convenient for those working with binary distributions of +R, e.g. on OS X.

    -
  • -
  • readNEWS() will recognize a UTF-8 byte-order mark -(BOM) in the ‘NEWS’ file. However, it is safer to use only -ASCII code there because not all editors recognize BOMs. +

+ + + + +

UTILITIES

+ + +
    +
  • R CMD check now gives a warning rather than a +note if it finds calls to abort, assert or +exit in compiled code, and has been able to find the +‘.o’ file in which the calls occur.

    -
  • -
  • New utility function inheritedSlotNames() for S4 -class programming. +

    Such calls can terminate the R process which loads the package.

  • -
  • tabulate() now allows NAs to pass through (and be ignored). +

  • The location of the build and check environment files can +now be specified by the environment variables +R_BUILD_ENVIRON and R_CHECK_ENVIRON, respectively.

  • -
  • If debug() is called on an S3 generic function then -all methods are debugged as well. +

  • R CMD Sweave gains a --compact option +to control possibly reducing the size of the PDF file it creates +when --pdf is given.

  • -
  • Outlier symbols drawn by boxplot() now obey the -outlwd argument. Reported by Jurgen Kluge. +

  • R CMD build now omits Eclipse's ‘.metadata’ +directories, and R CMD check warns if it finds them.

  • -
  • svd(x) and eigen(x) now behave analogously to -qr(x) in accepting logical matrices x. +

  • R CMD check now does some checks on functions +defined within reference classes, including of .Call() etc +calls.

  • -
  • File ‘NEWS’ is now in UTF-8, and has a BOM (often -invisible) on the first line, and Emacs local variables -set for UTF-8 at the end. RShowDoc("NEWS") should display -this correctly, given suitable fonts. +

  • R CMD check --as-cran notes assignments to the +global environment, calls to data() which load into the +global environment, and calls to attach().

  • -
  • terms.formula(simplify = TRUE) now does not deparse -the LHS and so preserves non-standard responses such as `a: - b` (requested by Sundar Dorai-Raj). +

  • R CMD build by default uses the internal method of +tar() to prepare the tarball. This is more likely to +produce a tarball compatible with R CMD INSTALL and +R CMD check: an external tar program, +including options, can be specified via the environment +variable R_BUILD_TAR.

  • -
  • New function news() for building and querying R or -package news information. +

  • tools::massageExamples() is better protected against +packages which re-define base functions such as cat() and +get() and so can cause R CMD check to fail when +checking examples.

  • -
  • z^n for integer n and complex z is more -accurate now if |n| <= 65536. +

  • R CMD javareconf has been enhanced to be more +similar to the code used by configure.

    -
  • -
  • factor(NULL) now returns the same as -factor(character(0)) instead of an error, and -table(NULL) consequently does analogously. +

    There is now a test that a JNI program can be compiled (like +configure did) and only working settings are used.

    -
  • -
  • as.data.frame.vector() (and its copies) is slightly faster -by avoiding a copy if there are no names (following a -suggestion of Tim Hesterberg). +

    It makes use of custom settings from configuration recorded in +‘etc/javaconf’.

  • -
  • writeLines(), writeBin() and -writeChar() have a new argument useBytes. If -false, character strings with marked encodings are translated to -the current locale (as before) but if true they are written -byte-by-byte. +

  • The --no-vignettes argument of R CMD + build has been renamed to the more accurate +--no-build-vignettes: its action has always been to +(re)build vignettes and never omitted them.

    -
  • -
  • iconv() has a new argument mark which can be -used (by experts) to suppress the declaration of encodings. +

    R CMD check accepts --no-build-vignettes as a +preferred synonym for --no-rebuild-vignettes.

    -
  • -
  • DESCRIPTION’ file's LinkingTo specs are now -recognized as installation dependencies, and included in package -management computations. +

+ + + + +

DEPRECATED AND DEFUNCT

+ + +
    +
  • The ENCODING argument to .C() is defunct. +Use iconv() instead.

  • -
  • Standardized ‘DESCRIPTION’ file License specs -are now available for package management computations. +

  • The .Internal(eval.with.vis) non-API function has +been removed.

  • -
  • "\uxxxx" and "\Uxxxxxxxx" escapes can now be -parsed to a UTF-8 encoded string even in non-UTF-8 locales (this -has been implemented on Windows since R 2.7.0). The semantics -have been changed slightly: a string containing such escapes is -always stored in UTF-8 (and hence is suitable for portably -including Unicode text in packages). +

  • Support for the converters for use with .C() has been +removed, including the oft misused non-API header +‘R_ext/RConverters.h’.

  • -
  • New as.raw() method for "tclObj" objects (wish -of PR#13758). +

  • The previously deprecated uses of array() with a +0-length dim argument and tapply() with a 0-length +INDEX list are now errors.

  • -
  • Rd.sty now makes a better job of setting email addresses, -including using a monospaced font. +

  • Translation packages are defunct.

  • -
  • textConnection() gains an encoding argument -to determine how input strings with marked encodings will be -handled. +

  • Calling rep() or rep.int() on a pairlist or +other non-vector object is now an error.

  • -
  • R CMD Rd2pdf is available as a shortcut for -R CMD Rd2dvi --pdf. +

  • Several non-API entry points have been transferred to +packages (e.g. R_zeroin2) or replaced by different non-API +entry points (e.g. R_tabulate).

  • -
  • R CMD check now checks links where a package is -specified (\link[pkg]{file} or -\link[pkg:file]{topic}), if the package is available. -It notes if the package is not available, as in many cases this -is an error in the link. +

  • The ‘internal’ graphics device invoked by +.Call("R_GD_nullDevice", package = "grDevices") has +been removed: use pdf(file = NULL) instead.

  • -
  • identical() gains three logical arguments, which -allow for even more differentiation, notably -0 and -0. +

  • The .Fortran() entry point "dqrls" which has +not been used by R since version 2.15.1 is no longer available.

  • -
  • legend() now can specify the border color of -filled boxes, thanks to a patch from Frederic Schutz. +

  • Functions traceOn() and traceOff() in package +methods are now defunct.

  • -
  • Indexing with a vector index to [[ ]] has now been -extended to all recursive types. +

  • Function CRAN.packages() is finally defunct.

  • -
  • Pairlists may now be assigned as elements of lists. (Lists -could always be created with pairlist elements, but [[<- -didn't support assigning them.) +

  • Use of col2rgb(0) is defunct: use par("bg") or +NA instead.

  • -
  • The parser now supports C-preprocessor-like #line -directives, so error messages and source references may refer to -the original file rather than an intermediate one. +

  • The long-defunct functions Rd_parse(), +anovalist.lm(), categpry(), clearNames(), +gammaCody(), glm.fit.null(), lm.fit.null(), +lm.wfit.null(), manglePackageNames(), +mauchley.test(), package.contents(), +print.coefmat(), reshapeLong(), +reshapeWide(), tkclose(), tkcmd(), +tkfile.dir(), tkfile.tail(), tkopen(), +tkputs(), tkread(), trySilent() and +zip.file.extract() have been removed entirely (but are +still documented in the help system).

  • -
  • New functions findLineNum() and -setBreakpoint() work with the source references to find -the location of source lines and set breakpoints (using -trace()) at those lines. +

  • The unused dataPath argument to +attachNamespace() has been removed.

  • -
  • Namespace importing is more careful about warning on masked -generics, thanks to a patch by Yohan Chalabi. +

  • grid.prompt() has been removed: use +devAskNewPage() instead.

  • -
  • detach() now has an argument character.only -with the same meaning as for library() or -require(). +

  • The long-deprecated intensities component is no +longer returned by hist().

  • -
  • available.packages() gains a filters -argument for specifying the filtering operations performed on the -packages found in the repositories. A new built-in -"license/FOSS" filter only retains packages for which -installation can proceed solely based on packages which can be -verified as Free or Open Source Software (FOSS) employing the -available license specifications. +

  • mean() for data frames and sd() for data +frames and matrices are defunct.

  • -
  • In registering an S3 class by a call to -setOldClass(), the data part (e.g., the object type) -required for the class can be included as one of the superclasses -in the Classes argument. +

  • chol(pivot = FALSE, LINPACK = TRUE), +ch2inv(LINPACK = TRUE), eigen(EISPACK = TRUE), +solve(LINPACK = TRUE) and svd(LINPACK = TRUE) are +defunct: LAPACK will be used, with a warning.

  • -
  • The argument f to showMethods() can be an -expression evaluating to a generic function, allowing methods to -be shown for non-exported generics and other nonstandard cases. +

  • The keep.source argument to library() and +require() is defunct. This option needs to be set +at install time.

  • -
  • sprintf() now supports %o for octal -conversions. +

  • Documentation for real(), as.real() and +is.real() has been moved to ‘defunct’ and the +functions removed.

  • -
  • New function Sys.readlink() for information about symbolic -links, including if a file is a symbolic link. +

  • The maxRasters argument of pdf() (unused since +R 2.14.0) has been removed.

  • -
  • Package tools has new functions -checkRdaFiles() and resaveRdaFiles() to report on -the format of ‘.rda’/‘.RData’ data files, and to -re-save them in a different compressed format, including choosing -the most compact format available. -

    -

    A new INSTALL option, --resave-data, makes use -of this. +

  • The unused fontsmooth argument has been removed from +the quartz() device.

  • -
  • File ‘~/.R/config’ is used in preference to -‘~/.Rconfig’, and these are now documented in ‘R -Installation and Administration’. +

  • All the (non-API) EISPACK entry points in R have been removed.

  • -
  • Logic operations with complex numbers now work, as they were always -documented to, and as in S. +

  • chol(pivot = TRUE, LINPACK = TRUE) is deprecated.

  • -
  • arrows() and segments() allow one of x1 -or y1 to be omitted to simplify the specification of -vertical or horizontal lines (suggestion of Tim Hesterberg). +

  • The long-deprecated use of \synopsis in the +Usage section of ‘.Rd’ files will be removed in R +3.1.0.

  • -
  • approxfun() is faster by avoiding repeated NA -checks (diagnosis and patch by Karline Soetaert & Thomas -Petzoldt). +

  • .find.package() and .path.package() are +deprecated: only the public versions without the dot have ever +been in the API.

  • -
  • There are the beginnings of a Nynorsk translation by Karl Ove -Hufthammer. +

  • In a package's ‘DESCRIPTION’ file,

    +
        License: X11
    +is deprecated, since it includes +‘Copyright (C) 1996 X Consortium’ which cannot be +appropriate for a current R package. Use ‘MIT’ or +‘BSD_2_clause’ instead. +
+ + + + +

CODE MIGRATION

+ + +
    +
  • The C code underlying base graphics has been migrated to the +graphics package (and hence no longer uses +.Internal() calls).

  • -
  • stripchart() allows par bg to be -passed in for the background colour for pch = 21 (wish of -PR#13984). +

  • Most of the .Internal() calls used in the stats +package have been migrated to C code in that package.

    -
  • -
  • New generic function .DollarNames() to enable class authors -to customize completion after the $ extractor. +

    This means that a number of .Internal() calls which have +been used by packages no longer exist, including +.Internal(cor) .Internal(cov), +.Internal(optimhess) and .Internal(update.formula).

  • -
  • load(), save(), dput() and -dump() now open a not-yet-open connection in the -appropriate mode (as other functions using connections directly -already did). +

  • Some .External() calls to the base package +(really to the R executable or shared library) have been moved to +more appropriate packages. Packages should not have been using +such calls, but some did (mainly those used by integrate()).

-

REGULAR EXPRESSIONS

+

PACKAGE parallel

    -
  • A different regular expression engine is used for basic and -extended regexps and is also for approximate matching. This is -based on the TRE library of Ville Laurikari, a modified copy of -which is included in the R sources. -

    -

    This is often faster, especially in a MBCS locale. -

    -

    Some known differences are that it is less tolerant of invalid -inputs in MBCS locales, and in its interpretation of undefined -(extended) regexps such as "^*". Also, the interpretation of -ranges such as [W-z] in caseless matching is no longer to map -the range to lower case. -

    -

    This engine may in future be used in ‘literal’ mode for -fixed = TRUE, and there is a compile-time option in -src/main/grep.c to do so. -

    -
  • -
  • The use of repeated boundary regexps in gsub() and -gregexpr() as warned about in the help page does not work -in this engine (it did in the previous one since 2005). -

    -
  • -
  • Extended (and basic) regexps now support same set of options -as for fixed = TRUE and perl = TRUE, including -useBytes and support for UTF-8-encoded strings in -non-UTF-8 locales. -

    -
  • -
  • agrep() now has full support for MBCS locales with a modest -speed penalty. This enables help.search() to use approximate -matching character-wise rather than byte-wise. -

    -
  • -
  • [g]sub use a single-pass algorithm instead of -matching twice and so is usually faster. -

    -
  • -
  • The perl = TRUE versions now work correctly in a -non-UTF-8 MBCS locale, by translating the inputs to UTF-8. -

    -
  • -
  • useBytes = TRUE now inhibits the translation of inputs with -marked encodings. -

    -
  • -
  • strsplit() gains a useBytes argument. +

  • There is a new function mcaffinity() which allows +getting or setting the CPU affinity mask for the current R process on +systems that supports this (currently only Linux has been tested +successfully). It has no effect on systems which do not support +process affinity. Users are not expected to use this function +directly (with the exception of fixing libraries that break +affinity settings like OpenBLAS) – the function is rather +intended to support affinity control in high-level parallel +functions. In the future, R may supplement lack of affinity +control in the OS by its own bookkeeping via mcaffinity() +related to processes and threads it spawns.

  • -
  • The algorithm used by strsplit() has been reordered -to batch by elements of split: this can be much faster for -fixed = FALSE (as multiple compilation of regexps is avoided). +

  • mcparallel() has a new argument mc.affinity +which attempts to set the affinity of the child process according +to the specification contained therein.

  • -
  • The help pages, including ?regexp, have been updated -and should be consulted for details of the new implementations. +

  • The port used by socket clusters is chosen randomly: this +should help to avoid clashes observed when two users of a +multi-user machine try to create a cluster at the same time. To +reproduce the previous behaviour set environment variable +R_PARALLEL_PORT to 10187.

-

HELP & Rd FILE CHANGES

+

C-LEVEL FACILITIES

    -
  • A new dynamic HTML help system is used by default, and may be -controlled using tools::startDynamicHelp(). With this enabled, -HTML help pages will be generated on request, resolving links -by searching through the current .libPaths(). The user -may set options("help.ports") to control which IP port is used -by the server. -

    -
  • -
  • help.start() no longer sets options(htmlhelp = - TRUE) (it used to on Unix but not on Windows). Nor does it on -Unix reset the "browser" option if given an argument of -that name. -

    -

    Arguments update and remote are now available -on all platforms: the default is update = FALSE since the -http server will update the package index at first use. +

  • There has been some minor re-organization of the non-API +header files. In particular, ‘Rinternals.h’ no longer +includes the non-API header ‘R_exts/PrtUtil.h’, and that no +longer includes ‘R_exts/Print.h’.

  • -
  • help() has a new argument help_type (with -default set by the option of that name) to supersede arguments -offline, htmlhelp and chmhelp -(although for now they still work if help_type is -unset). There is a new type, "PDF" to allow offline PDF -(rather than PostScript). -

    -

    A function offline_help_helper() will be used if this exists -in the workspace or further down the search path, otherwise -the function of that name in the utils namespace is used. +

  • Passing NULL to .C() is now an error.

  • -
  • Plain text help is now used as the fallback for HTML help (as -it always was for Compiled HTML help on Windows). +

  • .C() and .Fortran() now warn if +"single" arguments are used with DUP = FALSE, as +changes to such arguments are not returned to the caller.

  • -
  • It is possible to ask for static HTML pages to be prebuilt -via the configure option --enable-prebuilt-html. This -may be useful for those who wish to make HTML help available -outside R, e.g. on a local web site. +

  • C entry points R_qsort and R_qsort_I now have +start and end as size_t to allow them to work +with longer vectors on 64-bit platforms. Code using them should +be recompiled.

  • -
  • An experimental tag \Sexpr has been added to Rd -files, to evaluate expressions at build, install, or render time. -Currently install time and render time evaluation are supported. +

  • A few recently added C entry points were missing the +remapping to Rf_, notably [dpq]nbinom_mu.

  • -
  • Tags \if, \ifelse and \out have been -added to allow format-specific (or more general, using -\Sexpr) conditional text in man pages. +

  • Some of the interface pointers formerly available only to +R.app are now available to front-ends on all +Unix-alikes: one has been added for the interface to +View().

  • -
  • The parse_Rd() parser has been made more tolerant of coding -errors in Rd files: now all syntax errors are reported as -warnings, and an attempt is made to continue parsing. +

  • PACKAGE = "" is now an error in .C() etc calls: +it was always contrary to the documentation.

  • -
  • parse_Rd() now has an argument fragment -(default FALSE) to accept small fragments of Rd files (so -that \Sexpr can output Rd code which is then parsed). +

  • Entry point rcont2 has been migrated to package +stats and so is no longer available.

  • -
  • parse_Rd() now always converts its input to UTF-8. -The Rd2* rendering functions have a new argument, -outputEncoding, which controls how their output is -encoded. +

  • R_SVN_REVISION in ‘Rversion.h’ is now an integer +(rather than a string) and hence usable as e.g. +#if R_SVN_REVISION < 70000.

  • -
  • parse_Rd() no longer includes the newline as part of -a "%"-style comment. +

  • The entry points rgb2hsv and hsv2rgb have been +migrated to package grDevices and so are no longer available.

  • -
  • There have been various bug fixes and code reorganization in -the Rd renderers Rd2HTML, Rd2latex, Rd2txt, -and Rd2ex. -

    -

    All example files are now created with either ASCII or UTF-8 -encoding, and the encoding is only marked in the file if there -is any non-UTF-8 code (previously it was marked if the help -file had non-ASCII contents, possibly in other sections). +

  • R_GE_version has been increased to 10 and +name2col removed (use R_GE_str2col instead). R +internal colour codes are now defined using the typedef +rcolor.

  • -
  • print.Rd() now adds necessary escape characters so that -printing and re-parsing an Rd object should produce an -equivalent object. +

  • The REPROTECT macro now checks that the protect index +is valid.

  • -
  • parse_Rd() was incorrectly handling multiple backslashes in -R code strings, converting 4n+3 backslashes to 2n+1 instead -of 2n+2. +

  • Several non-API entry points no longer used by R have been +removed, including the Fortran entry points chol, +chol2inv, cg, ch and rg, and the C +entry points Brent_fmin, fft_factor and fft_work.

  • -
  • parse_Rd() now recognizes the \var tag within -a quoted string in R-like text. +

  • If a .External call is registered with a number of +arguments (other than -1), the number of arguments passed +is checked for each call (as for other foreign function calls).

  • -
  • parse_Rd() now treats the argument of -\command as LaTeX-like, rather than verbatim. +

  • It is now possible to write custom connection +implementations outside core R using ‘R_ext/Connections.h’. +Please note that the implementation of connections is still +considered internal and may change in the future (see the above +file for details).

-

COMPRESSION

+

INTERNATIONALIZATION

    -
  • New function untar() to list or unpack tar archives, -possibly compressed. This uses either an external tar -command or an internal implementation. -

    -
  • -
  • New function tar() to create (possibly compressed) -tar archives. -

    -
  • -
  • New functions memCompress() and -memDecompress() for in-memory compression and -decompression. -

    -
  • -
  • bzfile() has a compress argument to select -the amount of effort put into compression when writing. -

    -
  • -
  • New function xzfile() for use with -xz-compressed files. (This can also read files -compressed by some versions of lzma.) -

    -
  • -
  • gzfile() looks at the file header and so can now also -read bzip2-ed files and xz-compressed files. -

    -
  • -
  • There are the new options of save(compress = "bzip2") -and "xz" to use bzip2 or xz -compression (which will be slower, but can give substantially -smaller files). Argument compression_level gives finer -control over the space/time tradeoffs. -

    -

    load() can read such saves (but only as from this version of R). +

  • The management of translations has been converted to R +code: see ?tools::update_pkg_po.

  • -
  • R CMD INSTALL/check and -tools::writePACKAGES accept a wider range of compressed -tar archives. Precisely how wide depends on the capabilities of -the host system's tar command: they almost always -include .tar.bz2 archives, and with modern versions of -tar other forms of compression such as lzma -and xz, and arbitrary extensions. +

  • The translations for the R interpreter and +RGui.exe are now part of the base package (rather than +having sources in directory ‘po’ and being installed to +‘share/locale’). Thus the base package supports three +translation domains, R-base, R and RGui.

  • -
  • R CMD INSTALL has a new option ---data-compress to control the compression used when -lazy-loading data. New possibilities are ---data-compress=bzip2 which will give ca 15% better -compression at the expense of slower installation times, and ---data-compress=xz, often giving even better compression -on large datasets at the expense of much longer installation -times. (The latter is used for the recommended packages: it is -particularly effective for survival.) +

  • The compiled translations which ship with R are all +installed to the new package translations for easier +updating. The first package of that name found on +.libPaths() at the start of the R session will be used. +(It is possible messages will be used before .libPaths() is +set up in which case the default translations will be used: set +environment variable R_TRANSLATIONS to point to the location +of the intended translations package to use this right from +the start.)

  • -
  • file() for open = "", "r" or -"rt" will automagically detect compressed files (from -gzip, bzip2 or xz). This means -that compressed files can be specified by file name (rather than -via a gzfile() connection) to read.table(), -readlines(), scan() and so on. +

  • The translations form a separate group in the Windows +installer, so can be omitted if desired.

  • -
  • data() can handle compressed text files with extensions -‘.{txt,tab,csv}.{gz,bz2,xz}’ . +

  • The markup for many messages has been changed to make them +easier to translate, incorporating suggestions from Åukasz Daniel.

-

DEPRECATED & DEFUNCT

+

INSTALLATION

    -
  • png(type="cairo1") is defunct: the value is no longer -recognized. -

    -
  • -
  • tools::Rd_parse() is defunct (as this version of R -uses only Rd version 2). -

    -
  • -
  • Use of file ‘~/.Rconf’ (which was deprecated in favour -of ‘~/.Rconfig’ in 2004) has finally been removed. -

    -
  • -
  • Bundles of packages are deprecated. See ‘Writing R -Extensions’ for the steps needed to unbundle a bundle. -

    -
  • -
  • help() arguments offline, htmlhelp and -chmhelp are deprecated in favour of help_type. +

  • There is again support for building without using the C +‘long double’ type. This is required by C99, but system +implementations can be slow or flawed. Use configure +option --disable-long-double.

  • -
  • clearNames() (in package stats) is deprecated -for unname(). +

  • make pdf and make install-pdf now make +and install the full reference index (including all base and +recommended packages).

  • -
  • Basic regular expressions (extended = FALSE) are -deprecated in strsplit, grep and friends. There is -a precise POSIX standard for them, but it is not what recent RE -engines implement, and it seems that in almost all cases package -authors intended fixed = TRUE when using extended = - FALSE. +

  • The 'reference manual' on the Windows GUI menu and included +in the installer is now the full reference index, including all +base and recommended packages.

  • -
  • methods::trySilent() is deprecated in favour of -try(silent=TRUE) or – more efficiently and flexibly – -something like tryCatch(error = function(e) e). +

  • R help pages and manuals have no ISBNs because ISBN +rules no longer allow constantly changing content to be assigned +an ISBN.

  • -
  • index.search() is deprecated: there are no longer -directories of types other than help. -

    -
- - - - -

INSTALLATION

- - -
    -
  • cairo >= 1.2 is now required (1.2.0 was released in July 2006) -for cairo-based graphics devices (which remain optional). +

  • The Windows installer no longer installs a Start Menu +link to the static help pages; as most pages are generated +dynamically, this led to a lot of broken links.

  • -
  • A suitable iconv() is now required: support for -configure option --without-iconv has been withdrawn (it -was deprecated in R 2.5.0). +

  • Any custom settings for Java configuration are recorded in +file ‘etc/javaconf’ for subsequent use by R CMD + javareconf.

  • -
  • Perl is no longer ‘essential’. R can be built -without it, but scripts R CMD build, check, -Rprof and Sd2d currently require it. +

  • There is now support for makeinfo version 5.0 +(which requires a slightly different ‘.texi’ syntax).

  • -
  • A system glob function is now essential (a working -Sys.glob() has been assumed since R 2.9.0 at least). +

  • The minimum versions for --use-system-zlib and +--use-system-pcre are now tested as 1.2.5 and 8.10 +respectively.

  • -
  • C99 support for MBCS is now required, and configure option ---disable-mbcs has been withdrawn. +

  • On Windows, the stack size is reduced to 16MB on 32-bit +systems: misguided users were launching many threads without +controlling the stack size.

  • -
  • Having a version of tar capable of automagically -detecting compressed archives is useful for -utils::untar(), and so gtar (a common name for -GNU tar) is preferred to tar: set environment -variable TAR to specify a particular tar command. -

    -
- - - - -

INTERNATIONALIZATION

- - -
    -
  • There is some makefile support for adding/updating translations -in packages: see po/README and ‘Writing R Extensions’. -

    -

    There is support for the use of dngettext for C-level -translations in packages: see ‘Writing R Extensions’. +

  • configure no longer looks for file +‘~/.Rconfig’: ‘~/.R/config’ has long been preferred.

@@ -10420,102 +3599,124 @@
    -
  • Assigning an extra 0-length column to a data frame by -DF[, "foo"] <- value now works in most cases (by filling -with NAs) or fails. (It used to give a corrupt data -frame.) +

  • When R CMD build is run in an encoding other than +the one specified in the package's ‘DESCRIPTION’ file it +tries harder to expand the authors@R field in the specified +encoding. (PR#14958) +

    +
  • +
  • If R CMD INSTALL is required to expand the +authors@R field of the ‘DESCRIPTION’ file, it tries +harder to do so in the encoding specified for the package (rather +than using ASCII escapes).

  • -
  • validObject() avoids an error during evaluation in the case -of various incorrect slot definitions. +

  • Fix in package grid for pushing a viewport into a +layout cell, where the layout is within a viewport that has zero +physical width OR where the layout has zero total relative width +(likewise for height). The layout column widths (or row heights) +in this case were being calculated with non-finite values. +(Reported by Winston Chang.)

  • -
  • n:m now returns a result of type "integer" in -a few more boundary cases. +

  • solve(A, b) for a vector b gave the answer +names from colnames(A) for LINPACK = TRUE but not in +the default case.

  • -
  • The zap.ind argument to printCoefmat() did -not usually work as other code attempted to ensure that non-zero -values had a non-zero representation. +

  • La.svd() accepts logical matrices (as documented, and +as svd() did).

  • -
  • printCoefmat() formatted groups of columns together, -not just the cs.ind group but also the zap.ind -group and a residual group. It now formats all columns except -the cs.ind group separately (and zaps the zap.ind -group column-by-column). The main effect will be see in the -output from print.anova(), as this grouped SS-like columns -in the zap.ind group. +

  • legend() now accepts negative pch values, in +the same way points() long has.

  • -
  • R_ReplDLLinit() initializes the top-level jump so -that some embedded applications on Windows no longer crash on -error. +

  • Parse errors when installing files now correctly display +the name of the file containing the bad code.

  • -
  • identical() failed to take the encoding of character -strings into account, so identical byte patterns are not -necessarily identical strings, and similarly Latin-1 and UTF-8 -versions of the same string differ in byte pattern. +

  • In Windows, tcltk windows were not always properly constructed. +(PR#15150)

  • -
  • methods(f) used to warn unnecessarily for an S4 -generic f which had been created based on an existing S3 -generic. +

  • The internal functions implementing parse(), +tools::parseLatex() and tools::parse_Rd() were not +reentrant, leading to errors in rare circumstances such as a +garbage collection triggering a recursive call.

  • -
  • The check for consistent ordering of superclasses was not -ignoring all conditional relations (the symptom was usually -spurious warnings for classes extending "array"). +

  • Field assignments in reference class objects via +$<- were not being checked +because the magic incantation to turn methods on for that +primitive operator had been inadvertently omitted.

  • -
  • Trying to assign into a raw vector with an index vector -containing NAs could cause a segfault. Reported by Hervé -Pagès. +

  • setHook(hookname, value, action="replace") set the +hook to be the value, rather than a list containing the value as +documented. (PR#15167)

  • -
  • Rscript could segfault if (by user error) its -filename argument was missing. Reported by Martin Morgan. +

  • If a package used a ‘NEWS.Rd’ file, the main HTML +package index page did not link to it. (Reported by Dirk +Eddelbuettel.)

  • -
  • getAnywhere() (and functions that use it, including argument -completion in the console) did not handle special built-in -functions. Reported by Romain Francois. +

  • The primitive implementation of @<- was not +checking the class of the replacement. It now does a check, +quicker but less general than slot<-. See the help.

  • -
  • order() was missing a PROTECT() call and so -could segfault when called on character data under certain (rare) -circumstances involving marked non-native encodings. +

  • split(x, f) now recycles classed objects x in +the same way as vectors. (Reported by Martin Morgan.)

  • -
  • prettyNum(z, drop0trailing=TRUE) did not work -correctly when z was a complex vector. Consequently, -str(z, ...) also did not. (PR#13985) +

  • pbeta(.28, 1/2, 2200, lower.tail=FALSE, log.p=TRUE) +is no longer -Inf; ditto for corresponding pt() and +pf() calls, such as pt(45, df=5000, lower.tail=FALSE, + log.p=TRUE). (PR#15162)

  • -
  • make distclean removed too many files in -etc/ if builddir = srcdir. +

  • The Windows graphics device would crash R if a user +attempted to load the graphics history from a variable that was +not a saved history. (PR#15230)

  • -
  • R CMD replaced TEXINPUTS rather than -appending to it (as documented and intended). +

  • The workspace size for the predict() +method for loess() could exceed the maximum integer size. +(Reported by Hiroyuki Kawakatsu.)

  • -
  • help.start() no longer fails on unix when -"browser" is a function. +

  • ftable(x, row.vars, col.vars) now also works when the +*.vars arguments are (integer or character vectors) of +length zero.

  • -
  • pbeta(x, ..., log.p = TRUE) is sometimes more accurate, -e.g., for very small x. +

  • Calling cat() on a malformed UTF-8 string could cause +the Windows GUI to lock up. (PR#15227)

  • -
  • Unserializing a pre-2.8 workspace containing pure ASCII -character objects with a Latin-1 or UTF-8 encoding would corrupt -the CHARSXP cache. +

  • removeClass(cc) gave "node stack overflow" for some +class definitions containing "array" or "matrix".

+

CHANGES in previous versions

+ + +
    +
  • Older news can be found in text format in files +NEWS.0, NEWS.1 +and NEWS.2 +in the ‘doc’ directory. News in HTML format for +R versions from 2.10.0 to 2.15.3 is in +NEWS.2.html. +

    +
+ + + diff -Nru r-base-3.0.1/doc/html/R-admin.html r-base-3.1.1/doc/html/R-admin.html --- r-base-3.0.1/doc/html/R-admin.html 2013-05-16 07:11:03.000000000 +0000 +++ r-base-3.1.1/doc/html/R-admin.html 2014-07-10 07:10:25.000000000 +0000 @@ -6,6 +6,25 @@ +