Closed loriab closed 8 months ago
@evaleev , don't worry too much about the GHA fails on master. I ran into the "Repo" stage skipping once before and tried to make the "Export" stage skip with https://github.com/evaleev/libint/blob/master/.github/workflows/cmake.yml#L165 (can't run b/c no tarball produced by "Repo" stage), but apparently that doesn't work. I'll try something else.
Ok, this PR is rebased to master, and GHA checks out. ~the GHA is likely to complete successfully.~
@loriab what's the issue with *
in filenames on Windows? My concern with renamings is that existing tests/inputs will stop working ... would it be sufficient to provide symlinks to the "new" names and in Basis constructor add Windows-specific logic to change *
to s
in basis set names?
I don't recall the actual error with *
, only that it was reproducible. Sure, I think symlinks and some constructor logic would work. I'll work on that.
From the install below, it looks like Windows plain wasn't coping with the star character. I've now modified it so the star files don't get installed for Windows. Note that for all OSes, while the *
->s
basis files are symlinks in the repo, by the time they're exported to tarball, they are duplicate files.
2023-09-18T16:00:31.2068989Z -- Installing: D:/a/libint/libint/installed/share/libint/2.8.0/basis
2023-09-18T16:00:31.2069645Z -- Installing: D:/a/libint/libint/installed/share/libint/2.8.0/basis/3-21g.g94
2023-09-18T16:00:31.2070491Z -- Installing: D:/a/libint/libint/installed/share/libint/2.8.0/basis/6-311gss.g94
2023-09-18T16:00:31.3381459Z -- Installing: D:/a/libint/libint/installed/share/libint/2.8.0/basis/6-311g.g94
2023-09-18T16:00:31.3974234Z -- Installing: D:/a/libint/libint/installed/share/libint/2.8.0/basis/6-31g.g94
2023-09-18T16:00:31.4890708Z -- Installing: D:/a/libint/libint/installed/share/libint/2.8.0/basis/6-31gs.g94
2023-09-18T16:00:31.4895908Z -- Installing: D:/a/libint/libint/installed/share/libint/2.8.0/basis/6-31gss.g94
2023-09-18T16:00:31.4916508Z -- Installing: D:/a/libint/libint/installed/share/libint/2.8.0/basis/6-31G.g94
2023-09-18T16:00:31.4917618Z -- Installing: D:/a/libint/libint/installed/share/libint/2.8.0/basis/6-31g.g94
2023
Ok, full GHA passing again. The REGEX ... EXCLUDE
lines that work correctly in local Linux testing don't actually prevent the star files from installing on Windows, but I suppose the extra files aren't doing any harm. Tests are passing on all OS w/o the earlier basis name edits.
The below shows some promise (on Linux) for filtering out the star files. I'll try it out when rebasing 271 if there isn't another GHA run before then.
install(DIRECTORY ${PROJECT_SOURCE_DIR}/lib/basis
COMPONENT libint2
DESTINATION "${LIBINT2_INSTALL_DATADIR}"
FILES_MATCHING REGEX "[A-Za-z0-9\\)].g94"
)
Install working now -- description in PR frontmatter.
I think this is ready for consideration. After this is merged, there's a couple extra changes I can make to #271 (now that SH ordering isn't a choice at generation-time for multipoles) while doing its rebase. I'm glad to make more changes here, too.
thanks! I'll get #271 prepared.
~(currently atop #269)~
(in decreasing order of importance)
*
in the name, so6-311g**.g94
,6-31g**
,6-31g*
, and6-31G*
are renamed in the library and in tests to6-311gss.g94
, etc. If more Pople basis sets are planned, should instead do something like https://github.com/psi4/psi4/blob/1a971f184783b3e5c02e0055f508918d6fb56355/psi4/driver/qcdb/basislist.py#L162-L167, so the first becomes6-311g_d_p_.g94
~*
in the name (shows as unprintable,
), so6-311g**.g94
,6-31g**
,6-31g*
, and6-31G*
are symlinked in the repo to6-311gss.g94
, etc. For all OS, either "s" or "*" in the basis string name accesses the basis set. For Windows, only the "s" g94 files are installed, while for other OSes, both variants are installed. An extra test is added to unit/basis to show both work.INSTALL_INTERFACE:DATADIR
so that it is relocatable when_IMPORT_PREFIX
defined inlibint2-config.cmake
. The current syntax only works for Unix; conda is handling the Windows case that's painful to iteratively debug.