-
Notifications
You must be signed in to change notification settings - Fork 306
/
NEWS
8201 lines (5648 loc) · 297 KB
/
NEWS
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!
**************************************************
* *
* 2.8 SERIES NEWS *
* *
**************************************************
CHANGES IN R VERSION 2.8.0
SIGNIFICANT USER-VISIBLE CHANGES
NEW FEATURES
o format(), formatC() and prettyNum() gain a new argument
'drop0trailing' which can be used to suppress trailing "0"s.
o Experimental setTimeLimit() function to set limits on the CPU
and/or elapsed time for each top-level computation.
o The user environment and profile files can now be specified via
environment variables 'R_ENVIRON_USER' and 'R_PROFILE_USER',
respectively.
o optim(.., method="SANN", .., trace=TRUE) is now customizable via
the 'REPORT' control argument, thanks to code proposals by
Thomas Petzoldt.
o The parser and scan() now accept strings with embedded nuls
such as "a\0b" -- previous versions of R terminated scanning
at the first (actual or escaped) nul.
o tools::texi2dvi() has a new argument 'texinputs' to allow the
TeX and bibtex input paths to be specified (even on MiKTeX).
o setEPS() and setPS() gain '...' to allow other arguments to be
passed to ps.options(), including overriding 'width' and 'height'.
o dev.copy2pdf() gains an 'out.type' argument to allow it to be
used with cairo_pdf() or quartz(type = "pdf").
o by() gains a 'simplify' argument, passed to tapply().
o segments(), arrows() and rect() allow zero-length
coordinates. (Wish of PR#11192)
o Adobe Symbol has been added to the encodings in
tools::charset_to_Encoding.
o pdf() has new arguments 'useDingbats' (set to FALSE for use
with broken viewers) and 'colormodel'. It now only references
the ZapfDingbats font if it is used.
The default PDF version is now 1.4, since viewers that do not
accept that are now rare.
o The behaviour of readLines() for incomplete final lines on
non-text-mode connections has been changed to be like blocking
rather than non-blocking text-mode connections.
PACKAGE INSTALLATION
o LazyLoad: yes is now the default, so packages wanting to avoid
lazy loading must set 'LazyLoad: no' (or an equivalent value) in
the DESCRIPTION file.
o R CMD INSTALL will now fail if it finds a non-executable
configure script in the package -- this usually indicates a
file system with insufficient permissions.
DEPRECATED & DEFUNCT
o Use in packages of the graphics headers Rdevices.h and
Rgraphics.h is defunct: they are no longer installed.
o options("par.ask.default") is defunct in favour of
"device.ask.default".
o The 'device-independent' family "symbol" is defunct: use
font=5 (base) or fontface=5 (grid) instead.
o gammaCody() is defunct.
o par("gamma") is defunct.
o 'methods' package functions getAccess(), getAllMethods(),
getClassName(), getClassPackage(), getExtends(),
getProperties(), getPrototype(), getSubclasses, getVirtual(),
mlistMetaName(), removeMethodsObject() and seemsS4Object() are
defunct.
o In package installation, SaveImage: yes is now ignored, and
any use of the field will give a warning.
o unserialize() no longer accepts character strings as input --
that was a format prior to R 2.4.0 which needs embedded nulls
in character strings.
o The C macro 'allocString' has been removed -- use 'mkChar',
or 'allocVector' directly if really necessary.
o Use of allocVector(CHARSXP ...) is deprecated and gives a warning.
C-LEVEL FACILITIES
o CHARSXPs with embedded nuls are now cached, and can be
created by mkCharLen and mkCharLenCE (with a declared encoding).
UTILITIES
o The default for 'stylepath' in Sweave's (default) RweaveLatex
driver is now FALSE rather than TRUE if
SWEAVE_STYLEPATH_DEFAULT is unset : see ?RweaveLatex.
To support this, tools::texi2dvi adds the R 'texmf' directory
to the input search path.
o R CMD Rd2dvi now previews PDF output (as was documented) if
R_PDFVIEWER is set (as it will normally be on a Unix-aloke but
not on Windows).
o R CMD build tries harder to clean up the inst/doc directory
from the remnants of earlier builds.
BUG FIXES
o @ now gives an error (and not just a warning) if it is being
applied to a non-S4 object.
o R CMD appends (not prepends) R's texmf path to TEXINPUTS.
**************************************************
* *
* 2.7 SERIES NEWS *
* *
**************************************************
CHANGES IN R VERSION 2.7.0
SIGNIFICANT USER-VISIBLE CHANGES
o The default graphics device in non-interactive use is now
pdf() rather than postscript(). [PDF viewers are now
more widely available than PostScript viewers.]
The default width and height for pdf() and bitmap() have been
changed to 7 (inches) to match the screen devices.
o Most users of the X11() device will see a new device that has
different fonts, anti-aliasing of lines and fonts and
supports semi-transparent colours.
o Considerable efforts have been made to make the default output
from graphics devices as similar as possible (and in
particular close to that from postscript/pdf). Many devices
were misinterpreting 'pointsize' in some way, for example as
being in device units (pixels) rather than in points.
o Packages which include graphics devices need to be re-installed
for this version of R, with recently updated versions.
NEW FEATURES
o The apse code used by agrep() has been updated to version
0.16, with various bug fixes.
agrep() now supports multibyte character sets.
o any() and all() avoid coercing zero-length arguments (which
used a surprising amount of memory) since they cannot affect
the answer.
Coercion of other than integer arguments now gives a warning
as this is often a mistake (e.g. writing all(pr) > 0 instead
of all(pr > 0) ).
o as.Date(), as.POSIXct() and as.POSIXlt() now convert numeric
arguments (days or seconds since some epoch) provided the
'origin' argument is specified.
o New function as.octmode() to create objects such as file
permissions.
o as.POSIXlt() is now generic, and it and as.POSIXct() gain a
'...' argument. The character/factor methods now accept a
'format' argument (analogous to that for as.Date).
o New function browseVignettes() lists available vignettes in an
HTML browser with links to PDF, Rnw, and R files.
o There are new capabilities "aqua" (for the AQUA GUI and quartz()
device on Mac OS X) and "cairo" (for cairo-based graphics
devices).
o New function checkNEWS() in package 'tools' that detects common
errors in NEWS file formatting.
o deparse() gains a new argument 'nlines' to limit the number of
lines of output, and this is used internally to make several
functions more efficient.
o deriv() now knows the derivatives of digamma(x), trigamma(x)
and psigamma(x, deriv) (wrt to x).
o dir.create() has a new argument 'mode', used on Unix-alikes
(only) to set the permissions on the created directory.
o Where an array is dropped to a length-one vector by drop() or
[, drop = TRUE], the result now has names if exactly one of
the dimensions was named. (This is compatible with S.)
Previously there were no names.
o The 'incomparables' argument to duplicated(), unique() and
match() is now implemented, and passed to match() from merge().
o dyn.load() gains a 'DLLpath' argument to specify the path for
dependent DLLs: currently only used on Windows.
o The spreadsheet edit() methods (and used by fix()) for data
frames and matrices now warn when classes are discarded.
When editing a data frame, columns of unknown type (that is
not numeric, logical, character or factor) are now converted
to character (instead of numeric).
o file.create() has a new argument 'showWarnings' (default TRUE)
to show an informative warning when creation fails, and
dir.create() warns under more error conditions.
o New higher-order functions Find(), Negate() and Position().
o [dpqr]gamma(*, shape = 0) now work as limits of 'shape -> 0',
corresponding to the point distribution with all mass at 0.
o An informative warning (in addition to the error message) will
be given when the basic, extended or perl mode of grep(),
strsplit() and friends fails to compile the pattern.
o More study is done of perl=TRUE patterns in grep() and friends
when length(x) > 10: this should improve performance on long
vectors.
o grep(), strsplit() and friends with fixed=TRUE or perl=TRUE
work in UTF-8 and preserve the UTF-8 encoding for UTF-8 inputs
where supported.
o help.search() now builds the database about 3x times faster.
o iconv() now accepts "UTF8" on all platforms (many did, but not
e.g. libiconv as used on Windows).
o identity() convenience function to be used for programming.
o In addition to warning when 'pkgs' is not found,
install.packages() now reports if it finds a valid package
with only a case mismatch in the name.
o intToUtf8() now marks the Encoding of its output.
o The function is() now works with S3 inheritance; that is, with
objects having multiple strings in the class attribute.
o Extensions to condition number computation for matrices, notably
complex ones are provided, both in kappa() and the new rcond().
o list.file() gains a 'ignore.case' argument, to allow
case-insensitive matching on some Windows/MacOS file systems.
o ls.str() and lsf.str() have slightly changed arguments and
defaults such that ls.str() {no arguments} works when debugging.
o Under Unix, utils::make.packages.html() can now be used directly
to set up linked HTML help pages, optionally without creating
the package listing and search database (which can be much
faster).
o new.packages() now knows about the front-end package gnomeGUI
(which does not install into a library).
o optim(*, control = list(...)) now warns when '...' contains
unexpected names, instead of silently ignoring them.
o The options "browser" and "editor" may now be set to functions,
just as "pager" already could.
o packageDescription() makes use of installed metadata where
available (for speed, e.g. in make.packages.html()).
o pairwise.t.test() and pairwise.wilcox.test() now more explicitly
allow paired tests. In the former case it is now flagged as an
error if both 'paired' and 'pool.SD' are set TRUE (formerly,
'paired' was silently ignored), and one-sided tests are generated
according to 'alternative' also if 'pool.SD' is TRUE.
o paste() and file.path() are now completely internal, for speed.
(This speeds up make.packages.html(packages=FALSE)
severalfold, for example.)
o paste() now sets the encoding on the result under some
circumstances (see ?paste).
o predict.loess() now works when loess() was fitted with
transformed explanatory variables, e.g, loess(y ~ log(x) + log(z)).
o print(<data.frame>)'s new argument 'row.names' allows to suppress
printing rownames.
o print() and str() now also "work" for 'logLik' vectors longer than
one.
o Progress-bar functions txtProgressBar(), tkProgressBar() in
package tcltk and winProgressBar() (Windows only).
o readChar() gains an argument 'useBytes' to allow it to read a
fixed number of bytes in an MBCS locale.
o readNEWS() has been moved to the tools package.
o round() and signif() now do internal argument matching if
supplied with two arguments and at least one is named.
o New function showNonASCII() in package tools to aid detection
of non-ASCII characters in .R and .Rd files.
o The [dpq]signrank() functions now typically use considerably
less memory than previously, thanks to a patch from Ivo
Ugrina.
o spec.ar() now uses frequency(x) when calculating the
frequencies of the estimated spectrum, so that for monthly
series the frequencies are now per year (as for spec.pgram)
rather than per month as before.
o spline() gets an 'xout' argument, analogously to approx().
o sprintf() now does all the conversions needed in a first pass if
length(fmt) == 1, and so can be many times faster if called
with long vector arguments.
o [g]sub(useBytes = FALSE) now sets the encoding on changed
elements of the result when working on an element of known
encoding. (This was previously done only for perl = TRUE.)
o New function Sys.chmod(), a wrapper for 'chmod' on platforms
which support it. (On Windows it handles only the read-only
bit.)
o New function Sys.umask(), a wrapper for 'umask' on platforms
which support it.
o New bindings ttk*() in package tcltk for the 'themed widgets'
of Tk 8.5. The tcltk demos make use of these widgets where
available.
o write.table(d, row.names=FALSE) is faster when 'd' has millions of
rows; in particular for a data frame with automatic row names.
(Suggestion from Martin Morgan.)
o The parser limit on string size has been removed.
o If a NEWS file is present in the root of a source package, it
is installed (analogously to LICENSE, LICENCE and COPYING).
o Rd conversion to 'example' now quotes aliases which contain
spaces.
o The handling of DST on dates outside the range 1902-2037 has
been improved. Dates after 2037 are assumed to have the same
DST rules as currently predicted for the 2030's (rather than
the 1970s), and dates prior to 1902 are assumed to have no DST
and the same offset as in 1902 (if known, otherwise as in the
1970s).
o On platforms where we can detect that mktime sets errno
(e.g. Solaris and the code used on Windows but not Linux nor
Mac OS X), 1969-12-31 23:59:59 GMT is converted from POSIXlt
to POSIXct as -1 and not NA.
o The definition of 'whitespace' used by the parser is slightly
wider: it includes Unicode space characters on Windows and in
UTF-8 locales on machines which use Unicode wide characters.
o The src/extra/intl sources have been updated to those from
gettext 0.17.
o New flag --interactive on Unix-alikes forces the session to be
interactive (as --ess does on Windows).
o x[<zero-length>] <- NULL is always a no-op: previously
type-checking was done on the replacement value and so this
failed, whereas we now assume NULL can be promoted to any
zero-length vector-like object.
Other cases of a zero-length index are done more efficiently.
o There is a new option in Rd markup of \donttest{} to mark
example code that should be run by example() but not tested
(e.g. because it might fail in some locales).
o The error handler in the parser now reports line numbers for
more syntax errors (MBCS and Unicode encoding errors, line
length and context stack overflows, and mis-specified argument
lists to functions).
o The "MethodsList" objects originally used for method selection
are being phased out. New utilities provide simpler
alternatives (see ?findMethods), and direct use of the mangled
names for the objects is now deprecated.
o Creating new S4 class and method definitions in an environment
that could not be identified (as package, namespace or global)
previously generated an error. It now results in creating and
using an artificial package name from the current date/time,
with a warning. See ?getPackageName.
o Unix-alikes now give a warning on startup if locale settings
fail. (The Windows port has long done so.)
o Parsing and scanning of numerical constants is now done by R's
own C code. This ensures cross-platform consistency, and
mitigates the effects of setting LC_NUMERIC (within base R it
only applies to output -- packages may differ).
The format accepted is more general than before and includes
binary exponents in hexadecimal constants: see
?NumericConstants for details.
o Dependence specifications for R or packages in the Depends
field in a DESCRIPTION file can now make use of operators
< > == and != (in addition to <= and >=): such packages will
not be installable nor loadable in R < 2.7.0.
There can be multiple mentions of R or a package in the Depends
field in a DESCRIPTION file: only the first mention will be
used in R < 2.7.0.
GRAPHICS CHANGES
o The default graphics devices in interactive and
non-interactive sessions are now configurable via environment
variables R_INTERACTIVE_DEVICE and R_DEFAULT_DEVICE
respectively.
o New function dev.new() to launch a new copy of the default
graphics device (and taking care if it is "pdf" or
"postscript" not to trample on the file of an already running
copy).
o dev.copy2eps() uses dev.displaylist() to detect screen
devices, rather than list them in the function.
o New function dev.copy2pdf(), the analogue of dev.copy2eps().
o dev.interactive() no longer treats a graphics device as
interactive if it has a display list (but devices can still
register themselves on the list of interactive devices).
o The X11() and windows() graphics devices have a new argument
'title' to set the window title.
o X11() now has the defaults for all of its arguments set by the
new function X11.options(), inter alia replacing options
"gamma", "colortype" and "X11fonts".
o ps.options() now warns on unused option 'append'.
xfig() no longer takes default arguments from ps.options().
(This was not documented prior to 2.6.1 patched.)
pdf() now takes defaults from the new function pdf.options()
rather that from ps.options() (and the latter was not
documented prior to 2.6.1 patched).
The defaults for all arguments other than 'file' in
postscript() and pdf() can now be set by ps.options() or
pdf.options()
o New functions setEPS() and setPS() as wrappers to ps.options()
to set appropriate defaults for figures for inclusion in other
documents and for spooling to a printer respectively.
o The meaning of numeric 'pch' has been extended where MBCSes are
supported. Now negative integer values indicate Unicode
points, integer values in 32-127 represent ASCII characters,
and 128-255 are valid only in single-byte locales.
(Previously what happened with negative pch values was
undocumented: they were replaced by the current setting of
par("pch").)
o Graphics devices can say if they can rotate text well
(e.g. postscript() and pdf() can) and if so the device's
native text becomes the default for contour labels rather than
using Hershey fonts.
o The setting of the line spacing (par("cra")[2]) on the X11() and
windows() devices is now comparable with postscript() etc, and
roughly 20% smaller than before (it used to depend on the
locale for X11). (So is the pictex() device, now 20% larger.)
This affects the margin size in plots, and should result in
better-looking plots.
o There is a per-device setting for whether new frames need
confirmation. This is controlled by either par("ask") or
grid.prompt() and affects all subsequent plots on the device
using base or grid graphics.
o There is a new version of the X11() device based on cairo
graphics which is selected by type "cairo" or "nbcairo", and
is available on machines with cairo installed and preferably
pango (which most machines with gtk+ >= 2.8 will have). This
version supports translucent colours and normally does a
better job of font selection so it has been possible to
display (e.g.) English, Polish, Russian and Japanese text on
a single X11() window. It is the default where available.
There is a companion function, savePlot(), to save the current
plot to a PNG file.
On Unix-alikes, devices jpeg() and png() also accept
type = "cairo", and with that option do not need a running
X server. The meaning of capabilities("jpeg") and
capabilities("png") has changed to reflect this. On MacOS X,
there is a further type = "quartz". The default type is
selected by the new option "bitmapType", and is "quartz" or
"cairo" where available.
Where cairo 1.2 or later is supported, there is a svg() device
to write SVG files, and cairo_pdf() and cairo_ps() devices to
write (possibly bitmap) PDF and postscript files via cairo.
Some features require cairo >= 1.2, and some which are
nominally supported under 1.2 seem to need 1.4 to work well.
o There are new bmp() and tiff() devices.
o New function devSize() to report the size of the current
graphics device surface (in inches or device units). This
gives the same information as par("din"), but independent of
the graphics subsystem.
o New base graphics function clip() to set the clipping region (in
user coordinates).
o New functions grconvertX() and grconvertY() to convert between
coordinate systems in base graphics.
o identify() recycles its 'labels' argument if necessary.
o stripchart() is now a generic function, with default and
formula methods defined. Additional graphics parameters may
be included in the call. Formula handling is now
similar to boxplot().
o strwidth() and strheight() gain 'font' and 'vfont' arguments and
accept in-line pars such as 'family' in the same way as text()
does. (Longstanding wish of PR#776)
o example(ask=TRUE) now applies to grid graphics (e.g. from
lattice) as well as to base graphics.
o Option "device.ask.default" replaces "par.ask.default" now it
applies also to grid.prompt().
o plot.formula() only prompts between plots for interactive
devices (it used to prompt for all devices).
o When plot.default() is called with y=NULL it now calls Axis()
with the 'y' it constructs rather than use the default axis.
DEPRECATED & DEFUNCT
o In package installation, SaveImage: yes is defunct and
lazyloading is attempted instead.
o $ on an atomic vector or S4 object is now defunct.
o Partial matching in [[ is now only performed if explicitly
requested (by exact=FALSE or exact=NA).
o Command-line completion has been moved from package 'rcompgen'
to package 'utils': the former no longer exists as a separate
package in the R distribution.
o The S4 pseudo-classes "single" and double have been removed.
(The S4 class for a REALSXP is "numeric": for back-compatibility
as(x, "double") coerces to "numeric".)
o gpar(gamma=) in the grid package is now defunct.
o Several S4 class definition utilities, get*(), have been said
to be deprecated since R 1.8.0; these are now formally deprecated.
Ditto for removeMethodsObject().
o Use of the graphics headers Rgraphics.h and Rdevices.h is
deprecated, and these will be unavailable in R 2.8.0.
(They are hardly used except in graphics devices, for which
there is an updated API in this version of R.)
o options("par.ask.default") is deprecated in favour of
"device.ask.default".
o The 'device-independent' family "symbol" is deprecated as it was
highly locale- and device-dependent (it only did something
useful in single-byte locales on most devices) and font=5
(base) or fontface=5 (grid) did the job it was intended to do
more reliably.
o gammaCody() is now formally deprecated.
o Two low-level functions using MethodsList metadata objects
(mlistMetaName() and getAllMethods()) are deprecated.
o Setting par(gamma=) is now deprecated, and the windows()
device (the only known example) no longer allows it.
o The C macro 'allocString' will be removed in 2.8.0 -- use
'mkChar', or 'allocVector' directly if really necessary.
INSTALLATION
o Tcl/Tk >= 8.3 (released in 2000) is now required to build
package tcltk.
o configure first tries TCL_INCLUDE_SPEC and TK_INCLUDE_SPEC
when looking for Tcl/Tk headers. (The existing scheme did
not work for the ActiveTcl package on Mac OS X.)
o The Windows build only supports Windows 2000 or later (XP,
Vista, Server 2003 and Server 2008).
o New option --enable-R-static-lib installs libR.a which can
be linked to a front-end via 'R CMD config --ldflags'.
The tests/Embedding examples now work with a static R
library.
o Netscape (which was discontinued in Feb 2008) is no longer
considered when selecting a browser.
o xdg-open (the freedesktop.org interface to
kfmclient/gnome-open/...) is considered as a possible browser,
after real browsers such as firefox, mozilla and opera.
o The search for tclConfig.sh and tkConfig.sh now only looks in
directories with names containing $(LIBnn) in the hope of
finding the version for the appropriate architecture
(e.g. x86_64 or i386).
o libtool has been updated to version 2.2.
o Use of --with-system-zlib, --with-system-bzlib or
--with-system-pcre now requires version >= 1.2.3, 1.0.5, 7.6
respectively, for security.
UTILITIES
o Rdconv now removes empty sections including alias and keyword
entries, with a note.
o Keyword entries are no longer mandatory in Rd files.
o R CMD INSTALL now also installs tangled versions of all vignettes.
o R CMD check now warns if spaces or non-ASCII characters are
used in file paths, since these are not in general portable.
o R CMD check (via massage-examples.pl) now checks all examples
with a 7 inch square device region on A4 paper, for
locale-independence and to be similar to viewing examples on
an on-screen device.
If a package declares an encoding in the DESCRIPTION file,
the examples are assumed to be in that encoding when running
the tests. (This avoids errors in running latin1 examples in a
UTF-8 locale.)
o R CMD check uses pdflatex (if available) to check the typeset
version of the manual, producing PDF rather than DVI. (This
is a better check since the package reference manuals on CRAN
are in PDF.)
o R CMD Rd2dvi gains a --encoding argument to be passed to
R CMD Rdconv, to set the default encoding for conversions.
If this is not supplied and the files are package sources and
the DESCRIPTION file contains an Encoding field, that is used
for the default encoding.
o available.packages() (and hence install.packages() etc) now
supports subdirectories in a repository, and
tools::write_PACKAGES() can now produce PACKAGES files
including subdirectories.
o The default for 'stylepath' in Sweave's (default) RweaveLatex
driver can be set by the environment variable
SWEAVE_STYLEPATH_DEFAULT: see ?RweaveLatex.
C-LEVEL FACILITIES
o Both the Unix and Windows interfaces for embedding now make
use of 'const char *' declarations where appropriate.
o Rprintf() and REprintf() now use 'const char *' for their format
argument -- this should reduce warnings when called from C++.
o There is a new description of the interface for graphics
devices in the 'R Internals' manual, and several new entry
points. The API has been updated to version R_GE_version = 5,
and graphics devices will need to be updated accordingly.
o Graphics devices can now select to be sent text in UTF-8, even
if the current locale is not UTF-8 (and so enable text entered
in UTF-8 to be plotted). This is used by postscript(), pdf()
and the windows() family of devices, as well as the new
cairo-based devices.
o More Lapack routines are available (and declared in R_Ext/Lapack.h),
notably for (reciprocal) condition number estimation of complex
matrices.
o Experimental utility R_has_slot supplementing R_do_slot.
o There is a new public interface to the encoding info stored on
CHARSXPs, getCharCE and mkCharCE using the enumeration type
cetype_t.
o A new header 'R_ext/Visibility.h' contains some definitions for
controlling the visibility of entry points, and how to control
visibility is now documented in 'Writing R Extensions'.
BUG FIXES
o pt(x, df) is now even more accurate in some cases (e.g. 12 instead
of 8 significant digits), when x^2 << df, thanks to a remark from
Ian Smith, related to PR#9945.
o co[rv](use = "complete.obs") now always gives an error if there
are no complete cases: they used to give NA if
method = "pearson" but an error for the other two methods.
(Note that this is pretty arbitrary, but zero-length vectors
always give an error so it is at least consistent.)
cor(use="pair") used to give diagonal 1 even if the variable
was completely missing for the rank methods but NA for the
Pearson method: it now gives NA in all cases.
cor(use="pair") for the rank methods gave a matrix result with
dimensions > 0 even if one of the inputs had 0 columns.
o Supplying edit.row.names = TRUE when editing a matrix without
row names is now an error and not a segfault. (PR#10500)
o The error handler in the parser reported unexpected
& as && and | as ||.
o ps.options(reset = TRUE) had not reset for a long time.
o paste() and file.path() no longer allow NA_character_ for
their 'sep' and 'collapse' arguments.
o by() failed for 1-column matrices and dataframes. (PR#10506)
However, to preserve the old behaviour, the default method
when operating on a vector still passes subsets of the vector
to FUN, and this is now documented.
o Better behaviour of str.default() for non-default
'strict.width' (it was calling str() rather than str.default()
internally); also, more useful handling of options("str").
o wilcox.test(exact=FALSE, conf.int=TRUE) could fail in some
extreme two-sample problems. (Reported by Wolfgang Huber.)
o par(pch=) would accept a multi-byte string but only use the
first byte. This would lead to incorrect results in an MBCS
locale if a non-ASCII character was supplied.
o There are some checks for valid C-style formats in, e.g.
png(filename=). (PR#10571)
o vector() was misinterpreting some double 'length' values, e.g,
NaN and NA_real_ were interpreted as zero. Also, invalid
types of 'length' were interpreted as -1 and hence reported as
negative. (length<- shared the code and hence the same
misinterpretations.)
o A basic class "S4" was added to correspond to the "S4" object
type, so that objects with this type will print, etc. The
class is VIRTUAL, since all actual S4 objects must have a real
class.
o Classes with no slots that contain only VIRTUAL classes are now
VIRTUAL, as was intended but confused by having an empty S4
object as prototype. ## backed out temporarily ##
o format.AsIs() discarded dimnames, causing dataframes with matrix
variables to be printed without using the column names, unlike
what happens in S-PLUS (Tim Hesterberg, PR#10730).
o xspline() and grid::grid.xspline() work in device coordinates
and now correct for anisotropy in the device coordinate
system.
o grid.locator() now indicates to the graphics device that it is
is in 'graphics input' mode (as locator() and identify()
always have). This means that devices can now indicate the
'graphics input' mode by e.g. a change of cursor.
o Locales without encoding specification and non-UTF-8 locales
now work properly on Mac OS X. Note that locales without
encoding specification always use UTF-8 encoding in Mac OS X
(except for specials "POSIX" and "C") - this is different from
other operating systems.
o iconv() now correctly handles to="" and from="" on Mac OS X.
o In diag()'s argument list, drop the explicit default (' = n')
for 'ncol' which is ugly when making diag() generic.
o S4 classes with the same name from different packages were not
recognized because of a bug in caching the new definition.
o jpeg() and png() no longer maintain a display list, as they
are not interactive devices.
o Using attr(x, "names") <- value (instead of the correct
names<-) with 'value' a pairlist (instead of the correct
character vector) worked incorrectly. (PR#10807)
o Using [<- to add a column to a data frame dropped other
attributes whereas [[<- and $<- did not: now all preserve
attributes. (PR#10873)
o File access functions such as file.exists(), file.info(),
dirname() and unlink() now treat an NA filename as a
non-existent file and not the file "NA".
o r<foo>(), the random number generators, are now more consistent
in warning when NA's (specifically NaN's) are generated.
o rnorm(n, mu = Inf) now returns rep(Inf, n) instead of NaN;
similar changes are applied to rlnorm(), rexp(), etc.
o [l]choose() now warns when rounding non-integer 'k' instead of
doing so silently. (May help confused users such as PR#10766.)
o gamma() was warning incorrectly for most negative values as being
too near a negative integer. This also affected other
functions making use of its C-level implementation.
o dumpMethod() and dumpMethods() now work again.
o package.skeleton() now also works for code_files with only
metadata (e.g. S4 setClass) definitions; it handles S4 classes and
methods, producing documentation and NAMESPACE exports if requested.
o Some methods package utilities (implicitGeneric(), makeGeneric())
will be more robust in dealing with primitive functions (not a
useful idea to call them with primitives, though)
o Making a MethodsList from a function with no methods table will
return an empty list, rather than cause an error (questionably
a bug, but caused some obscure failures).
o setAs() now catches 2 arguments in the method definition, if
they do not match the arguments of coerce().
o S4 methods with missing arguments in the definition are handled
correctly when non-signature arguments exist, and check for
conflicting local names in the method definition.
o qgamma() and qchisq() could be inaccurate for small p,
e.g. qgamma(1.2e-10, shape = 19) was 2.52 rather than 2.73.
o dbeta(.., ncp) is now more accurate for large ncp, and typically no
longer underflows for give.log = TRUE.
o coerce() is now a proper S4 object and so prints correctly.
o @ now checks it is being applied to an S4 object, and if not
gives a warning (which will become an error in 2.8.0).
o dump() and friends now warn that all S4 objects (even those
based on vectors) are not source()able, with a stronger wording.
o read.dcf(all = TRUE) was leaking connections.
o scan() with a non-default separator could skip nul bytes,
including those entered as \0 with allowEscapes=TRUE. This
was different from the default separator.
o determinant(matrix(,0,0)) now returns a correct "det" result;
also value 1 or 0 depending on 'logarithm', rather than numeric(0).
o Name space 'grDevices' was not unloading its DLL when the
name space was unloaded.
o getNativeSymbolInfo() was unaware of non-registered Fortran
names, because one of the C support routines ignored them.
o load() again reads correctly character strings with embedded nuls.
(This was broken in 2.6.x, but worked in earlier versions.)
**************************************************
* *
* 2.6 SERIES NEWS *
* *
**************************************************
CHANGES IN R VERSION 2.6.2 patched
BUG FIXES
o src/extra/pcre has been updated to PCRE 7.6 (bugfix release).
o unlink(..., recursive=TRUE) no longer crashes on some platforms
if a directory cannot be opened.
o Loading in 2.6.2 a saved workspace could give an unimportant
warning in a non-UTF-8 multibyte locale (in particular a CJK
locale on Windows) which is now suppressed.
o print() methods are more consistent in returning the original
argument invisibly.
o Using the X11 data editor (e.g. via edit(), fix() or View())
could crash if the 'End' key was used and all the columns
would have fitted into the window.
o Creating a new page on an X11() device (by plot.new() or
grid.newpage()) did not flush out the XClearWindow call, so
the X11 window might not be refreshed immediately.
o libtool has been updated to version 1.5.26, which avoids
many spurious configure warnings on Darwin/Mac OS X.
o l10n_info() now recognizes how Darwin/Mac OS X reports
Latin-1 locales (as charset ISO8859-1 rather than ISO-8859-1).
o Checking examples which used grid (e.g. via lattice) without
attaching grid no longer give errors from grid_plot_hook().
o kappa(m, exact=TRUE) no longer wrongly uses 'exact=FALSE' when m
is an 'lm' or 'qr' object because the kappa.tri(x, exact=TRUE)
now works correctly.
o help(topic, offline=TRUE) misbehaved when there were multiple
matches to 'topic'. (PR#10859)
o The 'multilib' changes on Linux broke the use of
sub-architectures without a main architecture.
o source(echo=TRUE) would skip lines consisting entirely of the
letter t. (PR#10923)
o bzip2 has been updated to 1.0.5 (security fix).
CHANGES IN R VERSION 2.6.2
NEW FEATURES
o colnames(DF) is now also fast for large dataframes DF with
automatic row.names. Note that the correct usage is
names(DF). (PR#10470)
o tools::texi2dvi() works around the failure of 'texi2dvi --quiet'
to be quiet in texinfo 4.11.
o On Linux, parallel 32/64-bit installations are supported using
multilib.
BUG FIXES
o A compilation problem on one system where glob was not found
has been corrected. (PR#10468)