Implement PIFO trees using binary-heap PIFOs #2187
Labels
C: calyx-py
Items that have to do with the builder library
C: Queues
One of the queue-style frontends
#2067 got us binary heaps, which is super cool. It also got us a small number of scheduling transactions, such that the binary heap plus a scheduling transaction over it obeys the same interface as our simple round-robin PIFOs. With our simple round-robin PIFOs, it was easy to build a PIFO tree. This will be a little trickier to do with binary heaps at nodes. This issue tracks the need to do that.
We will need to lay out a number of binary heaps that match some given tree shape. In binary heaps at leaves, we will need to store user-given values. In binary heaps at internal nodes, we will need to store integers. We will need to define the
push
operation with care, to ensure that an appropriate path of integers (plus one, final, user-given value) is pushed into the tree. Similarly we will need to have apop
operation. Thepeek
operation will be easy after that. Anyway, the point is that we no longer get trees for free, as we did from our RR PIFOs. Let's actually build them, much like the Formal Abstractions artifact does.Assigning to @KabirSamsi since he requested it, but I sincerely encourage folks to talk this out in a meeting or in a 1:1 with me before jumping in!
The text was updated successfully, but these errors were encountered: