Skip to content

change core etc to explicitly only handle stdint-based types

Podhorszki, Norbert requested to merge github/fork/germasch/stdtype into master

Created by: germasch

Now that both the C and CXX11 interface interact with core only via stdint-based types, the rest of adios2 really only needs to support those types.

Essentially, that's already the case: Integer variables created through the interfaces will be of one of the 8 stdint types (or whatever primitive type they alias). Integer variables read from a file (or other mans) will be one of the 8 stdint types. So the support for other variable types (essentially, char, long, unsigned long) is there but not ever used, at least it shouldn't be unless there are bugs.

This set of patches does touch a lot of code at the heart of adios, but it's also fairly straightforward changes -- for the most part it's ADIOS2_FOREACH_..._TYPE_1ARG to .._STDTYPE_1ARG.

There is one change in particular which could use a second look:

  • I removed adiostypestringToMatlabClass from the matlab interface, because it appears to be unused, and it uses hardcoded strings for the types (which would break if eventually going to use "uint8_t" etc.)

Note that while this ends up being almost a global search and replace of _TYPE_1ARG to _STDTYPE_1ARG, it doesn't actually touch all uses, and is done step-by-step which would help if thing broke and one needs to figure out where. (Though I'm pretty sure there's no major breakage.)

Eventually, it'd certainly be possible to change over the remaining uses in the cxx11 interface into their own macro and just rename STDTYPE back to TYPE.

Overall, it's "216 additions and 533 deletions", so it actually makes code shorter in some cases (mostly where I use macro generated code).

Merge request reports