Skip to content

Releases: socketry/ffi-clang

v0.16.0

02 May 06:40
a3caa13

Choose a tag to compare

  • 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_ref and :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_invalid input.
  • Guard {ruby FFI::Clang::Types::Type#non_reference_type} against :type_invalid input.

v0.15.1

09 Apr 08:54
6721ebd

Choose a tag to compare

  • Use -isystem instead of -I for auto-discovered MSVC system include paths so that in_system_header? correctly identifies system headers.

v0.15.0

07 Apr 02:43

Choose a tag to compare

More rubocop happiness.

v0.14.0

17 Mar 02:19
f4720a9

Choose a tag to compare

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

17 Mar 02:19
740f023

Choose a tag to compare

Released: 2025-02-16

What's Changed

  • Add support for clang_Type_getNamedType. (#90)
  • Try clang v18 + add Ruby v3.4 to test matrix. (#91)

Full Changelog: v0.12.0...v0.13.0

v0.12.0

17 Mar 02:19
6590178

Choose a tag to compare

Released: 2024-11-27

What's Changed

  • Prefer LIBCLANG and LLVM_CONFIG overrides over XCode (#88)

Full Changelog: v0.11.0...v0.12.0

v0.11.0

17 Mar 02:19
693f412

Choose a tag to compare

Released: 2024-11-13

What's Changed

  • Restore visit_children method. 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

14 Jun 07:01
8358b5b

Choose a tag to compare

What's Changed

  • Expose libclang's anonymous methods. by @cfis in #79
  • Use Enumerable by @cfis in #80
  • Split FFI::Clang::Type into a number of more cohesive subclasses inheriting from FFI::Clang::Types::Type. by @cfis in #81

Full Changelog: v0.9.0...v0.10.0

v0.9.0

07 Apr 07:55
f91c8a1

Choose a tag to compare

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

01 May 10:02
42bdb82

Choose a tag to compare

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