lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


A library binding various POSIX APIs. POSIX is the IEEE Portable
Operating System Interface standard. luaposix is based on lposix.

I am happy to announce release 36.2.1 of luaposix.

This release is primarily to fix compilation failures on CentOS with
release 36.0, but will also fix any other latent bugs caused by
testing for features using different cpp defines than are used for
building the installed modules!

If you have moved to the documented APIs, and don't rely on the
Lua backwards compatibility layer or convenience functions, you
can safely omit Lua module dependencies and use the C layer only.

luaposix's home page is at https://github.com/luaposix/luaposix/,
with documentation at https://luaposix.github.io/luaposix.


## Noteworthy changes in release 36.2 (2023-06-16) [stable]

### Incompatible Changes

  - Using latest typecheck and specl rocks requires that
    our argument errors list all typenames in full
    ("integer" not "int") and unions in order ("nil or
    string" not "string or nil".

    All luaposix APIs now report argument type errors
    accordingly.

### Bugs Fixed

  - `posix.unistd.read` and `posix.sys.socket.recv` no longer
    hide the underlying real error by casting a ssize_t result
    into an unsigned site_t local.

  - Fix a typo in the `lflag` argument name in the termios
    table LDocs.

  - `posix.sys.*` submodules are correctly preloaded into
    the module table returned by `require 'posix'` so that
    this undocumented, deprecated and slow way to access
    the functions therein continues to work for now:

        local posix = require 'posix'
        local stat  = posix.sys.stat.stat

    For new code, consider this fast and documented
    alternative, that does not load every available luaposix
    API from disk (especially if your project does not use
    APIs from every luaposix module):

        local stat  = require 'posix.sys.stat'.stat

  - Removed `IUTF8` from the documented list of supported `iflag`
    values in `posix.termios` because it was previously
    unimplemented. Implemented non-portable support as an XSI
    extension, as it isn't a part of the POSIX standard.


You can install it with:

    luarocks install luaposix 36.2.1