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

Queue and Channel can't be used with direct syntax #993

Open
fwbrasil opened this issue Jan 9, 2025 · 3 comments
Open

Queue and Channel can't be used with direct syntax #993

fwbrasil opened this issue Jan 9, 2025 · 3 comments
Labels
💎 Bounty bug Something isn't working

Comments

@fwbrasil
Copy link
Collaborator

fwbrasil commented Jan 9, 2025

There's a compiler crash when opaque types are used with kyo-direct. It can be worked around by providing a type bound to the opaque type, which is why composite effects like Async work ok. Both Queue and Channel are opaque types and don't have a type bound. I'm not sure what we could put as the bound since we don't want to expose the APIs as their Unsafe counterparts. We might need a new wrapping class/allocation for them. More context: https://github.com/getkyo/kyo/pull/985/files#r1907969353

@fwbrasil fwbrasil added the bug Something isn't working label Jan 9, 2025
@fwbrasil
Copy link
Collaborator Author

/bounty 200

Copy link

algora-pbc bot commented Jan 23, 2025

💎 $200 bounty • Kyo

Steps to solve:

  1. Start working: Comment /attempt #993 with your implementation plan
  2. Submit work: Create a pull request including /claim #993 in the PR body to claim the bounty
  3. Receive payment: 100% of the bounty is received 2-5 days post-reward. Make sure you are eligible for payouts

Thank you for contributing to getkyo/kyo!

Add a bountyShare on socials

@fwbrasil
Copy link
Collaborator Author

@rssh in case you have some time to have a look. I imagine it could be due to Kyo's wrapper on top of dotty-cps-async but we can't use opaque types without bounds with the direct syntax because of compiler crashes. To reproduce, you only need the kyo-core and kyo-direct modules and then try to use Queue or Channel with the direct syntax.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💎 Bounty bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant