R-beta: A new version of R-0.62.3 for Win3.1/Win32s, Win95 and WinNT

Guido Masarotto guido at sirio.stat.unipd.it
Wed Sep 16 14:01:52 CEST 1998

I have just made available on ftp://sirio.stat.unipd.it/pub/R a
new version of R for MsWindows compiled with gcc-mingw32.
Enclosed you can find the README. Since there are many news
(with respect to my previous port, rw0613), please read it.

------------------------ README ----------------------------------------
rw0623b.zip is  a binary distribution of R (based on the last "stable"
version, 0.62.3) for Win3.1/Win32s, Win95 and WinNT. 
rw0623s.zip contains the  sources.

A. News (with respect to rw0613)
(a) I rewrote the console using a portable toolkit (GraphApp, see
http://www.cs.usyd.edu.au/~loki/graphapp). Now, output is buffered
until some input is required. This means that it is faster 
(for a good test, I learned it from Peter Daalgard,
try `ls("package:base")' ). Of course, buffering can be disabled
(you need to disable it ONLY if your command require a lot of time
and you want to look to the output line by line). In addition,
there are some command history support. For a mini help on the new
console, use the help/Console menuitem.

(b) I also rewrote the graphics device using GraphApp. Apart for the redraw
(which seems faster) the GraphApp device is +/- equal to the one that
you find in RJune. With respect to rw0613 the major improvements are:
(i) it is a R0.62.x device,i.e., it supports multiple instances,
resizing, copy,...(look to the dev.xxx functions); (ii) it supports 
plotting math expression; (iii) there is  a new item in the 
menu which let to save the contents of the active device as a gif file;
(ii) arbitrary line patterns in any width are supported.

(c) Now, edit makes use of an external editor (the default one is
notepad),i.e., it works as under Unix. 

(d) date() now works. In addition, proc.time(), and so system.time(..),
works (but don't expect too much, you will get only the elapsed time).

(e) IEEE math (Inf, Nan,..).

(f) I used the GNU regex library (included in rw0623s). Hence all the
code is GPL'ed.

B. The new menubar
The menu bar contains the following item:
 File       Source R Code  -> ask for a filename and then send to the
                              interpreter a source(filename) command.
            Load Image     -> ask for a filename and then send to the
                              interpreter a load(filename) command.
            Save Image     -> ask for a filename and then send to the
                              interpreter a save.image(filename) command.
 Edit       Copy          
	    Copy and Paste
	    Select All
 Misc       Kill current computation
            List objects          -> send to the interpreter a ls() command
	    Remove all objects    -> ask for confirmation and then send to
	                           the interpreter a rm(list=ls()) command
 Graphics   save as Postscript    -> ask for a filename and then send to the
                                     interpreter a dev.print(...) command
            save as gif           -> ask for a filename (extension must be
	                             .gif) and then save the current plot
				     as gif
 Help       Console               -> mini help on the console
            R language            -> ask for a topic and then send to the
	                             interpreter a help(topic) command
            Apropos               -> ask for a topic and then send to the
	                             interpreter a apropos(topic) command
Observe that some of the menu items just send to the interpreter a
command. This means that these items are disabled when the interpreter is
waiting for the completation of a previous command,i..e, when you
have the ''continuation'' prompt. On the other end, under normal editing 
(prompt='>'), since the current line is saved and then restored you can,
for example, type part of a command, ask for some help, and then
complete your command.

C. Printing
To avoid questions: printing is not directly supported (yet).

To print the content of the console you must:
a) select the text;
b) copy it to the clipboard;
c) paste it in some word processor or editor which can print.

To obtain a good copy of your  graphs you can:
a) save it as postscript and then print on a ps printer (or play with
it using gostscript);
b) save it as a gif and then print it using one of the many programs
which support this format (image manipulation programs, word processors,
internet browsers,...).

If you give the focus to a graphic windows, you can also copy it
to the clipboard using the alt+print keys. But this is the standard
Windows command and you will get also the window's decoration.
So this is useful only to get a "draft" copy of the graph.
[however, I find quite effective to open a word processor
in which to paste command, console output and graphs. Indeed this is the way,
I ask my students to work (of course, they must also write comments!)].

D. Installation (binary distribution)
Just unzip the archive. You will get a new directory (rw0623).
The executable is bin/R.exe. 

Observe that since I consider this 
version more experimental than rw0613 (see below), the binary
distribution contains only the standard packages (base,eda,mva
and stepfun). If this version will prove to be useful enough,
I will try to provide binaries for some of the other packages.
[Note: I tried to load in the new executable some of the
dll included in rw0613 and I didn't have any problems.
So, if you want, you can experiment.]

For the same reason, I have included only the standard help files 
(not the html ones; if we want, you can download them from CRAN).

E. Installation (sources)
(a) Preparation
First of all, you have to download and untar the complete sources.
Then, in the directory R-0.62.3, unzip rw0623s.zip.
You will get a new directory (src/gnuwin32) which includes:
1) the windows/graphapp source +
2) a modified version of the GraphApp library (the Windows 2.40 version
+ the console + some functions to rotate bitmaps and text + some
functions to draw patterned lines in any width) +
3) the GNU regex library.

(b) Compilers
I have tested the following compiler:
(a) native compilation using egcs1.02-mingw32;
(b) native compilation using egcs1.1-mingw32;
(c) cross compilation (from a Linux box) using gcc2.8.1+Binutils2.9.1+
    g77-0.5.23 using the 1 July version of mingw32.
The binary distribution has been cross-compiled.

(c) Native compilation
To rebuild the system using egcs-mingw32 go to the src/gnuwin32
directory and type 
> make
This will build the main executable (in R-0.62.3/bin) and
the standard packages: base, eda, mva, stepfun.

(d) Cross-compilation
You should edit the definitions in the file MkRules to reflect your
system. As an example, the file that I use under Linux is provided as
MkRules.cross in rw0623s.zip.

F. Installing other packages
Uncompress the package you want in R-0.62.3/src/library.
Then, from the gnuwin32 directory, 
> make -f MakePkg -C ../library/xxx PKG=xxx [SRC=src] [DLLNAME=yyy]
will try to build the package xxx.
The SRC=xxx option must be used if the source is in another
directory (e.g. if it is in src-c, use SRC=src-c).
The option DLLNAME=yyy must be used if the package requires a
dll with a name different from xxx.dll. For example, the dll
of integrate is adapt.dll.
If you don't need the two flags, you can use the short command
> make pkg-xxx
Special compiler flags must be setted in MakeDll. Look to this file
for some example.
There are no support for generating the help files.
You have to download the pre-formatted one by any CRAN site or
to build them yourself on a Unix machine.

G. Tools
To rebuild the system and to install other packages, you need
not only a compiler but also some Gnu tools. The ones that I used,
coming from DJGPP, are  in djtools.zip.
You must uncompress this file from C:. It will expand
under usr/bin and usr/home.
To use the tools usr/bin must be in the PATH.
In djtools.zip, a version of bash is included.
I am not sure that you need it but I did all my work 
using it. To use bash, the environmental variable HOME
should point to /usr/home. You have to start bash, from Program Manager,
Start Menu or in a MsDos windows, with
> bash -login
If you install djtools.zip, please use the make in usr/bin not
the one of your compiler.

H. Bugs (known) and misc. observations.
(a) As always, the English of this README.
(b) de() doesn't work anymore. If someone needs it, I can try to include
the old one (or try to write a portable version of it using GraphApp).
(c) edit(...) doesn't work properly under Win3.1/Win32s.
(d) system(...) is quite limited (popen under MsWindows is
a nigthmare).
(d) To use this version under Win32s you need a recent version
of Win32s (I have only tested with the last one that can be 
found at ftp://ftp.microsoft.com).
(e) Only the mouse can be used to select the text in the console.

I. Future
This is an experimental release. Since, both the console and the graphic
device are new, I suspect that it is less stable of rw0613.
Until now, it has been rather funny to rewrite the console and the
graphic device. However, the future will depends on the reactions.
If someone think that this version can be useful I (we) can try
to fix the bugs and to improve it. So, I am waiting for comments.
Some obvious and not difficult things to add are:
a) xdr support so that the binary images can be exchanged between
Unix and Windows;
b) use of the keyboard to select text;
c) printing (perhaps not so easy) and support for copying
the graphic window to the clipboard (easy).
d) ....................................................
In addition, since GraphApp is available also under X11, if someone
is interested, I can provide a version of this port for Unix. Indeed,
I develop the console and the graphic device under Linux.

guido masarotto (16/09/1998)
guido at sirio.stat.unipd.it

r-help 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-help-request at stat.math.ethz.ch

More information about the R-help mailing list