Changes for version 2.0.0

  • base typemaps has been completely refactored and became much more powerful
  • typemap classes T_OEXT_SHARED and T_OPTR_SHARED have been removed. Shared pointers are now detected automatically
  • typemap classes T_OEXT_REFCNT and T_OPTR_REFCNT have been removed. Use 'refcnt' param: T_OEXT(refcnt) / T_OPTR(refcnt)
  • Transparent wrappers support
  • delete THIS / delete THIS_wrapper are now inserted automatically, no matter if user has non-empty DESTROY code or not.
  • fixed xs::my_perl while thread creation/destruction
  • added xs::XSBackref class, and 'backref' typemap parameter for OPTR & OEXT to implement perl real object backreferencing to preserve original data when returning stored C++ object back to perl.
  • better svdup callback. Automatically changes backrefs. Called with wrapper objects if wrappers in use.
  • fix #include <memory> for C++11
  • added <panda/def.h> (moved from panda::lib)
  • added <panda/traits.h> with some traits from C++11 (just a few for now)
  • added <panda/cast.h> which implements dyn_cast<>() doing 10x-20x faster than dynamic_cast<>()
  • base typemap now uses panda::dyn_cast to improve performance
  • panda::RefCounted now supports hooks via on_retain(), on_release() overriding
  • added tests for everything above

Modules

useful features and typemaps for XS modules.