 NEWS/Changelog for Rserve
---------------------------

0.5-3	2009-01-25
    o	fix SET_VECTOR_ELT/SET_STRING_ELT mismatches

    o	set object flag when decoding objects that have
	a "class" attribute (fixes issues with S3 objects that
	were passed from the client to the server).

    o	set S4 bit for pure S4 objects (S4SEXP). No other S4
	objects are supported because there is no way to tell
	that an assembled object is really an S4 object

    o	added string encoding support (where R supports it)
	The string encoding can be set in the configuration file
	(directive "encoding"), on the command line with --RS-encoding
	or within a session by the client command CMD_setEncoding.

	This means that strings are converted to the given encoding
	before being sent to the client and also all strings from the
	client are assumed to come from the given encoding.
	(Previously the strings were always passed as-is with no
	conversion). The currently supported encodings are "native"
	(same as the server session locale), "utf8" and	"latin1". The
	server default is currently "native" for compatibility with
	previous versions (but may change to "utf8" in the future, so
	explicit use of encoding in the config file is advised).

	If a server is used mainly by Java clients, it is advisable to
	set the server encoding to "utf8" since that it the only
	encoding supported by Java clients.

	For efficieny it is still advisable to run Rserve in the same
	locale as the majority of clients to minimize the necessary
	conversions. With diverse clients UTF-8 is the most versatile
	encoding for the server to run in while it can still serve
	latin1 clients as well.


0.5-2	2008-10-17
    o	fix a bug in CMD_readFile and CMD_setBufferSize that
	resulted in invalid buffer sizes (one of the ways to
	trigger the bug was to attempt to read a small number of
	bytes with readFile). Thanks to H. Rehauer for reporting.

    o	ignore attributes if they are not in a LISTSXP - there seem
	to be other uses of the ATTRIB entry in conjunction with
	character hashes in recent R versions. (BR #76)

    o	adapt C++ client to changes in 0.5 (at least to the point
	where the demo1 code works)

    o	add support for XT_VECTOR_EXP in assignments

    o	improve protection for vectors

    o	report "remote" setting in --RS-settings

    o	updates in the REngine Java client, added documentation


0.5-1	2008-07-22
    o	fix build issue with R 2.7.x on Windows

    o	mergefat now works properly and uses cp if there is no lipo
	(this fixes multi-arch issues on Mac OS X and makes sure that
	Rserve/Rserve.dbg are installed even on non-Mac systems)


0.5-0	2008-07-21
    o	added CMD_serEval and CMD_serAssign which are highly efficient
	when talking to R clients as they don't need any intermediate
	buffer. The corresponding R client functions RSeval and
	RSassign have been re-written to use this new API.

    o	deprecate scalar types in the protocol

    o	add more efficient storage for dotted-pair lists
	and symbol names

    o	add support for complex numbers

    o	new Java client: REngine
	it is more flexible than JRclient and it can be used with
	other Java/R engines such as JRI. Also it has a much more
	clean API and better exeption handling.
	- allow NaNs to be passed in raw form to R, i.e. double
	  NAs can be created using
	  Double.longBitsToDouble(0x7ff00000000007a2L)
	  (nice methods for this should follow)

    o	C++ client was moved to src/client/cxx

JRclient:
    o	change the representation of lists to generic
	named vectors (class RList)

    o	change the ways attributes are accessed


0.4-7	2007-01-14
    o	relax DLL versions checking on Windows

    o	added more sophisticated implementation of RSassign
	in R client to support larger data. Nevertheless, due to
	limitations in R, objects must be serializable to
	less than 8MB to be assignable via RSassign.

    o	added more robust error handling in the R client

    o	fixed compilation on systems with custom include dir
	(such as Debian)

    o	JRclient is now part of the Rserve package.
	See clients.txt for details.
	It is not compiled by default (but installed when
	--with-client is specified), because we cannot assume the
	existence of a Java compiler.


0.4-6	2006-11-30
    o	fixed bug in RSeval when handling large objects

    o	minor fix in RSassign

    o	add an endianness hack for Windows in case config.h is not
	included properly


0.4-5	2006-11-29
    o	added --with-server option (by default enabled). When disabled,
	the server itself is not built. When enabled, R must provide R
	shared library, i.e. it must have been compiled with
	--enable-R-shlib.

    o	added --with-client option (by default disabled). When
	enabled, the C/C++ client is built and installed in the
	package. It will be copied in the "client" directory of the
	package and contains all files necessary for building a
	client application.

	This option has no effect on the R client which is always
	built and installed.

    o	Windows version of Rserve now builds and installs both debug
	(Rserve_d.exe) and regular (Rserve.exe) version of Rserve. In
	addition, the Rserve function can now be used to launch Rserve
	even on Windows.

    o	endianness detection now prefers information from the compiler
	macros thus allowing cross-compilation. Use -D_BIG_ENDIAN_ or
	-D_LITTLE_ENDIAN_ to override it if necessary.

    o	allows universal build on Mac OS X

    o	adapt to R_ParseVector interface change in R-devel


0.4-4	2006-11-15
    o	first release on CRAN

    o	added support for RAW type (both in and out)

    o	added rudimentary client support (thanks to David Reiss for
	his contributions) and documentation


Previous major releases:

0.4	2005-08-31
    *	added support for sessions

0.3	2003-10-07
    *	new format for boolean arrays
	last version: 0.3-18 (2005-08-28)

0.2	2003-08-21
    *	support for large objects

0.1 	2002-07-06
    *	first release
