summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/eina/metadata.xml')
-rw-r--r--dev-libs/eina/metadata.xml66
1 files changed, 66 insertions, 0 deletions
diff --git a/dev-libs/eina/metadata.xml b/dev-libs/eina/metadata.xml
new file mode 100644
index 000000000000..76fbac87e982
--- /dev/null
+++ b/dev-libs/eina/metadata.xml
@@ -0,0 +1,66 @@
+<?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-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>