2025-04-12: Ver. 0.5-3
  * Remove bashism in configure.ac and configure.

2024-09-15: Ver. 0.5-2
  * Fix non-API call to R: 'Rf_isValidString'.
  * Remove all "Rf_*".

2023-10-03: Ver. 0.5-1
  * Fix warnings related to gcc-13 and lang-13.

2023-09-09: Ver. 0.5-0
  * Alter system environment variables "TMPDIR" to where R tempdir() is
    such as "Rtmp..." since newer OpenMPI dumps some temporary directories and
    files to "TMPDIR" (or "-mca orte_tmpdir_base") when it runs.
  * Add ".pbd_env$MPI.TYPE" in the initial function .mpiopt_init() to export
    the "mpi.type" with default "OPENMPIxi"'.

2023-09-03: Ver. 0.5-0
  * Remove meta data from man.
  * Put vignette pdf back.
  * Modify CITATION.

2023-08-31: Ver. 0.5-0
  * Managed RNG streams now use comm.set.seed() and comm.set.stream() for 
    resource-independent (rank and core) guaranteed reproducibility
  * Added capability in comm.chunk() can set up managed RNG streams
  * Unmanaged RNG now defaults to R/base: likely different streams but not
    guaranteed
  * Imports L'Ecuyer-CMRG from `parallel` package instead of `rlecuyer`
  * demo/seed.r replaced with demo/seed_rank.r and demo/seed_vec.r
  * Various documentation updates

2022-11-20: Ver. 0.4-7
  * Some doc and minor code changes.

2022-08-06: Ver. 0.4-6
  * comm.chunk() function added for more data chunking options.
  * Replace class() with inherits() for "try-error".
  * Modify "appveyor.yml".
  * Fix "strict-prototype" warnings.

2022-03-10: Ver. 0.4-6
  * Fixed "info" interaction with slurm functions on some HPC systems.
  * Rename global variables by adding "global_spmd_" to variables that
    may be potentially affected.

2022-03-07: Ver. 0.4-5
  * Initialize/free some fake info and avoid MPI_INFO_NULL.

2021-11-05: Ver. 0.4-4
  * Update autoconf to 2.71.

2020-01-26: Ver. 0.4-3
  * Change "execmpi()" to finalize current mpi first.

2019-12-01: Ver. 0.4-2
  * Fix multiple definition warnings due to "-fno-common" as default in gcc-10.

2019-11-21: Ver. 0.4-1
  * Remove "00LOCK-pbdMPI/00new/" from Makeconf generated by Makevars.win for
    64bit MS-MPI library only.

2019-11-17: Ver. 0.4-0
  * Fix `isend()` by adding `spmd.check.type.send()` which is needed
    by `recv()` for handshaking.

2019-05-07: Ver. 0.4-0
  * Fix check type for send/recv long vectors.

2019-04-07: Ver. 0.4-0
  * Add "inst/mpi_valgrind" for checking and comparing memory lost, etc.

2019-02-23: Ver. 0.3-9
  * Add IBM MPI support for Summit supercomputer.

2019-01-20: Ver. 0.3-9
  * Migrate float32 class to float package via import in NAMESPACE.
  * Export `get.conf()`, `get.lib()`, and `get.sysenv()`.

2018-09-21: Ver. 0.3-9
  * Adjust "get.mpi.comm.ptr()" and "addr.mpi.comm.ptr()" and their C codes.
  * Add a test example "inst/tests/mpi_comm_ptr.r".

2018-08-22: Ver. 0.3-9
  * Fix examples and add man helps for the new "send()" and "recv()".

2018-08-21: Ver. 0.3-9
  * Add more "check.type()" for flexible "send()" and "recv()".
  * Change examples in "inst/" to force "check.type" as FALSE wherever
    "send/recv" and "isend/irecv" are involved.

2018-08-12: Ver. 0.3-9
  * Add "get.mpi.comm.ptr()" and "addr.mpi.comm.ptr()" to get MPI_COMM pointers.
  * Add C combine R example in "inst/".
  * Add more flexible "send()" and "recv()".

