Copyright (C) 1996-2000

Object Oriented MPI (OOMPI): A C++ class library for MPI
Authors: Jeffrey M. Squyres, Jeremiah J. Willcock, Brian C. McCandless, 
	 Peter W. Rijks, Andrew Lumsdaine

This file is part of the Notre Dame Object Oriented MPI (OOMPI)

You should have received a copy of the License Agreement for the Notre
Dame Object Oriented MPI along with the software; see the file LICENSE.
If not, contact Office of Research, University of Notre Dame, Notre
Dame, IN 46556.

Permission to modify the code and to distribute modified code is
granted, provided the text of this NOTICE is retained, a notice that
the code was modified is included with the above COPYRIGHT NOTICE and
with the COPYRIGHT NOTICE in the LICENSE file, and that the LICENSE
file is distributed with the modified code.

LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.
By way of example, but not limitation, Licensor MAKES NO
REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY
PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE COMPONENTS
OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS
OR OTHER RIGHTS.

--------------------------------------------------------------------

Developed and implemented by:
  Jeffrey M. Squyres
  Jeremiah J. Willcock
  Brian C. McCandless
  Peter W. Rijks
  Andrew Lumsdaine

  Laboratory for Scientific Computing
  Department of Computer Science and Engineering
  University of Notre Dame
  http://www.lsc.nd.edu/

--------------------------------------------------------------------

OOMPI: Object Oriented MPI
1.0.3
HISTORY File -- Version history
===============================

1.0.3
-----

- Made test suite and examples use oscar, instead of mini-oscar or
  custom C++ compiler flags.
- Removed mini-oscar.
- Fixed all (known) access errors and memory leaks in OOMPI and test
  suite.
- Converted to using automake.
- Update some bit rot for the latest versions of LAM and MPICH:
  configure script, and removed all skips for LAM/MPICH in the test
  suite.
- Moved all the various m4 tests into their own files (mostly) for
  ease of maintainability in the config subdirectory.
- Converted to automake.
- Save the CXXFLAGS before calling AC_PROG_CXX in configure.in (lest they
  be destroyed or otherwise modified automatically by autoconf).
- Minor fixes in docs.
- Added OOMPI_User_type constructor without "top" argument (it's no
  longer necessary).
- Updated exception test in test suite to work properly with LAM/MPI.
- Updates to configure.in to handler newer implementations of MPI
  (LAM, MPICH, etc.).
- Fixes from (char*) to (const char*) to be a bit more C++ conformant.
- Updated exceptions testing in configure for new versions of gcc.
- Made OOMPI -Wall clean per g++ 2.95.1.


1.0.2f
------

- Had to drop support for SunOS 4.1.3 and AIX 3.2.5 (no access to testing
  platforms anymore)
- Revamped distribution scripts a la MPI C++ bindings and the MTL
- Added PDF version of OOMPI document in doc subdirectory, cleaned
  up LaTeX build a bit
- Added formal support for SGI MPI version 3.1.x
- Inlined a lot more functions for speed (many in Message and 
  Array_message classes)
- Remove extra MPI_BARRIER from OOMPI_COMM_WORLD.Finalize()
- Various ./configure fixes, added explicit support for IRIX 6.2
- Removed inlined class names from Message.h (cut and paste error?) for IRIX
  compilers
- Missing LDFLAGS in contrib/examples/Makefile


1.0.2
-----

- Added formal support for SGI, to include SGI's MPI version 2.0 / 3.0.
- Added formal support for IBM SP2, to include IBM's POE/MPI 
  maintenance version 2.1.0.14 through version 2.1.0.18.
- Added formal support for Linux 2.0.0.
- Added formal support for HP-UX, to include HP's MPI.
- Changed constructor for OOMPI_PROC_NULL to use MPI_COMM_WORLD, not
  MPI_COMM_NULL (although we shouldn't have had to!).
- Cleaned up destructor in Wrapper_obj; object and callback wasn't always
  being cleaned up properly.
- Removed some extraneous Sync()'s from the test suite (it runs faster now!).
- Added array examples in the user defined datatype example program.
- Fixed the intercommunicator test module (many tests were erroneous).
- Fixed precision problems in intra_comm test module.
- sizeof(bool) does not necessarily equal sizeof(int).  Doh!
- The DIMS_CREATE test was erroneous.  It sometimes caused an IOT instruction
  on the IBM SP-2, possibly because the SP-2 implementation actually
  checks how many processes are in MPI_COMM_WORLD vs. how many you are 
  asking for with DIMS_CREATE.  Fixed.
- Fixed several mini-oscar/oscar/configure/Makefile errors which
  incorrectly installed both oscar and the include files.  This error 
  showed when the distribution tree was not available from the 
  installation tree.
- Fixed a typo in mini-oscar/oscar left over from the original MPICH
  mpiCC script.
- Updated the README and INSTALL files to include more detailed
  information about the lack of exception support from g++ 2.7.2.
- Improved the error handling and reporting of the test suite.
- Added MPI_LB and MPI_UB capabilities in user-defined datatype
  building to the OOMPI_Datatype::Struct_start() and
  OOMPI_Datatype::Struct_end() functions.
- Added configure flag for whether MPI constants are sufficient for
  initialization, and moved code around appropriately.
- Fixed Init(argc, argv) so that it only calls MPI_Init() if it hasn't 
  been called already.  Also created Init(void) that can be called when
  MPI_Init() has already been called.
- Added OOMPI_COMM_SELF.  Why wasn't it there before?  Duh.
- Enforced all intrinsic OOMPI_Op and basic OOMPI_Datatype objects to
  be const.  Changed bindings as appropriate (to add const at OOMPI
  level and below -- won't break any existing OOMPI user code).
- Added constructor in OOMPI_Datatype for promotions from
  OOMPI_Message.  This allows one to get an OOMPI datatype for an
  unknown data object (e.g. templates).
- Changed constructors for Group, Datatype, Op, and Comm so that
  whenever one of these objects is created with a C MPI handle, that
  handle will not be MPI_*_free'ed by OOMPI.
- Fixed a misinterpretation of the MPI-1 standard in the
  Request_array.[Wait|Test]* functions.  They now return the MPI_Status
  array that is returned from MPI_TEST*/MPI_WAIT*, not a bogus array
  (don't ask).  The flavors that accept OOMPI_Status_arrays now re-use
  the MPI_Status array rather than disregarding it.  In some places,
  this was a bug, in some places this fix is just an optimization.
- Added OOMPI_Status_array.Set_mpi(MPI_Status a[], int size).
- Added OOMPI_Request_array.Set_mpi(MPI_Request a[], int size).
- Fixed potential deadlock (depending on MPI implementation) in some
  non-blocking Port tests.
- Fixed bug in Allgatherv that wouldn't allow test suite to run on
  more than 4 nodes.
- inlined all the OOMPI_Message and OOMPI_Message_array promotions 
  for performance gains.
- Discovered LAM 6.1 bug on IRIX systems when using the "-c2c" flag
  for LAM's mpirun.  Had to put in a flag to skip that test.
- Found that IBM fixed some (but not all) bugs in POE 2.1.0.18.  Made 
  SKIP flags accordingly.
- Changed the "Your compiler has no exception capabilities..." error 
  messages in Error_table.cc to be sent to stderr rather than stdout.


1.0.1
-----

- Fixed minor memory leak noted by Warren McEvoy in Cart_comm.cc; a
  temp variable wasn't deleted before the function returned
- Fixed a mistake in example in the doc -- in the "User Defined
  Datatypes" section (3.4), we had "type.Struct_start()" instead of
  "type.Struct_start(this)".


1.0
---

Initial release
