Commit Graph

56 Commits

Author SHA1 Message Date
Cedric BAIL b852081df5 eina: disabling eina_model test.
SVN revision: 70314
2012-04-19 00:44:07 +00:00
Vincent Torri f00cf44117 Eina: fix shm_open() check (can be in libc or librt) + various autotools cleaning
This works in linux and windows, and should fix shm_detection on BSD (including Mac)

BSD, Mac and solaris users : please check that it compiles and shm_open is detected


SVN revision: 69608
2012-03-25 11:12:32 +00:00
Gustavo Sverzut Barbieri 7c0357ddeb welcome eina_model.
This is a simple to use generic hierarchical data access. It includes
properties, children, reference counting and notifications (callbacks).

It can be understood in the same lines as GObject or PyObject, but I
believe the best usage is just to provide data models, not generic
Object Oriented Programming in C.

It misses most of documentation, although the important bits are
there. Need help here :-/



SVN revision: 67405
2012-01-21 01:30:09 +00:00
Gustavo Sverzut Barbieri 3d701ab72f fix C++ compile, add test.
adding a dummy test so we (read: myself ;-)) remember to compile with
c++ and check errors like missing casts.



SVN revision: 67105
2012-01-12 00:24:22 +00:00
Gustavo Sverzut Barbieri 7a4e904566 add eina_value.
eina value is a generic value storage, it's quite efficient to space
(16 bytes) and speed (inlines for basic types).

It's basically a structure describing how to manage memory
(Eina_Value_Type), with default implementation for char, short, int,
long, int64_t (and unsigned variants), float, double, stringshare and
string.

If a type 'value_size' is smaller than 8 bytes, it's stored
inline. Otherwise a value is allocated and managed.

Most of the methods are inline, with special handling for char, short,
int... Then no extra calls are made, allowing the compiler to optimize
them.

For array of a single type it is recommend to use Eina_Value_Array, as
it will efficiently store and access members (just a char if subtype
is EINA_VALUE_TYPE_CHAR, etc).

It can copy itself, compare itself. Including arrays.

It would be nice to have something that converts between EET and this.



SVN revision: 67035
2012-01-11 02:20:26 +00:00
Gustavo Sverzut Barbieri 45b07ed02d add eina_inarray.
It is an inline array, that is, the members are actually in the
allocated buffer, as opposed to a pointer to its data.

It can be used to manage array of integers, floats or other structures
without fragmenting memory.

The lookups should be fast as memory is linear, then CPU prefetch can
kick in and bring data to cache before it's used.



SVN revision: 67003
2012-01-09 23:24:18 +00:00
Mike McCormack dd51737725 eina: Add Eina_Clist
A clist is an inlist with the following features:

 - allows removal of items without knowing which list they are in.
 - Two pointers per list item & list head

Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>

SVN revision: 64007
2011-10-12 04:39:27 +00:00
Vincent Torri 6f054d2c0b clean generated files
SVN revision: 63395
2011-09-14 19:08:50 +00:00
Sangho Park 725b056fab Eina: add testcase for 'eina_simple_xml_parser'
SVN revision: 59478
2011-05-18 02:29:59 +00:00
Tom Hacohen 8ca233f8cb Eina binbuf: Added eina_binbuff an auto resizing binary buffer.
SVN revision: 59468
2011-05-17 15:45:39 +00:00
Mike Blumenkrantz d422c0a88e add bench for google's cityhash function (64bit, http://code.google.com/p/cityhash/)
convenient graph of output can be found at http://www.enlightenment.org/~discomfitor/hash_bench.png


SVN revision: 58610
2011-04-12 23:12:52 +00:00
Vincent Torri d3420a210d put again eina tests in the source tree
SVN revision: 56193
2011-01-16 17:55:41 +00:00
Carsten Haitzler 26158c9510 remove eina tests
SVN revision: 55637
2010-12-19 03:05:58 +00:00
Cedric BAIL 3e5887714b * eina: forgotten link.
SVN revision: 55380
2010-12-08 19:32:23 +00:00
Cedric BAIL 8d85e48480 * eina: forgotten benchmark file.
Thanks to the OpenBSD team :
              Fabien Romano <fabien@openbsd.org>
              Jonathan Armani <armani@opensbd.org>


SVN revision: 54760
2010-11-21 10:58:57 +00:00
Lucas De Marchi a95105a888 Implement function to drop priority of current thread
This function is useful for libraries like ecore and evas that have to
set some worker threads. The first thing these threads should do is to
call this function, so the main thread might continue running without
the worker threads interrupting it too much.



SVN revision: 52651
2010-09-23 20:38:48 +00:00
Brett Nash 4efb9d70af Add ustr tests.
SVN revision: 50737
2010-08-02 09:43:51 +00:00
Tom Hacohen 6b69189efd Eina: Added ustringshare and binshare tests.
Fixed a small bug in binshare (in the length function).
Moved some debug messages around.

SVN revision: 50541
2010-07-27 11:43:37 +00:00
Vincent Torri fd59d59930 newline --
SVN revision: 50218
2010-07-13 12:49:37 +00:00
Vincent Torri b131dfc65c export symbols on Windows
SVN revision: 49915
2010-06-28 05:15:44 +00:00
Cedric BAIL 9367b5f7c7 * eina: Add first version of a Quad Tree data type.
NOTE: consider the API experimental and subject to change.


SVN revision: 48424
2010-04-29 17:21:14 +00:00
Cedric BAIL 49c0a1e6e2 * eina: add tests for eina fixed point sin/cos functions.
SVN revision: 48423
2010-04-29 17:08:24 +00:00
Gustavo Sverzut Barbieri 08127ecc3e eina_str speedups.
* eina_str_split() now does the minimum number of passes and
   allocations. The first pass figures out the string size (strlen())
   and number of delimiters, so we can allocate the exact number of
   elements in array. The second repeats the loop copying elements to
   string and also setting them to the result array.

 * eina_str_split_full() is a variation of eina_str_split() that
   returns also the number of elements in array, in the case you need
   to pre-allocate another array to copy.

 * eina_strlen_bounded() is introduced to limit strlen() results, this
   is used in has_prefix and has_suffix, but possibly other use cases
   where string must be of a maximum size as we don't do useless
   iterations;



SVN revision: 46547
2010-02-27 03:42:27 +00:00
Vincent Torri b87e1d6fae * -fno-strict-aliasing is checked at linked time (to make sure
that it is disabled for suncc)
 * add old evas data types in tests. Tell me if you encounter problems
   with them


SVN revision: 46136
2010-02-13 12:32:22 +00:00
Sebastian Dransfeld 3d6a752111 Add simple test for strbuf
Need more

SVN revision: 46024
2010-02-09 21:05:47 +00:00
Vincent Torri b9cbdd4a7d make the ecore tests stand alone (no ecore installation needed)
so no cyclic dependency



SVN revision: 45512
2010-01-24 10:54:07 +00:00
Rafael Antognolli 52de9e33cd Added the Eina_Tile_Grid_Slicer iterator.
This new iterator receives a rectangle as argument and tile_w X tile_h sized
tile, and slices the rectangle iterating over it on each iteration.



SVN revision: 42427
2009-09-11 23:51:47 +00:00
Gustavo Sverzut Barbieri 643958705b eina_matrixsparse: welcome sparse matrix implementation and tests.
Sparse Matrix was implemented and tested by Rafael Antognolli and
myself in order to implement optimized large sparse matrix walk in
some products, one of them WebKit-EFL optimizations.

We have done extensive tests, with good code coverage. Similar to
lists/inlists, we keep pointer to last known element and similar to
iterators we keep reference to last accessed row and cell inside
rows. This allows fast sequential access (for i... for j... m[i,j]),
that is our most common usage case.

Rows are kept in a list, with cells inside that row as another
list. It's not similar to most book implementations where cells keep
reference to their sibling cells in other rows as well, we opted to
not do that to save some pointers and make algorithms simpler, still
do great for our use case.

This code was developed on behalf of our client, that wants to remain
unnamed so far. Thanks client ;-)



SVN revision: 42243
2009-09-04 13:43:44 +00:00
dieb d7bbc05b12 Initial import of the new eina logging API.
* eina_error might be kept for error messages and codes, but it's logging API
  will be deprecated. For now, it's been kept for not breaking others code and
  for a smoother transition.
* Added test for new logging API, also demonstrates usage.


SVN revision: 41960
2009-08-24 21:43:48 +00:00
Cedric BAIL 5c5cb1fdb1 * eina: Add a benchmark for eina_rectangle_pool.
SVN revision: 41157
2009-06-22 13:24:13 +00:00
Cedric BAIL 72e45419ec Add Eina_Rectangle_Pool support. Typically help for font handling in OpenGL or
any case where you need to split a rectangle in many differents small rectangle.


SVN revision: 37252
2008-10-27 20:24:12 +00:00
Cedric BAIL 380120ce2a Should fix build outside of the source tree.
SVN revision: 36689
2008-10-15 16:23:14 +00:00
Vincent Torri bf372e44f9 when a .la file is passed to _LIBADD or _LDADD, automake
knows that the corresponding program or lib depends on
that .la file


SVN revision: 36322
2008-09-29 19:30:15 +00:00
Cedric BAIL b6960f58b6 Patch from Vincent Torri that cleanup tests, coverage and benchmark.
SVN revision: 36315
2008-09-29 14:35:28 +00:00
Cedric BAIL 1620af2ae0 Add benchmark for mempool (chained_mempool is disabled, because it's currently buggy).
SVN revision: 36309
2008-09-29 09:45:26 +00:00
Cedric BAIL e8b25fb405 Add a sort benchmark.
SVN revision: 36250
2008-09-25 12:41:49 +00:00
Jorge Luis Zapata Muga c9f08f6124 New module API. Port this API to the mempool subsystem and the tests.
Now the modules can define a default function that will be called when the module is loaded and unloaded.

SVN revision: 36207
2008-09-24 12:55:31 +00:00
Cedric BAIL c9ad936b24 Add mempool check.
SVN revision: 36053
2008-09-17 15:23:09 +00:00
Cedric BAIL d40ebdca1b Add real life test from E17 use.
SVN revision: 36017
2008-09-16 14:06:14 +00:00
Vincent Torri 345bddedca add evas and ecore detection for benchmarking
SVN revision: 35969
2008-09-12 21:08:16 +00:00
Cedric BAIL 991867bd7b Share eina_benchmark to other libs also.
SVN revision: 35832
2008-09-04 15:06:26 +00:00
Cedric BAIL 8a9cfed253 Oops, forgot this update.
SVN revision: 35815
2008-09-03 14:48:56 +00:00
Cedric BAIL 1d3013e37d Add benchmark against glib so we see where we stand.
SVN revision: 35699
2008-08-27 17:14:34 +00:00
Vincent Torri c7630faad9 add glib check. If glib is found, we will compare
our data types with glib ones in benchmarks


SVN revision: 35696
2008-08-27 14:41:51 +00:00
Cedric BAIL 4390a37a70 Add eina_array_pop and rename eina_array_append by eina_array_push.
SVN revision: 35679
2008-08-26 10:23:45 +00:00
Cedric BAIL 4bc094c45a As we are heavy user of int to string and double to string in the EFL, provide a fast and portable one.
SVN revision: 35604
2008-08-21 14:20:41 +00:00
Cedric BAIL da8c3be66f Add a proposal for a module/plugins API that should match every requirement I
received. It's a little huge right now, but work quite nicely.

It support "static" module, version, recursive lookup and should be able to
replace the module/plugins support in evas and ecore.


SVN revision: 35534
2008-08-18 08:18:16 +00:00
Cedric BAIL 43cc2dca6f Add first try for an accessor and iterator API, comment welcome (lack inlist and list currently).
Rewrite EINA_ARRAY_ITER_NEXT, still fast, need one more parameter, but no more EINA_ARRAY_ITER_END.


SVN revision: 35438
2008-08-11 16:30:16 +00:00
Cedric BAIL b99c0cfea2 Add a benchmark for stringshare.
SVN revision: 35410
2008-08-08 15:55:09 +00:00
Cedric BAIL 8fa6d931ce Add a benchmark that attempt to emulate evas_render loop behaviour.
SVN revision: 35385
2008-08-07 17:17:18 +00:00