Re: [Lmod-users] [EXTERNAL] Re: changes to tcl 'break' statement in lmod 8 series
A Lua based environment module system that reads TCL modulefiles.
Brought to you by:
rtmclay
|
From: Shrader, D. L. <dsh...@la...> - 2022-03-21 21:07:08
|
Hey Robert,
If I understand what you are saying, there should be no difference in how break is handled between 7.x and <8.6? If that is the case, then we may have hit a bug of some sort. But, since the latest version of Lmod is quite a ways beyond what we're looking to get (8.4.10), there may be little utility in trying to track it down. It might just be easier to try to get our upstream to provide an 8.6+...
Do you mean that all of the 8.x versions include their own TCL interpreter, and 7.x relies on the system's TCL interpreter?
We typically get Lmod from the OS vedor; is there a quick way to find out if the TCL interpreter was included?
Thanks again!
David
________________________________
From: Robert McLay <mc...@ta...>
Sent: Monday, March 21, 2022 2:40 PM
To: Shrader, David Lee
Cc: lmod-users
Subject: [EXTERNAL] Re: [Lmod-users] changes to tcl 'break' statement in lmod 8 series
Well yes and no. There is no change in how break is or has been handled since forever. The change in supporting break is in Lmod 8.6+
The change is that by default Lmod now includes the TCL interpreter as part of the Lmod executable instead of executing a system call (/usr/bin/tclsh ....). You can configure Lmod to not include the tcl interpreter library as part of Lmod. That should give you the old behavior. Use --with-fastTCLInterp=no to configure Lmod without the tcl integration.
I would be interested in seeing how Lmod 8.6+ works with your modules even if you don't deploy it to users.
Best,
Robert.
On Mon, Mar 21, 2022 at 2:20 PM Shrader, David Lee via Lmod-users <lmo...@li...<mailto:lmo...@li...>> wrote:
Hello,
We're are potentially going from Lmod 7.8.16 to 8.4.10, and we have noticed that our tcl modulefiles that call "break" after a "puts stderr ..." message now generate something like the following error:
Lmod has detected the following error: Unable to load module because of error when evaluating modulefile: foo3
/modulefiles/foo3/1.0: [string "LmodMsgRaw([===[already set..."]:4: unexpected symbol near '}'
We have used this method of "puts stderr...; break" to exit out of a particular modulefile when an error occurs, such as a missing directory.
In looking over the readthedocs tcl function page, it looks like the "break" function has seen some attention, but we are looking at 8.4.10, not 8.6+. Did something change for the "break" command in 8.0 to 8.5 such that it won't work as we have been using it in 7.x?
Thank you very much for any and all help!
David
--
David Shrader
HPC-ENV High Performance Computing Systems
Los Alamos National Lab
_______________________________________________
Lmod-users mailing list
Lmo...@li...<mailto:Lmo...@li...>
https://lists.sourceforge.net/lists/listinfo/lmod-users
>> This message is from an external sender. Learn more about why this <<
>> matters at https://links.utexas.edu/rtyclf. <<
--
Robert McLay, Ph.D.
Manager of Software Tools, HPC
mc...@ta...<mailto:mc...@ta...>
|