Telcon: 2021 08 25
Peter Scheibel edited this page Aug 25, 2021
·
21 revisions
- Todd Gamblin
- Peter Scheibel
- Greg Becker
- Tamara Dahlgren
- Massimiliano Culpo
- Mark Krentel
- Nick Sly
- Kit Menlove
- Scott Warren
- Kenneth Hoste
(Note we likely won't cover all of these topics in this meeting - leftover topics will be pushed to the next meeting)
-
Announcement: upcoming support for installing packages with specific git commits: https://github.com/spack/spack/pull/24639
- With this PR, for a package which specifies a git repository, you can
spack install package@git-commit
(without listing the commit as a version) and Spack will install that
- With this PR, for a package which specifies a git repository, you can
-
Discussion: Spack compiler flag specification
- Specifying compiler flags is hard now
- We have
flag_handler
methods - Should we model specific flags (i.e. those which should be propagated vs. not)
- We should also designate between cases where we want to add flags vs. set them
- Currently
flag_handler
returns 3 values (which flags are added in the compiler wrapper, which are exported as shell vars, and which are fed to the build system) - Related: https://github.com/spack/spack/issues/14430
- Mark: Autotools will avoid setting any flags related to optimization if you set one
- It would make sense to pass a group of flags like
-g -O2
- This might relate to CMake build designations like Release/Debug/RelWithDebInfo from CMake
- i.e. could Spack offer a set of similar build designations for all Autotools packages which are analogous to the CMake designations
- It would make sense to pass a group of flags like
- Greg: treat flags more like other variants (e.g. let a user declare a
cflags
variant that overrides thecflags
set by compilers)- Once compilers are treated like other dependencies, flags on the compiler could be use variants
- This may be important when flags conflict (i.e. you need to use the same flags across two packages or they won't be compatible)
- ? Any examples of these flags? (GPU codes)
- This may be important when flags conflict (i.e. you need to use the same flags across two packages or they won't be compatible)
- Once compilers are treated like other dependencies, flags on the compiler could be use variants
- Massimiliano: there are cases where packages want to use flags for all except a few files
- For this we must be careful not to inject flags into wrappers
- Greg: working with Vanessa on a universal debug variant to all packages
- Also allows choosing whether to include optimization flags along with debug symbols
- See: https://github.com/spack/spack/pull/23231
-
(Partially covered - TBC next week) Discussion: Packages which require multiple build systems: how to handle them?
- E.g. a package where earlier versions use make and later versions use cmake
- Some packages will want to use a different build system on Windows
- Side note: packages are only used at build time
- ? Do we use
when
decorators on methods other than to constrain a method to only run for particular versions - Adam has created documentation on how to maintain a package which uses different build systems for different versions
- Todd: use
@when
decorators on the subclasses- Massimiliano: for packages which extend other packages, this would be problematic
-
(Not covered) Discussion: Defining a standard for shared and static libs
- For some packages +shared might build only shared libs, or both shared and static libs
-
~shared
definitely means don't build shared - See also: https://github.com/spack/spack/issues/2492
- Reuse in concretizer may negate issues with multivalued variant
linktype=static,shared
- Reuse in concretizer may negate issues with multivalued variant
- See also: https://github.com/spack/spack/issues/5269
-
(Not covered) Discussion: Packages with multiple conflicting libraries - how to support them?
- For now, any such package installed by Spack advertises just one from the set (this ensures that everything is consistent where needed)
- https://github.com/spack/seps/pull/2
-
(Not covered) Discussion: long environment activations - are you having an issue with this?
- Some large envs might have this problem, e.g.: https://github.com/spack/spack/issues/25555
-
General Q&A: any Spack questions folks have