Skip to content

Releases: panda3d/interrogate

0.10.1

16 Feb 14:23
@rdb rdb

Choose a tag to compare

C++ parser improvements:

  • Fix expansion of define() with spaces inside parentheses (#10)
  • Resolve type of auto variables in expressions
  • Implement sizeof() operator in expressions for known-size types

0.10.0

22 Jan 13:37
@rdb rdb

Choose a tag to compare

C++ parser

  • Now requires bison 3.0
  • Improves quality of syntax error messages
  • Support parsing C++17 template deduction guides
  • Support parsing C++20 concepts and requires expressions
  • Support parsing C++23 explicit object parameters
  • Support parsing auto() and auto{} in expressions
  • Now correctly parses aggregate initialization for primitive types in expressions
  • Support parsing methods with =delete("literal")
  • Support parsing subscript operator with multiple arguments
  • Fixes a long-standing bug where parameter names were not properly resolved in constructor inits and trailing return types (resulting in parse errors if the name conflicted with a global type name)
  • Add <concepts> and <string_view> headers to parser-inc
  • Fix handling of inline namespace (no longer results in effective blanket using namespace)
  • decltype() now correctly parses with comma expressions
  • constexpr now correctly makes variables const as well

Python front-end

  • Fix published static class members not being wrapped
  • Fix memory leak for enum values in module initialization

0.9.0

08 Jan 21:00
@rdb rdb

Choose a tag to compare

This release:

  • Add support for namespace aliases to the C++ parser
  • Supports explicit-args extension methods in fastcall format in python-native generator (ie. PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames instead of PyObject *args, PyObject *kwargs)
  • Adds a new experimental text output version of the interrogate database, used internally for regression testing but may be useful for debugging as well
  • Add PyObject_Vectorcall alias to py_compat.h
  • Updates cibuildwheel to 3.3.1 (adds Python 3.14t wheels)

0.8.1

31 Dec 18:52
@rdb rdb

Choose a tag to compare

This release fixes handling of size_t arguments, correctly allowing very large values (that would exceed the maximum value of a signed ssize_t).

0.8.0

18 Dec 20:27
@rdb rdb

Choose a tag to compare

This release:

  • Fixes assorted issues with wrapping nested classes, specifically those which were forward declared and then defined out of line
  • Fixes issues when types have a recursive dependency during init (eg. nested class deriving from parent class)
  • When a base class is unpublished, now looks recursively for published base classes to inherit from rather than omitting the inheritance entirely
  • Database now records type hierarchy for unpublished classes
  • Adds some more robustness for exceptions during init
  • Fixes a CMake compatibility warning.
  • Fixes a harmless out of bounds read in pdtoa.

Note that arm64 Linux wheels are now provided.

0.7.1

15 Oct 19:17
@rdb rdb

Choose a tag to compare

This release:

  • Fixes a reference counting bug when wrapping PointerTo data members
  • Adds support for parsing z integer literal suffixes (C++23)
  • Adds support for #elifdef, #elifndef, and #warning directives (C++23)

0.7.0

03 Sep 22:41
@rdb rdb

Choose a tag to compare

This release removes the runtime requirement for a matching copy of py_panda.h by instead embedding it (and related headers) into the interrogate executable, having it be embedded into the generated .cxx files instead. This is a further step towards untangling interrogate from Panda3D.

0.6.1

28 Aug 10:30
@rdb rdb

Choose a tag to compare

  • Generator wrapper objects now define send() and throw() (#9)
  • Generated code for creating enum classes is a bit more efficient

0.6.0

28 Jul 11:46
@rdb rdb

Choose a tag to compare

Changes since 0.5.0:

  • Slight optimization in code size and string table size
  • Fix is_destructible for reference types (caused memory leak for classes containing reference types) (panda3d/panda3d#1743)
  • Don't write wrappers with unsupported return type to database (#6)
  • Add interrogatedb regression test suite

0.5.0

02 Feb 19:06
@rdb rdb

Choose a tag to compare

  • Removes Panda3D-specific initialization code
  • Add -init flag to interrogate_module to call custom init function (#3)
  • Fix a compile error with Python 3.13 free-threaded build
  • Fixes some compile issues with recent compilers
  • Remap function indices in wrappers (#7)
  • Use dynamically allocated type objects for py_wrappers as a step towards multi-interpreter / interpreter restarting support