 NEWS/ChangeLog for multicore
------------------------------

0.1-7	2011-09-07
    o	fix a bug introduced in 0.1-6 error checking for
	non-pre-scheduled jobs


0.1-6	2011-09-02
    o	mclapply() will issue a warning if any of the results is of
	the class "try-error". For prescheduled calls the warning will
	include the index of the core(s) that failed - to facilitate
	debugging of the user code.

    o	minor performance improvements were made by creating results
	lists in C code and by resolving all native routines at load
	time.

    o	bugfix: errors in prescheduled mclapply could result in
	incorrectly returned objects

    o	bugfix: parallel() treated raw vector results as the result of
	serialized objects - thus arbitrary raw vectors were not alowed.
	(Thanks to Jeroen Ooms for reporting)


0.1-5	2011-03-09
    o	fix an issue in mclapply() and mc.prechedule = FALSE when NULL
	results are involved (thanks to Ralf Tautenhahn for reporting)


0.1-4	2011-02-11
    o	added (experimental) support for Windows
	Note: it (sort of) works on Windows 2k and XP only. Vista and
	Windows 7 is not supported due to changes to the kernel. Since
	Vista it becomes increasingly unlikely that multicore will be
	possible on Windows in general.

    o	added cores detection for FreeBSD (thanks to Gunnar Schaefer)

    o	added pvec() function which splits up the call of a vectorized
	map function across cores and re-combines them. It is useful
	for computation on large vectors.

    o	added mc.cleanup argument (by default TRUE) which terminates
	child processes in the case of user interrupt (or error) in
	the master process.

    o	children() allows to check the status of a subset of active
	processes using the select argument.

    o	multicore now attempts to automatically disable event loop
	processing on Mac OS X in forked children. For Quartz
	Cocoa event loop this requires R 2.12.2 or higher.
	This allows the use of multicore in R for Mac GUI.


0.1-3	2009-02-02
    o	simplify the internal management of child processes and
	consequently remove bugs that lead to poor feeding of cores
	in mclapply() when no precheduling was used


0.1-2	2009-01-09
    o	added mc.preschedule parameter to mclappy() which (if FALSE)
	allows on-demand distribution of FUN calls across cores.

    o	added "silent" parmeter to parallel() and mclapply()
	suppressing output on stdout in child processes

    o	added internal functions closeStdout(), closeStrerr(),
	closeFD(), closeAll(), isChild(), childrenDescriptors() and
	masterDescriptor()

    o	selectChildren() implicitly checks for and removes zombies

    o	removed spurious debugging output in mclapply()

    o	fixed cases in which mclapply() would not preserve names

    o	fixed child list management

    o	in order to make sure that children cannot die before the
	master can collect results, children will specifically wait
	for the master to allow them to exit (SIGUSR1 is used for this
	purpose, so don't use it directly unless you want a child to
	exit even if the master didn't release it).


0.1-1	2009-01-03
    o	added name parameter to parallel(), accordingly collect()
	names the results if the job name is present

    o	bug fix: collect() returned early if no jobs responded for a
	while

    o	bug fix: internal list of children could get corrupted when a
	child was removed (all preceding children were removed as well)

    o	added better debugging support. Set PKG_CFLAGS=-DMC_DEBUG to
	enable debugging output on stdout (it is purposefully not sent
	to the R console to prevent output processing issues in child
	processes)


0.1-0	2009-01-02
    o	initial release
