Massimiliano Culpo
ab4e8449a2
Add a unit-test for compiler self-dependencies
2024-12-08 12:17:22 +01:00
Massimiliano Culpo
0ea1ead751
Exempt "compilers" and "runtimes" from default requirements
2024-12-08 12:17:22 +01:00
Massimiliano Culpo
8ca15e25bf
unit-tests: mark a few tests as xfail, or skip, for now
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:21 +01:00
Massimiliano Culpo
e6cd03711e
unit-tests: fix most unit tests to account for the new model
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:21 +01:00
Massimiliano Culpo
fa0b10148f
asp: fix intel-oneapi-compilers-classic
2024-12-08 12:17:21 +01:00
Massimiliano Culpo
fefdafea50
Exempt "compilers" and "runtimes" from default requirements
2024-12-08 12:17:20 +01:00
Massimiliano Culpo
67201b168c
Allow self concretization to bootstrap compilers
2024-12-08 12:17:20 +01:00
Massimiliano Culpo
e9372fe24c
Add more constraint to providers
2024-12-08 12:17:19 +01:00
Massimiliano Culpo
9b0f0a8cad
Fix for duplicate glibc in concretization
2024-12-08 12:17:19 +01:00
Massimiliano Culpo
40e0d389ea
Improve reporting when bootstrapping from source
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:18 +01:00
Massimiliano Culpo
1415f50a64
Improve error messages for statically checked specs
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:18 +01:00
Massimiliano Culpo
db2d1b40fc
spec: implemented direct satisfy semantic
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:17 +01:00
Massimiliano Culpo
e4ace1a63a
compilers_for_arch: improve implementation
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:17 +01:00
Massimiliano Culpo
0510c9fcde
Fixup binary cache reuse
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:16 +01:00
Massimiliano Culpo
0036713b81
Write adaptors for CompilerSpec and Compiler
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:16 +01:00
Massimiliano Culpo
c55ebdb183
Make BaseConfiguration pickleable
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:16 +01:00
Massimiliano Culpo
4a4ffe4733
(WIP) Fix cray manifest
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:15 +01:00
Massimiliano Culpo
88cb090e00
(WIP) Fix LMod module generation
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:15 +01:00
Massimiliano Culpo
15d75caafe
(WIP) Remove deprecated argument for Spec.format
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:14 +01:00
Massimiliano Culpo
9601f6a4c4
fixup: spec copies compiler annotation
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:14 +01:00
Massimiliano Culpo
30b9f6a1c1
Restore bootstrapping from binaries
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:13 +01:00
Massimiliano Culpo
0646759258
Restore bootstrapping from sources
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:13 +01:00
Massimiliano Culpo
255246bcf3
spec: change semantic of __getitem__
...
Now __getitem__ can pick items in the transitive link/run graph,
or from direct build dependencies.
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:12 +01:00
Massimiliano Culpo
c52ff9be8d
spec: bump specfile format to v5
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:12 +01:00
Massimiliano Culpo
fa40e6d021
Overhaul of the spack.compilers package
...
Now the package contains modules that help using, or
detecting, compiler packages.
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:11 +01:00
Massimiliano Culpo
5614e23f0b
Remove spack.compilers Python modules
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:11 +01:00
Massimiliano Culpo
87de7dbbfd
(WIP) Install mechanism
2024-12-08 12:17:11 +01:00
Massimiliano Culpo
a2e94365e2
(WIP) Recover bootstrapping from binaries on linux
2024-12-08 12:17:10 +01:00
Massimiliano Culpo
7a7556f154
unit-tests: fix concretization and spack compiler
tests
2024-12-08 12:17:10 +01:00
Massimiliano Culpo
8c1a4de9e2
solver: first working implementation of compiler as nodes
...
This commit changes the model to treat compilers as nodes, and
drops the concept of a "compiler" as a bundle of a C, C++, and
Fortran compiler.
Implementation does not rely on `Compiler` or `CompilerSpec`.
2024-12-08 12:17:09 +01:00
Massimiliano Culpo
a96acc548f
Deprecate packages:all:compiler and update default configs
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:08 +01:00
Massimiliano Culpo
20b4acb8b8
directives: remove workaround for the c, cxx and fortran language
...
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-12-08 12:17:08 +01:00
Massimiliano Culpo
8a78eb8c28
spack audit: account for % new semantic
...
Since % means "direct build dependency", we need to exclude
it from the check in audits.
2024-12-08 12:17:07 +01:00
Massimiliano Culpo
a8806e494b
Overhaul the spack compiler
command
...
This reverts commit 2c47dddbc1
.
Now, `spack compiler` writes by default in packages.yaml. Entries
in old `compilers.yaml` are converted to external specs as a way to
support legacy configuration.
Since this operation is expensive, an environment variable can be
used to enforce the deprecation of `compiler.yaml`.
The --mixed-toolchain option has been deprecated, since it stops to
make sense once compiler are treated as nodes.
2024-12-08 12:17:07 +01:00
Massimiliano Culpo
d72abc3dc7
Allow reading old JSON files
2024-12-08 12:17:06 +01:00
Massimiliano Culpo
4e69c7497e
parse_with_version_concrete: remove compiler=
switch
2024-12-08 12:17:06 +01:00
Massimiliano Culpo
0595d0a9d0
Make CompilerSpec raise on __init__
2024-12-08 12:17:06 +01:00
Massimiliano Culpo
d5bee0d4b0
parser: parse compilers as direct build deps
2024-12-08 12:17:05 +01:00
Harmen Stoppels
422f829e4e
mirrors: add missing init file ( #47977 )
2024-12-08 09:31:22 +01:00
Harmen Stoppels
05acd29f38
extensions.py: remove import of spack.cmd ( #47963 )
2024-12-07 10:08:04 +01:00
Harmen Stoppels
5c88e035f2
directives.py: remove redundant import ( #47965 )
2024-12-06 19:18:12 +01:00
Harmen Stoppels
94bd7b9afb
build_environment: drop off by one fix ( #47960 )
2024-12-06 17:01:46 +01:00
Massimiliano Culpo
112e47cc23
Don't inject import statements in package recipes
...
Remove a hack done by RepoLoader, which was injecting an extra
```
from spack.package import *
```
at the beginning of each package.py
2024-12-05 12:48:00 -08:00
Massimiliano Culpo
c1b2ac549d
solver: partition classes related to requirement parsing into their own file ( #47915 )
2024-12-05 18:10:06 +01:00
Harmen Stoppels
4693b323ac
spack.mirror: split into submodules ( #47936 )
2024-12-05 18:09:08 +01:00
Todd Gamblin
8b1009a4a0
resource
: clean up arguments and typing
...
- [x] Clean up arguments on the `resource` directive.
- [x] Add type annotations
- [x] Add `resource` to type annotations on `PackageBase`
- [x] Fix up `resource` docstrings
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
2024-12-04 22:49:18 -08:00
Todd Gamblin
f54526957a
directives: add type annotations to DirectiveMeta
class
...
Some of the class-level annotations were wrong, and some were missing. Annotate all the
functions here and fix the class properties to match what's actually happening.
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
2024-12-04 22:49:18 -08:00
Todd Gamblin
175a4bf101
directives: use Type[PackageBase]
instead of PackageBase
...
The first argument to each Spack directive is not a `PackageBase` instance but a
`PackageBase` class object, so fix the type annotations to reflect this.
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
2024-12-04 22:49:18 -08:00
Todd Gamblin
aa81d59958
directives: don't include Optional
in PatchesType
...
`Optional` shouldn't be part of `PatchesType` -- it's clearer to specify `Optional` it
in the methods that need their arguments to be optional.
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
2024-12-04 22:49:18 -08:00
Harmen Stoppels
f82554a39b
stage.py: improve path to url ( #47898 )
2024-12-04 09:41:38 +01:00