Module selection contexts¶
Description of the different contexts where a module is expressed to get resolved to modulefiles.
Module identification to select one module¶
- specification expresses exactly one module
- must qualify version to select in case a module has multiple versions
- expression may
- be absolute like mod/version
- be relative to the modulefile currently being evaluated like ./version or /version
- refer to symbolic version or module alias
- specification used to resolve argument passed to the following commands:
module-version
module-alias
module-virtual
(cannot use symbolic version or module alias, should define an actual module)module-info symbols
module-info version
module-info loaded
- relies on
getModuleNameVersion
procedure to get absolute name
Module version specification to return all matching modules¶
- specification expresses one or multiple modules
- expression may
- be absolute like mod/version
- refer to implicit or explicitly defined default version like mod
- refer to extended default version like mod/1 (to refer to mod/1.1.1)
- refer to symbolic version or module alias
- specify multiple versions as list (mod@1,2) or range (mod@:1 or mod@1:2)
- all modules matching specification are retrieved with
getModules
- specification used to resolve argument passed to the following commands:
avail
paths
whatis
- used to get all alias and symbolic version of loaded modules treated by:
list
- used to get all existing aliases and symbolic version (no module specification) by:
aliases
- used to get all existing modulefiles (no module specification) by:
search
Module version specification to select one module¶
- specification expresses one or multiple modules
- relies on the module version specification to return all matching modules
- then among matching modules, one is selected with
getPathToModule
: - the one set has the default version (also called the explicit default version)
- or the highest version in case no explicit default is found among results (also called the implicit default version)
- nothing is returned in case no explicit default is found among matching modules and implicit default version mechanism is disabled
- then among matching modules, one is selected with
- module selection may trigger another match retrieval
- for instance in case selection leads to an alias that resolves to a bare module name
- specification used to resolve argument passed to the following commands:
load
unload
(with attempt to match against loaded modules to resolve argument)switch
help
test
display
path
is-avail
- used to resolve aliases or symbolic versions treated by following commands:
paths
search
Module version specification to check compatibility¶
- specification expresses one or multiple modules
- expression may
- be absolute like mod/version
- refer to implicit or explicitly defined default version like mod
- refer to extended default version like mod/1 (to refer to mod/1.1.1)
- refer to symbolic version or module alias
- specify multiple versions as list (mod@1,2) or range (mod@:1 or mod@1:2)
- version specification is matched against loaded or loading modules with variety of procedures:
getLoadedMatchingName
getLoadedWithClosestName
isModuleEvaluated
doesModuleMatchesName
doesLoadingModuleMatchesName
- specification used to resolve argument passed to the following commands:
is-loaded
info-loaded
prereq
conflict
- for prereq command when version specification does not have a match among loaded or loading modules
- version specification is used to select one module per module specification
- for instance
prereq mod@:1.8 mod@1.10
triggers load tentative of default version among mod@:1.8 then if this tentative fails load of mod@1.10 is attempted - another example with
prereq mod mod@1.10
, which triggers load tentative of mod/default then if it fails load of mod@1.10 is attempted