Commit e5673aca authored by Dirk Eddelbuettel's avatar Dirk Eddelbuettel

Import Upstream version 2.4.1

parent ea4d7e72
......@@ -30,7 +30,7 @@ Makeconf: $(srcdir)/ $(top_builddir)/config.status
ACLOCAL_M4 = aclocal.m4
m4/R.m4 \
m4/clibs.m4 \
m4/clibs.m4 m4/c99.m4 \
m4/codeset.m4 \
m4/gettext.m4 m4/gettext-lib.m4 \
m4/java.m4 \
......@@ -81,9 +81,6 @@ install: installdirs svnonly
@for f in $(INSTFILES); do \
$(INSTALL_DATA) $(srcdir)/$${f} "$(rhome)"; \
@for f in $(INSTFILES); do \
$(INSTALL_DATA) $(srcdir)/$${f} "$(rdocdir)"; \
@for f in $(NON_SVN_INSTFILES); do \
$(INSTALL_DATA) $${f} "$(rhome)"; \
......@@ -104,15 +101,7 @@ svnonly:
touch non-tarball ; \
(cd $(srcdir); LC_ALL=C TZ=GMT svn info || echo "Revision: unknown") 2> /dev/null \
| sed -n -e '/^Revision/p' -e '/^Last Changed Date/'p \
| cut -d' ' -f1,2,3,4 > SVN-REVISION-tmp ; \
if grep unknown SVN-REVISION-tmp > /dev/null ; then \
echo "Last Changed Date: Today" >> SVN-REVISION-tmp ; \
if test -f "$(srcdir)/.svn/entries" ; then \
rev=`grep committed-rev "$(srcdir)/.svn/entries" | head -1 | sed -e 's/^ *committed-rev=\"//' -e 's/\"//'`; \
cdate=`grep committed-date "$(srcdir)/.svn/entries" | head -1 | sed -e 's/^ *committed-date=\"//' -e 's/T.*//'`; \
sed -e "s/unknown/$${rev}/" -e "s/Today/$${cdate}/" SVN-REVISION-tmp > SVN-REVISION-tmp2; mv SVN-REVISION-tmp2 SVN-REVISION-tmp ; \
fi ; \
fi ; \
| cut -d' ' -f1,2,3,4 > SVN-REVISION-tmp ; \
$(top_srcdir)/tools/move-if-change SVN-REVISION-tmp SVN-REVISION ; \
rm -f SVN-REVISION-tmp ; \
else \
......@@ -6,6 +6,222 @@
o The extraction of info from Subversion for an SVN checkout now
also works for svn >= 1.4.0. However, on Windows the 'Last
Changed Date' will be in the local timezone, and not in GMT as
o configure uses code borrowed from autoconf 2.60 to try harder to
ensure that a C99-compliant compiler is used. (It does so by
appending to CC.) This avoids problems with systems such as FC5
which override CFLAGS and thereby lose flags such as -std=gnu99.
o rainbow(), heat.colors(), terrain.colors(), topo.colors() and
cm.colors() all gain an 'alpha' argument to be passed to hsv().
o dput() will give an incorrect representation of the row names
of a data frame with integer row names. This is now corrected
when the object is recreated.
o Using STRICT_R_HEADERS applies to more reported clashes with
Windows headers, including Calloc and Realloc. These and
Free need to be prefixed by R_ when STRICT_R_HEADERS is defined.
o The previously undocumented behaviour of structure() in adding a
class when specifying "tsp" or "levels" attributes is now
deprecated (with a warning).
o Fixed warning() to use .dfltWarn intead of .dfltStop for default
handling (PR#9274).
o R would slow down when the product of the length of a vector and
the length of a character vector used to subset it exceeded 2^31.
o merge() now allows zero-row data frames.
o add1.lm() had been broken by other changes for weighted fits.
o axis.POSIXct() would sometimes give the wrong labels.
o Help for a method call would fail. (PR#9291)
o gzfile() returned an object of class "file" not "gzfile". (PR#9271)
o load()ing from a connection had a logic bug in when it closed
the connection. (PR#9271)
o The lowess() algorithm is unstable if the MAD of the residuals
becomes (effectively) zero: R now terminates the iterations at
that point. (This may result in quite different answers.)
The 'delta' argument was incorrectly documented. (PR#9264)
o abbreviate() would only work for strings of up to 8191 bytes,
but this was not checked. Now longer strings are errors.
o Drawing X11 rotated text was buggy for VERY small (negative)
angle of rotation. Reported by Ben Bolker. (PR#9301)
o The X11 data editor would crash in an MBCS locale if R was
compiled with FC's CFLAGS that add buffer overflow and
stack-smashing detection.
o rect() was not accepting border=NA in some cases involving
o Fixes to S4 group generics to ensure that the correct number of
active arguments are in the signature of the group and all
members. Also a fix to keep the 'groupMembers' slot up to date.
o S4 group generic "Logic" (with '&', '|', but not '!') has been
created, following the green book (apart from '!').
o removeClass() now takes care to remove any subclass references
to the deleted class.
o mle() (in stats4) might not have worked as intended when the
order of parameters in 'start' differed from that in the
log-likelihood. (PR#9313)
o dotchart() now properly restores par() settings after itself.
o system() on Mac OS X was blocking arbitrary signals during the
call although only SIGPROF was meant to be blocked.
o methods cached via callNextMethod() and (sometimes) as() were
being cached as directly specified although in fact they were
inherited. Caused problems in later search for inherited methods.
o str() works properly for method definitions and other S4-classed
function objects.
o JAVA_LIBS are now set correctly on MacOS X.
o Fix null-termination issue suspected of causing crash with Fedora
Extra RPMS (PR#9339, Justin Harrington, analysis and fix from Bill
o Namespaces restored via a saved session silently failed to cache
their methods because the methods package was not yet
attached. Fixed by attaching methods before restoring data.
o rbind()ing a list to a data frame generated invalid row names,
which were an error in 2.4.0. (PR#9346)
o boxplot.stats(x) now returns the correct minimum instead of an
error for x <- c(1,Inf,Inf,Inf), and hence boxplot(x) "works".
o promptClass() now uses \linkS4class{<ClassName>} instead of
of \link{<ClassName>-class}.
o gc() no longer reports nonsense values for the number of used
Vcells if the true value exceeds 2^31 (and hence over 16Gb of
heap is in use): it now reports NA. (PR#9345)
o rapply() now detects more user errors in supplying arguments. (PR#9349)
o boxplot() was ignoring argument 'boxfill'. (PR#9352)
o plot.lm(which = 6, id.n = 0) did not work. (PR#9333)
o .deparseOpts("delayPromises") was not matching the C code,
returning 64 rather than 32.
o bxp() could use partial matching on 'pars' when finding
defaults for some of its parameters, e.g. a setting of 'cex.axis'
in 'pars' or inline was used to set a default for 'outcex'.
o acf() now allows lag.max = 0 except when type="partial", and
forces the lag 0 autocorrelation to 1. (PR#9360)
o hist(*, include.lowest=., right=., plot=FALSE) does not warn
anymore, (PR#9356) and more.
o Some bugs in caching superclass/subclass relations and in
removing those relations on detach and on removeClass() have
been fixed.
o readBin() could return one too many strings if 'n' was an
over-estimate. (PR#9361)
o A request for an opaque colour in the pdf() device after a
translucent one did not set the transparency back to opaque in
Semi-transparent background colours were not being plotted on
the pdf() device.
o plot.lm(which=5) in the case of constant leverage re-ordered
the factor levels but not the residuals, so the labelling by
factor level was often incorrect.
o packBits() was not accepting a logical argument. (PR#9374)
o make install was omitting doc/FAQ and doc/RESOURCES.
o A two-sample t.test(x, y, var.equal=TRUE) did not allow one of the
groups to be of size one.
o The "ts" method for print() failed on some corrupted objects
of class "ts", e.g. those without a "tsp" attribute.
o structure() reordered the "class" value given if there was a
"tsp" value specified.
o pairs() now does pass appropriate parts of '...' to the
'diag.panel' argument. (PR#9384)
o plot.lm() was using an incorrect estimate of dispersion for
some GLMs (including family=binomial and family=poisson).
o Subsetting operators were setting R_Visible too early, so
assignments in arguments could make the result invisible.
o The tk-GUI was displaying a warning due to an extra comma in
the list of manuals (PR#9396)
o packageDescription() now gives an explicit error on a corrupt
o There was a scoping issue with tcltk callbacks given as
unevaluated expressions. This has only been partially fixed, a
complete fix probably requires redesign.
o trace() had its return value documented incorrectly and was
sometimes visible when it should not have been.
o pchisq() would sometimes use the wrong tail when calculating
non-central probabilities with lower.tail = FALSE. (PR#9406)
o rm() could remove the wrong objects when passed an expression.
(PR#9399) Now only names are allowed in the '...' argument,
and the incorrect documentation of what happened with
character objects is corrected.
o url() was not supporting 'encoding' except on file:// URLs.
Revision: 39566
Last Changed Date: 2006-10-03
Revision: 40228
Last Changed Date: 2006-12-18
......@@ -43,12 +43,16 @@
## If unspecified, a search is made for gcc and cc (in that order).
## To override this choice, specify the name of the command which runs
## the compiler here, for example 'c89'.
## It is also convenient to set the architecture here, e.g. 'gcc -m32'.
## NB, as from R 2.5.0 configure will append flags for C99 compliance,
## e.g. CC=gcc -std=gnu99
## To avoid this, set contradictory flags (such as -ansi) as part of CFLAGS.
## CC=
## Debugging and optimization options for the C compiler.
## Use this to specify CFLAGS for the version of the C compiler
## specified above.
## If unspecified, defaults to '-g -O2 -std=gnu99' for gcc,
## If unspecified, defaults to '-g -O2' for gcc,
## and '-g' in all other cases except icc (for which see R-admin.html).
This diff is collapsed.
......@@ -534,6 +534,8 @@ R_PROG_BROWSER
## next is a macro borrowed from autoconf 2.60
......@@ -752,12 +754,6 @@ AC_CHECK_SIZEOF(long, 4)
AC_CHECK_SIZEOF(long long, 0)
AC_CHECK_SIZEOF(long double, 0)
if test "$ac_test_CFLAGS" != set; then
if test "$GCC" = yes; then
R_PROG_CC_FLAG([-std=gnu99], R_SH_VAR_ADD(CFLAGS, [-std=gnu99]))
......@@ -890,7 +886,7 @@ case "${host_os}" in
case "${CC}" in
## Intel compiler
## icc declares __GNUC__, so it picks up CFLAGS intended for gcc.
if test "$ac_test_CFLAGS" != set; then
if test $ac_cv_prog_cc_g = yes; then
......@@ -1077,7 +1073,8 @@ if test -n "${XMKMF}"; then
cc=`echo ${cc} | sed "s/ .*//"`
## Paul Gilbert reported on R-devel 2006-04-13 a system with cc=""
if test -n "${cc}" ; then
if test "`which ${cc}`" = "`which ${CC}`"; then
r_cc_cmd=`echo ${CC} | sed "s/ .*//"`
if test "`which ${cc}`" = "`which ${r_cc_cmd}`"; then
shlib_ldflags=`${srcdir}/tools/GETMAKEVAL SHLIBLDFLAGS`
cpicflags=`${srcdir}/tools/GETMAKEVAL PICFLAGS`
......@@ -1085,7 +1082,8 @@ if test -n "${XMKMF}"; then
cxx=`${srcdir}/tools/GETMAKEVAL CXX`
cxx=`echo ${cxx} | sed "s/ .*//"`
if test -n "${cxx}" ; then
if test "`which ${cxx}`" = "`which ${CXX}`"; then
r_cxx_cmd=`echo ${CXX} | sed "s/ .*//"`
if test "`which ${cxx}`" = "`which ${r_cxx_cmd}`"; then
cxxpicflags=`${srcdir}/tools/GETMAKEVAL CXXPICFLAGS`
......@@ -1289,12 +1287,12 @@ rm -f libconftest${DYLIB_EXT} conftest.c
linux*) # GNU Linux/ELF
case "${CC}" in
## Intel compiler
## Intel compiler: note that -c99 may have been appended
## Portland Group
......@@ -14,7 +14,7 @@ Croatia,Croatia,Zagreb,,"Rudjer Boskovic Institute",mislav.
Denmark,Denmark,Aalborg,,", Aalborg",
"France (Toulouse)",France,Toulouse,,"CICT, Toulouse","David Allouche <>"
"France (Lyon)",France,Lyon,,"Dept. of Biometry & Evol. Biology, University of Lyon","Jean Thioulouse <>"
"France (Paris)",France,Paris,,"Boese Internet, Paris","Pelle Boese <>"
"France (Paris)",France,Paris,,"Miroir-Francais, Paris","Kurt LeClerc <>"
"Germany (Frankfurt)",Germany,Frankfurt,,xedio.mediastudios,"Carsten Zedler <>"
"Germany (Hamburg)",Germany,Hamburg,,"Pangora GmbH, Hamburg",
"Germany (Hannover)",Germany,Hannover,,"Maske & Glembotzky Opensource Mirroring GbR, Hannover",
......@@ -32,7 +32,7 @@ Israel,Israel,Tel-Aviv,,"Activetech Ltd, Tel-Aviv","""R
"Japan (Aizu)",Japan,Aizu,,"University of Aizu",
"Japan (Tokyo)",Japan,Tokyo,,"University of Tokyo","Teru KAMOGASHIRA <>"
"Japan (Tsukuba)",Japan,Tsukuba,,"University of Tsukuba",
Korea,Korea,Seoul,,"Seoul National University","SungGON Yi <>"
Korea,Korea,Seoul,,"Seoul National University","SungGON Yi <>"
Netherlands,Netherlands,Amsterdam,,"Nedmirror, Amsterdam",
Norway,Norway,Bergen,,"University of Bergen",
"Poland (Lublin)",Poland,Lublin,,"Skubiszewski Medical University, Lublin","Lukasz Komsta <>"
......@@ -44,6 +44,7 @@ Portugal,Portugal,Porto,,"Universidade do Porto",ne
"South Africa (Grahamstown)","South Africa",Grahamstown,,"Rhodes University","Jeremy Baxter <J.Baxter at>"
"Spain (Alicante)",Spain,Alicante,,"NumismaticProject, Alicante","Mundo Numismatico Monedas del Mundo <>"
"Spain (Madrid)",Spain,Madrid,,"Spanish National Research Network, Madrid","Jose Manuel Macias <>"
Sweden,Sweden,Uppsala,,"Swedish University Computer Network, Uppsala","Göran Broström <>"
"Switzerland (Zuerich)",Switzerland,Zuerich,,"ETH Zuerich",
"Switzerland (Bern 1)",Switzerland,Bern,,"Universitaet Bern","Thomas Schweizer <>"
"Switzerland (Bern 2)",Switzerland,Bern,,"Prokmu Hosting, Bern",
This diff is collapsed.
......@@ -39,7 +39,7 @@ R.1:
--name="a language for data analysis and graphics" \
install: install-message installdirs install-sources install-man
install: install-message installdirs install-sources install-sources2 install-man
@for d in $(SUBDIRS); do \
(cd $${d} && $(MAKE) $@) || exit 1; \
......@@ -55,9 +55,13 @@ install-sources:
@for f in $(INSTFILES); do \
$(INSTALL_DATA) $(srcdir)/$${f} "$(rdocdir)"; \
@for f in $(NON_SVN_INSTFILES); do \
$(INSTALL_DATA) $${f} "$(rdocdir)"; \
$(INSTALL_DATA) $(top_srcdir)/NEWS "$(rdocdir)"
install-strip: install
## top-level Makefile installed NEWS in docdir
@echo "uninstalling $(subdir) ..."
@if test -d "$(rdocdir)" \
This diff is collapsed.
......@@ -211,6 +211,7 @@ $(OBJECTS_DVI): $(srcdir)/texinfo.tex
R-admin.dvi: $(texiincludes)
R-data.dvi: $(texiincludes)
R-exts.dvi: $(texiincludes)
R-ints.dvi: $(texiincludes)
version.texi: Makefile $(top_srcdir)/VERSION $(top_builddir)/SVN-REVISION
@echo "creating $(subdir)/$@"
@(v=`sed 's/\([^ ]*\).*/\1/' $(top_srcdir)/VERSION`; \
......@@ -238,6 +239,7 @@ R-admin.html: $(texiincludes)
R-data.html: $(texiincludes)
R-exts.html: $(texiincludes)
R-intro.html: $(texiincludes)
R-ints.html: $(texiincludes)
R-lang.html: $(texiincludes)
......@@ -245,6 +247,7 @@ $(texiincludes) $(texiincludes) $(texiincludes) $(texiincludes) $(texiincludes) $(texiincludes)
pdf: refman.pdf $(OBJECTS_PDF)
......@@ -325,6 +328,7 @@ R-admin.pdf: $(texiincludes)
R-data.pdf: $(texiincludes)
R-exts.pdf: $(texiincludes)
R-intro.pdf: stamp-images-pdf $(texiincludes)
R-ints.pdf: $(texiincludes)
@if test "$(BUILDDIR_IS_SRCDIR)" = no ; then \
$(MAKE) rdocdir=$(top_builddir)/doc install-images-pdf; \
This diff is collapsed.
This diff is collapsed.
......@@ -108,7 +108,12 @@ help pages
@end example
before reading on.
before reading on.
A computing environment including a number of tools is assumed; the
``R Installation and Administration'' manual describes what is needed.
Under a Unix-alike most of the tools are likely to be present by
default, but Microsoft Windows and MacOS X will require careful setup.
Once a source package is created, it must be installed by
the command @code{R CMD INSTALL}.
......@@ -742,6 +747,7 @@ if test -z "$@{R_HOME@}"; then
CC=`"$@{R_HOME@}/bin/R" CMD config CC`
CFLAGS=`"$@{R_HOME@}/bin/R" CMD config CFLAGS`
CPPFLAGS=`"$@{R_HOME@}/bin/R" CMD config CPPFLAGS`
@end group
@end example
......@@ -878,7 +884,7 @@ The macros @code{BLAS_LIBS} and @code{FLIBS} should always be included
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
-ffloat-store} on @cputype{ix86} platforms using @command{g77} or
@end table
......@@ -915,7 +921,18 @@ this by running @command{autoconf} in the top-level package directory
@c @cartouche
AC_INIT([RODBC], 1.1.5) dnl package name, version
AC_INIT([RODBC], 1.1.8) dnl package name, version
dnl A user-specifiable option
[specify the ODBC manager, e.g. odbc or iodbc]),
if test "$odbc_mgr" = "odbc" ; then
dnl Select an optional include path, from a configure option
dnl or from an environment variable.
......@@ -923,11 +940,12 @@ AC_ARG_WITH([odbc-include],
[the location of ODBC header files]),
if test [ -n "$odbc_include_path" ] ; then
AC_SUBST([CPPFLAGS],["-I$@{odbc_include_path@} $@{CPPFLAGS@}"])
RODBC_CPPFLAGS="-I. -I$@{odbc_include_path@}"
if test [ -n "$@{ODBC_INCLUDE@}" ] ; then
......@@ -937,19 +955,18 @@ AC_ARG_WITH([odbc-lib],
[the location of ODBC libraries]),
if test [ -n "$odbc_lib_path" ] ; then
AC_SUBST([LIBS],[" -L$@{odbc_lib_path@} $@{LIBS@}"])
LIBS="-L$odbc_lib_path $@{LIBS@}"
if test [ -n "$@{ODBC_LIBS@}" ] ; then
if test -n "$@{ODBC_CONFIG@}"; then
odbc_lib_path=`odbc_config --libs | sed s/-lodbc//`
LIBS="$@{odbc_lib_path@} $@{LIBS@}"
dnl Another user-specifiable option
[specify the ODBC manager, e.g. odbc or iodbc]),
dnl Now find the compiler and compiler flags to use
: $@{R_HOME=`R RHOME`@}
if test -z "$@{R_HOME@}"; then
......@@ -958,6 +975,12 @@ if test -z "$@{R_HOME@}"; then
CC=`"$@{R_HOME@}/bin/R" CMD config CC`
CFLAGS=`"$@{R_HOME@}/bin/R" CMD config CFLAGS`
CPPFLAGS=`"$@{R_HOME@}/bin/R" CMD config CPPFLAGS`
if test -n "$@{ODBC_CONFIG@}"; then
RODBC_CPPFLAGS=`odbc_config --cflags`
dnl Check the headers can be found
AC_CHECK_HEADERS(sql.h sqlext.h)
......@@ -971,15 +994,22 @@ if test [ -n "$@{odbc_mgr@}" ] ; then
AC_SEARCH_LIBS(SQLTables, $@{odbc_mgr@}, ,
AC_MSG_ERROR("ODBC driver manager $@{odbc_mgr@} not found"))
AC_SEARCH_LIBS(SQLTables, odbc iodbc, ,
AC_SEARCH_LIBS(SQLTables, odbc odbc32 iodbc, ,
AC_MSG_ERROR("no ODBC driver manager found"))
dnl substitute CPPFLAGS and LIBS
dnl for 64-bit ODBC need SQL[U]LEN, and it is unclear where they are defined.
AC_CHECK_TYPES([SQLLEN, SQLULEN], , , [# include <sql.h>])
dnl for unixODBC header
dnl substitute RODBC_CPPFLAGS and LIBS
dnl and do subsitution in the src/