2018-08-03: Ver. 0.3-8
  * Fedora28 use "module load mpi/openmpi-x86_64" to obtain mpiexec.
  * Roll back partially to Ver. 0.3-6 because pkg-config may give linking order
    differently that may trigger some dynamic loading problems.

2018-07-29: Ver. 0.3-7
  * Add "pkg-config" to "configure.ac".
  * Check "OpenMPI" and "MPICH2" with "pkg-config".

2018-05-18: Ver. 0.3-6
  * Move "rlecuyer" to Imports.

2018-04-30: Ver. 0.3-6
  * Change some problems related UTF-8, latin1 TeX inputs, especially for
    TeXLive 2018.

2018-02-25: Ver. 0.3-5
  * Fix execmpi().
  * system(wait = FALSE) doesn't work with MPI correctly in Unix-alike systems.
  * Execute MPI in background and dump the results to the log file.
  * Read the results back in from the log file when the job is complete.
  * Windows system can not do the background job, but wait = TRUE is fine.

2018-02-17: Ver. 0.3-5
  * Add execmpi().

2017-12-12: Ver. 0.3-4
  * Added comm.localrank().

2017-12-02: Ver. 0.3-4
  * Fix a "spmd.gatherv_array()" bug.

2017-11-16: Ver. 0.3-4
  * Added "spmd.allreduce.float()" and "spmd.reduce.float()".

2017-09-24: Ver. 0.3-4
  * Fix man help regarding "task.pull()".

2017-07-04: Ver. 0.3-4
  * Fix a finalize bug in "spmd.finalize()" C code.

2016-12-17: Ver. 0.3-3
  * Change web address.

2016-10-08: Ver. 0.3-3
  * Add .travis.yml.

2016-09-25: Ver. 0.3-3
  * Change to "https://cran.r-project.org/...".

2016-07-17: Ver. 0.3-3
  * Improve Makevars.win for both MS-MPI HPC package and SDK package.

2016-07-14: Ver. 0.3-2
  * Use Rtools34.
  * Use MS-MPI v7.1.12437 published on 06/22/2016.

2016-01-27: Ver. 0.3-2
  * Drop initialization of .pbd_env.
  * Migrate to R-3.3.* and R-3.4.*.
  * Use Rtools33.

2015-12-30: Ver. 0.3-1
  * Drop pbdCS temporarily.

2015-12-19: Ver. 0.3-1
  * Add pbd_opt().

2015-11-03: Ver. 0.3-0
  * Simplify global options.

2015-10-24: Ver. 0.3-0
  * Change to common environment, but this will create masking, overwritting,
    and texting problems when other pbdR pacakges are loading.
  * Change again to .pbd_env, .mpiopt_set(), .mpiopt_get(), and
    .mpiopt_init() with huge options rewritting.

2015-10-22: Ver. 0.3-0
  * Fix comm.set.seed problem.

2015-10-17: Ver. 0.3-0
  * Drop "data/envir.r".

2015-09-05: Ver. 0.3-0
  * Check with ZMQ and CS.
  * Rename global Env again.

2015-08-30: Ver. 0.3-0
  * Reversion to 0.3.
  * Change option controlling method. Move from data to new.env.

2015-08-16: Ver. 0.2-6
  * Add barrier to task.pull, pbdLapply, pbdSapply, and pbdApply.

2015-08-10: Ver. 0.2-6
  * Add alltoall and alltoallv, example, manual.

2015-07-21: Ver. 0.2-6
  * Modify Description.
  * Hide spmd_comm_spawn if MPI2 is not defined (needed for impi).

2015-07-03: Ver. 0.2-6
  * Check autoloaded MPI symbol for  mac.
  * Change NAMESPACE for --as-cran.
  * Change zzz.r.in for dyn.load() using local=FALSE.

2015-05-30: Ver. 0.2-6
  * Register comm.sort in S3method.
  * Modify Description.

2014-03-20: Ver. 0.2-6
  * Add bcast message.

