Rev 15965 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
Windows-specific changes to R=============================See the file NEWS for changes that affect all versions of R.rw1040======libR.a is no longer used (except when cross-building) as therecommended compiler can import directly from R.dll.globalvar.h is no longer used: the header files now declare importedvariables.The background colour of a windows() window (outside the deviceregion) is now in the `Application Background' colour of the currentWindows colour scheme. (It used to be LightGrey.)Gamma correction is now applied to the background colour of a graphicswindow. (It has long been applied to the foreground colours.) Usersof LCD screens may want to set something like par(gamma=2) afterlaunching a graphics window.The canvas colour of a windows() window can now be specified. This isnot gamma-corrected, and defaults to "white".savePlot() now supports saving to PDF.memory.limit() can now increase the memory limit of the current session.This will not work if the limit is currently reached!There is support for transparency in the devga device (whichencompasses screen windows, metafiles, printers and the bmp, jpeg andpng devices). The default background color is "transparent" for allbut the bitmap devices: this means that backgrounds are omitted whenplotting to/saving to most devices. The png() device does supporttransparent backgrounds, but this is not accessible through themenus nor the savePlot() function.Building under (repaired) Cygwin -mno-cygwin environments is no longersupported.The console pop-up was checking the wrong item for `Buffered output'.rw1031======Lines with lty > 1 and many pieces were being drawn very slowly onWindows 2000 (but not 98/ME). To work around this, such lines arenow drawn 5000 pieces at a time.The dialog for the `Change dir' item now uses a standard folderselection widget for its Browse button.White backgrounds are now omitted for metafiles (as they are forpostscript, PDF and XFig plots), so white backgounds (the default)appear to be transparent.help.start() now updates the HTML search index (as well as thepackages index) when it is started up. link.html.help() works betterwhen R_LIBS omits the drive, and uses relative links for the mainlibrary, so R installations can be relocated in the file system.The background colour of the GUI preferences editor and theselect.list() popup is now taken from the Windows colour scheme.Rcmd INSTALL now rejects invalid options for --docs (rather thanignoring them), and checks for the R version in the DESCRIPTION fileexactly the same way as Rcmd check (so with fewer spurious messages).Added support for building with the ATLAS optimized BLAS library: on aPII this speeds up La.svd on a 500x500 matrix by about 30%, and themultiplication of two 1000x1000 matrices by about 8x. See INSTALL.The recommended compiler system has been changed, but that recommendedfor 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 installpackages from CRAN or from local zip files, and to update packages.The packages list shown by help.start() now includes all packages inall libraries, but the search index is still confined to the systemlibrary.The installers set up a file association for *.RData files, sodouble-clicking on a *.RData file launches R in that directory andloads the *.RData file. Also, a *.RData file can be dropped onto ashortcut 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, whichis 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 anin-memory dlltool.Rcmd check has been changed to be more robust to reported problemswith Perl's system() command under 16-bit versions of Windows. It nowworks for us under Windows 98. (It has always worked under NT4 and2000.)Rcmd SHLIB no longer adds a version tab to the DLL, as this seemed tocause some people problems under Windows 95/98/ME.The correct file version information should now appear on Windows 2000Version tab under Properties (working around a Windows 2000 bug).rwinst.exe is no longer part of the distribution: use the newerinstallers to install R, and the Packages menu in Rgui.exe to installpre-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.The default internet module modules\internet.dll is built using basicWinSock calls. There is an alternative modules\internet2.dll which usesWinInet calls (and so needs Internet Explorer installed) which can beused as a replacement. (Remove modules\internet.dll and thenrename modules\internet2.dll to modules\internet.dll.)rw1023======Alternative installers based on Inno Setup 2.0.x, either SetupR.exe orminiR* (which fits on four floppies).The location of R_HOME and the version can optionally be recorded inthe Registry (and will be used by the DCOM interface). The Inno Setupinstallers register the installation, and unregister onuninstallation. rwinst.exe has an option to register. Programrw1023\bin\RSetReg.exe will register, and rw1023\bin\RSetReg.exe /Uwill 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 atleast 16Mb, to allow R to start on machines with 8Mb of RAM.link.html.help() has been re-written using connections and so isseveral times faster.Rcmd INSTALL now allows Windows-style paths to a tar file.rproxy.dll is now built for StatConnector version 0.99: earlier versionsare no longer supported.A Windows-specific bug in bitmap() which caused output to appear twicehas been fixed.Rcmd check now stops when package-specific tests fail (not justreports 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 touse `geometric' rather than `cosmetic' pens to achieve scalable linewidths 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 arounda bug in (some versions of) Windows Perl.The datetime code has been modified to work around a problem reportedon a Win98 machine which caused times to be reported in GMT. (Thisseems a bug in a particular version of msvcrt.dll and few machineswere affected.) A side-effect of the changes is that the timezonenames 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, althoughslower than under Rterm, and as they run with no stdin or stdout toinherit what you can do with them is limited. They work better forreading than writing.The installer will no longer crash trying to install addons with along PATH and R_HOME not set. Similarly, Rcmd accepts long paths.Using Rcmd INSTALL with an incorrect path specification ending in \ nolonger runs amok.Internal pager no longer fails when given a file of one line and noline ending.Hyperlinks to other packages in CHTML files launched by help() willnow work irrespective of the working directory (but like HTML, onlyto packages in the same library). The .chm files do need to bere-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 willgive a warning (and will usually also lead to an error, and that maysuppress printing out the warning).There is a new make target test-Reg to run the regression tests (whichnow 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 ata time (although partial lines will now work). For example, don't useprint() but capture the output in a text connection and use somethinglike 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 theviewport 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 areaware), but for best results should be re-compiled. (A few packagesneed to be re-compiled for 1.2.0 on all platforms, and any that usedmalloc directly need to be recompiled on this one.)This release has a number of changes to bring its behaviour closer to thatof Unix versions of R.- The default font for graphics on windows(), win.printer() andwin.metafile() devices is now Arial: the font numbers for theTimes New Roman and Arial families have been interchanged.- The history is only saved when the workspace is (to be compatible withUnix versions of R) and whether it is restored is controlled byoption --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 specifythe 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 ofWindows in use. It means that sorting and comparison of characterstrings will be locale-specific. You may not want this (the sortorder in `English_United Kingdom' is aAbB..., for example) andsetting Sys.setlocale("LC_COLLATE", "C") should give the previousbehaviour. Further, users of Windows 9x/ME should be able to usetheir native character set for the names of R objects (as NT/2000users 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 theenvironment, 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 onWindows it no longer deletes empty directories, but has a newargument recursive=TRUE to delete directories (empty or not).- The startup code looks for .Renviron, a file pointed to byenvironment variable R_ENVIRON and then .Renviron in the homedirectory. This file can contain lines of the forms NAME=valueand NAME=${NAME1-value} to take the value of NAME1 if set (and notempty), otherwise `value'.- make check no longer makes R, just runs the tests (as make testalways 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 printsthe 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 orpager 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. Thehistory limit is now just on the number of lines (rather than on thenumber of lines and the total size). The mechanism has been alteredso that Rterm records repeated lines (as Rgui always did).- There are some additional command-line editing commands in Rgui: seethe Help | Console information screen. (There is also oneaddition, ^W, in Rterm: see README.rterm.)- Selection works slightly differently: if the selection extends beyondthe last character on the line the (invisible) CRLF is made part ofthe selection, but not if only up to the last character is selected.- The data editor is no longer modal (which seems not to have workedproperly in the GraphApp toolkit) and this allows its popups to bemodal.- 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. fromtcltk 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 longerbatch files but accessed through a new front-end Rcmd.exe, so if thisis in your path (otherwise use ...\rw1020\bin\Rcmd) you can useRcmd Rd2dvi.sh [options] filesRcmd Rd2txt fileRcmd Rdconv [options] fileRcmd Rdindex [options] filesRcmd Sd2Rd [options] fileThere are new utilities INSTALL, REMOVE, SHLIB which can be usedto install a source package, remove a package and make a DLL, andimplementations of the Unix R utilities BATCH, build andcheck. Invoke these byRcmd 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 ofWindows.Rterm in interactive use sets the title of the window it is runningin, and unsets it when it terminates.The Windows memory manager proved to be (far) too slow to work withthe new generational garbage collector, so it has been replaced. Thecurrent memory manager rarely releases memory back to Windows (butreuses memory very efficiently) so total memory usage will often growslowly over the course of a session. Memory used for transient largeobjects will normally be returned at garbage collection. (Once memoryusage has gone over the 256Mb of address space that is initiallyreserved, it is unlikely to be reduced much, but the allocated memorywill be reused.) You can compile R to use the Windows memory managerif you need to.New function memory.size() showing the amount of memory currently inuse or the maximum that has been used.New command-line option --max-mem-size to set the maximum memoryallocation: it has a minimum allowed value of 10M. This is intendedto catch attempts to allocate excessive amounts of memory which maycause other processes to run out of resources. The default is thesmaller 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 thisversion. (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 withinthe same package.The windows() graphics device has a new argument `record' to set theinitial state of the recording flag, and this defaults to the settingof the option "graphics.record" (and that defaults to FALSE).The windows() graphics device has new options for what happens when itis 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 thewindows stack (useful from menu actions, ...).If the options setting for a pager or editor (or the editor argumentto edit.default) is a path containing a space, it is automaticallyquoted if not already quoted.The range of allowed text sizes in a windows/win.print device has beenincreased, so smaller values of cex will work. (The smallest allowedtext 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") lineson the windows/win.print device.The installer rwinst.exe when first asked to install a package triesto find a current installation of R, first from R_HOME if set in theenvironment, 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 youwill 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.batSd2Rd.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 thehistory-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 inMkRules (but only 8.31 and 8.32 have been tested).A file Makevars.win in the src directory of a package will be used inpreference 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.cssfrom rw1011\library to each private library directory.Function win.version() should give slightly more information (thelatest 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 Unixone (see ?dataentry: that has itself been considerably enhanced inparallel with the Windows version) with the additional features thatdouble-clicking in a cell turns it into an editable field (entered asa new value by navigating away from the cell), and there is aright-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 commandshistory 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 takenfrom the current Windows colour scheme. (The preferences editor willsave the actual colour, though.)The placement of multiple pagers is now `random' (so they will notalways appear in the exact centre of the screen) and under the MDIinterface the pager rows and columns settings are now used.The postscript() device can now spool plots to a printer. You willneed a suitable program to send a file to the spooler (or even to sendit to ghostscript to interpret PostScript for the printer): the RedMonsuite available from http://www.cs.wisc.edu/~ghost/rjl.html andGhostScript 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 (withan X server and the Cygwin B20.1 environment and X11R6.4 installed) is atftp.franken.de:/pub/win32/develop/gnuwin32/cygwin/porters/Humblet_Pierre_A/B20as xfig-3.2.2-cygwin-b20.1-bin.tar.gz.The R DLL and executables now contain standard Windows versioninformation, which will appear on a Version tab of the Propertiesdialog box in Explorer.The internal unzip and the installer now use unzip5.41, not unzip5.40, andthe 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 filereadme.packages).New makefile target zipdata-% to zip up data directories in packages.If there is a file `Makefile.win' in a package src directory thiswill be used rather than MakePkgs (and the tcltk package providesan example).There is an example package `windlgs' in the package sourcesdistribution that shows how to use graphapp to build dialog boxes tobe called from menus, with a worked example of a t test done in threeways. More details of graphapp, including a tutorial and a referencemanual, are at http://www.cs.usyd.edu.au/~loki/graphapp.Optional support for the Tcl/Tk interface. To use this you need toinstall tcl831.exe from dev.scriptics.com, and you will need the Tcland Tk dlls in your path. Also, you need to set the environmentvariable 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 usewith your own C programs. See src/nmath/standalone/README in thesources.Rdconv.bat no longer depends on having a Unix-compatible `cat' programin your path.A long-standing bug in the (vertical) alignment of symbols in plotmathhas been corrected.Pagers should no longer flash when launched.Launching a pager or data editor or graphics window now brings itto 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.batwhich 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 anenvironment variable (using the form P:/R/rw1001). There is also ashell script Rd2dvi.sh which you can use if you have sh.exe (asused to compile packages) and latex etc. The environment variableXDVI sets the previewer, defaulting to xdvi.bat.A file `Makevars' in the `src' directory of a package can be used toadd 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 buffercould 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 theFPU and so were causing crashes. This has been circumvented in thisversion by restoring the settings before and after each page.Building on a non-default drive should be more reliable, as Perl isused to find the current drive.-------------------------------------------------------------------For changes prior to the release of R 1.0.0 on 29 Feb 2000see the file CHANGES0 in the source distribution.