-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathONEWS
5350 lines (3840 loc) · 217 KB
/
ONEWS
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
R News
CHANGES IN R VERSION 2.15.0:
SIGNIFICANT USER-VISIBLE CHANGES:
o 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:
o Environment variable RD2DVI_INPUTENC has been renamed to
RD2PDF_INPUTENC.
o .Deprecated() becomes a bit more flexible, getting an old
argument.
o Even data-only packages without R code need a namespace and so
may need to be installed under R 2.14.0 or later.
o 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.
o system() and system2() when capturing output report a non-zero
status in the new "status" attribute.
o 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.
o pdf() accepts forms like file = "|lpr" in the same way as
postscript().
o 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).
o format() (and hence print()) on "bibentry" objects now uses
options("width") to set the output width.
o legend() gains a text.font argument. (Suggested by Tim Paine,
PR#14719.)
o nchar() and nzchar() no longer accept factors (as integer
vectors). (Wish of PR#6899.)
o 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.
o The number of items retained with options(warn = 0) can be set by
options(nwarnings=).
o There is a new function assignInMyNamespace() which uses the
namespace of the function it is called from.
o attach() allows the default name for an attached file to be
overridden.
o 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>.
o New function paste0(), an efficient version of paste(*, sep=""),
to be used in many places for more concise (and slightly more
efficient) code.
o 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.
o The "dendrogram" method of str() now takes its default for
last.str from option str.dendrogram.last.
o New simple fitted() method for "kmeans" objects.
o The traceback() function can now be called with an integer
argument, to display a current stack trace. (Wish of PR#14770.)
o setGeneric() calls can be simplified when creating a new generic
function by supplying the default method as the def argument.
See ?setGeneric.
o 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.
o The internal (un)serialization code is faster for long vectors,
particularly with XDR on some platforms. (Based on a suggested
patch by Michael Spiegel.)
o For consistency, circles with zero radius are omitted by points()
and grid.circle(). Previously this was device-dependent, but
they were usually invisible.
o NROW(x) and NCOL(x) now work whenever dim(x) looks appropriate,
e.g., also for more generalized matrices.
o PCRE has been updated to version 8.30.
o The internal R_Srcref variable is now updated before the browser
stops on entering a function. (Suggestion of PR#14818.)
o There are 'bare-bones' functions .colSums(), .rowSums(),
.colMeans() and .rowMeans() for use in programming where ultimate
speed is required.
o 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.
o There is a new function optimHess() to compute the (approximate)
Hessian for an optim() solution if hessian = TRUE was forgotten.
o .filled.contour() is a 'bare-bones' function to add a
filled-contour rectangular plot to an already prepared plot
region.
o 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.)
o 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().)
o 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.
o New function rWishart() generates Wishart-distributed random
matrices.
o Packages may now specify actions to be taken when the package is
loaded (setLoadActions()).
o options(max.print = Inf) and similar now give an error (instead
of warnings later).
o The "difftime" replacement method of units tries harder to
preserve other attributes of the argument. (Wish of PR#14839.)
o poly(raw = TRUE) no longer requires more unique points than the
degree. (Requested by John Fox.)
PACKAGE parallel:
o There is a new function mcmapply(), a parallel version of
mapply(), and a wrapper mcMap(), a parallel version of Map().
o A default cluster can be registered by the new function
setDefaultCluster(): this will be used by default in functions
such as parLapply().
o clusterMap() has a new argument .scheduling to allow the use of
load-balancing.
o There are new load-balancing functions parLapplyLB() and
parSapplyLB().
o 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:
o Non-ASCII vignettes without a declared encoding are no longer
accepted.
o 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.
o 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.]
o 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.)
o 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.
o 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.
o R CMD INSTALL --merge-multiarch is now supported on OS X and
other Unix-alikes using multiple sub-architectures.
o 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:
o 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).
o 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.
o 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.
o There are new options for more rigorous testing by R CMD check
selected by environment variables - see the 'Writing R
Extensions' manual.
o 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.
o 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.
o 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).
o R CMD build has more options for --compact-vignettes: see R CMD
build --help.
o 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:
o R CMD Rd2dvi is now defunct: use R CMD Rd2pdf.
o Options such --max-nsize, --max-vsize and the function
mem.limits() are now defunct. (Options --min-nsize and
--min-vsize remain available.)
o 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.
o The internal functions .readRDS() and .saveRDS() are now defunct.
o The off-line help() types "postscript" and "ps" are defunct.
o Sys.putenv(), replaced and deprecated in R 2.5.0, is finally
removed.
o 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().
o 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:
o Building with a positive value of --with-valgrind-instrumentation
now also instruments logical, complex and raw vectors.
o There is experimental support for _link-time optimization_ with
gcc 4.5.0 or later on platforms which support it.
C-LEVEL FACILITIES:
o 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.
o 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:
o str(x, width) now obeys its width argument also for function
headers and other objects x where deparse() is applied.
o The convention for x %/% 0L for integer-mode x has been changed
from 0L to NA_integer_. (PR#14754)
o 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.
o Reference methods cannot safely use non-exported entries in the
namespace. We now do not do so, and warn in the documentation.
o 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).
o merge() is no longer allowed (in some ways) to create a data
frame with duplicate column names (which confused PR#14786).
o Fixes for rendering raster images on X11 and Windows devices when
the x-axis or y-axis scale is reversed.
o getAnywhere() found S3 methods as seen from the utils namespace
and not from the environment from which it was called.
o selectMethod(f, sig) would not return inherited group methods
when caching was off (as it is by default).
o dev.copy2pdf(out.type = "cairo") gave an error. (PR#14827)
o Virtual classes (e.g., class unions) had a NULL prototype even if
that was not a legal subclass. See ?setClassUnion.
o 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.)
o isGeneric() produced an error for primitives that can not have
methods.
o .C() or .Fortran() had a lack-of-protection error if the
registration information resulted in an argument being coerced to
another type.
o boxplot(x=x, at=at) with non finite elements in x and non integer
at could not generate a warning but failed.
o heatmap(x, symm=TRUE, RowSideColors=*) no longer draws the colors
in reversed order.
o predict(<ar>) was incorrect in the multivariate case, for p >= 2.
o print(x, max=m) is now consistent when x is a "Date"; also the
"reached ... max.print .." messages are now consistently using
single brackets.
o Closed the <li> tag in pages generated by Rd2HTML(). (PR#14841.)
o Axis tick marks could go out of range when a log scale was used.
(PR#14833.)
o Signature objects in methods were not allocated as S4 objects
(caused a problem with trace() reported by Martin Morgan).
CHANGES IN R VERSION 2.14.2:
NEW FEATURES:
o 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.
o 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.
o 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.
o The included version of zlib has been updated to 1.2.6.
o For consistency with the logLik() method, nobs() for "nls" files
now excludes observations with zero weight. (Reported by Berwin
Turlach.)
UTILITIES:
o R CMD check now reports by default on licenses not according to
the description in 'Writing R Extensions'.
o 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:
o 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:
o R configured with --disable-openmp would mistakenly set
HAVE_OPENMP (internal) and SUPPORT_OPENMP (in Rconfig.h) even
though no OpenMP flags were populated.
o The getS3method() implementation had an old computation to find
an S4 default method.
o readLines() could overflow a buffer if the last line of the file
was not terminated. (PR#14766)
o R CMD check could miss undocumented S4 objects in packages which
used S4 classes but did not Depends: methods in their DESCRIPTION
file.
o The HTML Help Search page had malformed links. (PR#14769)
o A couple of instances of lack of protection of SEXPs have been
squashed. (PR#14772, PR#14773)
o image(x, useRaster=TRUE) misbehaved on single-column x.
(PR#14774)
o 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)
o The text of a function body containing more than 4096 bytes was
not properly saved by the parser when entered at the console.
o Forgetting the #endif tag in an Rd file could cause the parser to
go into a loop. (Reported by Hans-Jorg Bibiko.)
o str(*, ....., strict.width="cut") now also obeys list.len = n.
(Reported by S"oren Vogel.)
o Printing of arrays did not have enough protection (C level),
e.g., in the context of capture.output(). (Reported by Herv'e
Pag`es and Martin Morgan.)
o pdf(file = NULL) would produce a spurious file named NA.
(PR#14808)
o list2env() did not check the type of its envir argument.
(PR#14807)
o svg() could segfault if called with a non-existent file path.
(PR#14790)
o make install can install to a path containing + characters.
(PR#14798)
o The edit() function did not respect the options("keep.source")
setting. (Reported by Cleridy Lennert.)
o predict.lm(*, type="terms", terms=*, se.fit=TRUE) did not work.
(PR#14817)
o 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).
o The C function R_ReplDLLdo1() did not call top-level handlers.
o 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.
o mclapply() would fail in code assembling the translated error
message if some (but not all) cores encountered an error.
o format.POSIXlt(x) raised an arithmetic exception when x was an
invalid object of class "POSIXlt" and parts were empty.
o installed.packages() has some more protection against package
installs going on in parallel.
o .Primitive() could be mis-used to call .Internal() entry points.
CHANGES IN R VERSION 2.14.1:
NEW FEATURES:
o 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.
o Reference classes now keep a record of which fields are locked.
$lock() with no arguments returns the names of the locked fields.
o HoltWinters() reports a warning rather than an error for some
optimization failures (where the answer might be a reasonable
one).
o tools::dependsOnPkg() now accepts the shorthand dependencies =
"all".
o parallel::clusterExport() now allows specification of an
environment from which to export.
o The quartz() device now does tilde expansion on its file
argument.
o 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.
o 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()).
o filled.contour() now accepts infinite values: previously it might
have generated invalid graphics files (e.g. containing NaN
values).
INSTALLATION:
o 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.
o 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:
o 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:
o 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:
o stack() now gives an error if no vector column is selected,
rather than returning a 1-column data frame (contrary to its
documentation).
o summary.mlm() did not handle objects where the formula had been
specified by an expression. (Reported by Helios de Rosario
Martinez).
o tools::deparseLatex(dropBraces=TRUE) could drop text as well as
braces.
o colormodel = "grey" (new in R 2.14.0)) did not always work in
postscript() and pdf().
o file.append() could return TRUE for failures. (PR#14727)
o gzcon() connections are no longer subject to garbage collection:
it was possible for this to happen when unintended (e.g. when
calling load()).
o 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.)
o options(warn = 0) failed to end a (C-level) context with more
than 50 accumulated warnings. (Spotted by Jeffrey Horner.)
o The internal plot.default() code did not do sanity checks on a
cex argument, so invalid input could cause problems. (Reported
by Ben Bolker.)
o anyDuplicated(<array>, MARGIN=0) no longer fails. (Reported by
Herv'e Pag`es.)
o 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'.
o There was a sign error in part of the calculations for the
variance returned by KalmanSmooth(). (PR#14738)
o 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)
o RweaveLatex() now emulates auto-printing rather than printing, by
calling methods::show() when auto-printing would.
o duplicated() ignored fromLast for a one-column data frame.
(PR#14742)
o 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)
o srcfilecopy() has gained a new argument isFile and now records
the working directory, to allow debuggers to find the original
source file. (PR#14826)
o LaTeX conversion of Rd files did not correctly handle
preformatted backslashes. (PR#14751)
o HTML conversion of Rd files did not handle markup within tabular
cells properly. (PR#14708)
o source() on an empty file with keep.source = TRUE tried to read
from stdin(), in R 2.14.0 only. (PR#14753)
o The code to check Rd files in packages would abort if duplicate
description sections were present.
CHANGES IN R VERSION 2.14.0:
SIGNIFICANT USER-VISIBLE CHANGES:
o 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).
o 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.
o 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.
o :: 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).
o 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).
o 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'.
o axTicks(*, log=TRUE) has changed in some cases to satisfy the
documented behavior and be consistent.
NEW FEATURES:
o txtProgressBar() can write to an open connection instead of the
console.
o Non-portable package names ending in . are no longer allowed.
Nor are single-character package names (R was already
disallowed).
o regexpr() and gregexpr() with perl = TRUE allows Python-style
named captures. (Wish and contribution of PR#14518.)
o 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.)
o sunflowerplot() now has a formula interface. (Wish of PR#14541.)
o 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.
o Garbage-collecting an unused input text connection no longer
gives a warning (since it 'connects' to nothing outside R).
o read.table() and scan() have gained a text argument, to allow
reading data from a (possibly literal) character string.
o optim(*, method = .) now allows method = "Brent" as an interface
to optimize(), for use in cases such as mle() where optim() is
used internally.
o mosaicplot() gains a border argument. (Wish of PR#14550.)
o 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.)
o gl() runs faster by avoiding calling factor().
o The print() method for object.size() accepts B as well as b as an
abbreviation for 'bytes'.
o unlink() gains a force argument to work like rm -f and if
possible override restrictive permissions.
o pbirthday() and qbirthday() now use exact calculations for
coincident = 2.
o 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.
o update.packages() now accepts a character vector of package names
for the oldPkgs argument. (Suggestion of Tal Galili.)
o The special reference class fields .self and .refClassDef are now
read-only to prevent corrupting the object.
o 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.)
o Rao's efficient score test has been implemented for glm objects.
Specifically, the add1, drop1, and anova methods now allow test =
"Rao".
o 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.
o 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.
o 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.
o The default methods for is.finite(), is.infinite() and is.nan()
now signal an error if their argument is not an atomic vector.
o The formula method for plot() no longer places package stats on
the search path (it loads the namespace instead).
o 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().
o 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).
o 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.
o Both curve() and the plot() method for functions have a new
argument xname to facilitate plots such as sin(t) _vs_ t.
o 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.
o vcov() gains methods for classes "summary.lm" and "summary.glm".
o The plot() method for class "profile.nls" gains ylab and lty
arguments, and passes ... on to plot.default.
o 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.
o 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).
o 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).
o 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.
o 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.)
o 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.)
o Sys.info() gains a euser component to report the 'effective' user
on OSes which have that concept.
o The result returned by try() now contains the original error
condition object as the "condition" attribute.
o 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.
o 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().
o 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.
o 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)
o There is a new function texi2pdf() in package tools, currently a
convenience wrapper for texi2dvi(pdf = TRUE).
o 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'.
o 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.
o tools::Rdiff (by default) and R CMD Rdiff now ignore differences
in pointer values when comparing printed environments, compiled
byte code, etc.
o 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).
o 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.
o Documentation and messages have been standardized to use
"namespace" rather than "name space".
o 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.)
o Setting the environment variable _R_WARN_ON_LOCKED_BINDINGS_ will
give a warning if an attempt is made to change a locked binding.
o \SweaveInput is now supported when generating concordances in
Sweave().
o findLineNum() and setBreakpoint() now allow the environment to be
specified indirectly; the latter gains a clear argument to allow
it to call untrace().
o The body of a closure can be one of further types of R objects,
including environments and external pointers.
o The Rd2HTML() function in package tools now has a stylesheet
argument, allowing pages to be displayed in alternate formats.
o New function requireNamespace() analogous to require(), returning
a logical value after attempting to load a namespace.
o 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.
o 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.
o socketConnection() now has a timeout argument. It is now
documented that large values (package snow used a year) do not
work on some OSes.
o 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).
o 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).