-
Notifications
You must be signed in to change notification settings - Fork 22
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
feat(hax-lib): intro. hax
feature
#983
Conversation
a791629
to
cd0890a
Compare
a375b7c
to
7d1a846
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested this on libcrux and it appears to work well.
@franziskuskiefer fixed the flags on this PR, and now the hax engine fails because of this error:
This is because the hax-engine also depends on hax-lib to extract names, and with the new cfg flags, something is going wrong in the way this is used. @W95Psp: maybe this will be easy for you to fix. |
…ing Json THIR For instance: - `... | jq 'include ".utils/jq_utils"; thir_str_of_def_ids'` will transform all THIR def ids into strings; - `... | jq 'include ".utils/jq_utils"; remove_field("span")'` will remove most of spans.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clearing the review. Re-request when it's ready to look at.
The engine is fixed and the library is fixed as well, things are passing CI. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me now. The main thing I checked is that we are really not getting any dependencies or code when not using the hax cfg.
libcrux proofs use |
I fixed it, now it should be fine! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This works for me now. Thanks!
This PR introduces a (default)
hax
feature onhax-lib
.When this feature is disabled:
hax-lib-macros
defines identity proc-macros, and keeps its dependencies to a minimum (onlyquote
andsyn
)hax-lib
becomes a one-module tiny and "inert" library, with onlyhax-lib-macros
as a dependency (when the featuremacros
is enabled)Fixes #639.