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

Introduce BiDf protocol #109

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open

Introduce BiDf protocol #109

wants to merge 4 commits into from

Conversation

bgamari
Copy link
Collaborator

@bgamari bgamari commented Sep 9, 2024

This introduces a new protocol, BiDf, which captures the common pattern of a request Df channel paired with a Df for returning corresponding responses.

@bgamari bgamari changed the title Introduce BiDf Introduce BiDf protocol Sep 9, 2024
@bgamari
Copy link
Collaborator Author

bgamari commented Sep 9, 2024

At the moment prop_fanin does not pass for reasons that I haven't yet understood.

@christiaanb
Copy link
Member

There seems to be some overlap with #83 ...

This introduces a new protocol, `BiDf`, which captures the common
pattern of a request `Df` channel paired with a `Df` for returning
corresponding responses.
This is a useful operation for servicing requests from a number of
sources with a single sink.
@lmbollen
Copy link
Member

We're trying to be sensible about which protocols we add to this package, so now I also added BiDf to this overview:
#84

Comment on lines +45 to +46
-- - There must not be a combinational path from the request channel to the
-- response channel.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Am I reading correctly that this disallows stateless circuits such as:

idBiDf :: Circuit (BiDf dom a a) ()
idBiDf = Circuit go
 where
  go ((fwd, bwd), _) = ((bwd, fwd), ())

If so, why would that not be allowed?

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.

4 participants