ssm-lang / Scoria

This is an embedding of the Sparse Synchronous Model, in Haskell!
BSD 3-Clause "New" or "Revised" License
4 stars 0 forks source link

Runtime refactor #30

Closed j-hui closed 3 years ago

j-hui commented 3 years ago

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:

j-hui commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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.

j-hui commented 3 years ago

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