Change license of the Modules Tcl extension library from GPLv3+ to
GPLv2+.
Align this way all files from the Modules project under the GPLv2+
license.
Consent has been obtained from copyright holder to perform such move (I
hold the full copyright for this library).
Related to #389
Update C-version of the readFile procedure to add it the
`must_have_cookie` argument that tells if the Modules magic cookie
(#%Module) has to be checked when reading file to abort reading as soon
as possible if read file must be a modulefile.
Bump version of Tcl Envmodules library to 1.3.0.
Fixes#375.
Add function in libtclenvmodules to implement 'parseDateTimeArg' as a
Tcl command, which provides a more efficient way to convert a datetime
string into an Epoch time.
Add function in libtclenvmodules to implement 'initStateClockSeconds' as
a Tcl command, which provides a more efficient way to retrieve current
Epoch time.
Add function in libtclenvmodules to implement `initStateUsergroups` as a
Tcl command, which provides a more efficient way to retrieve current
groups of running process, rather forking to execute `id` external
binary.
Note that if current system does not support the `getgroups` system
call, only the primary group name of current user will be returned.
Add function in libtclenvmodules to implement `initStateUsername` as a
Tcl command, which provides a more efficient way to retrieve current
username, rather forking to execute `id` external binary.
Add function in libtclenvmodules to implement getFilesInDirectory as a
command, which provides a more IO-optimized way than native Tcl commands
perform by avoiding specific additional queries to get hidden files like
.modulerc and .version. As a result 1 stat and 2 access syscalls are
saved per directory read.
Introduce Modules Tcl extension library (written in C) to extend Tcl
language in order to provide more optimized I/O commands than native Tcl
commands do.
This library first provides a 'readFile' command which performs an open,
read, close of a given modulefile to fetch its content. Compared to the
Tcl native open, read, close commands it saves 1 ioctl + 1 fcntl + N
lstat system calls per modulefile.