[Rd] Progress report on 64-bit builds under Windows

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Mon, 16 Jul 2007 09:48:16 +0100 (BST)


We have been asked for a couple of years about builds of R for 64-bit Windows, e.g. at UserR 2006. Users of 64-bit Windows still seem very thin on the ground, but apparently

   'Microsoft scraps 32-bit operating systems

   Microsoft has announced that Windows Server 2008 will be the last 32-bit    system it releases, for servers or clients, as it makes its way fully    into the world of 64-bit computing.'

(http://www.pcpro.co.uk/news/113114/microsoft-scraps-32bit-operating-systems.html)

I've not heard recently of any programmeR working on such a build.

I have Vista 64 on my current Windows desktop, intending it to be my main Windows platform (the machine also has Windows XP). With the current Rtools.exe I am successfully doing R development on it (e.g. the only CRAN package that I can install under XP but not Vista 64 is RSQLite, an internal problem in dlltool).

A 64-bit version of R could be just a sub-architecture: only the binaries in R_HOME/bin and DLLs in R_HOME/modules and library/*/libs need to be different. So in an ideal world we would be able to distribute binary packages that supported both 32- and 64-bit builds, and to build those on a single OS via 32/64-bit cross-compilers. Quite a number of packages need support software of course: one of those is Tcl/Tk. (That is built using VC++, so presumably could be built using a 64-bit edition of VC++: see below. Similarly iconv.dll.)

  1. The good news is that under Vista 64 you get a 4GB address space for the current builds of R, rather than 2GB for most 32-bit versions of Windows, or 3GB if the /3GB switch was used. So there is a worthwhile gain in using a 64-bit OS even with a 32-bit build of R.
  2. To make a 64-bit build of R we need a 64-bit toolchain. Kai Tietz has been working on versions of gcc and binutils, see

http://www.nabble.com/64-bit-MinGW-on-64-bit-Windows-XP-tf4012895.html

This is essentially a cross-compiler running under Cygwin. I didn't succeed in getting that to build, but did build a cross-compiler chain under x86_64 Linux and built simple C programs that run correctly. This enabled me to try building R. There were several problems:

Given that the toolchain is a one-man effort, I do not see these getting resolved soon.

3) An alternative is to use a non-GNU toolchain, e.g. from Microsoft, Intel or PGI (formerly Portland). There seems no longer to be a Fortran compiler compatible with Microsoft Visual Studio (formerly from DEC/Compaq/HP), but Intel and PGI have Fortran compilers, at a price. Someone from Microsoft reported that he had built a 64-bit version of R, but gave an invalid return address and we have not been able to find out how he did it.

There is a free (but not Free) version of Visual Studio 2005 that is said to be 32-bit only, but I have discovered that the free Vista Platform SDK contains a 64-bit toolchain. (I have full Visual Studio 2005, which has 64-bit and 64-bit on 32-bit and v.v. cross-compilers.) So I believe it should be possible to build a 64-bit version of R using Microsoft compilers and f2c, and may try to do so over the summer.

Is there anyone working on (or interested in working on) these issue?

-- 
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

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Mon 16 Jul 2007 - 09:32:20 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 16 Jul 2007 - 09:36:25 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.