2014-12-07: Ver. 0.2-6
  * Merge R_CallMethodDef for speeding up dynload problems.

2014-10-19: Ver. 0.2-6
  * Add is.finalized() for the CS problem.

2014-10-02: Ver. 0.2-5
  * Fix no visible binding for global variable problem.

2014-09-xx: Ver. 0.2-5
  * Implement two stages allreduce and allgather.

2014-08-23: Ver. 0.2-5
  * Add vignettes FAQ solution for MacOS 10.9.4, OpenMPI 1.8.1 and R 3.1.1.

2014-07-28: Ver. 0.2-5
  * Add comm.split.by.node().
  * Add comm.within and comm.between.

2014-06-30: Ver. 0.2-5
  * Add divide.job.vector() and divide.job.list().
  * Add LD_LIB_PATH to configure.ac and zzz.r.in.

2014-06-21: Ver. 0.2-5
  * Drop jss.cls and jss.bst.

2014-05-27: Ver. 0.2-4
  * Change to MPI_Comm_set_errhandler().
  * Fix Makevars.win logic.

2014-05-24: Ver. 0.2-3
  * Start official migration to MS-MPI.

2014-05-10: Ver. 0.2-3
  * Add logical and bit-wise AND, OR, XOR to allreduce() and reduce().
  * Improve comm.allcommon().

2014-05-04: Ver. 0.2-3
  * Add comm.as.gbd(), comm.pairwise(), and comm.dist().
  * The isend() non-blocking problems solved via buffering.

2014-04-01: Ver. 0.2-3
  * Fix a bcast() bug of unbalance call stack by switching to spmd.bcast.default
    for vectors of integer and double.

2014-03-22: Ver. 0.2-3
  * Adjust configure.ac and Makeconf for pbdSSLAP.

2014-03-11: Ver. 0.2-3
  * Add try options to task.pull().

2014-01-28: Ver. 0.2-3
  * Fix bcast() bugs.
  * Fix spmd.scatter.array() bugs.
  * Fix seed problem again.

2014-01-25: Ver. 0.2-2
  * Add comm.read.table(), comm.read.csv(), and comm.read.csv2(), and
    man pages and a section to vignettes.
  * Fix get.jid() option.
  * Fix bugs in comm.write.csv() and comm.write.csv2().

2014-01-20: Ver. 0.2-2
  * More tests on downstream pbdR package with MS-MPI.

2014-01-12: Ver. 0.2-2
  * Add Prof. Brian Ripley's trick to MS-MPI's 64bits support.
  * Move system requirements from MPICH2 to MS-MPI as Windows standard MPI.

2014-01-05: Ver. 0.2-2
  * Add Intel Miscrosoft HPC Pack 2012 (MS-MPI) support.
  * Add FreeBSD support suggested by Christian Heckendorf.
  * Fix seed problems.

2013-12-03: Ver. 0.2-2
  * Add Intel MPI support.

2013-12-01: Ver. 0.2-2
  * Add comm.range(), comm.max(), and comm.min().
  * Add comm.which(), comm.which.max(), and comm.which.min().
  * Add comm.length(), comm.sum(), comm.mean(), comm.var(), and comm.sd().

2013-11-26: Ver. 0.2-2
  * Disable seg. fault of overloading .RData and .RHistory.

2013-11-02: Ver. 0.2-2
  * Fix some bugs and add gathering for task.pull(), pbdLapply(), and
    pbdSapply().
  * Add comm.Rprof().

2013-10-02: Ver. 0.2-2
  * Add comm.write(), comm.write.table(), comm.rite.csv(), and
    comm.write.csv2().
  * Add comm.split(), intercomm.merge() and intercomm.create().

2013-09-21: Ver. 0.2-1
  * Fix pbdPROF configure problem.

2013-09-14: Ver. 0.2-1
  * Add Comm_connect, Comm_accept, Open_port, Close_port, Publish_name,
    Unpublish_name, and Lookup_name.
  * Add Client/Server examples.

