Skip to content
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

VeyMont: codegen #1225

Merged
merged 46 commits into from
Aug 9, 2024
Merged

VeyMont: codegen #1225

merged 46 commits into from
Aug 9, 2024

Conversation

bobismijnnaam
Copy link
Contributor

@bobismijnnaam bobismijnnaam commented Jul 18, 2024

Checklist:

  • The wiki is updated in accordance with the changes in this PR. For example: syntax changes, semantics changes, VerCors flags changes, etc.

PR description

This PR implements code generation support, primarily for verifying the three new TTT case studies.

  • Code generation for choreographies
  • Verify TTT case studies
  • Integrate generated implementation verification into test suite

@bobismijnnaam bobismijnnaam marked this pull request as draft July 18, 2024 08:32
- Allow disabling veymont implementation generation.
- Split up permission generation into a veymont flag and a non-veymont
  (pvl) flag.
- Add permission generation to implementation generation
- Start working on properly generating permissions for the generated
  channel fields.
…ges. Move the permission generation rewrite in the general rewrite package
…tialization. Refactor GenerateImplemenation to use VeymontContext.
- Add clear success/failure messages to veymont mode logging
- Change TTT case study spec to fix myMark error
- Make pvl-to-java compatibility transformation in the veymont pipeline
  depend on whether pvl or java is being generated
- Fix small bug in NewArrayImpl where plain toString was used instead of
  Doc. This caused an unpretty name to be used, instead of the name
  indicated by ctx.
- Factor out the pvl-generic part of veymont implementation generation
  and make it available under the --compile flag.
- Begin with working on a patching mechanism so executable and
  inspectable code can be
  generated from the generated implementation of VeyMont.
- Experiment with compiling and running code at runtime in the veymont
  test suite.
- Refactor the veymont stages system to it is more reusable in the test
  suite.
- Refactor the VeyMont test suite to use custom testing routines.
- Add helpers to hre for working with directories and temp files.
- Finish the Patch helpers in hre. The assumption is now that typically
  patches will be applied only once, and not exhaustively.
- Actually run the generated code for the second veymont permissions
  case study, and compare the actual output with the expected output.
- Make VercorsSpec file tracking available for subclasses through
  imperative helper functions.
- Add flags to focus on choreography verification, code generation, or
  implementation verification.
- Adjust swap test to make sure VeyMont doesn't crash.
- Refactor FM2023VeyMontSpec to use new testing harness.
Finish up the VeyMont frontend so it can be properly integrated into the
test suite.

- Remove the --veymont-generate-permissions flag in favour of the
  regular --generate-permissions flag
- Finish refactoring of VeyMont stages structure, refactoring support
  for timing messages and VeyMont flags. The VeyMont stages structure
  now properly reports errors.
@bobismijnnaam bobismijnnaam marked this pull request as ready for review August 7, 2024 14:25
@bobismijnnaam bobismijnnaam merged commit eede436 into dev Aug 9, 2024
6 checks passed
@bobismijnnaam bobismijnnaam deleted the veymont-codegen branch August 9, 2024 14:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant