radare2/swig
pancake 3f2677ab7f * Added initial untested support for native gdb debugger mode
- r2 -d gdb://<host>:<port>
  - register maps not yet implemented
  - some basic step/continue should work in cfg.debug=true
  - gdbwrap instance is shared between RIO and RDebug
* RDebug is now arch-sensitive
  - Plugins describe which architectures and register sizes are supported
  - Native debugger is restricted to local CPU
  - Remote debugger (GDB) arch can be specified with -e asm.arch=arm
* Fix some random warnings
* Move R_ASM_ARCH into R_SYS_ARCH
  - Helper functions to translate id to string and string to id
    are now in util/sys.c (r_util)
  - Move all R_SYS_* from r_util to r_types
    - Endianness, OS, CPU and regsize is now 'global'
2011-05-06 00:59:10 +02:00
..
cxx * Use DEVEL_MODE variable to use valaswig or not 2011-02-17 00:47:18 +01:00
go * Add r_core_asm_bwdisassemble for backward disassemble resolution 2010-10-06 18:04:47 +02:00
guile * Fixes for the GUILE bindings 2011-02-17 22:03:30 +01:00
java * Fix creation of ~/.radare2/rdb and r2 -p (Thanks edu!) 2010-07-23 01:15:03 +02:00
lua * Added support for LUA for non-developer mode 2011-03-09 19:34:22 +01:00
perl * r_core_anal 2010-03-05 11:06:07 +01:00
python * Implement -g and -C flags to radiff2 2011-04-15 18:59:44 +02:00
ruby * r_core_anal 2010-03-05 11:06:07 +01:00
vapi * Added initial untested support for native gdb debugger mode 2011-05-06 00:59:10 +02:00
autogen.sh * Add configure script 2010-03-14 21:53:22 +01:00
check-langs.sh * r2-swig fixes reported by @hteso 2011-03-23 14:22:21 +01:00
config.mk.acr * Use DEVEL_MODE variable to use valaswig or not 2011-02-17 00:47:18 +01:00
configure * Add missing field in r_fs.vapi 2011-04-21 11:57:18 +02:00
configure.acr * Add missing field in r_fs.vapi 2011-04-21 11:57:18 +02:00
do-swig.sh * Fixes for the GUILE bindings 2011-02-17 22:03:30 +01:00
do-test.sh * Lot of fixes in the vala/swig wing 2010-02-15 22:59:26 +01:00
Makefile * Initial import http api 2011-04-20 00:22:54 +02:00
python-config-wrapper * r2-swig fixes reported by @hteso 2011-03-23 14:22:21 +01:00
README * Mental note: %lld/%llx does not exist on windows 2010-04-14 13:02:23 +02:00
rules.mk * r2-swig fixes reported by @hteso 2011-03-23 14:22:21 +01:00

r2-swig notes
=============

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%08"PFMT64x"\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 ;)

SWIG is not complete, there are still so many bugs to fix and so many
unimplemented stuff. Here's a list of the most anoying things of it:

  - unsigned char * : not implemented