Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add support for alternative/deprecated toolchain options #4587

Open
wants to merge 3 commits into
base: 5.0.x
Choose a base branch
from

Conversation

jfgrimm
Copy link
Member

@jfgrimm jfgrimm commented Jul 30, 2024

No description provided.

@jfgrimm jfgrimm added EasyBuild-5.0 EasyBuild 5.0 EasyBuild-5.0-blocker Blocker for EasyBuild 5.0 labels Jul 30, 2024
@jfgrimm jfgrimm added this to the 5.0 milestone Jul 30, 2024
@jfgrimm jfgrimm mentioned this pull request Jul 30, 2024
12 tasks
@jfgrimm
Copy link
Member Author

jfgrimm commented Jul 30, 2024

guess we should also consider what we would like to rename; current toolchain options are:

cciscxx
cstd
debug
defaultopt
defaultprec
extra_cflags
extra_cxxflags
extra_f90flags
extra_fcflags
extra_fflags
i8
ieee
loose
lowopt
noopt
openmp
opt
optarch
packed-linker-options
pic
precise
r8
rpath
shared
static
strict
unroll
vectorize
verbose
veryloose

@boegel
Copy link
Member

boegel commented Jul 31, 2024

@jfgrimm Can you come up with a table like you did in #4464, following the same policy?

@jfgrimm
Copy link
Member Author

jfgrimm commented Jul 31, 2024

@boegel as usual, suggestions/edits welcome

toolchain current proposed
cciscxx 'default_cc': 'cxx'
cstd
debug
defaultopt 'optim': 'default'
defaultprec 'precision': 'default'
extra_cflags
extra_cxxflags
extra_f90flags
extra_fcflags
extra_fflags
i8 8_byte_int
ieee ieee_754
loose
lowopt 'optim': 'low'
noopt 'optim': None
openmp
opt 'optim': 'high'
optarch arch_optim
packed-linker-options packed_linker_opts
pic
precise
r8 8_byte_real
rpath
shared
static
strict
unroll
vectorize
verbose
veryloose 'precision': 'very_loose'
clang loop-vectorize loop_vectorize
clang basic-block-vectorize basic_block_vectorize
craype dynamic
craype mpich-mt mpich_mt
cuda cuda_gencode
intelcompilers oneapi
intelcompilers oneapi_c_cxx
intelcompilers oneapi_fortran
mpi usempi 'default_cc': 'mpi_wrappers'

There are a few sets of boolean toggles that are currently mutually exclusive:

  • floating point precision: precise, defaultprec, loose, veryloose
  • compiler optimisations: opt, defaultopt , lowopt, noopt
  • default compiler ($CC): cciscxx, usempi

where it would probably make sense to combine these into single options with multiple supported values, e.g.:
precision=[very_loose|loose|default|high]
optim=[None|low|default|high]
default_cc=[None|cxx|mpi_wrappers]

of course, this would require some extra changes to accommodate for not being booleans

@Micket
Copy link
Contributor

Micket commented Aug 12, 2024

where it would probably make sense to combine these into single options

agreed

@boegel
Copy link
Member

boegel commented Aug 13, 2024

@jfgrimm (probably minor) merge conflict to fix here...

@boegel
Copy link
Member

boegel commented Aug 14, 2024

During today's conf call we briefly discussed that next to cstd there should also be a cxx_std, which raises the question: do we stick to cstd, or do we aim for c_std instead? Or do we introduce an extra cxxstd (which I guess violates our not-yet-documented policy to use _ as separator).
Or perhaps there's another even better option?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
EasyBuild-5.0-blocker Blocker for EasyBuild 5.0 EasyBuild-5.0 EasyBuild 5.0 enhancement
Projects
Status: Consistent naming policy
Development

Successfully merging this pull request may close these issues.

3 participants