Skip to content

New versioning scheme

Pre-release
Pre-release
Compare
Choose a tag to compare
@havogt havogt released this 28 Jan 14:22
· 499 commits to master since this 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 to COMPATIBILITY SameMinorVersion which means the following: Let's say the user requires find_package(GridTools 0.18.2). Then 0.18.3 (a newer patch release) will be compatible; 0.18.1 (an older than requested release) and 0.19.0 (a newer minor release) will be rejected.

API breaking changes

Removes reduction support from the stencil-composition API

  • make_reduction is removed
  • computation type erasure doesn't have ReturnType as a first template argument, i.e. computation<void, args...> needs to be replaced by computation<args...>.
  • run method of computation returns void now.

New functionality

Possibility to query intent and extent for placeholders from computation

  • computation.get_arg_intent(my_arg()) returns enumtype::intent
  • computation.get_arg_extent(my_arg()) returns rt_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