diff --git a/rt/modulerc/err.txt b/rt/modulerc/err.txt index d38a4b9be..cbbd3014f 100644 --- a/rt/modulerc/err.txt +++ b/rt/modulerc/err.txt @@ -967,7 +967,7 @@ lua ProjectDIR/src/lmod.in.lua shell --regression_testing avail ProjectDIR/rt/modulerc/mfD/Core C/1.0 D/3.0 (NF) cluster/a hard/1.0 C/2.0 F/1.0 (NF) cluster/b hard/3.0 (D) - C/3.0 (F,D) G/2.0 cluster/c xcc/1.0 + C/3.0 (F,D) G/2.0 cluster/c Where: D: Default Module F: Forbidden Module @@ -986,7 +986,7 @@ ProjectDIR/rt/modulerc/mfD/Core C/2.0 H/1.0 (s) hard/3.0 (D) C/3.0 (F,D) cluster/a soft/1.0 (s,D) D/3.0 (NF) cluster/b soft/2.0 (H) - F/1.0 (NF) cluster/c xcc/1.0 + F/1.0 (NF) cluster/c G/1.0 (H) cluster/.defaultCluster (H,F,D) Where: D: Default Module @@ -1028,8 +1028,6 @@ hard/3.0 soft/ soft/1.0 soft/2.0 -xcc/ -xcc/1.0 =========================== step 81 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load C @@ -1116,11 +1114,9 @@ The following is a list of the modules and extensions currently available: C: C/1.0, C/2.0, C/3.0 D: D/3.0 F: F/1.0 - Foo: Foo/visible G: G/2.0 cluster: cluster/a, cluster/b, cluster/c hard: hard/1.0, hard/3.0 - xcc: xcc/1.0 To learn more about a package execute: $ module spider Foo where "Foo" is the name of a module. @@ -1135,13 +1131,11 @@ The following is a list of the modules and extensions currently available: C: C/1.0, C/2.0, C/3.0 D: D/3.0 F: F/1.0 - Foo: Foo/invisible, Foo/visible G: G/1.0, G/2.0 H: H/1.0 cluster: cluster/a, cluster/b, cluster/c, cluster/.defaultCluster hard: hard/1.0, hard/3.0 soft: soft/1.0, soft/2.0 - xcc: xcc/1.0 To learn more about a package execute: $ module spider Foo where "Foo" is the name of a module. @@ -1160,8 +1154,6 @@ D/ D/3.0 F/ F/1.0 -Foo/ -Foo/visible G/ G/2.0 cluster/ @@ -1171,8 +1163,6 @@ cluster/c hard/ hard/1.0 hard/3.0 -xcc/ -xcc/1.0 =========================== step 91 lua ProjectDIR/src/lmod.in.lua shell --regression_testing -t -A spider @@ -1185,9 +1175,6 @@ D/ D/3.0 F/ F/1.0 -Foo/ -Foo/invisible -Foo/visible G/ G/1.0 G/2.0 @@ -1204,8 +1191,6 @@ hard/3.0 soft/ soft/1.0 soft/2.0 -xcc/ -xcc/1.0 =========================== step 92 lua ProjectDIR/src/lmod.in.lua shell --regression_testing -A avail @@ -1215,7 +1200,7 @@ ProjectDIR/rt/modulerc/mfD/Core C/2.0 H/1.0 (s,L) hard/3.0 (D) C/3.0 (F,D) cluster/a soft/1.0 (s,D) D/3.0 (NF,L) cluster/b soft/2.0 (H) - F/1.0 (NF) cluster/c xcc/1.0 + F/1.0 (NF) cluster/c G/1.0 (H) cluster/.defaultCluster (H,F,D) Where: D: Default Module @@ -1233,69 +1218,133 @@ Use "module keyword key1 key2 ..." to search for all possible modules matching a step 93 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load soft/1.0 =========================== -module: soft/1.0 isVisible status: false =========================== step 94 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load G/1.0 =========================== -module: G/1.0 isVisible status: false =========================== step 95 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load C/1.0 =========================== -module: C/1.0 isVisible status: true =========================== step 96 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge +=========================== +=========================== +step 97 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing avail +=========================== +ProjectDIR/rt/modulerc/mfE/Core + A/1.0 A/2.0 (D) B/3.0 C/1.0 + Where: + D: Default Module +If the avail list is too long consider trying: +"module --default avail" or "ml -d av" to just list the default modules. +"module overview" or "ml ov" to display the number of modules for each name. +Use "module spider" to find all possible modules and extensions. +Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys". +=========================== +step 98 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing -A avail +=========================== +ProjectDIR/rt/modulerc/mfE/Core + A/1.0 B/3.0 EESSI/1.0 (H) F/1.0 (H) + A/2.0 (D) C/1.0 EESSI/2.0 (H) + Where: + D: Default Module + H: Hidden Module +If the avail list is too long consider trying: +"module --default avail" or "ml -d av" to just list the default modules. +"module overview" or "ml ov" to display the number of modules for each name. +Use "module spider" to find all possible modules and extensions. +Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys". +=========================== +step 99 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing load A/1.0 +=========================== +Lmod has detected the following error: The following module(s) are unknown: "EESSI" +Please check the spelling or version number. Also try "module spider ..." +It is also possible your cache file is out-of-date; it may help to try: + $ module --ignore_cache load "EESSI" +Also make sure that all modulefiles written in TCL start with the string #%Module +Executing this command requires loading "EESSI" which failed while processing the following module(s): + Module fullname Module Filename + A/1.0 ProjectDIR/rt/modulerc/mfE/Core/A/1.0.lua +=========================== +step 100 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing load B/3.0 +=========================== +=========================== +step 101 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing load F/1.0 +=========================== +=========================== +step 102 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing rm F/1.0 +=========================== +=========================== +step 103 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing load EESSI/1.0 +=========================== +=========================== +step 104 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge +=========================== +=========================== +step 105 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load xcc Foo/invisible =========================== module: xcc/1.0 isVisible status: true module: Foo/invisible isVisible status: false =========================== -step 97 +step 106 lua ProjectDIR/src/lmod.in.lua shell --regression_testing -A avail =========================== -ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0 +ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0 Foo/invisible (H,L) Foo/visible (D) -ProjectDIR/rt/modulerc/mfD/Core - C/1.0 (L) G/2.0 (D) hard/1.0 - C/2.0 H/1.0 (s,L) hard/3.0 (D) - C/3.0 (F,D) cluster/a soft/1.0 (s,L,D) - D/3.0 (NF,L) cluster/b soft/2.0 (H) - F/1.0 (NF) cluster/c xcc/1.0 (L) - G/1.0 (H,L) cluster/.defaultCluster (H,F,D) +ProjectDIR/rt/modulerc/mfF/Core + xcc/1.0 (L) Where: - D: Default Module - F: Forbidden Module - H: Hidden Module - L: Module is loaded - NF: Nearly Forbidden Module - s: Soft Hidden Module + D: Default Module + H: Hidden Module + L: Module is loaded If the avail list is too long consider trying: "module --default avail" or "ml -d av" to just list the default modules. "module overview" or "ml ov" to display the number of modules for each name. Use "module spider" to find all possible modules and extensions. Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys". =========================== -step 98 +step 107 lua ProjectDIR/src/lmod.in.lua shell --regression_testing unload Foo/invisible xcc =========================== =========================== -step 99 +step 108 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load xcc Foo/invisible =========================== module: xcc/1.0 isVisible status: true module: Foo/invisible isVisible status: false =========================== -step 100 +step 109 lua ProjectDIR/src/lmod.in.lua shell --regression_testing unload Foo/invisible xcc =========================== =========================== -step 101 +step 110 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load xcc =========================== module: xcc/1.0 isVisible status: true =========================== -step 102 +step 111 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing load Foo/invisible +=========================== +module: Foo/invisible isVisible status: false +=========================== +step 112 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing load xcc +=========================== +module: xcc/1.0 isVisible status: true +module: Foo/invisible isVisible status: false +=========================== +step 113 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load Foo/invisible =========================== module: Foo/invisible isVisible status: false diff --git a/rt/modulerc/isVisibleHook_SitePackage.lua b/rt/modulerc/isVisibleHook_SitePackage.lua new file mode 100644 index 000000000..1781a254f --- /dev/null +++ b/rt/modulerc/isVisibleHook_SitePackage.lua @@ -0,0 +1,7 @@ +local hook = require("Hook") +local function visible_hook(modT) + if (modT.fullName:find("EESSI/")) then + modT.isVisible = false + end +end +hook.register("isVisibleHook", visible_hook) diff --git a/rt/modulerc/mfE/Core/A/1.0.lua b/rt/modulerc/mfE/Core/A/1.0.lua new file mode 100644 index 000000000..a492567ac --- /dev/null +++ b/rt/modulerc/mfE/Core/A/1.0.lua @@ -0,0 +1 @@ +depends_on("EESSI") diff --git a/rt/modulerc/mfD/Compiler/xcc/1.0/Foo/invisible.lua b/rt/modulerc/mfE/Core/A/2.0.lua similarity index 100% rename from rt/modulerc/mfD/Compiler/xcc/1.0/Foo/invisible.lua rename to rt/modulerc/mfE/Core/A/2.0.lua diff --git a/rt/modulerc/mfE/Core/B/3.0.lua b/rt/modulerc/mfE/Core/B/3.0.lua new file mode 100644 index 000000000..43dd00906 --- /dev/null +++ b/rt/modulerc/mfE/Core/B/3.0.lua @@ -0,0 +1 @@ +depends_on("EESSI/1.0") diff --git a/rt/modulerc/mfE/Core/C/1.0.lua b/rt/modulerc/mfE/Core/C/1.0.lua new file mode 100644 index 000000000..53c0f47a6 --- /dev/null +++ b/rt/modulerc/mfE/Core/C/1.0.lua @@ -0,0 +1 @@ +depends_on("F/1.0") diff --git a/rt/modulerc/mfD/Compiler/xcc/1.0/Foo/visible.lua b/rt/modulerc/mfE/Core/EESSI/1.0.lua similarity index 100% rename from rt/modulerc/mfD/Compiler/xcc/1.0/Foo/visible.lua rename to rt/modulerc/mfE/Core/EESSI/1.0.lua diff --git a/rt/modulerc/mfE/Core/EESSI/2.0.lua b/rt/modulerc/mfE/Core/EESSI/2.0.lua new file mode 100644 index 000000000..e69de29bb diff --git a/rt/modulerc/mfE/Core/F/.modulerc.lua b/rt/modulerc/mfE/Core/F/.modulerc.lua new file mode 100644 index 000000000..536d3f946 --- /dev/null +++ b/rt/modulerc/mfE/Core/F/.modulerc.lua @@ -0,0 +1 @@ +hide{name="F"} diff --git a/rt/modulerc/mfE/Core/F/1.0.lua b/rt/modulerc/mfE/Core/F/1.0.lua new file mode 100644 index 000000000..e69de29bb diff --git a/rt/modulerc/mfD/Compiler/xcc/1.0/Foo/.modulerc.lua b/rt/modulerc/mfF/Compiler/xcc/1.0/Foo/.modulerc.lua similarity index 100% rename from rt/modulerc/mfD/Compiler/xcc/1.0/Foo/.modulerc.lua rename to rt/modulerc/mfF/Compiler/xcc/1.0/Foo/.modulerc.lua diff --git a/rt/modulerc/mfF/Compiler/xcc/1.0/Foo/invisible.lua b/rt/modulerc/mfF/Compiler/xcc/1.0/Foo/invisible.lua new file mode 100644 index 000000000..e69de29bb diff --git a/rt/modulerc/mfF/Compiler/xcc/1.0/Foo/visible.lua b/rt/modulerc/mfF/Compiler/xcc/1.0/Foo/visible.lua new file mode 100644 index 000000000..e69de29bb diff --git a/rt/modulerc/mfD/Core/xcc/1.0.lua b/rt/modulerc/mfF/Core/xcc/1.0.lua similarity index 100% rename from rt/modulerc/mfD/Core/xcc/1.0.lua rename to rt/modulerc/mfF/Core/xcc/1.0.lua diff --git a/rt/modulerc/modulerc.tdesc b/rt/modulerc/modulerc.tdesc index 78daf805b..638802d00 100644 --- a/rt/modulerc/modulerc.tdesc +++ b/rt/modulerc/modulerc.tdesc @@ -25,7 +25,7 @@ testdescript = { HOME=`/bin/pwd` cacheDir=`userCacheDir` - remove_generated_lmod_files myCacheDir fn spiderT.lua + remove_generated_lmod_files myCacheDir fn spiderT.lua SitePackage.lua cp $(testDir)/dot.modulerc .modulerc @@ -224,26 +224,45 @@ EOF mkdir -p $HOME/.cache/lmod buildSpiderT $MODULEPATH > $HOME/.cache/lmod/spiderT.lua runLmod -A avail #92 - export LMOD_PACKAGE_PATH=$(testDir) runLmod load soft/1.0 #93 runLmod load G/1.0 #94 runLmod load C/1.0 #95 - runLmod load xcc Foo/invisible #96 - runLmod -A avail #97 - cp $HOME/.cache/lmod/spiderT.lua spiderT.87.lua rm -rf $HOME/.cache - runLmod unload Foo/invisible xcc # 98 - runLmod load xcc Foo/invisible # 99 - runLmod unload Foo/invisible xcc #100 - runLmod load xcc #101 - runLmod load Foo/invisible #102 - runLmod load xcc #103 - runLmod load Foo/invisible #104 + runLmod purge #96 + unsetMT + unset LMOD_MODULERC + export LMOD_PACKAGE_PATH=$(outputDir) + export MODULEPATH_ROOT=$(testDir)/mfE + export MODULEPATH=$MODULEPATH_ROOT/Core + cp $(testDir)/isVisibleHook_SitePackage.lua SitePackage.lua + runLmod avail #97 + runLmod -A avail #98 + runLmod load A/1.0 #99 + runLmod load B/3.0 #100 + runLmod load F/1.0 #101 + runLmod rm F/1.0 #102 + runLmod load EESSI/1.0 #103 + + runLmod purge #104 + unsetMT + unset LMOD_MODULERC + cp $(testDir)/SitePackage.lua . + export MODULEPATH_ROOT=$(testDir)/mfF + export MODULEPATH=$MODULEPATH_ROOT/Core + runLmod load xcc Foo/invisible #105 + runLmod -A avail #106 + + runLmod unload Foo/invisible xcc #107 + runLmod load xcc Foo/invisible #108 + runLmod unload Foo/invisible xcc #109 + runLmod load xcc #110 + runLmod load Foo/invisible #111 + runLmod load xcc #112 + runLmod load Foo/invisible #113 - HOME=$ORIG_HOME diff --git a/rt/modulerc/out.txt b/rt/modulerc/out.txt index 6f8ca1999..3258cc329 100644 --- a/rt/modulerc/out.txt +++ b/rt/modulerc/out.txt @@ -2224,15 +2224,6 @@ timestampFn = { false, } mrcMpathT = { - ["ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0"] = { - hiddenT = { - ["Foo/invisible"] = { - action = "hide", - kind = "hidden", - name = "Foo/invisible", - }, - }, - }, ["ProjectDIR/rt/modulerc/mfD/Core"] = { forbiddenT = { ["C/3.0"] = { @@ -2327,51 +2318,6 @@ mrcMpathT = { }, } spiderT = { - ["ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0"] = { - Foo = { - defaultA = { - { - barefn = ".modulerc.lua", - defaultIdx = 2, - fn = "ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0/Foo/.modulerc.lua", - fullName = "Foo/.modulerc", - luaExt = 10, - mpath = "ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0", - value = false, - }, - }, - defaultT = { - barefn = ".modulerc.lua", - defaultIdx = 2, - fn = "ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0/Foo/.modulerc.lua", - fullName = "Foo/.modulerc", - luaExt = 10, - mpath = "ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0", - value = false, - }, - dirT = {}, - fileT = { - ["Foo/invisible"] = { - Version = "invisible", - canonical = "invisible", - fn = "ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0/Foo/invisible.lua", - luaExt = 10, - mpath = "ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0", - pV = "*invisible.*zfinal", - wV = "*invisible.*zfinal", - }, - ["Foo/visible"] = { - Version = "visible", - canonical = "visible", - fn = "ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0/Foo/visible.lua", - luaExt = 8, - mpath = "ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0", - pV = "*visible.*zfinal", - wV = "*visible.*zfinal", - }, - }, - }, - }, ["ProjectDIR/rt/modulerc/mfD/Core"] = { B = { defaultA = { @@ -2812,31 +2758,10 @@ spiderT = { }, }, }, - xcc = { - defaultA = {}, - defaultT = {}, - dirT = {}, - fileT = { - ["xcc/1.0"] = { - Version = "1.0", - canonical = "1.0", - changeMPATH = true, - fn = "ProjectDIR/rt/modulerc/mfD/Core/xcc/1.0.lua", - luaExt = 4, - mpath = "ProjectDIR/rt/modulerc/mfD/Core", - pV = "000000001.*zfinal", - wV = "000000001.*zfinal", - }, - }, - }, }, version = 5, } -mpathMapT = { - ["ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0"] = { - ["xcc/1.0"] = "ProjectDIR/rt/modulerc/mfD/Core", - }, -} +mpathMapT = {} =========================== step 88 lua ProjectDIR/src/lmod.in.lua shell --regression_testing spider @@ -2915,91 +2840,194 @@ _ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={C={fn="Project export _ModuleTable_; =========================== step 96 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge +=========================== +unset LOADEDMODULES; +MODULEPATH=ProjectDIR/rt/modulerc/mfD/Core; +export MODULEPATH; +unset _LMFILES_; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/modulerc/mfD/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfD/Core",}'; +export _ModuleTable_; +=========================== +step 97 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing avail +=========================== +__LMOD_REF_COUNT_MODULEPATH=ProjectDIR/rt/modulerc/mfE/Core:1; +export __LMOD_REF_COUNT_MODULEPATH; +MODULEPATH=ProjectDIR/rt/modulerc/mfE/Core; +export MODULEPATH; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/modulerc/mfE/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfE/Core",}'; +export _ModuleTable_; +=========================== +step 98 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing -A avail +=========================== +MODULEPATH=ProjectDIR/rt/modulerc/mfE/Core; +export MODULEPATH; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/modulerc/mfE/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfE/Core",}'; +export _ModuleTable_; +=========================== +step 99 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing load A/1.0 +=========================== +false +=========================== +step 100 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing load B/3.0 +=========================== +LOADEDMODULES=EESSI/1.0:B/3.0; +export LOADEDMODULES; +MODULEPATH=ProjectDIR/rt/modulerc/mfE/Core; +export MODULEPATH; +_LMFILES_=ProjectDIR/rt/modulerc/mfE/Core/EESSI/1.0.lua:ProjectDIR/rt/modulerc/mfE/Core/B/3.0.lua; +export _LMFILES_; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={B={fn="ProjectDIR/rt/modulerc/mfE/Core/B/3.0.lua",fullName="B/3.0",loadOrder=2,propT={},stackDepth=0,status="active",userName="B/3.0",wV="000000003.*zfinal",},EESSI={fn="ProjectDIR/rt/modulerc/mfE/Core/EESSI/1.0.lua",fullName="EESSI/1.0",loadOrder=1,moduleKindT={kind="hidden",},propT={},ref_count=1,stackDepth=1,status="active",userName="EESSI/1.0",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfE/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfE/Core",}'; +export _ModuleTable_; +=========================== +step 101 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing load F/1.0 +=========================== +LOADEDMODULES=EESSI/1.0:B/3.0:F/1.0; +export LOADEDMODULES; +MODULEPATH=ProjectDIR/rt/modulerc/mfE/Core; +export MODULEPATH; +_LMFILES_=ProjectDIR/rt/modulerc/mfE/Core/EESSI/1.0.lua:ProjectDIR/rt/modulerc/mfE/Core/B/3.0.lua:ProjectDIR/rt/modulerc/mfE/Core/F/1.0.lua; +export _LMFILES_; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={B={fn="ProjectDIR/rt/modulerc/mfE/Core/B/3.0.lua",fullName="B/3.0",loadOrder=2,propT={},stackDepth=0,status="active",userName="B/3.0",wV="000000003.*zfinal",},EESSI={fn="ProjectDIR/rt/modulerc/mfE/Core/EESSI/1.0.lua",fullName="EESSI/1.0",loadOrder=1,moduleKindT={kind="hidden",},propT={},ref_count=1,stackDepth=1,status="active",userName="EESSI/1.0",wV="000000001.*zfinal",},F={fn="ProjectDIR/rt/modulerc/mfE/Core/F/1.0.lua",fullName="F/1.0",loadOrder=3,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="F/1.0",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfE/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfE/Core",}'; +export _ModuleTable_; +=========================== +step 102 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing rm F/1.0 +=========================== +LOADEDMODULES=EESSI/1.0:B/3.0; +export LOADEDMODULES; +MODULEPATH=ProjectDIR/rt/modulerc/mfE/Core; +export MODULEPATH; +_LMFILES_=ProjectDIR/rt/modulerc/mfE/Core/EESSI/1.0.lua:ProjectDIR/rt/modulerc/mfE/Core/B/3.0.lua; +export _LMFILES_; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={B={fn="ProjectDIR/rt/modulerc/mfE/Core/B/3.0.lua",fullName="B/3.0",loadOrder=2,propT={},stackDepth=0,status="active",userName="B/3.0",wV="000000003.*zfinal",},EESSI={fn="ProjectDIR/rt/modulerc/mfE/Core/EESSI/1.0.lua",fullName="EESSI/1.0",loadOrder=1,moduleKindT={kind="hidden",},propT={},ref_count=1,stackDepth=1,status="active",userName="EESSI/1.0",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfE/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfE/Core",}'; +export _ModuleTable_; +=========================== +step 103 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing load EESSI/1.0 +=========================== +LOADEDMODULES=B/3.0:EESSI/1.0; +export LOADEDMODULES; +MODULEPATH=ProjectDIR/rt/modulerc/mfE/Core; +export MODULEPATH; +_LMFILES_=ProjectDIR/rt/modulerc/mfE/Core/B/3.0.lua:ProjectDIR/rt/modulerc/mfE/Core/EESSI/1.0.lua; +export _LMFILES_; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={B={fn="ProjectDIR/rt/modulerc/mfE/Core/B/3.0.lua",fullName="B/3.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="B/3.0",wV="000000003.*zfinal",},EESSI={fn="ProjectDIR/rt/modulerc/mfE/Core/EESSI/1.0.lua",fullName="EESSI/1.0",loadOrder=2,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="EESSI/1.0",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfE/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfE/Core",}'; +export _ModuleTable_; +=========================== +step 104 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge +=========================== +unset LOADEDMODULES; +MODULEPATH=ProjectDIR/rt/modulerc/mfE/Core; +export MODULEPATH; +unset _LMFILES_; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/modulerc/mfE/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfE/Core",}'; +export _ModuleTable_; +=========================== +step 105 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load xcc Foo/invisible =========================== -LOADEDMODULES=D/3.0:H/1.0:soft/1.0:G/1.0:C/1.0:xcc/1.0:Foo/invisible; +LOADEDMODULES=xcc/1.0:Foo/invisible; export LOADEDMODULES; -__LMOD_REF_COUNT_MODULEPATH=ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0:1\;ProjectDIR/rt/modulerc/mfD/Core:1; +__LMOD_REF_COUNT_MODULEPATH=ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0:1\;ProjectDIR/rt/modulerc/mfF/Core:1; export __LMOD_REF_COUNT_MODULEPATH; -MODULEPATH=ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0:ProjectDIR/rt/modulerc/mfD/Core; +MODULEPATH=ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0:ProjectDIR/rt/modulerc/mfF/Core; export MODULEPATH; -_LMFILES_=ProjectDIR/rt/modulerc/mfD/Core/D/3.0.lua:ProjectDIR/rt/modulerc/mfD/Core/H/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/soft/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/G/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/C/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/xcc/1.0.lua:ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0/Foo/invisible.lua; +_LMFILES_=ProjectDIR/rt/modulerc/mfF/Core/xcc/1.0.lua:ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0/Foo/invisible.lua; export _LMFILES_; -_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={C={fn="ProjectDIR/rt/modulerc/mfD/Core/C/1.0.lua",fullName="C/1.0",loadOrder=5,propT={},stackDepth=0,status="active",userName="C/1.0",wV="000000001.*zfinal",},D={fn="ProjectDIR/rt/modulerc/mfD/Core/D/3.0.lua",forbiddenT={after="YYYY-MM-DD",forbiddenState="nearly",},fullName="D/3.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="D",wV="000000003.*zfinal",},Foo={fn="ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0/Foo/invisible.lua",fullName="Foo/invisible",loadOrder=7,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="Foo/invisible",wV="*invisible.*zfinal",},G={fn="ProjectDIR/rt/modulerc/mfD/Core/G/1.0.lua",fullName="G/1.0",loadOrder=4,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="G/1.0",wV="000000001.*zfinal",},H={fn="ProjectDIR/rt/modulerc/mfD/Core/H/1.0.lua",fullName="H/1.0",loadOrder=2,moduleKindT={kind="soft",},propT={},stackDepth=0,status="active",userName="H/1.0",wV="000000001.*zfinal",},soft={fn="ProjectDIR/rt/modulerc/mfD/Core/soft/1.0.lua",fullName="soft/1.0",loadOrder=3,moduleKindT={kind="soft",},propT={},stackDepth=0,status="active",userName="soft/1.0",wV="000000001.*zfinal",},xcc={actionA={"prepend_path(\"MODULEPATH\",\"ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0\")",},fn="ProjectDIR/rt/modulerc/mfD/Core/xcc/1.0.lua",fullName="xcc/1.0",loadOrder=6,propT={},stackDepth=0,status="active",userName="xcc",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0","ProjectDIR/rt/modulerc/mfD/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfD/Core",}'; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={Foo={fn="ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0/Foo/invisible.lua",fullName="Foo/invisible",loadOrder=2,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="Foo/invisible",wV="*invisible.*zfinal",},xcc={actionA={"prepend_path(\"MODULEPATH\",\"ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0\")",},fn="ProjectDIR/rt/modulerc/mfF/Core/xcc/1.0.lua",fullName="xcc/1.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="xcc",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0","ProjectDIR/rt/modulerc/mfF/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfF/Core",}'; export _ModuleTable_; =========================== -step 97 +step 106 lua ProjectDIR/src/lmod.in.lua shell --regression_testing -A avail =========================== -MODULEPATH=ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0:ProjectDIR/rt/modulerc/mfD/Core; +MODULEPATH=ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0:ProjectDIR/rt/modulerc/mfF/Core; export MODULEPATH; -_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={C={fn="ProjectDIR/rt/modulerc/mfD/Core/C/1.0.lua",fullName="C/1.0",loadOrder=5,propT={},stackDepth=0,status="active",userName="C/1.0",wV="000000001.*zfinal",},D={fn="ProjectDIR/rt/modulerc/mfD/Core/D/3.0.lua",forbiddenT={after="YYYY-MM-DD",forbiddenState="nearly",},fullName="D/3.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="D",wV="000000003.*zfinal",},Foo={fn="ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0/Foo/invisible.lua",fullName="Foo/invisible",loadOrder=7,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="Foo/invisible",wV="*invisible.*zfinal",},G={fn="ProjectDIR/rt/modulerc/mfD/Core/G/1.0.lua",fullName="G/1.0",loadOrder=4,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="G/1.0",wV="000000001.*zfinal",},H={fn="ProjectDIR/rt/modulerc/mfD/Core/H/1.0.lua",fullName="H/1.0",loadOrder=2,moduleKindT={kind="soft",},propT={},stackDepth=0,status="active",userName="H/1.0",wV="000000001.*zfinal",},soft={fn="ProjectDIR/rt/modulerc/mfD/Core/soft/1.0.lua",fullName="soft/1.0",loadOrder=3,moduleKindT={kind="soft",},propT={},stackDepth=0,status="active",userName="soft/1.0",wV="000000001.*zfinal",},xcc={actionA={"prepend_path(\"MODULEPATH\",\"ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0\")",},fn="ProjectDIR/rt/modulerc/mfD/Core/xcc/1.0.lua",fullName="xcc/1.0",loadOrder=6,propT={},stackDepth=0,status="active",userName="xcc",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0","ProjectDIR/rt/modulerc/mfD/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfD/Core",}'; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={Foo={fn="ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0/Foo/invisible.lua",fullName="Foo/invisible",loadOrder=2,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="Foo/invisible",wV="*invisible.*zfinal",},xcc={actionA={"prepend_path(\"MODULEPATH\",\"ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0\")",},fn="ProjectDIR/rt/modulerc/mfF/Core/xcc/1.0.lua",fullName="xcc/1.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="xcc",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0","ProjectDIR/rt/modulerc/mfF/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfF/Core",}'; export _ModuleTable_; =========================== -step 98 +step 107 lua ProjectDIR/src/lmod.in.lua shell --regression_testing unload Foo/invisible xcc =========================== -LOADEDMODULES=D/3.0:H/1.0:soft/1.0:G/1.0:C/1.0; -export LOADEDMODULES; -__LMOD_REF_COUNT_MODULEPATH=ProjectDIR/rt/modulerc/mfD/Core:1; +unset LOADEDMODULES; +__LMOD_REF_COUNT_MODULEPATH=ProjectDIR/rt/modulerc/mfF/Core:1; export __LMOD_REF_COUNT_MODULEPATH; -MODULEPATH=ProjectDIR/rt/modulerc/mfD/Core; +MODULEPATH=ProjectDIR/rt/modulerc/mfF/Core; export MODULEPATH; -_LMFILES_=ProjectDIR/rt/modulerc/mfD/Core/D/3.0.lua:ProjectDIR/rt/modulerc/mfD/Core/H/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/soft/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/G/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/C/1.0.lua; -export _LMFILES_; -_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={C={fn="ProjectDIR/rt/modulerc/mfD/Core/C/1.0.lua",fullName="C/1.0",loadOrder=5,propT={},stackDepth=0,status="active",userName="C/1.0",wV="000000001.*zfinal",},D={fn="ProjectDIR/rt/modulerc/mfD/Core/D/3.0.lua",forbiddenT={after="YYYY-MM-DD",forbiddenState="nearly",},fullName="D/3.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="D",wV="000000003.*zfinal",},G={fn="ProjectDIR/rt/modulerc/mfD/Core/G/1.0.lua",fullName="G/1.0",loadOrder=4,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="G/1.0",wV="000000001.*zfinal",},H={fn="ProjectDIR/rt/modulerc/mfD/Core/H/1.0.lua",fullName="H/1.0",loadOrder=2,moduleKindT={kind="soft",},propT={},stackDepth=0,status="active",userName="H/1.0",wV="000000001.*zfinal",},soft={fn="ProjectDIR/rt/modulerc/mfD/Core/soft/1.0.lua",fullName="soft/1.0",loadOrder=3,moduleKindT={kind="soft",},propT={},stackDepth=0,status="active",userName="soft/1.0",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfD/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfD/Core",}'; +unset _LMFILES_; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/modulerc/mfF/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfF/Core",}'; export _ModuleTable_; =========================== -step 99 +step 108 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load xcc Foo/invisible =========================== -LOADEDMODULES=D/3.0:H/1.0:soft/1.0:G/1.0:C/1.0:xcc/1.0:Foo/invisible; +LOADEDMODULES=xcc/1.0:Foo/invisible; export LOADEDMODULES; -__LMOD_REF_COUNT_MODULEPATH=ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0:1\;ProjectDIR/rt/modulerc/mfD/Core:1; +__LMOD_REF_COUNT_MODULEPATH=ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0:1\;ProjectDIR/rt/modulerc/mfF/Core:1; export __LMOD_REF_COUNT_MODULEPATH; -MODULEPATH=ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0:ProjectDIR/rt/modulerc/mfD/Core; +MODULEPATH=ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0:ProjectDIR/rt/modulerc/mfF/Core; export MODULEPATH; -_LMFILES_=ProjectDIR/rt/modulerc/mfD/Core/D/3.0.lua:ProjectDIR/rt/modulerc/mfD/Core/H/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/soft/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/G/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/C/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/xcc/1.0.lua:ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0/Foo/invisible.lua; +_LMFILES_=ProjectDIR/rt/modulerc/mfF/Core/xcc/1.0.lua:ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0/Foo/invisible.lua; export _LMFILES_; -_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={C={fn="ProjectDIR/rt/modulerc/mfD/Core/C/1.0.lua",fullName="C/1.0",loadOrder=5,propT={},stackDepth=0,status="active",userName="C/1.0",wV="000000001.*zfinal",},D={fn="ProjectDIR/rt/modulerc/mfD/Core/D/3.0.lua",forbiddenT={after="YYYY-MM-DD",forbiddenState="nearly",},fullName="D/3.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="D",wV="000000003.*zfinal",},Foo={fn="ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0/Foo/invisible.lua",fullName="Foo/invisible",loadOrder=7,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="Foo/invisible",wV="*invisible.*zfinal",},G={fn="ProjectDIR/rt/modulerc/mfD/Core/G/1.0.lua",fullName="G/1.0",loadOrder=4,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="G/1.0",wV="000000001.*zfinal",},H={fn="ProjectDIR/rt/modulerc/mfD/Core/H/1.0.lua",fullName="H/1.0",loadOrder=2,moduleKindT={kind="soft",},propT={},stackDepth=0,status="active",userName="H/1.0",wV="000000001.*zfinal",},soft={fn="ProjectDIR/rt/modulerc/mfD/Core/soft/1.0.lua",fullName="soft/1.0",loadOrder=3,moduleKindT={kind="soft",},propT={},stackDepth=0,status="active",userName="soft/1.0",wV="000000001.*zfinal",},xcc={actionA={"prepend_path(\"MODULEPATH\",\"ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0\")",},fn="ProjectDIR/rt/modulerc/mfD/Core/xcc/1.0.lua",fullName="xcc/1.0",loadOrder=6,propT={},stackDepth=0,status="active",userName="xcc",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0","ProjectDIR/rt/modulerc/mfD/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfD/Core",}'; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={Foo={fn="ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0/Foo/invisible.lua",fullName="Foo/invisible",loadOrder=2,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="Foo/invisible",wV="*invisible.*zfinal",},xcc={actionA={"prepend_path(\"MODULEPATH\",\"ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0\")",},fn="ProjectDIR/rt/modulerc/mfF/Core/xcc/1.0.lua",fullName="xcc/1.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="xcc",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0","ProjectDIR/rt/modulerc/mfF/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfF/Core",}'; export _ModuleTable_; =========================== -step 100 +step 109 lua ProjectDIR/src/lmod.in.lua shell --regression_testing unload Foo/invisible xcc =========================== -LOADEDMODULES=D/3.0:H/1.0:soft/1.0:G/1.0:C/1.0; -export LOADEDMODULES; -__LMOD_REF_COUNT_MODULEPATH=ProjectDIR/rt/modulerc/mfD/Core:1; +unset LOADEDMODULES; +__LMOD_REF_COUNT_MODULEPATH=ProjectDIR/rt/modulerc/mfF/Core:1; export __LMOD_REF_COUNT_MODULEPATH; -MODULEPATH=ProjectDIR/rt/modulerc/mfD/Core; +MODULEPATH=ProjectDIR/rt/modulerc/mfF/Core; export MODULEPATH; -_LMFILES_=ProjectDIR/rt/modulerc/mfD/Core/D/3.0.lua:ProjectDIR/rt/modulerc/mfD/Core/H/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/soft/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/G/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/C/1.0.lua; -export _LMFILES_; -_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={C={fn="ProjectDIR/rt/modulerc/mfD/Core/C/1.0.lua",fullName="C/1.0",loadOrder=5,propT={},stackDepth=0,status="active",userName="C/1.0",wV="000000001.*zfinal",},D={fn="ProjectDIR/rt/modulerc/mfD/Core/D/3.0.lua",forbiddenT={after="YYYY-MM-DD",forbiddenState="nearly",},fullName="D/3.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="D",wV="000000003.*zfinal",},G={fn="ProjectDIR/rt/modulerc/mfD/Core/G/1.0.lua",fullName="G/1.0",loadOrder=4,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="G/1.0",wV="000000001.*zfinal",},H={fn="ProjectDIR/rt/modulerc/mfD/Core/H/1.0.lua",fullName="H/1.0",loadOrder=2,moduleKindT={kind="soft",},propT={},stackDepth=0,status="active",userName="H/1.0",wV="000000001.*zfinal",},soft={fn="ProjectDIR/rt/modulerc/mfD/Core/soft/1.0.lua",fullName="soft/1.0",loadOrder=3,moduleKindT={kind="soft",},propT={},stackDepth=0,status="active",userName="soft/1.0",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfD/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfD/Core",}'; +unset _LMFILES_; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/modulerc/mfF/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfF/Core",}'; export _ModuleTable_; =========================== -step 101 +step 110 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load xcc =========================== -LOADEDMODULES=D/3.0:H/1.0:soft/1.0:G/1.0:C/1.0:xcc/1.0; +LOADEDMODULES=xcc/1.0; export LOADEDMODULES; -__LMOD_REF_COUNT_MODULEPATH=ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0:1\;ProjectDIR/rt/modulerc/mfD/Core:1; +__LMOD_REF_COUNT_MODULEPATH=ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0:1\;ProjectDIR/rt/modulerc/mfF/Core:1; export __LMOD_REF_COUNT_MODULEPATH; -MODULEPATH=ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0:ProjectDIR/rt/modulerc/mfD/Core; +MODULEPATH=ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0:ProjectDIR/rt/modulerc/mfF/Core; export MODULEPATH; -_LMFILES_=ProjectDIR/rt/modulerc/mfD/Core/D/3.0.lua:ProjectDIR/rt/modulerc/mfD/Core/H/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/soft/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/G/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/C/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/xcc/1.0.lua; +_LMFILES_=ProjectDIR/rt/modulerc/mfF/Core/xcc/1.0.lua; export _LMFILES_; -_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={C={fn="ProjectDIR/rt/modulerc/mfD/Core/C/1.0.lua",fullName="C/1.0",loadOrder=5,propT={},stackDepth=0,status="active",userName="C/1.0",wV="000000001.*zfinal",},D={fn="ProjectDIR/rt/modulerc/mfD/Core/D/3.0.lua",forbiddenT={after="YYYY-MM-DD",forbiddenState="nearly",},fullName="D/3.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="D",wV="000000003.*zfinal",},G={fn="ProjectDIR/rt/modulerc/mfD/Core/G/1.0.lua",fullName="G/1.0",loadOrder=4,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="G/1.0",wV="000000001.*zfinal",},H={fn="ProjectDIR/rt/modulerc/mfD/Core/H/1.0.lua",fullName="H/1.0",loadOrder=2,moduleKindT={kind="soft",},propT={},stackDepth=0,status="active",userName="H/1.0",wV="000000001.*zfinal",},soft={fn="ProjectDIR/rt/modulerc/mfD/Core/soft/1.0.lua",fullName="soft/1.0",loadOrder=3,moduleKindT={kind="soft",},propT={},stackDepth=0,status="active",userName="soft/1.0",wV="000000001.*zfinal",},xcc={actionA={"prepend_path(\"MODULEPATH\",\"ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0\")",},fn="ProjectDIR/rt/modulerc/mfD/Core/xcc/1.0.lua",fullName="xcc/1.0",loadOrder=6,propT={},stackDepth=0,status="active",userName="xcc",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0","ProjectDIR/rt/modulerc/mfD/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfD/Core",}'; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={xcc={actionA={"prepend_path(\"MODULEPATH\",\"ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0\")",},fn="ProjectDIR/rt/modulerc/mfF/Core/xcc/1.0.lua",fullName="xcc/1.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="xcc",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0","ProjectDIR/rt/modulerc/mfF/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfF/Core",}'; export _ModuleTable_; =========================== -step 102 +step 111 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load Foo/invisible =========================== -LOADEDMODULES=D/3.0:H/1.0:soft/1.0:G/1.0:C/1.0:xcc/1.0:Foo/invisible; +LOADEDMODULES=xcc/1.0:Foo/invisible; export LOADEDMODULES; -MODULEPATH=ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0:ProjectDIR/rt/modulerc/mfD/Core; +MODULEPATH=ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0:ProjectDIR/rt/modulerc/mfF/Core; export MODULEPATH; -_LMFILES_=ProjectDIR/rt/modulerc/mfD/Core/D/3.0.lua:ProjectDIR/rt/modulerc/mfD/Core/H/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/soft/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/G/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/C/1.0.lua:ProjectDIR/rt/modulerc/mfD/Core/xcc/1.0.lua:ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0/Foo/invisible.lua; +_LMFILES_=ProjectDIR/rt/modulerc/mfF/Core/xcc/1.0.lua:ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0/Foo/invisible.lua; export _LMFILES_; -_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={C={fn="ProjectDIR/rt/modulerc/mfD/Core/C/1.0.lua",fullName="C/1.0",loadOrder=5,propT={},stackDepth=0,status="active",userName="C/1.0",wV="000000001.*zfinal",},D={fn="ProjectDIR/rt/modulerc/mfD/Core/D/3.0.lua",forbiddenT={after="YYYY-MM-DD",forbiddenState="nearly",},fullName="D/3.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="D",wV="000000003.*zfinal",},Foo={fn="ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0/Foo/invisible.lua",fullName="Foo/invisible",loadOrder=7,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="Foo/invisible",wV="*invisible.*zfinal",},G={fn="ProjectDIR/rt/modulerc/mfD/Core/G/1.0.lua",fullName="G/1.0",loadOrder=4,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="G/1.0",wV="000000001.*zfinal",},H={fn="ProjectDIR/rt/modulerc/mfD/Core/H/1.0.lua",fullName="H/1.0",loadOrder=2,moduleKindT={kind="soft",},propT={},stackDepth=0,status="active",userName="H/1.0",wV="000000001.*zfinal",},soft={fn="ProjectDIR/rt/modulerc/mfD/Core/soft/1.0.lua",fullName="soft/1.0",loadOrder=3,moduleKindT={kind="soft",},propT={},stackDepth=0,status="active",userName="soft/1.0",wV="000000001.*zfinal",},xcc={actionA={"prepend_path(\"MODULEPATH\",\"ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0\")",},fn="ProjectDIR/rt/modulerc/mfD/Core/xcc/1.0.lua",fullName="xcc/1.0",loadOrder=6,propT={},stackDepth=0,status="active",userName="xcc",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfD/Compiler/xcc/1.0","ProjectDIR/rt/modulerc/mfD/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfD/Core",}'; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={Foo={fn="ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0/Foo/invisible.lua",fullName="Foo/invisible",loadOrder=2,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="Foo/invisible",wV="*invisible.*zfinal",},xcc={actionA={"prepend_path(\"MODULEPATH\",\"ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0\")",},fn="ProjectDIR/rt/modulerc/mfF/Core/xcc/1.0.lua",fullName="xcc/1.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="xcc",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0","ProjectDIR/rt/modulerc/mfF/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfF/Core",}'; +export _ModuleTable_; +=========================== +step 112 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing load xcc +=========================== +MODULEPATH=ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0:ProjectDIR/rt/modulerc/mfF/Core; +export MODULEPATH; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={Foo={fn="ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0/Foo/invisible.lua",fullName="Foo/invisible",loadOrder=2,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="Foo/invisible",wV="*invisible.*zfinal",},xcc={actionA={"prepend_path(\"MODULEPATH\",\"ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0\")",},fn="ProjectDIR/rt/modulerc/mfF/Core/xcc/1.0.lua",fullName="xcc/1.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="xcc",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0","ProjectDIR/rt/modulerc/mfF/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfF/Core",}'; +export _ModuleTable_; +=========================== +step 113 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing load Foo/invisible +=========================== +MODULEPATH=ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0:ProjectDIR/rt/modulerc/mfF/Core; +export MODULEPATH; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={Foo={fn="ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0/Foo/invisible.lua",fullName="Foo/invisible",loadOrder=2,moduleKindT={kind="hidden",},propT={},stackDepth=0,status="active",userName="Foo/invisible",wV="*invisible.*zfinal",},xcc={actionA={"prepend_path(\"MODULEPATH\",\"ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0\")",},fn="ProjectDIR/rt/modulerc/mfF/Core/xcc/1.0.lua",fullName="xcc/1.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="xcc",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/modulerc/mfF/Compiler/xcc/1.0","ProjectDIR/rt/modulerc/mfF/Core",},systemBaseMPATH="ProjectDIR/rt/modulerc/mfF/Core",}'; export _ModuleTable_; diff --git a/src/Hook.lua b/src/Hook.lua index 35b52ec9b..5b2b65d54 100644 --- a/src/Hook.lua +++ b/src/Hook.lua @@ -132,7 +132,7 @@ function M.apply(name, ...) end function M.exists(name) - return validT[name] and true or false + return (next(validT[name]) ~= nil) and true or false end return M diff --git a/src/MRC.lua b/src/MRC.lua index 22346380d..fdca2e301 100644 --- a/src/MRC.lua +++ b/src/MRC.lua @@ -512,17 +512,31 @@ local function l_find_resultT(self, tbl_kind, replaceT, mpath, wantedA) return resultT end -local function l_findHiddenState(self, mpath, sn, fullName, fn) - dbg.start{"l_findHiddenState(self, mpath, sn: ",sn,", fullName: ",fullName,", fn)"} - local wantedA = { sn, fullName, fn, ((fn or ""):gsub("%.lua$","")) } +local function l_findHiddenState(self, modT) + dbg.start{"l_findHiddenState(self, modT)"} + local fn = modT.fn + local sn = modT.sn + local wantedA = { modT.sn, modT.fullName, fn, ((fn or ""):gsub("%.lua$","")) } local _ - local n = fullName + local n = modT.fullName while (n and n ~= sn) do _, _, n = n:find("(.*)/.*") wantedA[#wantedA + 1] = n end - local resultT = l_find_resultT(self, "hiddenT", {kind = "hidden"}, mpath, wantedA) + local resultT = l_find_resultT(self, "hiddenT", {kind = "hidden"}, modT.mpath, wantedA) + + -- Apply isVisibleHook, convert false isVisible flag to resultT. + if (hook.exists("isVisibleHook")) then + modT.isVisible = true + hook.apply("isVisibleHook", modT) + if (not modT.isVisible) then + resultT = resultT or {} + resultT.kind = "hidden" + resultT.name = modT.fullName + end + end + dbg.fini("MRC:l_findHiddenState") return resultT end @@ -537,6 +551,10 @@ local function l_findForbiddenState(self, mpath, sn, fullName, fn) wantedA[#wantedA + 1] = n end local resultT = l_find_resultT(self, "forbiddenT", {}, mpath, wantedA) + + + + dbg.fini("l_findForbiddenState") return resultT or {} end @@ -652,7 +670,6 @@ end function M.isVisible(self, modT) dbg.start{"MRC:isVisible(modT}"} local frameStk = require("FrameStk"):singleton() - local mname = frameStk:mname() local mt = frameStk:mt() local mpathA = modT.mpathA or mt:modulePathA() local mpath = modT.mpath @@ -673,11 +690,15 @@ function M.isVisible(self, modT) -- hidden_loaded = true|nil, } -- if hidden. + modT.mname = frameStk:mname() + modT.mt = mt ------------------------------------------------------------ -- If sn is already in the ModuleTable then use MT data instead dbg.print{"fullName: ",fullName,"\n"} + dbg.printT("visibleT",visibleT) + if (mt:exists(sn,fullName)) then local moduleKindT = mt:moduleKindT(sn) @@ -692,30 +713,27 @@ function M.isVisible(self, modT) end - local resultT = l_findHiddenState(self, mpath, sn, fullName, fn) + local resultT = l_findHiddenState(self, modT) + dbg.print{"RTM type(resultT): ",type(resultT),"\n"} if (type(resultT) == "table" ) then - --dbg.printT("from hidden State resultT",resultT) + dbg.printT("from hidden State resultT",resultT) isVisible, hidden_loaded, kind, count = l_check_hidden_modifiers(fullName, resultT, visibleT, show_hidden) + dbg.print{"(1)isVisible: ",isVisible,"\n"} elseif (fullName:sub(1,1) == ".") then isVisible = (visibleT.hidden == true or show_hidden) count = show_hidden kind = "hidden" + dbg.print{"(2)isVisible: ",isVisible,"\n"} else local idx = fullName:find("/%.") isVisible = (idx == nil) or (visibleT.hidden == true) or show_hidden kind = (idx == nil) and "normal" or "hidden" count = show_hidden or (idx == nil) + dbg.print{"(3)isVisible: ",isVisible,"\n"} end - modT.isVisible = isVisible - modT.mname = mname - modT.kind = kind - modT.mt = mt - modT.hidden_loaded = hidden_loaded - hook.apply("isVisibleHook", modT) - - my_resultT = { isVisible = modT.isVisible, - moduleKindT = {kind=modT.kind, hidden_loaded = modT.hidden_loaded}, + my_resultT = { isVisible = isVisible, + moduleKindT = {kind=kind, hidden_loaded = hidden_loaded}, count = count } dbg.print{"fullName: ",fullName,", isVisible: ",isVisible,", kind: ",kind,", show_hidden: ", show_hidden,", count: ",count,", hidden_loaded: ",hidden_loaded,"\n"}