@ayzk we need to come up with an API for config that we can live with and we don't break every release. Every time we break the API, we discourage uses from using our software. This is just as important as providing a way to decompress from an older version of SZ3.
Some of these are not meaningful renames (e.g. pred_dim -> predDim), and just add friction to updating.
If we need to rename something because it doesn't make sense anymore, we need to mark it with something like [[deprecated("use foobar instead")]] (added in C++14, and supported since gcc 5).
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc: In member function 'typename std::enable_if<(! std::is_same<T, bool>::value), pressio_data>::type libpressio::compressors::sz3_ns::impl_compress::operator()(T*, T*)':
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:22:12: error: 'class SZ3::Config' has no member named 'pred_dim'; did you mean 'predDim'?
22 | config.pred_dim = static_cast<unsigned char>(config.N);
| ^~~~~~~~
| predDim
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:23:12: error: 'class SZ3::Config' has no member named 'stride'
23 | config.stride = config.blockSize;
| ^~~~~~
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc: In constructor 'libpressio::compressors::sz3_ns::sz3_option_maps::sz3_option_maps()':
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:48:43: error: 'EB_STR' is not a member of 'SZ3'; did you mean 'EB_PSNR'?
48 | for (size_t i = 0; i < std::size(SZ3::EB_STR); ++i) {
| ^~~~~~
| EB_PSNR
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:49:25: error: 'EB_STR' is not a member of 'SZ3'; did you mean 'EB_PSNR'?
49 | error_bounds[SZ3::EB_STR[i]] = SZ3::EB_OPTIONS[i];
| ^~~~~~
| EB_PSNR
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:49:43: error: 'EB_OPTIONS' is not a member of 'SZ3'
49 | error_bounds[SZ3::EB_STR[i]] = SZ3::EB_OPTIONS[i];
| ^~~~~~~~~~
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:51:43: error: 'ALGO_STR' is not a member of 'SZ3'
51 | for (size_t i = 0; i < std::size(SZ3::ALGO_STR); ++i) {
| ^~~~~~~~
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:52:17: error: 'ALGO_STR' is not a member of 'SZ3'
52 | algo[SZ3::ALGO_STR[i]] = SZ3::ALGO_OPTIONS[i];
| ^~~~~~~~
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:52:37: error: 'ALGO_OPTIONS' is not a member of 'SZ3'
52 | algo[SZ3::ALGO_STR[i]] = SZ3::ALGO_OPTIONS[i];
| ^~~~~~~~~~~~
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:54:43: error: 'INTERP_ALGO_STR' is not a member of 'SZ3'; did you mean 'INTERP_ALGO_MAP'?
54 | for (size_t i = 0; i < std::size(SZ3::INTERP_ALGO_STR); ++i) {
| ^~~~~~~~~~~~~~~
| INTERP_ALGO_MAP
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:55:24: error: 'INTERP_ALGO_STR' is not a member of 'SZ3'; did you mean 'INTERP_ALGO_MAP'?
55 | interp_algo[SZ3::INTERP_ALGO_STR[i]] = SZ3::INTERP_ALGO_OPTIONS[i];
| ^~~~~~~~~~~~~~~
| INTERP_ALGO_MAP
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:55:51: error: 'INTERP_ALGO_OPTIONS' is not a member of 'SZ3'; did you mean 'INTERP_ALGO_CUBIC'?
55 | interp_algo[SZ3::INTERP_ALGO_STR[i]] = SZ3::INTERP_ALGO_OPTIONS[i];
| ^~~~~~~~~~~~~~~~~~~
| INTERP_ALGO_CUBIC
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc: In member function 'virtual pressio_options libpressio::compressors::sz3_ns::sz3_compressor_plugin::get_options_impl() const':
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:105:41: error: 'const class SZ3::Config' has no member named 'lossless'
105 | set(options, "sz3:lossless", config.lossless);
| ^~~~~~~~
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:106:40: error: 'const class SZ3::Config' has no member named 'encoder'
106 | set(options, "sz3:encoder", config.encoder);
| ^~~~~~~
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:110:39: error: 'const class SZ3::Config' has no member named 'stride'
110 | set(options, "sz3:stride", config.stride);
| ^~~~~~
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:111:41: error: 'const class SZ3::Config' has no member named 'pred_dim'; did you mean 'predDim'?
111 | set(options, "sz3:pred_dim", config.pred_dim);
| ^~~~~~~~
| predDim
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc: In member function 'virtual int libpressio::compressors::sz3_ns::sz3_compressor_plugin::set_options_impl(const pressio_options&)':
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:202:42: error: 'class SZ3::Config' has no member named 'lossless'
202 | get(options, "sz3:lossless", &config.lossless);
| ^~~~~~~~
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:203:41: error: 'class SZ3::Config' has no member named 'encoder'
203 | get(options, "sz3:encoder", &config.encoder);
| ^~~~~~~
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:207:40: error: 'class SZ3::Config' has no member named 'stride'
207 | get(options, "sz3:stride", &config.stride);
| ^~~~~~
/home/runderwood/git/libpressio_spack/libpressio/src/plugins/compressors/sz3.cc:208:42: error: 'class SZ3::Config' has no member named 'pred_dim'; did you mean 'predDim'?
208 | get(options, "sz3:pred_dim", &config.pred_dim);
| ^~~~~~~~
| predDim
gmake[2]: *** [CMakeFiles/libpressio.dir/build.make:1544: CMakeFiles/libpressio.dir/src/plugins/compressors/sz3.cc.o] Error 1
gmake[2]: Leaving directory '/home/runderwood/scratch/spack_stage/spack-stage-libpressio-git.master_1.0.4-6iqyxf3nlbqq2ucp5cjrhff5qgvuyon6/spack-build-6iqyxf3'
gmake[1]: *** [CMakeFiles/Makefile2:202: CMakeFiles/libpressio.dir/all] Error 2
gmake[1]: Leaving directory '/home/runderwood/scratch/spack_stage/spack-stage-libpressio-git.master_1.0.4-6iqyxf3nlbqq2ucp5cjrhff5qgvuyon6/spack-build-6iqyxf3'
gmake: *** [Makefile:139: all] Error 2
@ayzk we need to come up with an API for config that we can live with and we don't break every release. Every time we break the API, we discourage uses from using our software. This is just as important as providing a way to decompress from an older version of SZ3.
Some of these are not meaningful renames (e.g. pred_dim -> predDim), and just add friction to updating.
If we need to rename something because it doesn't make sense anymore, we need to mark it with something like
[[deprecated("use foobar instead")]](added in C++14, and supported since gcc 5).