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

Runtime refactor #30

Merged
merged 33 commits into from Jun 30, 2021
Merged

Runtime refactor #30

merged 33 commits into from Jun 30, 2021

Conversation

j-hui
Copy link
Collaborator

@j-hui j-hui commented Jun 24, 2021

I dropped in my refactor of the runtime system from upstream. In addition to what should be a functionally equivalent refactor, it makes the following changes:

  • Separate out type implementations to prepare for typegen from Haskell side
  • Move the responsiblity of reporting type names to type implementation
  • Use embedded struct sv and struct act rather than inlining fields, to avoid some type casting
  • Begin to form a more concrete debug interface, toward Design Debug interface #24
  • Begin removing "peng" and more consistently use "ssm"
  • Add some regression tests
  • Improve logging for trace-report, upon make failure

@j-hui j-hui requested a review from Rewbert June 24, 2021 04:20
@j-hui
Copy link
Collaborator Author

j-hui commented Jun 25, 2021

I have a couple of failing tests, but these fail on master as well, so I don't think these should prevent this PR from being merged.

I've documented the MultOverflow cases in #32, but I just have no idea what FiveForker is, or why it fails, but it's a massive test case with lots of forks. Both the interpreter and the executable reach a NegativeDepth error, but they seemingly differ in the order of processes they fork.

@Rewbert
Copy link
Collaborator

Rewbert commented Jun 26, 2021

The fiveforker one is super interesting. I'll try to manually massage quickcheck to shrink it a bit, and see if I can figure it out.

@Rewbert
Copy link
Collaborator

Rewbert commented Jun 26, 2021

Hm QuickCheck won't shrink it more. One positive is that whenever we figure out what the issue is, we'll probably manually come up with a smaller test case that can guide another shrinking strategy that replicates it.

runtime/src/ssm-queue.c Outdated Show resolved Hide resolved
runtime/include/ssm-act.h Outdated Show resolved Hide resolved
@j-hui
Copy link
Collaborator Author

j-hui commented Jun 29, 2021

Thanks for the approval @Rewbert ! I'll merge it into master after pushing a couple of more minor fixes.

@j-hui j-hui merged commit 7e351c8 into master Jun 30, 2021
@j-hui j-hui mentioned this pull request Jul 14, 2021
3 tasks
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.

None yet

2 participants