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

Tracking issue for MIR linker #1588

Closed
5 of 6 tasks
celinval opened this issue Aug 25, 2022 · 0 comments · Fixed by #2136
Closed
5 of 6 tasks

Tracking issue for MIR linker #1588

celinval opened this issue Aug 25, 2022 · 0 comments · Fixed by #2136
Assignees

Comments

@celinval
Copy link
Contributor

celinval commented Aug 25, 2022

Summary

This is a tracking issue for the RFC mir_linker which will enable users to use non-generic + non-inlined methods of the standard library.

During development, this feature will be gated by the unstable option --mir-linker.

Major Steps

Suggestion of major steps:

  • Get feedback on the RFC PR.
  • Implement compiler options --reachability=[legacy | none | harnesses]
  • Create a mechanism to generate and ship Kani sysroot.
  • Introduce unstable user option --mir-linker.
  • Implement compiler option --reachability=pub_fns.
  • Stabilization PR.

Open Questions

  • Should we build or download the sysroot during kani setup?
@celinval celinval self-assigned this Aug 25, 2022
celinval added a commit that referenced this issue Sep 20, 2022
Add a new module reachability which implements the reachability algorithm. Add the end to end logic for the reachability starting from all the harnesses in the target crate.

## Resolved issues:

Resolves #1672

## Related RFC:

#1588

## Call-outs:

    We still need to build the custom sysroot in order to fix the missing functions issue.
    I added a mechanism to run the regression tests using the MIR linker inside compiletest.
    I ran the regression manually (with the mir_linker enabled) the only tests that didn't pass were:
        cargo-kani/asm/global_error/doesnt_call_crate_with_global_asm.expected: The global assembly is out of the scope so it doesn't get processed. If we want to keep that behavior, we will have to inspect all items manually.
        cargo-kani/cargo-tests-dir/expected: This might be a legit issue that I need to fix on kani-driver logic.
        cargo-ui/dry-run/expected: Not an issue (arguments to the compiler changes).
@celinval celinval moved this to In Progress in Kani 2023-01-23 Jan 17, 2023
@github-project-automation github-project-automation bot moved this from In Progress to Done in Kani 2023-01-23 Jan 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

1 participant