-
Notifications
You must be signed in to change notification settings - Fork 236
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
C data types (structs, unions, arrays) for Steel #2349
Conversation
index and upd can be implemented against the rest of the array library without the need for leaking abstraction. By hiding the definition of arrays from the implementation of index and upd, we gain something like 20 minutes of verification time.
with imports from FStarLang#2349
This reverts commit 57d57f9.
…el_c_restore_20220902
This reverts commit e7259a5.
from #2349 by @john-ml (more precisely unions: tahina-pro/FStar@341afa8 arrays: tahina-pro/FStar@aa80cc9 )
from #2349 (more precisely: translate_type_without_decay by @john-ml at tahina-pro/FStar@be7a64d modular C extraction at tahina-pro/FStar@b6873af file as of tahina-pro/FStar@79de29e )
This reverts commit 5c2ed8d.
…FStar into _taramana_migrate_steel_c
This reverts commit 38cef8c.
This reverts commit 17acd9e.
…nto _taramana_migrate_steel_c
Hi everyone. Steel moved to its own repository, FStarLang/steel, where SteelC is now in the main branch: the SteelC data types are now in https://github.com/FStarLang/steel/tree/main/lib/steel/c , with the proofs in https://github.com/FStarLang/steel/tree/main/src/proofs/steelc . |
needed because GenElim in FStarLang/FStar#2349 now accepts universe 1
needed because GenElim in FStarLang/FStar#2349 now accepts universe 1
This PR adds:
addr_of_struct_field
for taking a pointer to a field of a struct along with its inverseunaddr_of_struct_field
addr_of_union_field
for taking a pointer to a field of a union along with its inverseunaddr_of_union_field
Along the way, it adds the following to ulib:
It also defines the following helper modules:
Finally, it implements extraction for code using
Steel.C.Reference
s to idiomatic C.examples/steel/arraystructs
contains three examples: