forked from TACC/Lmod
-
Notifications
You must be signed in to change notification settings - Fork 0
Lmod: An Environment Module System based on Lua, Reads TCL Modules, Supports a Software Hierarchy
Fahey-McLay/Lmod
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Lmod Version 5.3.2: Bug Fix: a) Fixed problem with symlink directories and picking the right default. b) Fixed a bug where .version did not find the right default. Lmod Version 5.3.1: Feature: a) added tool "sh_to_modulefile" to convert a bash shell script into a lua based shell script.: $ sh_to_modulefile -o intel-14.0.2.lua /a/intel/bin/iccvars.sh intel64 note that you can give argument to the shell script. Lmod Version 5.3: Features: a) Searching for avail, spider and list are case-insensitive. Lua regexp searching now requires a "-r" option b) The modulefile function isloaded() takes atleast, between and latest: isloaded(atleast("Foo","1.2")) c) Spider searching improved. When an exact match is found Lmod reports other possible matches: R: R/2.1.5 Other possible modules matches: PrgEnv, greenlet, parmetis, r Bug Fix: a) Quotes inside a whatis or help message are properly escaped. b) Better handling of nested modules by fixing load order. Lmod Version 5.2.4: Feature: a) Lmod can be configured to ignore TCL module files. Lmod Version 5.2.3: Bug Fixes: a) Prereq now works with a version. b) The function "always_load" works with show. c) The "make install" now works and doesn't complain about not being a git repository. Lmod Version 5.2: Features: a) Modulefiles can mix load commands and setenv's and still be saved and restored. b) In Lua modulefiles you can modify load function behavior: load(atleast("a","1.2")) -- load module "a" with version 1.2 -- or higher. load(between("b","1.2","1.4") -- load module "b" with version between -- 1.2 and 1.4. load(latest("c")) -- load latest version of "c", ignore -- marked default. This only works in Lua module files, and works on all load functions: load, always_load. c) In Lua modulefiles you can modify prereq function behavior: prereq(atleast("a","1.2")) -- Module "a" must be version 1.2 -- or higher. prereq(between("b","1.2","1.4") -- Module "b" must be version between -- 1.2 and 1.4. prereq(latest("c")) -- Module "c" must be latest possible This only works in Lua module files, and works on all prereq functions: prereq, prereq_any. Lmod Version 5.1.5: Bug Fixes: a) Changes in the terse output for avail and spider. A directory that contains module versions has a trailing "/" b) The environment that a module sees (and only in that environment). Lmod defines the following variables shown with their current values: LMOD_VERSION: 5.1.5 LMOD_VERSION_MAJOR: 5 LMOD_VERSION_MINOR: 1 LMOD_VERSION_SUBMINOR: 5 c) Module function to do version comparison (only for lua based modulefiles): if (convertToCanonical(LmodVersion()) > convertToCanonical("5.0")) then -- Do something that is only valid for Lmod 5.0 or greater end The function convertToCanonical() knows how to deal with alpha, beta, and rc version and the function LmodVersion() returns the current version of Lmod. Lmod Version 5.1.1: Bug Fixes and internal improvements a) Lmod can now find all the dot module files. b) Fixed bug with inherit() c) Settarg nolonger tries to control all TARG_* variables. d) Better handling of "Rebuild cache ..." line. e) Improvements to the execute function. f) "module --mt" prints the module table g) "settarg --stt" prints the settarg table. Lmod Version 5.1.0: Version 5.1.0 now supports the following new features: a) module --ignore_cache which tells Lmod to ignore the cache even if it exists. b) module --config reports how lmod was configured. c) Lmod no longer walks the directory tree on command like list and unload. d) The pager is now used only when TERM is defined and stderr is connected to a tty (this includes a pty: pseudo tty). e) The system startup scripts (init/profile, and init/cshrc) that are usually linked to modules.sh and modules.csh in /etc/profile.d contains now modulefiles: lmod and settarg. Please consider using this as defined or moving these module files into your normal MODULEPATH. f) Support for settarg has been added for Bash, Zsh and Tcsh users. g) See README.old for features added in earlier versions. ------------------------------------------------------------------------ What is Settarg? ------------------------------------------------------------------------ Settarg is new module that accesses a new tool to dynamically and automatically updates "$TARG" and a host of other environment variables. These new environment variables encapsulate the state of the modules loaded. *** NOTE **** Please note that settarg feature is optional and is implemented as a module. If and only if the settarg module is loaded you get the new behavior. You can load and unload the settarg module at will to turn on and off these new features. Settarg does work for tcsh users as well a feat not to be scoffed at! Unfortunately regular csh is missing necessary features for it to work. *** NOTE **** For example, if I have the gcc/4.7.2 module loaded and the new settarg module loaded I get the following variables defined in my environment. TARG=OBJ/_x86_64_06_1a_gcc-4.7.3 TARG_COMPILER=gcc-4.7.3 TARG_COMPILER_FAMILY=gcc TARG_MACH=x86_64_06_1a If I change my compiler to intel/13.1.0, these variables change to: TARG=OBJ/_x86_64_06_1a_intel-13.1.0 TARG_COMPILER=intel-13.1.0 TARG_COMPILER_FAMILY=intel TARG_MACH=x86_64_06_1a This was designed to help me as a developer of software applications where I am constantly changing compilers, mpi stacks and other modules. These variable are used to set the compiler flags and other things in my Makefiles to control how my application is built. In my case $TARG the directory is where the the objects, libraries and executables are placed during the build process. It easy to have the title bar reflect the dynamic state of your modules. You can abbreviate items mentioned in the titlebar. I have found this combination of settarg and Lmod to be a powerful development tool. Even if this workflow is not yours, you may find parts of this useful. For a more complete tour of settargs features see: contrib/settarg/Settarg.txt and the Make example in contrib/settarg/make_example.
About
Lmod: An Environment Module System based on Lua, Reads TCL Modules, Supports a Software Hierarchy
Resources
Stars
Watchers
Forks
Packages 0
No packages published