CHANGES IN RPY 0.99.2 - 2006-03-24 ---------------------------------- Bug fixes: - Windows binaries in 0.99.1 were built without Numeric support. Corrected for 0.99.2 CHANGES IN RPY 0.99.1 - 2006-03-24 ---------------------------------- New features: - RPy is now available under the terms of the Mozilla Public License (MPL), the GNU Public License (GPL), or the Library or Lesser GNU Public License (LGPL) Bug fixes: - Fix crash on win32 due to omission (was commented out during debugging!) of explicit dll load. CHANGES IN RPY 0.99.0 - 2006-03-15 ---------------------------------- New features: - Dramatically simplify the build process for Win32: The gcc and ld included in MinGW 5.0.2 can now linking directly against DLL's, removing the need for much of the previous complexity. See INSTALL.WINDOWS to see exactly how easy it now is! - It is now possible to use setup.cfg to control various aspects of the build process. 'config.in' contains a template containing all available options and what they do. Bug fixes: - RPy compiled with Numeric support will no longer crash when run with Numeric available. - 1267731: Crash during import when R is missing from the registry - 1247722: Problem using R Wavelets library with RPy - 1428256: RPy does not build on OS X, easy fix - 1432578: Plotting with RPy crashes Python Other: - The rpy.py now communicates RHOME, RVER, RVERSION, RUSER from python to the _rpy module using environment variables. This avoids the need to have duplicate C code to obtain these values, and makes things both more maintainable and more robust. CHANGES IN RPY 0.4.6 - 2005-07-28 --------------------------------- Bug fixes - Some unit tests don't properly restore the default conversion mode, causing following tests to fail. Short term fix: reset the default mode in testall.py before running each test. - Fix bug reported by Wei-Hao Lin: missing import and typo in rpy.py for Win32 - Fix bug reported by Nicolas Lebas: Segfault when accessing R objects via r.. The code was was only properly handling R function objects, and failed for other object types. - setup.py was always overwriting the .c files (used to allow binaries for mulitple R versions to be included in the same package). setup.py now create/overwrite the .c files only if they don't exist or are out of date. This should be the last release for some time. ;^) CHANGES IN RPY 0.4.5 -------------------- New features - Based on changes suggested by Bo Peng (Thanks Bo!), setup.py can now build and install a version of Rpy which will work with multiple versions of R. To use this, set the environment varaible 'RHOMES' to a list of R HOME directories. Look at the file description at the top of setup.py for details. - Improved build instructions for Windows by Bo Peng. Bug fixes - Fixed a install bug on Windows. CHANGES IN RPY 0.4.4 -------------------- New features - Rpy now checks for Numeric at runtime and avoids calling it when it is not present. This allows a single binary library to be used whether or not Numeric is available at runtime, significantly simplyfing creation and distribution of binary packages. - Warning messages from R are now properly displayed at the completion of the offending call. Bug fixes - Compilation on Windows and for R versions below 2.1.0 has been fixed. Unresolved bugs - Reception of a SIGINT signal sometimes causes a segfault. Under Linux, I see about 1 segfault per 100 signals. On Solaris, I'm seeing appriximatley 3 out of 4. Help debuging this issue is most welcome. CHANGES IN RPY 0.4.3 -------------------- New features - R Logical objects (TRUE/FALSE) are now mapped into python Boolean objects. - New conversion mode 'VECTOR_CONVERSION' In R there is no such thing as a straight scalar. All values are vectors, and scalars are simple vectors of length one. In Python, however, there is a representational and conceptual difference between scalars and lists, plus Python's immutable lists (a.k.a. tuples). Thus, An R vector of length one can thus be translated into any of three Python forms : r("as.integer(1)") --> int(1) --> [int(1),] --> (int(1),) It is impossible to tell from the R object itself, which of these is correct. Given that [] and () are almost equivalent, we don't worry about (). But we still must decide between int(1) and [int(1)]. As documented in the Rpy manual, BASIC_CONVERSION, simply assumes that a vector of length one should be translated as scalar, and that vectors with other lengths (including 0) should be translated into Python [] lists. The new 'VECTOR_CONVERSION' mode always returns a python list, regardless of the length of the R vector. EG, with_mode( BASIC_CONVERSION, r.c)(1) --> int(1) with_mode( VECTOR_CONVERSION, r.c)(1) --> [int(1),] - R source headers no longer needed, and are no longer included in the source package (yea!) - Previous versions of rpy have permitted multiple copies of the R interpreter wrapper to be instantiated (via "newR = rpy.R()" ). However R's design imposes a limit of one interpreter per python process. To avoid confusion on this point, attempts to instantiate more than one R interpreter object will now generate RuntimeError exceptions. - On Windows, RPy now always looks at the registry to see where to find the R DLL. This should avoid the nasty popup error message when the DLL isn't on the path. Patch by Peter (maubp@users.sourceforge.net) - The R integer 'NA' value is now accessible as the 'NA' attribute of the Python 'r' object. - The R floating point 'NA' value is now accessible as the 'NAN' attribute of the Python 'r' object. - The build process now creates version-specific shared libraries, and rpy will load the appropriate version specific library. This should help avoid problems arising from version conflicts, it will also make packaging 'universal' binary packages easier. Bug fixes: - Fix build error for R 2.0.0+ on Mac OSX ('darwin') - The R interpreter is now properly shutdown when python exits. This ensures that all temporary directories and files are removed, resolving a long-standing issue. - r.help() now works as expected by users. (Some time ago help() started returning an object that had to be explicitly printed to complete the processing. RPy now special-cases calls to r.help to ensure that this happens properly.) - All unit tests now pass. - Fix compilation error on Win32 due to a change in field names in R-2.1.1 [ 1238226 ] rpymodule.c needs updating for R 2.1.1 or later. Bo Peng identified both the bug and the fix. - Fix error (potential segfault!) when handling conversion of factor objects containing missing values - Fix bug in R.__call__ that could cause problems when the 'r' object is not present. Behind the scenes: - Some work has been done "under the hood" to allow an R interpreter to be shut down and then started up again. This is *not* currently working. CHANGES IN RPY 0.4.2 -------------------- New features: - Add headers to enable building for R 2.1.0. Bug fixes: - Fix build error under gcc 4.X CHANGES IN RPY 0.4.1 -------------------- New features: - Headers for R 2.0.1 are now included, allowing build against R 2.0.1 without additional effort. Bug fixes: - Provide alternative getstatusoutput for Windows, resolving a build issue there. CHANGES IN RPY 0.4.0 -------------------- New features: - More fixes for R 2.0.0 - R header files for R 1.8.0 through R 2.0.0 are now included with rpy. This should make it easier to build. CHANGES IN RPY 0.3.6 -------------------- New features: - Compatible with R 2.0.0 - Better build instructions for Windows - New assistant maintaner: Nitin Jain Bug Fixes: - Fix build issue on Windows, due to a path problem. CHANGES IN RPY 0.3.5 -------------------- New features: - Now compiles cleanly on Mac OS X. - Rename io.py to rpy_io.py to avoid conflict with another python package. - Some bug fixes for windows. The Windows port is still not stable. So exercise caution! CHANGES IN RPy 0.3.4 -------------------- New features: - The path to the R shared library (unix) / DLL (win32) is now included in the compiled shared rpy library/DLL so that the R shared library/DLL will be found even when it is not in the library search path (unix:LD_LIBRARY_PATH, win32:PATH). - Tests now run against the local build rather than the installed build Fixed bugs: - The unit test for the lcall method was incorrect. CHANGES IN RPy 0.3.3 -------------------- Fixed bugs - Removed link error for 'jump_now' with R 1.8.X - Removed redefinition of malloc() - Fixes to unit tests New features - Now works with R 1.8.X - Windows changes integrated into the Unix source tree - Added lcall() method for calling R functions using a list of (name, value) pairs for the parameters. This is works around the python (mis-)feature of using unordered python dictonaries for named parameters, resulting in the loss of order for named parameters. CHANGES IN RPy 0.3.1 -------------------- Fixed bugs - There was several memory leaks due to bad management of Python refcounts. - There was wrong synchronization of the thread running the R event loop and the calls to the R interpreter. - There was a bug with signal handling which caused segfault when 'Ctrl-C' were pressed. - The R event loop shouldn't be run in non-interactive sessions. - The i/o Python callbacks were wrong synchronized with the R event loop thread. New features - Added a rpy_version symbol. CHANGES IN RPy 0.3 ------------------ Fixed bugs - There was a bug in the conversion of factors (when it has duplicate entries). - The R computations were unbreakable, due to the interception of the SIGINT signal. Now, it is working properly; CTRL-C aborts any Python or R evaluation with a KeyboardInterrupt exception. - The input/output of the R interpreter was directed to the C stdin/stdout instead of the Python streams. New features - Added functions to manipulate the R event loop. - Added functions to customize the input and output of the R interpreter (the default is, now, sys.stdin and sys.stdout). Now, RPy works well with IDLE or other IDE's. - The output from the R help command is also customizable. - Added the R boolean objects TRUE and FALSE, as attributes of the Python 'r' object. Documentation - Updated (and a bit expanded) the docs to reflect the changes. Added sections with acknowledgements and known bugs. Distribution - Included a 'setenv.c' for POSIX compliance. - Support for Windows platform. CHANGES IN RPy 0.2 ------------------ Fixed bugs - There were several bugs related to memory and R and Python garbage collectors, which caused Python segfaults. - There was a problem with signals traped by R, which made Python crash when was pressed. - R objects of class 'factor' or 'data.frame' were incorrect converted to Python. - Instances of any class converted to R were treated as sequences and made Python segfault. Conversion - RPy has now a new system for conversion of types from R to Python (see the docs), which includes user defined conversion functions. - The conversion to R types is also customizable. - Some utility functions are added. - When Numeric (NumPy) is available, it is used for the standard conversion between R arrays and Python objects. Documentation - The documentation is converted to texinfo format, updated and enlarged. In particular, better documentation for the compilation procedure and for the location of libraries is included. Distribution - There are now some examples included in the distribution. - Regression tests are also included. CHANGES IN RPy 0.1 ------------------ Initial release