You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
JVM compiler plugin is also enabled in kotlinx.coroutines. ✅
After update to 1.9.20:
JVM: compiler plugin is enabled by default and may be turned off with a flag in atomicfu gradle extension, JVM bytecode transformer is deprecated and ready to be removed. ❌ JVM IR compiler plugin transformations are not enabled by default yet, because not all main atomicfu users migrated to compiler plugin transformations yet (e.g. ktor). There is WIP migrating all the projects to IR transformations.
Native: compiler plugin may be enabled with a flag ✅.
JS: compiler plugin may be enabled with a flag, legacy JS transformer is deprecated and ready to be removed. ➖ JS legacy transformer may be removed, because usage of JS Legacy target is an error since Kotlin 1.9.0.JS IR transformations were not enabled by default due to the remaining unresolved problems in the compiler plugin. ❌
After update to 2.0:
JVM: JVM bytecode transformer is removed.
JS: legacy JS transformer is removed, compiler plugin is enabled by default.
Native: compiler plugin is enabled by default.
Update of the plan
I've updated the plan and restructured the focus a little. Here are the main priority tasks critical for stabilisation:
As it was stated previously kotlinx-atomicfu should get rid of bytecode legacy transformation and enable compiler plugin transformations by default. Prior to enabling compiler transformations by default, we should make sure that all major atomicfu users have compiler transformation already enabled, and figure out the reason if they still use legacy transformation. Here is the current status (more projects will be added).
This issue will track the progress of atomicfu stabilization.
✅ - Done
⏳ - Postponed for some reason
🛠️ - In progress
🟨 - Not started yet
Roadmap REVIEWED:
UPD 0.23.0 release:
After update to 1.9.20:
JVM IR compiler plugin transformations are not enabled by default yet, because not all main atomicfu users migrated to compiler plugin transformations yet (e.g. ktor). There is WIP migrating all the projects to IR transformations.
JS legacy transformer may be removed, because usage of JS Legacy target is an error since Kotlin 1.9.0. JS IR transformations were not enabled by default due to the remaining unresolved problems in the compiler plugin. ❌
After update to 2.0:
Update of the plan
I've updated the plan and restructured the focus a little. Here are the main priority tasks critical for stabilisation:
As it was stated previously
kotlinx-atomicfu
should get rid of bytecode legacy transformation and enable compiler plugin transformations by default. Prior to enabling compiler transformations by default, we should make sure that all major atomicfu users have compiler transformation already enabled, and figure out the reason if they still use legacy transformation. Here is the current status (more projects will be added).kotlinx.coroutines (flags):
JVM: ✅
Native: ✅
JS: ❌
Compose (flags):
JVM: ✅ 🛠️ (with WA)
Native: ✅
JS: ✅
ktor (flags):
JVM: 🛠️
Native: 🛠️
JS: ❌
Here is the PR that enables JVM and Native compiler plugin transformations in ktor: ktorio/ktor#4018
Will be done when JVM IR transformations are enabled by default.
Moving to the kotlin repo is postponed until compiler plugin transformations are not enabled by default. See the full resolution in the last comment of the issue.
UPD: The current solution was to move the logic of the gradle plugin in kotlin repo to the library. See Move the logic from koltin repo atomicfu gradle plugin to the gradle plugin in the library. #406
And here is the backlog that should be steadily fixed as well:
Compiler plugin:
Here is the backlog compiler plugin issues: #kotlinx-atomicfu
Library:
atomicfu-runtime
package in the compiler plugin: KT-61611 🟨More integration tests were added for different project configurations.
The text was updated successfully, but these errors were encountered: