Skip to content

v4.0 #557

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

Open
1 of 5 tasks
kazu-yamamoto opened this issue May 30, 2023 · 9 comments
Open
1 of 5 tasks

v4.0 #557

kazu-yamamoto opened this issue May 30, 2023 · 9 comments

Comments

@kazu-yamamoto
Copy link
Collaborator

kazu-yamamoto commented May 30, 2023

We introduce breaking changes:

@Mistuke It's time!

@coot
Copy link
Contributor

coot commented Jul 3, 2023

@kazu-yamamoto do you want us to help with it? I won't have time right now, but I might get some help from our partners (Galois).

@kazu-yamamoto
Copy link
Collaborator Author

@coot I'd love to help you. But as talked in #559, the baton was passed to @Mistuke now.
When he show me the first example, I can hack the entire package.

@Mistuke
Copy link
Collaborator

Mistuke commented Jul 17, 2023 via email

@kazu-yamamoto
Copy link
Collaborator Author

Supporting WinIO is delayed.
I would like to set the target version to v4.0.
I will use v3.2 for other purposes.

@kazu-yamamoto kazu-yamamoto changed the title v3.2 v4.0 Mar 26, 2024
@TravisWhitaker
Copy link

I'm curious about whether or not the public interface needs to change in order to support WinIO. My understanding is that IOPort is roughly analogous to what's achieved with threadWait* in the current implementation: request the IO and the block the Haskell thread until it's completed.

In general it seems desirable to maintain the pattern that GHC users currently employ: forkIO as many threads as you need, let them block when they need to, and let the IO manager handle the rest. The absence of Rust/Swift/etc. asynchronous callback style APIs is one of big advantages of Haskell's concurrency model.

@kazu-yamamoto
Copy link
Collaborator Author

Good point. We don't bump major version if not necessary.

@TravisWhitaker
Copy link

Well, whether or not to bump the major version is one question, and whether or not to move to a callback-based async style API in this package is another entirely.

@Mistuke
Copy link
Collaborator

Mistuke commented Mar 20, 2025

To get Winio to work doesn't need an API change. To get the most out of it will eventually. If RIO is to ever be implemented the DMA interface needs to be exposed to users. For instance a single haskell thread can easily handle multiple io requests.

@TravisWhitaker
Copy link

What would it look like for a single Haskell green thread to handle multiple concurrent requests?

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

No branches or pull requests

4 participants