lua-users home
lua-l archive

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


Dirk Laurie wrote:
> 1.  Once the debate on your guidelines (there is bound to be some
>     disagreement — this is lua-l!) has settled down, we start a page
>     LibraryBank (or whatever) linked to LuaAddons on LuaWiki saying:
>     these are the guidelines, and here is a list of modules claimed to
>     conform to them, each complete with a short description and a link
>     that takes you to the repository where it can be found.

I would go so far as to release fixed versions of the guidelines as
static pages (with release candidates and the associated discussion).
The wiki would be a great place to comment those guidelines after they
are released.

In a standard library I would not just see a list of individually
maintained "elite" modules, but a single, centrally maintained package
that consists of a selection of high-quality portable modules in a
common namespace.  The central coordination would need some discussion
and release candidates and so on, but my goal would be a package where
there is exactly one module for a given task.  If a better module is
later developed, it would replace the previous module (after some
discussion on the mailing list).  Incompatible changes and even removing
modules could be done in major version releases -- to avoid bloat I
would say that additional modules also can only be added on major
versions (otherwise it is way easier to add modules than to remove them).

A clear scope of the project would need to be defined in order to avoid
"repackaging any old junk".  What should the standard library be capable
of?  For example, I currently see the following tasks for a standard
library:

- File system functions
- Network functions (TCP, UDP, IPv4, IPv6)
- CGI scripting
- Database access (with an included version of SQLite)
- parsing and encoding XML/JSON/Lua table declarations
- Hash functions (SHA1, ...)
- LPEG
- zlib compression
- GUI functions (this could be a bit hard to do portable and small)

For all of those tasks there are already modules available, but a single
package would have the advantage that it would be something that could
be relied on without downloading multiple dependencies and noticing that
half of them require you to download a few dozen extra build tools for
each module.  The single package would also see a higher chance of being
adapted to new versions of Lua or new target platforms in one piece so I
suspect that it will also be more reliable in that sense as well.

Best regards,

David