|
Packit |
437b5e |
luaposix
|
|
Packit |
437b5e |
========
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
By the [luaposix project][GitHub]
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
[![travis-ci status](https://secure.travis-ci.org/luaposix/luaposix.png?branche=master)](http://travis-ci.org/luaposix/luaposix/builds)
|
|
Packit |
437b5e |
[![Stories in Ready](https://badge.waffle.io/luaposix/luaposix.png?label=ready&title=Ready)](https://waffle.io/luaposix/luaposix)
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
luaposix is a POSIX binding, including curses, for [Lua] 5.1, 5.2 and
|
|
Packit |
437b5e |
5.3; like most libraries it simply binds to C APIs on the underlying
|
|
Packit |
437b5e |
system, so it won't work on non-POSIX systems. However, it does try
|
|
Packit |
437b5e |
to detect the level of POSIX conformance of the underlying system and
|
|
Packit |
437b5e |
bind only available APIs.
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
luaposix is released under the MIT license, like Lua (see [COPYING];
|
|
Packit |
437b5e |
it's basically the same as the BSD license). There is no warranty.
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
Please report bugs and make suggestions by opening an issue on the
|
|
Packit |
437b5e |
github tracker.
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
Installation
|
|
Packit |
437b5e |
------------
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
The simplest way to install luaposix is with [LuaRocks]. To install the
|
|
Packit |
437b5e |
latest release (recommended):
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
luarocks install luaposix
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
To install current git master (for testing):
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
luarocks install https://raw.github.com/luaposix/luaposix/release/luaposix-git-1.rockspec
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
To install without LuaRocks, check out the sources from the
|
|
Packit |
437b5e |
[repository][GitHub] and run the following commands:
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
cd luaposix
|
|
Packit |
437b5e |
./bootstrap
|
|
Packit |
437b5e |
./configure --prefix=INSTALLATION-ROOT-DIRECTORY
|
|
Packit |
437b5e |
make all check install
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
Dependencies are listed in the dependencies entry of the file
|
|
Packit |
437b5e |
`rockspec.conf`. You will also need Autoconf and Automake.
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
See [INSTALL] for `configure` instructions and `configure --help`
|
|
Packit |
437b5e |
for details of available command-line switches.
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
Use
|
|
Packit |
437b5e |
---
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
The library is split into submodules according to the POSIX header file
|
|
Packit |
437b5e |
API declarations.
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
HTML documentation can be generated with [LDoc] by running `make doc`
|
|
Packit |
437b5e |
or viewed online at <http://luaposix.github.io/luaposix/>.
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
The authoritative online POSIX reference is at
|
|
Packit |
437b5e |
<http://www.opengroup.org/onlinepubs/007904875/toc.htm>.
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
Example code
|
|
Packit |
437b5e |
------------
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
See the example program `tree.lua`, along with the many small
|
|
Packit |
437b5e |
examples in the generated documentation and BDD `specs/*_spec.yaml`.
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
For a complete application, see the [GNU Zile].
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
Bugs reports & patches
|
|
Packit |
437b5e |
----------------------
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
Bug reports and patches are most welcome. Please use the github issue
|
|
Packit |
437b5e |
tracker (see URL at top). There is no strict coding style, but please
|
|
Packit |
437b5e |
bear in mind the following points when writing new code:
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
0. Follow existing code. There are a lot of useful patterns and
|
|
Packit |
437b5e |
avoided traps there.
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
1. 8-character indentation using TABs in C sources; 2-character
|
|
Packit |
437b5e |
indentation using SPACEs in Lua sources.
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
2. No non-POSIX APIs; no platform-specific code. When wrapping APIs
|
|
Packit |
437b5e |
introduced in POSIX 2001 or later, add an appropriate #if. If your
|
|
Packit |
437b5e |
platform isn't quite POSIX, you may find a gnulib module to bridge
|
|
Packit |
437b5e |
the gap. If absolutely necessary, use autoconf feature tests.
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
3. Thin wrappers: although some existing code contradicts this, wrap
|
|
Packit |
437b5e |
POSIX APIs in the simplest way possible. If necessary, more
|
|
Packit |
437b5e |
convenient wrappers can be added in Lua (posix.lua).
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
[Lua]: http://www.lua.org/
|
|
Packit |
437b5e |
[GitHub]: https://github.com/luaposix/luaposix
|
|
Packit |
437b5e |
[LuaRocks]: http://www.luarocks.org "Lua package manager"
|
|
Packit |
437b5e |
[LDoc]: https://github.com/stevedonovan/LDoc "Lua documentation generator"
|
|
Packit |
437b5e |
[COPYING]: https://raw.github.com/luaposix/luaposix/release/COPYING
|
|
Packit |
437b5e |
[INSTALL]: https://raw.github.com/luaposix/luaposix/release/INSTALL
|
|
Packit |
437b5e |
[GNU Zile]: http://git.savannah.gnu.org/cgit/zile.git/log/?h=lua "A cut-down Emacs clone"
|