		Windows-specific changes to R
		=============================

See the file NEWS for changes that affect all versions of R.


rw1090
======

Both Rterm and Rgui now give usage information via the --help or -h
command-line flag.

There is now a "Misc|Break to debugger" menu option, enabled 
when a debugger is detected (somewhat fallibly), or infallibly by the
"--debug" command line option.  This will cause a trap to an external
debugger, e.g. for running Rgui under gdb.  If the menu item is
selected when not running under a debugger R is likely to crash.
If the "--debug" option is used, R will break to the debugger during
command line processing, allowing the startup process to be debugged.

Added "stay" argument to bringToTop(), to allow the user to specify
that a window should stay on top of other windows.  Also added "stay
on top" item to the popup menus.  All of these require R to be running
in SDI mode ("Rgui --sdi" or via the settings in file `Rconsole').

Changed windows() so that new windows fit within the MDI client
area.

Added winMenuNames() and winMenuItems() functions to query user menus.

Added menu items for www.r-project.org and CRAN on the help menu. 
(Wishlist PR#6492)

Added "R" command to be similar to Unix invocation of scripts, e.g.
"R CMD INSTALL" is the same as "Rcmd INSTALL".  Rcmd still exists for 
backwards compatibility (and to avoid conflicts over the name `R').
All of R, R CMD and Rcmd now accept --help.

Rcmd Rd2dvi can now be specified as such rather than as Rcmd Rd2dvi.sh.

Added "Paste commands only" to edit and popup menus in the Rgui console.
This allows copying of a block of output, but pasting only the commands
back to the console for re-execution.  (Code contributed by Tony Plate.)


Installation
------------

Parallel make (make -j2, say) can be used, but only usefully on
dual-processor (or perhaps hyperthreaded) hosts with at least 384Mb of
memory.

Installing now sorts in the C locale to ensure that a consistent sort
order is used.  (Some aspects of sorting used to be done in the locale
of the host machine, but Perl and the cygwin-based tools used the
ASCII collation order.)

The long-untested support for making Windows .hlp files has been withdrawn.

There is support for using K. Goto's fast BLAS.  On a 2.6Ghz P4 with
1Gb RAM and A a 1000 x 1000 matrix we had the following timings

	R BLAS	ATLAS	Goto
A %*% A	 3.7	0.65	0.56
svd(A)	16.2	7.77	6.83

Note that using a fast BLAS is much less effective for smaller
matrices as are more common in statistical applications.

Faster assembler code for exponentiation is used.

Cross-building of R itself now works again.  (It had been broken since
1.8.0.)


Building/installing packages
----------------------------

R CMD INSTALL/build/check map path names with spaces in to their short
forms.

R CMD INSTALL now supports versioned install via --with-package-versions.

Installing (binary) package bundles now checks the MD5 sums and
reports success, just as for packages.

Added "* DONE" to the end of INSTALL logs so --install option to CHECK
will work. (This is a repository maintainer option; see 
src/scripts/check.in for docs).


Internal changes
----------------

The fast bmp/png/jpeg code introduced in R 1.8.0 is used even for
256-color displays (as we have now been able to test it on such).

R's internal malloc etc are now remapped to Rm_malloc etc and only
used in allocating memory for R objects, the Wilcoxon tests and a few
other memory-intensive applications.

Improved malloc routines from the current version of Doug Lea's malloc
(as suggested by David Teller) should enable large memory areas to be
used more effectively, in particular those over 2Gb where OS support
has been enabled.  The initially requested memory is no longer
reserved, but as this malloc is able to work with non-contiguous
memory chunks that should not matter.

The installer uses LZMA compression, so Inno Setup >= 4.1.5 is required.

Version 1.2.5 of libpng is now used in binary builds.


Bug fixes
---------

Fixed list.files() to properly handle paths like "C:", etc.

Fixed unlink() to accept empty file list for Unix consistency.

Fixed handling of whitespace in Rd2dvi.sh processing of DESCRIPTION
files.

Fixed handling of "--max-mem-size" syntax error on command line.

In RGui, ^T would not transpose the first and second characters on a
line.  (PR#5593)

Fixed junk character at start of a pipe(). (PR#5053)

R CMD SHLIB was computing dependencies for all C files, not just those
specified on the command line, and building the DLL from all *.o files
in the directory.

The sizes of metafiles in pixels were often coming out one pixel more
than requested, so the background was not quite all painted.  Now we
over-estimate.

Rproxy.dll would cause a crash when transferring large amounts of data.

Workaround for Microsoft's esoteric idea that date-times in 1970 before
1970-01-01 00:00:00 GMT are invalid, so as.POSIXct("1970-01-01
00:00:00") failed in timezones ahead of GMT.

Avoid possible segfault with browseURL() on urls of more than 264 chars
(although these are not guaranteed to work).



rw1081
======

Files in inst/ are installed later in the process of installing a
package (at the request of Ray Brownrigg: the build process was as
documented in `Writing R Extensions').  CVS files will not be installed.

The fast bmp/png/jpeg code introduced in R 1.8.0 is used for saving
from menus (and savePlot()) as well as for the devices.

Lines drawn at the extreme top or right of the device region (e.g. by
box(which="outer")) might have been drawn one pixel too far from the
origin and so perhaps clipped.

In 1.8.0 only, the bottom line of pixels was not copied to the file
for png/jpeg/bmp device plots (as the Windows GDI function used was
incorrectly documented).

File src/nmath/dnt.c was not being built for the standalone Rmath library.

packageStatus() now works under Windows.

Fixed instability under some Windows versions associated with
double buffering of the windows() device. (PR#5173)



rw1080
======

The initial size and position of the MDI frame can be set in Rconsole:
see the comments in .../etc/Rconsole.  The initial position of the
console window and graphics windows can be set in Rconsole and in the
GUI Preferences editor.

The windows() graphics device now has arguments xpos and ypos to set
the initial position, overriding the settings in Rconsole.

The windows() device has a form of double-buffering: the visible plot
is updated only when there has been no plotting for 0.1sec or if the
plot has not been updated for 0.5sec.  This is optional (but on by
default) and the timings can be changed: see ?windows.

The bmp/png/jpeg devices are around 10x faster when used on >8-bit
displays (but use more memory than before).

Rterm reverts to sending warning/error messages to stdout on Windows
95/98/ME.

Rcmd BATCH is now handled in C, and works again on Windows 95/98/ME.

Rcmd now sets the TEXINPUTS environment variable so that LaTeX
macros in share/texmf are available via e.g. "Rcmd latex.exe mydoc".

Calling dev.off() (or ending a session) when a windows() device is
open and recording plots automatically saves the current plot as the
last saved plot.

The windows (etc) devices use the Windows character metrics, which at
least on some systems have non-zero height and depth for space.  This
is now overridden.  (This showed up in the baseline placing for
plotmath expressions containing a space.)

A package's DLL used to be built only if standard source files were
seen.  Now src/Makefile.win is run if present, and if that generates
src/$(DLLNAME).dll the DLL is installed.  (DLLNAME is the package name
unless overridden.)

doc/manual/Makefile.win now has targets for fullrefman.{dvi,pdf}.

Added "Help | Search help..." menu item to Rgui as a front end to
help.search().



Bug fixes
---------

The changes to versioned install had ensured that the currently
installed copy of a package had its MD5 sums checked, not the version
waiting to be installed.  Now the correct version is checked.

The Copy, Paste, Copy&Paste and Kill buttons in the MDI mode failed to
restore focus to the console (see rw1070 RGui changes).

The BioConductor people had stolen the menu item for "Install
package(s) from CRAN..." so it was not being enabled/disabled
properly.

The windows() device was not plotting transparent single lines correctly.

The scrollbars on the data editor work better for very large matrices,
and correctly for more than 65535 columns.

The search for a directory for temporary files now checks that TMP and
TEMP point to actual writeable directories.

PKG_FFLAGS is now used if provided.

bringToTop() tested against the wrong limit for the device list and so
would sometimes not work for high-numbered devices if lower-numbered
devices had been closed.

getwd() returns paths separated by / not \.

rproxy fixed so LAPACK gets loaded properly by (D)COM server.

Fixed installer so share/texmf files are installed with developer option.
(Sweave.sty continues to be installed in main option.)

Fixed MakePkg so that Rd files with missing line ends at EOF are corrected.



rw1071
======

The system() function printed a spurious warning when the input argument
was used.

The File|Change Dir...|Browse dialog could cause R to crash.

Fixed a bug in versioned install of binary package bundles.

Help for max.col was not being found in CHTML help: we have worked around
a bug in HHW.

The maximum allowed `pointsize' for a windows() device has been
increased to 48: some people have much bigger screens these days.

Rcmd BATCH in rw1070 incorrectly required the R::Utils Perl module.

The data editor no longer takes almost all the CPU cycles when running.

Fixed a bug in the data editor display that sometimes led to R failing
to shutdown.

Added some conditional compilation directives to the source so that the
replacement malloc() (see INSTALL) need not be used.

Changed the installer build code so that patch versions are named
rwXXXXpat.exe, development versions are named rwXXXXdev.exe, and
beta versions are named rwXXXXbeta.exe.

Fixed bugs that caused crash when windows were resized repeatedly.(PR#1711)

Changed help to use the 'title' parameter of file.show when displaying
help, for consistency with Unix versions.

Default in installer changed so a normal user installation will
include the source package installation files.

Moved the Sweave style file to the main install group.



rw1070
======

This version of R needs more memory and is slower to start up, because
it loads more packages by default.  This is only likely to be a
concern on machines with 16Mb of memory or less than 300MHz
processors.  For such machines append R_DEFAULT_PACKAGES=ctest to the
command line in the shortcut used to run R, when the memory usage will
be about equal to that of rw1062.

There is a new option to use file("clipboard") to read from or write
to the clipboard.  As most input/output functions in R use file(),
this makes it possible to read data from or write data to the
clipboard in many ways, including direct use of read/writeClipboard().

When using download.file() with the internal method and a proxy, the
user/password combination can be set to prompt the user with a
username/password dialog box, and this will be presented on proxy
authentication failure.

New function choose.files() for interactive multiple file selection.

The output from formatC() uses e+/-0n not e+/-00n for compatibility with
other platforms and with format().

A site-wide environment file R_HOME/etc/Renviron.site (or as set by
the `R_ENVIRON' environment variable) is now implemented on Windows.

The variable .SavedPlots in which plots are stored has been moved from
package:base to the user's workspace.

The warnings about changing the floating point control word are now
optional, selected by options(warn.FPU = TRUE).

The main thread is suspended briefly after Rprof() is called.  This
ensures that the timing thread gets started: on some builds and on
single-CPU machines this was not happening in 1.6.x (although it
did in 1.5.x, so it must be a compiler/runtime version issue).

Installation changes
--------------------

The installers have new options under `Additional tasks' which allow
the creation of Windows Registry entries to be de-selected by the user.

Rcmd.exe and Rprof have been moved to the main distribution (although
to use them you will need perl installed).

Tcl/Tk 8.4.1 is bundled in rw1070.exe.  You can still use your own
installation of Tcl/Tk: see the rw-FAQ.

The Makefiles that build the installers have been reorganized--see
the Maintainers.notes file for details, and INSTALL for new build
instructions.

HTML help changes
-----------------

The format of packages.html has changed, with packages listed by
library tree (as happens on Unix) when there is more than one tree.

The Java-based search index now covers all packages in all current
library trees.

When using help.start() with more than one library tree, an attempt is
made to correct the URLs in non-standard libraries which point to the
R_HOME/doc directory or to the base package.  Once this is done a
stamp `fixedHTMLlinks' is placed in the package directory, and
correction will only be done again if the R installation directory
is changed.

RGui changes
------------

The `Display file' menu item is now `Display file(s)' and allows
multiple file selection.

`Install packages from local zip files' from the `Packages' menu can
now install several files at once (by selecting multiple files in the
file selector).

Removed some calls to reset the size of the console, so it will
stay maximized throughout window operations.

The internal pager will page down with space or CTRL-F and page up
with minus or CTRL-B (key sequences which are widely used in Unix
pagers).  CTRL-A selects all the text.

The Change Directory dialog now starts in the current directory, not
always at the desktop.

RTerm changes
-------------

Rterm is now only regarded as interactive if both stdin and stdout are
a terminal: this overcomes a problem with getline.

System error messages (those which would appear in a dialog box in
Rgui) are written on stderr rather than stdout, as are R warnings and
error mesages.  If you want to capture errors as well as normal output, use
something like

	...\rterm --vanilla <foo.in >foo.out 2>&1

Installing packages
-------------------

Binary packages are retrieved from the bin/windows/contrib/1.7
directory on CRAN, so each new version will have its own set of
compatible packages.  The zip file names now include the version
number, as in mda_0.2-16.zip.

Files in the top-level directory of a source package are no longer
installed automatically: files to be installed must be put in an `inst'
sub-directory (as has long been recommended).  (The `demo' and `exec'
directories are also installed, as before.)

The BLAS library Rblas.dll is no longer automatically linked against
when building a package: as on Unix PKG_LIBS=$(BLAS_LIBS) is required
in Makevars(.win).

MD5 checksums are created on installation from sources (see
?checkMD5sums in package tools), and checked on installation by
install.packages().  If you see mismatches, this may be because files
are left over from an earlier install of the package: try deleting the
whole package directory and re-installing.

There is a new command-line flag --auto-zip to Rcmd INSTALL which
selects whether to zip up the data and/or help directories depending
on their size.  This is mainly for use with Rcmd INSTALL --build to
install and zip-up packages.



rw1062
======

New functions read/writeClipboard() to read from or write to the clipboard.

Hitting the key q (or Q) with an internal pager window in focus will
close the pager.

Source packages with a DESCRIPTION file with an incomplete last line
are now repaired.

Rcmd INSTALL tries to find canonical paths to make the check for
not installing on top of the source more foolprof.

The output when building R or source packages is much quieter.

Warnings are printed if a loaded DLL changes the floating point
control word: see ?dyn.load for the details.

Changed Windows README to README.rw1062, included standard README
and RESOURCES file in binary distribution.

Printing and copying from the menu of a graphics device now preserve
the active graphics device.

Fixed a crash that occurred when an attempt was made to view a file in
the pager but the file could not be opened (e.g. because another
application had it opened with exclusive access).



rw1061
======

Changed titles on help windows so topic name shows when minimized.

Dependencies were not being generated properly in packages using C++.

share/R/firstlib.R was not being included in the binary distribution.



rw1060
======

The installer program name has changed from SetupR.exe to rw1060.exe.

The miniR distribution has grown to eight floppies, and the zip files
are no longer distributed on CRAN.

The default memory limit has been raised to the smaller of 1Gb and the
amount of physical RAM.  (See the changes for rw1040 and rw1020 below.)

Support for bzip-ed connections has been added to the standard distribution.

update.packages() and install.packages() will not try to install a package
that is in use (with an informative warning).

Using HTML help has changed slightly: in particular
help(htmlhelp=TRUE) makes use of the setting of options("browser").

Ctrl-Z in Rgui or Rterm will signal EOF, and so can be used to
terminate a read by readLines() or scan(), for example.

bmp(), png(), jpeg() and win.metafile() devices can plot multiple
pages in separate files.

The preferred compiler is gcc-3.1: gcc-2.95.3 can still be used but
up-to-date header files are needed.

Making packages containing source code automagically makes dependency
information for C and C++ code: this is useful when experimenting with
packages, and especially for the packages which ship with R.



rw1051
======

file.rename() (which is by default used when saving workspaces) now
uses Windows API rather than ISO C functions.  This works around a
reported problem with Windows thinking a file was in use, and on
NT/2000/XP machines makes renaming an atomic operation (rather than
delete followed by move).

Bulding the standalone Rmath.dll was not making the import library
libRmath.a.

We may have been able to track down (to the isprint routine) the cause
of the FAQ Q2.14 about crashes caused by non-ASCII characters, and
hence to circumvent it.

File | Print on the menu of a windows() graphics device was not working.

The binary distribution could not make packages which needed to link
to Rblas.dll.



rw1050
======

There are few new Windows-specific features in this release: it has
been tuned to work better with Windows XP and a number of workarounds
added.


win.print() allows a printer to be specified.

help.start(browser=) is now supported: this may be useful if the
default browser does not support the Java-based search engine.

Very small circles are now forced to be visible: not all Windows
versions would display them.

Transparency in png() is now supported on `High Color' (16-bit) screens.

Changing plot resize type via the menu now works better for the current
plot (which is immediately redrawn).

BLAS support is now in a separate DLL, Rblas.dll.  This means that
packages using BLAS (KernSmooth, Matrix, bqtl, fracdiff, gss,
odesolve, quadprog, quantreg and subselect amongst those on CRAN) need
to be re-built.  The advantage is that less space is taken up overall,
and ATLAS can be used just by rebuilding Rblas.dll.

The installers now use bzip2 compression, so make smaller packages.

Cross-building automatically uses STAMP=NO for packages.

R and packages can now be built in a directory whose path contains
spaces (although we still don't recommend it).

If a package contains a script `configure.win' it will be run at the
start of installation.

Rcmd INSTALL and make pkg-foo test for attempted installation into the
source directory.

All the configuration options are now in file MkRules.

Unzipping is now handled by internal code based on zlib: unzip.dll is
no longer required.

Launching HTML files from the menus was not working with Netscape 6.2.x,
so a workaround has been provided.

Rgui.exe.manifest has been added to get XP-style widgets on Windows XP.

Some logical colour names have been changed to get consistent colour
schemes on Windows XP.

The books in the contents of CHTML for packages were not being sorted
correctly.

The floating-point control setting has been changed to use 64-bit
rather than 53-bit mantissas, which will result in slightly
different but generally more accurate results.



rw1041
======

Updating HTML indices, e.g. in help.start(), is done within a
try() construct.

help.start() has a new argument `update'.

Making packages now warns if there is a configure script.

ga.h was needed for building package `windlgs', but was omitted from the
`source package' code for rw1040.  It is now included.

Rcmd check was failing on Windows 9X, because additions in 1.4.0 were
not using Rsystem().



rw1040
======

If --max-mem-size is given a value greater than 256M, the requested
maximum memory is reserved (but not allocated) initially.  This will
enable the memory to be managed more efficiently, but does increase
the chance that R cannot be started.  There appears to be an effective
limit of about 1700M, at least under Windows 2000.

memory.limit() can now increase the memory limit of the current session.
This will not work if the limit is currently reached!

internet2.dll (see changes for rw1030) must be selected by the
--internet2 flag.

The miniR* distribution has grown to seven floppies, and no attempt is
now made to confine the zip files to floppy-size.

The background colour of a windows() window (outside the device
region) is now in the `Application Background' colour of the current
Windows colour scheme.  (It used to be LightGrey.)

Gamma correction is now applied to the background colour of a graphics
window.  (It has long been applied to the foreground colours.)  Users
of LCD screens may want to set something like gamma=2 when launching a
graphics window.

savePlot() now supports saving to PDF.

There is support for transparency in the devga device (which
encompasses screen windows, metafiles, printers and the bmp, jpeg and
png devices).  The default background colour is "transparent" for all
but the bitmap devices: this means that backgrounds are omitted when
plotting to/saving to most devices, and the colour that is visible is
that of the canvas (see below).  The png() device does support
transparent backgrounds, but this is not accessible through the menus
nor the savePlot() function.

The canvas colour of a windows() window can now be specified.  This is
is gamma-corrected, and defaults to "white".

There is a print method for saved plot histories, and individual
plots can be replayed from the command line by subsetting a
plot history variable.

The menus use `...' to indicate that they lead to a dialog box.

There is a new menu item  `Edit | Data editor...'  to edit (via fix())
R objects, especially data frames and matrices.

The console pop-up was checking the wrong item for `Buffered output'.

Plot histories are saved in a different format: those from earlier
versions of R cannot be played back and will be reported as corrupted.

Installing a package now first removes the data and demo directories
if they exist.

Building under (repaired) Cygwin -mno-cygwin environments is no longer
supported.  You probably do need the compiler system recommended for
rw1031 or later.

globalvar.h is no longer used: the header files now declare imported
variables.  This make it essential to use the R header files rather
than copying entries from them.

A bug in some linkers in linking against ATLAS has been circumvented.
There is now a bigger benefit in using ATLAS: on a PII with a
1000x1000 matrix, svd took 288 sec and La.svd 182 sec (without ATLAS)
and 59 sec (with); eigen took 163 sec and La.eigen 53 sec (without)
and 24 sec (with).



rw1031
======

Lines with lty > 1 and many pieces were being drawn very slowly on
Windows 2000 (but not 98/ME).  To work around this, such lines are
now drawn 5000 pieces at a time.

The dialog for the `Change dir' item now uses a standard folder
selection widget for its Browse button.

White backgrounds are now omitted for metafiles (as they are for
postscript, PDF and XFig plots), so white backgounds (the default)
appear to be transparent.

help.start() now updates the HTML search index (as well as the
packages index) when it is started up.  link.html.help() works better
when R_LIBS omits the drive, and uses relative links for the main
library, so R installations can be relocated in the file system.

The background colour of the GUI preferences editor and the
select.list() popup is now taken from the Windows colour scheme.

Rcmd INSTALL now rejects invalid options for --docs (rather than
ignoring them), and checks for the R version in the DESCRIPTION file
exactly the same way as Rcmd check (so with fewer spurious messages).

Added support for building with the ATLAS optimized BLAS library: on a
PII this speeds up La.svd on a 500x500 matrix by about 30%, and the
multiplication of two 1000x1000 matrices by about 8x. See INSTALL.

The recommended compiler system has been changed, but that recommended
for rw1030 still works.



rw1030
======

SetupR.exe and miniR* now include the nine `recommended' packages,
so the miniR* distribution needs six floppies rather than four.

Rgui has a new menu `Packages' with items to load packages, to install
packages from CRAN or from local zip files, and to update packages.

The packages list shown by help.start() now includes all packages in
all libraries, but the search index is still confined to the system
library.

The installers set up a file association for *.RData files, so
double-clicking on a *.RData file launches R in that directory and
loads the *.RData file.  Also, a *.RData file can be dropped onto a
shortcut to Rgui (or Rterm) on the desktop or in Windows Explorer.

Drag-and-drop of images (.RData and .rda) and source files (.R)
onto the Rgui.exe console window is now supported.

Profiling (as described in `Writing R Extensions') is now available.

There is a new `Save as PDF' option on the graphics device menu.

bringToTop() can specify the console window in Rgui (as -1).

The default graphics device is now windows() only in interactive use:
otherwise it is postscript().  (This affects the DCOM interface, which
is not interactive use.)

Support for earlier (pre-Feb 2000) mingw compilers has been dropped:
you must use a compiler system that supports --shared and has an
in-memory dlltool.

Rcmd check has been changed to be more robust to reported problems
with Perl's system() command under 16-bit versions of Windows.  It now
works for us under Windows 98.  (It has always worked under NT4 and
2000.)

Rcmd SHLIB no longer adds a version tab to the DLL, as this seemed to
cause some people problems under Windows 95/98/ME.

The correct file version information should now appear on Windows 2000
Version tab under Properties (working around a Windows 2000 bug).

rwinst.exe is no longer part of the distribution: use the newer
installers to install R, and the Packages menu in Rgui.exe to install
pre-compiled packages, or use an external unzip program.

The old-style Windows help is no longer part of the standard distribution,
but can be made from the sources.  It is no longer tested.

Make targets such as test-Reg have been moved to directory rw1030\tests.

[ DO NOT DO THIS: see ?download.file or rw1040 above:
The default internet module modules\internet.dll is built using basic
WinSock calls.  There is an alternative modules\internet2.dll which uses
WinInet calls (and so needs Internet Explorer installed) which can be
used as a replacement.  (Remove modules\internet.dll and then
rename modules\internet2.dll to modules\internet.dll.)]



rw1023
======

Alternative installers based on Inno Setup 2.0.x, either SetupR.exe or
miniR* (which fits on four floppies).

The location of R_HOME and the version can optionally be recorded in
the Registry (and will be used by the DCOM interface).  The Inno Setup
installers register the installation, and unregister on
uninstallation.  rwinst.exe has an option to register.  Program
rw1023\bin\RSetReg.exe will register, and rw1023\bin\RSetReg.exe /U
will unregister.

The windows() device no longer rounds width and height to the nearest inch.

You can override the settings Windows reports for pixels per inch
(sometimes it is seriously adrift).  See ?windows.

File `extract-usage' needed for codoc was missing from rw1022sp.zip.

The default memory limit (as reset by --max-mem-size) is set to at
least 16Mb, to allow R to start on machines with 8Mb of RAM.

link.html.help() has been re-written using connections and so is
several times faster.

Rcmd INSTALL now allows Windows-style paths to a tar file.

rproxy.dll is now built for StatConnector version 0.99: earlier versions
are no longer supported.

A Windows-specific bug in bitmap() which caused output to appear twice
has been fixed.

Rcmd check now stops when package-specific tests fail (not just
reports on the console).



rw1022
======

The long-running saga of importing R metafiles into Word is over;
lines are now visible in screen previews in Word.  It was necessary to
use `geometric' rather than `cosmetic' pens to achieve scalable line
widths in metafiles: Word was failing to show lines drawn with
`cosmetic' pens.

bringToTop() now works with MDI child windows as well as SDI windows.

Rcmd build/check use a different check for a directory, to work around
a bug in (some versions of) Windows Perl.

The datetime code has been modified to work around a problem reported
on a Win98 machine which caused times to be reported in GMT.  (This
seems a bug in a particular version of msvcrt.dll and few machines
were affected.)  A side-effect of the changes is that the timezone
names reported are usually more sensible (but sometimes less).

File etc/Makeconf-tests was missing from rw102Xsp.zip.

Rcmd SHLIB now supports compilation from C++ sources.

Rterm now saves and resets the console window title.

On Win2k, system(intern=TRUE) was failing to reset stderr to the console.



rw1021
======

Pipe connections now work under RGui and embedded R.dll, although
slower than under Rterm, and as they run with no stdin or stdout to
inherit what you can do with them is limited.  They work better for
reading than writing.

The installer will no longer crash trying to install addons with a
long PATH and R_HOME not set.  Similarly, Rcmd accepts long paths.

Using Rcmd INSTALL with an incorrect path specification ending in \ no
longer runs amok.

Internal pager no longer fails when given a file of one line and no
line ending.

Hyperlinks to other packages in CHTML files launched by help() will
now work irrespective of the working directory (but like HTML, only
to packages in the same library).  The .chm files do need to be
re-built under this version.

help(, winhelp=TRUE) will now find alias topics as well as main items.

Hitting the total memory allocation limit set by --max-mem-size will
give a warning (and will usually also lead to an error, and that may
suppress printing out the warning).

There is a new make target test-Reg to run the regression tests (which
now do I/0, so might give different results on Windows).

Rcmd build with the latest tar.exe will exclude files as intended.

There are further improvements in the GUI console receiving output
(e.g. from tcltk interactive functions) during input.  If you can,
arrange to send output in a single piece, or at least a whole line at
a time (although partial lines will now work).  For example, don't use
print() but capture the output in a text connection and use something
like cat(paste(outlines, "", collapse="\n)) to output a single string.

The initial rescaling is no longer done for windows(rescale="fixed"),
and the scrollbars in that mode are more responsive but move the
viewport 20 pixels at a time.



rw1020
======

This version has been compiled against msvcrt.dll not crtdll.dll.
This gives small speed increases and generally more accurate results.
Packages compiled against crtdll.dll will still work (as far as we are
aware), but for best results should be re-compiled.  (A few packages
need to be re-compiled for 1.2.0 on all platforms, and any that used
malloc directly need to be recompiled on this one.)


This release has a number of changes to bring its behaviour closer to that
of Unix versions of R.

-   The default font for graphics on windows(), win.printer() and
    win.metafile() devices is now Arial: the font numbers for the
    Times New Roman and Arial families have been interchanged.

-   The history is only saved when the workspace is (to be compatible with
    Unix versions of R) and whether it is restored is controlled by
    option --no-restore-history (implied by --no-restore and --vanilla):
    the default remains to restore.

-   Environment variables R_HISTFILE and R_HISTSIZE can be set to specify
    the name of the commands history file (default .Rhistory)
    and its maximum size (in lines, default 512).

-   More locale support is now enabled where supported by the version of
    Windows in use.  It means that sorting and comparison of character
    strings will be locale-specific.  You may not want this (the sort
    order in `English_United Kingdom' is aAbB..., for example) and
    setting Sys.setlocale("LC_COLLATE", "C") should give the previous
    behaviour.  Further, users of Windows 9x/ME should be able to use
    their native character set for the names of R objects (as NT/2000
    users always have: this is caused by the change to msvcrt.dll).
    (For the benefit of those used to Unix, LC_ALL can be set in the
    environment, although this is not usually supported by Windows,
    and setting individual LC_* such as LC_COLLATE will also work.)

-   It is possible to make DVI and HTML versions of the manuals:
    see file INSTALL in the source distribution.

-   New utility Rcmd.exe to emulate R CMD : see below.

-   unlink() now works the same way on Windows and Unix.  Thus on
    Windows it no longer deletes empty directories, but has a new
    argument recursive=TRUE to delete directories (empty or not).

-   The startup code looks for .Renviron, a file pointed to by
    environment variable R_ENVIRON and then .Renviron in the home
    directory.  This file can contain lines of the forms NAME=value
    and NAME=${NAME1-value} to take the value of NAME1 if set (and not
    empty), otherwise `value'.

-   make check no longer makes R, just runs the tests (as make test
    always has).  Tests are run in the C locale.


Gui changes
-----------

-   There are new console menu items `Load History' on the File menu and
    `Clear console' on the Edit menu. (The current line is not cleared.)

-   The menu items `Load/Save Image' are now called `Load/Save Workspace'.

-   The Print menu item on the File menu of a console or pager now prints
    the selection if there is one, and the whole (saved) contents otherwise.

-   There is a new `Save to File' item on the File menu of a console or
    pager which saves the selection if there is one, and the whole
    (saved) contents otherwise.

-   The Rgui console now uses the same history mechanism as Rterm. The
    history limit is now just on the number of lines (rather than on the
    number of lines and the total size).  The mechanism has been altered
    so that Rterm records repeated lines (as Rgui always did).

-   There are some additional command-line editing commands in Rgui: see
    the Help | Console information screen.  (There is also one
    addition, ^W, in Rterm: see README.rterm.)

-   Selection works slightly differently: if the selection extends beyond
    the last character on the line the (invisible) CRLF is made part of
    the selection, but not if only up to the last character is selected.

-   The data editor is no longer modal (which seems not to have worked
    properly in the GraphApp toolkit) and this allows its popups to be
    modal.

-   The size of the console scroll buffer can be set in file Rconsole,
    and resized (upwards) via the GUI preferences editor.

-   The GUI console copes much better with receiving output (e.g. from
    tcltk interactive functions) during input.



New utilities for preparing packages
------------------------------------

    There are several new utilities in the rw1020sp.zip distribution.

    The utilities Rd2dvi.sh Rd2txt Rdconv Rdindex Sd2Rd are no longer
    batch files but accessed through a new front-end Rcmd.exe, so if this
    is in your path (otherwise use ...\rw1020\bin\Rcmd) you can use

	Rcmd Rd2dvi.sh [options] files
	Rcmd Rd2txt              file
	Rcmd Rdconv    [options] file
	Rcmd Rdindex   [options] files
	Rcmd Sd2Rd     [options] file

    There are new utilities INSTALL, REMOVE, SHLIB which can be used
    to install a source package, remove a package and make a DLL, and
    implementations of the Unix R utilities BATCH, build and
    check. Invoke these by

	Rcmd INSTALL [options] pkgdir(s)
	Rcmd REMOVE  [options] pkg(s)
	Rcmd SHLIB   [options] file(s)
	Rcmd build   [options] pkgdir(s)
	Rcmd check   [options] pkgdir(s)
	Rcmd BATCH   [options] infile [outfile]

    Use option --help with any of these for fuller details.


The default for options("papersize") is set according to the locale,
and so might be set to "letter" under US or Canadian versions of
Windows.

Rterm in interactive use sets the title of the window it is running
in, and unsets it when it terminates.

The Windows memory manager proved to be (far) too slow to work with
the new generational garbage collector, so it has been replaced.  The
current memory manager rarely releases memory back to Windows (but
reuses memory very efficiently) so total memory usage will often grow
slowly over the course of a session.  Memory used for transient large
objects will normally be returned at garbage collection.  (Once memory
usage has gone over the 256Mb of address space that is initially
reserved, it is unlikely to be reduced much, but the allocated memory
will be reused.)  You can compile R to use the Windows memory manager
if you need to.

New function memory.size() showing the amount of memory currently in
use or the maximum that has been used.

New command-line option --max-mem-size to set the maximum memory
allocation: it has a minimum allowed value of 10M.  This is intended
to catch attempts to allocate excessive amounts of memory which may
cause other processes to run out of resources.  The default is the
smaller of the amount of physical RAM in the machine and 256Mb.

DLLs for packages (including standard packages supplied with R)
automatically gain version information when compiled under this
version.  (Use the Version tab on the Properties dialog box to see it,
or the new function DLL.version() within R.)

Windows (.hlp) help files now have hyperlinks to other objects within
the same package.

The windows() graphics device has a new argument `record' to set the
initial state of the recording flag, and this defaults to the setting
of the option "graphics.record" (and that defaults to FALSE).

The windows() graphics device has new options for what happens when it
is resized, which can be set from the command line of from the menu.
See ?windows for details.

New function bringToTop() to bring a graphics window to the top of the
windows stack (useful from menu actions, ...).

If the options setting for a pager or editor (or the editor argument
to edit.default) is a path containing a space, it is automatically
quoted if not already quoted.

The range of allowed text sizes in a windows/win.print device has been
increased, so smaller values of cex will work.  (The smallest allowed
text size is 2pt not 8pt.)

Interactive use of Rterm.exe on Windows 2000 systems is now possible
(including under ESS).

Better rendering of wide (lwd > 1) and dashed (lty != "solid") lines
on the windows/win.print device.

The installer rwinst.exe when first asked to install a package tries
to find a current installation of R, first from R_HOME if set in the
environment, then from the PATH (it looks for ...\rw1020\bin).

make pkgcheck-foo will unzip zipped example files if needed.



rw1011
======

New file README.Rterm providing basic documentation on Rterm.exe.

undoc() is now available under Windows.

There is a new script R_HOME/bin/build.sh, a version of R CMD build.
You will need R_HOME set as an environment variable to use it, and you
will need the full set of tools from tools.zip (see readme.packages)
in your path.

The batch wrappers to Perl files Rdconv.bat Rdindex.bat Rd2txt.bat
Sd2Rd.bat have been revised to work on more Perl/OS versions.

Setting cell widths from the menu in the data editor now works reliably.

Having an empty line at the beginning of .Rhistory no longer breaks the
history-recall mechanism in Rgui.

Characters using the AltGr key now work in interactive use of Rterm.
(AltGr used to work like Alt.)

Ctrl+V now works as described in a pager (pasting to the console).

Other versions of Tcl/Tk may be used by setting TCL_VERSION in
MkRules (but only 8.31 and 8.32 have been tested).

A file Makevars.win in the src directory of a package will be used in
preference to a file Makevars.

The Makefiles for packages now allow C++ code (with extension .cc or
.cpp or .C) in the src directory.

If you use a private library and HTML help, you need to copy R.css
from rw1011\library to each private library directory.

Function win.version() should give slightly more information (the
latest service pack number x.y) on Windows 2000.



rw1010
======

There is now a GUI preferences editor on the Edit menu in Rgui.

A data entry editor is now implemented.  This is similar to the Unix
one (see ?dataentry: that has itself been considerably enhanced in
parallel with the Windows version) with the additional features that
double-clicking in a cell turns it into an editable field (entered as
a new value by navigating away from the cell), and there is a
right-click popup menu.

Rterm will now load and save the commands history (as Rgui does).
There is a new item on the File menu in Rgui to save the commands
history at that point in a session, and a new function savehistory()
(only applicable in Rgui and Rterm).

Colours in Rconsole can be specified as "Windows" and will be taken
from the current Windows colour scheme. (The preferences editor will
save the actual colour, though.)

The placement of multiple pagers is now `random' (so they will not
always appear in the exact centre of the screen) and under the MDI
interface the pager rows and columns settings are now used.

The postscript() device can now spool plots to a printer. You will
need a suitable program to send a file to the spooler (or even to send
it to ghostscript to interpret PostScript for the printer): the RedMon
suite available from http://www.cs.wisc.edu/~ghost/rjl.html and
GhostScript distribution sites should provide suitable tools.  See
?postscript for further details.

The new xfig() device can be used, and a port of xfig to Windows (with
an X server and the Cygwin B20.1 environment and X11R6.4 installed) is at
ftp.franken.de:/pub/win32/develop/gnuwin32/cygwin/porters/Humblet_Pierre_A/B20
as  xfig-3.2.2-cygwin-b20.1-bin.tar.gz.

The R DLL and executables now contain standard Windows version
information, which will appear on a Version tab of the Properties
dialog box in Explorer.

The internal unzip and the installer now use unzip5.41, not unzip5.40, and
the DLL interface is incompatible.

There are changes in the tools needed to build R (see the file INSTALL)
and those recommended for building packages from source (see the file
readme.packages).

New makefile target zipdata-% to zip up data directories in packages.

If there is a file `Makefile.win' in a package src directory this
will be used rather than MakePkgs (and the tcltk package provides
an example).

There is an example package `windlgs' in the package sources
distribution that shows how to use graphapp to build dialog boxes to
be called from menus, with a worked example of a t test done in three
ways.  More details of graphapp, including a tutorial and a reference
manual, are at http://www.cs.usyd.edu.au/~loki/graphapp.

Optional support for the Tcl/Tk interface.  To use this you need to
install tcl831.exe from dev.scriptics.com, and you will need the Tcl
and Tk dlls in your path.  Also, you need to set the environment
variable TCL_LIBRARY, to something like c:/Program Files/Tcl/lib/tcl8.3.
The demos(tk*) will work on Windows.

The R mathematical functions can now be built as a DLL for use
with your own C programs.  See  src/nmath/standalone/README in the
sources.

Rdconv.bat no longer depends on having a Unix-compatible `cat' program
in your path.

A long-standing bug in the (vertical) alignment of symbols in plotmath
has been corrected.

Pagers should no longer flash when launched.

Launching a pager or data editor or graphics window now brings it
to the front, even from Rterm.exe. (Not for Tcl/Tk windows, unfortunately.)

Failure to load a DLL with dyn.load now gives extended error information.



rw1001
======

The installer, rwinst.exe, now checks for ZIP files as well as zip files,
as some browsers manage to map filenames to uppercase.

There are batch files  Rd2txt.bat Rdconv.bat Rdindex.bat Sd2Rd.bat
which are the equivalent of the Unix `R CMD foo' utilities mentioned in
`Writing R Extensions'.  To use these you must have R_HOME set as an
environment variable (using the form P:/R/rw1001).  There is also a
shell script Rd2dvi.sh which you can use if you have sh.exe (as
used to compile packages) and latex etc. The environment variable
XDVI sets the previewer, defaulting to xdvi.bat.

A file `Makevars' in the `src' directory of a package can be used to
add to/override the MakeDll makefile used to make foo.dll, as on Unix.
(See `Creating shared libraries', section 3.4 of `Writing R Extensions'.)

Under rare conditions (lots of very short input lines) the history buffer
could overrun and so cause crashes. This has been possible since rw0623,
but first caused reported problems in rw1000 and has now been fixed.

Certain HP printer drivers (e.g. the 6/6MP-Postscript driver) reset the
FPU and so were causing crashes.  This has been circumvented in this
version by restoring the settings before and after each page.

Building on a non-default drive should be more reliable, as Perl is
used to find the current drive.


    -------------------------------------------------------------------

	For changes prior to the release of R 1.0.0 on 29 Feb 2000
	see the file CHANGES0 in the source distribution.
