From ripley at stats.ox.ac.uk  Thu Jun 16 13:41:10 2005
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Thu, 16 Jun 2005 12:41:10 +0100 (BST)
Subject: [Rd] R 2.1.1 slated for June 20
In-Reply-To: <1118918509.3651.26.camel@seurat>
References: <x264wmbe6m.fsf@turmalin.kubism.ku.dk> 
	<Pine.LNX.4.61.0506101407430.4262@gannet.stats>
	<1118773739.3126.4.camel@localhost.localdomain>
	<x2d5qoa9nf.fsf@turmalin.kubism.ku.dk>
	<1118786837.3968.14.camel@localhost.localdomain>
	<1118918509.3651.26.camel@seurat>
Message-ID: <Pine.LNX.4.61.0506161224300.25129@gannet.stats>

On Thu, 16 Jun 2005, Martyn Plummer wrote:

> On Tue, 2005-06-14 at 17:07 -0500, Marc Schwartz wrote:
>> On Tue, 2005-06-14 at 23:52 +0200, Peter Dalgaard wrote:
>>> Marc Schwartz <MSchwartz at mn.rr.com> writes:
>>>
>>>> On Fri, 2005-06-10 at 14:57 +0100, Prof Brian Ripley wrote:
>>>>> On Fri, 10 Jun 2005, Peter Dalgaard wrote:
>>>>>
>>>>>> The next version of R will be released (barring force majeure) on June
>>>>>> 20th, with beta versions available starting Monday.
>>>>>>
>>>>>> Please do check them on your system *before* the release this time...
>>>>>
>>>>> Some things which it would be particularly helpful to have tested:
>>>>
>>>>
>>>>> - Bleeding-edge OSes, e.g. anyone running Fedora Core 4 test 3?  (These
>>>>>    often show up problems with bugs in the pre-release versions of
>>>>>    components such as X11 and compilers.)
>>>>
>>>>
>>>> Just as a quick heads up, I installed FC4 Release ("Stentz") late
>>>> yesterday.
>>>>
>>>> R (Version 2.1.1 beta (2005-06-14)) compiles fine using:
>>>>
>>>> $ gcc --version
>>>> gcc (GCC) 4.0.0 20050519 (Red Hat 4.0.0-8)
>>>>
>>>> and make check-all passes with no problems.
>>>>
>>>> I have also installed all CRAN packages that do not require other 3rd
>>>> party drivers, etc. and there were no observed errors in those cases.
>>>>
>>>> So far, so good.
>>>>
>>>> If anything comes up, I will post a follow up.
>>>>
>>>> Best regards,
>>>>
>>>> Marc Schwartz
>>>
>>> Yep. Just tried the same on AMD64 (I had a bit of a fight converting
>>> my SuSE setup -- FC4 is quite unhappy about ReiserFS for some reason).
>>> A couple of f95 warnings whooshed by during the compile, that was all.
>>>
>>> By the way, I noticed that you can now "yum install R R-devel" and get
>>> everything straight from Fedora Extras.
>>
>> Yep. Tom "Spot" Callaway is the FE maintainer for R.
>
> I had a look at his RPM last night.  It includes a patch for gcc4, which
> fails to build R with the fairly aggressive optimizations used by
> rpmbuild. ("-O2 -D_FORTIFY_SOURCE=2" will reproduce the bug, IIRC, but
> I'm not upgrading my work PC just yet, so I can't be sure).  I folded
> this into R-patched.  It's a shame he didn't send a bug report or, if he
> did, I missed it.

Looks to me that this is bug in gcc4, not in R.  (It's not actually an 
optimization.) I've resisted making any such changes until gcc 4.0.1 is 
released - and that is held up on some outstanding bug fixes.

(BTW, it is a really good idea to put a comment in the file as to why
unnecessary parentheses have been added.)

It's a shame FC4 does not contain a well-tested high-quality compiler like
3.4.4 or 3.3.6, especially a well-tested high-quality Fortran compiler.

> I also note he is using the patch that sets LANG=C, which is obsolete
> now that R supports utf-8 locales.  I'll write to him (cc Marc) to let
> him know about these changes.
>
> The RedHat RPMS also use the shared library version of R.  I've been
> thinking about making this change myself, despite the substantial speed
> penalty, since I've seen a growing number of people recompiling to get
> the shared library.  The Red Hat choice forces my hand though: I don't
> want people upgrading from their R 2.1.0 to my R 2.1.1 and finding their
> installed packages don't work anymore.  The $64,000 question is how many
> people are going to care about that 15-20% decrease in speed. Speak up
> now if it concerns you.

Well, if they do they will also care about the 5-10% or so that gcc4 costs 
them over 3.4.4 and so will not want your RPM.

BTW, I find 15-20% on i686, 10-15 on x86_64, and I have no idea about PPC.
(That warning about

dotcode.c:96: warning: ISO C forbids assignment between function pointer and `void *'

is supposed to be serious on PPC64 where a function pointer is really a 
different sort of object.  FC4 claims to support 64-bit PPC, but it is not 
clear that this is actually a 64-bit OS.)  gcc4 has features we can use to 
narrow the gap but first it has to work reliably.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] R 2.1.1 slated for June 20
Prof Brian Ripley