
------------------------------------------
Release Notes for Trilinos Package Teuchos
------------------------------------------


Trilinos 10.4:
--------------


(*) Known breaks in backward compatibility:

- Changed direct constructors for ArrayRCP to take (lowerOffset, size) instead
of (lowerOffset, upperOffset) to be consistent with the nonmember constructors
like arcp(...) and ArrayView.  This was done to make these constructors
consistent with the non-member constructors.  As long clients were using the
nonmember constructors this will not break backward compatibility.  However,
if clients are using the direct constructors, upperOffset becomes size which
means that the size will actually become one less with the upperOffset
becoming one less.  This will therefore not result in memory access errors but
will result in exceptions being thrown when accessing the real last element.
Given the confusion that having diffrent arguments caused (that I got caught
with too) and the inherent safety inthe change, I think this break with strict
backward compatibiity is well worth the (minor) problems it might cause to
users.

- Removed define of TEUCHOS_PRIVIATE_DELETE_NOT_SUPPORTED for _AIX.  The macro
TEUCHOS_PRIVIATE_DELETE_NOT_SUPPORTED was designed to be used only internally
within Teuchos (and perhaps other parts of Trilinos) but at some point all use
of this macro was removed (apparently in all of Trilinos).  If client code
used this macro for their own purposes, then this change will break client
code when _AIX is defined.  However, it seems unlikely that there will be such
client code around.



Trilinos 10.2:
--------------


(*) Default debug enable of RCP node tracing: Setting Teuchos_ENABLE_DEBUG=ON
now sets Teuchos_ENABLE_DEBUG_RCP_NODE_TRACING=ON by default.  This is a more
strict type of checking that will catch more errors.


(*) Known breaks in backward compatibility:

- The type Teuchos_Ordinal has been changed from int to ptrdiff_t by default.
On 64 bit machines, this will be 'long int' instead of 'int'.  This can be
changed back to int by configuring with -DTeuchos_ORDINAL_TYPE:STRING=int.

- The size_type typedef in Teuchos::Array has been changed from size_t to
Teuchos_Ordinal which is now ptrdiff_t, a signed integer which is *not* int on
a 64 bit platform.  See the argument for this in Bugzilla bug 4253.

- The size_type typedef in Teuchos::ArrayView and Teuchos::ArrayRCP has also
been changed to Teuchos_Ordinal to be consistent with Teuchos::Array.

- The size_type typedef in Teuchos::Range1D has been changed to
Teuchos_Ordinal.

- Removed Teuchos_exit.h with the TEUCHOS_EXIT(...) macros.  These were a bad
idea and where never used in Trilinos.  Hopefully no external Trilinos user
made use of these either.

- Non-member functions related to RCPNode tracing have been collected into a
new static class Teuchos::RCPNodeTracer.  Given that no user code should ever
be calling these functions in production code this should not affect most
users.


Trilinos 10.0:
--------------


(*) Known breaks in backward compatibility:

- The raw pointer T* argument in Teuchos::set_extra_data(...) has been
changed to Teuchos::Ptr<T>&.  This requires that you replace:

    Teuchos::set_extra_data(data, dataName, &rcpObj);

with:

    Teuchos::set_extra_data(data, dataName, Teuchos::outArg(rcpObj));
