-
Notifications
You must be signed in to change notification settings - Fork 85
/
NEWS.2
16534 lines (11539 loc) · 627 KB
/
NEWS.2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Dear Emacs, please make this -*-Text-*- mode!
This file covers NEWS for R 2.x.y.
See 'NEWS.3' for subsequent changes and NEWS.0 and NEWS.1
for earlier ones.
There is a change in format at 2.10.0: entries from
then on are generated from doc/NEWS.2.Rd.
CHANGES IN R VERSION 2.15.3:
NEW FEATURES:
• lgamma(x) for very small x (in the denormalized range) is no
longer Inf with a warning.
• image() now sorts an unsorted breaks vector, with a warning.
• The internal methods for tar() and untar() do a slightly more
general job for ‘ustar’-style handling of paths of more than 100
bytes.
• Packages compiler and parallel have been added to the reference
index (refman.pdf).
• untar(tar = "internal") has some support for pax headers as
produced by e.g. gnutar --posix (which seems prevalent on
OpenSUSE 12.2) or bsdtar --format pax, including long path and
link names.
• sQuote() and dQuote() now handle 0-length inputs. (Suggestion of
Ben Bolker.)
• summaryRprof() returns zero-row data frames rather than throw an
error if no events are recorded, for consistency.
• The included version of PCRE has been updated to 8.32.
• The tcltk namespace can now be re-loaded after unloading.
The Tcl/Tk event loop is inhibited in a forked child from package
parallel (as in e.g. mclapply()).
• parallel::makeCluster() recognizes the value random for the
environment variable R_PARALLEL_PORT: this chooses a random value
for the port and reduces the chance of conflicts when multiple
users start a cluster at the same time.
UTILITIES:
• The default for TAR on Windows for R CMD build has been changed
to be internal if no tar command is on the path.
This enables most packages to be built ‘out of the box’ without
Rtools: the main exceptions are those which need to be installed
to re-build vignettes and need Rtools for installation (usually
because they contain compiled code).
C-LEVEL FACILITIES:
• On a 64-bit Windows platform with enough RAM, R_alloc can now
allocate up to just under 32GB like other 64-bit platforms.
DEPRECATED AND DEFUNCT:
• Use of col2rgb(0) is deprecated (see the help page for its
limitations).
• The deprecated intensities component returned by hist() is no
longer recognized by the plot() method and will be removed in R
3.0.0.
• real(), as.real() and is.real() are now formally deprecated and
give a warning.
• This is formal notice that the non-API EISPACK entry points in R
will be removed shortly.
INSTALLATION:
• The configure tests for Objective C and Objective C++ now work on
Mac OS 10.8 with Xcode 4.5.2 (PR#15107).
• The cairo-based versions of X11() now work with current versions
of cairographics (e.g. 1.12.10). (PR#15168)
A workaround for earlier versions of R is to use X11.options(type
= "nbcairo").
• Configuration and R CMD javareconf now come up with a smaller set
of library paths for Java on Oracle-format JDK (including
OpenJDK). This helps avoid conflicts between libraries (such as
libjpeg) supplied in the JDK and system libraries. This can
always be overridden if needed: see the ‘R Installation and
Administration’ manual.
BUG FIXES:
• beta(a, b) could overflow to infinity in its calculations when
one of a and b was less than one. (PR#15075)
• lbeta(a, b) no longer gives NaN if a or b is very small (in the
denormalized range).
• bquote() is now able to substitute default arguments in
single-argument functions. (PR#15077)
• browseEnv(html = FALSE) would segfault if called from R (not
R.app) on a CRAN-style Mac OS X build of R.
• [[<- for lists (generic vectors) needed to increment NAMED count
when RHS is used more than once. (PR#15098)
• On Windows, warnings about opening a file or pipe with a
non-ASCII description were sometimes output in UTF-8 rather than
in the current locale's character set.
• The call() function did not duplicate its arguments. (PR#15115)
• TukeyHSD() could give NA results with some na.action methods such
as na.exclude(). (Hinted at on R-help by John Fox.)
• The deprecated svd(X, LINPACK = TRUE) could alter X in R
2.15.[12]. (Reported by Bill Dunlap.)
• Under Windows, file.link() and file.symlink() used the link name
twice, so would always fail. (Reported by Rui Barradas/Oliver
Soong).
• summaryRprof(memory = "both") mixed up the units of Vcells and
Ncells: it now works in bytes. (PR#15138)
• tools::Rd2HTML() would sometimes delete text. (PR#15134)
• plot() failed for "table" objects containing just one entry.
(PR#15118)
• embedFonts() needed to quote some filepaths. (PR#15149)
• parallel::mccollect() handled NULL returns incorrectly (removing
the element rather than setting it to NULL).
• The full reference index (fullrefman.pdf) was missing packages
compiler and parallel.
• The report for optim(method = "L-BFGS-B", control = list(trace =
1)) reported the last completed and not the current iteration,
unlike other methods and trace levels. (PR#15103)
• qt(1e-12, 1.2) no longer gives NaN.
• dt(1e160, 1.2, log=TRUE) no longer gives -Inf.
• On Windows the untar() function now quotes the directory name
when using an external tar utility, so R CMD check will handle
pathnames containing spaces.
• The version for Windows 8 and Windows Server 2012 is now
displayed by win.version(). (Reported by Gabor Grothendieck.)
• The custom Windows installer target myR in the installer Makefile
did not work in 2.15.2. (Reported by Erich Neuwirth.)
• aperm(matrix(1:6, 2, dimnames=list(A={}, B={})), "A") no longer
segfaults.
• Expressions involving user defined operators were not always
deparsed faithfully. (PR#15179)
• The enc2utf8() function converted NA_character_ to "NA" in
non-UTF-8 locales. (PR#15201)
• The exclude argument to xtabs() was ignored for "factor"
arguments.
• On Windows, work around an event-timing problem when the RGui
console was closed from the ‘X’ control and the closure
cancelled. (This would on some 64-bit systems crash R, typically
those with a slow GPU relative to the CPU.)
• On unix Rscript will pass the r_arch setting it was compiled with
on to the R process so that the architecture of Rscript and that
of R will match unless overridden.
• On Windows, basename(), dirname() and file.choose() have more
support for long non-ASCII file names with 260 or more bytes when
expressed in UTF-8.
CHANGES IN R VERSION 2.15.2:
NEW FEATURES:
• The X11() window gains an icon: the latter may be especially
useful on Ubuntu's ‘Unity’ interface.
The WM_CLASS should be set in circumstances where the Window
Manager failed to make use of X11 resource settings.
(Contributed by Philip Johnson.)
• The "Date" and "POSIXt" methods for cut() will accept an unsorted
breaks argument (as the default method does, although this was
undocumented). (Wish of PR#14961.)
• Reference class methods (in the methods package) that use other
methods in an indirect way (e.g., by sapply()) must tell the code
analysis to include that method. They can now do so by invoking
$usingMethods().
• More Polish translations are available: for the RGui menus and
for several recommended packages.
• Multistratum MANOVA works. In fact, it seems to have done so for
years in spite of the help page claiming it did not.
• qqline() has new optional arguments distribution, probs and
qtype, following the example of lattice's panel.qqmathline().
• The handling of single quotes in the en@quot pseudo-language has
been slightly improved. Double quotes are no longer converted.
• New functions checkPoFiles() and checkPoFile() have been added to
the tools package to check for consistency of format strings in
translation files.
• model.matrix(~1, ...) now also contains the same rownames that
less trivial formulae produce. (Wish of PR#14992, changes the
output of several packages.)
• Misuse of rep() on undocumented types of objects (e.g. calls) is
now reported as an error.
• The included LAPACK has been updated to 3.4.1, with some patches
from the current SVN sources. (_Inter alia_, this resolves
PR#14692.)
• file.copy(recursive = TRUE) has some additional checks on user
error leading to attempted infinite recursion (and on some
platforms to crashing R).
• PCRE has been updated to version 8.31, a bug-fix release.
• The included version of liblzma has been updated to version
5.0.4, a minor bug-fix release.
• New function .bincode(), a ‘bare-bones’ version of
cut.default(labels = FALSE) for use in packages with image()
methods.
• The HTML manuals now use directional single quotes.
• maintainer() now converts embedded new lines to spaces. It no
longer gives a non-obvious error for non-installed packages.
• The X11() device has some protection against being used with
forked processes _via_ package parallel.
• Setting the environment variable R_OSX_VALGRIND (to any value)
allows R to be run under valgrind on Mac OS 10.6 and 10.7
(valgrind currently has very limited support for 10.8), provided
system() is not used (directly or indirectly). This should not
be needed for valgrind >= 3.8.1.
• The model.frame() method for "lm" uses xlevels: this is safer if
data was supplied or model = FALSE was used and the levels of
factors used in the fit had been re-ordered since fitting.
Similarly, model.frame(fm, data=<data>) copies across the
variables used for safe prediction from the fit.
• Functions such as parLapply() in package parallel can make use of
a default cluster if one is set. (Reported by Martin Morgan.)
• chol(pivot = TRUE, LINPACK = FALSE) is now available using LAPACK
3.2 subroutine DPSTRF.
• The functions .C(), .Call(), .External() and .Fortran() now check
that they are called with an unnamed first argument: the formal
arguments were changed from name= to .NAME= in R 2.13.0, but some
packages were still using the old name. This is currently a
warning, but will be an error in future.
• step() no longer tries to improve a model with AIC of -Inf (a
perfect fit).
• spline() and splinefun() gain a new method "hyman", an
implementation of Hyman's method of constructing monotonic
interpolation splines. (Based on contributions of Simon Wood and
Rob Hyndman.)
• On Windows, the C stack size has been increased to 64MB (it has
been 10MB since the days of 32MB RAM systems).
PERFORMANCE IMPROVEMENTS:
• array() is now implemented in C code (for speed) when data is
atomic or an unclassed list (so it is known that as.vector(data)
will have no class to be used by rep()).
• rep() is faster and uses less memory, substantially so in some
common cases (e.g. if times is of length one or length.out is
given, and each = 1).
• findInterval(), tabulate(), cut(), hist() and image.default() all
use .Call() and are more efficient.
• duplicated(), unique() and similar now support vectors of lengths
above 2^29 on 64-bit platforms.
• Omitting PACKAGE in .C() etc calls was supposed to make use of
the DLL from the namespace within which the enclosing function
was defined. It was less successful in doing so than it might
be, and gave no indication it had failed.
A new search strategy is very successful and gives a warning when
it fails. In most cases this is because the entry point is not
actually provided by that package (and so PACKAGE should be used
to indicate which package is intended) but in some the namespace
does not have a DLL specified by a useDynLib() directive so
PACKAGE is required.
UTILITIES:
• R CMD check now checks if a package can be loaded by
library(pkgname, lib.loc = "somewhere") without being on the
library search path (unless it is already installed in .Library,
when it always will be).
• R CMD check --as-cran notes ‘hidden’ files and directories (with
names starting with a dot) that are not needed for the operation
of R CMD INSTALL or R CMD build: such files should be excluded
from the published tarball.
• R CMD check (if checking subdirectories) checks that the R code
in any demos is ASCII and can be parsed, and warns if not.
• When R CMD Rd2pdf is used with inputenx.sty, it allows further
characters (mainly for Eastern European languages) by including
ix-utf8enc.dfu (if available). (Wish of PR#14989.)
• R CMD build now omits several types of hidden files/directories,
including inst/doc/.Rinstignore, vignettes/.Rinstignore,
(.Rinstignore should be at top level), .deps under src,
.Renviron, .Rprofile, .Rproj.user, .backups, .cvsignore,
.cproject, .directory, .dropbox, .exrc, .gdb.history,
.gitattributes, .gitignore, .gitmodules, .hgignore, .hgtags,
.htaccess, .latex2html-init, .project, .seed, .settings,
.tm_properties and various leftovers.
• R CMD check now checks for .C(), .Call(), .External() and
.Fortran() calls in other packages, and gives a warning on those
found from R itself (which are not part of the API and change
without notice: many will be changed for R 3.0.0).
C-LEVEL FACILITIES:
• The limit for R_alloc on 64-bit platforms has been raised to just
under 32GB (from just under 16GB).
• The misuse of .C("name", ..., PACKAGE = foo) where foo is an
arbitrary R object is now an error.
The misuse .C("name",..., PACKAGE = "") is now warned about in R
CMD check, and will be an error in future.
DEPRECATED AND DEFUNCT:
• Use of array() with a 0-length dim argument is deprecated with a
warning (and was contrary to the documentation).
• Use of tapply() with a 0-length INDEX list is deprecated with a
warning.
• Translation packages are deprecated.
• Calling rep() or rep.int() on a pairlist is deprecated and will
give a warning. In any case, rep() converted a pairlist to a
list so you may as well do that explicitly.
• Entry point rcont2 is no longer part of the API, and will move to
package stats in R 3.0.0.
• The ‘internal’ graphics device invoked by
.Call("R_GD_nullDevice", package = "grDevices") is about to be
removed: use pdf(file = NULL) instead.
• eigen(EISPACK = TRUE), chol(pivot = FALSE, LINPACK = TRUE),
chol2inv(LINPACK = TRUE), solve(LINPACK = TRUE) and svd(LINPACK =
TRUE) are deprecated and give a warning.
They were provided for compatibility with R 1.7.0 (Mar 2003)!
• The ‘internal function’ kappa.tri() has been renamed to
.kappa_tri() so it is not inadvertently called as a method for
class "tri".
• Functions sessionData() and browseAll() in package methods are on
a help page describing them as ‘deprecated’ and are now formally
deprecated.
PACKAGE INSTALLATION:
• For a Windows or Mac OS X binary package install,
install.packages() will check if a source package is available on
the same repositories, and report if it is a later version or
there is a source package but no binary package available.
This check can be suppressed: see the help page.
• install.packages(type = "both") has been enhanced. In
interactive use it will ask whether to choose the source version
of a package if the binary version is older and contains compiled
code, and also asks if source packages with no binary version
should be installed).
INSTALLATION:
• There is a new configure option --with-libtiff (mainly in case
the system installation needs to be avoided).
• LAPACK 3.4.1 does use some Fortran 90 features, so g77 no longer
suffices.
• If an external LAPACK is used, it must be version 3.2 or later.
BUG FIXES:
• On Windows, starting Rterm via R.exe caused Ctrl-C to misbehave.
(PR#14948)
• The tools::latexToUtf8() function missed conversions that were
contained within braces.
• Long timezone specifications (such as a file name preceded by :)
could crash as.POSIXlt. (PR#14945)
• R CMD build --resave-data could fail if there was no data
directory but there was an R/sysdata.rda file. (PR#14947)
• is.na() misbehaved on a 0-column data frame. (PR#14959)
• anova.lmlist() failed if test was supplied. (PR#14960)
It was unable to compute Cp tests for object of class "lm" (it
assumed class "glm").
• The formula method for sunflowerplot() now allows xlab and ylab
to be set. (Reported by Gerrit Eichner.)
• The "POSIXt" and "Date" methods for hist() could fail on Windows
where adjustments to the right-hand boundary crossed a DST
transition time.
• On Windows, the code in as.POSIXct() to handle incorrectly
specified isdst fields might have resulted in NA being returned.
• aov() and manova() gave spurious warning about singular error
model in the multiresponse case.
• In ns() and bs(), specifying knots = NULL is now equivalent to
omitting it, also when df is specified. (PR#14970)
• sprintf() did not accept numbered arguments ending in zero.
(PR#14975)
• rWishart() could overflow the C stack and maybe crash the R
process for dimensions of several hundreds or more. (Reported by
Michael Braun on R-sig-mac.)
• Base package vignettes (e.g. vignette("Sweave")) were not fully
installed in builds of R from the tarball.
• lchoose() and choose() could overflow the C stack and crash R.
• When given a 0-byte file and asked to keep source references,
parse() read input from stdin() instead.
• pdf(compress = TRUE) did not delete temporary files it created
until the end of the R session. (PR#14991)
• logLik() did not detect the error of applying it to a
multiple-response linear model. (PR#15000)
• file.copy(recursive = TRUE) did not always report FALSE for a
failure two or more directories deep.
• qgeom() could return -1 for extremely small q. (PR#14967)
• smooth.spline() used DUP = FALSE which allowed its compiled C
code to change the function: this was masked by the default
byte-compilation. (PR#14965)
• In Windows, the GUI preferences for foreground color were not
always respected. (Reported by Benjamin Wells.)
• On OS X, the Quartz versions of the bitmap devices did not
respect antialias = "none". (PR#15006)
• unique() and similar would infinite-loop if called on a vector of
length > 2^29 (but reported that the vector was too long for 2^30
or more).
• parallel::stopCluster() now works with MPI clusters without snow
being on the search path.
• terms.formula() could exhaust the stack, and the stack check did
not always catch this before the segfault. (PR#15013)
• sort.list(method = "radix") could give incorrect results on
certain compilers (seen with clang on Mac OS 10.7 and Xcode
4.4.1).
• backsolve(T, b) gave incorrect results when nrows(b) > ncols(T)
and b had more than one column.
It could segfault or give nonsense if k was specified as more
than ncols(T).
• smooth.spline() did not check that a specified numeric spar was
of length 1, and gave corrupt results if it was of length 0.
• Protection added to do_system. (PR#15025)
• Printing of vectors with names > 1000 characters now works
correctly rather than truncating. (PR#15028)
• qr() for a complex matrix did not pivot the column names.
• --with-blas='-framework vecLib' now also works on OS X 10.8.
• R CMD check no longer fails with an error if a DESCRIPTION file
incorrectly contains a blank line. (Reported by Bill Dunlap.)
• install.packages(type = "both") could call chooseCRANmirror()
twice.
• lm.wfit() could segfault in R 2.15.1 if all the weights were
zero. (PR#15044)
• A malformed package name could cause R CMD INSTALL to write
outside the target library.
• Some of the quality control functions (e.g. tools::checkFF())
were wrongly identifying the source of S4 methods in a package
and so not checking them.
• The default type of display by browseEnv() when using R.app on
Mac OS X has been incorrect for a long time.
• The implementation of importMethodsFrom in a NAMESPACE file could
be confused and fail to find generics when importing from
multiple packages (reported and fixed by Michael Lawrence).
• The detection of the C stack direction is better protected
against compiler optimization. (PR#15011)
• Long custom line types would sometimes segfault on the
cairographics-based devices. (PR#15055)
• tools::checkPoFile() unprotected too early in its C code and so
segfaulted from time to time.
• The Fortran code underlying nlminb() could infinite-loop if any
of the input functions returned NA or NaN. This is now an error
for the gradient or Hessian, and a warning for the function (with
the value replaced by Inf). (In part, PR#15052.)
• The code for creating coerce() methods could generate false notes
about ambiguous selection; the notes have been suppressed for
this function.
• arima.sim() could give too long an output in some corner cases
(in part, PR#15068).
• anova.glm() with test = "Rao" didn't work when models included an
offset. (Reported by Søren Feodor Nielsen.)
• as.data.frame.matrix() could return invalid data frame with no
row.names attribute for 0-row matrix. (Reported by Hervé Pagès.)
• Compilation with the vecLib or Accelerate frameworks on OS X
without using that also for LAPACK is more likely to be
successful.
CHANGES IN R VERSION 2.15.1:
NEW FEATURES:
• source() now uses withVisible() rather than
.Internal(eval.with.vis). This sometimes alters tracebacks
slightly.
• install.packages("pkg_version.tgz") on Mac OS X now has sanity
checks that this is actually a binary package (as people have
tried it with incorrectly named source packages).
• splineDesign() and spline.des() in package splines have a new
option sparse which can be used for efficient construction of a
sparse B-spline design matrix (_via_ Matrix).
• norm() now allows type = "2" (the ‘spectral’ or 2-norm) as well,
mainly for didactical completeness.
• pmin() and pmax()) now also work when one of the inputs is of
length zero and others are not, returning a zero-length vector,
analogously to, say, +.
• colorRamp() (and hence colorRampPalette()) now also works for the
boundary case of just one color when the ramp is flat.
• .C() gains some protection against the misuse of character vector
arguments. (An all too common error is to pass character(N),
which initializes the elements to "", and then attempt to edit
the strings in-place, sometimes forgetting to terminate them.)
• Calls to the new function globalVariables() in package utils
declare that functions and other objects in a package should be
treated as globally defined, so that CMD check will not note
them.
• print(packageDescription(*)) trims the Collate field by default.
• The included copy of zlib has been updated to version 1.2.7.
• A new option "show.error.locations" has been added. When set to
TRUE, error messages will contain the location of the most recent
call containing source reference information. (Other values are
supported as well; see ?options.)
• The NA warning messages from e.g. pchisq() now report the call to
the closure and not that of the .Internal.
• Added Polish translations by Łukasz Daniel.
PERFORMANCE IMPROVEMENTS:
• In package parallel, makeForkCluster() and the multicore-based
functions use native byte-order for serialization (deferred from
2.15.0).
• lm.fit(), lm.wfit(), glm.fit() and lsfit() do less copying of
objects, mainly by using .Call() rather than .Fortran().
• .C() and .Fortran() do less copying: arguments which are raw,
logical, integer, real or complex vectors and are unnamed are not
copied before the call, and (named or not) are not copied after
the call. Lists are no longer copied (they are supposed to be
used read-only in the C code).
• tabulate() makes use of .C(DUP = FALSE) and hence does not copy
bin. (Suggested by Tim Hesterberg.) It also avoids making a
copy of a factor argument bin.
• Other functions (often or always) doing less copying include
cut(), dist(), the complex case of eigen(), hclust(), image(),
kmeans(), loess(), stl() and svd(LINPACK = TRUE).
• There is less copying when using primitive replacement functions
such as names(), attr() and attributes().
DEPRECATED AND DEFUNCT:
• The converters for use with .C() (see ?getCConverterDescriptions)
are deprecated: use the .Call() interface instead. There are no
known examples (they were never fully documented).
UTILITIES:
• For R CMD check, a few people have reported problems with
junctions on Windows (although they were tested on Windows 7, XP
and Server 2008 machines and it is unknown under what
circumstances the problems occur). Setting the environment
variable R_WIN_NO_JUNCTIONS to a non-empty value (e.g. in
~/.R/check.Renviron) will force copies to be used instead.
INSTALLATION:
• R CMD INSTALL with _R_CHECK_INSTALL_DEPENDS_ set to a true value
(as done by R CMD check --as-cran) now restricts the packages
available when lazy-loading as well as when test-loading (since
packages such as ETLUtils and agsemisc had top-level calls to
library() for undeclared packages).
This check is now also available on Windows.
C-LEVEL FACILITIES:
• C entry points mkChar and mkCharCE now check that the length of
the string they are passed does not exceed 2^31-1 bytes: they
used to overflow with unpredictable consequences.
• C entry points R_GetCurrentSrcref and R_GetSrcFilename have been
added to the API to allow debuggers access to the source
references on the stack.
WINDOWS-SPECIFIC CHANGES:
• Windows-specific changes will now be announced in this file
(NEWS). Changes up and including R 2.15.0 remain in the CHANGES
file.
• There are two new environment variables which control the
defaults for command-line options.
If R_WIN_INTERNET2 is set to a non-empty value, it is as if
--internet2 was used.
If R_MAX_MEM_SIZE is set, it gives the default memory limit if
--max-mem-size is not specified: invalid values being ignored.
BUG FIXES:
• lsfit() lost the names from the residuals.
• More cases in which merge() could create a data frame with
duplicate column names now give warnings. Cases where names
specified in by match multiple columns are errors.
• Nonsense uses such as seq(1:50, by = 5) (from package plotrix)
and seq.int(1:50, by = 5) are now errors.
• The residuals in the 5-number summary printed by summary() on an
"lm" object are now explicitly labelled as weighted residuals
when non-constant weights are present. (Wish of PR#14840.)
• tracemem() reported that all objects were copied by .C() or
.Fortran() whereas only some object types were ever copied.
It also reported and marked as copies _some_ transformations such
as rexp(n, x): it no longer does so.
• The plot() method for class "stepfun" only used the optional xval
argument to compute xlim and not the points at which to plot (as
documented). (PR#14864)
• Names containing characters which need to be escaped were not
deparsed properly. (PR#14846)
• Trying to update (recommended) packages in R_HOME/library without
write access is now dealt with more gracefully. Further, such
package updates may be skipped (with a warning), when a newer
installed version is already going to be used from .libPaths().
(PR#14866)
• hclust() is now fast again (as up to end of 2003), with a
different fix for the "median"/"centroid" problem. (PR#4195).
• get_all_vars() failed when the data came entirely from vectors in
the global environment. (PR#14847)
• R CMD check with _R_CHECK_NO_RECOMMENDED_ set to a true value (as
done by the --as-cran option) could issue false errors if there
was an indirect dependency on a recommended package.
• formatC() uses the C entry point str_signif which could write
beyond the length allocated for the output string.
• Missing default argument added to implicit S4 generic for
backsolve(). (PR#14883)
• Some bugs have been fixed in handling load actions that could
fail to export assigned items or generate spurious warnings in
CMD check on loading.
• For tiff(type = "windows"), the numbering of per-page files
except the last was off by one.
• On Windows, loading package stats (which is done for a default
session) would switch line endings on stdout and stderr from CRLF
to LF. This affected Rterm and R CMD BATCH.
• On Windows, the compatibility function x11() had not kept up with
changes to windows(), and issued warnings about bad parameters.
(PR#14880)
• On Windows, the Sys.glob() function did not handle UNC paths as
it was designed to try to do. (PR#14884)
• In package parallel, clusterApply() and similar failed to handle
a (pretty pointless) length-1 argument. (PR#14898)
• Quartz Cocoa display reacted asynchronously to dev.flush() which
means that the redraw could be performed after the plot has been
already modified by subsequent code. The redraw is now done
synchronously in dev.flush() to allow animations without sleep
cycles.
• Source locations reported in traceback() were incorrect when
byte-compiled code was on the stack.
• plogis(x, lower = FALSE, log.p = TRUE) no longer underflows early
for large x (e.g. 800).
• ?Arithmetic's “1 ^ y and y ^ 0 are 1, _always_” now also applies
for integer vectors y.
• X11-based pixmap devices like png(type = "Xlib") were trying to
set the cursor style, which triggered some warnings and hangs.
• Code executed by the built-in HTTP server no longer allows other
HTTP clients to re-enter R until the current worker evaluation
finishes, to prevent cascades.
• The plot() and Axis() methods for class "table" now respect
graphical parameters such as cex.axis. (Reported by Martin
Becker.)
• Under some circumstances package.skeleton() would give out
progress reports that could not be translated and so were
displayed by question marks. Now they are always in English.
(This was seen for CJK locales on Windows, but may have occurred
elsewhere.)
• The evaluator now keeps track of source references outside of
functions, e.g. when source() executes a script.
• The replacement method for window() now works correctly for
multiple time series of class "mts". (PR#14925)
• is.unsorted() gave incorrect results on non-atomic objects such
as data frames. (Reported by Matthew Dowle.)
• The value returned by tools::psnice() for invalid pid values was
not always NA as documented.
• Closing an X11() window while locator() was active could abort
the R process.
• getMethod(f, sig) produced an incorrect error message in some
cases when f was not a string).
• Using a string as a “call” in an error condition with
options(showErrorCalls=TRUE) could cause a segfault. (PR#14931)
• The string "infinity" allowed by C99 was not accepted as a
numerical string value by e.g. scan() and as.numeric().
(PR#14933)
• In legend(), setting some entries of lwd to NA was inconsistent
(depending on the graphics device) in whether it would suppress
those lines; now it consistently does so. (PR#14926)
• by() failed for a zero-row data frame. (Reported by Weiqiang
Qian.)
• The Yates' correction in chisq.test() could be bigger than the
terms it corrected, previously leading to an infinite test
statistic in some corner cases which are now reported as NaN.
• xgettext() and related functions sometimes returned items that
were not strings for translation. (PR#14935)
• plot(<lm>, which=5) now correctly labels the factor level
combinations for the special case where all h[i,i] are the same.
(PR#14837)
• Sys.glob() caused a segfault if the first element of path was
NA_character. (PR#14990)
CHANGES IN R VERSION 2.15.0:
SIGNIFICANT USER-VISIBLE CHANGES:
• The behaviour of unlink(recursive = TRUE) for a symbolic link to
a directory has changed: it now removes the link rather than the
directory contents (just as rm -r does).
On Windows it no longer follows reparse points (including
junctions and symbolic links).
NEW FEATURES:
• Environment variable RD2DVI_INPUTENC has been renamed to
RD2PDF_INPUTENC.
• .Deprecated() becomes a bit more flexible, getting an old
argument.
• Even data-only packages without R code need a namespace and so
may need to be installed under R 2.14.0 or later.
• assignInNamespace() has further restrictions on use apart from at
top-level, as its help page has warned. Expect it to be disabled
from programmatic use in the future.
• system() and system2() when capturing output report a non-zero
status in the new "status" attribute.
• kronecker() now has an S4 generic in package methods on which
packages can set methods. It will be invoked by X %x% Y if
either X or Y is an S4 object.
• pdf() accepts forms like file = "|lpr" in the same way as
postscript().
• pdf() accepts file = NULL. This means that the device does NOT
create a PDF file (but it can still be queried, e.g., for font
metric info).
• format() (and hence print()) on "bibentry" objects now uses
options("width") to set the output width.
• legend() gains a text.font argument. (Suggested by Tim Paine,
PR#14719.)
• nchar() and nzchar() no longer accept factors (as integer
vectors). (Wish of PR#6899.)
• summary() behaves slightly differently (or more precisely, its
print() method does). For numeric inputs, the number of NAs is
printed as an integer and not a real. For dates and datetimes,
the number of NAs is included in the printed output (the latter
being the wish of PR#14720).
The "data.frame" method is more consistent with the default
method: in particular it now applies zapsmall() to
numeric/complex summaries.
• The number of items retained with options(warn = 0) can be set by
options(nwarnings=).
• There is a new function assignInMyNamespace() which uses the
namespace of the function it is called from.
• attach() allows the default name for an attached file to be
overridden.
• bxp(), the work horse of boxplot(), now uses a more sensible
default xlim in the case where at is specified differently from
1:n, see the discussion on R-devel, <URL:
https://stat.ethz.ch/pipermail/r-devel/2011-November/062586.html>.
• New function paste0(), an efficient version of paste(*, sep=""),
to be used in many places for more concise (and slightly more
efficient) code.
• Function setClass() in package methods now returns, invisibly, a
generator function for the new class, slightly preferred to
calling new(), as explained on the setClass help page.
• The "dendrogram" method of str() now takes its default for
last.str from option str.dendrogram.last.
• New simple fitted() method for "kmeans" objects.
• The traceback() function can now be called with an integer
argument, to display a current stack trace. (Wish of PR#14770.)
• setGeneric() calls can be simplified when creating a new generic
function by supplying the default method as the def argument.
See ?setGeneric.
• serialize() has a new option xdr = FALSE which will use the
native byte-order for binary serializations. In scenarios where
only little-endian machines are involved (these days, close to
universal) and (un)serialization takes an appreciable amount of
time this may speed up noticeably transferring data between
systems.
• The internal (un)serialization code is faster for long vectors,
particularly with XDR on some platforms. (Based on a suggested
patch by Michael Spiegel.)
• For consistency, circles with zero radius are omitted by points()
and grid.circle(). Previously this was device-dependent, but
they were usually invisible.
• NROW(x) and NCOL(x) now work whenever dim(x) looks appropriate,
e.g., also for more generalized matrices.
• PCRE has been updated to version 8.30.
• The internal R_Srcref variable is now updated before the browser
stops on entering a function. (Suggestion of PR#14818.)
• There are ‘bare-bones’ functions .colSums(), .rowSums(),
.colMeans() and .rowMeans() for use in programming where ultimate
speed is required.
• The formerly internal function .package_dependencies() from
package tools for calculating (recursive) (reverse) dependencies
on package databases has been renamed to package_dependencies()
and is now exported.
• There is a new function optimHess() to compute the (approximate)
Hessian for an optim() solution if hessian = TRUE was forgotten.
• .filled.contour() is a ‘bare-bones’ function to add a
filled-contour rectangular plot to an already prepared plot
region.
• The stepping in debugging and single-step browsing modes has
changed slightly: now left braces at the start of the body are
stepped over for if statements as well as for for and while
statements. (Wish of PR#14814.)
• library() no longer warns about a conflict with a function from
package:base if the function has the same code as the base one