| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> |
| <pkgmetadata> |
| <maintainer type="project"> |
| <email>enlightenment@gentoo.org</email> |
| <name>Project Enlightenment</name> |
| </maintainer> |
| <use> |
| <flag name="mempool-buddy">Compile 'buddy' memory pool allocation</flag> |
| <flag name="mempool-chained-pool">Compile 'chained-pool' memory pool allocation</flag> |
| <flag name="mempool-fixed-bitmap">Compile 'fixed-bitmap' memory pool allocation</flag> |
| <flag name="mempool-one-big">Compile 'one-big' memory pool allocation</flag> |
| <flag name="mempool-pass-through">Compile 'pass-through' (system's malloc) 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> |
| <flag name="valgrind">Compile in valgrind hints for smoother integration</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> |