2013-09-03: Ver. 0.2-1
  * Simply replace LENGTH by XLENGTH does not solve the longer vector problem.
    Follow R/src/main/memory.c to support longer vectors since int is 32-bit
    for both of i386 and x86_64 systems.
  * Add MPI_PROC_NULL to sendrecv() and sendrecv.replace().

2013-08-01: Ver. 0.2-1
  * Fix i.lib problem in "R/zzz.r.in".
  * Remove --with-Rmpi-* from configure.ac.
  * Add MPICH for MPICH version 3 or later.
  * Replace LENGTH by XLENGTH in all src/*.c to support longer vectors.

2013-07-24: Ver. 0.2-0
  * Move fpmpi to pbdPROF and link with it's static library.
  * Add mpiP and TAU.
  * Move pbdDEMO::timer() to pbdMPI::comm.timer().

2013-07-05: Ver. 0.1-9 (unreleased and merged to Ver. 0.2-0)
  * Change spmd.isend.default() to blocking send.

2013-07-03: Ver. 0.1-8
  * Move inst/doc/vignettes/ to vignettes/.
  * Add fpmpi license.

2013-07-02: Ver. 0.1-7
  * Fix man page.
  * Fix pbdApply.
  * Add messages to interactive mode.
  * Drop some barrier in comm.print and comm.cat.
  * Add FAQ to vignette.
  * Add fpmpi.
  * Add task pull parallelism.
  * Move vignettes.

2013-03-24: Ver. 0.1-6
  * License changed.
  * Add "block0" to get.jid and fix its bug.
  * Add FPMPI for profiling.

2013-03-11: Ver. 0.1-5
  * Add and fix comm.stop and comm.warning.
  * Add set.seed in .onLoad to give a default set.
  * Fix symbol.rds problem.

2013-01-17: Ver. 0.1-4
  * Add control to comm.print and comm.cat.
  * Fix .Last.lib problem.
  * Fix comm.all and comm.any na.rm bug.

2012-12-13: Ver. 0.1-3
  * Fix Mac OSX dynamic loading problem.
  * Fix .GlobalEnv problem.
  * Fix multi-arch problem.
  * Add copyright to vignette.

2012-10-30: Ver. 0.1-2
  * Add comm.all and comm.any, and rename g.sort to comm.sort.

2012-10-02: Ver. 0.1-1
  * Make changes for Nautilus. Drop "pbdMPI:::* ideas" for other pbd packages.
  * Make changes for pbdSLAP, pbdBASE, and pbdDMAT.
  * Add seed functions.
  * Add global sorting functions.
  * Modify configure.ac and Makevars.in for Solaris and pbdSLAP, pbdBASE, and       pbdDMAT.

======================= Log Before Release =====================================
2012-09-01:
  * Rename to 'pbdMPI'.
  * Add 'apply'-alike functions.
  * Adjust "Makevars.win".

2012-08-11:
  * Convert configure.ac back to Rmpi's version.
  * Add "mpicc --showme" for OpenMPI and "mpicc -show" for MPICH2 in
    configure.ac to automatically detect header files and shared library.
  * Rewrite HPSC website.

2012-07-28:
  * Rewrite configure.ac.
  * MPICH2 is working on Windows 32/64bit. (OpenMPI 1.6 64bit can not run.)

2012-07-07:
  * Minor adjustments for RmpiBLACS.
  * Change major support to OpenMPI.

2012-06-25:
  * Write vignette.
  * Build binaries for Windows with OpenMPI and MPICH2.

2012-06-06:
  * Write examples and codes for performance test.
  * Add methods for array/matrix types.

2012-05-17:
  * Build RmpiSPMD preliminary.
  * Rewrite all C and R codes.
  * Build in S4 methods.
  * Move Master/Workers to RmpiMW.

2012-05-15:
  * First try for Master/Workers.
  * Build Rmpi2 preliminary.
  * Try S3 methods.
  * New remote exec/cmds by sending text strings.

2012-03-21:
  * First try for Rmpi_0.6-0.
  * First try for Rmpi2.
  * Add controls for MPI pointers.

2011-10-xx:
  * First try for Master/Slaves in Rmpi.