Lmod Version 5.1.0: Version 5.1.0 now supports the following new features: a) module --ignore_cache which tell Lmod to ignore the cache if it exists. b) module --config report how lmod was configured. c) Now Lmod does not walk the directory tree on command like list and unload. d) The pager is now only used when TERM is defined and stderr is connected to a tty (this includes a pty: pseudo tty). e) Support for settarg has been added. ------------------------------------------------------------------------ What is Settarg? ------------------------------------------------------------------------ * Settarg is new module that access a new tool that dynamically and automatically updates "TARG" and a host of other environment variables to encapsulates the state of the modules loaded. 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=ST_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, the above variable change to: TARG=ST_OBJ/_x86_64_06_1a_dbg_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 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 control which modules are 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. New module settarg * A new functionality that allows Lmod to keep current and consistent a set of env. variable that encapsolate the state of the currently loaded modules. * For example TARG_COMPILER would be gcc-4.7.3 * First example of a new capiabitlty ** For example I use it this way ** In fact it is designed to support this work flow. ** Even if this workflow is not yours you may find parts of this usefull. What variables are set by Settarg? ---------------------------------- Typically you will something this when gcc/4.7.2 is loaded: TARG=_x86_64_06_1a_gcc-4.7.3 TARG_COMPILER=gcc-4.7.3 TARG_COMPILER_FAMILY=gcc TARG_MACH=x86_64_06_1a TARG_TARGET=x86_64_06_1a_gcc-4.7.3 When mpich/3.0.4 is also loaded you get: TARG=_x86_64_06_1a_gcc-4.7.3_mpich-3.0.4 TARG_COMPILER=gcc-4.7.3 TARG_COMPILER_FAMILY=gcc TARG_MACH=x86_64_06_1a TARG_TARGET=x86_64_06_1a_gcc-4.7.3_mpich-3.0.4 TARG_MPI=mpich-3.0.4 TARG_MPI_FAMILY=mpich The TARG variable reports the state of the modules. By default the TARG variable is: TARG = _ + ${TARG_MACH} + _ + ${TARG_BUILD_SCENARIO} + _ + ${TARG_COMPILER} + _ + ${TARG_MPI} where "+" means string concatation. If one of the above variables is undefined then the extra underscores are removed. The ${TARG_BUILD_SCENARIO} is by default set to be empty. The commands "dbg" and "opt" set TARG_BUILD_SCENARIO to be "dbg" and "opt" respectively. This variable could be used by a build system to control whether the optimized or debug version of a program is built.