From ripley at stats.ox.ac.uk  Tue Aug 14 08:52:28 2007
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Tue, 14 Aug 2007 07:52:28 +0100 (BST)
Subject: [Rd] Change of compiler for Windows build of R
Message-ID: <Pine.LNX.4.64.0708140719200.31255@gannet.stats.ox.ac.uk>

The MinGW people have finally released a couple of builds of gcc 4.2.1 
(and finally moved the build of 3.4.5 to release status after 19 months as 
'candidate').

We intend to use gcc 4.2.1 for the binary distribution of R 2.6.0, and 
builds of R-devel are being made with it from now on.  The R-admin manual 
now contains details of the pieces you need, and in due course there will 
be an updated Rtools.exe containing this version.  I've successfully built 
cross-compilers although am unlikely to distribute one for a while.

gcc 4.2.1 is a better check of standards conformance, and you may see 
warnings in packages not present with gcc 3.4.5.  All the CRAN packages 
have been checked, and this showed up some issues with packages which 
deviated markedly from the documented procedures. E.g.

- the C++ compiler is $(CXX), not g++, and $(CXX) is defined in MkRules.

- there is a quirk with dlltool both on Vista and with gcc 4.2.1 on XP
   that needs '--as' included amongst the flags.  The rule in MkRules
   works: several user-written rules do not.

So far we have seen no issues with mixing code compiled with gcc 3.4.5 and 
4.2.1.  There would almost certainly be issues with third-party C++ 
libraries, and might be some with Fortran libraries that use complex 
numbers.

The advantages of using this port include:

- Vista compatibility out of the box.

- ongoing support.  The main MinGW developer is really targetting gcc
   4.3.0, and these compilers are interim releases with patches backported
   from the gcc trunk.

- More complete C99 features: for example C99 inlining will be supported
   in gcc 4.3.0 (and has already been tested using snapshots).

- integrated F9x support.  F9x is supported 'out of the box', and can now
   consider using F9x code in R.

- OMP and threading support.


R 2.5.1 will not build out of the box with these compilers, but R-patched 
will (for suitable settings in MkRules).

-- 
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] Change of compiler for Windows build of R
Prof Brian Ripley