Tom Hacohen
b242f50626
Eo: introducing libeo_dbg.so.
...
This has been in the making for a very long time. Thanks to Marcel for
reminding me to do it.
What is it?
This is a tool to help application developers debug their apps with
everything Eo. Eo is strict, but not as strict as it can be. Many strict
tests and debug are very expensive to implement, and we have so many
hot-paths that even basic "ifs" to check if debugging is enabled will
add significant overhead to normal running applications. This is why I
created this library. All the expensive tests and bookkeeping should be
wrapped around with "#ifdef EO_DEBUG". With this change, libeo.so is
compiled twice, once normally, and once with this define set (as
libeo_dbg.so). This means that normal eo code will not be affected, but
if you decide to debug your application, all you need to do is:
LD_PRELOAD=/path/to/libeo_dbg.so ./app
Or use the convenient wrapper:
eo_debug ./app
Which will load the debug heavy version.
What's currently there: at the moment, EO_DEBUG enables xref and
data_xref and stricter tests when fetching object data.
In the future, I also plan introducing "zombie objects", which
essentially mean that objects are never really deleted, so you can query
them long after they are gone to get more information on what they were.
So if for example you have an object id that you want to query after the
object has been deleted, you can.
I also plan on having a way to disable/enable certain debug mode
features via env vars, and maybe make the test suite link against this
one instead of the normal one, and possibly add more internal hooks for
the test suite to better inspect internal state?
P.S: The amount of errors spewed out when running it on elementary_test
makes me wish I wrote this earlier. :(
@feature
2016-09-22 13:59:46 +01:00
Daniel Kolesa
8b948b779c
docs: fix editable section writer erasing wrong fields
2016-09-09 14:48:33 +02:00
Daniel Kolesa
f89fc6c968
docs: add editable sections where possible
2016-09-09 14:43:02 +02:00
Daniel Kolesa
1041edc6dc
docs: actually close all ref files properly in order to not exceed maximum
2016-09-08 13:34:19 +02:00
Daniel Kolesa
1bdc5a008b
docs: add editable section writing to writer
2016-08-31 16:17:25 +01:00
Daniel Kolesa
8e5d46f690
docs: hide date/user/link in included editable sections
2016-08-31 16:10:04 +01:00
Daniel Kolesa
036a1df57f
docs: initial test for user editable sections
2016-08-31 16:01:53 +01:00
Daniel Kolesa
9ecae0ed28
docs: allow false root in namespace tables
2016-08-31 15:53:39 +01:00
Daniel Kolesa
800dbda6a6
docs: separate auto/user from root namespace
2016-08-31 15:50:31 +01:00
Daniel Kolesa
b193a9f840
docs: generate within the docs:efl:auto namespace (for future editable blocks)
2016-08-31 15:18:10 +01:00
Daniel Kolesa
17d79745a3
docs: add an option to disable title plugin usage
2016-08-26 14:45:45 +01:00
Daniel Kolesa
d69d54ff17
docs: let the writer handle title headings
2016-08-26 14:42:19 +01:00
Daniel Kolesa
cdaa4ab68c
docs: generate proper title for all pages
2016-08-26 14:31:33 +01:00
Daniel Kolesa
b04c0cf241
docs: add writer support for pagetitle plugin
2016-08-26 14:28:11 +01:00
Daniel Kolesa
4d701bca2e
docs: generate reference pages for codelink
2016-08-19 14:39:37 +01:00
Daniel Kolesa
feafdb85a4
docs: generate keyword-link.txt for codelink
2016-08-19 14:19:09 +01:00
Daniel Kolesa
1e42cae8a2
docs: fix invalid links in class reference table
2016-08-19 13:59:55 +01:00
Daniel Kolesa
8a74f38071
docs: add include flag verification
2016-08-18 15:12:24 +01:00
Daniel Kolesa
8ff134472e
docs: add writer support for include plugin
2016-08-18 14:50:24 +01:00
Daniel Kolesa
2bee9169d9
docs: move all of serializers to doctree
2016-08-17 13:50:01 +01:00
Daniel Kolesa
d11cc5ddb5
docs: move type serializer into doctree
2016-08-17 13:42:29 +01:00
Daniel Kolesa
066a2f9fd7
docs: move type cstr retrieval to doctree
2016-08-17 13:34:20 +01:00
Daniel Kolesa
e1a4274e97
docs: add Type to doctree and remove direct eolian api usages
2016-08-16 14:53:04 +01:00
Daniel Kolesa
e592f774ca
docs: reduce the Expression API to just what's necessary
2016-08-16 14:39:04 +01:00
Daniel Kolesa
206d323281
docs: add Expression node type
2016-08-16 14:37:45 +01:00
Daniel Kolesa
ef8a66a41d
docs: correctly wrap struct/enum fields in doctree
2016-08-15 15:12:34 +01:00
Daniel Kolesa
35abb3c34d
docs: add Typedecl to doctree
2016-08-15 15:04:04 +01:00
Daniel Kolesa
570437c64e
docs: use the variable getters in all places
2016-08-15 14:45:36 +01:00
Daniel Kolesa
c98df1c586
docs: add static getters for wrapped variables
2016-08-15 14:41:59 +01:00
Daniel Kolesa
f43b8e24cc
docs: initial Variable in doctree
2016-08-15 14:36:24 +01:00
Daniel Kolesa
5a00524a8b
docs: no need to include eolian in stats
2016-08-15 14:26:19 +01:00
Daniel Kolesa
c122992884
docs: remove the mappings module
2016-08-15 14:25:04 +01:00
Daniel Kolesa
c910db509a
docs: add method to get parameter's direction name
2016-08-15 14:18:36 +01:00
Daniel Kolesa
3e92d64808
docs: generic namespace generator in Node
2016-08-15 14:14:33 +01:00
Daniel Kolesa
bd944a377b
docs: remove some direct eolian api usages
2016-08-15 14:06:20 +01:00
Daniel Kolesa
6f10cb94cd
docs: wrap func params in doctree
2016-08-15 14:03:53 +01:00
Daniel Kolesa
b6d869c3f3
docs: move all eolian init logic into doctree
2016-08-15 13:53:01 +01:00
Daniel Kolesa
e9ddce647c
docs: abstract away directory scan
2016-08-15 13:50:32 +01:00
Daniel Kolesa
c17ee4027a
docs: abstract away object scope enum
2016-08-15 13:48:13 +01:00
Daniel Kolesa
4761f31687
docs: remove some unused funcs in docgen
2016-08-15 13:43:25 +01:00
Daniel Kolesa
c32a8ff125
docs: integrate fallback func doc into Function
2016-08-15 13:38:53 +01:00
Daniel Kolesa
149a0aae52
docs: expose func types via doctree properly
2016-08-12 14:30:48 +01:00
Daniel Kolesa
00049bd798
docs: use more abstracted doctree APIs
2016-08-12 14:22:14 +01:00
Daniel Kolesa
a621f0bd1a
docs: fully utilize Function's type_str_get
2016-08-12 14:19:32 +01:00
Daniel Kolesa
6de8a1f131
docs: namespace generator for funcs in doctree
2016-08-12 14:16:57 +01:00
Daniel Kolesa
6f71222084
docs: always wrap events from events_get
2016-08-12 14:11:31 +01:00
Daniel Kolesa
e0c0b12a94
docs: initial Function in doctree
2016-08-12 14:09:50 +01:00
Daniel Kolesa
ca3f418517
docs: theme string retrieval for doctree classes
2016-08-12 13:51:39 +01:00
Daniel Kolesa
79935e1ab3
docs: abstract away class types within doctree
2016-08-12 13:35:57 +01:00
Daniel Kolesa
452b6557aa
docs: get rid of dependency of doctree on mappings
2016-08-12 13:25:58 +01:00
Daniel Kolesa
ab963858bc
docs: always generate arrays instead of iterators in Class
2016-08-11 16:03:12 +01:00
Daniel Kolesa
ae1841dd19
docs: implement nspaces_get for Class
2016-08-11 16:00:12 +01:00
Daniel Kolesa
d53c622795
docs: initial Class in doctree
2016-08-11 15:49:07 +01:00
Daniel Kolesa
1a5a04ed49
docs: add Event to new the doctree
2016-08-10 16:05:16 +01:00
Daniel Kolesa
88edaa768c
docs: unified feature testing in writer api
2016-08-10 15:54:11 +01:00
Daniel Kolesa
a3945c9986
docs: disable graph writing from writer api when appropriate
2016-08-10 15:50:19 +01:00
Daniel Kolesa
fd54363a4d
docs: abstracted writing of folded sections
2016-08-10 15:44:55 +01:00
Daniel Kolesa
b8599bff9f
docs: add since tag writing into doctree
2016-08-09 17:19:12 +01:00
Daniel Kolesa
a31c9367be
docs: initial documentation tree
...
This will abstract away Eolian APIs to get more maintaineable code.
For now, the Eolian_Documentation structure is abstracted away.
2016-08-09 15:20:43 +01:00
Daniel Kolesa
13245db06c
docs: make dark theme default, add switch --graph-theme-light
2016-08-04 16:45:34 +01:00
Daniel Kolesa
35eebf5c2c
docs: add default dark theme (via --graph-theme-dark) in docgen
2016-08-04 16:43:29 +01:00
Daniel Kolesa
a43fda4ddc
docs: put graph before hierarchy
2016-08-02 17:35:14 +01:00
Daniel Kolesa
e540a9864b
docs: allow rank dir and size to be changed in theme
2016-08-02 16:47:54 +01:00
Daniel Kolesa
ad358a80e9
docs: support for foldable inheritance graphs
2016-08-02 15:46:03 +01:00
Daniel Kolesa
3c34a53cb8
docs: add theme loader for graphs
2016-08-02 15:32:50 +01:00
Daniel Kolesa
085623006d
elua: add table serializer/deserializer
...
This is important for docgen use (reading theme configs).
2016-07-29 14:27:26 +01:00
Daniel Kolesa
63a3da0c0f
docs: support for writing edge styles for individual connections
2016-07-28 14:19:12 +01:00
Daniel Kolesa
26ebd20db8
docs: initial bits for theming support for graphs
2016-07-28 14:09:35 +01:00
Daniel Kolesa
3c7a99935e
docs: split type serializers and keyword ref into their own module in docgen
2016-07-22 13:27:24 +01:00
Daniel Kolesa
0364dc3173
docs: split off writer and utils into modules in docgen
2016-07-20 15:29:53 +01:00
Daniel Kolesa
5f7bc3fbfb
docs: begin modularizing the doc generator script
2016-07-20 15:03:49 +01:00
Daniel Kolesa
0d126eab35
elua: enable module lookups in apps location
...
This will allow for better organization of the docgen script.
2016-07-19 16:19:42 +01:00
Daniel Kolesa
bb509c4a2d
docs: generate a keyword list for use by codelink plugin
2016-07-18 15:34:28 +01:00
Daniel Kolesa
e263ee0121
docs: more detailed stats (print intermediate percentages)
2016-07-14 16:07:08 +01:00
Daniel Kolesa
e321ef22a4
docs: generate separate doc pages for events
2016-07-14 15:32:19 +01:00
Daniel Kolesa
d70cbecc3a
docs: generate more info about events
2016-07-12 11:14:03 +01:00
Daniel Kolesa
a8eb31f146
docs: generate proper descriptions for structs and enums
2016-07-11 16:04:06 +01:00
Daniel Kolesa
db98dd00d0
docs: much improved enum/struct/typedef C signatures
2016-07-07 15:52:00 +01:00
Daniel Kolesa
1a1fc6172c
docs: support refs and new types in generator
2016-07-07 15:23:45 +01:00
Daniel Kolesa
e07d520fa2
docs: update gendoc.lua to latest eolian API
2016-06-22 17:46:53 +01:00
Daniel Kolesa
375179b47f
eolian: support @protected for accessors (get/set)
...
Previously it was only possible to set it for the whole property.
@feature
2016-06-09 16:55:24 +01:00
Daniel Kolesa
56edc594c3
docs: add an experimental elua based documentation generator
...
This is an Eolian-using doc gen written with Elua. It will be used to generate
the Dokuwiki skeleton for new EFL docs.
@feature
2016-05-12 12:04:18 +01:00
Daniel Kolesa
5ad9a8542b
elementary: enable lua binding gen
2016-03-29 11:23:43 +01:00
Daniel Kolesa
825349c7b8
eolian: improve function_full_c_name_get API
...
It's now generalized to work properly with legacy functions
as well as correctly append suffixes. Thus, it can be easily
used with the documentation generator and in other places.
@feature
2015-07-08 12:10:20 +01:00
Daniel Kolesa
87a88b5685
elua: remove obsolete xgettext wrapper
2015-07-01 14:51:00 +01:00
Daniel Kolesa
1d6c60738c
elua: remove unused code from lualian
2015-06-10 17:33:14 +01:00
Daniel Kolesa
59ecddb55e
elua: generate separate key/value numbers for getters/setters
2015-05-28 15:41:30 +01:00
Daniel Kolesa
a7dea04b26
eolian: merge eo_file_parse and eot_file_parse
2015-05-22 17:32:21 +01:00
Daniel Kolesa
5c199857c9
eolian: distinguish between get/set for property keys/values retrieval
2015-05-20 17:03:37 +01:00
Daniel Kolesa
3a685d40c0
elua lib: add a func to retrieve the current translation lang
2015-05-06 15:05:23 +01:00
Daniel Kolesa
f4baae3f14
elua: lualian generator code cleanup
2015-04-02 16:18:37 +01:00
Daniel Kolesa
72579fcaf7
elua: cleanup lualian class generation
2015-04-02 15:08:47 +01:00
Daniel Kolesa
79a01f9ab3
elua: take __tostring from object metatable on robjects
2015-03-02 16:10:50 +00:00
Daniel Kolesa
1392518ec2
elua: readonly object __dtor support
2015-03-02 16:03:18 +00:00
Daniel Kolesa
356ed88525
elua: add transparent destructor support to elua objects
2015-03-02 13:51:22 +00:00
Daniel Kolesa
244707a3a7
elua: completely revamped object system
...
These changes now allow us to do proper __tostring overrides and require
fewer method references, as everything shares a single metatable.
2015-02-25 15:45:47 +00:00
Daniel Kolesa
1e83761810
elua: multiple inheritance aware is_a
2015-02-25 15:16:35 +00:00
Daniel Kolesa
212571c406
elua: guarantee multiple inheritance availability on any object
2015-02-25 15:11:52 +00:00
Daniel Kolesa
4ecedc5198
elua: add object system mixin support without interfering with parents
2015-02-25 15:06:10 +00:00
Daniel Kolesa
9593a720c1
elua: correct inheritance system in lualian generator
2015-02-25 14:43:27 +00:00