Release notes for Rserve 0.3-15 and earlier
 
Please read the Documentation page when using Rserve for the first time. You will find the links to the corresponding versions of Rserve on that page as well.

Rserve 0.3-16
Adds support for two additional directives in the config file:
source <file>
eval <R expressions>
The first one allows arbitrary R files to be "sourced" (via source function in R). The second one provides a way to evaluate R expressions. The code is sourced/evaluated after R is initialized, but before Rserve starts serving requests. This can be used to pre-load libraries and data into R. Such data are then instantly available for all clients. Although the same can be achieved using R startup files, it is more feasible in server setting to have the functionality directly in the Rserve config file. The directives are interpreted sequentially. Note that eval does NOT use try block, so an error may cause Rserve to not start up, so use with care!

Rserve 0.3-15
Fixes crash when empty real or boolean vector were passed from R. In the course of the cleanup single-valued real vectors are now transported as XT_ARRAY_DOUBLE - this is more consistent with the R behavior. The handling of real-valued vectors was changed on big-endian machines, such that the endianness-conversion is more efficient and causes no segfault on machines where 8-byte alignment is enforced (like some Sun and HP machines) [thanks to Stefano Visconti for bug report and testing on HP 9000].

Rserve 0.3-14
Includes a new C++ client API and two tiny demos. It can be found in the src/client directory and works both on unix and Windows.
This version automatically enables NO_TCPDELAY socket option - this causes immediate transfer of data to the client and subsequent packets are not combined before delivery. For low-latency connections (i.e. local and fast ethernet) this should speed up communication, especially when multiple requests are necessary. This feature is enabled only on systems that support this option.

Rserve 0.3-13
Fixed a bug which caused inbound I/O data transfer to fail with "invalid parameter" error (ERR_inv_par) on Sun hardware and was related to data alignment.

Rserve 0.3-12
Fixes a small compatibility issue with R-2.0. Previous versions won't compile with R-2.0 as the libR location changed.

Rserve 0.3-11
In conjunction with JRclient release E321 adds support for string array assignments; fixed boolean array parsing bug in the JRclient.

Rserve 0.3-10
Allows the execution of multiple expressions with one eval or voidEval statement. The result of eval is the last executed expression. For example the following example works now: c.eval("a<-rnorm(100); b<-rnorm(100); a/b") In previous versions of Rserve you had to split it into multiple eval commands. The drawback is that it is harder to debug errors, because it's not clear which expression caused the error - the only reliable way is to use Rserve.dbg debug version of Rserve, which reports the execution result of each expression.

Rserve 0.3-9
The package was re-organized, R includes were updated, the building process (especially for Windows) was improved.
maxinbuf is by default 256MB now and can be set to 0 in the config file which means no limit at all.

(Rserve 0.3-7,8 were not officially released; They addressed some compatibility and building issues)

Rserve 0.3-6
Fixed a bug affecting 8-16MB data on Solaris machines.

Rserve 0.3-5
Some minor initialization fixes in the Windows version (modules that need R_Home internal variable set in Windows work now correctly, e.g. the PostScript device).

Rserve 0.3-4
Fixes problems with data between 8MB and 16MB size. Added support for 64-bit data length on 64-bit platforms.

Rserve 0.3-3
Includes bugfixes for large data support. Please update your JRclient as well (this is not required unless you want to use large data). Although this version passed several tests with large data (sending large matrices from Java to R and back), the large data support and Rserve 0.3 series is still considered beta.

Rserve 0.3-2
Minor fixes:
- removed excessive debug output from the non-debug version
- fixed lingering CLOSE_WAIT socket state

Rserve 0.3-1
Bugfix release: fixed bug in 0.3-0 which cause Rserve to freeze when sending expressions with attributes. (This bug was not present in 0.2 versions).

Rserve 0.3-0
This version requires updated clients (reports version 0102), because support for large data (>16MB) was added, which was not present in previous versions of Rserve and the client. Although the protocol is backwards-compatible (i.e. any objects <16MB are sent as before), it is still safer to use more recent clients. This was a major change, therefore this version is considered alpha! Furthermore buffers are resized as needed, CMD_setBufSize is no longer necessary. Especially projects using large data should update to this version. Practical limit for data size (i.e. one result of eval resp. data for assign) is now 2GB. Solaris users should also benefit from a few bugfixes (logical arrays were not alligned correctly).

Rserve 0.2-0
This Rserve version requires updated clients. Make sure you download latest client software. Main features are enhanced compatibility (successfully tested on AIX and Sun Solaris systems) and a fixed major protocol bug (this is why clients have to be updated as well). Windows users can still safely use 0.1 version of Rserve with the latests clients (clients are always backwards-compatible).

Technical details: This Rserve release reports protocol version 0101 which means that old clients (those expecting version 0100) won't be able to connect to this server. Two major protocol changes made it necesary to increase the version number: CMD_eval didn't correctly respond by sending a DT_SEXP header, but instead sent the data directly without any header. Since 0.2 version CMD_eval returns consistently DT_SEXP. Secondly the data stream (especially strings) were not aligned. This caused problems on Sun systems, where integers and doubles must be alligned correspondingly (4/8). Since version 0.2 all parameters must be alligned at least to 4 bytes (due to the current implementation - this may change in the future). Previous Rserve versions did not work on Sun machines, unless the client was modified.

Rserve 0.1-10 was not publicly released. It contained several fixes (partially addressed issues now solved in 0.2) and compatibility patches for AIX.

Rserve 0.1-9 introduces new Rserve-specific command line parameters, additional config files, new config file entries and support for local unix sockets. Furthermore fixed buffers mentioned below are not used anymore. Receive buffer grows automatically to accomodate user's requests. To avoid memory overflows the maximum size can be specified in the config file. Send buffer size can be changed by the client if transport of large data from Rserve to the client is expected.

This version was successfully tested on Mac OS X, Windows and Linux operating systems. (It works also on AIX operating system using minor fixes already commited to the CVS).

Release notes for Rserve 0.1-7
 
Please read the Documentation page when using Rserve for the first time. You will find the links to the corresponding versions of Rserve on that page as well.

The current release of Rserve is still in the alpha stage. It is known to work (tested on Linux, Mac OS X and Windows), but there may be bugs. After solving the send buffer limit mentioned below we plan to move to the beta stage. We appreciate any feedback.

The current version (0.1-7) has following two fixed limits (which should be removed in future versions):

  • Receive buffer size: 512kB
    Any packet exceeding such limit will receive ERR_data_overflow error code (versions 0.1-5 and earlier used 2kB buffer size and sent ERR_inv_par). Potential causes are CMD_set/assign commands with large data.
  • Send buffer size: 2MB (can be changed at compile time by -DsndBS=..., where ... specifies the size in bytes) Any object sent back to the R client may not exceed that size. This limit is not checked atm(!), therefore be careful when sending large data from R to the client. You can either store the object in R and fetch its contents per-partes, or increase the buffer size as necessary. Future versions (0.9xx beta) will use a sequence of multiple smaller packets to transfer large data (similar to the method used for file transfer).

Windows release notes

Since version 0.1-5 Rserve binary packages are available. See Rserve for Windows release notes for details.

Compiling Rserve from sources on Windows OS: Since version 0.1-7 Rserve can be compiled on Windows platforms with Rcmd INSTALL command, like any other source package. This release was successfully tested with R-1.6.2 for Windows.
Please note that Rserve uses several include files from the R sources, which are not installed by the R installer. Those include files are shipped with Rserve in the Rserve/src/include directory. If you have problems compiling Rserve, try to update those include files fromthe lastest R sources. The resulting binary is copied into $RHOME/bin.

Last updated: 10/08/2003