Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

allow external absint to hold custom data in codeinst.inferred #53300

Merged
merged 2 commits into from
Feb 17, 2024

Commits on Feb 16, 2024

  1. allow external absint to hold custom data in codeinst.inferred

    It has been possible for external abstract interpreters to keep custom
    data in `codeinst.inferred` (together /w overloading `inlining_policy`).
    After #52233, when such external absint uses
    `InternalCodeCache`, this data is passed to `jl_ir_flag_inferred`,
    leading to segfaults in assertion builds.
    
    This commit resolves the issue by omitting `jl_ir_flag_inferred` checks
    when the `cache_owner` is external. Nonetheless, a better resolution
    might be necessary. It suggests that the current design of `code_owner`
    and `InternalCodeCache` for the external cache system is somewhat flawed.
    A conceivable approach could involve:
    - Adding a layer similar to `inlining_policy` in `CC.get(::WorldView{InternalCodeCache})`
      to enable safe redirection of custom data to the native interpreter's
      implementation.
    - Prohibiting custom data in the `inferred` field and directing such
      data to be kept in `analysis_results`.
    aviatesk committed Feb 16, 2024
    Configuration menu
    Copy the full SHA
    528b70f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    610f27a View commit details
    Browse the repository at this point in the history