=== 0.15.0 === 2010-08-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * doc/conf.py: [769] bump version 2010-07-24 sean ross * pybindgen/cppclass_typehandlers.py: [768] Fix segfault when using custodian=0 with default_value; https://launchpad.net/bugs/609272 fixed 2010-07-20 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/module.py, * pybindgen/wrapper_registry.py: [767] Optimization: eliminate duplicate #includes from wrapper_registry. 2010-05-19 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/callback, * examples/callback/c.cc, * examples/callback/c.h, * examples/callback/c_test.py, * examples/callback/modulegen.py, * examples/callback/wscript: Added. * examples/wscript: Modified. [766] Add a simple callback example. 2010-05-19 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/module.py: [765] Fix bug in _MonolithicSinkManager causing module.headers to not be written guaranteed before module.body 2010-05-06 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/cppclass_typehandlers.py, * pybindgen/cppmethod.py: [764] New API, CppClass.set_post_instance_creation_function, to meet ns3::Object's needs. 2010-04-22 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [763] merge 2010-04-22 Lincoln de Sousa <lincoln@indigente> * pybindgen/cppclass.py: [762.1.1] Fixing the return string of the get_free_code method The ReferenceCountingFunctionsPolicy.get_free_code method is returning a wrong value. Variables self.decref_function and obj_expr were missplaced. === 0.14.1 === 2010-04-21 Gustavo J. A. M. Carneiro <gjc@gnome.org> * doc/conf.py: [762] Bump version in docs 2010-04-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [761] remove leftover debug print * pybindgen/cppclass.py, * tests/foo.h: [760] Fix multiple-inheritance bug; https://launchpad.net/bugs/563786 fixed 2010-04-06 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/inttype.py: [759] Add 'short unsigned int' as alias for uint16_t 2010-04-05 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/stringtype.py: [758] Support default_value in char* parameters (Question #106449) * pybindgen/module.py: [757] fix the doctest after exception value changed 2010-03-25 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/module.py: [756] Add detail to the exception 2010-03-13 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/container.py: [755] Add container support for std::dequeue, as synonym for the more correct std::deque 2010-02-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * README: [754] More README improvements, specifically win32 related * pybindgen/typehandlers/floattype.py, * tests/foo.h, * tests/foomodulegen.py: [753] Fix some MSVC warnings 2010-02-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * include, * include/stdint.h: Added. * tests/foo.h, * tests/test-generation.py, * tests/wscript, * wscript: Modified. [752] Check for stdint.h; if not found use Paul Hsieh's pstdint.h; https://launchpad.net/bugs/519456 fixed 2010-02-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * README: [751] Update README 2010-02-14 Gustavo J. A. M. Carneiro <gjc@gnome.org> * doc/tutorial.rst, * doc/typehandlers.rst, * pybindgen/cppmethod.py: [750] Tutorial: fix first-example URL, add MSVC build instructions from T Powers * pybindgen/cppmethod.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py: [749] Add missing 'throw' modifiers as needed to method signatures in helper classes; https://launchpad.net/bugs/521020 fixed * wscript: [748] Fix bug #521196: wscript overwrites PYTHONPATH; https://launchpad.net/bugs/521196 fixed === 0.14.0 === 2010-02-07 Gustavo J. A. M. Carneiro <gjc@gnome.org> * doc/conf.py, * doc/utils.rst: [747] docs.. * NEWS: [746] Update NEWS for release 2010-02-03 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/utils.py: [745] Fix compatibility with Python < 2.5 (missing any()) 2010-01-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [744] multiple-inheritance: gccxml scanning part 2010-01-30 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * tests/foo.h, * tests/foomodulegen.py, * tests/foomodulegen_common.py, * tests/footest.py: [743] Experimental support for multiple- inheritance. GccXml scanning part not done yet. 2010-01-20 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [742] Add annotation support for instance attributes, and test pointer instance attribute. 2010-01-19 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/enum.py, * pybindgen/typehandlers/inttype.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [741] Wrap enum pointer params 2010-01-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [740] Wrap non-virtual protected methods as well; https://launchpad.net/bugs/508577 fixed * pybindgen/cppattribute.py: [739] Follow more closely the expected signatures of getters and setters; https://launchpad.net/bugs/508567 fixed 2010-01-13 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/stringtype.py: [738] merge 2010-01-12 Ben Fitzpatrick <benf@vtiinstruments.com> * pybindgen/typehandlers/stringtype.py: [737.1.1] Fix to allow compilation of std::string* types 2010-01-12 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/stringtype.py: [737] std::string* param type handler 2010-01-10 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/inttype.py: [736] Add support for int16_t& parameters 2009-12-27 Gustavo J. A. M. Carneiro <gjc@gnome.org> * benchmarks/bench.py, * benchmarks/testapi-pybindgen.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/settings.py, * tests/foomodulegen_common.py, * tests/footest.py, * tests/test-generation.py: [735] Align virtual method handling code with other tools: to implement virtual method foo, now the user defines a method foo in Python, not _foo. Option pybindgen.settings.deprecated_virtuals added for backward compatibility. * doc/settings.rst, * pybindgen/settings.py: [734] Improve the documentation of the pybindgen.settings module 2009-12-25 Gustavo J. A. M. Carneiro <gjc@gnome.org> * benchmarks/testapi.sip: Added. * benchmarks/bench.py, * benchmarks/wscript, * wscript: Modified. [733] Add SIP benchmarking 2009-12-25 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [732] Also generate the html report from 'waf bench' 2009-12-23 Gustavo J. A. M. Carneiro <gjc@gnome.org> * benchmarks/plotresults.py: Added. [731] add script to plot benchmark results 2009-12-23 Gustavo J. A. M. Carneiro <gjc@gnome.org> * benchmarks/bench.py: [730] Improved pybindgen version in benchmarks * benchmarks/bench.py, * benchmarks/testapi-pybindgen.py, * benchmarks/testapi.cc, * benchmarks/testapi.h, * benchmarks/testapi_boost.cc, * benchmarks/testapi_swig.i, * wscript: [729] More benchmarks 2009-12-22 Gustavo J. A. M. Carneiro <gjc@gnome.org> * benchmarks, * benchmarks/bench.py, * benchmarks/testapi-pybindgen.py, * benchmarks/testapi.cc, * benchmarks/testapi.h, * benchmarks/testapi_boost.cc, * benchmarks/testapi_swig.i, * benchmarks/wscript: Added. * wscript: Modified. [728] Benchmarks 2009-12-22 Gustavo J. A. M. Carneiro <gjc@gnome.org> * HACKING: [727] Update HACKING instructions (now waf is included) === 0.13.0 === 2009-12-21 Gustavo J. A. M. Carneiro <gjc@gnome.org> * NEWS: [726] NEWS update * doc/conf.py, * doc/cppclass.rst, * doc/cppclass_typehandlers.rst, * doc/cppexception.rst, * pybindgen/container.py, * pybindgen/cppattribute.py, * pybindgen/cppclass.py, * pybindgen/cppclass_typehandlers.py, * pybindgen/cppexception.py, * pybindgen/cppmethod.py, * pybindgen/function.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/codesink.py, * wscript: [725] sphinx-ify more docs 2009-12-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * doc/Makefile, * waf, * wscript: [724] Update 'waf dist' code; switch to zip files. 2009-12-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * doc, * doc/Makefile, * doc/_static, * doc/_templates, * doc/apiref.rst, * doc/codesink.rst, * doc/conf.py, * doc/container.rst, * doc/cppattribute.rst, * doc/cppclass.rst, * doc/cppclass_typehandlers.rst, * doc/cppexception.rst, * doc/cppmethod.rst, * doc/enum.rst, * doc/figures, * doc/figures/Makefile, * doc/figures/work-flow-basic.dia, * doc/figures/work-flow-gccxml-apidefs.dia, * doc/figures/work-flow-gccxml.dia, * doc/function.rst, * doc/gccxmlparser.rst, * doc/index.rst, * doc/make.bat, * doc/module.rst, * doc/settings.rst, * doc/tutorial.rst, * doc/typehandlers.rst, * doc/utils.rst: Added. * .bzrignore, * pybindgen/__init__.py, * pybindgen/container.py, * pybindgen/cppattribute.py, * pybindgen/cppclass.py, * pybindgen/cppclass_container.py, * pybindgen/cppclass_typehandlers.py, * pybindgen/cppexception.py, * pybindgen/cppmethod.py, * pybindgen/enum.py, * pybindgen/function.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/ctypeparser/__init__.py, * pybindgen/typehandlers/ctypeparser/tokenizer.py, * pybindgen/typehandlers/pyobjecttype.py: Modified. [723] Migrate documentation to Sphinx; https://launchpad.net/bugs/449389 fixed 2009-12-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/container.py, * pybindgen/cppattribute.py, * pybindgen/cppclass.py, * pybindgen/cppclass_container.py, * pybindgen/cppclass_typehandlers.py, * pybindgen/cppexception.py, * pybindgen/cppmethod.py, * pybindgen/enum.py, * pybindgen/function.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/ctypeparser/__init__.py, * pybindgen/typehandlers/ctypeparser/tokenizer.py, * pybindgen/typehandlers/pyobjecttype.py: [722.1.6] convert existing api docs to sphinx format 2009-12-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * doc/apiref.rst, * doc/codesink.rst, * doc/container.rst, * doc/cppattribute.rst, * doc/cppclass_typehandlers.rst, * doc/cppexception.rst, * doc/enum.rst, * doc/figures, * doc/figures/Makefile, * doc/figures/work-flow-basic.dia, * doc/figures/work-flow-gccxml-apidefs.dia, * doc/figures/work-flow-gccxml.dia, * doc/settings.rst, * doc/typehandlers.rst: Added. * .bzrignore, * doc/Makefile, * doc/conf.py, * doc/cppclass.rst, * doc/cppmethod.rst, * doc/gccxmlparser.rst, * doc/index.rst, * doc/module.rst, * doc/tutorial.rst, * doc/utils.rst: Modified. [722.1.5] Even more sphinx documentation work 2009-12-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * .bzrignore: [722.1.4] Update ignored files list 2009-12-09 Gustavo J. A. M. Carneiro <gjc@gnome.org> * doc/cppmethod.rst, * doc/function.rst: Added. * doc/conf.py, * doc/index.rst, * doc/tutorial.rst: Modified. [722.1.3] more sphinx docs 2009-12-08 Gustavo J. A. M. Carneiro <gjc@gnome.org> * doc/cppclass.rst, * doc/tutorial.rst, * doc/utils.rst: Added. * doc/_build: Removed. * .bzrignore, * doc/conf.py, * doc/gccxmlparser.rst, * doc/index.rst, * doc/module.rst, * pybindgen/__init__.py: Modified. [722.1.2] more sphinx work 2009-12-08 Gustavo J. A. M. Carneiro <gjc@gnome.org> * doc, * doc/Makefile, * doc/_build, * doc/_static, * doc/_templates, * doc/conf.py, * doc/gccxmlparser.rst, * doc/index.rst, * doc/make.bat, * doc/module.rst: Added. [722.1.1] Experimenting with sphinx documentation, work in progress 2009-12-08 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass_typehandlers.py, * pybindgen/cppmethod.py, * pybindgen/function.py, * wscript: [722] Document add_custodian_and_ward 2009-12-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass_typehandlers.py, * pybindgen/gccxmlparser.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [721] Add return_internal_reference option support, similar to boost::python. * pybindgen/cppclass_typehandlers.py, * pybindgen/cppmethod.py, * pybindgen/function.py, * pybindgen/typehandlers/base.py: [720] custodians-and-wards: refactoring, add new API calls for greater flexibility 2009-12-01 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/cppclass_typehandlers.py: [719] Split a new CppClassRefReturnValue out from CppClassReturnValue, because some options make no sense for value return * pybindgen/cppclass_typehandlers.py, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [718] Implement reference_existing_object also for Class& return values 2009-11-30 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass_typehandlers.py: [717] Add some source code comments, CppClassPtrReturnValue.convert_c_to_python is a long and complicated piece of code... 2009-11-21 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass_typehandlers.py: [716] Before appending to __wards__ list, check to see if the object is already there * tests/foo.h: [715] fix memleak in test code * wscript: [714] valgrind option * pybindgen/cppclass_typehandlers.py, * pybindgen/gccxmlparser.py, * tests/foo.h, * tests/foomodulegen.py: [713] Now the 'custodian' option only manages the lifecycle of the python wrapper, not the contained C++ object. To manage the C++ object, now 'transfer_ownership', 'caller_owns_return', or the new 'reference_existing_object', must be given in addition to 'custodian'. * wscript: [712] Enable verbose unit tests if -v given in waf check 2009-11-18 Mike Owen <mikeowen@llnl.gov> * pybindgen/pytypeobject.py: [711] Add a missing Py_DECREF in the sq_item slot wrapper. 2009-11-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [710] bug fixes from previous commit * pybindgen/gccxmlparser.py: [709] merge * pybindgen/gccxmlparser.py: [703.1.1] Fix scanning to place template instantiation near the section of the template arguments Add a new get_section_precedence virtual method support to class PygenClassifier. This is used to possibly place the template instantiation class in the proper code section. Fixes a problem in ns-3... 2009-11-15 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/footest.py: [708] test a bit more the custodian code 2009-11-06 Gustavo J. A. M. Carneiro <gjc@gnome.org> * waf: Added. * .bzrignore: Modified. [707] By popular demand, and a waf binary to the source code repository 2009-11-03 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/cppclass_typehandlers.py, * pybindgen/cppmethod.py, * pybindgen/utils.py, * tests/foo.cc, * tests/foo.h, * tests/test-generation.py: [706] Lots of custodian=xxx bug fixes; https://launchpad.net/bugs/461349 fixed 2009-10-25 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [705] Don't postpone scanning class due to implicit target not registered if the target is not a user class; https://launchpad.net/bugs/455689 fixed 2009-10-21 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppmethod.py, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [704] Bug 450255: Invalid 'cannot generate a constructor' case; https://launchpad.net/bugs/450255 fixed 2009-10-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppmethod.py: [703] In C++, method signatures don't include the return type. For ns-3 bug #723. 2009-09-30 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/booltype.py: [702] Fix bad bool parameter default value handling; https://launchpad.net/bugs/436154 fixed * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [701] Add test case for bug #436154 2009-09-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/overloading.py: [700] Bug fix === 0.12.0 === 2009-09-01 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass_container.py: [699] fix docstring * NEWS: [698] Update NEWS 2009-08-27 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [697] Fix issue with duplicate parent callers * pybindgen/typehandlers/base.py: [696] Simplify * pybindgen/typehandlers/booltype.py: [695] Support default_value for boolean type handler * pybindgen/cppclass.py: [694] Fix 'right' parameter type checking in CppClass.add_binary_numeric_operator. * pybindgen/cppexception.py, * pybindgen/cppmethod.py, * pybindgen/function.py, * tests/foomodulegen-auto-split.py, * tests/foomodulegen-auto.py, * tests/foomodulegen.py, * tests/foomodulegen3.py, * tests/foomodulegen4.py, * tests/footest.py: [693] Add code to allow translation of the exception message into python * pybindgen/cppexception.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen-auto-split.py, * tests/foomodulegen-auto.py, * tests/foomodulegen.py, * tests/foomodulegen3.py, * tests/foomodulegen4.py, * tests/footest.py: [692] Add foreign_cpp_namespace option to CppException, and tests using std::exception. 2009-08-26 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [691] Don't add method table entries for sequence methods registered via slots 2009-08-24 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppexception.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * tests/foo.h: [690] gccxml-scanning for exceptions and throw modifiers, semi-automatic, with help of annotation 2009-08-23 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppmethod.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [689] catch exceptions in constructors * pybindgen/cppmethod.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [688] catch exceptions in method calls too * pybindgen/cppexception.py: [687] mem fixes 2009-08-23 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppexception.py: Added. * pybindgen/function.py, * pybindgen/module.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: Modified. [686] Add API to basically wrap C++ exceptions and catch them in free function calls. 2009-08-23 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass_container.py: [685] cleanup 2009-08-22 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/foo.h, * tests/foomodulegen.py, * tests/foomodulegen_common.py, * tests/footest.py: [684] one more test * tests/foomodulegen.py, * tests/foomodulegen_common.py: [683] Make the gccxml scanning tests pass 2009-08-21 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass_container.py: Added. * pybindgen/cppclass.py, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: Modified. [682] New API to add container iteration powers to wrapped C++ classes. gccxml-scanning part missing. 2009-08-20 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [681] Add unit test for int* out parameter 2009-08-18 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/function.py, * pybindgen/gccxmlparser.py, * tests/c-hello/hellomodulegen.py: [680] Add custom_name support for wrapped classes; https://launchpad.net/bugs/257366 fixed * pybindgen/gccxmlparser.py: [679] gccxml-scan for unary operators * pybindgen/gccxmlparser.py: [678] eliminate excessive warnings 2009-08-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [677] Add unit test for unary minus * pybindgen/function.py: [676] Add foreign_cpp_namespace option to Function wrappers 2009-08-15 J. Michael Owen <mikeowen@llnl.gov> * pybindgen/cppclass.py: [675] Unary minus operator support 2009-08-15 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/pytypeobject.py: [674] Fix dangling pointer 2009-08-15 J. Michael Owen <mikeowen@llnl.gov> * pybindgen/cppclass.py, * pybindgen/pytypeobject.py: [673] Allow tp_len slot to support overloaded methods; https://launchpad.net/bugs/401761 fixed * pybindgen/typehandlers/inttype.py: [672] unsigned long, return value support; unsigned long& and unsigned long parameter type support 2009-08-09 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/utils.py: [671] Fix PYBINDGEN_UNUSED #define for non-GCC compiler; https://launchpad.net/bugs/401740 fixed 2009-08-04 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [670] fix gccxml scanning operator bug * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/base.py: [669] typedef bug fixes 2009-07-30 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [668] Don't wrap private/protected operators. * pybindgen/cppmethod.py: [667] clear exception after checking if virtual method is implemented. 2009-07-27 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/converter_functions.py, * pybindgen/cppclass.py, * pybindgen/cppclass_typehandlers.py, * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/base.py, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py, * tests/test-generation.py: [666] #401742 numeric operators with non- class right operand need more polish; https://launchpad.net/bugs/401742 fixed 2009-07-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppmethod.py: [665] Fix bug 400338: PyObject_HasAttrString check in virtual method wrappers does not work; https://launchpad.net/bugs/400338 fixed * pybindgen/cppmethod.py: [664] is_pure_virtual=True should imply is_virtual=True; https://launchpad.net/bugs/399870 fixed * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [663] add pure+protected virtual method test; https://launchpad.net/bugs/399876 fixed === 0.11.0 === 2009-07-12 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [662] dist fixes * NEWS: [661] I forgot about the size_t type support * NEWS: [660] Update NEWS for the next release * wscript: [659] More correctly determine whether the compiler accepts -fvisibility=hidden * examples/a/wscript, * examples/b/wscript, * examples/c/wscript, * examples/d/wscript, * examples/e/wscript, * examples/f/wscript, * examples/g/wscript, * examples/h/wscript: [658] Allow deprecation warnings in examples, since we can't get away from them (pygccxml+python2.6 gives warnings) * pybindgen/cppclass.py, * tests/foo.h: [657] Fix warning: ‘class xpto’ has virtual functions but non-virtual destructor 2009-07-08 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/pytypeobject.py: [656] Fix reference leaks. 2009-07-08 J. Michael Owen * pybindgen/cppclass.py, * pybindgen/pytypeobject.py: [655] Refactor sequence methods handling, for simplification. Let sq_len call the generated wrapper for __len__, etc.. * pybindgen/utils.py: [654] Improved name mangling 2009-07-07 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [653] sequence protocol unit tests * pybindgen/pytypeobject.py: [652] small bug fix * pybindgen/converter_functions.py: [651] converter functions need no C return value variable * pybindgen/typehandlers/booltype.py: [650] fix windows warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning) * pybindgen/typehandlers/inttype.py: [649] size_t value parameter/return type support * pybindgen/gccxmlparser.py: [648] Add support for the 'name' annotation for methods also. * pybindgen/cppclass_typehandlers.py, * tests/foo.h: [647] merge 2009-06-30 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass_typehandlers.py, * tests/foo.h: [641.1.1] After passing object reference to python code, do not use the copy constructor if the class has none. 2009-07-07 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [646] typo * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [645] Add unit tests for inplace numeric operators * pybindgen/gccxmlparser.py: [644] gccxml-scan for inplace numeric operators 2009-06-28 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [643] Don't generate sequence methods structure unless really needed. * pybindgen/cppclass.py, * pybindgen/module.py, * pybindgen/pytypeobject.py, * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/stringtype.py, * pybindgen/utils.py: [642] merge * pybindgen/cppclass.py, * pybindgen/module.py, * pybindgen/pytypeobject.py, * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/stringtype.py, * pybindgen/utils.py: [616.1.1] J. Michael Owen contribution: inplace numeric operators, sequence protocol support (__len__, __getitem__, __setitem__). Source: http://mail.python.org/pipermail/cplusplus- sig/2009-June/014595.html * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [641] Add a unit test with virtual method and a inout object ref parameter 2009-05-28 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/cppmethod.py: [640] Try harder to make sure helper classes with missing pure virtual methods are not generated. * pybindgen/enum.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [639] Implement support for enum reference parameters 2009-05-07 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * tests/foomodulegen.py: [638] Add a docstring parameter for CppClass / Module.add_cpp_class 2009-05-01 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [637] ./waf --generate-version falls back to using the bzr external command when import bzrlib fails. Based on patch by Mathieu Lacage. 2009-04-29 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/base.py: [636] Only lookup the alias names as fallback, not as first choice. * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/__init__.py, * pybindgen/typehandlers/base.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [635] Better support for typedefs 2009-04-28 Robin Gilks * pybindgen/cppmethod.py: [634] Add a docstring parameter to CppMethod constructor 2009-04-27 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/container.py, * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/base.py, * tests/c-hello/wscript, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [633] Add rudimentary support for std::map containers. * tests/wscript: [632] More waf fixes * wscript: [631] Changes to work with WAF 1.5.5 2009-03-01 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/module.py, * wscript: [630] Add pybindgen support for GCC's -fvisibility=hidden 2009-02-20 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/base.py: [629] I don't remember why I reserved names of parameters in forward wrappers, just remove it, it's silly. * pybindgen/typehandlers/pyobjecttype.py: [628] Fix missing keyword in parsing PyObject* parameters; https://launchpad.net/bugs/331981 fixed * pybindgen/typehandlers/base.py: [627] Catch better errors regarding lack of keywords 2009-02-18 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/g/modulegen.py: [626] Add wrapping of std::ofstream to the example * pybindgen/cppclass.py: [625] Add foreign_cpp_namespace option to CppClass, for wrapping std:: classes inside our module namespace. * pybindgen/enum.py: [624] Allow wrapping enum given list of (name, value) pairs 2009-01-26 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppattribute.py: [623] We do not need GIL locking for attribute setters (spotted by Stuart Stock) 2009-01-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/module.py: [622] Remove redundant calls to traceback.extract_stack() 2009-01-14 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/wscript, * wscript: [621] build fixes 2009-01-03 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [620] Correct way to enable WAF autoconfigure 2008-12-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/d/d.cc, * pybindgen/cppclass.py, * pybindgen/pytypeobject.py, * tests/foo.h: [619] Fix -Wextra warnings * HACKING, * README, * examples/a/wscript, * examples/b/wscript, * examples/c/wscript, * examples/d/wscript, * examples/e/wscript, * examples/f/wscript, * examples/g/wscript, * examples/h/wscript, * pybindgen/wscript, * tests/c-hello/wscript, * tests/wscript, * wscript: [618] merge in the new-waf branch * HACKING, * README: [525.1.14] WAF related clarifications * wscript: [525.1.13] Cleanup changes already in WAF * wscript: [525.1.12] Use the new cflags tool 2008-12-20 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [525.1.11] typo 2008-12-14 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [525.1.10] waf dist fixes * examples/a/wscript, * examples/b/wscript, * examples/c/wscript, * examples/d/wscript, * examples/e/wscript, * examples/f/wscript, * examples/g/wscript, * examples/h/wscript: [525.1.9] Make the examples compile too * wscript: [525.1.8] Adapt to waf trunk 2008-12-13 Gustavo J. A. M. Carneiro <gjc@gnome.org> * HACKING, * tests/c-hello/wscript, * tests/wscript, * wscript: [525.1.7] Unit tests now run with a forked waf (lp:~gjc/waf/cmd) * pybindgen/wscript, * wscript: [525.1.6] Fix configuration and installation for new waf 2008-12-10 Gustavo J. A. M. Carneiro <gjc@gnome.org> * .bzrignore, * NEWS, * README, * examples/a/modulegen.py, * examples/a/wscript, * examples/b/modulegen.py, * examples/b/wscript, * examples/c/modulegen.py, * examples/c/wscript, * examples/d/modulegen.py, * examples/d/wscript, * examples/e/modulegen.py, * examples/e/wscript, * examples/f/modulegen.py, * examples/f/wscript, * examples/g/modulegen.py, * examples/g/wscript, * examples/h/modulegen.py, * examples/h/wscript, * pybindgen/__init__.py, * pybindgen/container.py, * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/ctypeparser/__init__.py, * pybindgen/typehandlers/ctypeparser/tokenizer.py, * pybindgen/wrapper_registry.py, * tests/c-hello/wscript, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py, * tests/wscript, * wscript: [525.1.5] merge 2008-11-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/container.py, * pybindgen/converter_functions.py, * pybindgen/pytypeobject.py, * pybindgen/wrapper_registry.py: Added. * examples/d/modulegen.py, * pybindgen/__init__.py, * pybindgen/cppclass.py, * pybindgen/cppclass_typehandlers.py, * pybindgen/cppmethod.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * pybindgen/overloading.py, * pybindgen/settings.py, * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/codesink.py, * pybindgen/typehandlers/ctypeparser/__init__.py, * pybindgen/typehandlers/inttype.py, * pybindgen/typehandlers/pyobjecttype.py, * pybindgen/typehandlers/stringtype.py, * pybindgen/utils.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen-auto-split.py, * tests/foomodulegen-auto.py, * tests/foomodulegen.py, * tests/foomodulegen4.py, * tests/foomodulegen_common.py, * tests/footest.py, * tests/test-generation.py, * tests/wscript, * wscript: Modified. [525.1.4] merge 2008-11-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/c-hello/wscript, * wscript: [525.1.3] Partially support the new WAF 1.5 branch 2008-07-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/c-hello/wscript: [525.1.2] Oops, leftover test code * pybindgen/wscript, * tests/c-hello/wscript, * tests/wscript, * wscript: [525.1.1] Changes for the new waf (trunk). 2008-12-10 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/container.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [617] Partial support for pointer-to-container parameters === 0.10.0 === 2008-12-08 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [616] ignore a local directory i keep around * .bzrignore: [615] ignored * pybindgen/gccxmlparser.py: [614] comment out debug print * examples/a/modulegen.py, * examples/b/modulegen.py, * examples/c/modulegen.py, * examples/d/modulegen.py, * examples/e/modulegen.py, * examples/f/modulegen.py, * examples/g/modulegen.py, * examples/h/modulegen.py, * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/ctypeparser/__init__.py, * pybindgen/typehandlers/ctypeparser/tokenizer.py: [613] Fix compatibility with python 2.3 and 2.4 * wscript: [612] fix configure * NEWS: [611] One last NEWS item I forgot * pybindgen/__init__.py: [610] Documentation: fix the refcounting text, add minimal section about STL containers * NEWS: [609] Update NEWS for the next release 2008-11-19 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/a/wscript, * examples/b/wscript, * examples/c/wscript, * examples/d/wscript, * examples/e/wscript, * examples/f/wscript, * examples/g/wscript, * examples/h/wscript, * tests/c-hello/wscript, * tests/wscript, * wscript: [608] Allow installation even if C/C++ compiler was not detected by WAF * README: [607] Add more useful hints to the README file 2008-11-19 Ben Smith <benjamin.coder.smith@gmail.com> * wscript: [606] Windows compatibility fix in wscript function get_version_from_bzr() 2008-11-19 Ben Smith <benjamin.coder.smith -at- gmail> * wscript: [605.1.1] fix to transform windows abspath to bazaar- friendly uri 2008-11-18 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/foo.h: [605] Fix compiler warnings * pybindgen/cppclass.py, * pybindgen/typehandlers/ctypeparser/__init__.py, * pybindgen/typehandlers/ctypeparser/tokenizer.py, * pybindgen/wrapper_registry.py: [604] Python 2.6 fixes 2008-11-07 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [603] Compare functions by function name first, only after by full declation * pybindgen/gccxmlparser.py: [602] Sort also free functions and namespaces when doing gccxml scanning 2008-10-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/container.py: [601] Clear the container before starting to append items to it 2008-10-15 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py, * tests/foo.h: [600] Check for anonymous types when wrapping member variables, and skip them for now, as they cause bad code to be generated. 2008-10-12 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/cppmethod.py: [599] Missing wrapper in error handling * pybindgen/overloading.py: [598] While adding overloaded methods/functions, don't check the PyMethodFlags immediately, check it later, as needed, to allow the programmer a chance to fix the parameters (e.g. default_parameter_type) before code generation. * pybindgen/utils.py: [597] Don't use 'callable' as parameter name, it is a python builtin function * pybindgen/cppmethod.py: [596] Better error messages 2008-10-07 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/pytypeobject.py: [595] Don't generate nb_index slot: it is not used yet and breaks compatibility with Python < 2.5 * pybindgen/pytypeobject.py: [594] Indent the generated PyNumberMethods struct 2008-10-06 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [593] Add flag Py_TPFLAGS_CHECKTYPES to type when numeric operators are implemented * pybindgen/cppclass.py: [592] Need to clear exception when type checking fails * pybindgen/converter_functions.py, * pybindgen/cppclass.py, * pybindgen/module.py, * pybindgen/pytypeobject.py, * tests/footest.py: [591] Wrap C++ arithmetic operators; https://launchpad.net/bugs/277054 fixed 2008-10-05 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py, * pybindgen/pytypeobject.py, * tests/foo.h, * tests/foomodulegen.py: [590] Getting ready to support numeric operators... 2008-10-04 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [589] Add support for wrapping binary comparison operators; https://launchpad.net/bugs/277055 fixed * tests/foomodulegen-auto-split.py, * tests/foomodulegen-auto.py, * tests/foomodulegen.py, * tests/wscript: [588] Disable profiling during unit tests (but make it trivial to re-enable) * pybindgen/gccxmlparser.py: [587] Remove any 'const' from registered containers * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [586] Add a unit test for scanning/wrapping output reference to container parameter (e.g.std::vector<std::string> &outVec) * pybindgen/gccxmlparser.py: [585] Fix type normalization function (use the pybindgen own ctypeparser.normalize_type_string function) * pybindgen/typehandlers/ctypeparser/__init__.py: [584] Now the C type parser removes leading :: from identifiers * pybindgen/gccxmlparser.py: [583] Fix detection of container types from parameters of type pointer-to-container or reference-to-container 2008-10-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [582] Don't leave the type registration order completely undefined; we may want to generate python scripts to become version controlled, and random order leads to spurious diffs as the scanning is done in different machines. 2008-09-27 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [581] Change the default value of enable_anonymous_containers to True; it has been tested already, and disabling it doesn't really completely fix the cygwin problems. 2008-09-24 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/container.py: [580] Fix stl container bad iterator usage in some cases (e.g. std::string). 2008-09-15 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/container.py, * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/codesink.py, * tests/foo.h, * tests/foomodulegen-auto-split.py, * tests/foomodulegen-auto.py, * tests/foomodulegen.py, * tests/foomodulegen4.py, * tests/footest.py: [579] Scan for containers in class attributes, and assorted fixes 2008-09-09 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/wrapper_registry.py: [578] Fix a std::map wrapper registry --erase the same key twice--that caused problems in win32 (mingw) 2008-09-05 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/ctypeparser/__init__.py: [577] Don't use copy.deepcopy; it is buggy on some Python versions. 2008-09-04 Mathieu Lacage <mathieu.lacage@sophia.inria.fr> * pybindgen/gccxmlparser.py: [576] Typo. 2008-09-04 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [575] python 2.4 + gcc 4.2 fix 2008-09-03 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [574] If generating output string stream operator for a class, add the dependency includes <ostream> and <sstream> to the module 2008-09-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/d/modulegen.py: [573] Adapt example to new API * pybindgen/__init__.py, * pybindgen/cppclass.py, * pybindgen/cppclass_typehandlers.py, * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/ctypeparser/__init__.py, * pybindgen/typehandlers/inttype.py, * pybindgen/typehandlers/pyobjecttype.py, * pybindgen/typehandlers/stringtype.py, * tests/foo.h, * tests/foomodulegen.py, * tests/foomodulegen_common.py, * tests/test-generation.py: [572] Revamp type matching system and const handling, is_const becomes deprecated. Now types are specified with consts inside the type string, is_const is deprecated. The ctypeparser utility module, previously only used to canonicalize type strings, is used more extensively throughout pybindgen to provide type traits and type manipulation, where needed. gccxml type traits no longer used as consequence. 2008-08-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [571] Add option to disable pygccxml support 2008-08-29 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py, * pybindgen/module.py, * tests/foo.cc, * tests/foo.h: [570] Scanning of anonymous containers is now disabled by default, due to a bug in gccxml and the problems it causes. 2008-08-27 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [569] Let's face it: generating tp_hash was just a hack; disabled because it's no longer needed. * pybindgen/container.py, * pybindgen/gccxmlparser.py, * tests/foomodulegen.py: [568] Now Container takes a container_type parameter instead of add_value_method, to make future tweaking of containers based on type easier and not require more API changes. * pybindgen/gccxmlparser.py: [567] Don't try to read annotations for artificial declarations. * pybindgen/gccxmlparser.py: [566] typo * pybindgen/container.py, * pybindgen/gccxmlparser.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py: [565] Filter out mapping containers for now; use the correct method to add a value for each container type, not always push_back. 2008-08-26 Mathieu Lacage <mathieu.lacage@sophia.inria.fr> * pybindgen/container.py: [564] Add parenthesis to make g++ 4.1 happy when parsing container iterator code. 2008-08-22 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/wrapper_registry.py: Added. * pybindgen/cppclass.py, * pybindgen/cppclass_typehandlers.py, * pybindgen/settings.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/foomodulegen_common.py, * tests/footest.py: Modified. [563] Add optional 'wrapper registry' support, which allows one-to-one mapping between C++ object and Python wrapper, so that two wrappers can be safely compared with the 'is' operator. 2008-08-20 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py, * tests/foo.h, * tests/foomodulegen-auto-split.py, * tests/foomodulegen-auto.py, * tests/foomodulegen.py, * tests/wscript: [562] Add to unit tests APIs involding PyObject*, in order to test this type handler * pybindgen/cppclass_typehandlers.py, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [561] Add unit tests, fix a C++ object refcount leak. 2008-08-19 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [560] Only enable the copy constructor if is public. * pybindgen/cppclass.py, * tests/footest.py: [559] Generate __copy__ methods to allow copy.copy() to work on our class wrappers. * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * tests/footest.py: [558] Fix missing copy constructor that was not being generated into the python script. Add utility method to easily add a copy constructor to a class. * pybindgen/pytypeobject.py: [557] Default value for tp_dictoffset should be 0, not NULL. * pybindgen/container.py: [556] Missing typecast to PyObject in Py_VISIT argument. 2008-08-18 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/module.py: [555] fix double initialization of the main section code sink * pybindgen/gccxmlparser.py: [554] fix getting pygen sink for builtin types * pybindgen/gccxmlparser.py: [553] gccxml-scan all containers used by the APIs (methods and functions). * pybindgen/typehandlers/codesink.py: [552] Add some debug code. 2008-08-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [551] refactoring * pybindgen/container.py, * pybindgen/utils.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [550] Add support for unnamed (not typedef) containers. Not gccxml support yet, though. * pybindgen/container.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [549] Add typehandler for container ref parameter 2008-08-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/container.py: [548] Small simplification (use converter function) * pybindgen/container.py, * tests/footest.py: [547] Allow reverse wrappers with container return value to return a list instead of container object * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [546] Add container reverse wrappers unit tests * pybindgen/container.py, * tests/foo.cc, * tests/footest.py: [545] Paramters of a container parameter type now also accept a list instead of a proper container object * pybindgen/container.py, * pybindgen/module.py: [544] Refactoring to generate most of the constainer construction logic as a type convertion function, for easier reuse in type handlers. * pybindgen/container.py, * tests/footest.py: [543] Sequence constructor 2008-08-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/converter_functions.py: Added. * pybindgen/module.py, * pybindgen/typehandlers/base.py, * pybindgen/utils.py: Modified. [542] Add API to generate python-to-C convertion functions. 2008-08-15 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [541] Test container as parameter. 2008-08-14 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/container.py: Added. * pybindgen/gccxmlparser.py, * pybindgen/module.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: Modified. [540] Initial support for std sequence containers (limited testing / support, for now) 2008-08-12 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [539] operator() support in gccxml scanner * pybindgen/gccxmlparser.py: [538] When checking for output stream operators, match agains operator name as well, not just expected parameter/return types. * pybindgen/cppclass.py, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [537] Add tp_call support to the python API; corresponding gccxml support is TODO. * pybindgen/cppmethod.py: [536] Clarify custom_name vs custom_template_method_name in the api docs. 2008-08-08 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [535] Remove leftover debug code 2008-08-08 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/pytypeobject.py: Added. * pybindgen/cppclass.py: Modified. [534] Factor out the generation of the type structure away from cppclass into a separate class PyTypeObject, for better code reuse. 2008-08-08 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/utils.py: [533] Fix bad PY_VERSION_HEX values. * pybindgen/gccxmlparser.py, * pybindgen/module.py, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [532] Templated functions tests and bug fixes. 2008-08-06 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [531] typo 2008-08-05 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [530] Add annotations support for 'unblock_threads' * pybindgen/cppmethod.py: [529] more bug fixing (return without cleanup) * pybindgen/cppmethod.py, * pybindgen/typehandlers/base.py: [528] bug fixes (GIL, cleanup actions ordering) * pybindgen/typehandlers/base.py, * pybindgen/utils.py: [527] Make the generated reverse wrappers (virtual methods) python thread safe, i.e. they now acquire / release the Python GIL when called from C/C++ code, but only if Python threading was initialized (PyEval_ThreadsInitialized). 2008-08-01 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [526] Generate tp_hash for CppClass 2008-07-28 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass_typehandlers.py, * pybindgen/gccxmlparser.py, * tests/c-hello/hello.c, * tests/c-hello/hello.h, * tests/c-hello/hellotest.py: [525] Implement null_ok and default_value for CppClassPtrParameter. Closes #252447. * pybindgen/function.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * pybindgen/overloading.py: [524] Be more tolerant with unicode objects where str was expeced, for compatibility with pygccxml running with python 2.4. * pybindgen/typehandlers/base.py: [523] Make ParseTupleParameters.add_parameter return the number of the added parameter, for inclusion in error messages. === 0.9.0 === 2008-07-27 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [522] Fix URL * NEWS, * README: [521] Update NEWS/README * pybindgen/enum.py, * pybindgen/gccxmlparser.py, * tests/foo.h, * tests/foomodulegen-auto-split.py, * tests/foomodulegen.py, * tests/footest.py: [520] Bug #247036: cannot wrap an unamed enum * pybindgen/cppclass.py, * tests/foomodulegen.py: [519] Bug #247059: API to wrap inner enums and classes is not intuitive 2008-07-25 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [518] Generate #include <typeinfo> if we're about to use typeid() operator * pybindgen/gccxmlparser.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [517] Add support for parameter default values specified via annotations. Closes LP#251343. 2008-07-23 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [516] Add a new gccxml_options parameter to the gccxml module parser. 2008-07-22 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/inttype.py: [515] Python 2.3 does not accept 'I' in Py_BuildValue * pybindgen/typehandlers/base.py, * tests/foomodulegen.py: [514] Use PyErr_Warn instead of PyErr_WarnEx in deprecations, for compatibility with Python 2.3 * pybindgen/cppclass.py: [513] Fix reference counting problem, triggered by subclass-able class not being subclassed, which is detected only by a debug Python build. * pybindgen/cppattribute.py, * pybindgen/cppclass.py, * pybindgen/cppclass_typehandlers.py, * pybindgen/cppmethod.py, * pybindgen/enum.py, * pybindgen/function.py, * pybindgen/module.py, * pybindgen/overloading.py, * pybindgen/typehandlers/base.py, * tests/foomodulegen.py, * tests/foomodulegen_common.py, * tests/test.py: [512] Python 2.3 compatibility fixes 2008-07-20 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [511] Mark deprecated incref_method, ... parameters in the documentation * pybindgen/cppclass.py: [510] Fix stupid bugs in handling of memory_policy assertions and inheritance logic * pybindgen/cppattribute.py: [509] Let error handlers catch errors during generation of C++ class attribute wrappers * pybindgen/cppclass.py: [508] Make CppClass parameter memory_policy slightly less restrictive (allow subclass to define memory_policy as long as no parent class has defined it before). * pybindgen/__init__.py, * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py, * tests/foomodulegen.py, * tests/wscript: [507] Fix some more deprecations * examples/d/modulegen.py, * examples/e/modulegen.py: [506] Fix deprecations. 2008-07-18 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/cppclass_typehandlers.py, * pybindgen/gccxmlparser.py: [505] New cppclass.MemoryPolicy and memory_policy CppClass parameter. Closes Bug #247536 (CppClass: improve consistency of memory management parameters). * tests/wscript: [504] Make deprecations as errors easy to turn off temporarily. 2008-07-18 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass_typehandlers.py: Added. * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/function.py: Modified. [503] Split the cppclass.py file, as it was getting too big: move type handlers into new source file cppclass_typehandlers.py. 2008-07-18 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/a/wscript, * examples/b/wscript, * examples/c/wscript, * examples/d/wscript, * examples/e/wscript, * examples/f/wscript, * examples/g/wscript, * examples/h/wscript, * pybindgen/cppmethod.py, * pybindgen/gccxmlparser.py, * tests/wscript: [502] For examples and unit tests, turn deprecation warnings into exceptions; fix cases where deprecations were being used. 2008-07-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [501] Better looking generated python code: split add_function/method/constructor calls into multiple lines (as suggested by Mathieu Lacage) * pybindgen/gccxmlparser.py, * tests/foo.h, * tests/footest.py: [500] Scan for __attribute__((deprecated)), enable deprecation mode when found * pybindgen/cppmethod.py, * pybindgen/function.py, * pybindgen/typehandlers/base.py: [499] Add API support for deprecations 2008-07-15 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [498] Scan typedefs only after scanning for all classes. * pybindgen/gccxmlparser.py: [497] Scan for class typedefs. * pybindgen/module.py: [496] Remove debug print * pybindgen/cppclass.py, * pybindgen/module.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [495] Module.add_typedef API, implemented only for C++ classes/structs for now. 2008-07-14 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/inttype.py: [494] Enable handling of the int32_t type 2008-07-13 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/a/module-autogen.py, * examples/a/modulegen.py, * examples/b/modulegen.py, * examples/c/modulegen.py, * examples/d/modulegen.py, * examples/e/modulegen.py, * examples/f/modulegen.py, * examples/g/modulegen.py, * examples/h/modulegen.py, * tests/c-hello/hellomodulegen.py: [493] Remove deprecated calls to write_preamble from examples/tests * pybindgen/cppclass.py: [492] Add default_value_type option to CppClassRefParameter. When used, code to handle default paraameters is generated using a temporary variable to hold the default parameter, instead of an expression. Unfortunately default_value_type cannot yet be introspected by the gccxml scanner. * pybindgen/cppclass.py: [491] Ensure we do not generate helper class for classes with subclassing disabled * pybindgen/gccxmlparser.py: [490] When scanning, only explicitly set allow_subclassing for root classes, child classes will inherit from the parent. 2008-07-11 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [489] Don't output private APIs * pybindgen/__init__.py: [488] Link to the tutorial example online. * pybindgen/module.py, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [487] New API: Module.add_struct. * pybindgen/cppmethod.py: [486] Make str(CppMethod) work better with method objects with errors. * wscript: [485] copy the pre.py-doctest style instead of pre.py-src 2008-07-11 Mathieu Lacage <mathieu.lacage@sophia.inria.fr> * pybindgen/__init__.py: [484] Expanded tutorial. 2008-07-11 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [483] Clarify the custodian parameter of CppClassPtrParameter and CppClassPtrReturnValue * wscript: [482] Patch the generated CSS file to highlight literal blocks * pybindgen/module.py: [481] Fix epydoc cross-ref 2008-07-10 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [480] Documentation typo (thanks Mathieu) 2008-07-09 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/base.py: [479] BuildValueParameters.get_parameters now accepts optional force_tuple_creation parameter, to add () in the returned template, thus forcing a tuple to be always created. * pybindgen/cppmethod.py: [478] Fix CppMethod.clone bug (is_pure_virtual was not being copied) * pybindgen/cppmethod.py: [477] Add a __str__ function to CppMethod, allowing to pretty-print a method description (great for debugging purposes). * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [476] Fixing bug #246069, did some bug fixing along the way (related to virtual method parent callers), before discovering the bug was invalid. 2008-07-06 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/module.py: [475] Add a module_file_base_name code generation option to toplevel modules * pybindgen/typehandlers/inttype.py: [474] Implement uint32_t* parameter handler * pybindgen/gccxmlparser.py: [473] Override the type_traits.has_public_destructor algorithm again. I knew there was a reason for me having overridden it in the first place. I just got the algorithm wrong the first time around. * pybindgen/cppclass.py, * pybindgen/cppmethod.py: [472] Fix protected constructor issues. * pybindgen/gccxmlparser.py: [471] Use pygccxml type_traits.has_public_destructor function instead of our own. * pybindgen/cppclass.py, * pybindgen/cppmethod.py: [470] Don't even try to generate code for CppDummyMethod's, they were never meant to generate code. * pybindgen/cppclass.py: [469] Generate a tp_richcompare slot function for each type. For the time being it simply raises TypeError, just to avoid the trap of comparing objects when the default evil Python 2.x behaviour is to compare by wrapper pointer value. In the future, wrapping C++ comparison operators will be possible. 2008-07-03 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/booltype.py, * pybindgen/typehandlers/doubletype.py, * pybindgen/typehandlers/floattype.py, * pybindgen/typehandlers/inttype.py, * pybindgen/typehandlers/pyobjecttype.py, * pybindgen/typehandlers/stringtype.py, * tests/foomodulegen.py, * tests/test-generation.py: [468] Clean up the mess that became registering handlers for const types; add 'constness' to type handler codegeneration tests. * tests/foomodulegen-auto.py: [467] Add a debug switch (-d) to enable debugger * tests/foo.h: [466] Change one case of unit test using std::string to std::string const &, just for better testing.. * pybindgen/gccxmlparser.py, * tests/foo.h: [465] Fix Bug #245097: Regression: Error 'declarated_t' object has no attribute 'base' 2008-07-03 Mathieu Lacage <mathieu.lacage@sophia.inria.fr> * pybindgen/gccxmlparser.py, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [464] Fix problem with class registration when an inner namespace class has a class defined in an outer namespace as base class. * tests/foo.h, * tests/foomodulegen-auto.py, * tests/foomodulegen.py, * tests/foomodulegen3.py, * tests/foomodulegen4.py: [463] Cleanups. 2008-07-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [462] CppClass.add_output_stream() documentation and unit tests. * pybindgen/typehandlers/inttype.py: [461] Minor fixes * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py: [460] s/operator_os/output_stream_operator/ (more readable) 2008-07-02 Mathieu Lacage <mathieu.lacage@sophia.inria.fr> * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py: [459] Add support for scanning for output stream operator functions, and wrap them as tp_str of each class. 2008-06-30 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [458] CppClassRefParameter should check if class is constructible only when the parameter has a default value. * pybindgen/typehandlers/inttype.py: [457] Handle uint64_t& 2008-06-29 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/inttype.py: [456] Missing transfer_ownership constructor parameter in integer pointer type handlers * pybindgen/gccxmlparser.py: [455] Use patched pygccxml remove_xxx functions, to work around the problem of pygccxml removing the typedefs and returning the raw type (e.g. unsigned long int instead of uint64_t). * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/doubletype.py, * pybindgen/typehandlers/inttype.py, * pybindgen/typehandlers/stringtype.py: [454] Misc type handler changes to support detailed type traits. * pybindgen/gccxmlparser.py: [453] Get detailed type traits for all types, not just C++ classes. For example, should now be able to remove 'const' from 'const int'. 2008-06-28 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppmethod.py, * pybindgen/function.py: [452] Allow add custom methods/functions with wrapper_body=None, useful when the wrapper body is defined in another compilation unit. 2008-06-24 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/floattype.py, * tests/foo.cc, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [451] Bug #242285: Impossible to use a float* parameter in a function or method to pass an array of floats. * pybindgen/module.py: [450] Fix typo * pybindgen/module.py: [449] Add support for a Module.body code sink * pybindgen/cppattribute.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/enum.py, * pybindgen/function.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * pybindgen/overloading.py, * pybindgen/settings.py, * pybindgen/typehandlers/base.py, * pybindgen/utils.py, * tests/foomodulegen4.py, * tests/wscript: [448] Experimental multi-section (split generated C code over multiple files) code 2008-06-20 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/ctypeparser/__init__.py: [447] remove todo item already done 2008-06-15 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/inttype.py: [446] add 'unsigned short' aliases for uint16_t * pybindgen/typehandlers/ctypeparser/__init__.py: [445] Add a CType.remove_modifiers() method * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/booltype.py, * pybindgen/typehandlers/doubletype.py, * pybindgen/typehandlers/floattype.py, * pybindgen/typehandlers/inttype.py, * pybindgen/typehandlers/stringtype.py, * tests/foomodulegen_common.py, * tests/test.py: [444] Run all type strings through the newly added 'type normalization function' before every type registration and lookup. This change can have noticeable impact, especially on type transformations, but is for the best. Now the canonical string representation for 'Foo*' is 'Foo *', and for 'const Foo*' it is 'Foo const *'. * pybindgen/cppclass.py: [443] missing const_casts; typo 2008-06-14 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/ctypeparser/__init__.py: [442] Handle parenthesis, so that function pointer types can be properly handled. 2008-06-14 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/ctypeparser, * pybindgen/typehandlers/ctypeparser/__init__.py, * pybindgen/typehandlers/ctypeparser/tokenizer.py: Added. * pybindgen/wscript, * tests/test.py: Modified. [441] Add a C type parser and function to normalize type string representations. 2008-06-09 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/stringtype.py, * tests/test.py: [440] Regarding [Bug 238455], check that char* types are being registered. 2008-06-08 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/function.py, * pybindgen/module.py: [439] Define stack_where_defined much earlier * pybindgen/cppclass.py, * pybindgen/module.py: [438] Add a 'stack_where_defined' to all added wrappers; this way it is possible, in the error handler, to tell the user exactly where is the code that causes the failure. * pybindgen/gccxmlparser.py: [437] Add support for a 'pygen_sink' annotation, applicable to anything, as a convenient way to generate a comment right before an API definition in generated python scripts. * pybindgen/gccxmlparser.py: [436] Check for annotations and run pre_scan hooks for enumerations also * pybindgen/gccxmlparser.py: [435] More detailed hierarchy of warnings categories. * pybindgen/gccxmlparser.py: [434] Define a separate ScanWarning category to be used by pybindgccxml.ModuleParser, to allow filtering warnings. 2008-06-06 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * tests/c-hello/hello.c, * tests/c-hello/hello.h: [433] [bug #237524] Avoid using const_cast and reinterpret_cast, use C-style casts instead, so that the generated code compiles with a pure C compiler. 2008-06-03 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py, * tests/foo.h, * tests/foomodulegen.py, * tests/footest.py: [432] Support anonymous structures (LP#237054) * pybindgen/typehandlers/inttype.py: [431] Finish support for int16_t / short int * pybindgen/typehandlers/stringtype.py: [430] bug fix 2008-06-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py, * tests/foomodulegen-auto-split.py: [429] Implement the section.local_customizations_module option * pybindgen/gccxmlparser.py, * tests/foomodulegen-auto-split.py: [428] Use a proper PygenSection class instead of tuple, to denote section information * pybindgen/cppclass.py: [427] Guard against code generation errors while adding a method object 2008-06-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * HACKING: Added. * README: Modified. [426] HACKING file 2008-06-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/__init__.py, * pybindgen/gccxmlparser.py: [425] documentation work 2008-06-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/a/module-autogen.py, * examples/a/module-autoscan.py: Added. * examples/a/wscript: Modified. [424] Add gccxml-based variants to the 'a' example. 2008-06-01 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/foomodulegen-auto-split.py, * tests/foomodulegen4.py: Added. * pybindgen/gccxmlparser.py, * pybindgen/module.py, * tests/foomodulegen3.py, * tests/footest.py, * tests/wscript, * wscript: Modified. [423] Add support for splitting the generated python script into sections (python submodules) basedon on some criteria. 2008-05-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/function.py: [422] Don't use custom_name as basis for wrapper function name. 2008-05-25 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/cppmethod.py: [421] Add the dummy methods to helper classes as well, so that unwrapped pure virtual methods are detected and the helper class disabled * pybindgen/cppmethod.py: [420] bug fix * pybindgen/__init__.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/function.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * pybindgen/utils.py, * tests/foomodulegen3.py, * tests/test.py: [419] Delayed binding of parameter and return value specifiers, and improved error handling. 2008-05-24 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [418] Filter out duplicated helper class constructors 2008-05-23 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [417] Remove a couple of FIXME exceptions * pybindgen/module.py: [416] Add a Module.after_forward_declarations code sink, for writing custom code that needs to go after the forward declarations but before the wrappers. * pybindgen/module.py: [415] Fix bug with duplicated #include directives being generated, each include times the number of submodules+1 2008-05-22 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppmethod.py: [414] Fix buggy CppMethod.matches_signature * pybindgen/cppmethod.py: [413] Don't call a constructor, from a constructor wrapper, if it is not public * pybindgen/cppclass.py, * pybindgen/cppmethod.py: [412] Add virtual methods from parent classes for each class' helper class * pybindgen/cppclass.py, * pybindgen/overloading.py: [411] Avoid generating code that doesn't compile, when dealing with a combination of implicit conversions + abstract classes 2008-05-19 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/b/modulegen.py, * examples/d/modulegen.py, * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py, * tests/foomodulegen.py: [410] CppClass.add_*_attribute API change. * examples/b/modulegen.py, * examples/c/modulegen.py, * examples/d/modulegen.py, * examples/e/modulegen.py, * examples/f/modulegen.py, * examples/h/modulegen.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * tests/foomodulegen.py, * tests/test-generation.py: [409] Update tests/examples to use new add_constructor API * pybindgen/cppclass.py, * pybindgen/cppmethod.py: [408] New constructor API * pybindgen/cppclass.py: [407] doc fix 2008-05-18 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/c/modulegen.py, * examples/e/modulegen.py, * examples/f/modulegen.py, * examples/h/modulegen.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/gccxmlparser.py, * tests/foomodulegen.py, * tests/foomodulegen_common.py: [406] CppClass.add_method simplifications * pybindgen/module.py: [405] remove FIXME * examples/a/modulegen.py, * examples/b/modulegen.py, * examples/d/modulegen.py, * examples/g/modulegen.py, * pybindgen/function.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * tests/foomodulegen.py, * tests/foomodulegen_common.py: [404] Module.add_function API simplification * pybindgen/cppmethod.py, * pybindgen/function.py, * tests/foomodulegen.py: [403] Allow None to mean ReturnValue.new('void') for functions and methods. * examples/c/modulegen.py, * examples/e/modulegen.py, * examples/f/modulegen.py, * examples/h/modulegen.py, * pybindgen/cppmethod.py, * pybindgen/gccxmlparser.py, * tests/foomodulegen.py: [402] CppMethod returntype,name parameters swapped (Mathieu); add more documentation. 2008-05-11 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/function.py: [401] Add a backward API compatibility for the previous Function constructor API change. * examples/a/modulegen.py, * examples/b/modulegen.py, * examples/d/modulegen.py, * examples/e/modulegen.py, * examples/g/modulegen.py, * pybindgen/function.py, * pybindgen/gccxmlparser.py, * tests/foomodulegen.py, * tests/test-generation.py: [400] API change: Function(retval, name, params) now becomes Function(name, retval, params), as suggested by Mathieu Lacage. * pybindgen/gccxmlparser.py, * pybindgen/module.py, * tests/foomodulegen.py: [399] Same thing for add_enum * examples/b/modulegen.py, * examples/c/modulegen.py, * examples/d/modulegen.py, * examples/e/modulegen.py, * examples/f/modulegen.py, * examples/h/modulegen.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * tests/foomodulegen.py: [398] ModuleBase.add_class directly creates the class now (Mathieu's API suggestion) * pybindgen/module.py: [397] Turn the documentation examples into doctests * pybindgen/module.py: [396] Documentation (module) * pybindgen/gccxmlparser.py, * pybindgen/module.py: [395] Split the class Module into ModuleBase, Module, and SubModule (should address some concerns by Mathieu Lacage) * wscript: [394] We require Python >= 2.3, not 2.4. 2008-05-07 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/foomodulegen3.py, * tests/foomodulegen_common.py: Added. * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * tests/c-hello/hellotest.py, * tests/foomodulegen-auto.py, * tests/foomodulegen.py, * tests/footest.py, * tests/wscript, * wscript: Modified. [393] merge from the gccxml-to-python branch 2008-05-07 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [391.1.30] pygen implicit conversions * pybindgen/gccxmlparser.py: [391.1.29] pygen implicit constructor * wscript: [391.1.28] Hide the --generate-version option if not running from a bzr branch * wscript: [391.1.27] Add --examples option (only compiles examples if this option is given); add a PyBindGen option group, for prettier help output. 2008-05-07 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/g, * examples/g/g.cc, * examples/g/g.h, * examples/g/g_test.py, * examples/g/modulegen.py, * examples/g/wscript, * examples/h, * examples/h/h.cc, * examples/h/h.h, * examples/h/h_test.py, * examples/h/modulegen.py, * examples/h/wscript: Added. * examples/wscript: Modified. [391.1.26] merge 2008-05-07 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/foomodulegen3.py: Added. [391.1.25] missing file :-/ 2008-05-04 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [391.1.24] ignore methods that are private and not virtual or pure virtual, as they do not affect the bindings in any way and only clutter the generated python script. * pybindgen/gccxmlparser.py: [391.1.23] Always use Parameter.new and ReturnValue.new, to make the generated python code simpler * pybindgen/gccxmlparser.py: [391.1.22] pygen function-as-method and function-as-constructor * pybindgen/gccxmlparser.py: [391.1.21] pygen enums * pybindgen/gccxmlparser.py: [391.1.20] 'pygen' plain functions * pybindgen/gccxmlparser.py: [391.1.19] generate python code when abstract classes are detected * tests/wscript: [391.1.18] Fix foo3 module build system integration * pybindgen/module.py: [391.1.17] Allow changing module name after it is created * pybindgen/gccxmlparser.py: [391.1.16] missing register_methods() call 2008-05-04 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/foomodulegen_common.py: Added. * tests/foomodulegen-auto.py, * tests/foomodulegen.py: Modified. [391.1.15] Factor out the common portions of foomodulegen and foomodulegen-auto into a common python module 2008-05-04 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [391.1.14] stupid bug * tests/foomodulegen-auto.py, * tests/footest.py, * tests/wscript, * wscript: [391.1.13] Integrate generation of python scripts into unit testing framework. Naturally not all tests pass because work is not yet complete. * pybindgen/gccxmlparser.py: [391.1.12] python generation now takes care of class methods, constructors, and member variables; missing: functions * pybindgen/cppclass.py: [391.1.11] Add a CppClass mangled_full_name attribute. 2008-05-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [391.1.10] pygen: register types of nested modules * pybindgen/gccxmlparser.py: [391.1.9] make pylint a little happier * pybindgen/gccxmlparser.py, * tests/foomodulegen-auto.py, * tests/wscript: [391.1.8] First small steps to generate python scripts.. for now only classes at the root namespace.. 2008-05-01 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/c-hello/hellotest.py, * tests/footest.py: [391.1.7] Fix the built test modules path (waf check was testing installed modules!) * pybindgen/cppclass.py: [391.1.6] register class aliases with the module type registry as well * pybindgen/module.py: [391.1.5] refactoring * pybindgen/module.py: [391.1.4] Fix Module.cpp_namespace_prefix so that it never starts with :: 2008-04-30 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/module.py: [391.1.3] Allow also accessing enums/classes of nested modules from the main module * wscript: [391.1.2] clean files even when they are not to be compiled * pybindgen/module.py: [391.1.1] Add Module support for easy accessing classes and enums by name 2008-05-07 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/g, * examples/g/g.cc, * examples/g/g.h, * examples/g/g_test.py, * examples/g/modulegen.py, * examples/g/wscript, * examples/h, * examples/h/h.cc, * examples/h/h.h, * examples/h/h_test.py, * examples/h/modulegen.py, * examples/h/wscript: Added. * examples/wscript: Modified. [392] From Mathieu Lacage: a couple more examples (nested C++ namespaces, nested classes) 2008-04-30 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/a/wscript, * examples/b/wscript, * examples/c/wscript, * examples/d/wscript, * examples/e/wscript, * examples/f/wscript, * tests/c-hello/wscript, * tests/wscript: [391] Remove the workarounds for waf bug #37 * wscript: [390] Generate version before API docs * pybindgen/__init__.py: [389] Short introduction sections * examples/a/modulegen.py, * examples/b/modulegen.py, * examples/c/modulegen.py, * examples/d/modulegen.py, * examples/e/modulegen.py, * examples/f/modulegen.py: [388] Use Module.add_include 2008-04-29 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [387] Fix the documentation of __version__ * pybindgen/cppattribute.py, * pybindgen/cppclass.py, * pybindgen/enum.py, * pybindgen/function.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * pybindgen/settings.py, * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/pyobjecttype.py: [386] documentation work 2008-04-28 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/d, * examples/d/d.cc, * examples/d/d.h, * examples/d/d_test.py, * examples/d/modulegen.py, * examples/d/wscript, * examples/e, * examples/e/e.cc, * examples/e/e.h, * examples/e/e_test.py, * examples/e/modulegen.py, * examples/e/wscript, * examples/f, * examples/f/f.cc, * examples/f/f.h, * examples/f/f_test.py, * examples/f/modulegen.py, * examples/f/wscript: Added. * examples/wscript: Modified. [385] Add the d, e, and f examples from Mathieu 2008-04-28 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/utils.py: [384] Missing stddef.h import to get the definition of offsetof * pybindgen/cppclass.py: [383] Remove the typeid stuff from tp_traverse; it does not seem to be needed anymore (don't remember why I added it in the first place...). 2008-04-28 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/c, * examples/c/c.cc, * examples/c/c.h, * examples/c/c_test.py, * examples/c/modulegen.py, * examples/c/wscript: Added. * examples/wscript: Modified. [382] Add Mathieu's 'c' example 2008-04-28 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/base.py: [381] fix a small bug 2008-04-28 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/b, * examples/b/b.cc, * examples/b/b.h, * examples/b/b_test.py, * examples/b/modulegen.py, * examples/b/wscript: Added. * examples/wscript: Modified. [380] Add the 'b' example from Mathieu 2008-04-28 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/a, * examples/a/a.cc, * examples/a/a.h, * examples/a/a_test.py, * examples/a/modulegen.py, * examples/a/wscript: Added. * examples/wscript: Modified. [379] Add the 'a' example from Mathieu 2008-04-28 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/wscript, * tests/wscript, * wscript: Modified. * examples/c-hello: Renamed to tests/c-hello. * examples/foo.cc: Renamed to tests/foo.cc. * examples/foo.h: Renamed to tests/foo.h. * examples/foomodulegen-auto.py: Renamed to tests/foomodulegen- auto.py. * examples/foomodulegen.py: Renamed to tests/foomodulegen.py. * examples/footest.py: Renamed to tests/footest.py. [378] Move the former 'examples' into tests/, as they evolved to become more unit tests than examples. 2008-04-28 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/c-hello/hellomodulegen.py, * examples/foomodulegen-auto.py, * examples/foomodulegen.py, * wscript: [377] Add rules for generating API docs (epydoc). 2008-04-27 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [376] Tweak PYTHONPATH to consider latest WAF 1.4.1 python support changes. 2008-04-26 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/c-hello/wscript, * examples/wscript: [375] Fix a WAF version detection bug 2008-04-24 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [374] Add missing support for the combination of CppClass parameter wich has implicit conversions (to it) and also a default value. 2008-04-23 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/module.py, * pybindgen/utils.py: [373] Try to convert unicode objects to str if they're ascii, rather than asserting they're already str objects. 2008-04-21 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/base.py: [372] Handle optional parameter followed by non-optional better. * pybindgen/cppclass.py: [371] More correct handling of default values * pybindgen/typehandlers/stringtype.py: [370] Implement std::string default value. * README, * examples/c-hello/wscript, * examples/wscript: [369] Make it work with both WAF trunk and WAF 1.3.2 2008-04-20 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py: [368] Support C++ class reference parameters with default values (crazy as it may sound) * wscript: [367] Don't run gccxml based unit tests when gccxml is not available. 2008-04-19 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/c-hello/wscript, * examples/wscript, * wscript: [366] Some wscript tweaks to make it build with waf trunk (tested with rev. 3169) 2008-04-06 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [365] Implement parameter default value for CppClass parameters * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/doubletype.py, * pybindgen/typehandlers/inttype.py: [364] Add support for parameter optional values, so far implemented only for int and double parameter types. * pybindgen/typehandlers/base.py: [363] Emit a warning giving information on which type handler was being constructed when a TypeError exception is raised inside Parameter.new() or ReturnValue.new(). 2008-03-24 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [362] Remove the silly "Cannot add virtual methods if subclassing support was not enabled for this class" restriction. * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/gccxmlparser.py: [361] Improved algorithm for deciding if a class constructor can be generated due to pure virtual functions. 2008-03-23 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppmethod.py: [360] Add ability to add custom C++ class constructors. * pybindgen/cppclass.py: [359] Add CppClass.is_subclass method. 2008-03-22 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [358] Handle the utils.SkipWrapper exception when genering the constructor * pybindgen/cppclass.py: [357] Check for the have_pure_virtual_methods flag recursively in parent classes. * pybindgen/cppclass.py, * pybindgen/overloading.py, * pybindgen/typehandlers/base.py: [356] Support adding constructors which generate an error exception (and therefore should be just gracefully ignored). * pybindgen/cppclass.py: [355] Apparently, in C++ implicit conversions are not transitive. 2008-03-21 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/overloading.py, * pybindgen/typehandlers/base.py: [354] Re-implement implicit conversions using a non-combinatorial approach, for greater efficiency. 2008-03-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/overloading.py: [353] Add __repr__ to CppClass * pybindgen/gccxmlparser.py: [352] template typedefs are not supposed to be incomplete types * pybindgen/utils.py: [351] Handle NotSupportedError pybindgen errors gracefully. * pybindgen/gccxmlparser.py: [350] Fix bug with casting operators to non-class types. 2008-03-09 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/enum.py, * pybindgen/gccxmlparser.py: [349] C related bug fixes * examples/c-hello/hello.c, * examples/c-hello/hello.h: [348] Test the "typedef int Bool" handling. 2008-03-08 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [347] handle "typedef int Something;" * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py: [346] minor bug fixes 2008-03-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * NEWS: [345] Add news item (improved C support) * pybindgen/cppclass.py: [344] Cleanup delete_code generation, fix unused tmp variable. * examples/c-hello/hellotest.py: [343] fix the unit tests * examples/c-hello/hellomodulegen.py: [342] cleanup * examples/c-hello/hellomodulegen.py, * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py: [341] Add support for changing the name by which a class is registered in python side 2008-03-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/c-hello/hellotest.py: Added. * examples/c-hello/hellomodulegen.py, * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/stringtype.py, * wscript: Modified. [340] is_constructor_of annotation; unit tests (not fully working yet) 2008-03-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/cppmethod.py: [339] Add support for c-function-as- constructor (for is_constructor_of annotation). * examples/c-hello/hello.h, * examples/c-hello/hellomodulegen.py, * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py: [338] Refactoring to support C structs as classes (typedef struct _Foo Foo). Work in progress... * pybindgen/gccxmlparser.py: [337] Add support for pre/post scan hooks. 2008-02-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/c-hello/hello.c, * examples/c-hello/hello.h, * examples/c-hello/wscript: [336] Add a sample C API based on functions operating over structures in a object oriented way; goal is to support this API in the future (not yet done) * README: [335] Update README 2008-02-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/c-hello, * examples/c-hello/hello.c, * examples/c-hello/hello.h, * examples/c-hello/hellomodulegen.py, * examples/c-hello/wscript: Added. * examples/wscript, * wscript: Modified. [334] Add a simple pure C example module. 2008-02-10 Gustavo J. A. M. Carneiro <gjc@gnome.org> * README: [333] cleanup * examples/foomodulegen.py, * pybindgen/cppclass.py: [332] Add support for helper class hook functions and adding custom methods to helper classes. * examples/wscript: [331] Build extensions with the 'plugin' object type; should fix Mac OS X build. 2008-02-05 Gustavo J. A. M. Carneiro <gjc@gnome.org> * NEWS: [330] Update NEWS * examples/foo.h, * examples/foomodulegen-auto.py, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py: [329] Add support for customising an 'instance creation function', for cases when creating instances with new ClassName does not work (*cough*ns-3*cough*). * pybindgen/wscript, * wscript: [328] cleanup * wscript: [327] Improve unit tests printed messages * tests/wscript, * wscript: [326] Make sure the pure python unit tests only run at the end of the build. Makes 'waf check' work even if the project was not previously built. 2008-01-26 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * examples/foo.h, * tests/test-generation.py: [325] MSVC compatibility fixes. 2008-01-25 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppmethod.py: [324] Fix typo in virtual method wrapper name 2008-01-24 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * NEWS, * README: [323] Update NEWS and README * pybindgen/cppattribute.py, * pybindgen/cppclass.py, * pybindgen/enum.py, * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/codesink.py, * pybindgen/utils.py: [322] Fix incompatibilities with pygccxml 0.9 and Python 2.4 (I was testing with pygccxml HEAD and Python 2.5). * examples/wscript, * tests/wscript, * wscript: [321] fix some build script bugs * pybindgen/cppclass.py, * pybindgen/typehandlers/base.py: [320] Fix try: .. except: .. finally: .. constructs to make them compatible with Python < 2.5. 2008-01-24 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * waf.bat: Added. [319] Add batch file for Windows users. 2008-01-14 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/enum.py: [318] Fix the generation of the Enum full_name to ensure it starts with ::, to be inline with the last changeset. 2008-01-13 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [317] Fix lookup of enum types; minor bug fix (forgot to check for pure virtual method that couldn't be generated, in one place) 2008-01-06 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [316] Don't add :: prefix to C++ fundamental types * pybindgen/cppclass.py: [315] Discover the typeid map variable name as early as possible * pybindgen/cppclass.py, * pybindgen/module.py, * tests/test-generation.py: [314] Generate the typeid maps in the forward declarations section. * pybindgen/module.py: [313] Allow calling Module.generate_forward_declarations early, make a subsequent call to Module.generate() not generate the declarations again. * pybindgen/typehandlers/base.py: [312] fix bad assertion * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py: [311] Register class aliases also in the low level typehandlers.base type registry, in addition to the gccxmlparser one. * pybindgen/gccxmlparser.py: [310] Don't restrict exported symbols. 2008-01-05 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [309] Split the gccxmlparser.ModuleParser.parse() method into several smaller methods, to allow greater customization and flexibility. * pybindgen/gccxmlparser.py: [308] cleanup 2008-01-04 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [307] Don't wrap 'peekref' methods * pybindgen/cppclass.py: [306] Fix issue with templated classes being registered with invalid name. * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py: [305] Add general support for templated classes (previously only classes with non-templated typedefs were allowed). * pybindgen/overloading.py: [304] Fix method def flags handling of the aggregator wrapper generated by overloading.py 2008-01-03 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foomodulegen-auto.py, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppmethod.py, * pybindgen/function.py: [303] Add support for custom method wrappers. * examples/foomodulegen-auto.py, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppmethod.py, * pybindgen/function.py, * pybindgen/overloading.py, * pybindgen/typehandlers/base.py: [302] Add support for custom function wrappers. 2008-01-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/base.py: [301] Fix bug: printing bogus error message for virtual methods returning void/None. * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py: [300] Add peekref_method support, to solve an issue related to virtual methods, user classes, and reference counting. * pybindgen/cppmethod.py: [299] In classes' tp_init wrappers, create an instance of the helper class only if called from a subclass, else create a regular pure C++ original class. * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py: [298] More effectively disable the helper class when pure virtual methods are found that cannot be generated. * pybindgen/cppmethod.py: [297] Don't call parent virtual if it is private * pybindgen/cppclass.py: [296] Don't create a helper class if is_singleton is true (because the destructor will likely be private) * pybindgen/gccxmlparser.py: [295] cleanup * pybindgen/gccxmlparser.py: [294] Don't crash on Class** types * examples/foo.h, * examples/foomodulegen.py, * pybindgen/cppmethod.py, * pybindgen/gccxmlparser.py: [293] Support protected constructors * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/gccxmlparser.py: [292] Add support for protected/private virtual methods. 2008-01-01 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [291] Remove the debug commented fprintf's * pybindgen/module.py: [290] Module init functions should just return on error, not call PyErr_Print() 2007-12-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [289] Make the tp_name slot of classes contain the full dotted notation of the type name, in order to pydoc not ignore the classes. 2007-12-30 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [288] Using the helper class as replacement for the real class, when not dealing with a real subclass, is nothing but trouble. * examples/foomodulegen.py, * pybindgen/cppclass.py: [287] Don't inherit default constructors by default; the gccxml frontend already does that by other means; now the caller has to call a method if he wants this behaviour. * pybindgen/cppclass.py, * pybindgen/cppmethod.py: [286] Use CppClass.pystruct instead of name wherever possible to avoid name conflicts. * pybindgen/gccxmlparser.py: [285] Don't wrap nested classes or enums that are private. * pybindgen/cppclass.py, * pybindgen/enum.py, * pybindgen/gccxmlparser.py: [284] Fix problems with nested classes/enums and name clashes * pybindgen/cppclass.py: [283] Fix accidental commit error. 2007-12-28 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py, * pybindgen/enum.py, * pybindgen/gccxmlparser.py, * tests/test-generation.py: [282] Nested (inside classes) classes and enums. * pybindgen/cppattribute.py: [281] Fix bug in CppInstanceAttributeSetter * pybindgen/typehandlers/inttype.py: [280] more integer type support.. * pybindgen/typehandlers/inttype.py: [279] Match int pointers with const; check that direction is given, only guess in the case of const int *. * pybindgen/typehandlers/inttype.py: [278] Add 'long long unsigned int' as alias to uint64_t * pybindgen/typehandlers/inttype.py: [277] Add some support for int8_t* and uint8_t* parameters. * pybindgen/typehandlers/inttype.py: [276] Add support for the type 'int64_t' (aka long long) * pybindgen/gccxmlparser.py, * pybindgen/overloading.py, * pybindgen/typehandlers/base.py: [275] Detect the problem of adding a overloaded method with multiple method flags (e.g. instance method vs static method with the same name) 2007-12-28 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: [274] Support annotation to ignore whole classes. * pybindgen/cppclass.py: [273] Get function-as-method working again (had been recently broken). * examples/foo.h, * pybindgen/overloading.py: [272] Implicit conversions for references only work when the references are const. * pybindgen/gccxmlparser.py: [271] Fix bad annotations error message * pybindgen/gccxmlparser.py: [270] Don't traceback when template_instance_names is not given 2007-12-27 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/gccxmlparser.py: [269] Add support for custom names of template instantiation methods. 2007-12-27 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/utils.py: [268] Fix name mangling to also replace : with _ 2007-12-26 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/overloading.py: [267] Support implicit conversions with pass-by-reference parameters. * pybindgen/typehandlers/inttype.py: [266] Add UInt16Param 2007-12-26 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/typehandlers/inttype.py: [265] Add support for the unsigned long long / uint64_t type * pybindgen/gccxmlparser.py: [264] Add support for typedefs to templated classes. * pybindgen/cppmethod.py: [263] in void return virtual method reverse wrappers, don't call the parent virtual if pure virtual * pybindgen/cppclass.py: [262] don't generate a 'parent caller' method if it's a pure virtual method. * pybindgen/cppclass.py: [261] Bug fix: don't write declaration for a virtual method that cannot be generated. * pybindgen/typehandlers/booltype.py: [260] bool type fixes * pybindgen/typehandlers/base.py: [259] Avoid conflicts of local variables with ForwardWrapper parameters. * pybindgen/cppclass.py: [258] Fix typo. * examples/foo.h: [257] Fix 'class has virtual functions but non- virtual destructor' warning 2007-12-25 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/cppmethod.py: [256] bug fix related to excluded parent callers * pybindgen/cppclass.py: [255] re-register the class type handlers with class full name, once it becomes known * tests/test.py: [254] update test to new exception * pybindgen/cppclass.py: [253] const fixes * pybindgen/cppmethod.py: [252] s/Py_Fatal/Py_FatalError/ * pybindgen/cppmethod.py: [251] Fix string interpolation error- * pybindgen/utils.py: [250] Don't catch TypeError, ValueError * pybindgen/cppclass.py: [249] Support a is_const optional parameter in CppClassReturnValue * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/base.py: [248] Don't raise TypeError except for real programming errors, and don't catch it either (avoids the error hiding anti-pattern). * pybindgen/cppclass.py: [247] Completely disable (for real, this time) the helper class when a pure virtual method is missing. * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/typehandlers/base.py: [246] Fix some problems with error return path of the virtual method proxies. * pybindgen/gccxmlparser.py: [245] Check if instance/class attributes are const. * pybindgen/cppattribute.py, * pybindgen/cppclass.py: [244] static attribute bug fix * pybindgen/gccxmlparser.py: [243] Notice private trivial and copy constructors. 2007-12-24 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppattribute.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/typehandlers/base.py: [242] 'REQUIRES_ASSIGNMENT_CONSTRUCTOR' fixes * pybindgen/cppmethod.py: [241] Add missing braces in generated C code. * pybindgen/gccxmlparser.py: [240] Notice private pure virtual methods. * pybindgen/gccxmlparser.py: [239] Make the gccxml scanner add implicit copy constructors when not explicitly declared. * pybindgen/cppclass.py: [238] missing Py_XDECREF... * pybindgen/cppclass.py, * pybindgen/cppmethod.py: [237] Make the constructors of the helper class exactly the same as in the base class (substitution principle). 2007-12-23 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/gccxmlparser.py: [236] Detect more cases where code was being generated which wouldn't compile due to missing virtual method implementation; handle them gracefully. * pybindgen/cppclass.py: [235] const fixes * pybindgen/cppmethod.py: [234] Put spaces inside the *_cast< ... > braces, to make the C++ compiler happier (take 2). * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py: [233] Add correct contextual information to virtual method generation errors. * pybindgen/cppclass.py: [232] Put spaces inside the *_cast< ... > braces, to make the C++ compiler happier. * pybindgen/cppclass.py, * pybindgen/overloading.py, * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/codesink.py: [231] Error handling for virtual methods. * examples/foo.h, * pybindgen/gccxmlparser.py: [230] improved error handling in gccxmlparser * pybindgen/overloading.py: [229] better error handling of overloaded wrappers * examples/foo.h, * examples/foomodulegen.py, * pybindgen/cppclass.py, * pybindgen/module.py, * pybindgen/settings.py, * pybindgen/utils.py: [228] Add a framework for letting the user handle errors of functions and methods but possibly just ignore them and move on. 2007-12-22 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [227] Raise CodeGenerationError, not ValueError, where appropriate. * pybindgen/cppclass.py: [226] honor CppClas.cannot_be_constructed more thoroughly * pybindgen/gccxmlparser.py: [225] look for protected pure virtual functions, disable the class constructor if any is found * examples/foo.h, * pybindgen/gccxmlparser.py: [224] Add 'ignore' annotation support, allowing to ignore functions and methods. 2007-12-21 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/utils.py: [223] handle template arguments with spaces (like 'long int') * examples/foo.cc, * examples/foo.h, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/function.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * pybindgen/utils.py: [222] scan for and support functions and methods with explicit template parameters * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/function.py, * pybindgen/typehandlers/base.py: [221] handle C++ class return values by inline 'FooBar retval = something(...);', for classes that have a private constructor and a friend factory function 2007-12-20 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/overloading.py, * pybindgen/typehandlers/base.py: [220] Add support for overloaded virtual methods. * pybindgen/overloading.py: [219] fix a bug in an assertion expression * pybindgen/gccxmlparser.py: [218] Add whitelist_paths and include_paths options to gccxml parser * pybindgen/cppclass.py: [217] handle Class& return values (same as value return) * pybindgen/gccxmlparser.py: [216] gccxml 0.9, unlike 0.7, does not explicitly report inheritted trivial constructors; thankfully pygccxml comes to the rescue! 2007-12-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/test-generation.py: [215] fix also the generation unit test * pybindgen/cppattribute.py, * pybindgen/cppmethod.py, * pybindgen/typehandlers/base.py: [214] Silence GCC 4.2 warnings: 'warning: deprecated conversion from string constant to ‘char*’' === 0.8.0 === 2007-12-01 Gustavo J. A. M. Carneiro <gjc@gnome.org> * NEWS: [213] Update NEWS for the new release * examples/wscript, * wscript: [212] Only run the autogeneration tests if gccxml and pygccxml are detected in the system. * examples/foo.h: [211] Make one of the annotations multi-line, for demonstration purposes. * examples/foo.h, * pybindgen/gccxmlparser.py: [210] Change the annotations magic marker from -*- to -#-, to avoid confusion with emacs modelines; Add support for annotations inside C style comments (/* -#- ... -#- */). 2007-11-26 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foo.h, * pybindgen/gccxmlparser.py: [209] Add support for a automatic_type_narrowing annotation * pybindgen/gccxmlparser.py: [208] Autodetect implicit conversions. 2007-11-25 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foo.h, * pybindgen/gccxmlparser.py: [207] Add annotation to override function name * examples/foo.h, * pybindgen/gccxmlparser.py: [206] function as method annotation * examples/foo.h: [205] Add more annotations in the example header file. * pybindgen/gccxmlparser.py: [204] Add support for the 'custodian' annotation. * pybindgen/typehandlers/base.py: [203] Fix a 'double const' problem. * pybindgen/gccxmlparser.py: [202] Warn about unused annotations. * examples/foo.h: [201] Add some of the missing annotations * pybindgen/typehandlers/stringtype.py: [200] Add some more string alias type names, to make it compatibly with pygccxml types. 2007-11-25 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foomodulegen-auto.py: Added. [199] Missing file from previous commit (autoscan unit test) 2007-11-25 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [198] In CppClassPtrReturnValue, check for NULL pointer, map into None * pybindgen/gccxmlparser.py: [197] make warnings include the header file name/line being scanned when appropriate, instead of pointing to pybindgen sources * examples/footest.py, * examples/wscript, * wscript: [196] Unit test automatic scanning and generation of the example API. * pybindgen/gccxmlparser.py, * pybindgen/module.py: [195] Fix bug in gccxml scanning of submodules * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/typehandlers/base.py: [194] Write the helper class for supporting virtual methods in two stages. Only a simple class declaration/definition is generated in the "forward declarations" section, while the method bodies are generated later. This avoids problems of the helper class needing to access Python object structures that are going to be defined later. Some refactoring involved to accomplish this. 2007-11-24 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/base.py: [193] fix typo 2007-11-23 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * tests/test-generation.py, * tests/test.py: [192] Fix unit tests * pybindgen/enum.py: [191] Strip leading :: from the enum full_name * pybindgen/gccxmlparser.py: [190] Strip leading :: from types before looking them up on the standard type registry * pybindgen/typehandlers/base.py: [189] Don't canonicalize names anymore (it is C++ specific, and even in C++ causes problems with fundamental types, such as int, bool, and double) * pybindgen/cppmethod.py, * pybindgen/function.py, * pybindgen/settings.py, * pybindgen/typehandlers/base.py: [188] Add unblock_threads option * pybindgen/typehandlers/base.py: [187] Buf fixes 2007-11-22 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/typehandlers/inttype.py: [186] handle uint32_t type (same as unsigned int) 2007-11-22 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/base.py, * tests/test.py: [185] fix regression in pointer transformations * pybindgen/cppclass.py: [184] fix a regression in virtual methods 2007-11-21 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foomodulegen.py, * pybindgen/typehandlers/base.py: [183] fix type transformations regression * pybindgen/module.py: [182] bug fix 2007-11-21 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/typehandlers/inttype.py: [181] Fix stupid bug in uint16_t and uint8_t type handlers * pybindgen/typehandlers/inttype.py: [180] Implement uint16_t and uint8_t type handlers * pybindgen/gccxmlparser.py, * pybindgen/typehandlers/stringtype.py: [179] recognize type std::string const & * pybindgen/gccxmlparser.py: [178] Don't wrap incref/decref methods. * pybindgen/gccxmlparser.py: [177] Free function annotations. * pybindgen/gccxmlparser.py: [176] Class annotations * pybindgen/cppclass.py: [175] Fix C++ helper class generation * examples/foo.h, * pybindgen/gccxmlparser.py: [174] Annotations * pybindgen/cppclass.py, * pybindgen/typehandlers/base.py: [173] fix a variable declaration with invalid name * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py: [172] Automatically disable the class constructor when a pure virtual method could not be generated, to avoid compilation errors. 2007-11-20 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/typehandlers/floattype.py: Added. * pybindgen/typehandlers/__init__.py: Modified. [171] Add float type handlers 2007-11-20 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/gccxmlparser.py: [170] Scan class methods and attributes 2007-11-19 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/gccxmlparser.py, * pybindgen/module.py, * pybindgen/typehandlers/base.py: [169] More work in progress for the pygccxml based header file scanner. 2007-11-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/gccxmlparser.py: Added. [168] Start of a pygccxml based source code scanner; so far it parses enums and free functions, and only handles parameters that don't require information other than type and name. 2007-11-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/base.py: [167] Canonicalize (add a :: prefix if it doesn't have one already) registered type names. 2007-11-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/utils.py: Added. * pybindgen/__init__.py: Modified. [166] Move the function write_preamble() to a separate source file, utils.py 2007-11-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * pybindgen/cppclass.py: [165] merge 2007-11-16 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * pybindgen/cppclass.py: [163.1.1] Add support for singleton classes (which have a private destructor) 2007-09-27 Gustavo J. A. M. Carneiro <gjc@gnome.org> * README: [164] Basic enumerations done, update README Planned section. 2007-09-25 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/enum.py: Added. * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/__init__.py, * pybindgen/module.py: Modified. [163] Add simplistic support for enum types. Could be improved... 2007-09-25 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * README: [162] Update planned/completed features. 2007-09-24 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/typehandlers/stringtype.py: [161] s/String/CString/ * pybindgen/typehandlers/stringtype.py: [160] Rename StringParam to CStringParam (less ambiguity) * pybindgen/typehandlers/stringtype.py: [159] Add missing get_c_error_return() impl in StringReturn * pybindgen/typehandlers/inttype.py, * pybindgen/typehandlers/stringtype.py: [158] Patch from Mark Lee (Bug #144360): add support for more basic types (unsigned int, char, string) 2007-09-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [157] Update to WAF trunk API. * pybindgen/cppclass.py: [156] fix accidental garbage introduced 2007-09-13 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/typehandlers/pyobjecttype.py: Added. * pybindgen/cppclass.py, * pybindgen/typehandlers/__init__.py, * tests/test-generation.py: Modified. [155] Add support for PyObject* types (untested) 2007-09-09 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py, * pybindgen/function.py: [154] Fix Bug #138344: Generic C++ functions can't be assigned to a method in python. 2007-09-08 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppattribute.py, * pybindgen/cppclass.py: [153] Support C++ instance attributes through getter/setter methods (Bug #136993) === 0.7.0 === 2007-09-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * NEWS: [152] Update NEWS 2007-08-30 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py: [151] Implement and test CppClassPtrParameter c_to_python conversion. * examples/foomodulegen.py, * pybindgen/cppclass.py: [150] Add a missing const_cast if the parameter is const. * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py, * pybindgen/typehandlers/base.py: [149] Support for const parameters; support virtual proxy wrappers with C++ class reference parameters. 2007-08-29 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py: [148] Implement convert_c_to_python of CppClassParameter; add corresponding unit test using virtual methods. * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/function.py: [147] implement custodian/ward in cpp pointer parameters * pybindgen/typehandlers/base.py: [146] Add a _before_return_hook hook method of forward wrappers, that can be used to insert code to post- process parameters and return value. * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py: [145] Add unit tests for parameter-as-ward forthcoming implementation. * pybindgen/cppclass.py: [144] Add custodian API to CppClassPtrParameter; refactor CppClassReturn*, adding a common base class CppClassReturnValueBase. 2007-08-28 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py: [143] implement custodianship of C++ class pointer return types, and fix a couple of bugs on the way. * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py: [142] Add possible API and unit tests for pointer-to-class return value with a custodian. 2007-08-27 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/footest.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/function.py, * pybindgen/overloading.py, * tests/test.py: [141] Implement implicit conversions. 2007-08-26 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py: [140] Implicit conversions only make sense in by-value parameter passing. * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py: [139] Add API and unit tests for the implicit conversions support soon to be implemented. 2007-08-25 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foomodulegen.py, * pybindgen/cppattribute.py, * pybindgen/cppclass.py, * pybindgen/function.py: [138] Assorted C++ namespace support fixes. * wscript: [137] Add waf option to generate pybindgen/version.py * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/function.py, * pybindgen/module.py, * tests/test-generation.py: [136] Add propert support for C++ namespaces and Python submodules. 2007-08-24 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/function.py: [135] Support wrapping namespaced functions, in an ugly preliminary way. * examples/footest.py, * pybindgen/cppclass.py: [134] Fix storing subclass wrapper in a C++ library and later getting it back with the original wrapper preserved. 2007-08-23 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/footest.py: [133] test_subclassable_store_and_take_back * pybindgen/cppclass.py: [132] Use PyObject_GC_New instead of PyObject_New when appropriate. * pybindgen/cppclass.py: [131] Initialize wrapper->inst_dict everywhere * pybindgen/function.py: [130] Avoid 'unused parameter' warnings in Functions * examples/footest.py: [129] Make the test_subclass_with_virtual_transfer_ptr a bit more comprehensive. * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/__init__.py, * pybindgen/cppmethod.py: [128] Fix problems with invoking virtual methods after transfer of ownership to a C++ library. * pybindgen/cppclass.py: [127] Check that self->obj isn't NULL before probing its typeid in tp_traverse 2007-08-22 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py: [126] Add some more tests to check garbage collection (not only python wrapper but also C++ object) * pybindgen/cppclass.py: [125] Fix bad code indentation * pybindgen/cppclass.py: [124] Fix reference leak in user subclass * pybindgen/cppclass.py: [123] Check that programmer doesn't add virtual methods to a class with subclassing disabled. * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/typehandlers/base.py: [122] Initial take on C++ virtual method support, with a python reference leak left unresolved 2007-08-21 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [121] break some too long lines 2007-08-19 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/footest.py: [120] Add a garbage collection test * examples/foomodulegen.py, * pybindgen/__init__.py, * pybindgen/cppattribute.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/function.py: [119] Implement allow_subclassing; fix PYBINDGEN_UNUSED usage. * pybindgen/cppclass.py, * pybindgen/settings.py: [118] Add a allow_subclassing option to C++ classes, although it is not yet implemented. 2007-08-18 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [117] fix missing compiler error message * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py: [116] Add a test case for the hidden subclass pointe return problem. * pybindgen/cppattribute.py, * pybindgen/cppmethod.py, * pybindgen/function.py: [115] Fix bad placement of PYBINDGEN_UNUSED which doesn't compile with gcc 2.95 * pybindgen/cppclass.py: [114] Write a dedicated pybindgen::TypeMap class to contain all the python-wrapper-from-typeinfo logic, and make it work for compilers without cxxabi.h * tests/test.py: [113] Get doctests from pybindgen.module * pybindgen/module.py: [112] Add the API Module.declare_one_time_definition() * pybindgen/overloading.py: [111] Insert newlines between overloaded wrappers * pybindgen/typehandlers/codesink.py: [110] Fix CodeSink.writeln() inserting now two blank lines instead of one. * pybindgen/typehandlers/codesink.py: [109] Fix a CodeSink bug causing empty lines to be discarded === 0.6.0 === 2007-08-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [108] fix waf dist to update version * NEWS: [107] Update NEWS * wscript: [106] Don't try to get version from bzr until after we know we must write a version.py file. * pybindgen/cppclass.py: [105] When performing C++ type narrowing, use abi::__si_class_type_info to search up in the single inheritance tree until a match is found. This allows type narrowing to still work as much as possible even in the presence of unregistered classes. * pybindgen/cppclass.py: [104] Move the generated typeid map variable to the top of the module, to allow early wrappers to refer to it. * pybindgen/cppmethod.py: [103] Add support for calling methods with explicit template parameters. 2007-08-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/settings.py: [102] Implement the automatic-c++-return- type-narrowing blueprint. * pybindgen/module.py: [101] Add Module.add_include API and Module.header member (codesink) 2007-08-13 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/overloading.py: [100] Add support for overloaded C++ class constructors * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py, * pybindgen/cppmethod.py, * pybindgen/function.py, * pybindgen/overloading.py: [99] Add support for overloaded C++ class methods. 2007-08-13 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/overloading.py: Added. * pybindgen/function.py, * pybindgen/module.py: Modified. [98] Refactor OverloadedFunction to pave way to reusing the same code for overloading also methods and constructors 2007-08-13 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/function.py: [97] Add a bunch of comments to OverloadedFunction.generate, since that code was getting difficult to read. * pybindgen/wscript, * wscript: [96] Better handling of version.py 2007-06-18 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/footest.py, * pybindgen/function.py: [95] Much improved parameter parsing error reporting of overloaded functions. * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/function.py, * pybindgen/module.py, * pybindgen/typehandlers/base.py: [94] Support overloaded functions. 2007-06-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [93] Refactoring. === 0.5.0 === 2007-06-16 Gustavo J. A. M. Carneiro <gjc@gnome.org> * AUTHORS: [92] Add my other email address. * NEWS: [91] Update NEWS. * pybindgen/cppclass.py: [90] Support 'const' C++ attributes. * pybindgen/cppclass.py: [89] Implement some C++ class as return value reverse wrappers. * wscript: [88] Add -fno-strict-aliasing when compiling with gcc (required by Python). * examples/footest.py, * pybindgen/cppattribute.py: [87] Get static attribute setters finally working. * examples/footest.py, * pybindgen/cppattribute.py, * pybindgen/cppclass.py: [86] implement C++ class static attribute through a metaclass rather than descriptor; unfortunately static attribute setters are still not working for some reason. 2007-06-11 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * wscript: [85] Run examples/footest.py on waf check. 2007-06-10 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/footest.py, * pybindgen/cppattribute.py, * pybindgen/cppclass.py, * pybindgen/typehandlers/base.py: [84] Add code for static attribute setters, which unfortunately doesn't work due to Python limitations :-( * examples/footest.py, * pybindgen/cppattribute.py, * pybindgen/cppclass.py, * pybindgen/typehandlers/base.py: [83] Generate setters for C++ class instance attributes. 2007-06-10 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppattribute.py, * pybindgen/cppmethod.py: Added. * pybindgen/cppclass.py: Modified. [82] C++ code reorganization, split into different files to make cppclass.py smaller. 2007-06-10 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py: [81] ReturnValue s/retval/self.value/ fixes * tests/test-generation.py: [80] Test all combinations of caller_owns_return and transfer_ownership. * pybindgen/cppclass.py: [79] tiny bug fix * tests/test-generation.py: [78] improve tests to cover c++ class type handlers * pybindgen/cppclass.py: [77] Use the new ReturnValue.value attribute, instead of #define retval ... #undef hacks. * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/booltype.py, * pybindgen/typehandlers/doubletype.py, * pybindgen/typehandlers/inttype.py, * pybindgen/typehandlers/stringtype.py: [76] Define a 'value' attribute in ReturnValue objects, and use it instead of the hardcoded 'retval' variable name. * pybindgen/typehandlers/doubletype.py, * pybindgen/typehandlers/inttype.py, * pybindgen/typehandlers/stringtype.py, * tests/test-generation.py: [75] Fix Parameter implementations to use self.value instead of self.name where appropriate. * pybindgen/typehandlers/base.py: [74] Fix missing self.declarations in CodeBlock. * pybindgen/typehandlers/base.py: [73] Simplify set/get_value/lvalue. It's becoming way too complicated, and not possible to guarantee correct code. Better just to have a simple 'value' attribute for now, defaulting to the parameter name. 2007-06-09 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/cppclass.py, * pybindgen/module.py, * pybindgen/typehandlers/base.py: [72] Make CodeBlock have an associated DeclarationsScope, so that you can call declare_variable on it. Add [gs]et_l?value() methods to Parameter, to dissociate the value/lvalue of a parameter from its name. Actual type handlers still need to be fixed, though. * pybindgen/typehandlers/base.py: [71] Add CodeBlock.indent/unindent methods (simple proxies to the code sink methods). === 0.4.0 === 2007-06-07 Gustavo J. A. M. Carneiro <gjc@gnome.org> * NEWS: [70] Update NEWS for new release. * pybindgen/cppclass.py: [69] Don't delete self->obj in the destructor if no usable constructor exists; prevents compilation error with singleton classes and private destructor. * pybindgen/cppclass.py, * pybindgen/typehandlers/base.py: [68] More efficient attribute getters. * examples/footest.py, * pybindgen/cppclass.py, * pybindgen/module.py: [67] Refactor class registration and generation; fix C++ static attribute getter to make it work from the class itself. * examples/foo.cc, * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py: [66] API for wrapping C++ instance and static attributes; implement getter for instance attribute; getter for static attributes not fully working yet. None of the setters implemented. * pybindgen/__init__.py, * pybindgen/cppclass.py, * pybindgen/function.py, * pybindgen/typehandlers/base.py: [65] Fix -Wall -Wextra compiler warnings. * examples/foo.h: [64] fix compiler warnings * tests/wscript, * wscript: [63] Enable more compiler warnings. * examples/wscript, * tests/wscript: [62] win32 build fixes 2007-06-06 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/typehandlers/base.py: [61] Make sure the method flags are correct even when parameters added in write_method_call. * pybindgen/typehandlers/base.py: [60] Small refactoring of ForwardWrapperBase.generate_body to allow the generate_call() virtual method to add new parse parameters that were not previously declared. * pybindgen/cppclass.py, * pybindgen/typehandlers/base.py: [59] add assertion to detect when one constructor parameter is missing a name; add option to force forward wrappers to use PyArg_ParseTuple or PyArg_ParseTupleAndKeywords * pybindgen/typehandlers/doubletype.py: [58] missing param name in double type handler 2007-06-05 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foo.h, * examples/foomodulegen.py, * pybindgen/cppclass.py: [57] Add support for C++ static methods. * pybindgen/cppclass.py: [56] Post-fix to 'add option to prefix global declarations with a name'. 2007-06-05 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/settings.py: Added. * pybindgen/cppclass.py: Modified. [55] Add option to prefix global declarations with a name. 2007-06-04 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foo.h, * examples/foomodulegen.py, * pybindgen/cppclass.py, * pybindgen/typehandlers/base.py, * tests/test.py: [54] Fix the type transformations API, implement transformations for C++ class pointer types, and add example. 2007-06-04 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/typehandlers/base.py, * tests/test.py: [53] Add basic infrastructure for type transformations * examples/foomodulegen.py, * pybindgen/typehandlers/base.py: [52] API change, to prepare for type handler transformations: Parameter('ctype', ...) becomes Parameter.new('ctype', ...), idem for ReturnValue. * examples/foo.h: [51] Add missing destructor in SomeObject; fixes all memory leaks reported by valgrind. * examples/foo.h: [50] fix class refcount impl. * pybindgen/cppclass.py: [49] safer tp_dealloc * pybindgen/typehandlers/base.py: [48] Fix Python 2.6 DeprecationWarning: object.__new__() takes no parameters. * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py: [47] Add support for refence counted C++ classes. === 0.3.0 === 2007-06-03 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foomodulegen.py, * pybindgen/__init__.py, * tests/test-generation.py: [46] Add a new pybindgen.write_preamble() API, to write the #include <Python.h> and some other stuff needed to compile with Python < 2.5. 2007-06-03 Gustavo J. A. M. Carneiro <gjc@gnome.org> * NEWS: Added. [45] Add a NEWS file, to summarise the project progress 2007-06-03 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/voidtype.py: [44] make the void return type not return an explicit Py_None, to prevent a bug hwere None is being returned as first element of tuple when there are out/inout parameters * examples/foo.h, * examples/foomodulegen.py, * examples/footest.py, * pybindgen/cppclass.py: [43] implement pass class object by reference (one test case failing atm due to another bug) * pybindgen/cppclass.py: [42] workaround pylint stupidity 2007-06-03 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/footest.py: Added. [41] add some unit tests for the built example 2007-06-03 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/base.py: [40] fix bug: should not call PyArg_ParseTuple[AndKeywords] when there are no parameters * examples/foomodulegen.py, * pybindgen/cppclass.py: [39] more c++ class as parameter/return handling * pybindgen/cppclass.py: [38] C++ class constructor inheritance fixes. * pybindgen/cppclass.py: [37] complete the refactoring in the last commit * pybindgen/cppclass.py, * pybindgen/typehandlers/base.py: [36] Refactor class methods to make them independent from the class until generation time. * wscript: [35] fix the 'extra version' number; it should be the last revision, not the revision corresponding to the last tag. * examples/foomodulegen.py, * pybindgen/cppclass.py, * pybindgen/module.py: [34] c++ subclassing; c++ class forward parameter pass-by-value * examples/foo.h: [33] Add example interfaces to test a bunch of new stuff (c++ subclassing, class parameter handling) 2007-06-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [32] comment out debug print * wscript: [31] cache bzr version information * examples/wscript: [30] don't install the example python module === 0.2.0 === 2007-06-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * README: Added. * .bzrignore: Modified. [29] Add a README file 2007-06-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * wscript: [28] fix typo * wscript: [27] add bzr revno as an extra version item for non-release revisions * examples/foo.h, * pybindgen/cppclass.py: [26] fix cpp class wrappers (missing tp_alloc/new/free) * wscript: [25] automatically copy WAF to the dist tarball * wscript: [24] fix the version.py file generation 2007-06-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/foomodulegen.py: Added. * examples/wscript, * pybindgen/wscript, * tests/test-generation.py, * tests/wscript, * wscript: Modified. [23] refactor the build system to avoid generating .py[co] files in the source tree (which WAF doesn't like) 2007-06-02 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/base.py: [22] Add a DIRECTION_INOUT convenience alias 2007-06-01 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/cppclass.py: Added. * examples/foo.h, * examples/wscript, * pybindgen/__init__.py, * pybindgen/module.py, * pybindgen/typehandlers/base.py: Modified. [21] add support for C++ classes; some minor bug remaining, though. 2007-06-01 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/wscript, * wscript: [20] lazily compute VESION; write a pybindgen/version.py file in configure * wscript: [19] cleanup === 0.1.2 === 2007-06-01 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * wscript: [18] get version from bzr tag or revision 2007-06-01 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> * pybindgen/wscript: Added. * wscript: Modified. [17] actually install the python sources === 0.1.1 === 2007-05-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * generate-ChangeLog: Added. * .bzrignore, * wscript: Modified. [16] add changelog generation 2007-05-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples/wscript: [15] workaround a WAF bug 2007-05-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * AUTHORS, * COPYING: Added. [14] add copyright info 2007-05-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * examples, * examples/foo.cc, * examples/foo.h, * examples/wscript: Added. * tests/wscript, * wscript: Modified. [13] Add an example 2007-05-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/__init__.py: [12] export the most important objects directly in the toplevel package namespace * pybindgen/function.py: [11] fix bad wrapper prototype 2007-05-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/module.py, * tests/test-generation.py: Modified. * pybindgen/functionwrapper.py: Renamed to pybindgen/function.py and modified. [10] FunctionWrapper renamed to Function, module name changed accordingly. 2007-05-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/module.py: Added. * pybindgen/functionwrapper.py, * pybindgen/typehandlers/base.py, * tests/test-generation.py: Modified. [9] add a module generator class 2007-05-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/codesink.py: [8] CodeSink.writeln now inserts a blank if no parameter given * pybindgen/typehandlers/base.py: [7] Simplified parameter/return value type handler instantiation, via special __new__ methods. * pybindgen/functionwrapper.py, * pybindgen/typehandlers/base.py, * tests/test-generation.py: [6] Add support for generating PyMethodDef function tables. * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/booltype.py, * pybindgen/typehandlers/doubletype.py, * pybindgen/typehandlers/inttype.py, * pybindgen/typehandlers/stringtype.py: [5] enable use of PyArg_ParseTupleAndKeywords in forward wrappers * pybindgen/typehandlers/base.py: [4] fix a ParseTupleParameters.get_keywords bug 2007-05-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * .bzrignore, * pybindgen/functionwrapper.py: Added. * tests/test-generation.py: Modified. [3] add FunctionWrapper class 2007-05-31 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen/typehandlers/__init__.py, * pybindgen/typehandlers/booltype.py, * pybindgen/typehandlers/doubletype.py, * tests/test-generation.py: [2] bool, double 2007-05-29 Gustavo J. A. M. Carneiro <gjc@gnome.org> * pybindgen, * pybindgen/__init__.py, * pybindgen/typehandlers, * pybindgen/typehandlers/__init__.py, * pybindgen/typehandlers/base.py, * pybindgen/typehandlers/booltype.py, * pybindgen/typehandlers/codesink.py, * pybindgen/typehandlers/doubletype.py, * pybindgen/typehandlers/inttype.py, * pybindgen/typehandlers/stringtype.py, * pybindgen/typehandlers/voidtype.py, * tests, * tests/test-generation.py, * tests/test.py, * tests/wscript, * wscript: Added. [1] _