Skip to content

sesame2spiner refactor#641

Open
adamdempsey90 wants to merge 18 commits into
mainfrom
dempsey/sesrefac
Open

sesame2spiner refactor#641
adamdempsey90 wants to merge 18 commits into
mainfrom
dempsey/sesrefac

Conversation

@adamdempsey90

Copy link
Copy Markdown
Collaborator

PR Summary

This does some refactoring on the code base to build sesame2spiner as a library that singularity-eos links in while maintaining the executable sesame2spiner. sesame2spiner was linking in singularity-eos for some things, so I have moved those shared headers into a new library called singularity-utils. For backwards compatibility in downstream codes, I have replaced the headers lost in singularity-eos/base with forwarding headers to singularity-utils. I have updated the includes in singularity-eos proper with the new ones.

If I did everything correctly, nothing should've changed. So my plan is to have this MR merged, then follow up with adding the functions to sesame2spiner the library to process tables without reading a file.

PR Checklist

  • Adds a test for any bugs fixed. Adds tests for new features.
  • Format your changes by using the make format command after configuring with cmake.
  • Document any new features, update documentation for changes made.
  • Make sure the copyright notice on any files you modified is up to date.
  • After creating a pull request, note it in the CHANGELOG.md file.
  • LANL employees: make sure tests pass both on the github CI and on the Darwin CI
  • If ML was used, make sure to add a disclaimer at the top of a file indicating ML was used to assist in generating the file.
  • If Agentic AI was used, have the AI generate a "proposed changes" markdown file and store it in the plan_histories folder, with a filename the same as the MR number.

If preparing for a new release, in addition please check the following:

  • Update the version in cmake.
  • Move the changes in the CHANGELOG.md file under a new header for the new release, and reset the categories.
  • Maintainers: ensure spackages are up to date:
    • LANL-internal team, update XCAP spackages
    • Current maintainer of upstream spackages, submit MR to spack

@adamdempsey90

Copy link
Copy Markdown
Collaborator Author

Evidently there's some cmake stuff left to figure it when things like spiner are not requested or when not in submodule mode maybe

Comment thread singularity-eos/eos/eos_gruneisen.hpp Outdated
Comment thread singularity-eos/eos/eos_vinet.hpp Outdated
Comment thread singularity-eos/eos/eos_vinet.hpp Outdated
# Check both HDF5_C_COMPILER_NO_INTERROGATE and HDF5_C_COMPILER_EXECUTABLE_NO_INTERROGATE
# as the variable name may differ across CMake/HDF5 versions
if(NOT ((HDF5_C_COMPILER_NO_INTERROGATE OR HDF5_C_COMPILER_EXECUTABLE_NO_INTERROGATE) AND SINGULARITY_FORCE_SUBMODULE_MODE))

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this might be the cray hdf5 issue I've seen previously

Comment on lines +72 to +73
PRIVATE
sesame2spiner-lib

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not totally sure on if this should be private or public

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is not included anywhere I think?

Comment thread CMakeLists.txt
$<$<AND:$<CXX_COMPILER_ID:GNU>,$<COMPILE_LANGUAGE:CXX>>:-Wno-class-memaccess>
# Intel compilers enable -ffast-math even in Debug builds. This disables finite-math-only in
# Debug builds to allow NaN/Inf checks without pages of warnings
# Disable finite-math-only in Debug builds to allow NaN/Inf checks (Intel compilers)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Accidental change

@adamdempsey90

Copy link
Copy Markdown
Collaborator Author

Evidently there's some cmake stuff left to figure it when things like spiner are not requested or when not in submodule mode maybe

Okay, all tests are passing now so I think this is ready for review

@buechlerm

buechlerm commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

Is there an expected lifecycle for the forwarding headers? If so, how should we communicate to users that the forwarding headers are in place? Our changelog mostly just points users to MR's, but maybe in this case something more concrete about changes they should make? Issue a warning if the forwarding header is used?

@adamdempsey90

Copy link
Copy Markdown
Collaborator Author

Is there an expected lifecycle for the forwarding headers? If so, how should we communicate to users that the forwarding headers are in place? Our changelog mostly just points users to MR's, but maybe in this case something more concrete about changes they should make? Issue a warning if the forwarding header is used?

I see a few options:

  1. I could add a #warning to those headers and then we delete them after they've been in place for 1 release. That could be communicated in the changelog for the next release.

  2. I could just not have these at all and the next release is potentially breaking (I don't think that's a huge deal).

  3. We always have the forwarding headers.

I don't really think people outside of us are going to act on the warnings, so I'm leaning towards option 2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants