Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2023-12-14 | perl-test-base: New package (#41668) | Arne Becker | 1 | -0/+31 | |
Adds Test::Base | |||||
2023-12-14 | perl-datetime-format-strptime: New package (#41676) | Arne Becker | 13 | -4/+274 | |
* perl-datetime-format-strptime: New package Adds package: - perl-datetime-format-strptime And adds these because they are test dependencies: - perl-test-file-sharedir - perl-test2-plugin-nowarnings - perl-test2-suite And modifies these to enable build time tests: - perl-b-hooks-endofscope - perl-class-singleton - perl-datetime-locale - perl-datetime-timezone - perl-file-sharedir - perl-namespace-autoclean - perl-namespace-clean - perl-params-validationcompiler - perl-specio * Add myself as maintainer | |||||
2023-12-14 | perl-common-sense: New package (#41677) | Arne Becker | 1 | -0/+26 | |
2023-12-14 | perl-time-clock: New package (#41678) | Arne Becker | 1 | -0/+28 | |
2023-12-14 | perl-sql-reservedwords: New package (#41685) | Arne Becker | 1 | -0/+28 | |
2023-12-14 | py-pandas: add v2.1.4 (#41590) | Adam J. Stewart | 1 | -0/+1 | |
2023-12-14 | py-black: add v23.12.0 (#41589) | Adam J. Stewart | 1 | -0/+1 | |
2023-12-14 | intel-oneapi-compilers 2023.2.3: added new version to dpcpp package (#41680) | Andrey Perestoronin | 1 | -20/+32 | |
* add new cpp compiler version * empty ftn for 2023.2.3 * OLD ftn in 2023.2.3 version * tolerate missing fortran compiler --------- Co-authored-by: Robert Cohn <robert.s.cohn@intel.com> | |||||
2023-12-14 | spec parser: precompile quoting-related regular expressions (#41657) | Todd Gamblin | 2 | -8/+8 | |
This adds a small (~5%) performance improvement to Spec parsing. Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com> | |||||
2023-12-14 | Fix spack compiler wrappers in ESMF's esmf.mk on Cray when using cc, CC, ftn ↵ | Dom Heinzeller | 1 | -0/+8 | |
(#41640) | |||||
2023-12-14 | geant4: new version 11.2.0 (#41643) | Wouter Deconinck | 6 | -4/+27 | |
* geant4: new version 11.2.0 * geant4: depends_on geant4-data@11.2: * geant4-data: new version 11.2.0 * g4abla: new version 3.3 * g4emlow: new version 8.4 * g4incl: new version 1.1 * geant4: depends_on vecgeom@1.2.6: * geant4: depends_on qt@5.9: when @11.2: +qt * vecgeom: new version 1.2.6 | |||||
2023-12-13 | perl-cpanel-json-xs: New package (#41646) | Arne Becker | 1 | -0/+26 | |
2023-12-13 | perl-mock-config: New package (#41647) | Arne Becker | 1 | -0/+28 | |
2023-12-13 | perl-ref-util: New package (#41648) | Arne Becker | 1 | -0/+28 | |
2023-12-13 | Improve parsing of quoted flags and variants in specs (#41529) | Todd Gamblin | 7 | -188/+198 | |
This PR does several things: - [x] Allow any character to appear in the quoted values of variants and flags. - [x] Allow easier passing of quoted flags on the command line, e.g. `cflags="-O2 -g"`. - [x] Handle quoting better in spec output, using single quotes around double quotes and vice versa. - [x] Disallow spaces around `=` and `==` when parsing variants and flags. ## Motivation This PR is motivated by the issues above and by ORNL's [tips for launching at scale on Frontier](https://docs.olcf.ornl.gov/systems/frontier_user_guide.html#tips-for-launching-at-scale). ORNL recommends using `sbcast --send-libs` to broadcast executables and their libraries to compute nodes when running large jobs (e.g., 80k ranks). For an executable named `exe`, `sbcast --send-libs` stores the needed libraries in a directory alongside the executable called `exe_libs`. ORNL recommends pointing `LD_LIBRARY_PATH` at that directory so that `exe` will find the local libraries and not overwhelm the filesystem. There are other ways to mitigate this problem: * You could build with `RUNPATH` using `spack config add config:shared_linking:type:runpath`, which would make `LD_LIBRARY_PATH` take precedence over Spack's `RUNPATHs`. I don't recommend this one because `RUNPATH` can cause many other things to go wrong. * You could use `spack config add config:shared_linking:bind:true`, added in #31948, which will greatly reduce the filesystem load for large jobs by pointing `DT_NEEDED` entries in ELF *directly* at the needed `.so` files instead of relying on `RPATH` search via soname. I have not experimented with this at 80,000 ranks, but it should help quite a bit. * You could use [Spindle](https://github.com/hpc/Spindle) (as LLNL does on its machines) which should transparently fix this without any changes to your executable and without any need to use `sbcast` or other tools. But we want to support the `sbcast` use case as well. ## `sbcast` and Spack Spack's `RPATHs` break the `sbcast` fix because they're considered with higher precedence than `LD_LIBRARY_PATH`. So Spack applications will still end up hitting the shared filesystem when searching for libraries. We can avoid this by injecting some `ldflags` in to the build, e.g., if were were going to launch, say, `LAMMPS` at scale, we could add another `RPATH` specifically for use with `sbcast`: spack install lammps ldflags='-Wl,-rpath=$ORIGIN/lmp_libs' This will put the `lmp_libs` directory alongside `LAMMPS`'s `lmp` executable first in the `RPATH`, so it will be searched before any directories on the shared filesystem. ## Issues with quoting Before this PR, the command above would've errored out for two reasons: 1. `$` wasn't an allowed character in our spec parser. 2. You would've had to double quote the flags to get them to pass through correctly: spack install lammps ldflags='"-Wl,-rpath=$ORIGIN/lmp_libs"' This is ugly and I don't think many users will easily figure it out. The behavior was added in #29282, and it improved parsing of specs passed as a single string, e.g.: spack install 'lammps ldflags="-Wl,-rpath=$ORIGIN/lmp_libs"' but a lot of users are naturally going to try to quote arguments *directly* on the command line, without quoting their entire spec. #29282 used a heuristic to detect unquoted flags and warn the user, but the warning could be confusing. In particular, if you wrote `cflags="-O2 -g"` on the command line, it would break the flags up, warn, and tell you that you could fix the issue by writing `cflags="-O2 -g"` even though you just wrote that. It's telling you to *quote* that value, but the user has to know to double quote. ## New heuristic for quoted arguments from the CLI There are only two places where we allow arbitrary quoted strings in specs: flags and variant values, so this PR adds a simpler heuristic to the CLI parser: if an argument in `sys.argv` starts with `name=...`, then we assume the whole argument is quoted. This means you can write: spack install bzip2 cflags="-O2 -g" directly on the command line, without multiple levels of quoting. This also works: spack install 'bzip2 cflags="-O2 -g"' The only place where this heuristic runs into ambiguity is if you attempt to pass anonymous specs that start with `name=...` as one large string. e.g., this will be interpreted as one large flag value: spack find 'cflags="-O2 -g" ~bar +baz' This sets `cflags` to `"-O2 -g" ~bar +baz`, which is likely not what you wanted. You can fix this easily by either removing the quotes: spack find cflags="-O2 -g" ~bar +baz Or by adding a space at the start, which has the same effect: spack find ' cflags="-O2 -g" ~bar +baz' You may wonder why we don't just look for quotes inside of flag arguments, and the reason is that you *might* want them there. If you are passing arguments like: spack install zlib cppflags="-D DEBUG_MSG1='quick fox' -D DEBUG_MSG2='lazy dog'" You *need* the quotes there. So we've opted for one potentially confusing, but easily fixed outcome vs. limiting what you can put in your quoted strings. ## Quotes in formatted spec output In addition to being more lenient about characters accepted in quoted strings, this PR fixes up spec formatting a bit. We now format quoted strings in specs with single quotes, unless the string has a single quote in it, in which case we JSON-escape the string (i.e., we add `\` before `"` and `\`). zlib cflags='-D FOO="bar"' zlib cflags="-D FOO='bar'" zlib cflags="-D FOO='bar' BAR=\"baz\"" | |||||
2023-12-13 | camp: fixing build issue (#41400) | yizeyi18 | 2 | -0/+26 | |
* adding necessary headers, to fix https://github.com/spack/spack/issues/41398 * deleting something imported by accident * [@spackbot] updating style on behalf of yizeyi18 * undo commit 7688fed according to suggestion from @msimberg * patching camp@:2022.10.1 for compatibility with gcc-13 * adding the patch * fixing paths in the patch * [@spackbot] updating style on behalf of yizeyi18 * Update camp patch using LLNL/camp@05e1c35 Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi> * changing patch name --------- Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi> | |||||
2023-12-13 | python: don't run mkdirp in `setup_dependent_package` (#41603) | Harmen Stoppels | 2 | -5/+2 | |
`setup_dependent_package` is not a build phase, it should just set globals for a package. It's called during setup of runtime environment of packages, and there have been reports of it actually failing due to a read only file system (not sure under what exact conditions that is possible). | |||||
2023-12-13 | perl-config-tiny: New package (#41584) | Arne Becker | 1 | -0/+28 | |
2023-12-13 | perl-b-cow: New package (#41596) | Arne Becker | 1 | -0/+28 | |
2023-12-13 | perl-throwable: New package (#41597) | Arne Becker | 1 | -0/+31 | |
2023-12-13 | perl-scope-guard: New package (#41598) | Arne Becker | 1 | -0/+28 | |
2023-12-13 | perl-test-sharedfork: New package (#41599) | Arne Becker | 1 | -0/+29 | |
2023-12-13 | perl-safe-isa: New package (#41600) | Arne Becker | 1 | -0/+28 | |
2023-12-13 | perl-proc-processtable: New package (#41601) | Arne Becker | 1 | -0/+28 | |
2023-12-13 | perl-net-ip: New package (#41606) | Arne Becker | 1 | -0/+26 | |
2023-12-13 | perl-any-uri-escape: New package (#41607) | Arne Becker | 1 | -0/+28 | |
2023-12-13 | perl-term-table: New package (#41608) | Arne Becker | 1 | -0/+28 | |
2023-12-13 | perl-test-pod: New package (#41609) | Arne Becker | 1 | -0/+28 | |
2023-12-13 | perl-spiffy: New package (#41610) | Arne Becker | 1 | -0/+28 | |
2023-12-13 | perl-ipc-system-simple: New package (#41611) | Arne Becker | 1 | -0/+28 | |
2023-12-13 | perl-mime-types: New package (#41612) | Arne Becker | 1 | -0/+26 | |
2023-12-13 | perl-convert-nls-date-format: New package (#41613) | Arne Becker | 1 | -0/+29 | |
2023-12-13 | perl-module-pluggable: New package (#41614) | Arne Becker | 1 | -0/+28 | |
2023-12-13 | perl-email-date-format: New package (#41617) | Arne Becker | 1 | -0/+28 | |
2023-12-13 | perl-heap: New package (#41618) | Arne Becker | 1 | -0/+26 | |
2023-12-13 | spack mirror create --all: include patches (#41579) | Harmen Stoppels | 1 | -26/+25 | |
2023-12-13 | perl-log-any: New package (#41619) | Arne Becker | 1 | -0/+26 | |
2023-12-13 | perl-http-cookiejar: New package (#41620) | Arne Becker | 1 | -0/+32 | |
2023-12-13 | Revert "[protobuf] New versions, explicit cxxstd variant (#41459)" (#41635) | Harmen Stoppels | 1 | -32/+5 | |
This reverts commit b82bd8e6b630e477396b9a51b56c66194fb52c9d. | |||||
2023-12-13 | mysql: add v8.0.35, fix build (#41602) | Massimiliano Culpo | 1 | -10/+40 | |
2023-12-13 | Add pic variant when building the library (#41631) | Taillefumier Mathieu | 1 | -0/+6 | |
* Add pic variant when building the library * make pretty * Probably better approach | |||||
2023-12-13 | hepmc3: fix from_variant -> self.define (#41605) | Wouter Deconinck | 1 | -2/+2 | |
* hepmc3: fix from_variant -> self.define * hepmc3: str on versions | |||||
2023-12-12 | perl-getopt-argvfile: add new package with version 1.11 (#41625) | Christopher Christofi | 1 | -0/+15 | |
2023-12-12 | perl-parselex: add new package with version 2.21 (#41626) | Christopher Christofi | 1 | -0/+15 | |
2023-12-12 | Remove MCT license annotation (#41593) | Aiden Grossman | 1 | -3/+3 | |
This license annotation is currently invalid as it specifies a URL rather than an SPDX expression. Remove it for now until we have a consensus on how to represent this case. | |||||
2023-12-12 | pastix: new release v6.3.2 (#41585) | fpruvost | 1 | -1/+2 | |
2023-12-12 | perl-clone-pp: New package (#41586) | Arne Becker | 1 | -0/+28 | |
2023-12-12 | kakoune: add v2023.08.05 (#41443) | James Taliaferro | 1 | -0/+5 | |
2023-12-12 | perl-ipc-run3: New package (#41583) | Arne Becker | 1 | -0/+26 | |
2023-12-12 | Update bioconductor packages (#41227) | pabloaledo | 8 | -4/+135 | |
Signed-off-by: Pablo <pablo.aledo@seqera.io> |