Skip to content

[jnigen][ffigen] Standardize filtering policy #1678

@liamappelbe

Description

@liamappelbe

In ffigen, when an API element is included by the config, all its transitive deps are also included. Eg, if the user asks for a class to be generated (and doesn't filter the methods), we generate bindings for all the methods and all the classes consumed or returned by those methods.

In jnigen, transitive deps are not included by default. Instead, if a method refers to a class that hasn't been explicitly requested by the user, it will be replaced by a JObject (or maybe a stub in future).

We should settle on one approach. I'm about to refactor ffigen's filtering, so now is a good time to think about it.

  • Ffigen's approach leads to a huge amount of bindings being generated even when the user only asks for one class.
  • Jnigen's approach means more iterative rounds of adding things to the config and regenerating the bindings.

@stuartmorgan Any opinions about which has been easier?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions