Blame NEWS

Packit 437b5e
# luaposix NEWS - User visible changes
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 33.3.1 (2015-03-01) [stable]
Packit 437b5e
Packit 437b5e
### Incompatible Changes
Packit 437b5e
Packit 437b5e
  - The briefly lived `posix.system` API has been removed.  It was renamed
Packit 437b5e
    to `posix.spawn` shortly after introduction, and can still be accessed
Packit 437b5e
    by the new symbol name.
Packit 437b5e
Packit 437b5e
### Bugs Fixed
Packit 437b5e
Packit 437b5e
  - `local posix = require "posix"` works again, fixing the regression
Packit 437b5e
    introduced in the last release.  The automated Travis checks have been
Packit 437b5e
    improved to catch this sort of bug in future.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 33.3.0 (2015-02-28) [stable]
Packit 437b5e
Packit 437b5e
### New Features
Packit 437b5e
Packit 437b5e
  - Improved documentation of `sockaddr` tables for `posix.sys.socket` calls.
Packit 437b5e
Packit 437b5e
  - New `posix.sys.socket.getsockname` binding.
Packit 437b5e
Packit 437b5e
  - Remove the `posix.bit32` library, and use Lua’s built-in `bit32` library.
Packit 437b5e
Packit 437b5e
  - Can now be linked against NetBSD curses, albeit with several functions
Packit 437b5e
    not implemented by that library returning a "not implemented" error as
Packit 437b5e
    a consequence.
Packit 437b5e
Packit 437b5e
  - New functions `popen`, `popen_pipeline` and `pclose` mimic the POSIX
Packit 437b5e
    functions of the same name while allowing tasks to be Lua functions.
Packit 437b5e
Packit 437b5e
  - `fdopen` has been re-added, working on all supported Lua versions.
Packit 437b5e
Packit 437b5e
  - `execx` allows a Lua function or command to be exec’d; `spawn` is now
Packit 437b5e
    implemented in terms of it.
Packit 437b5e
Packit 437b5e
### Incompatible Changes
Packit 437b5e
Packit 437b5e
  - The ncurses-only `KEY_MOUSE` definition has been removed from
Packit 437b5e
    `posix.curses`.
Packit 437b5e
Packit 437b5e
### Bugs Fixed
Packit 437b5e
Packit 437b5e
  - `posix.sys.resource` only provides RLIM_SAVED_CUR and RLIM_SAVED_MAX if
Packit 437b5e
    they are defined by the C library (which FreeBSD 10 does not).
Packit 437b5e
Packit 437b5e
  - `posix.dirent.dir` and `posix.dirent.files` now raise a Lua `error()`
Packit 437b5e
    when unable to open the path argument, for orthogonality with `io.lines`.
Packit 437b5e
Packit 437b5e
  - Workaround for manifest key clash between `posix.so` and `posix.lua` in
Packit 437b5e
    LuaRocks.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 33.2.1 (2015-01-04) [stable]
Packit 437b5e
Packit 437b5e
### Bugs Fixed
Packit 437b5e
Packit 437b5e
  - Install posix.curses.html documentation file correctly.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 33.2.0 (2015-01-03) [stable]
Packit 437b5e
Packit 437b5e
### New Features
Packit 437b5e
Packit 437b5e
  - QNX support.
Packit 437b5e
Packit 437b5e
### Bugs Fixed
Packit 437b5e
Packit 437b5e
  - `posix.time.gmtime` and `posix.time.localtime` specifications now
Packit 437b5e
    work correctly in January too!
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 33.1.0 (2014-12-19) [stable]
Packit 437b5e
Packit 437b5e
### New Features
Packit 437b5e
Packit 437b5e
  - New `posix.bit32` module with band, bnot and bor functions that can be
Packit 437b5e
    used from any supported Lua release, without worrying about loading an
Packit 437b5e
    external bit operations library.
Packit 437b5e
Packit 437b5e
  - Preliminary Lua 5.3.0 compatibility.
Packit 437b5e
Packit 437b5e
### Bugs Fixed
Packit 437b5e
Packit 437b5e
  - No more 'Bad Hints' errors from `posix.sys.socket.getaddrinfo` on many
Packit 437b5e
    hosts.
Packit 437b5e
Packit 437b5e
  - `stdlib.setenv` accepts a 3rd argument again.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 33.0.0 (2014-11-04) [stable]
Packit 437b5e
Packit 437b5e
### New Features
Packit 437b5e
Packit 437b5e
  - The curses library is fully integrated into luaposix, including reasonably
