calyxir/calyx

Queues: flag day

Opened this issue · 6 comments

We have been zooming along and making quite a few improvements to our queues, and we have decided on a small clutch of TODOs for the magical day when things settle down. This is a tracker for all that stuff. It will probably need to grow further; feel free to edit this topmatter directly to add to the list.

  • #2186
  • #2170
  • #2226
  • #2241
  • #2261
  • Consider a test harness that spares us from checking in large .data and .expect files. We would probably still need to make these files or something like them, but perhaps we can make them on the fly and then discard/.gitignore them. Super open to ideas on this one. @ethanuppal seems to have some thoughts.
  • Beef up the documentation as needed.
  • #2248
  • #2221

The idea with testing harnesses is that you don't need to have any files. You can call the calyx component as a function, so you can generate a random large array, enqueue those values, and dequeue them — all from code!

I will do the documentation for round robin and strict PIFOs.

As part flag day, do we want to remove peek from the queue interface and make cmd a 1-bit signal?

Good question, I’ve kinda been wanting to. The reason to keep it is that we may find an algorithm that needs it. The reason to lose it is that we haven’t yet found such an algorithm. Let’s make a call about it on Monday!

As of 7/29:

  • We are removing the peek functionality from all queues, and the pop/peek by value functionality for PIEOs.
  • Subsequently, we will be changing cmd to a 1-bit signal.
  • We'll proceed with flag day before the Calyx PIEOs are merged, and continue work with that afterwards.

I've checked the documentation box manually; let's just declare the docs good!