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

Support the K2 Compiler #733

Open
JoelWilcox opened this issue Jul 28, 2023 · 5 comments
Open

Support the K2 Compiler #733

JoelWilcox opened this issue Jul 28, 2023 · 5 comments
Assignees
Labels
enhancement New feature or request

Comments

@JoelWilcox
Copy link
Member

For now this is just a placeholder to track future K2 support, and to document that Anvil is currently incompatible with K2 as folks start testing it out in projects that may be using Anvil.

@JoelWilcox JoelWilcox added the enhancement New feature or request label Jul 28, 2023
@joshfriend
Copy link
Member

Can the k2 warning be disabled (or shown only once)? It shows up literally thousands of times in build logs when K2 is enabled.

@chrisjenx
Copy link

With 1.9.20 out and 2.0 next, is there an ETA for K2 support, as would love to start testing and sending feedback to the KT team.

@ZacSweers
Copy link
Collaborator

No ETA currently, we more or less have to get #751 and #704 done first

@ZacSweers ZacSweers self-assigned this Apr 22, 2024
@matejdro
Copy link

K2 seems to be out and stable now. As far as I can see, there is no way of disabling it for Kotlin 2.0? So all Anvil projects are stuck at 1.9 for now.

@ZacSweers
Copy link
Collaborator

As far as I can see, there is no way of disabling it for Kotlin 2.0?

You can force language version 1.9 while still using Kotlin 2.0.0.

You can get fairly far with the 2.5.0 betas. I wrote some instructions here: https://www.zacsweers.dev/preparing-for-k2/#anvil. The TL;DR is that yes, projects with component merging will require language version 1.9, but any projects using just factory gen can use KSP instead.

We're working on it, we didn't expect the IR APIs we use to break in 2.0 as they weren't annotated as obsolete in the compiler.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants