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

Refactor Module.hs DFS logic #190

Open
wants to merge 9 commits into
base: aemartinez/assert-tests
Choose a base branch
from

Conversation

langfield
Copy link
Contributor

@langfield langfield commented Mar 20, 2023

We're doing DFS, so let's try to make it look more like a standard DFS implementation. This PR removes the entire ModuleL free monad and eDSL.

@langfield langfield force-pushed the langfield/module-refactor-redux branch 8 times, most recently from bb5db53 to 91d3c08 Compare March 26, 2023 12:33
@langfield
Copy link
Contributor Author

langfield commented Mar 26, 2023

This needs a test where we have multiple @assert annotations.

A test like this has been written in #153. Thus the merge base should be changed.

@langfield langfield force-pushed the langfield/module-refactor-redux branch 2 times, most recently from bb5db53 to 1db64b9 Compare March 28, 2023 15:36
@langfield langfield changed the base branch from master to aemartinez/assert-tests March 29, 2023 14:19
* `m_prog` -> `m_instrs`
* `branchesByCallStackAndIfPc` -> `ifThenElseOutcomes`
* `IfThenElseBranchMap` -> `IfThenElseOutcomeMap`
* Don't use explicit import lists for qualified imports
* Refactor some docstrings
* Rearrange functions in `Module.hs`
* Replace `visitArcs` with `visitArc`
* Remove `visitLoop` and `visitLinear` and `extractPlainBuilder`.
* Make `gatherModules` return `ModuleL [Module]`
@langfield langfield force-pushed the langfield/module-refactor-redux branch from 1db64b9 to cd01fff Compare March 29, 2023 14:29
@langfield
Copy link
Contributor Author

DO NOT MERGE!

@langfield langfield force-pushed the langfield/module-refactor-redux branch 6 times, most recently from fcf7e87 to 35dcf11 Compare March 30, 2023 12:19
This commit restructures the control flow of the `visit` function in
`Module.hs`, reducing the number of cases.

* Remove `IfThenElseOutcomeMap` from `VertexContext` in `Module.hs`
* Rename some variables in `visit` function in `Module.hs`
* Use `&&` instead of `,` in guard within `Module.hs`
* Rename `acc` -> `insts` in `visit`
* Rename `test` -> `arcCond'`
* Make `visitArcs` unary.
Rename some stuff:
* `preOfPrevVertex` -> `pre`
@langfield langfield force-pushed the langfield/module-refactor-redux branch from 35dcf11 to c3e9bef Compare March 30, 2023 12:43
Change structure of sources:
* `(Function, ScopedName, FuncSpec)` -> `(ScopedFunction, FuncSpec)`

We also get rid of `gatherModules`, replaced with `gatherModulesForF`,
which is only for a single function.

* Remove `Module/Runner.hs` from `horus-check.cabal`
@langfield
Copy link
Contributor Author

DO NOT MERGE! 💢 ☠️

@langfield langfield force-pushed the langfield/module-refactor-redux branch from c3e9bef to 2cc3ee4 Compare March 30, 2023 15:01
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