66 lines
2.0 KiB
Plaintext
66 lines
2.0 KiB
Plaintext
|
LibWapcaplet - a string internment library
|
||
|
==========================================
|
||
|
|
||
|
Overview
|
||
|
--------
|
||
|
|
||
|
LibWapcaplet provides a reference counted string internment system
|
||
|
designed to store small strings and allow rapid comparison of them in
|
||
|
terms of equality. It supports a caseless comparison where it will
|
||
|
automatically intern a lowercased variant of the string and use that
|
||
|
for comparison if needed.
|
||
|
|
||
|
Rationale
|
||
|
---------
|
||
|
|
||
|
Prior to LibWapcaplet, LibParserUtils contained a dictionary and hash
|
||
|
implementation along with a red-black tree implementation
|
||
|
internally. These three things were then used by client applications
|
||
|
and libraries such as LibCSS. However, the code was deemed to be
|
||
|
inefficient and the features in the wrong library. The behaviour
|
||
|
required of the client libraries was therefore split out so that
|
||
|
internment would still be able to be shared between different client
|
||
|
libraries in the same application. (E.g. LibCSS and Hubbub)
|
||
|
|
||
|
For those interested, The name 'Wapcaplet' is from the Monty Python
|
||
|
sketch in which Mr Simpson (who is not French) attempts to sell
|
||
|
122,000 miles of string which was unfortunately cut up into 3 inch
|
||
|
lengths, and Adrian Wapcaplet comes up with the idea of "Simpson's
|
||
|
individual emperor stringettes - Just the right length!"
|
||
|
|
||
|
Requirements
|
||
|
------------
|
||
|
|
||
|
To compile LibWapcaplet you need:
|
||
|
|
||
|
* GNU Make 3.81 or better
|
||
|
* A version of GCC capable of -MMD -MF (unless you change the build
|
||
|
system)
|
||
|
|
||
|
To compile the test suite you need:
|
||
|
|
||
|
* Check v0.9.5 or better.
|
||
|
|
||
|
Compilation
|
||
|
-----------
|
||
|
|
||
|
To build LibWapcaplet in release mode, type 'make'. To build it in
|
||
|
debug mode type 'make BUILD=debug'. To install, run 'make
|
||
|
install'. If you wish to install LibWapcaplet into somewhere other
|
||
|
than /usr/local/ then add PREFIX=/path/to/place to the installation
|
||
|
make command.
|
||
|
|
||
|
Verification
|
||
|
------------
|
||
|
|
||
|
To build and run the tests, run 'make test'.
|
||
|
|
||
|
In release mode, fewer tests will be run as the assert() calls will be
|
||
|
elided.
|
||
|
|
||
|
API documentation
|
||
|
-----------------
|
||
|
|
||
|
For API documentation see include/libwapcaplet/libwapcaplet.h
|
||
|
|