C data types (structs, unions, arrays) for Steel#2349
Closed
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.
Merged
tahina-pro
added a commit
to tahina-pro/FStar
that referenced
this pull request
Aug 31, 2022
with imports from FStarLang#2349
tahina-pro
added a commit
to tahina-pro/FStar
that referenced
this pull request
Sep 1, 2022
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
tahina-pro
added a commit
to FStarLang/steel
that referenced
this pull request
Apr 14, 2023
Member
|
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 . |
tahina-pro
added a commit
to project-everest/everparse
that referenced
this pull request
Feb 27, 2024
needed because GenElim in FStarLang/FStar#2349 now accepts universe 1
tahina-pro
added a commit
to project-everest/everparse
that referenced
this pull request
Feb 27, 2024
tahina-pro
added a commit
to project-everest/everparse
that referenced
this pull request
Feb 27, 2024
tahina-pro
added a commit
to project-everest/everparse
that referenced
this pull request
Mar 4, 2024
needed because GenElim in FStarLang/FStar#2349 now accepts universe 1
tahina-pro
added a commit
to project-everest/everparse
that referenced
this pull request
Mar 4, 2024
tahina-pro
added a commit
to project-everest/everparse
that referenced
this pull request
Mar 4, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds:
addr_of_struct_fieldfor taking a pointer to a field of a struct along with its inverseunaddr_of_struct_fieldaddr_of_union_fieldfor taking a pointer to a field of a union along with its inverseunaddr_of_union_fieldAlong the way, it adds the following to ulib:
It also defines the following helper modules:
Finally, it implements extraction for code using
Steel.C.References to idiomatic C.examples/steel/arraystructscontains three examples: