lua-users home
lua-l archive

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

I'm happy to announce a new release of my standard Lua libraries. It's been nearly a year since the last release, and I'm happy to say that since then only one bug has been found (thanks Roberto!). Two functions have been added in this release, to deal with file paths, and one removed (io.length, which is handled by lfs.attributes) along with one constant (INTEGER_BITS, handled by bitlib's bit.bits).

As ever, comments and new code are welcomed.

For those not familiar with stdlib, it's a pure-Lua library of mostly fundamental data structures and algorithms, in particular support for functional and object-oriented programming, string and regex operations and extensible pretty printing of data structures. More specific modules include a getopt implementation, a generalised least common subsequences (i.e. diff algorithm) implementation, a recursive-descent parser generator, and an mbox parser.

It's quite a mixed bag, but almost all written for real projects. It's written in a doc-string-ish style with the supplied very simple ldoc tool.

I am happy with this code base, but there are various things it could use:

0. Tests. Tests. Tests. The code has no unit tests. It so needs them.

1. More code. Nothing too specialised (unless it's too small to be released on its own, although very little seems "too small" in the Lua community). Anything that either has widespread applicability (like getopt) or is very general (data structures, algorithms, design patterns) is good.

2. Refactoring. The code is not ideally factored. At the moment it is divided into modules that extend existing libraries, and new modules constructed along similar lines, but I think that some of the divisions are confusing. For example, the functional programming support is spread between the list and base modules, and would probably be better in its own module, as those who aren't interested in the functional style won't want the functional list support or the higher-order functions support, and those who want one will probably want the other.

3. Documentation work. There's not a long wrong with the existing documentation, but it would be nice, now that there is a stable LuaDoc, to use that instead of the built-in ldoc, which I'm happy to discard now that LuaDoc is stable. ldoc was always designed as a minimal LuaDoc substitute in any case.

4. Maintenance and advocacy. For a while I have been reducing my work on Lua, and am also now reducing my work in Lua. If anyone would like to take on stdlib, please talk to me. It fills a much-needed function: I suspect a lot of Lua programmers have invented the wheels with which it is filled over and over again. In particular, many programmers could benefit from the simplicity of its simple and well-designed functional, string and regex capabilities, and others will love its comprehensive getopt.

-- | wet nurse, n.  lactating lackey