Skip to content

Commit aeda40b

Browse files
committed
Refactor 'module load' to use loadRequirementModuleList
Update module procedure to use loadRequirementModuleList procedure when loading modules in load evaluation mode when auto_handling is disabled. Update the loadRequirementModuleList to return 0 is everything went well or 1 if an issue occurred.
1 parent 144a036 commit aeda40b

File tree

3 files changed

+15
-21
lines changed

3 files changed

+15
-21
lines changed

tcl/main.tcl.in

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -515,23 +515,13 @@ proc module {command args} {
515515
} else {
516516
# attempt load of not already loaded modules
517517
foreach arg $args {
518-
if {![is-loaded $arg] && ![is-loading $arg]} {
519-
lappend modlist $arg
520-
} else {
521-
lappend loadedmodlist $arg
518+
set retlo [loadRequirementModuleList $tag_list $arg]
519+
# update return value if an issue occurred unless
520+
# force mode is enabled
521+
if {$retlo != 0 && ![getState force]} {
522+
set ret $retlo
522523
}
523524
}
524-
if {[info exists modlist]} {
525-
set ret [cmdModuleLoad reqlo 0 $tag_list {*}$modlist]
526-
# ignore obtained error if force mode enabled
527-
if {[getState force]} {
528-
set ret 0
529-
}
530-
}
531-
# update tags on already loaded modules
532-
if {[info exists loadedmodlist]} {
533-
cmdModuleTag 0 0 $tag_list {*}$loadedmodlist
534-
}
535525
}
536526
}
537527
# register modulefiles to load as individual prereqs or all at

tcl/modeval.tcl

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -614,6 +614,8 @@ proc restoreSettings {} {
614614

615615
# load modules passed as args designated as requirement
616616
proc loadRequirementModuleList {tag_list args} {
617+
set ret 0
618+
617619
# calling procedure must have already parsed module specification in args
618620
foreach mod $args {
619621
# get first loaded or loading mod in args list
@@ -635,14 +637,19 @@ proc loadRequirementModuleList {tag_list args} {
635637
# those that failed if one succeed
636638
set curholdid load-$i-$arg
637639
lappendState reportholdid $curholdid
638-
if {[catch {cmdModuleLoad reqlo 0 $tag_list $arg} errorMsg]} {
640+
if {[catch {set retlo [cmdModuleLoad reqlo 0 $tag_list $arg]}\
641+
errorMsg]} {
639642
# if an error is raised, release output and rethrow the error
640643
# (could be raised if no modulepath defined for instance)
641644
lpopState reportholdid
642645
lappend holdidlist $curholdid report
643646
releaseHeldReport {*}$holdidlist
644647
knerror $errorMsg
645648
}
649+
# update return value if an issue occurred in cmdModuleLoad
650+
if {$retlo != 0} {
651+
set ret $retlo
652+
}
646653
lpopState reportholdid
647654

648655
if {[is-loaded $arg]} {
@@ -663,6 +670,8 @@ proc loadRequirementModuleList {tag_list args} {
663670
# apply missing tag to first loaded module found
664671
cmdModuleTag 0 0 $tag_list $loadedmod
665672
}
673+
674+
return $ret
666675
}
667676

668677
# unload phase of a list of modules reload process

testsuite/modules.50-cmds/517-always-load.exp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,6 @@ lappend ans [list set LOADEDMODULES foo/1.0:bar/1.0:$mod]
138138
lappend ans [list set __MODULES_LMTAG foo/1.0&keep-loaded:bar/1.0&keep-loaded&auto-loaded]
139139
set tserr [msg_top_load $mod {} {bar/1.0} {}]
140140
testouterr_cmd sh "load --auto $mod" $ans $tserr
141-
set ans [list]
142-
lappend ans [list set __MODULES_LMPREREQ $mod&foo/1.0&bar/1.0]
143-
lappend ans [list set _LMFILES_ $mp/foo/1.0:$mp/bar/1.0:$modfile]
144-
lappend ans [list set LOADEDMODULES foo/1.0:bar/1.0:$mod]
145-
lappend ans [list set __MODULES_LMTAG bar/1.0&keep-loaded&auto-loaded:foo/1.0&keep-loaded]
146141
testouterr_cmd sh "load --no-auto $mod" $ans $tserr
147142

148143
setenv_loaded_module [list bar/1.0] [list $mp/bar/1.0]

0 commit comments

Comments
 (0)