Commit 13e89a53 authored by Dirk Eddelbuettel's avatar Dirk Eddelbuettel

Import Upstream version 2.3.1

parent fe24ad41
......@@ -140,7 +140,7 @@ uninstall:
@for f in $(INSTFILES) $(NON_SVN_INSTFILES); do \
rm -f "$(rhome)/$${f}"; \
done
@rm -rf "$(Rexecbindir)" "$(Rexeclibdir)"
@rm -rf "$(Rexecbindir)" "$(rhome)/lib"
@rmdir "$(rhome)" 2>/dev/null \
|| echo " dir $(rhome) not removed"
@rm -f "${libdir}/libR$(DYLIB_EXT)"
......
......@@ -6,6 +6,161 @@
**************************************************
CHANGES IN R VERSION 2.3.1
NEW FEATURES
o In lm() and glm(), offsets are allowed to be length 1 (and
if so are replicated to the number of cases).
o The \uxxxx notation for Unicode characters in input strings
can now be used on any platform which supports MBCS, even if
the current locale is not MBCS (provided that the Unicode
character is valid in the current character set).
o The quasibinomial() family now allows the "cauchit" link. (PR#8851)
o edit.data.frame() no longer (silently) coerces character columns
to factor.
C-LEVEL FACILITIES
o The variables controlling stack checking are made available via
Rinterface.h to front-ends embedding R: see 'Writing R Extensions'
o R_SignalHandlers (defined in Rinterface.h) can be set to 0 to
suppress the R signal handlers in front-ends embedding R.
INSTALLATION CHANGES
o There have been a number of changes to help installation on
platforms that no one had beta-tested.
- Changes related to older header files, e.g. on Redhat 8.0/9.
- Problems with 'make install' on older (<3) versions of bash
on Solaris and elsewhere.
- AIX 5.2/gcc issues with needing -lm when making modules X11
and vfonts.
- Some versions of Solaris and AIX had a fcntl.h that
redefined 'open' to be 'open64' and thereby broke
compilation of src/main/connections.c and elsewhere.
o 'make uninstall' works better on a build using a named
subarchitecture.
BUG FIXES
o min(), max(), sum() and prod() gave nonsensical answers with
an empty list or raw argument.
o sum() on a data frame did not allow multiple arguments. (PR#8385)
o charmatch() and pmatch() did not specify they applied only to
character vectors. Now they do, and attempt to coerce 'x' and
'target' to character before attempting matching.
o The Summary() methods for data.frame, Date, POSIXct, POSIXlt
and difftime all required an argument which can match 'x',
although the generics did not.
o regexpr() now accepts 0-length 'text' inputs.
o help.search() no longer errors out on a wrongly installed package
(with no "hsearch.rds" file).
o The LaTeX version of the package reference manual was omitting
some topics, and was not sorting the foo-package topic first.
o Serializing (e.g. via save()) is better protected against C
stack overflow, which will now abort the conversion but no
longer crashes the R process on some platforms.
o rbind()ing dataframes with a single row could lead to a
corrupt data frame (a problem with the fix to PR#8506).
o plot(lm(y ~ 1)) now works also for 'which = 5'.
o dbeta(0, 1, a, 0) now correctly gives 'a' (limit) instead of 0,
and dbeta(0, a, b, ncp) now returns Inf instead of NaN.
o demo(Hershey) was failing on the Cyrillic octal codes in locales
(e.g. UTF-8) in which these are invalid.
o mean() on an integer (or logical) vector was treating NAs as
actual values (unless na.rm = TRUE).
o mean() on a complex vector was calculated incorrectly in
code to improve precision (PR#8842, John Peters).
o Graphical parameters bg, cex, col, lty, and lwd were being
checked as being of length one even by functions such as
title() that ignored them. (Functions such as lines() and
points() allow them to be of length > 1, so they might be
passed through ... to other high-level graphical functions
which then used to reject them.)
o str() now is fast again for large character vectors.
o edit() would default the environment of a function to .BaseEnv,
instead of to .GlobalEnv.
o lm() and glm() coerce their 'weights' and 'offset' values to
vector to avoid problems with specifying them as 1D or n x 1
arrays.
o image() with one or both axes on log scales would give a
spurious warning; contour() would give an error.
o legend() with log axes would place the title in the wrong place.
o edit.data.frame() was not returning factors edited with
factor.mode="numeric" to factors.
o edit.matrix() tried to set rownames and colnames from the
original matrix even if the sizes had been altered, and
ignored changes made to the column names. edit.row.names has
a more sensible default (if the rownames are non-NULL).
o bindingIsLocked() was returning invalid values of a logical
vector on some platforms.
o merge.data.frame() did not make the column names unique (by
appending elements of 'suffixes') when performing a Cartesian
product. (PR#8676)
o rbind.data.frame() matches up the names of columns (which was
undocumented), but failed to do so when checking if it was
dealing with a factor column. (PR#8868)
If rbind() was used on data frames with duplicated names it
produced a corrupt data frame.
o dt(x, df, ncp= not.0) now longer gives erratic values for
|x| < ~1e-12. (PR#8874)
o \code{\linkS4class{.}} now works.
o ccf() aligns time series by ts.intersect() rather than
ts.union() and so is less likely to need a non-default
na.action. (PR#8893)
o optim(method="CG") could return a value that did not
correspond to $par for very badly behaved functions on which
the second phase of the line search failed. (PR#8786)
o print.ts() could fail on a corrupt time series: it now warns and
does the best it can.
CHANGES IN R VERSION 2.3.0
......@@ -251,7 +406,7 @@ NEW FEATURES
o splinefun() returns a function that now also has a 'deriv' argument
and can provide up to the 3rd derivative of the interpolating
spline, thanks to Berwin Turlach.
o stopifnot(A) now gives a better error message when A has NAs, and
uses "not all TRUE" when A has length >= 2.
......@@ -971,11 +1126,11 @@ BUG FIXES
o uniroot() did not give a warning (as documented) if it failed
to converge in 'maxiter' steps. (PR#8751)
o eapply (and as.list.environment) did not work for the base
o eapply() (and as.list.environment()) did not work for the base
environment/namespace. (PR#8761)
o Added protection in configure against systems for which using
xmkmf fails to eport a C or C++ compiler.
xmkmf fails to report a C or C++ compiler.
o expand.grid() was constructing a data frame 'by hand' and so
setting integer row.names (which are documented to be
......@@ -1068,7 +1223,7 @@ BUG FIXES
left margin. (PR#8681)
o r <- glm(.....); all.equal(r,r) # now gives TRUE instead of an error
o plot.acf() with a multiple time series was sometimes
miscalculating the 'ylim' value for the plot after the first.
(PR#8705)
......@@ -1107,7 +1262,8 @@ NEW FEATURES
the keyboard).
o There is now a comprehensive French translation of the messages,
thanks to Philippe Grosjean.
thanks to Philippe Grosjean, Frederic Lehobey, Jean Thioulouse
and Emmanuel Paradis.
DEPRECATED & DEFUNCT
......
Revision: 37909
Last Changed Date: 2006-04-24
Revision: 38247
Last Changed Date: 2006-06-01
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.59 for R 2.3.0.
# Generated by GNU Autoconf 2.59 for R 2.3.1.
#
# Report bugs to <r-bugs@R-project.org>.
#
......@@ -423,8 +423,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='R'
PACKAGE_TARNAME='R'
PACKAGE_VERSION='2.3.0'
PACKAGE_STRING='R 2.3.0'
PACKAGE_VERSION='2.3.1'
PACKAGE_STRING='R 2.3.1'
PACKAGE_BUGREPORT='r-bugs@R-project.org'
ac_unique_file="src/include/Defn.h"
......@@ -1082,7 +1082,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures R 2.3.0 to adapt to many kinds of systems.
\`configure' configures R 2.3.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -1153,7 +1153,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of R 2.3.0:";;
short | recursive ) echo "Configuration of R 2.3.1:";;
esac
cat <<\_ACEOF
......@@ -1385,7 +1385,7 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
R configure 2.3.0
R configure 2.3.1
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
......@@ -1399,7 +1399,7 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by R $as_me 2.3.0, which was
It was created by R $as_me 2.3.1, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
......@@ -32634,13 +32634,13 @@ _ACEOF
## a) that would comment out #undef statements in Rmath.h.in and
## b) Rmath.h should be a self-contained file for standalone Rmath use.
## </NOTE>
if test "${ac_cv_func_expm1}" = yes; then
if test "${ac_cv_have_decl_expm1}" = yes; then
RMATH_HAVE_EXPM1="# define HAVE_EXPM1 1"
else
RMATH_HAVE_EXPM1="# undef HAVE_EXPM1"
fi
if test "${ac_cv_func_log1p}" = yes; then
if test "${ac_cv_have_decl_log1p}" = yes; then
RMATH_HAVE_LOG1P="# define HAVE_LOG1P 1"
else
RMATH_HAVE_LOG1P="# undef HAVE_LOG1P"
......@@ -50771,7 +50771,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
This file was extended by R $as_me 2.3.0, which was
This file was extended by R $as_me 2.3.1, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -50834,7 +50834,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
R config.status 2.3.0
R config.status 2.3.1
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
......@@ -1525,13 +1525,13 @@ AM_LANGINFO_CODESET
## a) that would comment out #undef statements in Rmath.h.in and
## b) Rmath.h should be a self-contained file for standalone Rmath use.
## </NOTE>
if test "${ac_cv_func_expm1}" = yes; then
if test "${ac_cv_have_decl_expm1}" = yes; then
RMATH_HAVE_EXPM1="# define HAVE_EXPM1 1"
else
RMATH_HAVE_EXPM1="# undef HAVE_EXPM1"
fi
AC_SUBST(RMATH_HAVE_EXPM1)
if test "${ac_cv_func_log1p}" = yes; then
if test "${ac_cv_have_decl_log1p}" = yes; then
RMATH_HAVE_LOG1P="# define HAVE_LOG1P 1"
else
RMATH_HAVE_LOG1P="# undef HAVE_LOG1P"
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -3090,8 +3090,8 @@ port would be greatly appreciated.
@section AIX
@cindex AIX
On AIX 4.3.3 and AIX 5.1/2 (and probably latter), it was found that the
use of ``run time linking'' (as opposed to normal AIX style linking) was
On AIX@tie{}4.3.3 and AIX@tie{}5.[123], it was found that the use of
``run time linking'' (as opposed to normal AIX style linking) was
required. For this, the @R{} main program must be linked to the runtime
linker with the @option{-brtl} linker option, and shareable objects must
be enabled for runtime linking with the @option{-G} linker option.
......@@ -3105,6 +3105,8 @@ note that linker flags must be escaped using @samp{-Wl,} if
@command{gcc} is used for linking: use @samp{MAIN_LDFLAGS="-Wl,brtl"}
and @samp{SHLIB_LDFLAGS="-Wl,-G"} in this case.
We understand that @option{--enable-R-shlib} does not work under AIX.
Tim Hoar <thoar at cgd dot ucar dot edu> reported success building
@R{} 1.9.0 under AIX 5.1 in 64-bit mode with
......@@ -3123,28 +3125,32 @@ CXXFLAGS='-O -qstrict'
and the @code{X11()} device worked. [His system required the
@file{Makeconf} file to be edited to replace @file{/lib/crt0.o} by
@file{/lib/crt0_64.o} in @code{R_XTRA_LIBS}, but @command{configure} now
tries to detect this.]
tries to detect this. There are no recent reports of building @R{} with
the AIX compilers, only @command{gcc}.]
Paul Boutros reported success building @R{}@tie{}2.0.1 under
AIX@tie{}5.2 with @command{gcc}@tie{}3.3.2 using
Ei-ji Nakama has reported that @file{src/main/regex.c} in
@R{}@tie{}2.2.0 has to be compiled with @option{-D_LINUX_SOURCE_COMPAT}
in @code{CFLAGS} in AIX@tie{}5.x (and does not work correctly with
AIX@tie{}4.x). We believe that the patch applied since obviates the
need for this. He tested @R{}@tie{}2.2.1@tie{}beta on AIX@tie{}5.2.
Jagat Sheth reported being able to build @R{} 2.3.0 patched on AIX@tie{}5.2
using @command{gcc}@tie{}4.1.0 and
@example
OBJECT_MODE=64
CC=/usr/local/bin/gcc
F77=/usr/local/bin/gfortran
CXX=/usr/local/bin/g++
MAIN_LDFLAGS=-Wl,-brtl
SHLIB_LDFLAGS=-Wl,-G
CFLAGS='-g -O'
FFLAGS='-O'
CXXFLAGS='-g -O'
./configure --disable-nls
@end example
@noindent
(note it is @code{Wl} (W ell) not @code{W1} (W one)).
We understand that @option{--enable-R-shlib} does not work under AIX.
Ei-ji Nakama has reported that @file{src/main/regex.c} in
@R{}@tie{}2.2.0 has to be compiled with @option{-D_LINUX_SOURCE_COMPAT}
in @code{CFLAGS} in AIX@tie{}5.x (and does not work correctly with
AIX@tie{}4.x). We believe that the patch applied since obviates the
need for this. He tested @R{}@tie{}2.2.1@tie{}beta on AIX@tie{}5.2.
Pre-release versions of @R{} 2.3.0 have been built on AIX@tie{}5.3.
(This defines the macro @samp{SOCKLEN_T} and so earlier versions of @R{}
cannot be compiled on that version of AIX.)
......@@ -3536,11 +3542,12 @@ You need a recent version of the MinGW port of @command{gcc} from
@url{http://www.murdoch-sutherland.com/Rtools/,
@code{www.murdoch-sutherland.com/@/Rtools}} for updates.
In late 2005 there was an installer @code{MinGW-5.0.0.exe} in the
`Proposed' section. Using this, select the @samp{Candidate} package and
add the @samp{g++} and @samp{g77} compilers to the @samp{MinGW base
tools}: components will be downloaded from Sourceforge and unpacked.
Note that you do need the @samp{Candidate} compilers (@code{gcc-3.4.5}).
There may be an installer in the `Proposed' section, which can be used
if it gives the @samp{Candidate} compilers (@code{gcc-3.4.5}). (If
using this, select the @samp{Candidate} package and add the @samp{g++}
and @samp{g77} compilers to the @samp{MinGW base tools}: components will
be downloaded from Sourceforge and unpacked. Note that
@file{MinGW-5.0.2.exe} uses outdated versions of the components.)
An alternative is to download the components individually, currently
......
......@@ -468,6 +468,21 @@ for system datasets that are not intended to be user-accessible via
@file{R} directory to allow a @file{configure} script to generate
suitable files,
Only ASCII characters (and the control characters tab, formfeed, LF and
CR) should be used in code files. Other characters are accepted in
comments, but then the comments may not be readable in e.g. a UTF-8
locale. Non-ASCII characters in object names will
normally@footnote{This is true for OSes which implement the @samp{C}
locale, unless neither lazy-loading nor saving an image are used, in
which case it would fail if loaded in a @samp{C} locale. (Windows' idea
of the @samp{C} locale uses the WinAnsi charset.)} fail when the
package is installed. Any byte will be allowed@footnote{It is good
practice to encode them as octal or hex escape sequences.} in a quoted
character string (but @code{\uxxxx} escapes should not be used), but
non-ASCII character strings may not be usable in some locales and may
display incorrectly in others.
@findex .First.lib
@findex .Last.lib
@findex library.dynam
......@@ -884,8 +899,34 @@ provide all the auxiliary routines.]
The macros @code{BLAS_LIBS} and @code{FLIBS} should always be included
@emph{after} @code{LAPACK_LIBS}.
@item SAFE_FFLAGS
@vindex SAFE_FFLAGS
A macro containing flags which are needed to circumvent
over-optimization of Fortran code: it is typically @samp{-g -O2
-ffloat-store} on @samp{ix86} platforms using @command{g77} or
@command{gfortran}.
@end table
Note that @file{Makevars} should not normally contain targets, as it is
included before the default @file{Makefile} and @command{make} is called
without an explicit target. To circumvent that, use a suitable phony
target before any actual targets: for example @pkg{fastICA} has
@smallexample
SLAMC_FFLAGS=$(R_XTRA_FFLAGS) $(FPICFLAGS) $(SHLIB_FFLAGS) $(SAFE_FFLAGS)
all: $(SHLIB)
slamc.o: slamc.f
$(F77) $(SLAMC_FFLAGS) -c -o slamc.o slamc.f
@end smallexample
@noindent
to ensure that the LAPACK routines find some constants without infinite
looping.
@node Configure example, Using F95 code, Using Makevars, Configure and cleanup
@subsection Configure example
......@@ -925,7 +966,7 @@ if test [ -n "$odbc_lib_path" ] ; then
AC_SUBST([LIBS],[" -L$@{odbc_lib_path@} $@{LIBS@}"])
else
if test [ -n "$@{ODBC_LIBS@}" ] ; then
AC_SUBST([LIBS],["-I$@{ODBC_LIBS@} $@{LIBS@}"])
AC_SUBST([LIBS],["-L$@{ODBC_LIBS@} $@{LIBS@}"])
fi
fi
......@@ -1141,7 +1182,11 @@ The examples provided by the package's documentation are run.
@code{\examples} to create executable example code.)
Of course, released packages should be able to run at least their own
examples.
examples. Each example is run in a `clean' environment (so earlier
examples cannot be assumed to have been run), and with the variables
@code{T} and @code{F} redefined to generate an error unless they are set
in the example: @xref{Logical vectors, , Logical vectors, R-intro, An
Introduction to R}.
@item
If the package sources contain a @file{tests} directory then the tests
......@@ -4801,13 +4846,14 @@ for more information.
@findex R CMD SHLIB
Under Unix, shared objects for loading into @R{} can be created using
@code{R CMD SHLIB}. This accepts as arguments a list of files which
@command{R CMD SHLIB}. This accepts as arguments a list of files which
must be object files (with extension @file{.o}) or C, C++, or FORTRAN
sources (with extensions @file{.c}, @file{.cc} or @file{.cpp} or
@file{.C}, and @file{.f}, respectively). See @kbd{R CMD SHLIB --help},
or the on-line help for @code{SHLIB}, for usage information. If
compiling the source files does not work ``out of the box'', you can
specify additional flags by setting some of the variables
@file{.C}, and @file{.f} or @file{.f90} or @file{.f95}, respectively).
See @kbd{R CMD SHLIB --help}, or the on-line help for @code{SHLIB}, for
usage information. If compiling the source files does not work ``out of
the box'', you can specify additional flags by setting some of the
variables
@vindex PKG_CPPFLAGS
@code{PKG_CPPFLAGS} (for the C preprocessor, typically @samp{-I} flags),
@vindex PKG_CFLAGS
......@@ -4821,17 +4867,19 @@ create the object files directly from the command line).
@vindex PKG_LIBS
Similarly, variable @code{PKG_LIBS} in @file{Makevars} can be used for
additional @samp{-l} and @samp{-L} flags to be passed to the linker when
building the shared object. Flags which are set in file
@file{etc/Makeconf} can be overridden by the environment variable
@env{MAKEFLAGS} (at least for systems using @acronym{GNU} @code{make}),
as in (Bourne shell syntax)
building the shared object. (On most systems the @code{PKG_*} flags can
be set in the environment instead of in @file{Makevars}.)
Flags which are set in file @file{etc/Makeconf} can be overridden by the
environment variable @env{MAKEFLAGS} (at least for systems using
@acronym{GNU} @code{make}), as in (Bourne shell syntax)
@example
MAKEFLAGS="CFLAGS=-O3" R CMD SHLIB *.c
@end example
@noindent
or by using a @file{Makefile}.
or by using a @file{Makefile}.
Note that as @code{R CMD SHLIB} uses Make, it will not remake a shared
object just because the flags have changed, and if @code{test.c} and
......@@ -8391,7 +8439,8 @@ the @pkg{tcltk} package.
Enbedded @R{} is designed to be run in the main thread, and all the
testing is done in that context. There is a potential issue with the
stack-checking mechanism where threads are involved. This uses two
variables declared in the internal headers
variables declared in @file{Rinterface.h} (if @code{CSTACK_DEFNS} is
defined) as
@example
extern uintptr_t R_CStackLimit; /* C stack limit */
......@@ -8399,8 +8448,9 @@ extern uintptr_t R_CStackStart; /* Initial stack address */
@end example
@noindent
Note that @code{uintptr_t} is a C99 type for which a substitute
@code{unsigned long} is defined in @R{} if needed.
Note that @code{uintptr_t} is a C99 type for which a substitute is
defined in @R{}, so your code needs to define @code{HAVE_UINTPTR_T}
appropriately.
These will be set@footnote{at least on platforms where the values are
available, that is having @code{getrlimit} and on Linux or having
......@@ -8414,7 +8464,9 @@ If you have a choice of stack size, at least 8Mb is recommended.)
You may also want to consider how signals are handled: @R{} sets signal
handlers for several signals, including @code{SIGINT}, @code{SIGSEGV},
@code{SIGPIPE}, @code{SIGUSR1} and @code{SIGUSR2}.
@code{SIGPIPE}, @code{SIGUSR1} and @code{SIGUSR2}, but these can all be
suppressed by setting the variable @code{R_SignalHandlers} (declared in
declared in @file{Rinterface.h}) to @code{0}.
@node Embedding R under Windows, , Embedding R under Unix-alikes, Linking GUIs and other front-ends to R
......@@ -8820,7 +8872,7 @@ The programming and session management utilities
@example
@group
debug undebug trace untrace
browser proc.time
browser proc.time gc.time
@end group
@end example
......@@ -8851,13 +8903,11 @@ efficiency reasons:
: ~ c list
call as.call as.character
expression substitute as.environment
invisible
UseMethod invisible standardGeneric
.C .Fortran .Call .External
.Call.graphics .External.graphics
.subset .subset2
.primTrace .primUntrace
reg.finalizer gc.time
UseMethod standardGeneric
.subset .subset2 .primTrace .primUntrace
reg.finalizer
@end group
@end example
......@@ -8878,10 +8928,10 @@ list'' in @file{tests/no-segfault.Rin}.
@appendix R coding standards
@R{} is meant to run on a wide variety of platforms, including Linux and
most variants of Unix as well as 32-bit Windows versions and on the
Power Mac. Therefore, when extending @R{} by either adding to the @R{}
base distribution or by providing an add-on package, one should not rely
on features specific to only a few supported platforms, if this can be
most variants of Unix as well as 32-bit Windows versions and on MacOS X.
Therefore, when extending @R{} by either adding to the @R{} base
distribution or by providing an add-on package, one should not rely on
features specific to only a few supported platforms, if this can be
avoided. In particular, although most @R{} developers use @acronym{GNU}
tools, they should not employ the @acronym{GNU} extensions to standard
tools. Whereas some other software packages explicitly rely on e.g.@:
......@@ -8893,14 +8943,16 @@ The following tools can ``safely be assumed'' for @R{} extensions.
@itemize @bullet
@item
An ISO 9899, also known as ISO C89 or @acronym{ANSI} C compiler. If you
do not have access to this C standard, refer to the 2nd edition of Brian
W. Kernighan & Dennis M. Ritchie, @cite{The C Programming Language}.
Any extensions, such as @acronym{POSIX} or ISO C99, must be tested for,