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

Integrate cn-runtime-testing branch into main #70

Open
septract opened this issue Aug 8, 2024 · 6 comments
Open

Integrate cn-runtime-testing branch into main #70

septract opened this issue Aug 8, 2024 · 6 comments
Assignees

Comments

@septract
Copy link
Collaborator

septract commented Aug 8, 2024

The cn-runtime-testing branch includes a lot of changes needed for applying the runtime spec testing capabilities on the tutorial examples. The current cerberus repo CI setup for RTT points to this branch, rather than main. We should integrate the branch.

@dc-mak

@dc-mak
Copy link
Collaborator

dc-mak commented Aug 12, 2024

This branch was mostly a stop-gap for work-arounds (sometimes based on missing features, sometimes based on ignorance) in the run up to POPL deadline. Agreed the end goal is to make CN runtime testing CI on the main branch. @rbanerjee20 has agreed to decide and execute how that is achieved.

@rbanerjee20
Copy link
Collaborator

I would prefer not to merge the cn-runtime-testing branch into main right now since a lot of the changes Dhruv made before the POPL deadline involved changing the CN tutorial example files themselves to adjust for the fact that certain features were not implemented yet. Morally those features should exist in CN runtime testing, and implementing them is (part of) what I am working on now. So merging cn-runtime-testing would lead to some unnecessary hacks existing on main - it would probably be counterintuitive to have examples that fall into this (somewhat arbitrarily) restricted subset of CN on main when that restriction isn't needed for proof.

As a result I would propose we don't converge the two branches, but I am happy to think about how the CI might be improved such that as I push each feature/fix, more real CN tutorial examples from main can be checked and moved out of the "buggy" list, over and above the regression testing that is taking place on each push to Cerberus currently.

@rbanerjee20
Copy link
Collaborator

(I briefly thought about there being one directory of examples for proof and one for runtime testing on main but this also seems counterintuitive given our "CN testing and proof can be done using the same specs" story)

@septract
Copy link
Collaborator Author

That seems reasonable as a short-term measure @rbanerjee20, but there will be an annoying cost to maintaining the branch if it sticks around for more than a few weeks. I think if we're not careful, the branch will diverge significantly (eg I know @bcpierce00 is about to land a big refactor to align with his CN style recommendations).

What changes exactly are needed to support what you need? Eg. could we write 'test harness' files which wrap the files on main ? Or are the changes needed deep and pervasive in the files themselves?

@rbanerjee20
Copy link
Collaborator

Yes, I agree - this is very much a short-term solution. I don't intend for this branch to need to exist for very long as I plan to implement the fixes for these over the next few weeks.

Peter, Neel and I also discussed writing test harness files - tiny files with only a main function that #include the relevant CN tutorial example they want to test, instead of having these main functions that @dc-mak wrote as part of the CN tutorial example files themselves. However, the other changes Dhruv made are indeed deep within the CN specs themselves, which is why I am suggesting we wait a bit. For example, I believe Dhruv had to change CN datatypes into CN records in certain files - these sorts of modifications shouldn't exist in the examples on main morally and also would need to be changed back at some later stage anyway.

@septract
Copy link
Collaborator Author

Understood, this sounds like a good plan. Thanks!

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

No branches or pull requests

3 participants