Rev 37744 | Blame | Last modification | View Log | Download | RSS feed
Windows-specific changes to R=============================See the file NEWS for changes that affect all versions of R.R 2.4.0=======The language for menus and messages can be set in the 'Rconsole' file and(for future messages/sessions) from the GUI preferences.R 2.3.0=======There is an error handler for access violations and illegalinstructions, which issues a traceback and error message, then returnsto the top level. This is switched off after 10 uses in a session.Note that such errors can be the result of damage to the code orobjects in memory, so it is advisable to save your work and restart Runless you know exactly what happened.There is a new function choose.dir() to choose a folder (as used for'Change dir...' on the File menu in RGui.)New function shortPathNames() to convert names to DOS-style paths (8+3names and no spaces).Added workaround to Windows graphics devices (windows(),win.metafile(), etc.) to allow callers to choose not to restore thefocus to the console. The interface to this will likely change in afuture release.For compatibility with Unix, the following environment variables arechecked for a writable directory for the R session temporary directory:TMPDIR TMP TEMP R_USER(the last will always succeed). The changes are that TMPDIR is checkedfirst and that the values are checked to be a directory.sprintf() now tries to ensure the output is C99-compliant, with e.g.1.23e+08 not 1.23e+008 as given by MSVCRT.dll.Rterm now responds to Ctrl-C during input (Ctrl-Break always worked).This means ^C is no longer echoed.The minimum value for --max-mem-size is now 32M (rather than 16M).file.info() now supports files bigger than 2Gb (the size was reportedincorrectly before, since Windows' stat call only supports smaller files).The installer executable now has the file version information setappropriately.The DLL version number is now 2.xy.svn_revision.There is now aggressive protection of the setting of the FPU control word: itis reset to 64-bit mantissa and rounding mode before evaluating everyexpression. This should prevent the implicit loading of DLLs changingto 53-bit mantissa, but has a small performance penalty.The file open dialogs now list *.ssc and *.S files in addition to *.qfiles as "S files".readClipboard() and writeClipboard() now support formats other than text.A new function getClipboardFormats() reports on available formats.The Rgui console now supports '\r' in output as a non-destructivereturn to the left margin in the same way as Rterm (it was previouslyignored). Note that copy/cut of overtyped output will not necessarilypick up the visible layer of text.The "Edit|GUI preferences..." dialog now allows Rconsole files to beloaded as well as saved. A new function loadRconsole() has also beenadded.Internationalization--------------------There is no longer a separate 'East Asian' version of R.dll.(Also, msvcp60.dll is no longer used as libmingwex now supplies suitablefunctions.)There is now MBCS support for the line editor in Rterm.exe.(Contributed by Haruki Koyanagi.)On NT-based versions of Windows, Unicode characters are used to drawon the console, pager, editor and windows() family of devices inmulti-byte locales. (This allows the user to select a locale otherthan the one Windows is running in, and with suitable fonts see theintended characters. Menus and dialogs should also work in theselected locale. A Windows quirk means that window titles (whichincludes the legends for the buttons used in the Preferences dialogbox) use a font in the system locale.Added a few mappings from Windows locale names (e.g. "chinese", "chs","cht", "ptb", "spanish", "esp", "esm", "esn") to language names.There is still scope for confusion: LC_ALL=es is Estonian, andLANGUAGE=es is Spanish.Spanish (as used in Spain) has been added to the list of installationlanguages.Installing packages-------------------R CMD INSTALL will now clean up after interruption (by ctrl-C, atleast where supported by the shell).R CMD INSTALL --docs now has more options.Links to package 'methods' are now fixed up, and R CMD INSTALL nolonger reports as missing links to 'datasets' and 'grDevices' whichwould be fixed up.There is now support for compiling Fortran 90/95 code in packages: see'Writing R Extensions'.Packages can now supply export files pkgname/src/pkgname-win.def:package 'stats' does so.The restriction on the numnber of dots in a package name (whichstemmed from an undocumented restriction in ld.exe) has been workedaround.C-level changes---------------This version of R expects a complete double-complex BLAS to beavailable, and so customized (e.g. ATLAS and ACML) versions ofRblas.dll need to be rebuilt. (The pre-compiled ones available onCRAN have been updated.)The ACML optimized BLAS can be used for LAPACK: see the 'RInstallation and Administration Manual'.Since the Goto BLAS is no longer available for Windows, support for ithas been withdrawn.The assembler exponentiation code has been updated to that from glibc 2.3.6.The import libraries libR.a, libRblas.a, libRlapack.a and libproxy.aare no longer used, as we now link directly to the corresponding DLL(except that a local version of libRblas.a is needed to build R.dll,since R.dll and Rblas.dll are mutually dependent).Import libraries are now made by default without -k (--kill-at). Thismight be relevant for contributed software using R's macros.The default optimization level for code in R (but not packages) hasbeen changed from -O2 to -O3, since space taken by compiled code is nolonger much of an issue. This will result is a small performanceincrease.When making DLLs, the objects are no longer wrapped in an archive enroute (this was needed to avoid line-length limits on an earlier shell).When making standalone Rmath, the static library is now libRmath.a and theimport library is called libRmath.dll.a.Bug fixes---------iconv() was not always getting the current charset ("") right,especially if the locale was set in a running R session.gzfile() now always ensures that the underlying file is opened inbinary mode (this is only an issue on Windows). This solves someproblems with reading compressed data files via gzfile().winMenuAdd() now has no limits on the number of menus or items, andnames are now limited to 500 (not 50) bytes.Several fixes to Rproxy have been submitted by Thomas Baier, so ithandles more types of objects.Outputting \b in Rgui deleted the last byte and not the last character.R 2.2.1 patched===============Opening any window (pager/editor/windows() device) was resetting theLC_CTYPE in the locale to the system default.formatC() sometimes gave spurious leading spaces on Windows (PR#8337).Workaround in unlink() for a Windows-run-time problem with deletingdirectories with leading spaces in the name.tempdir() and tempfile() use all backslashes again (2.2.1 did not).When a graphics window was double-buffered, it would update toofrequently while waiting for input, overloading some remote displayutilities.R 2.2.1=======Using the latest binutils allows us to distribute RGui.exe and Rterm.exeas large-address-aware (see the rw-FAQ Q2.9).The maximum C stack size for RGui.exe and Rterm.exe has been increasedto 10Mb (from 2Mb); this is comparable with the default on Linux systemsand may allow some larger programs to run without crashes.Overwrite mode in the console now works for MBCS charsets. (Patchcontributed by Haruki Koyanagi.)Input from the RGui console was changing the letter 255 (ΓΏ in Latin-2)in the character set to letter 1.R CMD REMOVE in 2.2.0 removed the package(s) but failed to remake theindices.The windows() family of devices did not find the right character widthin MBCS locales for non-ASCII characters. (Pointed out by Ei-jiNakama.)The installer was missing doc/html/index.html.Windows was sometimes incorrectly labelling times on BST as on GMT,e.g. "1972-07-01 01:00:00 GMT Standard Time".Closing the script editor could leave Rgui in an unstable state. (PR#8288)Support has been added for the ACML optimized BLAS: see the 'RInstallation and Administration Manual'.winMenuAdd() had a limit of 16 additional menus but only allocated 10:it now has the limit of 16 as intended.Clicking on the left part of the MDI radiobutton in the preferencesdialog failed.A different algorithm is used to find the R session temporarydirectory, one that is more likely to succeed.For compatibility with Unix, tempfile() names have a random hex suffix(and not a decimal one), and there are many more values to choose from.R 2.2.0=======The installer will be called R-2.2.0-win32.exe and by default installinto (the local equivalent of) C:/Program Files/R/R-2.2.0. The'rw2010' notation has been dropped.file:// URLs are now interpreted by download.file(), download.packages()and url() in the same way as Mozilla-based browsers. That is, theexpected form isfile:///d:/path/to/filewith *three* slashes.library.dynam() temporarily adds the <package>/libs dir to the path sothat dependent DLLs can be put there and found with no further action.The (D)COM support has been updated, and header files and an importlibrary (src/gnuwin32/librproxy.a) are now installed. See the rcompackage for usage.There are now Brazilian Portuguese, Chinese (Traditional) andRussian translations of the RGui menus.win.graph(), x11() and X11() now behave in the same way as windows()in respect of the xpinch, ypinch, graphics.record, gamma andwindowsBuffered options.savePlot() now allows extensions '.emf' and '.eps'.The script editor menu no longer has an option to exit R (as the pagerand graphics menus do not).Installation is now available in Finnish.install.packages() now detect members of a bundle which are in useand so skips the bundle (as it does for packages).MiKTeX is now recognised and the command-line set suitably for it.If the user chooses to register R during installation, a registry entryHKEY_LOCAL_MACHINE\Software\R-core\R\{version}\InstallPath will be added.Users require administrative privileges to create this key. For others,the same key will be put under the HKEY_CURRENT_USER root.The sample R_HOME/etc/Rprofile file has been renamed to Rprofile.site(the documented name for such a file for some years).mingw-runtime-3.8 is now required to build R (as it contains expm1).R 2.1.1 patched===============The progress bar was being left behind when a download was aborted.(PR#7964). In addition, it now retains its position from one downloadto the next, rather than always moving back to the center of the screen.Added workaround in Sys.timezone() for Windows' confusion over the GMTtimezone.Windows was sometimes leaving behind temporary files associated withanonymous file() connections - we now try to clean up after it.The default type of file for saving a script was not being set by thecontributed C code for the script editor, so it reverted to the typeof the last file dialog (PR#8018).formatC() with an exponential format sometimes did not line the fieldsup correctly.The 'Open Script' button shown from the pager toolbar in MDI mode wasset up incorrectly and liable to crash R. (PR#8060)seek(origin = "end") was repositioning to the wrong location. (PR#7896)R 2.1.1=======The installer allows a choice of languages. Note that uninstallationwill happen in the language chosen for installation.A menu item has been added for RSiteSearch().localeToCharset() was failing on some unknown (to the maintainers)locales such asLC_CTYPE=Chinese_People's Republic of China.936and that affected example().Translation of the filters in file load/save dialog spaces was beinghandled incorrectly by gettext, and is now not attempted.Attempting to plot repeatedly to the same metafile sometimes crashedR. (PR#7821: it is unclear why Windows does not allow this.)Using the mouse scroll wheel in the data editor sometimes causedit to scroll out of range and crash or display garbage.The support for mitred lines encountered a Windows problem with adramatic slowdown if more than 1000 or so segments were plotted in apolyline. We now plot in bunches of 1000, which is less accurate butworks around the Windows problem.There is a workaround for the Windows-specific problems thatSys.putenv(TZ="GMT") was not recognized by the OS and that Windowsbelieves that there is such a thing as "GMT Standard Time".Inno Setup >= 5.1.2 is now required to build the installer.For some operations on windows() and related devices the first textdrawn could be improperly sized. (PR#7860).R would crash when ESC was pressed during locator(). (PR#7873).seek() was not always reporting the correct position on files > 2Gb. (PR#7879)R 2.1.0=======There is no longer a miniR distribution.Support for seek() on > 2Gb files has been added.You will be asked to select a CRAN mirror when downloading/updatingpackages unless options("repos") has already been set in your session,e.g. in your .Rprofile file or from the 'Select CRAN mirror' menuitem. (In batch use, not having set a mirror will lead to an error.)BDR's supplementary collection is now included in the defaultoptions("repos"): if you want to include it explicitly set something likeoptions(repos=c(some_cran_mirror, http://www.stats.ox.ac.uk/pub/RWin"))There is a new item on the Packages menu to set repositories, e.g.CRAN, Bioconductor, Omegahat. You can modify the list (and itsdefaults): see the rw-FAQ Q2.9. This supersedes the menu items forBioconductor.The new (in R 2.0.0) graphics pars "lend", "ljoin" and "lmitre" arenow implemented for the Windows devices.`Writing R Extensions' now documents how to interface a front-enddirectly to R.dll, and there are some new convenience functions forsuch front-ends.R CMD / Rcmd now set HOME if unset, e.g. for use in Rcmd check.The installer now offers the option (by default unchecked) of a `quicklaunch icon" for R.par(ask = TRUE) now takes input from the graphics window, rather thanfrom the console.Rcmd REMOVE works more similarly to Unix, setting the default libraryfrom R_LIBS if the latter is set.install.packages() can install source packages as well as binary ones.shQuote() now defaults to type="cmd" on Windows.R can now be built with Unicode support on Win9x and WinME. Seesrc/gnuwin32/MkRules: this is currently experimental and not neededfor standard builds.R can now be built with support for multibyte and variable-widthcharacter sets, e.g. for Japanese. See README.rw????. The standardinstaller includes both single-byte and multi-byte builds.select.list() now looks up the current font size and chooses itswindow size based on that. It allows multiple preselections ifmultiple=TRUE.The instructions for compiling packages from source and forcompiling R itself have been moved to the R Installation andAdministration manual; the PDF copy of that manual has been addedto the Rgui Help | Manuals menu list.The way the command history works has been changed to be more likereadline. All the commands used in a session are kept, but only thelast R_HISTSIZE (default 512) lines are saved. The environment variableR_HISTSIZE can be changed during the session (by Sys.putenv) as thecurrent value is used.The font list in the Preferences screen has been expanded to include fontsused in `East Asian' terminals.A bug with font changing in Preferences introduced with the scripteditor in R 2.0.0 had been fixed. This should fix PR#7271,7277,7749.Line widths on windows() devices (including win.print()) are nowinterpreted as multiples of 1/96" (or the pixel size if it is larger,as it may be for a screen device). This follows the postscript() andpdf() drivers. It is now possible to set lwd < 1 provided thiscorresponds to lines of at least one pixel width.R 2.0.1 patched===============We work around reported bugs in Windows XP as to which characters areprintable by attempting to print all non-control characters when usingprint().There are now facilities (documented in file src/gnuwin32/INSTALL) toadd packages when building the R installer, and to rebuild acustomized installer from the existing binary distribution.Tcl/Tk could crash Rgui during shutdown by trying to print an errormessage after the console had been shut down. Such messages are nowredirected to message boxes.bug.report() failed to open the internal editor. We have changed itto use file.edit() to edit the report, with the consequence that thereis no longer a "wait" parameter.R 2.0.1=======There is a new menu item to set a CRAN mirror.Bug fixes---------jpeg(), png() and bmp() were not handling background colours properly.It seems that on some systems (but not the maintainers') Mozilla 1.7.3requires \ not / in filepaths, so help(topic, htmlhelp=TRUE) now uses\. (PR#7269) Hopefully no system requires / not \ !Changes to help() meant that help(topic, chmhelp=TRUE) was no longerworking if `topic' was an alias. (PR#7269)Recent changes caused (D)COM to sometimes go into infinite loops.Any change in the GUI preferences via the dialog box changed font(even if to the same font as before). This is causing problems in MDImode with toolbars (PR#7277), where real font changes are not workingproperly.Control keys in Tcl/Tk windows were not handled properly; Tcl/Tkinteracted badly with Rgui in other ways as well.R CMD SHLIB gave spurious error messages for inputs like all.f and all.c.`make recommended' was not consulting the setting of WINHELP or HELP,so failed if HHW was not installed.We have increased the chances that installing a source package froman explicit path with spaces in will work, so e.g.R CMD INSTALL "/Documents and Settings/myname/Source Files/mypkg"will probably work -- it is still not recommended. You can alsoget away with backslashes here, but forward slashes are safer.select.list(preselect=) was not working. (PR#7328)The graphics recording mechanism windows(record = TRUE) could cause memorycorruption.-------------------------------------------------------------------For changes prior to the release of R 2.0.0 on 4 Oct 2004see the files CHANGES0 and CHANGES1 in the source distribution.