mirror of
https://github.com/envmodules/modules.git
synced 2026-06-18 00:06:53 +08:00
Register alias and symbolic version deep resolution at definition time through a new 'setModuleResolution' procedure called by 'module-version' and 'module-alias' procedures. Make use of new global array 'g_moduleResolved' and its reverse structure 'g_resolvedHash' to keep registered resolution at hand. Also introduce 'g_symbolHash' global array to register and easily get the list of all symbols for a given module. As resolution is now computed at definition time, the 'getVersAliasList' and 'resolveModuleVersionOrAlias' procedures can be greatly simplified and just need to return the value of the 'g_symbolHash' or 'g_moduleResolved' arrays for the module name passed as argument. This change saves lot of time especially on commands heavily relying on these procedures like 'avail'. The global arrays 'g_versionHash', 'g_moduleDefault' and 'g_aliasHash' become useless with this change so they have been removed. As a side effect of resolving alias and symbolic version at definition time, resolution loop are not registered anymore and produce an error message when spotted.