Packit 437b5e
    comprehensive LDoc documentation (certainly much better than the single
Packit 437b5e
    wooly web-page in previous releases).  For backwards compatibility, all
Packit 437b5e
    APIs are re-exported from the `curses` module.
Packit 437b5e
Packit 437b5e
  - Most constants available through luaposix are now listed in the LDocs of
Packit 437b5e
    the submodule that defines them.
Packit 437b5e
Packit 437b5e
  - For backwards compatibility, everything is still lumped together in the
Packit 437b5e
    `posix.???` namespace, but, now raw APIs have been reorganised according to
Packit 437b5e
    the POSIX header files they belong to:
Packit 437b5e
Packit 437b5e
    ```lua
Packit 437b5e
    local posix  = require "posix"
Packit 437b5e
    local fcntl  = require "posix.fcntl"
Packit 437b5e
    local unistd = require "posix.unistd"
Packit 437b5e
Packit 437b5e
    local fd = fcntl.open ("x",
Packit 437b5e
       bit32.bor (posix.O_WRONLY, posix.O_CREAT), "u=rw")
Packit 437b5e
    unistd.write (fd, "Hello, World!\n")
Packit 437b5e
    unistd.close (fd)
Packit 437b5e
    ```
Packit 437b5e
Packit 437b5e
    This makes the documentation easier to navigate, and for a better mapping
Packit 437b5e
    between luaposix APIs and the C functions they wrap, so translating from
Packit 437b5e
    C is now easier than ever.
Packit 437b5e
Packit 437b5e
  - Each of the newly separated submodules is self-contained, and can be copied
Packit 437b5e
    to another project for compiling and/or loading in a custom Lua runtime. If
Packit 437b5e
    you want to make use of this, in addition to the source for the modules you
Packit 437b5e
    copy, you'll also need at least the files `ext/posix/_helpers.c` and
Packit 437b5e
    `ext/include/lua52compat.c`, and also `ext/include/strlcat.c` for one or
Packit 437b5e
    two of them.
Packit 437b5e
Packit 437b5e
  - Where submodule calls return a table representation of a similar C struct
Packit 437b5e
    from a POSIX API, the Lua return tables have an appropriate `_type` field
Packit 437b5e
    metatable entry compatible with lua-stdlib `std.object.type`.
Packit 437b5e
Packit 437b5e
  - `posix.signal.signal` now accepts the constants `posix.signal.SIG_DFL` or
Packit 437b5e
    `posix.signal.SIG_IGN` in place of the strings "SIG_DFL" and "SIG_IGN".
Packit 437b5e
Packit 437b5e
  - The submodule bindings `posix.time.gmtime`, `posix.time.localtime`,
Packit 437b5e
    `posix.time.mktime`, `posix.time.strftime` and `posix.time.strptime` now
Packit 437b5e
    accept or create PosixTm tables with 1-to-1 field name mappings with the
Packit 437b5e
    POSIX `struct tm`.  The old APIs with custom field names is still available
Packit 437b5e
    as `posix.gmtime`, `posix.localtime`, `posix.mktime`, `posix.strftime` and
Packit 437b5e
    `posix.strptime`.
Packit 437b5e
Packit 437b5e
  - Similarly, `posix.time.nanosleep` now takes and returns a PosixTimespec
Packit 437b5e
    table.  The old API is still available as `posix.nanosleep`.
Packit 437b5e
Packit 437b5e
  - Where supported by the underlying system, `posix.time.clock_getres` and
Packit 437b5e
    `posix.time.clock_gettime` now require a constant inte argument (newly
Packit 437b5e
    defined in the `posix.time` submodule), and returns a PosixTimespec table.
Packit 437b5e
    The old APIs are still available as `posix.clock_getres` and
Packit 437b5e
    `posix.clock_gettime`.
Packit 437b5e
Packit 437b5e
  - Add `posix.unistd.gethostid`. The old `posix.hostid` API is still available
Packit 437b5e
    as an alias.
Packit 437b5e
Packit 437b5e
  - Add group APIs from grp.h: `posix.grp.endgrent`, `posix.grp.getgrent`,
Packit 437b5e
    `posix.grp.getgrgid`, `posix.grp.getgrnam` and `posix.grp.setgrent`.
Packit 437b5e
    Consequently, `posix.getgroup` is now reimplemented in Lua over the POSIX
Packit 437b5e
    APIs.
Packit 437b5e
Packit 437b5e
  - `posix.getgroup` defaults to current effective group when called with no
Packit 437b5e
    arguments, for consistency with `posix.getpasswd` API.
