64 lines
2.1 KiB
XML
64 lines
2.1 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
|
<pkgmetadata>
|
|
<herd>enlightenment</herd>
|
|
<use>
|
|
<flag name="mempool-chained">Compile "chained-pool" memory pool allocation.</flag>
|
|
<flag name="mempool-fixed-bitmap">Compile "fixed-bitmap" memory pool allocation.</flag>
|
|
<flag name="mempool-pass-through">Compile "pass-through" (system's malloc) memory pool allocation.</flag>
|
|
<flag name="mempool-buddy">Compile "buddy" memory pool allocation.</flag>
|
|
<flag name="default-mempool">By default use system's allocator (pass-through) instead of custom choice for Eina's own data structures.</flag>
|
|
</use>
|
|
<longdescription>
|
|
Eina is a multi-platform library that provides optimized data types
|
|
and useful tools for projects.
|
|
|
|
Among its data types, Eina provides efficient implementation of:
|
|
|
|
* double linked list with O(1) append and count;
|
|
|
|
* double linked inlist (node is built in the data) with O(1) append;
|
|
|
|
* stringshare, a pool of read-only strings that are shared in order
|
|
to save memory (no copies!), fast referencing and
|
|
pointer-comparison;
|
|
|
|
* hash table with extensible key support, ships by default with
|
|
string, stringshare, pointer and integer hashes by default;
|
|
|
|
* array of pointers, with O(1) count and append, configurable step
|
|
growing;
|
|
|
|
* red-black tree;
|
|
|
|
* sparse matrix;
|
|
|
|
|
|
As for tools, it provides couple of convenience:
|
|
|
|
* generic and extensible logging system;
|
|
|
|
* easy to use dynamic module loading (on top of dlopen()) that makes
|
|
it easy to change to static/built-in modules;
|
|
|
|
* generic safety-checks system covering NULL pointers and other
|
|
incorrect conditions with logging;
|
|
|
|
* "magic" type checking that check and logs if expected magic number
|
|
is incorrect;
|
|
|
|
* easy to use and extensible memory allocators (mempools);
|
|
|
|
* fixed-point arithmetic;
|
|
|
|
* tile splitter and simplifier (merges);
|
|
|
|
* generic iterator pattern (how to walk in one direction), just
|
|
implement the given API;
|
|
|
|
* generic accessor pattern (how to randomly access items), just
|
|
implement the given API;
|
|
|
|
* benchmark helpers.
|
|
</longdescription>
|
|
</pkgmetadata>
|