getkyo / kyo

Toolkit for Scala Development
https://getkyo.io
Apache License 2.0
527 stars 44 forks source link

Scala Native Support #210

Open fwbrasil opened 6 months ago

fwbrasil commented 6 months ago

Although I believe Graal Native should be our main focus given the large investment it has and consistently superior performance now with PGO when compared to Hotspot, Scala Native can still offer an interesting and more lightweight alternative to run Kyo in LLVM (maybe even in Wasm?).

This ticket does not require all modules to be compiled to Scala Native. The main target is Kyo's core but it'd be great if other modules can be included as well.

fwbrasil commented 4 months ago

/bounty $100

algora-pbc[bot] commented 4 months ago

💎 $100 bounty • Kyo

Steps to solve:

  1. Start working: Comment /attempt #210 with your implementation plan
  2. Submit work: Create a pull request including /claim #210 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 bounty • Share on socials

Attempt Started (GMT+0) Solution
🟢 @hearnadam Jul 3, 2024, 11:26:50 PM WIP
fwbrasil commented 4 months ago

Bounty requirements:

  1. kyo-core and its tests passing in Scala Native
  2. Publishing of the new module works correctly
kubukoz commented 4 months ago

did a quick dependency check out of curiosity:

probably best to wait for ZIO

fwbrasil commented 4 months ago

@kubukoz thank you for taking a look!

zio doesn't have SN 0.5 support yet (https://github.com/zio/zio/issues/8786), I thought scalatest didn't either but 3.2.18 does

For the scope of this ticket, we don't need all modules cross-compiled to Scala Native, only kyo-core, but it'd be great if we can cross-compile some other modules as well.

if you want to start with SN 0.4 you'll need to downgrade izumi-reflect to 2.3.8 + print to 0.8.1

Both should be ok do to. Izumi is only used in tests and benchmarks as a reference implementation now. I don't know what we'd lose downgrading pprint but we'd only need to ensure all tests are passing.

hearnadam commented 3 months ago

/attempt #210

Algora profile Completed bounties Tech Active attempts Options
@hearnadam 4 getkyo bounties
Scala, Shell,
Rust
Cancel attempt
DamianReeves commented 1 month ago

As of last week ZIO (2.1.7) now has support for Scala Native 0.5.x

fwbrasil commented 5 days ago

@hearnadam I'm redistributing Kyo's bounties. Have you been able to work on this? If not, can you cancel the attempt? Thank you!