Summary
Modernize the codebase to use C++20 features and improve overall code quality.
Proposed Changes
High Priority
Medium Priority
Benefits
- More maintainable and modern codebase
- Better integration with standard C++ library
- Improved robustness through validation
Compatibility Considerations
- C++20 may not be available on older systems
- Consider maintaining C++17 compatibility with conditional compilation
Summary
Modernize the codebase to use C++20 features and improve overall code quality.
Proposed Changes
High Priority
Replace custom
starts_with()function (main.cpp:34-42) with standard librarystd::string_view::starts_with()available in C++20target_compile_features(${target} PRIVATE cxx_std_20)Add validation for script path existence and executability in
init()functions_singularity_script.empty()but default is always setImprove environment variable override logic (main.cpp:417-422)
SLURM_SINGULARITY_BINDcheck only happens ifs_bind_mounts.empty()Medium Priority
Rename
Buttocksclass toSpankWrapperorSpankContext(main.cpp:61)Re-enable and improve input validation for bind paths (main.cpp:269-277)
Review static state usage (main.cpp:210-217)
inline staticvariablesBenefits
Compatibility Considerations