From e60fbaf7ee07ea965d6ae5a7bd903e4f4586afb4 Mon Sep 17 00:00:00 2001 From: pancake Date: Mon, 11 Jan 2010 12:22:00 +0100 Subject: [PATCH] * Fix signature for r_bp.list () * Add swig/TODO describing some steps for it --- libr/vapi/r_bp.vapi | 4 +++- swig/TODO | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 swig/TODO diff --git a/libr/vapi/r_bp.vapi b/libr/vapi/r_bp.vapi index 538d2ac681..3e3854759c 100644 --- a/libr/vapi/r_bp.vapi +++ b/libr/vapi/r_bp.vapi @@ -15,7 +15,9 @@ namespace Radare { public int add_cond (string cond); public bool del (uint64 addr); public bool del_cond (int idx); - public int list (int rad); + + /* TODO: deprecate the list() method.. language iterators should be enought */ + public int list (bool rad); [CCode (cprefix="R_BP_PROT_")] public enum Protection { diff --git a/swig/TODO b/swig/TODO new file mode 100644 index 0000000000..2e7e109ffd --- /dev/null +++ b/swig/TODO @@ -0,0 +1,36 @@ +The valaswig integration forces us to do some changes in the r2 API. + +These api changes are for: + + - Avoid keywords in function names + + Every language has its own keywords, r2api should try to workaround + all those keywords to avoid collisions for bindings. + + Example: use, del, from, continue, etc.. + + TODO: we need to review APIs, find better names for functions using + those keywords, etc.. + + - Review basic data structures + + Linked lists, hash tables, r_db, arrays, ... must be reviewed to + fit with vala and swig basics to be able to use them with simple + APIs or integrate them with the syntax sugar of the target language. + + Example: + foreach (var foo in binls.get_symbols ()) { + print ("%s 0x%08llx\n", foo.name, foo.offset); + } + + - Unit testing + + Having bindings for python, perl, ruby, .. is good for unit testing + because it hardly simplifies the way to test APIs, find bugs, ... + + TODO: write unit testing frameworks for perl, ruby, python, etc.. + + - API unification for all languages + + All the previous development points are meant to reduce code in r2, + avoid syntax exceptions, simplify api usage, and much moar ;)