R-beta: R with gnuwin32

Peter Dalgaard BSA p.dalgaard@biostat.ku.dk
15 Mar 1998 21:48:37 +0100


	[I had to hand-approve this mail, since it contains "subscribe" 
	 in the first few lines.  Martin Maechler, list administrator]

1) This is very interesting stuff.

2) But it really belongs on R-devel, not R-help. R-help is for helping
users with installing and using R, not debating its future or
discussing technical issues. Could I ask you to subscribe and then we
move the discussion there? (Don't worry, R-devel is not a very high
volume list.)

guido@sirio.stat.unipd.it writes:

> I have been using R under Linux for more than a year and 
> I think that it is great.
> Last week, I downloaded the binary Ms Windows version. I wanted
> to test it for my students.  Our labs are under Bill Gates.
> I am not happy but I can do nothing.

Same thing here.


> R worked. But, I could not use the dyn.load command
...

> No dyn.load means no additional packages. Since I don't want
> to buy a commercial compiler to support free software, this
> morning I tried to recompile the 0.61.1 distribution with
> egcs.  Now, after more than 10000 grep's to understand
> the differences between the windows sources and the unix ones,
> I have a version of R-0.61.1 under Win95. It works.

I tried essentially the same stunt, but couldn't figure out how to get
the Windows console and graphics going, "Multiple Document Interface"
and all that. In particular, there's trouble with the gnuwin header
files versus the MS Platform SDK used in the sources. Does this mean
that you have a version running just like the "official" one? And
could it run under Win3 too? 

> It seems
> also a little faster than the october binary version 
> (perhaps since I compiled the fortran sources directly
> using g77).

I wouldn't be surprised, although Watcon does some register-passing
tricks, which one would think made it faster, (as well as incompatible
with other C compilers...!)

> But I have some questions:
> (a) The windows sources in R-0.61.1 are not the ones used
> to build the last windows distribution in CRAN. For example,
> the menus are different and also the src/library/base/R/system.win has no
> support for library. Where can I find the new sources?

In the R-snapshot at CRAN (src/devel), I think. The very latest
versions are on Roberts computer...	

> (b) I prepared a Makefile that build the system using the
> directory structure of R-0.61.1 under unix. But I don't known
> the differences between the the 0.61 version and the 0.50.xxx
> for which src/library/base/R/system.win. has been wrote.
> Where can I find a description of the differences?

Hmm. I don't know exactly what you mean here. I don't think that there
is a true writeup documenting any of this.

> (c) Is someone interested in this port? 

Definitely!

If yes, I can make it available.
> I tried to make rebuilding easy. Essentially, you untar a small archive 
> in src/ (essentially the makefiles and the pacthed windows sources). 
> Then
>   make RHOME=??? firstofall
>   make RHOME=??? HAVEG77=[YES,NO] 
>   make RHOME=??? HAVEG77=[YES,NO] packages
> should build and install the system with all the packages in src/library;
>   make RHOME=??? HAVEG77=[YES,NO] pkg-???
> will make the package ???. You need gnu-make+sed+rm+cp+ls.
> ( perhaps also a sh-like shell (I used bash)).
> I have not tried but this should work also with the Cygnus and
> the gcc-mingw32 port of gcc. Indeed, for this reason, I used the
> HAVEG77 flag.

How about the cross-compilers?

> I believe that is not appropriate to make a binary distribution available
> before (i) the base/R/system.win file has been fixed (or at least
> before I, or better, someone else understand, what is going);
> (ii) more testing.

Agreed, but binaries (of R *and* all the packages) will in a
not-so-long perspective be needed for practical people. 

> (d) I tried to recompile the regex library in the src/regex
> directory. But there is no regex.h file. So, I gave up.
>   (d1) Are the source there to let people without regex
>        to build the library? If yes, how?
>        Where can I find the regex.h file for that
>        version of the library which is not the gnu rl one?
>   (d2) Have someone tried to use some free regex library
>        under mingw32? 

Hmm. Does this line in src/regex/WHATSNEW ring a bell? (Not that I
know what I'm talking about, I just use grep...)

you have to build regex.h explicitly by "make h".  The two known bugs


> (e) The last point is a proposal for a medium term project.
> The modifications that I made were necessary to update the
> windows sources to the changes made in the system interface
> (R_ReadConsole, R_WriteConsole,....). Now, the gnuplot people
> has developed a layer between stdio and a windows console
> (a graphics not a ms-dos one). In this way, for example,
> just doing some #undef and some  #define, you can printf
> on the console. They also have a version of readline.
> If we borrow the layer we can hope to use the unix/system.c
> file without changes (or with few changes). And hence,
> it will be easier for the developers to bring the MsWindows
> version update with the main unix one.

This sounds interesting. An alternative that I have been playing with
is to use Tcl/Tk, with a longer term perspective of developing R/Tk
language bindings like in STk (Scheme/Tk). This could have the benefit
of automatic (hah!) *Mac* portability.

Note, BTW, that some substantial changes have been made in the
nonreleased 0.62 version (see aforementioned snapshot) to the parser
and I/O parts, specifically to cater for windowing systems.

-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk)             FAX: (+45) 35327907
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._