Packit 437b5e
Packit 437b5e
  - Add pwd APIs from pwd.h: `posix.pwd.endpwent`, `posix.grp.getpwent`,
Packit 437b5e
    `posix.pwd.getpwnam`, `posix.pwd.getpwuid` and `posix.pwd.setpwent`.
Packit 437b5e
    Consequently, `posix.getpasswd` is now reimplemented in Lua over the POSIX
Packit 437b5e
    APIs.
Packit 437b5e
Packit 437b5e
  - Add missing constants from sys/resource.h:
Packit 437b5e
    `posix.sys.resource.RLIM_INFINITY`, `posix.sys.resource.RLIM_SAVED_CUR`,
Packit 437b5e
    `posix.sys.resource.RLIM_SAVED_MAX`, `posix.sys.resource.RLIMIT_CORE`,
Packit 437b5e
    `posix.sys.resource.RLIMIT_CPU`, `posix.sys.resource.RLIMIT_DATA`,
Packit 437b5e
    `posix.sys.resource.RLIMIT_FSIZE`, `posix.sys.resource.RLIMIT_NOFILE`,
Packit 437b5e
    `posix.sys.resource.RLIMIT_STACK`, `posix.sys.resource.RLIMIT_AS`.
Packit 437b5e
Packit 437b5e
  - Add missing APIs from unistd.h: `posix.unistd.getegid`,
Packit 437b5e
    `posix.unistd.geteuid`, `posix.unistd.getgid`, `posix.unistd.getuid`,
Packit 437b5e
    `posix.unistd.getpgrp`, `posix.unistd.getpid`, `posix.unistd.getppid`.
Packit 437b5e
    Consequently, `posix.getpid` is now reimplemented in Lua over the POSIX
Packit 437b5e
    APIs.
Packit 437b5e
Packit 437b5e
  - Add missing constants from signal.h; `posix.signal.SIG_DFL` and
Packit 437b5e
    `posix.signal.SIG_IGN'.
Packit 437b5e
Packit 437b5e
  - Add missing APIs from sys/stat.h: `posix.sys.stat.S_ISBLK`,
Packit 437b5e
    `posix.sys.stat.S_ISCHR`, `posix.sys.stat.S_ISDIR`,
Packit 437b5e
    `posix.sys.stat.S_ISFIFO`, `posix.sys.stat.S_ISLNK`,
Packit 437b5e
    `posix.sys.stat.S_ISREG`, `posix.sys.stat.S_ISSOCK`.
Packit 437b5e
Packit 437b5e
  - Add missing constants from sys/stat.h: `posix.sys.stat.S_IFMT`,
Packit 437b5e
    `posix.sys.stat.S_IFBLK`, `posix.sys.stat.S_IFCHR`,
Packit 437b5e
    `posix.sys.stat.S_IFDIR`, `posix.sys.stat.S_IFIFO`,
Packit 437b5e
    `posix.sys.stat.S_IFLNK`, `posix.sys.stat.S_IFREG`,
Packit 437b5e
    `posix.sys.stat.S_IRWXU`, `posix.sys.stat.S_IRUSR`,
Packit 437b5e
    `posix.sys.stat.S_IWUSR`, `posix.sys.stat.S_IXUSR`,
Packit 437b5e
    `posix.sys.stat.S_IRWXG`, `posix.sys.stat.S_IRGRP`,
Packit 437b5e
    `posix.sys.stat.S_IWGRP`, `posix.sys.stat.S_IXGRP`,
Packit 437b5e
    `posix.sys.stat.S_IRWXO`, `posix.sys.stat.S_IROTH`,
Packit 437b5e
    `posix.sys.stat.S_IWOTH`, `posix.sys.stat.S_IXOTH`,
Packit 437b5e
    `posix.sys.stat.S_ISGID`, `posix.sys.stat.S_ISUID`.
Packit 437b5e
Packit 437b5e
  - Add missing constants from syslog.h: `posix.syslog.LOG_CONS`,
Packit 437b5e
    `posix.syslog.LOG_NDELAY` and `posix.syslog.LOG_PID`.
Packit 437b5e
Packit 437b5e
  - Add missing API from syslog.h: `posix.syslog.LOG_MASK`.  Use this to
Packit 437b5e
    convert syslog priority constants into mask bits suitable for bitwise
Packit 437b5e
    ORing as the argument to `posix.syslog.setlogmask`.
Packit 437b5e
Packit 437b5e
  - Add missing constants from time.h: `posix.time.CLOCK_MONOTONIC`,
Packit 437b5e
    `posix.time.CLOCK_PROCESS_CPUTIME_ID`, `posix.time.CLOCK_REALTIME` and
Packit 437b5e
    `posix.time.CLOCK_THREAD_CPUTIME_ID`.
Packit 437b5e
Packit 437b5e
  - New `posix.unistd.exec` and `posix.unistd.execp` require a table of
Packit 437b5e
    arguments, with [0] defaulting to the command name.  The old string
Packit 437b5e
    tuple passing API is still available as `posix.exec` and `posix.execp`.
Packit 437b5e
Packit 437b5e
  - `posix.util.openpty` has moved to `posix.openpty`.  The old API is still
Packit 437b5e
    available as an alias.
Packit 437b5e
Packit 437b5e
  - All posix APIs now fully and correctly diagnose extraneous and wrong
Packit 437b5e
    type arguments with an error.
Packit 437b5e
Packit 437b5e
  - Add `posix.IPC_NOWAIT`, `posix.MSG_EXCEPT` and `posix.MSG_NOERROR`
Packit 437b5e
    constants for message queues.
Packit 437b5e
Packit 437b5e
  - Add `posix.IPPROTO_UDP` for socket programming.
Packit 437b5e
Packit 437b5e
  - Add `posix.AI_NUMERICSERV` for posix.getaddrinfo hints flags.
Packit 437b5e
Packit 437b5e
  - Add `posix.WUNTRACED` for posix.wait flags.
Packit 437b5e
Packit 437b5e
  - Add `curses.A_COLOR` (where supported by the underlying curses library) for
Packit 437b5e
    extracting color pair assignments from the results of `curses.window.winch`.
Packit 437b5e
Packit 437b5e
  - Add missing `curses.KEY_F31` constant.
Packit 437b5e
Packit 437b5e
### Bugs Fixed
Packit 437b5e
Packit 437b5e
  - `posix.fadvise` is now spelled `posix.fcntl.posix_fadvise` and takes a
Packit 437b5e
    file descriptor first argument rather than a Lua file handle. The old
Packit 437b5e
    misspelled bad argument type version is undocumented but still works.
Packit 437b5e
Packit 437b5e
  - `posix.getpasswd`, `posix.getpid`, `posix.pathconf`, `posix.stat`,
Packit 437b5e
    `posix.statvfs`, `posix.sysconf` and `posix.times` process a single table
Packit 437b5e
    argument with a list of types correctly.
Packit 437b5e
Packit 437b5e
  - `posix.syslog.openlog` now takes the bitwise OR of those constants.  The
Packit 437b5e
    old string option specified API is still available as `posix.openlog`.
Packit 437b5e
Packit 437b5e
  - `posix.syslog.setlogmask` now takes the bitwise OR of bits returned by
Packit 437b5e
    passing priority constants to `posix.syslog.LOG_MASK`.  The old API will
Packit 437b5e
    continue to be available as `posix.setlogmask`.
Packit 437b5e
Packit 437b5e
  - `posix.readlink` is much more robust, and reports errors accurately.
Packit 437b5e
Packit 437b5e
  - configured installation installs `posix.so` into the lua cpath directory
Packit 437b5e
    correctly.
Packit 437b5e
Packit 437b5e
  - fixed a long-standing bug where the stdio buffers were not restored after
Packit 437b5e
    some posix.fcntl() examples, resulting in the `make check` output being
Packit 437b5e
    truncated -- often before terminal colors were returned to normal.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 32 (2014-05-30) [stable]
Packit 437b5e
Packit 437b5e
### New Features
Packit 437b5e
Packit 437b5e
  - Support for posix.socketpair call and posix.AF_UNIX constant.
Packit 437b5e
Packit 437b5e
  - Previously undocumented spawn, pipeline, pipeline_iterator, pipeline_slurp,
Packit 437b5e
    euidaccess, timeradd, timercmp and timersub have been moved from the posix
Packit 437b5e
    table, which is reserved for strictly POSIX APIs to the posix.sys subtable.
Packit 437b5e
    The sys submodule automatically loads on first reference, so no need to
Packit 437b5e
    require it manually if you already have the main posix module loaded.
Packit 437b5e
Packit 437b5e
  - posix api documentation is separated into groups for better discovery.
Packit 437b5e
Packit 437b5e
### Bugs Fixed
Packit 437b5e
Packit 437b5e
  - Builds correctly on hosts with no IPV6 capability.
Packit 437b5e
Packit 437b5e
  - Small improvements in organisation of generated html docs.
Packit 437b5e
Packit 437b5e
  - posix.openpty doesn't crash.
Packit 437b5e
Packit 437b5e
  - configure now detects Lua correctly with busybox grep.
Packit 437b5e
Packit 437b5e
  - Many fine portability fixes from latest gnulib.
Packit 437b5e
Packit 437b5e
  - Missing docs for accept, bind, connect, getaddrinfo, listen, recv,
Packit 437b5e
    recvfrom, send, sendto, setsockopt, shutdown, socket and socketpair apis
Packit 437b5e
    is now provided.
Packit 437b5e
Packit 437b5e
  - Missng docs for tcdrain, tcflow, tcflush, tcgetattr, tcsendbreak and
Packit 437b5e
    tcsetattr terminal apis are now provided.
Packit 437b5e
Packit 437b5e
  - Docs for apis implemented in Lua are now shown correctly.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 31 (2013-09-09) [stable]
Packit 437b5e
Packit 437b5e
### New Features
Packit 437b5e
Packit 437b5e
  - Missing termios cc flags are now available.
Packit 437b5e
Packit 437b5e
### Bugs Fixed
Packit 437b5e
Packit 437b5e
  - posix.tcgetattr and posix.tcsetattr no save and restore all flags,
Packit 437b5e
    regardless of whether they are local extensions to POSIX.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 30 (2013-08-29) [stable]
Packit 437b5e
Packit 437b5e
### New Features
Packit 437b5e
Packit 437b5e
  - Support for file locks with fcntl() using F_SETLK, F_SETLKW, F_GETLK,
Packit 437b5e
    F_RDLCK, F_WRLCK and F_UNLCK.
Packit 437b5e
Packit 437b5e
  - Preliminary support for GNU Hurd, and OpenBSD.
Packit 437b5e
Packit 437b5e
### Bugs Fixed
Packit 437b5e
Packit 437b5e
  - posix.shutdown can actually be called now.
Packit 437b5e
Packit 437b5e
  - Report the correct argument number in posix function error messages.
Packit 437b5e
Packit 437b5e
  - Much reduced compiler warning noise.
Packit 437b5e
Packit 437b5e
  - Many small typos and inconsistencies, see ChangeLog for details.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 29 (2013-06-28) [stable]
Packit 437b5e
Packit 437b5e
  - This release adds wresize to curses, and sync, fsync, fdatasync, nice,
Packit 437b5e
    lseek as well as socket programming functions.  Several small improvements
Packit 437b5e
    to the documentation were also added.
Packit 437b5e
Packit 437b5e
  - luaposix is compatible with Lua 5.1, Lua 5.2 and luajit 2.0, so the
Packit 437b5e
    5.1 prefix to the release version has become an anachronism and has
Packit 437b5e
    been dropped from this release onwards.
Packit 437b5e
Packit 437b5e
### New Features
Packit 437b5e
Packit 437b5e
  - Move to the Slingshot release system, which (among many other improvements)
Packit 437b5e
    fixes release tarballs from github to work with the standard GNU-style:
Packit 437b5e
    `./configure, make, make install`.  `bootstrap` is still distributed for
Packit 437b5e
    those who need to re-bootstrap with a different version of gnulib and/or
Packit 437b5e
    slingshot.
Packit 437b5e
Packit 437b5e
  - Much improved former lunit and ad-hoc test scripts to Specl.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.28 (2013-03-23) [stable]
Packit 437b5e
Packit 437b5e
  - This release fixes the previously unannounced posix.pipeline_iterator and
Packit 437b5e
    posix.pipeline_slurp functions, and adds a test for them. A workaround for
Packit 437b5e
    having LUA_INIT_5_2 set has been added to the build system.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.27 (2013-03-17) [stable]
Packit 437b5e
Packit 437b5e
  - This release fixes broken Lua 5.1 compatibility in release 5.1.26
Packit 437b5e
    (sorry! And thanks to Nick McVeity for the bug report and patch); renames
Packit 437b5e
    posix.system to posix.spawn (the old name is available for backwards
Packit 437b5e
    compatibility), generalizing it to take a shell command, file and
Packit 437b5e
    arguments, or Lua function; and adds posix.pipeline, which makes it easy
Packit 437b5e
    to run a pipeline of processes, each a shell command, program, or Lua
Packit 437b5e
    function.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.26 (2013-03-04) [stable]
Packit 437b5e
Packit 437b5e
  - This release adds killpg, realpath and openpty, adds a flags parameter to
Packit 437b5e
    signal, and improves some documentation.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.25 (2013-02-20) [stable]
Packit 437b5e
Packit 437b5e
  - This release adds support for message queues and UNIX 98 pseudoterminals
Packit 437b5e
    (thanks very much to the respective contributors), and allows argv[0] to
Packit 437b5e
    be set in exec calls.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.24 (2013-02-15) [stable]
Packit 437b5e
Packit 437b5e
  - This release adds isatty and constants STDIN_FILENO, STDOUT_FILENO and
Packit 437b5e
    STDERR_FILENO, fixes a bug in readlink, adds a day field to time tables
Packit 437b5e
    for compatibility with os.date, and overhauls the build and release system.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.23 (2012-10-04) [stable]
Packit 437b5e
Packit 437b5e
  - This release fixes the curses module for Lua 5.2; previously it would not
Packit 437b5e
    load with an unknown symbol error. The build process  for luarocks has been
Packit 437b5e
    made more robust.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.22 (2012-09-13) [stable]
Packit 437b5e
Packit 437b5e
  - This release fixes building on Mac OS X and some other OSes which don't
Packit 437b5e
    like building empty libraries. Thanks to Robert McLay for the bug report.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.21 (2012-09-10) [stable]
Packit 437b5e
Packit 437b5e
  - This release adds comprehensive documentation for the posix module, from
Packit 437b5e
    Steve Donovan and Natanael Copa.
Packit 437b5e
Packit 437b5e
  - It makes one small change: rpoll now uses file descriptors, not Lua file
Packit 437b5e
    objects (hence, via fileno, it can use both).
Packit 437b5e
Packit 437b5e
  - Perhaps most importantly, it marks a change of maintainer, from
Packit 437b5e
    Reuben Thomas to Alexander Nikolaev. Thanks very much to Alexander for
Packit 437b5e
    agreeing to take over. Luaposix has garnered considerable interest in
Packit 437b5e
    recent months, and more contributors have stepped forwards with patches.
Packit 437b5e
    Alexander will help to oversee a maturing API, coordinate ongoing
Packit 437b5e
    improvements and additions, and help ensure that luaposix doesn't fall
Packit 437b5e
    back into disrepair as it has several times in the past.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.20 (2012-06-22) [stable]
Packit 437b5e
Packit 437b5e
### New Features
Packit 437b5e
Packit 437b5e
  - Improves signal handling.
Packit 437b5e
  - Improves the posix.system and creat functions (all thanks to Steve Donovan).
Packit 437b5e
  - Adds mkdtemp (thanks, 7hemroc).
Packit 437b5e
  - Adds statvfs (thanks to Like Ma).
Packit 437b5e
  - improves the tests.
Packit 437b5e
  - Adds some code guidelines.
Packit 437b5e
Packit 437b5e
### Bugs Fixed
Packit 437b5e
Packit 437b5e
  - Fixes a bug in getgroup.
Packit 437b5e
  - Fixes some space leaks (thanks, Alexander Nikolaev),
Packit 437b5e
  - Copes with sysconf for _PC_PATH_MAX returning -1.
Packit 437b5e
Packit 437b5e
### Incompatible Changes
Packit 437b5e
Packit 437b5e
  - The API of posix.open has changed to be more like the C version: the file
Packit 437b5e
    creation and status flags are now constants in the POSIX namespace. This
Packit 437b5e
    enables them to be used outside calls to open, and makes posix.open less
Packit 437b5e
    magic. posix.open will now raise an error if no creation flags are given
Packit 437b5e
    when O_CREAT is used.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.19 (2012-04-10) [stable]
Packit 437b5e
Packit 437b5e
  - This release avoids the use of PATH_MAX, and copes with arbitrarily-long
Packit 437b5e
    paths. The implementation of strlcpy is changed to a BSD-licensed
Packit 437b5e
    implementation; the previously-used implementation was LGPL-licensed, which
Packit 437b5e
    is not MIT-compatible; thanks to Alexander Gladysh for bringing this
Packit 437b5e
    problem to my attention. (This was just mis-released as 5.1.18; sorry!)
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.18 (2012-03-26) [stable]
Packit 437b5e
Packit 437b5e
  - This release implements full Lua 5.2 compatibility; thanks to Enrico Tassi
Packit 437b5e
    for poking me to get this done.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.17 (2012-02-29) [stable]
Packit 437b5e
Packit 437b5e
  - This release improves support for Lua 5.2; the curses module should now
Packit 437b5e
    work fine (the posix module still needs updating). Signal handling has been
Packit 437b5e
    improved to make it possible to chain to a C signal handler, and a bug in
Packit 437b5e
    resetting the process's signal mask after running a Lua handler has been
Packit 437b5e
    fixed.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.16 (2012-02-18) [stable]
Packit 437b5e
Packit 437b5e
  - This release includes rewritten fcntl and signals support, and bug fixes
Packit 437b5e
    for read, chmod, getgroups and waitpid. curses boolean return values are
Packit 437b5e
    now Lua booleans rather than 0 for OK or ERR for not OK. fnmatch, strptime
Packit 437b5e
    and mktime are now supported, chmod now supports octal modes, thereâs
Packit 437b5e
    much expanded poll support, and some non-POSIX and obsolete features have
Packit 437b5e
    been removed. There are more tests and the build system has been improved.
Packit 437b5e
    Thanks go to the many contributors to this release.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.15 (2011-09-29) [stable]
Packit 437b5e
Packit 437b5e
  - This release adds dup, pipe, pipe2 and more fcntl support (thanks to
Packit 437b5e
    Alexander V. Nikolaev and Alexander Gladysh for the patches). Two bugs in
Packit 437b5e
    the test code which used incorrect paths and caused only one set of tests
Packit 437b5e
    to run have been fixed.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.14 (2011-09-19) [stable]
Packit 437b5e
Packit 437b5e
  - This release allows some constants to be case-insensitive in Lua, and fixes
Packit 437b5e
    a small build-system bug.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.13 (2011-09-17) [stable]
Packit 437b5e
Packit 437b5e
This release adds a rockspec.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.12 (2011-09-09) [stable]
Packit 437b5e
Packit 437b5e
  - This release adds some basic functions such as open, close, read and write,
Packit 437b5e
    and integrates the pure Lua module which was previously in Lua stdlib. It
Packit 437b5e
    also adds a whole new module, curses, which was previously in the separate
Packit 437b5e
    lcurses project (curses is part of the POSIX standard).
Packit 437b5e
Packit 437b5e
### Incompatible Changes
Packit 437b5e
Packit 437b5e
  - Note that the C part of the POSIX module is now called posix_c.so (or
Packit 437b5e
    similar), so if you have an old posix.so (or similar) you should delete it
Packit 437b5e
    to avoid clashing with the new posix.lua.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.11 (2011-04-27) [stable]
Packit 437b5e
Packit 437b5e
  - Apologies, 5.1.10, released earlier today, had a buffer overflow bug
Packit 437b5e
    in the new mkstemp function. 5.1.11, just out, fixes it.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.10 (2011-04-27) [stable]
Packit 437b5e
Packit 437b5e
### This release adds mkstemp, adds some fixes for building on Mac OS X
Packit 437b5e
    (thanks to Gary Vaughan), removes some non-POSIX rlimit constants,
Packit 437b5e
    guards some functions that were not correctly guarded, so that they
Packit 437b5e
    will not be compiled on systems that don't support them, and makes
Packit 437b5e
    other minor fixes.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.9 (2011-03-24) [stable]
Packit 437b5e
Packit 437b5e
### New Features
Packit 437b5e
Packit 437b5e
  - support for signals and for getopt. See below for details.
Packit 437b5e
Packit 437b5e
  - Equally, there is still only the barest documentation: to use the various
Packit 437b5e
    APIs you have to grep to see if the one you want is there and then read the
Packit 437b5e
    C comment which gives the Lua API. If anyone is interested in adding better
Packit 437b5e
    documentation, I'd be delighted to hear from them. (My work on luaposix is
Packit 437b5e
    purely aimed at getting the support I need for GNU Zile, but as usual I
Packit 437b5e
    welcome patches from others. luaposix is still far from complete, so please
Packit 437b5e
    send patches for your favourite POSIX APIs!)
Packit 437b5e
Packit 437b5e
  - luaposix 5.1.9 improves compatibility with Darwin/Mac OS X, and adds
Packit 437b5e
    various new API bindings, for signals, getgroups, setting errno and
Packit 437b5e
    _exit, as well as some slight code cleanup.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.8 (2013-03-23) [stable]
Packit 437b5e
Packit 437b5e
### Bugs Fixed
Packit 437b5e
Packit 437b5e
  - fix bugs for setrlimit and gettimeofday.
Packit 437b5e
  - an improvement to test.lua.
Packit 437b5e
  - better use of POSIX feature macros to determine what APIs to support.
Packit 437b5e
  - removal of the obsolete timezone argument to gettimeofday,
Packit 437b5e
  - remove the non-POSIX gecos field of struct passwd
Packit 437b5e
  - improvements to the build system
Packit 437b5e
  - some code tidy-up,
Packit 437b5e
  - removal of Lua 5.0 compatibility
Packit 437b5e
Packit 437b5e
### New APIs
Packit 437b5e
Packit 437b5e
  - abort, raise, isprint, isgraph, errno and stdio.h constants, and getopt_long.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.7 (2013-03-23) [stable]
Packit 437b5e
Packit 437b5e
A new minor bugfix release of luaposix is out.
Packit 437b5e
Packit 437b5e
### Bugs Fixed
Packit 437b5e
Packit 437b5e
  - make clock_* functions' argument optional
Packit 437b5e
  - fixes posix.version string
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.6 (2010-08-11) [stable]
Packit 437b5e
Packit 437b5e
  - This release adds time functions: gettimeofday, clock_getres,
Packit 437b5e
    clock_gettime, localtime, gmtime, time, strftime.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.5 (20??-??-??) [stable]
Packit 437b5e
Packit 437b5e
The release notes for this release were lost in the mists of thyme.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.4 (2008-07-18) [stable]
Packit 437b5e
Packit 437b5e
  - Includes a fix for rpoll() from debian[1] and a patch from openwrt[2]
Packit 437b5e
    that adds crypt().
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.3 (2013-03-23) [stable]
Packit 437b5e
Packit 437b5e
No changes.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.2 (2008-01-29) [stable]
Packit 437b5e
Packit 437b5e
### Incompatible changes
Packit 437b5e
Packit 437b5e
  - Please note that this release breakes the API for dup() and exec()
Packit 437b5e
Packit 437b5e
### New Features
Packit 437b5e
Packit 437b5e
  - dup() now takes and returns lua files rather than file descriptors
Packit 437b5e
    (int).
Packit 437b5e
Packit 437b5e
  - exec() uses now execv(3) rather than execvp(3).  This means that the
Packit 437b5e
    PATH environment variable is no longer used which means that all scripts
Packit 437b5e
    currently using exec() without an absolute path will break. If you need
Packit 437b5e
    the PATH variable, use the new execp() function.
Packit 437b5e
Packit 437b5e
  - Added openlog(), syslog() and closelog() functions.
Packit 437b5e
Packit 437b5e
  - The openlog(ident, [option], [facility]) function differs from the
Packit 437b5e
    recently released luasyslog by giving the user possibility to set
Packit 437b5e
    "option". The "option" parameter is a string containing one or more of
Packit 437b5e
    the chars:
Packit 437b5e
Packit 437b5e
    ```
Packit 437b5e
    'c' - LOG_CONS
Packit 437b5e
    'n' - LOG_NDELAY
Packit 437b5e
    'e' - LOG_PERROR
Packit 437b5e
    'p' - LOG_PID
Packit 437b5e
    ```
Packit 437b5e
Packit 437b5e
    It is possible to disable those funcs compile time by setting the
Packit 437b5e
    ENABLE_SYSLOG define to 0.
Packit 437b5e
Packit 437b5e
  - fileno() function was added.
Packit 437b5e
Packit 437b5e
Packit 437b5e
## Noteworthy changes in release 5.1.1 (2008-01-25) [stable]
Packit 437b5e
Packit 437b5e
  - I have forked lposix. First release includes some patches submitted on
Packit 437b5e
    this list.
Packit 437b5e
Packit 437b5e
    This first release is basicly lposix with a cleaned up Makefile + the
Packit 437b5e
    patches found here:
Packit 437b5e
Packit 437b5e
       http://lua-users.org/lists/lua-l/2006-10/msg00448.html
Packit 437b5e
       http://lua-users.org/lists/lua-l/2007-11/msg00346.html
Packit 437b5e
Packit 437b5e
  - When the promised extened OS library[1] arrives I will most likely
Packit 437b5e
    remove the overlapping functions in luaposix. posix specific functions
Packit 437b5e
    that does not overlap will still be maintained and added. (e.g dup())
Packit 437b5e
Packit 437b5e
  - Releases numbered 5.1.x[.y] will work with lua-5.1 series. The 'x' will
Packit 437b5e
    add/change features and .y releases will be strict bugfixes (no new
Packit 437b5e
    features).
Packit 437b5e
Packit 437b5e
  - I had planned to add syslog functions and fix dup() to handle lua files
Packit 437b5e
    (FILE*) rather than file descriptors (int). Now that luasyslog just
Packit 437b5e
    released I will have to re-evaluate that.