Replies: 3 comments
-
I've begun work in this direction.
|
Beta Was this translation helpful? Give feedback.
-
I still need to move |
Beta Was this translation helpful? Give feedback.
-
I've now moved lowering of logic functions to Why3 to the
Then, the next step will be to restrict the interactions of the backend with
With this done, we can move Simultaneously, |
Beta Was this translation helpful? Give feedback.
-
I'm going to note some of my thinking for how I'd like to clean up the organization of Creusot.
translated_items
with a graph structure.IndexMap
, this has beenfineuntil now, but isn't any more. Moving to a graph structure allows us to be less sensitive to the order of insertions and also perform selective printing of the translated items so that we could generate multiple outputs (ie: one per module / function).DefId
. TheDefId
is rustc's internal id for everything, but it doesn't map well onto what Creusot needs. For example: rustc shares the same DefId for the closure type and closure function or a struct type and it's constructor. Disambiguating these in the identifier would help clean up various bits.CloneMap
to the edges of the work flow. This should be relegated to a mere detail of the Why3 translation and not nearly such an essential object in the translation flow.translated_items
of Why3 AST, I'd like the internal representation oftranslated_item
to consist entirely of Creusot IR, and be entirely free of any why3 stuff (and thusCloneMap
).Beta Was this translation helpful? Give feedback.
All reactions