-
Notifications
You must be signed in to change notification settings - Fork 2
/
30update.txt
40 lines (27 loc) · 1.37 KB
/
30update.txt
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
Updating packages for 3.0.0
===========================
Package maintainers should be aware of the following changes scheduled
to appear in 3.0.0 on March/April 2013.
Namespaces
==========
Packages must have namespaces (as they have since R 2.14.0), but a
default NAMESPACE file is no longer generated on installation (it
still is by R CMD build). .First.lib is no longer run, so start-up
code must be in either .onLoad or .onAttach.
The one exception is data-only packages without any R code: but even
for those it is better to add an empty NAMESPACE file.
Long vectors
============
On 64-bit platforms, the length of a vector is no longer limited to
2^31-1 elements. This applies to matrices and arrays, but for the
forseeable future each of their dimensions is limited to 2^31-1.
The most important consequence is that length(x) is now more likely to
not be an integer. (This has always been a possibility for length()
methods, and e.g. package Matrix had methods that return a double.)
Programmers have frequently assumed that lengths were integers when
passing to .C/.Fortran, and furthermore that as.integer(length(x)) was
not NA. So safe code will
- always use as.integer(length(x)) when calling .C/.Fortran
- if using NAOK = TRUE, check that the result is not NA.
As a precaution, .C and .Fortran do not accept long vectors (as a
common idiom is to pass a vector and its length).