
The SQLite CIF storage engine requires SQLite 3.6.19 or later, compiled
with foreign key and trigger support.  The system will detect whether
suitable support is available in the SQLite library, and fail gracefully
in the event that it is not.

The source is largely compliant with ISO C90, but it leans slightly
on one implementation-dependent limit. Specifically, it contains one string
literal that exceeds the least length (509 chars) that compliant compilers
are required to support.  As of this writing, that literal is 788 chars
long, and all C90-compliant compilers known to the author in fact support
string literals of that length.  The source also relies on a handful of
common library functions that are not standardized by C90, but are
standardized by C99.  For example, memcpy().

The built-in CIF parser depends on the platform's default char type to be
able to represent at least 256 distinct values.  That is not required of C
implementations, though it is true for all C90 (or later) implementations
known to the author.  This contraint arises from use of ICU's Unicode
Converter API, which handles encoded character data as sequences of
default chars.  By that token, however, this restriction is probably moot
because it is unlikely that ICU can be implemented correctly on any
platform that does not meet the requirement. 

If you want to analyze performance then you can configure with profiling
support.  Currently, only gprof profiling is supported.  If you do enable
profiling then you probably also want to configure with --disable-shared,
as the GNU profiling system doesn't seem to collect profiling data from
shared libraries.  The "cif2_syncheck" example program may be useful for
profiling the combination of parser and SQLite storage engine.

