Skip to content

crunch bundles #953

@lsf37

Description

@lsf37

Resurrecting an old Jira issue: https://sel4.atlassian.net/browse/VER-1274

It says:

It'd be nice if we could declare bundles of properties for crunches, so that we don't have to type out large lists of properties every time.
In particular, we quite often want to crunch preservation of non-pspace parts of the state in the kernel, but we tend to spread them out to the point where they are first used. If we instead declared a bundle once, we wouldn't have to remember what each of them are called every time, and could do them all in one go. Similarly, there are properties that often go together, eg operations that don't change caps or liveness state of objects, or operations that don't touch threads etc. Some of these could potentially be better handled by locales, but not all.
Example of possible syntax:

crunch_bundle cte_props =
  ctes_of[wp]: "%s. P (ctes_of s)"
  cteCaps_of[wp]: ...

crunch_bundle more_props = cte_props +
   valid_arch_state': ...

crunches some_fun
  for cte_props
  and some_prop[wp]: stuff

Requires some more thinking whether attributes should only occur at the call site in the actual crunches or if they should be able to occur in the bundle declaration already.

The issue also mentions an except syntax where you can remove a property from a bundle.

Metadata

Metadata

Assignees

No one assigned

    Labels

    proof engineeringnicer, shorter, more maintainable etc proofsproof toolsconvenience, automation, productivity tools

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions