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
getModulesspecification used to resolve argument passed to the following commands:
availspiderpathswhatislist(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 attemptedanother 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