Releases: socketry/ffi-clang
Releases · socketry/ffi-clang
v0.16.0
- Add {ruby FFI::Clang::Types::Type#intrinsic_type}, which strips references and follows pointer indirection until reaching a non-pointer type and then drops cv-qualifiers.
- Add {ruby FFI::Clang::Types::Type#reference?}, a one-liner predicate over
:type_lvalue_refand:type_rvalue_ref. - Add {ruby FFI::Clang::Cursor#copyable?} and {ruby FFI::Clang::Types::Type#copyable?}, predicates that return true when a class/struct has an accessible copy constructor (none deleted, private, or protected) and every base class is copyable.
- Add {ruby FFI::Clang::Cursor#copy_assignable?} and {ruby FFI::Clang::Types::Type#copy_assignable?}, predicates that return true when a class/struct has an accessible copy assignment operator (none deleted, private, or protected) and every base class is copy-assignable.
- {ruby FFI::Clang::Types::Type#fully_qualified_name} now works on libclang versions earlier than 21 via a Ruby shim that composes existing libclang APIs (declaration, qualified_name, template arguments, pointer/array/reference unwrapping).
- Guard {ruby FFI::Clang::Types::Type#unqualified_type} against
:type_invalidinput. - Guard {ruby FFI::Clang::Types::Type#non_reference_type} against
:type_invalidinput.
v0.15.1
v0.15.0
v0.14.0
Released: 2025-10-24
What's Changed
- Helper method that returns a cursor's qualified_display_name. (#92)
- Add release notes & documentation tooling.
- Modernize code and achieve 100% documentation coverage.
- Update minimum Ruby version to 3.2.
Full Changelog: v0.13.0...v0.14.0
v0.13.0
v0.12.0
v0.11.0
Released: 2024-11-13
What's Changed
- Restore
visit_childrenmethod. Fixes #82. (#84) - Expose Clang's exception specification API (#87)
- Support iterating over Type::Function args and expose Lib.get_non_reference_type. (#85)
- Fix Qualified name (#83)
- Update clang version (#86)
Full Changelog: v0.10.0...v0.11.0
v0.10.0
v0.9.0
What's Changed
- Remove duplicate mapping of clang_getEnumDeclIntegerType by @cfis in #67
- Update bitmask options based on enums to always be an array of symbols. by @cfis in #69
- Add support for parse_translation_unit2 api. by @cfis in #70
- Cursor Improvements, Type improvements, Printing Support by @cfis in #72
- Fix finalizer exception in FFI::Clang::CodeCompletion::Results by @cfis in #74
- Fix Clang 16 by @cfis in #76
- Cursor Location Methods by @cfis in #78
Full Changelog: v0.8.0...v0.9.0
v0.8.0
What's Changed
- Modernize gem. by @ioquatix in #58
- Test on clang 5.0+ by @ioquatix in #59
- The enum value for CXCursor_TranslationUnit is 350. by @cfis in #61
- Test on more recent version of clang. by @ioquatix in #63
- Add Cursor#hash and Cursor#eql? by @cfis in #62
- Set then enum value cursor_translation_unit based on the Clang version. by @cfis in #64
- Add various C++ introspection methods by @cfis in #66
New Contributors
Full Changelog: v0.7.0...v0.8.0