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

Updates for JVM/IR atomicfu compiler plugin #322

Closed
mvicsokolova opened this issue Jul 18, 2023 · 0 comments
Closed

Updates for JVM/IR atomicfu compiler plugin #322

mvicsokolova opened this issue Jul 18, 2023 · 0 comments

Comments

@mvicsokolova
Copy link
Collaborator

mvicsokolova commented Jul 18, 2023

The following updates in the JVM/IR plugin are coming in 1.9.20:

  • Lots of refactoring with preparation for K/N support (Atomicfu compiler plugin for native #261): commonization of transformations.
  • Improved error handling (checks for visibility constraints, appending message about usage constraints in case of an error).
  • Explicit requirements for the visibility of atomic properties: to prevent leaking they should be private/internal or be members of private/internal classes.
  • Fixed visibility of generated properties: volatile properties are always private and atomic updaters have the same visibility as the original atomic property.
  • Volatile fields are generated from scratch and original atomic properties are removed.
  • Delegated properties support is fixed (only declaration in the same scope is allowed).
  • Non-inline atomic extensions are forbidden.
  • For top-level atomics: only one wrapper class per file (with corresponding visibility) is generated.
  • Bug fixes.

All the changes are here: KT-MR-10579
YT issue (necessary because changes are merged in Kotlin master): KT-60528

mvicsokolova added a commit to Kotlin/kotlinx.coroutines that referenced this issue Jul 18, 2023
…e or internal

The new atomicfu JVM compiler plugin (since 1.9.20) will explicitly require atomic properties to be private or internal (or to be members of private or internal classes).

See: Kotlin/kotlinx-atomicfu#322
mvicsokolova added a commit to Kotlin/kotlinx.coroutines that referenced this issue Jul 18, 2023
…e or internal

The new atomicfu JVM compiler plugin (since 1.9.20) will explicitly require atomic properties to be private or internal (or to be members of private or internal classes).

See: Kotlin/kotlinx-atomicfu#322
YT issue: KT-60528
mvicsokolova added a commit to Kotlin/kotlinx.coroutines that referenced this issue Jul 18, 2023
…e or internal (#3808)

The new atomicfu JVM compiler plugin (since 1.9.20) will explicitly require atomic properties to be private or internal (or to be members of private or internal classes).

See: Kotlin/kotlinx-atomicfu#322
YT issue: KT-60528
KotlinBuild pushed a commit to JetBrains/kotlin that referenced this issue Jul 20, 2023
The following updates in the JVM/IR plugin were made:
* Lots of refactoring with preparation for K/N support: commonization of transformations.
* Improved error handling (checks for visibility constraints, appending message about usage constraints in case of an error).
* Explicit requirements for the visibility of atomic properties: to prevent leaking they should be private/internal or be members of private/internal classes.
* Fixed visibility of generated properties: volatile properties are always private and atomic updaters have the same visibility as the original atomic property.
* Volatile fields are generated from scratch and original atomic properties are removed.
* Delegated properties support is fixed (only declaration in the same scope is allowed).
* Non-inline atomic extensions are forbidden.
* For top-level atomics: only one wrapper class per file (with corresponding visibility) is generated.
* Bug fixes.

The corresponding tickets: 
Kotlin/kotlinx-atomicfu#322
KT-60528



Merge-request: KT-MR-10579
Merged-by: Maria Sokolova <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant