Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new c14/e26 builds needed #19

Closed
miquelnebot opened this issue Mar 7, 2024 · 12 comments · Fixed by #20
Closed

new c14/e26 builds needed #19

miquelnebot opened this issue Mar 7, 2024 · 12 comments · Fixed by #20
Assignees
Labels
bug Something isn't working feature New feature or request

Comments

@miquelnebot
Copy link

With the update to art 3.14.04, depending on

New eigen (v23_08_01_66e8f)

sbnana requires an update of osclib

@gavinsdavies
Copy link
Contributor

This has hit a wall so is taking longer than anticipated.
I have installed on a local cvmfs repo (nova's to be precise) the necessary external packages to pick up art v3_14_04.
Particularly nulite v3_16_04a is the bundle with all the necessary pieces (including root). It also ships with a new eigen and shifted from prior versioning scheme

  • follow up with artists about eigen versioning

I can setup the following to test

setup root v6_28_10b -qe26:prof:p3915
setup boost v1_82_0 -qe26:prof
setup eigen v23_08_01_66e8f

Then attempt to build OscLib to run into the following wall.

In file included from /cvmfs/nova.opensciencegrid.org/externals/boost/v1_82_0/Linux64bit+3.10-2.17-e26-prof/include/boost/numeric/ublas/traits.hpp:21,
from /cvmfs/nova.opensciencegrid.org/externals/boost/v1_82_0/Linux64bit+3.10-2.17-e26-prof/include/boost/numeric/ublas/storage.hpp:27,
from /cvmfs/nova.opensciencegrid.org/externals/boost/v1_82_0/Linux64bit+3.10-2.17-e26-prof/include/boost/numeric/ublas/vector.hpp:21,
from OscCalcGeneral.cxx:19:
/cvmfs/nova.opensciencegrid.org/externals/boost/v1_82_0/Linux64bit+3.10-2.17-e26-prof/include/boost/numeric/ublas/detail/iterator.hpp:111:21: error: ‘template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator’ is deprecated [-Werror=deprecated-declarations]
111 | public std::iterator<IC, T> {
| ^~~~~~~~
In file included from /cvmfs/nova.opensciencegrid.org/externals/gcc/v12_1_0/Linux64bit+3.10-2.17/include/c++/12.1.0/bits/stl_algobase.h:65,
from /cvmfs/nova.opensciencegrid.org/externals/gcc/v12_1_0/Linux64bit+3.10-2.17/include/c++/12.1.0/bits/specfun.h:45,
from /cvmfs/nova.opensciencegrid.org/externals/gcc/v12_1_0/Linux64bit+3.10-2.17/include/c++/12.1.0/cmath:1935,
from /cvmfs/nova.opensciencegrid.org/externals/eigen/v23_08_01_66e8f/include/eigen3/Eigen/src/Core/util/Macros.h:716,
from /cvmfs/nova.opensciencegrid.org/externals/eigen/v23_08_01_66e8f/include/eigen3/Eigen/Core:19,
from /cvmfs/nova.opensciencegrid.org/externals/eigen/v23_08_01_66e8f/include/eigen3/Eigen/Dense:1,
from /cvmfs/nova.opensciencegrid.org/externals/eigen/v23_08_01_66e8f/include/eigen3/Eigen/Eigen:1,
from ../OscLib/IOscCalc.h:13,
from ../OscLib/OscCalcGeneral.h:4,
from OscCalcGeneral.cxx:7:
/cvmfs/nova.opensciencegrid.org/externals/gcc/v12_1_0/Linux64bit+3.10-2.17/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
127 | struct _GLIBCXX17_DEPRECATED iterator
| ^~~~~~~~
/cvmfs/nova.opensciencegrid.org/externals/boost/v1_82_0/Linux64bit+3.10-2.17-e26-prof/include/boost/numeric/ublas/detail/iterator.hpp:149:21: error: ‘template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator’ is deprecated [-Werror=deprecated-declarations]
149 | public std::iterator<IC, T> {
| ^~~~~~~~
/cvmfs/nova.opensciencegrid.org/externals/gcc/v12_1_0/Linux64bit+3.10-2.17/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
127 | struct _GLIBCXX17_DEPRECATED iterator
| ^~~~~~~~
/cvmfs/nova.opensciencegrid.org/externals/boost/v1_82_0/Linux64bit+3.10-2.17-e26-prof/include/boost/numeric/ublas/detail/iterator.hpp:204:21: error: ‘template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator’ is deprecated [-Werror=deprecated-declarations]
204 | public std::iterator<IC, T> {
| ^~~~~~~~
/cvmfs/nova.opensciencegrid.org/externals/gcc/v12_1_0/Linux64bit+3.10-2.17/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
127 | struct _GLIBCXX17_DEPRECATED iterator
| ^~~~~~~~
cc1plus: all warnings being treated as errors
make[1]: *** [tmp/OscCalcGeneral.o] Error 1

The key part of the error here is a deprecation error pulled in from boost:
struct std::iterator’ is deprecated --> https://stackoverflow.com/questions/43268146/why-is-stditerator-deprecated

At any rate, I'll investigate further today when I get a spare moment but am open to suggestions.

@gavinsdavies
Copy link
Contributor

we of course are treating all warnings as errors in the makefile.
Things build if I remove that restriction though we will want to consider how we treat this deprecation going forward.

@gavinsdavies
Copy link
Contributor

In addition, let me bring your attention to a bug in this version of ROOT, that Tom Junk found and reported on:
https://cdcvs.fnal.gov/redmine/issues/28651

Th is fix was already back-ported to ROOT's v6-28-00-patches branch, and has been incorporated into a UPS build of ROOT 6.28.12 which will be part of an upcoming art-suite 3.14 patch release (Chris Green).

I would suggest you wait for this patch release @miquelnebot

@miquelnebot
Copy link
Author

@gavinsdavies root patch has now been propagated (thanks for the heads up) so I assume is only the iterator deprecation remaining.
Any plans for this? I'd summon @PetrilloAtWork and @JosephinePaton here for further discussion but would suggest living with the warnings provisionally.

@PetrilloAtWork
Copy link

The whole point of having deprecations is to give developers the time to update without breaking things, so I am totally for having deprecation warnings as just warnings.
Do you know whether Boost has taken care of this deprecation in newer versions?

gavinsdavies added a commit that referenced this issue Apr 29, 2024
- addressing #19
- nulite v3_16_04a carries latest art 3.14.04 upgrade
- thus new qualifier n316
- new root and boost, with updated p3915 python qualifier
- e26 and c14 exist for this upgrade atm
@gavinsdavies
Copy link
Contributor

to my knowledge Boost has not taken care of this deprecation yet.
At any rate, I've grabbed the latest art 314 series via the nulite v3_16_06 series.
This tags in root v6_28_12 and friends.
One of the additions is eigen v23_08_01_66e8f

I've updated things here in a branch: https://github.com/cafana/OscLib/tree/feature/gsdavies/art314
I had to turn off a couple of warnings from the Werror.
But I got it to be build in stanfree mode.

If I try to build with stan (stan_math v4_5_0a and sundials v6_5_0) I run into the following error:

g++ OscCalcAnalytic.cxx -std=c++17 -I.. -I/cvmfs/nova.opensciencegrid.org/externals/root/v6_28_12/Linux64bit+3.10-2.17-e26-p3915-prof/include -I/cvmfs/nova.opensciencegrid.org/externals/eigen/v23_08_01_66e8f/include/eigen3 -I/cvmfs/nova.opensciencegrid.org/externals/boost/v1_82_0/Linux64bit+3.10-2.17-e26-prof/include -I/cvmfs/nova.opensciencegrid.org/externals/gsl/v2_7/Linux64bit+3.10-2.17/include -g -Wall -Wpedantic -Wextra -Werror -Wno-error=deprecated-declarations -Wno-error=maybe-uninitialized -grecord-gcc-switches -O3 -DOSCLIB_STAN -D_REENTRANT -I/cvmfs/nova.opensciencegrid.org/externals/sundials/v6_5_0/include -I/cvmfs/nova.opensciencegrid.org/externals/stan_math/v4_5_0a/include -I/cvmfs/nova.opensciencegrid.org/externals/tbb/v2021_9_0/Linux64bit+3.10-2.17-e26/include -Wno-unused-function -DTBB_INTERFACE_NEW -c -fpic -o tmp/OscCalcAnalytic.o
In file included from /cvmfs/nova.opensciencegrid.org/externals/eigen/v23_08_01_66e8f/include/eigen3/Eigen/src/Core/MatrixBase.h:132,
                 from /cvmfs/nova.opensciencegrid.org/externals/eigen/v23_08_01_66e8f/include/eigen3/Eigen/Core:293,
                 from /cvmfs/nova.opensciencegrid.org/externals/eigen/v23_08_01_66e8f/include/eigen3/Eigen/Dense:1,
                 from /cvmfs/nova.opensciencegrid.org/externals/stan_math/v4_5_0a/include/stan/math/prim/fun/Eigen.hpp:22,
                 from ../OscLib/Stan.h:29,
                 from OscCalcAnalytic.cxx:5:
/cvmfs/nova.opensciencegrid.org/externals/stan_math/v4_5_0a/include/stan/math/prim/eigen_plugins.h:51:3: error:ISO C++ forbids declaration of ‘EIGEN_EMPTY_STRUCT_CTOR’ with no type [-fpermissive]
   51 |   EIGEN_EMPTY_STRUCT_CTOR(val_Op);
      |   ^~~~~~~~~~~~~~~~~~~~~~~
/cvmfs/nova.opensciencegrid.org/externals/stan_math/v4_5_0a/include/stan/math/prim/eigen_plugins.h:117:3: error:
 ISO C++ forbids declaration of ‘EIGEN_EMPTY_STRUCT_CTOR’ with no type [-fpermissive]
  117 |   EIGEN_EMPTY_STRUCT_CTOR(d_Op);
      |   ^~~~~~~~~~~~~~~~~~~~~~~
/cvmfs/nova.opensciencegrid.org/externals/stan_math/v4_5_0a/include/stan/math/prim/eigen_plugins.h:148:3: error:
 ISO C++ forbids declaration of ‘EIGEN_EMPTY_STRUCT_CTOR’ with no type [-fpermissive]
  148 |   EIGEN_EMPTY_STRUCT_CTOR(adj_Op);
      |   ^~~~~~~~~~~~~~~~~~~~~~~
/cvmfs/nova.opensciencegrid.org/externals/stan_math/v4_5_0a/include/stan/math/prim/eigen_plugins.h:193:3: error:
 ISO C++ forbids declaration of ‘EIGEN_EMPTY_STRUCT_CTOR’ with no type [-fpermissive]
  193 |   EIGEN_EMPTY_STRUCT_CTOR(vi_Op);
      |   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /cvmfs/nova.opensciencegrid.org/externals/eigen/v23_08_01_66e8f/include/eigen3/Eigen/src/Core/ArrayBase.h:100,
                 from /cvmfs/nova.opensciencegrid.org/externals/eigen/v23_08_01_66e8f/include/eigen3/Eigen/Core:305:
/cvmfs/nova.opensciencegrid.org/externals/stan_math/v4_5_0a/include/stan/math/prim/eigen_plugins.h:51:3: error:ISO C++ forbids declaration of ‘EIGEN_EMPTY_STRUCT_CTOR’ with no type [-fpermissive]
   51 |   EIGEN_EMPTY_STRUCT_CTOR(val_Op);
      |   ^~~~~~~~~~~~~~~~~~~~~~~
/cvmfs/nova.opensciencegrid.org/externals/stan_math/v4_5_0a/include/stan/math/prim/eigen_plugins.h:117:3: error:
 ISO C++ forbids declaration of ‘EIGEN_EMPTY_STRUCT_CTOR’ with no type [-fpermissive]
  117 |   EIGEN_EMPTY_STRUCT_CTOR(d_Op);
      |   ^~~~~~~~~~~~~~~~~~~~~~~
/cvmfs/nova.opensciencegrid.org/externals/stan_math/v4_5_0a/include/stan/math/prim/eigen_plugins.h:148:3: error:
 ISO C++ forbids declaration of ‘EIGEN_EMPTY_STRUCT_CTOR’ with no type [-fpermissive]
  148 |   EIGEN_EMPTY_STRUCT_CTOR(adj_Op);
      |   ^~~~~~~~~~~~~~~~~~~~~~~
/cvmfs/nova.opensciencegrid.org/externals/stan_math/v4_5_0a/include/stan/math/prim/eigen_plugins.h:193:3: error:
 ISO C++ forbids declaration of ‘EIGEN_EMPTY_STRUCT_CTOR’ with no type [-fpermissive]
  193 |   EIGEN_EMPTY_STRUCT_CTOR(vi_Op);

I'm not a stan expert but it looks like we need a new version of stan_math and co to play nice with this version of eigen.
If you want a stanfree-version of OscLib, I can cut one around this nuance, but it'd be cleaner to get all ducks in a row.
@chenel, who builds the stan-related items? Any insights here?

@chenel
Copy link
Contributor

chenel commented Apr 29, 2024

We have been getting Stan products via SciSoft, so it seems weird that they didn't come with the art update. Or are there maybe products sitting around in UPS and/or Spack that just haven't been noticed yet?

@PetrilloAtWork
Copy link

Can SciSoft people be included in this exchange? I don't think I understand the details enough to convey the message myself.

@gavinsdavies
Copy link
Contributor

sorry got derailed by too many other fires. yes, I'll convey this message on to Scisoft shortly to get a definitive response. Sorry for the delay!

@gavinsdavies
Copy link
Contributor

pinged scisoft team and asked to apply redmine issue: https://cdcvs.fnal.gov/redmine/issues/28782

@gavinsdavies
Copy link
Contributor

responded to redmine after testing that eigen v3_4_0 works for our current purposes.
assuming no objections from stakeholders, we'll proceed using this older version of eigen to make progress on the art314 build series

@gavinsdavies gavinsdavies self-assigned this Jul 2, 2024
@gavinsdavies gavinsdavies added bug Something isn't working feature New feature or request labels Jul 2, 2024
gavinsdavies added a commit that referenced this issue Jul 2, 2024
- responding to https://cdcvs.fnal.gov/redmine/issues/28782, dropping back to older eigen.
Newer eigen gives build errors. See #19
- update jenkins table matrix for builds to attempt.
@gavinsdavies gavinsdavies linked a pull request Jul 2, 2024 that will close this issue
@gavinsdavies
Copy link
Contributor

v00.24 exists with the e26, c14 flavours for the art314 upgrade (nutools series 316):

https://scisoft.fnal.gov/scisoft/packages/osclib/v00_24/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working feature New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants