Skip to content

Known Limitations

This page summarizes current limitations and constraints in ruby-bindgen.

General

  • Correct parsing depends on accurate clang/clang-cl include and language arguments.
  • Some libraries still require manual post-generation adjustments.

Rice Generation

  • Generated code may not compile without manual fixes.
  • Default argument reconstruction is heuristic and can fail for complex C++ expressions.
  • Some APIs need explicit skipping via symbols with action: skip to avoid compile/link failures.
  • Functions/methods with unsupported signatures may be skipped (for example variadic callables).
  • Methods returning pointers/references to incomplete types are skipped.
  • Deprecated APIs are skipped.

CMake Generation

  • format: CMake is a second pass: it expects *-rb.cpp files already generated by format: Rice.
  • If no Rice output exists in output, generated CMake source lists will be empty.

FFI Generation

  • Runtime loading depends on correct library_names / library_versions and system loader paths.