|
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.
|