Skip to content

Commit 60323bd

Browse files
authored
Merge pull request #289 from sethrj/release-v2.0.1
Release v2.0.1
2 parents 2a30c3f + 37af655 commit 60323bd

File tree

7 files changed

+237
-157
lines changed

7 files changed

+237
-157
lines changed

doc/install.rst

+28-14
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,29 @@ ability to rebuild ForTrilinos wrappers. (Note that SWIG is always optional;
2121
the version here simply denotes the version used to generate the included
2222
wrappers.)
2323

24+
The version scheme is based on semantic versioning:
25+
- Major version numbers with Trilinos and minor versions of SWIG-Fortran (since
26+
it's still not officially upstreamed) can result in major version number
27+
changes for ForTrilinos.
28+
29+
- New features in Trilinos, and new support by ForTrilinos, can result in minor
30+
version number changes. Features removed by a minor version change in
31+
Trilinos may also result in a minor version change.
32+
33+
- Minor changes to the SWIG-Fortran implementation (which don't affect the
34+
interface in the .F90 files) result in a patch version.
35+
36+
Essentially, the versioning will be driven by what the Fortran-only users see
37+
in the committed version of the generated wrappers.
38+
2439
.. _version_table:
2540

2641
.. table:: Version compatibility table for ForTrilinos.
2742

2843
=========== ============== ======================
2944
ForTrilinos Trilinos SWIG
3045
=========== ============== ======================
31-
2.0.1 13.0:13.1 4.1.0+fortran
46+
2.0.1 13.0:13.1 4.1.0-dev1+fortran
3247
2.0.0 13.0:13.1 4.0.2+fortran
3348
2.0.0-dev3 12.18.1 4.0.2+fortran
3449
2.0.0-dev2 12.18.1 4.0.0+fortran+15e6ed59
@@ -40,30 +55,29 @@ In :ref:`the version table above <version_table>`, the ``+fortran`` suffix for
4055
SWIG indicates `the SWIG-Fortran fork <https://github.com/swig-fortran/swig>`.
4156
``+sha`` refers to a specific Git commit that comes after the given version.
4257

43-
The versioning scheme is based on `SemVer 2.0`_:
44-
45-
- Major version numbers with Trilinos and minor versions of SWIG-Fortran can
46-
result in major version number changes for ForTrilinos.
47-
- New features in Trilinos, and new support by ForTrilinos, can result in minor
48-
version number changes.
49-
- Minor changes to the SWIG-Fortran implementation (which don't affect the
50-
interface in the .F90 files) result in a patch version.
51-
5258
Basically, the versioning will be driven by what the Fortran-only users see in the committed version of the generated wrappers.
5359

5460
The original implementation of the ForTrilinos was developed prior to 2012.
5561
That code is no longer developed and maintained, and is available using the
56-
``trilinos-release-12-8-1`` tag and the corresponding Trilinos 12.8.1 version.
62+
``trilinos-release-12-8-1`` tag in the ForTrilinos repository and the
63+
corresponding Trilinos 12.8.1 version.
64+
65+
E4S
66+
---
67+
68+
As of this writing, ForTrilinos is distributed as part of the `E4S Project
69+
<https://e4s-project.github.io/index.html>` and should be available as a
70+
pre-built binary on a variety of user and HPC systems.
5771

5872
Spack
5973
-----
6074

61-
To install ForTrilinos version ``2.0.0`` through an existing Spack
62-
installation (v0.16 or higher, or the ``develop`` branch):
75+
To install ForTrilinos version ``2.0.1`` through an existing Spack
76+
installation (v0.18 or higher, or the ``develop`` branch):
6377

6478
.. code:: console
6579
66-
$ spack install fortrilinos@2.0.0 ^trilinos+nox+stratimikos
80+
$ spack install fortrilinos
6781
6882
Manual
6983
------

scripts/spack.yaml

+3-2
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ spack:
44
- ninja
55
- openmpi
66
7-
- trilinos +amesos2 +anasazi +belos +teuchos +kokkos +ifpack2 +muelu +nox +tpetra
7+
- trilinos@13.0.0:13.1 +amesos2 +anasazi +belos +kokkos +ifpack2 +muelu +nox +tpetra
88
+stratimikos +mpi gotype=long_long
99
view: true
10-
concretization: together
10+
concretizer:
11+
unify: true
1112
packages:
1213
trilinos:
1314
variants: ~adios2 ~alloptpkgs ~boost ~cgns ~chaco ~complex ~debug ~dtk ~exodus

src/forbelos/generated/forbelosFORTRAN_wrap.cxx

+39-26
Original file line numberDiff line numberDiff line change
@@ -21,30 +21,6 @@
2121
#define SWIGFORTRAN
2222
#endif
2323

24-
25-
#ifdef __cplusplus
26-
/* SwigValueWrapper is described in swig.swg */
27-
template<typename T> class SwigValueWrapper {
28-
struct SwigMovePointer {
29-
T *ptr;
30-
SwigMovePointer(T *p) : ptr(p) { }
31-
~SwigMovePointer() { delete ptr; }
32-
SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
33-
} pointer;
34-
SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
35-
SwigValueWrapper(const SwigValueWrapper<T>& rhs);
36-
public:
37-
SwigValueWrapper() : pointer(0) { }
38-
SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
39-
operator T&() const { return *pointer.ptr; }
40-
T *operator&() { return pointer.ptr; }
41-
};
42-
43-
template <typename T> T SwigValueInit() {
44-
return T();
45-
}
46-
#endif
47-
4824
/* -----------------------------------------------------------------------------
4925
* This section contains generic SWIG labels for method/variable
5026
* declarations/attributes, and other compiler dependent labels.
@@ -170,6 +146,44 @@ template <typename T> T SwigValueInit() {
170146
#endif
171147

172148

149+
#ifdef __cplusplus
150+
#include <utility>
151+
/* SwigValueWrapper is described in swig.swg */
152+
template<typename T> class SwigValueWrapper {
153+
struct SwigSmartPointer {
154+
T *ptr;
155+
SwigSmartPointer(T *p) : ptr(p) { }
156+
~SwigSmartPointer() { delete ptr; }
157+
SwigSmartPointer& operator=(SwigSmartPointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
158+
} pointer;
159+
SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
160+
SwigValueWrapper(const SwigValueWrapper<T>& rhs);
161+
public:
162+
SwigValueWrapper() : pointer(0) { }
163+
SwigValueWrapper& operator=(const T& t) { SwigSmartPointer tmp(new T(t)); pointer = tmp; return *this; }
164+
#if __cplusplus >=201103L
165+
SwigValueWrapper& operator=(T&& t) { SwigSmartPointer tmp(new T(std::move(t))); pointer = tmp; return *this; }
166+
operator T&&() const { return std::move(*pointer.ptr); }
167+
#else
168+
operator T&() const { return *pointer.ptr; }
169+
#endif
170+
T *operator&() const { return pointer.ptr; }
171+
};
172+
173+
template <typename T> T SwigValueInit() {
174+
return T();
175+
}
176+
177+
178+
#if __cplusplus >=201103L
179+
# define SWIG_STD_MOVE(OBJ) std::move(OBJ)
180+
#else
181+
# define SWIG_STD_MOVE(OBJ) OBJ
182+
#endif
183+
184+
#endif
185+
186+
173187
#ifndef SWIGEXTERN
174188
# ifdef __cplusplus
175189
# define SWIGEXTERN extern
@@ -197,7 +211,7 @@ SWIGEXPORT void SWIG_store_exception(const char* decl, int errcode, const char *
197211
#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \
198212
SWIG_store_exception(DECL, CODE, MSG); RETURNNULL;
199213

200-
/* Errors in SWIG */
214+
/* SWIG Errors applicable to all language modules, values are reserved from -1 to -99 */
201215
#define SWIG_UnknownError -1
202216
#define SWIG_IOError -2
203217
#define SWIG_RuntimeError -3
@@ -214,7 +228,6 @@ SWIGEXPORT void SWIG_store_exception(const char* decl, int errcode, const char *
214228

215229

216230

217-
218231
enum SwigMemFlags {
219232
SWIG_MEM_OWN = 0x01,
220233
SWIG_MEM_RVALUE = 0x02,

src/forerror/generated/forerrorFORTRAN_wrap.cxx

+40-27
Original file line numberDiff line numberDiff line change
@@ -21,30 +21,6 @@
2121
#define SWIGFORTRAN
2222
#endif
2323

24-
25-
#ifdef __cplusplus
26-
/* SwigValueWrapper is described in swig.swg */
27-
template<typename T> class SwigValueWrapper {
28-
struct SwigMovePointer {
29-
T *ptr;
30-
SwigMovePointer(T *p) : ptr(p) { }
31-
~SwigMovePointer() { delete ptr; }
32-
SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
33-
} pointer;
34-
SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
35-
SwigValueWrapper(const SwigValueWrapper<T>& rhs);
36-
public:
37-
SwigValueWrapper() : pointer(0) { }
38-
SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
39-
operator T&() const { return *pointer.ptr; }
40-
T *operator&() { return pointer.ptr; }
41-
};
42-
43-
template <typename T> T SwigValueInit() {
44-
return T();
45-
}
46-
#endif
47-
4824
/* -----------------------------------------------------------------------------
4925
* This section contains generic SWIG labels for method/variable
5026
* declarations/attributes, and other compiler dependent labels.
@@ -170,6 +146,44 @@ template <typename T> T SwigValueInit() {
170146
#endif
171147

172148

149+
#ifdef __cplusplus
150+
#include <utility>
151+
/* SwigValueWrapper is described in swig.swg */
152+
template<typename T> class SwigValueWrapper {
153+
struct SwigSmartPointer {
154+
T *ptr;
155+
SwigSmartPointer(T *p) : ptr(p) { }
156+
~SwigSmartPointer() { delete ptr; }
157+
SwigSmartPointer& operator=(SwigSmartPointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
158+
} pointer;
159+
SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
160+
SwigValueWrapper(const SwigValueWrapper<T>& rhs);
161+
public:
162+
SwigValueWrapper() : pointer(0) { }
163+
SwigValueWrapper& operator=(const T& t) { SwigSmartPointer tmp(new T(t)); pointer = tmp; return *this; }
164+
#if __cplusplus >=201103L
165+
SwigValueWrapper& operator=(T&& t) { SwigSmartPointer tmp(new T(std::move(t))); pointer = tmp; return *this; }
166+
operator T&&() const { return std::move(*pointer.ptr); }
167+
#else
168+
operator T&() const { return *pointer.ptr; }
169+
#endif
170+
T *operator&() const { return pointer.ptr; }
171+
};
172+
173+
template <typename T> T SwigValueInit() {
174+
return T();
175+
}
176+
177+
178+
#if __cplusplus >=201103L
179+
# define SWIG_STD_MOVE(OBJ) std::move(OBJ)
180+
#else
181+
# define SWIG_STD_MOVE(OBJ) OBJ
182+
#endif
183+
184+
#endif
185+
186+
173187
#ifndef SWIGEXTERN
174188
# ifdef __cplusplus
175189
# define SWIGEXTERN extern
@@ -182,7 +196,7 @@ template <typename T> T SwigValueInit() {
182196
#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \
183197
{ throw std::logic_error("In " DECL ": " MSG); }
184198

185-
/* Errors in SWIG */
199+
/* SWIG Errors applicable to all language modules, values are reserved from -1 to -99 */
186200
#define SWIG_UnknownError -1
187201
#define SWIG_IOError -2
188202
#define SWIG_RuntimeError -3
@@ -199,7 +213,6 @@ template <typename T> T SwigValueInit() {
199213

200214

201215

202-
203216
#ifdef __cplusplus
204217
extern "C" {
205218
#endif
@@ -289,7 +302,7 @@ SWIGEXPORT const char* fortrilinos_get_serr() {
289302

290303
extern "C" {
291304

292-
305+
#include <cctype>
293306

294307
// Call this function before any new action
295308
SWIGEXPORT void SWIG_check_unhandled_exception_impl(const char* decl) {

0 commit comments

Comments
 (0)