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-versionmodule-aliasmodule-virtual(cannot use symbolic version or module alias, should define an actual module)module-info symbolsmodule-info versionmodule-info loaded
- relies on
getModuleNameVersionprocedure 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)
- refer to a variant specification (with or without a module name specification)
- all modules matching specification are retrieved with
getModules - specification used to resolve argument passed to the following commands:
availpathswhatislist(matching specification retrieved from loaded modules, notgetModules)
- 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
- 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:
loadunload(with attempt to match against loaded modules to resolve argument)switchhelptestdisplaypathis-avail
- used to resolve aliases or symbolic versions treated by following commands:
pathssearch
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:
getLoadedMatchingNamegetLoadedWithClosestNameisModuleEvaluated
- specification used to resolve argument passed to the following commands:
is-loadedinfo-loadedprereqconflict
- 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.10triggers 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