-
Notifications
You must be signed in to change notification settings - Fork 0
Add Rio Trees to Simulator #76
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
Conversation
- add missing FIFOs to tests
- and now im sad
- the Gantt charts for enq and deq side RR[fifo[A], fifo[B], fifo[C]] match on two_then_three.pcap
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@anshumanmohan sorry for the large diff (again); a good deal of this is mostly minor refactoring though.
The footprint of the important changes (dequeue side semantics stuff) is almost entirely localized to
riotree.ml(i)control.ml(i)simulate.ml(i)test_rio_tree.mltest_enq_deq_equiv.ml
Of the smaller tweaks, I had a couple deletions I hoped to run by you.
2c27281 to
2334ed7
Compare
28c443c to
dfc3229
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@anshumanmohan Just a heads up: I've merged @csziklai's work from #75 so this PR is ready for review again!
I've also marked some questions that came up for me during the merge
anshumanmohan
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!!
|
Am I blocking this again, or is ready to go? |
|
@anshumanmohan Finally hitting the big green button, sorry it so long! |
This tweaks the simulator to be closer to Rio's semantics in math-land. Namely, it introduces
riotree.ml, the Rio tree data structureMake_PIFOControlandMake_RioControl, functors that makes PIFO and Rio controls from Rio programsMake_Sim, a functor that takes a control and makes a function for running it on a PCAPWith these additions,
tests/test_enq_deq_equiv.mloffers emperical evidence of the equivalence of our enqueue and dequeue side semantics! To generate Gantt charts from these tests,dune testwith the environment variableGEN_CSVset toYES: i.e.GEN_CSV=YES dune testplot.pywithpython3 plot.pyAdditionally, the simulator can also be used by running
bin/sim.mlwithThere are a few other minor contributions; here's a longer log of changes not mentioned above:
plot.pygenerate Gantt charts from all CSVs ingraphs/; remove hardcoded namesprogs/enq-deq-equivfrontend/ast.mlPolicy.tlook more likeAst.streamextract_subpol) from Add Union Operator; Update AST #69tests/frontend/test_parsingin accordance with changes toPolicy.tPieoandPieotreemodules back toPifoandPifotreemlifiles when everything is exposed anyway: e.g.rank.mli,time.mli,topo.mliRank.t,Time.ttopo.mlPolicy.of_programdoes not always terminate #73 by fixingPolicy.of_programPolicy.tRiotreeandPifotreeintest_rio_tree.mlandtest_pifo_tree.mlLexerErrorand haveParserErrorhold a record of relevant info insteadstring