cedric [Wed, 21 Oct 2009 19:02:52 +0000 (19:02 +0000)]
* eina: Fix EINA_LIST_REVERSE_FOREACH_SAFE typo from Gustavo Chaves.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@43186
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Tue, 13 Oct 2009 17:14:50 +0000 (17:14 +0000)]
Add some more headers at the top of eina_amalgamation.c.
Fix compilation on Windows CE
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@43054
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 13 Oct 2009 17:11:58 +0000 (17:11 +0000)]
* eina_hash: First parameter could be NULL.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@43053
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Wed, 7 Oct 2009 12:06:52 +0000 (12:06 +0000)]
* eina: This initialisation is not needed, but will reduce llvm warning noise.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42935
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Tue, 6 Oct 2009 16:54:08 +0000 (16:54 +0000)]
* more quoting
* add silent rules (shave feature)
see the description of AM_SILENT_RULES in:
http://www.gnu.org/software/automake/manual/automake.html#Public-Macros
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42905
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Wed, 30 Sep 2009 17:29:30 +0000 (17:29 +0000)]
Fix compilation on Windows wrt changes in fixed point code
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42822
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 29 Sep 2009 12:04:50 +0000 (12:04 +0000)]
* eina: Cleanup Eina fixed point implementation.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42798
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 29 Sep 2009 09:53:41 +0000 (09:53 +0000)]
* eina: Fix doc layout.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42796
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
antognolli [Mon, 28 Sep 2009 20:03:56 +0000 (20:03 +0000)]
Fix eina_tile_grid_slicer_setup when a 0x0 rectangle was given as argument.
In this case slc->first wasn't being set, as well as the info.col and
info.row. This could bring some strange behavior like a call to
eina_tile_grid_slicer_next() not returning false.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42783
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 25 Sep 2009 15:43:41 +0000 (15:43 +0000)]
and AC_SUBST the requirement...
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42703
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 25 Sep 2009 15:39:53 +0000 (15:39 +0000)]
* really export symbols on Windows (EFL_EINA_BUILD not
correctly defined)
* add evil in the Requires.private field of eina-0.pc.in
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42702
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Fri, 25 Sep 2009 12:02:14 +0000 (12:02 +0000)]
* eina_atofp: Always return EINA_TRUE on valid input string.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42700
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 25 Sep 2009 11:51:52 +0000 (11:51 +0000)]
return false if fp is NULL, update doc accordingly
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42699
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Fri, 25 Sep 2009 11:36:56 +0000 (11:36 +0000)]
* eina: Fix build without amalgamation.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42698
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 25 Sep 2009 11:23:37 +0000 (11:23 +0000)]
* convert string to fp only if fp is not NULL
* add doc of eina_convert_atofp()
* minor doc cleanup
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42697
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Fri, 25 Sep 2009 10:03:19 +0000 (10:03 +0000)]
* eina: Add eina_atofp.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42694
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 25 Sep 2009 08:44:04 +0000 (08:44 +0000)]
* add documentation for eina_convert_fptoa()
* fix typo in doc
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42691
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Wed, 23 Sep 2009 16:57:59 +0000 (16:57 +0000)]
* eina: Improve eina_fptoa test.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42648
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Wed, 23 Sep 2009 16:47:08 +0000 (16:47 +0000)]
* eina: Add eina_fptoa.
This is a small piece of code, but a big one for an edje fixed point implementation.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42646
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Tue, 22 Sep 2009 22:28:35 +0000 (22:28 +0000)]
configure eina with VS according to the used mode (debug or release)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42625
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Wed, 16 Sep 2009 20:23:11 +0000 (20:23 +0000)]
add README.txt and MANIFEST.txt files
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42526
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Wed, 16 Sep 2009 17:22:01 +0000 (17:22 +0000)]
* fix compilation on Windows when using amalgamation
* put alloca declaration at the beginning
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42517
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Wed, 16 Sep 2009 13:38:21 +0000 (13:38 +0000)]
* allow compilation with vc++
* fix a small warning
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42513
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Wed, 16 Sep 2009 13:31:23 +0000 (13:31 +0000)]
* update Visual Studio project files:
- link against evil
- eina mempools are statically linked
* formatting in start.bat
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42512
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Wed, 16 Sep 2009 11:32:24 +0000 (11:32 +0000)]
* add Visual Studio 2008 project
* use a single start file to launch Visual Studio 2005 or 2008 automatically
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42510
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Tue, 15 Sep 2009 22:32:24 +0000 (22:32 +0000)]
minor fixes.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42504
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Tue, 15 Sep 2009 21:20:56 +0000 (21:20 +0000)]
update Visual Studio project
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42501
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Tue, 15 Sep 2009 21:20:08 +0000 (21:20 +0000)]
move the declaration of variables at the beginning of the block
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42499
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Tue, 15 Sep 2009 21:19:15 +0000 (21:19 +0000)]
move EINA_DEPRECATED at the beginning of the declaration,
because it's more visible, and vc++ does not like it at
the end.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42498
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Mon, 14 Sep 2009 16:06:18 +0000 (16:06 +0000)]
* eina_log: Fallback to mutex when spinlock doesn't exist.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42489
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Mon, 14 Sep 2009 15:28:55 +0000 (15:28 +0000)]
* eina: Add explanation around compiler false positiv warning.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42488
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
antognolli [Fri, 11 Sep 2009 23:51:47 +0000 (23:51 +0000)]
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.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42427
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 11 Sep 2009 23:10:57 +0000 (23:10 +0000)]
constness++
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42426
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 11 Sep 2009 14:22:24 +0000 (14:22 +0000)]
fix lighblue and add cyan.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42410
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
horms [Thu, 10 Sep 2009 02:44:05 +0000 (02:44 +0000)]
Add libeina-svn-04.lintian-overrides
Based on libeina-svn-03.lintian-overrides from
the eina 0.0.2.062-2 package on debian.org
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42378
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
horms [Thu, 10 Sep 2009 02:41:40 +0000 (02:41 +0000)]
Update libeina-svn-01 to libeina-svn-04
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42377
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
horms [Thu, 10 Sep 2009 02:32:47 +0000 (02:32 +0000)]
Remove bogus mmu debian-version
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42376
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
horms [Thu, 10 Sep 2009 02:31:36 +0000 (02:31 +0000)]
Update version in Debian changelog to 0.0.2.62
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42375
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
horms [Thu, 10 Sep 2009 01:41:41 +0000 (01:41 +0000)]
Update Debian standards version from 3.8.1 to 3.8.3
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42374
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
antognolli [Wed, 9 Sep 2009 20:37:23 +0000 (20:37 +0000)]
EINA: Fix compilation when builddir != srcdir.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42369
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
sachiel [Wed, 9 Sep 2009 15:53:50 +0000 (15:53 +0000)]
Avoid clashes.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42368
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
sachiel [Wed, 9 Sep 2009 14:05:31 +0000 (14:05 +0000)]
Support EINA_INLIST to be anywhere in the struct with _FOREACH macros.
Fix pointer arithmetic with EINA_CONTAINER_GET.
Change Inlist test to have the int first and not assume a direct cast works.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42366
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Wed, 9 Sep 2009 07:42:08 +0000 (07:42 +0000)]
* add amalgation support in configure output
* remove a warning when eina_amalgamation.c is deleted but does not exist
* delete eina_amalgamation.c when doing 'make clean'
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42363
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Wed, 9 Sep 2009 01:53:40 +0000 (01:53 +0000)]
tests: explain some errors messages are expected and check for safety checks.
Many people try "make check" and then complain they have some error
messages, but they are actually expected... but even for the
experienced is hard to know whenever it was expected or not, so
explicitly say that.
Also check if safety checks are enabled or not before doing "break"
tests, otherwise we'll end with segfaults and tests failing. (I have
not tested with them disabled, but should be okay).
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42360
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Wed, 9 Sep 2009 01:41:29 +0000 (01:41 +0000)]
remove warnings from tests.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42359
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Wed, 9 Sep 2009 01:27:30 +0000 (01:27 +0000)]
remove easy warnings, 2 still left that I need someone else to check
proper fix.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42358
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Wed, 9 Sep 2009 00:38:26 +0000 (00:38 +0000)]
let's have more testing: amalgamation on by default, report problems!
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42356
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Tue, 8 Sep 2009 21:42:17 +0000 (21:42 +0000)]
replace UNLIKELY() with EINA_UNLIKELY()
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42354
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
dieb [Mon, 7 Sep 2009 23:23:03 +0000 (23:23 +0000)]
Fix segv reported by Peter Wehrfritz on eina init/shutdown (specifically on
eina_log init/shutdown as it wasn't resetting domains counters properly).
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42334
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Mon, 7 Sep 2009 05:54:42 +0000 (05:54 +0000)]
--enable-amalgamation
This will concatenate all source files in the hope compiler will do a
better job. On my test with static/built in mempools it saves me 4k, I
guess some intra module calls can be saved.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42315
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Mon, 7 Sep 2009 04:32:49 +0000 (04:32 +0000)]
use quotes to include config.h
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42314
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Mon, 7 Sep 2009 04:29:27 +0000 (04:29 +0000)]
fix message
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42313
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Mon, 7 Sep 2009 04:23:05 +0000 (04:23 +0000)]
allow amalgamation of files, at least symbols don't clash anymore.
more related to amalgamation later.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42312
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Mon, 7 Sep 2009 03:32:22 +0000 (03:32 +0000)]
malloc--: error and magic can take statically defined strings so no
need to strdup them.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42311
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Mon, 7 Sep 2009 02:33:54 +0000 (02:33 +0000)]
API BREAK: eina_magic_string_set() does not change existing strings anymore.
It's pointless to be able to change magic number string after it's
created, so let's avoid walking the existing list and just remove
places where strings were being duplicated (list/array both inited
magic strings for accessor/iterators).
Also an optimization, register using an array and sort it before
searching. Sort will just happen when array was changed, and this is
just done when eina_magic_string_get() is called.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42310
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sun, 6 Sep 2009 22:56:34 +0000 (22:56 +0000)]
eina_inlist.h is not required anymore.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42305
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sun, 6 Sep 2009 22:54:49 +0000 (22:54 +0000)]
eina_error: improvements to make it faster.
Use a simple array instead of inlist, error get is now much faster
using direct index access.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42304
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sun, 6 Sep 2009 22:34:38 +0000 (22:34 +0000)]
allocate more buckets on init to save couple of reallocs during startup.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42303
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sun, 6 Sep 2009 22:25:36 +0000 (22:25 +0000)]
fix macro positioning of '\'
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42302
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sun, 6 Sep 2009 22:21:56 +0000 (22:21 +0000)]
EINA API BREAK: no more individual modules init/shutdown.
Being able to indivually initialize individual modules was initially
"good", but at end it's putting complexities on users that would try
to "optimize" by doing just what they used, but in the end most people
would get them wrong, users would have to do lots of code and etc. At
the end it does not worth.
Most module init just register handful errors and log domains, so are
cheap. The exception is mempool users, that would dlopen() stuff, but
people that are concerned (embedded) can just compile those statically
in eina.
Since at the end any real application would use most of modules, we
actually end saving lots of function calls that would do nothing other
than increment a global counter.
I also did the init/shutdown use an array, making it easier to
maintain. The inital dependencies were analysed by a script I wrote, I
hope it's all right.
Please fix any breakages you find!
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42300
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sun, 6 Sep 2009 15:25:35 +0000 (15:25 +0000)]
shut down safety checks in the log module
Note : currently, because of a circular calls of
eina_log_init() and eina_safety_checks_init(), eina
is not correctly shut down. Imho, eina_log should not
depend on the safety checks module. That would mean
some fprintf in eina_log_domain_new(), eina_log_domain_free(),
eina_log_domain_register()and eina_log_domain_unregister().
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42292
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sun, 6 Sep 2009 08:39:04 +0000 (08:39 +0000)]
shutdown array module
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42287
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 23:45:16 +0000 (23:45 +0000)]
eina_log: be able to disable function or line.
write down specialized cases for threads or not, function or file,
color or not. Maybe it's not even an optimization since we add yet
another indirection/function call, but each case is simpler.
* EINA_LOG_FILE_DISABLE=1: disables show of file:line in
stderr/stdout messages.
* EINA_LOG_FUNCTION_DISABLE=1: disables show of function() in
stderr/stdout messages.
one must not use the two options at the same time, if that's the case
code will ignore EINA_LOG_FILE_DISABLE=1 and use just function
disable.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42272
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 21:55:03 +0000 (21:55 +0000)]
mark log functions as not_instrument_function.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42270
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 21:28:50 +0000 (21:28 +0000)]
eina_log optimization: allow to compile out some debug messages.
Users may opt to set EINA_LOG_LEVEL_MAXIMUM to some integer and macro
will then evaluate to check for that value before actually call
eina_log_print() macro. By using optimizations compilers will
effectivelly compile out the code if it is never reached, thus saving
the check and function call in possible critical paths.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42269
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 4 Sep 2009 16:55:51 +0000 (16:55 +0000)]
fix coverage support configuration
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42250
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 4 Sep 2009 16:54:38 +0000 (16:54 +0000)]
include eina_log.h in eina_error.h as some log macro are used in it
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42249
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 4 Sep 2009 16:25:18 +0000 (16:25 +0000)]
eina_log uses pthreads now (if enabled), so link libeina against pthread
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42248
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 14:18:05 +0000 (14:18 +0000)]
eina_matrixsparse: loggify, install header, remove warnings and coding style.
* use eina_log
* install eina_matrixsparse.h
* remove unused variable
* fix coding style issue reported by Vincent
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42246
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 13:43:44 +0000 (13:43 +0000)]
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 ;-)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42243
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 03:52:05 +0000 (03:52 +0000)]
oops! thanks Vincent.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42230
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 02:35:24 +0000 (02:35 +0000)]
loggify array.
this is the last eina module to be converted to eina_log! :-)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42228
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 02:34:48 +0000 (02:34 +0000)]
eina_module must initialize eina_array as it is used.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42227
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 02:34:10 +0000 (02:34 +0000)]
make it easier to spot wrong users of eina_log_print()
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42226
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 02:11:44 +0000 (02:11 +0000)]
loggify rectangle.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42225
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 02:03:46 +0000 (02:03 +0000)]
loggify stringshare, with extensive debug.
note that one can turn per module debug, for example:
EINA_LOG_LEVEL=4 EINA_LOG_LEVELS=eina_stringshare:0 ./bla
will enable level 4 (debug) for all modules except eina_stringshare
that is forced to 0 (just critical messages).
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42224
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 01:54:37 +0000 (01:54 +0000)]
loggify stringshare.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42223
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 01:48:36 +0000 (01:48 +0000)]
loggify main.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42222
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 01:43:50 +0000 (01:43 +0000)]
loggify list.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42221
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 01:37:11 +0000 (01:37 +0000)]
eina_error: deprecated old logging, move to eina_log.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42220
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 01:19:19 +0000 (01:19 +0000)]
loggify benchmark.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42219
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 01:13:49 +0000 (01:13 +0000)]
loggify mempool.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42218
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 01:03:27 +0000 (01:03 +0000)]
loggify eina_convert.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42217
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 00:57:09 +0000 (00:57 +0000)]
eina_log_vprint() for those that want to wrap it in other functions.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42216
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 00:56:16 +0000 (00:56 +0000)]
missing file, sorry.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42215
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 4 Sep 2009 00:53:19 +0000 (00:53 +0000)]
eina_safety_checks_init()
All these individual init functions are getting messy, some modules
lack them and it's easy to get inconsistent. Safety check needs error
and log, but these need safety checks as well, some modules (lalloc,
rbtree and others) use safety checks but provide no _init().
I want to know if we really gain something to init individual
modules. It should not be that expensive as init should not allocate
heavy resources and the recommendation is to call eina_init() so most
users will do that anyway.
If people agree I'll unmark all *_init() as EAPI and make them private
to eina lib.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42214
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Thu, 3 Sep 2009 23:36:27 +0000 (23:36 +0000)]
eina_safety_checks now uses eina_log.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42213
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Thu, 3 Sep 2009 01:39:45 +0000 (01:39 +0000)]
eina_log: CONVENTION BREAK!!!! automatically adds \n
Automatically add \n to messages. Since we use that prefix, there is
no use to allow messages without \n, it would look a mess.
Some logging systems may not require the trailing newline, for example
logging to xml or syslog, for those you don't need to ignore this char
if present.
Yes, this breaks convention, but better now than latter. And the
results are not so bad.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42200
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Thu, 3 Sep 2009 01:31:26 +0000 (01:31 +0000)]
eina_log: thread safe logging!
eina_log_threads_enable() and then get thread safe logging with
non-main threads being printed with special notation to easily spot
those.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42199
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Thu, 3 Sep 2009 00:17:27 +0000 (00:17 +0000)]
eina_log: fix error handling and handle deleted domains.
EINA_SAFETY_CHECKS will call eina_log, so calling these from inside
eina_log_print() may lead to recursion, that is really bad (although
it seems it would never lead to infinite recursion).
handle d->deleted, also showing error.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42198
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Thu, 3 Sep 2009 00:07:25 +0000 (00:07 +0000)]
eina_log: fix stderr, improve log output.
* stderr logger was doing prefix properly but user message to stdout, fixed.
* log is improved:
* grep-able, it shows the 3 letter level name as prefix, unknown levels
will have their number printed.
* colors just on prefix, less polluted output still easy to spot.
* function names are highlighted.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42197
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Wed, 2 Sep 2009 23:28:00 +0000 (23:28 +0000)]
eina_log improvements: docs, micro optimizations and stderr logging by default.
* more docs.
* do not getenv("EINA_LOG_ABORT") everytime, just at init.
* EINA_UNLIKELY() in some critical paths (not that big impact anyway)
* eina_log_print_cb_stderr() and use it by default.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42196
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Wed, 2 Sep 2009 23:11:22 +0000 (23:11 +0000)]
less malloc and memory fragmentation.
not that important, but an easy improvement does not hurt.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42195
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Wed, 2 Sep 2009 23:06:55 +0000 (23:06 +0000)]
loggify eina_module, adding couple of debug info.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42194
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Wed, 2 Sep 2009 22:39:41 +0000 (22:39 +0000)]
coding style/indent.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42193
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 1 Sep 2009 12:17:13 +0000 (12:17 +0000)]
* eina_magic: Test suite now work when magic debug is disabled.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42150
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
dieb [Mon, 31 Aug 2009 14:40:48 +0000 (14:40 +0000)]
Remove legacy error code definition from eina log.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42126
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Mon, 31 Aug 2009 13:52:17 +0000 (13:52 +0000)]
* eina: Add more FP type (f8p24 and f32p32).
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42124
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sat, 29 Aug 2009 20:53:12 +0000 (20:53 +0000)]
typo
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42091
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sat, 29 Aug 2009 19:59:26 +0000 (19:59 +0000)]
better fix : if HW_AVAILCPU is defined, we use it, otherwise we use HW_NCPU
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@42090
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33