Hi Robbin,
In your example, you define "local" variable with the "set" Tcl
command. Such variable is cleaned at the end of modulefile or modulerc
evaluation.
I would suggest you create modulefile to represent projects then once
a project modulefile is seen loaded, global modulerc of the tools
modulepath adapts the default version to use :
$ tree -a --charset=ascii ./mp
./mp
|-- .modulerc
|-- prj
| |-- A
| `-- B
|-- X
| |-- 1
| |-- 2
| `-- 3
`-- Y
|-- 1
|-- 2
`-- 3
$ cat mp/.modulerc
#%Module
switch -- [module-info loaded prj] {
prj/A {
module-version X/2 default
module-version Y/2 default
}
prj/B {
module-version X/3 default
module-version Y/3 default
}
default {
module-version X/1 default
module-version Y/1 default
}
}
$ ml av -o sym -t --color=never
prj/A
prj/B
X/1(default)
X/2
X/3
Y/1(default)
Y/2
Y/3
$ ml prj/A
$ ml av -o sym -t --color=never
prj/A
prj/B
X/1
X/2(default)
X/3
Y/1
Y/2(default)
Y/3
$ ml switch prj/B
$ ml av -o sym -t --color=never
prj/A
prj/B
X/1
X/2
X/3(default)
Y/1
Y/2
Y/3(default)
You can of course split this setup in multiple modulepaths to have the
prj modulefiles in one path and the other modulefiles in other paths.
Regards,
Xavier
Le ven. 8 oct. 2021 à 02:44, Robbin Bonthond <ro...@bo...> a écrit :
>
> PS:
>
> $ module config implicit_default 0
> $ module avail -t --color=never
> /tmp/tool:
> X/v1(default)
> X/v2
> X/v3
> Y/v1(default)
> Y/v2
> $ module load X
> WARNING: Symbolic version 'X/default' already defined
> ERROR: No default version defined for 'X'
>
>
> On Thu, Oct 7, 2021 at 5:52 PM Robbin Bonthond <ro...@bo...> wrote:
>>
>> so we have various tool versions installed in a central place, and a .modulerc in the root there contains all defaults.
>>
>> something like
>>
>> $ tree -a --charset=ascii /tmp/tool
>> /tmp/tool
>> |-- .modulerc
>> |-- X
>> | |-- .common
>> | |-- v1 -> .common
>> | |-- v2 -> .common
>> | `-- v3 -> .common
>> `-- Y
>> |-- .common
>> |-- v1 -> .common
>> `-- v2 -> .common
>>
>> That /tmp/tool/.modulerc contains something like this:
>>
>> $ cat /tmp/tool/.modulerc
>> #%Module
>> if { ![info exists X_DEFAULT ] } {
>> set X_DEFAULT X/v2
>> module-version $X_DEFAULT default
>> }
>> if { ![info exists Y_DEFAULT ] } {
>> set Y_DEFAULT Y/v1
>> module-version $Y_DEFAULT default
>> }
>>
>> Then we have various projects that can take a while to complete, and each can have it's own set of defaults.
>>
>> We thought about doing that by having each project have it's own .modulerc with a set of defaults, and adding that to the MODULEPATH
>> Now ideally we would just define a module-version command in a .modulerc, and once that's set, all subsequent module-versions for that same tool will just be ignored. But that doesn't seem to happen, as it not only gives a warning, but seems to remove the default version completely.
>>
>> $ tree -a --charset=ascii /tmp/prj
>> /tmp/prj
>> |-- A
>> | `-- .modulerc
>> `-- B
>> `-- .modulerc
>>
>> $ cat /tmp/prj/A/.modulerc
>> #%Module
>> if { ![info exists X_DEFAULT ] } {
>> set X_DEFAULT X/v1
>> module-version $X_DEFAULT default
>> }
>>
>> $ echo $MODULEPATH
>> /tmp/prj/A:/tmp/tool
>>
>> $ module --version
>> Modules Release 5.0.0 (2021-09-12)
>>
>> $ module avail -t --color=never
>> /tmp/tool:
>> X/v1(default)
>> X/v2
>> X/v3
>> Y/v1(default)
>> Y/v2
>>
>> $ module load X
>> WARNING: Symbolic version 'X/default' already defined
>>
>> $ module list
>> Currently Loaded Modulefiles:
>> 1) X/v3
>>
>> I expected X/v1 to be loaded here....
>> Now it works if I load it like this (but it still complains about that WARNING: Symbolic version already defined)
>>
>> $ module unload X
>> $ module load X/default
>> WARNING: Symbolic version 'X/default' already defined
>> $ module list
>> Currently Loaded Modulefiles:
>> 1) X/v1
>>
>> Looking at the debug output there's a few things that jump out to me:
>>
>> It seems to remove that X_DEFAULT variable I set? And then it still seems to want to eval /tmp/tool/.modulerc, it calls module-version, which according to the tcl source code should not call setModuleResolution when it finds that duplicate, but that still seems to happen, and it defaults back to the latest version
>>
>> Evaluate modulerc: '/tmp/prj/A/.modulerc'
>> DEBUG [#1:.modulerc] readModuleContent: /tmp/prj/A/.modulerc
>> DEBUG [#1:.modulerc] module-version: X/v1 default
>> DEBUG [#1:.modulerc] setModuleResolution: X/default resolved to X/v1
>> DEBUG [#1:.modulerc] setModuleResolution: X resolved to X/v1
>> DEBUG [#1:.modulerc] setModuleResolution: set symbols 'default' to X/v1
>> DEBUG [#1:.modulerc] setModuleResolution: module-version X/default = X/v1
>> Evaluate modulerc: '/tmp/tool/.modulerc'
>> DEBUG [#1:.modulerc] resetInterpState: removing on __modrc_1 var X_DEFAULT
>> DEBUG [#1:.modulerc] readModuleContent: /tmp/tool/.modulerc
>> DEBUG [#1:.modulerc] module-version: X/v2 default
>> WARNING: Symbolic version 'X/default' already defined
>> DEBUG setModuleResolution: X/default resolved to X/v3
>> DEBUG setModuleResolution: define auto symbolic version 'X/default' targeting X/v3
>>
>>
>> Here is the complete output of "module -D load X"
>>
>> DEBUG setState: cmdline set to '/opt/modules/5.0.0/libexec/modulecmd.tcl tcsh -D load X'
>> DEBUG setConf: tcl_ext_lib set to '/opt/modules/5.0.0/lib/libtclenvmodules.so'
>> DEBUG Load Tcl extension library (/opt/modules/5.0.0/lib/libtclenvmodules.so)
>> DEBUG setState: tcl_ext_lib_loaded set to '1'
>> DEBUG setConf: siteconfig set to '/opt/modules/5.0.0/etc/siteconfig.tcl'
>> DEBUG sourceSiteConfig: Source site configuration (/opt/modules/5.0.0/etc/siteconfig.tcl)
>> DEBUG setState: siteconfig_loaded set to '1'
>> DEBUG setConf: locked_configs set to ''
>> DEBUG setState: shell set to 'tcsh'
>> DEBUG setState: shelltype set to 'csh'
>> DEBUG setState: subcmd set to 'load'
>> DEBUG setState: subcmd_args set to 'X'
>> DEBUG setState: init_error_report set to '1'
>> DEBUG setConf: verbosity set to 'debug'
>> DEBUG setState: is_stderr_tty set to '1'
>> DEBUG setConf: term_background set to 'dark'
>> DEBUG setConf: colors set to 'hi=1:db=2:tr=2:se=2:er=91:wa=93:me=95:in=94:mp=1;94:di=94:al=96:va=93:sy=95:de=4:cm=92:aL=100:L=90;47:H=2:F=41:nF=43:S=46:sS=44'
>> DEBUG setConf: color set to '1'
>> DEBUG setConf: pager set to '/usr/bin/less -eFKRX'
>> DEBUG setState: paginate set to '1'
>> DEBUG setState: report_format set to 'regular'
>> DEBUG setState: reportfd set to 'file6'
>> DEBUG lappendState: modulefile appended with '{}'
>> DEBUG module: cmd='load', args='X'
>> DEBUG setConf: avail_indepth set to '1'
>> DEBUG setConf: search_match set to 'starts_with'
>> DEBUG parseModuleCommandArgs: (show_oneperline=0, show_mtime=0, show_filter=, search_filter=, search_match=starts_with, dump_state=0, addpath_pos=prepend, not_req=0, otherargs=X)
>> DEBUG setConf: advanced_version_spec set to '1'
>> DEBUG setConf: variant_shortcut set to ''
>> DEBUG setModuleVersSpec: Set module 'X' (escglob 'X'), module name '.' (re '\.'), module root 'X', version cmp 'eq', version(s) '', variant(s) '' and module name version spec 'X' for argument 'X'
>> DEBUG lappendState: always_read_full_file appended with '1'
>> DEBUG lappendState: commandname appended with 'load'
>> DEBUG lappendState: try_modulefile appended with '0'
>> DEBUG runModulerc: running...
>> DEBUG setState: rc_running set to '1'
>> DEBUG unsetState: rc_running unset
>> DEBUG cmdModuleLoad: loading X (context=load, uasked=1)
>> DEBUG lappendState: mode appended with 'load'
>> DEBUG getPathToModule: finding 'X' in '' (report_issue=1, look_loaded=no, excdir='')
>> DEBUG setState: is_win set to '0'
>> DEBUG setState: path_separator set to ':'
>> DEBUG resolvStringWithEnv: '/tmp/prj/A' resolved to '/tmp/prj/A'
>> DEBUG setState: cwd set to '/tmp/prj'
>> DEBUG resolvStringWithEnv: '/tmp/tool' resolved to '/tmp/tool'
>> DEBUG setConf: icase set to 'search'
>> DEBUG setConf: extended_default set to '1'
>> DEBUG setConf: implicit_default set to '1'
>> DEBUG getModules: get 'X' in /tmp/prj/A (fetch_mtime=0, search=rc_defs_included resolve, filter=)
>> DEBUG findModules: finding 'X' in /tmp/prj/A (depthlvl=0, fetch_mtime=0)
>> DEBUG setConf: ignored_dirs set to 'CVS RCS SCCS .svn .git .SYNC .sos'
>> DEBUG findModules: found .modulerc
>> DEBUG findModules: create cache entry '/tmp/prj/A:X:0:0'
>> DEBUG lappendState: modulefile appended with '/tmp/prj/A/.modulerc'
>> DEBUG lappendState: modulename appended with '.modulerc'
>> DEBUG lappendState: specifiedname appended with '.modulerc'
>> DEBUG [#1:.modulerc] lappendState: debug_msg_prefix appended with '{[#1:.modulerc] }'
>> DEBUG [#1:.modulerc] setState: inhibit_errreport set to '0'
>> Evaluate modulerc: '/tmp/prj/A/.modulerc'
>> DEBUG [#1:.modulerc] execute-modulerc: creating interp __modrc_1
>> DEBUG [#1:.modulerc] dumpInterpState: saving for __modrc var tcl_version
>> DEBUG [#1:.modulerc] dumpInterpState: saving for __modrc var tcl_interactive
>> DEBUG [#1:.modulerc] dumpInterpState: saving for __modrc var ModuleToolVersion
>> DEBUG [#1:.modulerc] dumpInterpState: saving for __modrc var ModuleTool
>> DEBUG [#1:.modulerc] dumpInterpState: saving for __modrc var auto_path
>> DEBUG [#1:.modulerc] dumpInterpState: saving for __modrc var tcl_pkgPath
>> DEBUG [#1:.modulerc] dumpInterpState: saving for __modrc var tcl_patchLevel
>> DEBUG [#1:.modulerc] dumpInterpState: saving for __modrc var tcl_platform
>> DEBUG [#1:.modulerc] dumpInterpState: saving for __modrc var tcl_library
>> DEBUG [#1:.modulerc] dumpInterpState: saving for __modrc proc list auto_load clock unknown tclLog auto_qualify auto_execok auto_import auto_load_index
>> DEBUG [#1:.modulerc] resetInterpState: saving for __modrc_1 command list module-version tell socket subst open eof pwd glob list module-hide pid exec auto_load_index time unknown eval module-forbid lassign lrange module-virtual is-loaded fblocked lsearch auto_import gets case lappend proc break variable llength module-info auto_execok return linsert is-used error catch clock info split readModuleContent array if fconfigure concat join lreplace source fcopy global switch auto_qualify update close cd for auto_load file append lreverse format unload read package set binary namespace scan versioncmp apply module-tag trace seek while chan flush after vwait dict system continue uplevel foreach lset rename fileevent regexp module-alias lrepeat upvar reportInternalBug formatErrStackTrace encoding expr unset load regsub interp exit setModulesVersion puts incr lindex lsort tclLog uname string
>> DEBUG [#1:.modulerc] readModuleContent: /tmp/prj/A/.modulerc
>> DEBUG [#1:.modulerc] module-version: X/v1 default
>> DEBUG [#1:.modulerc] setModuleResolution: X/default resolved to X/v1
>> DEBUG [#1:.modulerc] setModuleResolution: X resolved to X/v1
>> DEBUG [#1:.modulerc] setModuleResolution: set symbols 'default' to X/v1
>> DEBUG [#1:.modulerc] setModuleResolution: module-version X/default = X/v1
>> DEBUG setState: debug_msg_prefix set to ''
>> DEBUG setState: specifiedname set to ''
>> DEBUG setState: modulename set to ''
>> DEBUG setState: modulefile set to '{}'
>> DEBUG setState: hiding_threshold set to '0'
>> Get modules: {X/default} matching 'X' in '/tmp/prj/A'
>> DEBUG getModules: create cache entry '/tmp/prj/A:X:0:rc_defs_included resolve:'
>> DEBUG getModules: get 'X' in /tmp/tool (fetch_mtime=0, search=rc_defs_included resolve, filter=)
>> DEBUG findModules: finding 'X' in /tmp/tool (depthlvl=0, fetch_mtime=0)
>> DEBUG checkValidModule: /tmp/tool/X/v1
>> DEBUG readModuleContent: /tmp/tool/X/v1
>> DEBUG setConf: mcookie_version_check set to '1'
>> DEBUG checkValidModule: /tmp/tool/X/v3
>> DEBUG readModuleContent: /tmp/tool/X/v3
>> DEBUG checkValidModule: /tmp/tool/X/.common
>> DEBUG readModuleContent: /tmp/tool/X/.common
>> DEBUG checkValidModule: /tmp/tool/X/v2
>> DEBUG readModuleContent: /tmp/tool/X/v2
>> DEBUG findModules: found X/v3 .modulerc X/.common X/v1 X/v2
>> DEBUG findModules: create cache entry '/tmp/tool:X:0:0'
>> DEBUG lappendState: modulefile appended with '/tmp/tool/.modulerc'
>> DEBUG lappendState: modulename appended with '.modulerc'
>> DEBUG lappendState: specifiedname appended with '.modulerc'
>> DEBUG [#1:.modulerc] lappendState: debug_msg_prefix appended with '{[#1:.modulerc] }'
>> Evaluate modulerc: '/tmp/tool/.modulerc'
>> DEBUG [#1:.modulerc] resetInterpState: removing on __modrc_1 var errorMsg
>> DEBUG [#1:.modulerc] resetInterpState: removing on __modrc_1 var X_DEFAULT
>> DEBUG [#1:.modulerc] readModuleContent: /tmp/tool/.modulerc
>> DEBUG [#1:.modulerc] module-version: X/v2 default
>> WARNING: Symbolic version 'X/default' already defined
>> DEBUG [#1:.modulerc] module-version: Y/v1 default
>> DEBUG [#1:.modulerc] setModuleResolution: Y/default resolved to Y/v1
>> DEBUG [#1:.modulerc] setModuleResolution: Y resolved to Y/v1
>> DEBUG [#1:.modulerc] setModuleResolution: set symbols 'default' to Y/v1
>> DEBUG [#1:.modulerc] setModuleResolution: module-version Y/default = Y/v1
>> DEBUG setState: debug_msg_prefix set to ''
>> DEBUG setState: specifiedname set to ''
>> DEBUG setState: modulename set to ''
>> DEBUG setState: modulefile set to '{}'
>> DEBUG setModuleResolution: X/default resolved to X/v3
>> DEBUG setModuleResolution: define auto symbolic version 'X/default' targeting X/v3
>> DEBUG setModuleResolution: X/latest resolved to X/v3
>> DEBUG setModuleResolution: define auto symbolic version 'X/latest' targeting X/v3
>> Get modules: {X X/default X/v3 X/latest X/v1 X/v2} matching 'X' in '/tmp/tool'
>> DEBUG getModules: create cache entry '/tmp/tool:X:0:rc_defs_included resolve:'
>> DEBUG getEqArrayKey: key 'X' in array 'mod_list' matches 'X'
>> DEBUG getEqArrayKey: key 'X/v3' in array 'mod_list' matches 'X/v3'
>> Select module: 'X/v3' (/tmp/tool/X/v3) matching 'X/v3'
>> DEBUG lappendState: evalid appended with 'load-X/v3-0'
>> DEBUG lappendState: msgrecordid appended with 'load-X/v3-0'
>> DEBUG setConf: unload_match_order set to 'returnlast'
>> DEBUG setState: lm_info_cached set to '1'
>> DEBUG setState: sub1_separator set to '&'
>> DEBUG setState: sub2_separator set to '|'
>> DEBUG cacheCurrentModules: 0 loaded
>> DEBUG getLoadedMatchingName: '' matches 'X/v3'
>> DEBUG pushSettings: settings saved (#1)
>> DEBUG setConf: auto_handling set to '1'
>> DEBUG getUnmetDependentLoadedModuleList: get dependent of upcoming loaded 'X/v3'
>> DEBUG doesModuleConflict: 'X/v3' conflicts with '' (declared as '')
>> DEBUG getDependentLoadedModuleList: get loaded mod dependent of '' (strong=0, direct=0, nporeq=0, loading=0, sat_constraint=1, being_unload=0)
>> DEBUG getDependentLoadedModuleList: got ''
>> DEBUG getUnmetDependentLoadedModuleList: got ''
>> DEBUG cmdModuleLoad: depre mod list is ''
>> DEBUG lappendState: modulefile appended with '/tmp/tool/X/v3'
>> DEBUG lappendState: modulename appended with 'X/v3'
>> DEBUG lappendState: modulenamevr appended with 'X/v3'
>> DEBUG lappendState: specifiedname appended with 'X'
>> DEBUG [#1:load:X/v3] lappendState: debug_msg_prefix appended with '{[#1:load:X/v3] }'
>> DEBUG [#1:load:X/v3] setState: inhibit_interp set to '0'
>> DEBUG [#1:load:X/v3] execute-modulefile: creating interp __modfile_load_1
>> DEBUG [#1:load:X/v3] dumpInterpState: saving for __modfile var tcl_version
>> DEBUG [#1:load:X/v3] dumpInterpState: saving for __modfile var tcl_interactive
>> DEBUG [#1:load:X/v3] dumpInterpState: saving for __modfile var ModuleToolVersion
>> DEBUG [#1:load:X/v3] dumpInterpState: saving for __modfile var ModuleTool
>> DEBUG [#1:load:X/v3] dumpInterpState: saving for __modfile var auto_path
>> DEBUG [#1:load:X/v3] dumpInterpState: saving for __modfile var tcl_pkgPath
>> DEBUG [#1:load:X/v3] dumpInterpState: saving for __modfile var tcl_patchLevel
>> DEBUG [#1:load:X/v3] dumpInterpState: saving for __modfile var tcl_platform
>> DEBUG [#1:load:X/v3] dumpInterpState: saving for __modfile var tcl_library
>> DEBUG [#1:load:X/v3] dumpInterpState: saving for __modfile proc list auto_load clock unknown tclLog auto_qualify auto_execok auto_import auto_load_index
>> DEBUG [#1:load:X/v3] resetInterpState: saving for __modfile_load_1 command list module-version tell socket subst conflict open eof pwd glob list module-hide pid exec auto_load_index time unknown eval module-forbid lassign lrange module-virtual module-user append-path reportWarning is-loaded fblocked lsearch auto_import gets report case lappend proc setenv break variable llength set-function module-info prereq auto_execok return linsert is-used error catch clock info split variant readModuleContent array if fconfigure concat join lreplace source fcopy global switch isVerbosityLevel auto_qualify update module-log unset-alias reportError close reportCmdTrace cd for auto_load file append lreverse source-sh getenv format unload read package set binary namespace scan versioncmp apply module-tag raiseErrorCount trace unsetenv seek while isWin chan flush after vwait is-saved dict system getvariant continue uplevel is-avail remove-path foreach lset rename chdir fileevent module-whatis regexp module-alias x-resource lrepeat upvar formatErrStackTrace reportInternalBug encoding expr unset prepend-path load regsub module-verbosity module-trace unset-function exit interp set-alias _puts puts incr lindex lsort tclLog module uname string
>> DEBUG [#1:load:X/v3] readModuleContent: /tmp/tool/X/v3
>> DEBUG [#1:load:X/v3] module-info: name
>> DEBUG [#1:load:X/v3] conflict: X
>> DEBUG [#1:load:X/v3] is-loaded: X
>> DEBUG [#1:load:X/v3] getLoadedMatchingName: '' matches 'X'
>> DEBUG [#1:load:X/v3] append-path: PATH /tool/X/v3
>> DEBUG [#1:load:X/v3] add-path: (PATH /tool/X/v3) pos=append
>> DEBUG [#1:load:X/v3] setModuleVersSpec: Set module 'X/v3' (escglob 'X/v3'), module name 'X' (re ''), module root 'X', version cmp 'eq', version(s) '', variant(s) '' and module name version spec 'X/v3' for argument 'X/v3'
>> DEBUG [#1:load:X/v3] execute-modulefile: exiting /tmp/tool/X/v3
>> DEBUG setState: debug_msg_prefix set to ''
>> DEBUG setState: specifiedname set to ''
>> DEBUG setState: modulename set to ''
>> DEBUG setState: modulenamevr set to ''
>> DEBUG setState: modulefile set to '{}'
>> DEBUG doesModuleConflict: 'X/v3' conflicts with '' (declared as '')
>> DEBUG setState: force set to '0'
>> DEBUG add-path: (LOADEDMODULES X/v3) pos=append
>> DEBUG parsePathCommandArgs: (delim=:, allow_dup=0, idx_val=0, ign_refcount=0, var=LOADEDMODULES, val=X/v3, nbval=1)
>> DEBUG set-env: LOADEDMODULES=X/v3
>> DEBUG interp-sync-env: set var='::env(LOADEDMODULES)', val='X/v3' on interp(s) __modfile_load_1 __modrc_1
>> DEBUG add-path: (--duplicates _LMFILES_ /tmp/tool/X/v3) pos=append
>> DEBUG parsePathCommandArgs: (delim=:, allow_dup=1, idx_val=0, ign_refcount=0, var=_LMFILES_, val=/tmp/tool/X/v3, nbval=1)
>> DEBUG set-env: _LMFILES_=/tmp/tool/X/v3
>> DEBUG interp-sync-env: set var='::env(_LMFILES_)', val='/tmp/tool/X/v3' on interp(s) __modfile_load_1 __modrc_1
>> DEBUG doesModuleConflict: 'X/v3' conflicts with '' (declared as '')
>> DEBUG setModuleDependency: set requirements of 'X/v3' to ''
>> DEBUG setModuleDependency: set NPO requirements of 'X/v3' to ''
>> DEBUG add-path: (__MODULES_LMCONFLICT X/v3&X) pos=append
>> DEBUG parsePathCommandArgs: (delim=:, allow_dup=0, idx_val=0, ign_refcount=0, var=__MODULES_LMCONFLICT, val=X/v3&X, nbval=1)
>> DEBUG set-env: __MODULES_LMCONFLICT=X/v3&X
>> DEBUG interp-sync-env: set var='::env(__MODULES_LMCONFLICT)', val='X/v3&X' on interp(s) __modfile_load_1 __modrc_1
>> DEBUG add-path: (__MODULES_LMALTNAME X/v3&as|X/default&as|X/latest) pos=append
>> DEBUG parsePathCommandArgs: (delim=:, allow_dup=0, idx_val=0, ign_refcount=0, var=__MODULES_LMALTNAME, val=X/v3&as|X/default&as|X/latest, nbval=1)
>> DEBUG set-env: __MODULES_LMALTNAME=X/v3&as|X/default&as|X/latest
>> DEBUG interp-sync-env: set var='::env(__MODULES_LMALTNAME)', val='X/v3&as|X/default&as|X/latest' on interp(s) __modfile_load_1 __modrc_1
>> DEBUG popSettings: previously saved settings flushed (#1)
>> DEBUG setConf: term_width set to '0'
>> DEBUG setState: term_columns set to '138'
>> DEBUG unsetState: report_sep_next unset
>> DEBUG setState: report_sep_next set to '1'
>> Loading X/v3
>> Evaluate modulefile: '/tmp/tool/X/v3' as 'X/v3'
>> DEBUG unsetState: report_sep_next unset
>> DEBUG setState: report_sep_next set to '1'
>> DEBUG setState: evalid set to ''
>> DEBUG setState: msgrecordid set to ''
>> DEBUG setState: mode set to ''
>> DEBUG setState: try_modulefile set to ''
>> DEBUG setState: commandname set to ''
>> DEBUG setState: always_read_full_file set to ''
>> DEBUG renderSettings: called.
>> DEBUG setState: autoinit set to '0'
>> DEBUG setState: error_count set to '0'
>> DEBUG setState: return_false set to '0'
>> DEBUG renderTrue: called.
>>
>>
>>
>> On Thu, Oct 7, 2021 at 12:10 PM Thomas M. Payerle <pa...@um...> wrote:
>>>
>>> I haven't use the hack recently, and only used it on older (3.x) versions of modules, but in my cases just using set and a Tcl var worked. But also my situation was only dealing with a single modulerc file as well.
>>>
>>> I would suggest trying full-fledged env variables and see if that makes a difference.
>>>
>>> Otherwise, you might want to see if you can create and post a minimalist example of the issue --- I am only guessing that your issue is the same as the one I am referring to (I do not even recall the exact error message for the issue I am referring to, but it was similar to yours), but your issue might be something completely different. It is hard to tell from just an error message.
>>>
>>> On Thu, Oct 7, 2021 at 11:53 AM Robbin Bonthond <ro...@bo...> wrote:
>>>>
>>>> hi,
>>>>
>>>> Thank you for the hint, do I need to use environment variables? it seems that a "set x y" isn't global between various .modulerc files.
>>>>
>>>> robbin
>>>>
>>>> On Wed, Oct 6, 2021 at 6:59 PM Thomas M. Payerle <pa...@um...> wrote:
>>>>>
>>>>> You might want to look at https://kb.hlrs.de/platforms/index.php/Module_command
>>>>> Toward the end, Global Default section.
>>>>>
>>>>> Basically, for each module version invocation, create an unique env variable and test for the env variable before doing the module version call.
>>>>>
>>>>> It's an ugly hack, but it gets the job done
>>>>>
>>>>>
>>>>> On Wed, Oct 6, 2021 at 4:24 PM Robbin Bonthond <ro...@bo...> wrote:
>>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> Is there a way to turn off the warning "WARNING: Symbolic version 'tool/default' already defined"?
>>>>>>
>>>>>> Robbin
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Modules-interest mailing list
>>>>>> Mod...@li...
>>>>>> https://lists.sourceforge.net/lists/listinfo/modules-interest
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Tom Payerle
>>>>> DIT-ACIGS/Mid-Atlantic Crossroads pa...@um...
>>>>> 5825 University Research Park (301) 405-6135
>>>>> University of Maryland
>>>>> College Park, MD 20740-3831
>>>>> _______________________________________________
>>>>> Modules-interest mailing list
>>>>> Mod...@li...
>>>>> https://lists.sourceforge.net/lists/listinfo/modules-interest
>>>>
>>>> _______________________________________________
>>>> Modules-interest mailing list
>>>> Mod...@li...
>>>> https://lists.sourceforge.net/lists/listinfo/modules-interest
>>>
>>>
>>>
>>> --
>>> Tom Payerle
>>> DIT-ACIGS/Mid-Atlantic Crossroads pa...@um...
>>> 5825 University Research Park (301) 405-6135
>>> University of Maryland
>>> College Park, MD 20740-3831
>>> _______________________________________________
>>> Modules-interest mailing list
>>> Mod...@li...
>>> https://lists.sourceforge.net/lists/listinfo/modules-interest
>
> _______________________________________________
> Modules-interest mailing list
> Mod...@li...
> https://lists.sourceforge.net/lists/listinfo/modules-interest
|