New versioning scheme
Pre-release
Pre-release
Starting with this release we introduce a new versioning scheme.
Changes since 1.08.02 (which would have been 0.18.2 in the new versioning scheme).
New versioning scheme
Version number: X.Y.Z
- X: Major version will be 0 until the public release, then it will be 1, probably until a new major feature, e.g. complete icgrid.
- Y: Minor version will be increased after every API change and new smaller features, probably very often.
- Z: Patch version will be increased for bug fixes.
The CMake version matching is changed in this release toCOMPATIBILITY SameMinorVersion
which means the following: Let's say the user requiresfind_package(GridTools 0.18.2)
. Then0.18.3
(a newer patch release) will be compatible;0.18.1
(an older than requested release) and0.19.0
(a newer minor release) will be rejected.
API breaking changes
Removes reduction support from the stencil-composition API
make_reduction
is removedcomputation
type erasure doesn't haveReturnType
as a first template argument, i.e.computation<void, args...>
needs to be replaced bycomputation<args...>
.run
method of computation returnsvoid
now.
New functionality
Possibility to query intent and extent for placeholders from computation
computation.get_arg_intent(my_arg())
returnsenumtype::intent
computation.get_arg_extent(my_arg())
returnsrt_extent
which contains extents in i,j,k directions
Performance improvements
- several unneeded
cudaDeviceSynchronize()
in boundary_conditions are removed
Bug fixes
- c_bindings: support for multiple template arguments in generic bindings macro
Internal changes
- added convenience library for integral constants with
__host__ __device__
conversion and construction with custom literal_c
- SID utilities