forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
metadata.xml
66 lines (46 loc) · 2.25 KB
/
metadata.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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>