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

Remove IOPort# and operations from GHC.Exts #213

Closed
bgamari opened this issue Sep 27, 2023 · 9 comments
Closed

Remove IOPort# and operations from GHC.Exts #213

bgamari opened this issue Sep 27, 2023 · 9 comments
Labels
approved Approved by CLC vote

Comments

@bgamari
Copy link

bgamari commented Sep 27, 2023

We propose to remove the following exports from GHC.Exts:

data IOPort# s a
newIOPort# :: State# s -> (# State# s, IOPort# s o #)
readIOPort# :: IOPort# s o -> State# s -> (# State# s, o #)
writeIOPort# :: IOPort# s o -> o -> State# s -> (# State# s, Int# #)

These expose the IOPort# type used internally to implement WinIO. The semantics of this type are not of use to end users and there are no users on Hackage. We intend to remove this type from GHC as it is no longer used.

@hasufell
Copy link
Member

hasufell commented Oct 5, 2023

I think I'd be fine with removing these without deprecation, unless someone can come up with an example how these might be used.

Unless other members have an argument why we should apply a deprecation policy without exceptions.

@bgamari
Copy link
Author

bgamari commented Feb 1, 2024

Can we bring this to a vote?

@tomjaguarpaw
Copy link
Member

+1


Even if someone was using them, if the type is no longer used in GHC then it won't be usable for that use case ...

@Bodigrim
Copy link
Collaborator

Bodigrim commented Feb 1, 2024

Dear CLC members, let's vote on the proposal to remove IOPort# and operations on it from GHC.Exts as explained above.

@hasufell @mixphix @velveteer @angerman @parsonsmatt


+1 from me. Indeed there are no users of IOPort# outside of ghc-* packages.

@velveteer
Copy link
Contributor

+1

2 similar comments
@mixphix
Copy link
Collaborator

mixphix commented Feb 2, 2024

+1

@hasufell
Copy link
Member

hasufell commented Feb 3, 2024

+1

@Bodigrim
Copy link
Collaborator

Bodigrim commented Feb 3, 2024

Thanks all, that's enough votes to approve.

@Bodigrim Bodigrim added the approved Approved by CLC vote label Feb 3, 2024
@Bodigrim Bodigrim closed this as completed Feb 3, 2024
@bgamari
Copy link
Author

bgamari commented Feb 15, 2024

This will ultimately be implemented in !8776

hubot pushed a commit to ghc/ghc that referenced this issue Feb 15, 2024
This type is unnecessary, having been superceded by `MVar` and a rework
of WinIO's blocking logic.

See #20947.
See haskell/core-libraries-committee#213.
hubot pushed a commit to ghc/ghc that referenced this issue Feb 15, 2024
This type is unnecessary, having been superceded by `MVar` and a rework
of WinIO's blocking logic.

See #20947.
See haskell/core-libraries-committee#213.
hubot pushed a commit to ghc/ghc that referenced this issue Feb 16, 2024
This type is unnecessary, having been superceded by `MVar` and a rework
of WinIO's blocking logic.

See #20947.
See haskell/core-libraries-committee#213.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Approved by CLC vote
Projects
None yet
Development

No branches or pull requests

6 participants