Releases

Kotlin 1.1 Release Candidate is Here

As of today, Kotlin 1.1 has finally reached the release candidate stage. This means that most of our development work is done, we’re happy with the results, and we’ll soon publish them as a final Kotlin 1.1 release. We’ve done a lot of testing for this release internally, but the real world is always more varied than any test environment, so we need your help. Please try this build, and let us know about your experience!

11RC-01

The only new feature in the release candidate is the takeUnless function – a counterpart of takeIf (added earlier in 1.1) but with an inverted condition. As for bugfixes, there’s much more, and the changelog gives you a complete list. Among other things, we’ve fixed several performance problems in the IDE – both long-standing sore points and recent regressions.

Migration Notes

As we noted earlier, all binaries produced by pre-release versions are outlawed by the compiler: you’re now required to recompile everything that was compiled by 1.1‑M0x and Beta’s. All the code from 1.0.x is, of course, perfectly fine without recompilation.

Up until now, you could run the Kotlin compiler under any version of Java starting with Java 6, but this is about to change – starting with one of the first 1.1.x updates, the compiler will only run under Java 8 or 9. To prepare you for the migration, the compiler now emits a warning if you run it under Java 6 or 7. Note that this only affects the build environment; the compiled code is still compatible with Java 6 by default, and we have no plans to remove the support for that.

The .javaClass extension property is now deprecated. As a replacement, please use ::class.java. The IDE offers a quickfix to update usages, both individually and across the entire project.

To reduce the size of the JavaScript standard library, we’ve deprecated a lot of helper functions in the kotlin.dom and kotlin.dom.build packages, and we’re going to remove them in a future update.

How to try it

In Maven/Gradle: Add http://dl.bintray.com/kotlin/kotlin-eap-1.1 as a repository for the build script and your projects; use 1.1.0-rc-91 as the version number for the compiler and the standard library.

In IntelliJ IDEA: Go to Tools → Kotlin → Configure Kotlin Plugin Updates, then select “Early Access Preview 1.1” in the Update channel drop-down list, then press Check for updates.

In Eclipse: install the plugin with the following update site
https://dl.bintray.com/jetbrains/kotlin/eclipse-plugin/0.8.0

The command-line compiler can be downloaded from the Github release page.

On try.kotlinlang.org.

Let’s Kotlin!

Comments below can no longer be edited.

27 Responses to Kotlin 1.1 Release Candidate is Here

  1. Avatar

    Mike says:

    February 17, 2017

    ‘As a replacement, please ::class.java.’
    Did you mean ‘please use’, or, maybe, ‘please write’?

    • Avatar

      Mikhail Glukhikh says:

      February 17, 2017

      Thanks, fixed

  2. Avatar

    Maciej Górski says:

    February 17, 2017

    Please change to “the compiler will only run under JDK 8 or 9”. It causes fear among developers when it says Java there 🙂

  3. Avatar

    Vitalii Kravchenko says:

    February 18, 2017

    Also don’t forget to update this dependency, if you used coroutines in 1.1-beta:
    https://bintray.com/kotlin/kotlin-eap-1.1/kotlinx.coroutines

  4. Avatar

    Alex Berry says:

    February 18, 2017

    This is great news. I’m doing a one off project for work next week during a hack-a-thon and I plan on using this release. I haven’t written any practical code using coroutines so I’m looking forward to it.

  5. Avatar

    hhhxxjj says:

    February 18, 2017

    Congratulations. Looking forward to Kotlin 1.1

  6. Avatar

    kotlin-user says:

    February 18, 2017

    do kotlink run on java prifile compact1 ?

    http://www.oracle.com/technetwork/java/embedded/resources/tech/compact-profiles-overview-2157132.html

    do kotlin support java modularity from java 9 ?

    • Avatar

      Andrey Breslav says:

      February 21, 2017

      I believe Kotlin is compatible with compact1.

      Java 9 modularity support is coming soon.

  7. Avatar

    Martin Vysny says:

    February 18, 2017

    Great news! Looking forward for 1.1 final 🙂

    Please, what’s the status of Gradle integration? Will the IDE plugin work out-of-the-box with Kotlin Gradle scripts when 1.1 is released? Also, when will the Kotlin support be mainlined into official Gradle? Currently one needs to use custom Gradle builds if I’m not mistaken.

    Thanks!

    • Avatar

      Andrey Breslav says:

      February 21, 2017

      IDE support is part of 1.1. Can’t speak for the plans on the Gradle side

  8. Avatar

    Max says:

    February 18, 2017

    Is Kotlin coroutine support always going to be vended as separate kotlinx-coroutines-* modules, or is it going to be rolled into the core release at some point?

    • Avatar

      Andrey Breslav says:

      February 21, 2017

      We’ll see. Most likely, we’ll integrate a part of what’s now in kotlinx.coroutines into the Standard Library

  9. Avatar

    Victor says:

    February 20, 2017

    Kotlin, I really like it

  10. Avatar

    Chris Hatton says:

    February 21, 2017

    Congratulations on the release, I am very excited about Kotlin and have just successfully nominated it as our chosen language for Android Development at work.

    One problem I have to point out with your release process is: I am earnestly trying to learn about the new co-routines feature and frankly I am totally lost with the simplest use-case. This is because I cannot see a definitive API published for 1.1, or an official comprehensive guide to the coroutines feature. All I can see it an incomplete example in the release notes and a whole load of blog-posts which all relate to the 1.1-M0x releases whose API has since changed.

    So on the whole, co-routines: a feature I’m completely sold on and completely unable to use because there is no reliable information on it.

  11. Avatar

    Joshua Rosen says:

    February 26, 2017

    I’ve hit an issue when migrating from this.javaClass.kotlin to this::class. The resulting type of the former does not have an out modifier on the generic option, whereas the latter does have the out modifier. This seems to prevent me from calling .get(this) on properties returned by the class’s memberProperties.

    Is this an intentional difference?

     
    class Foo {
       fun bar() {
          val a: KClass = this.javaClass.kotlin
          val b: KClass = this::class
    
          a.memberProperties.forEach { property: KProperty1<Foo, *> ->
              property.get(this)
          }
    
          b.memberProperties.forEach { property: KProperty1<out Foo, *> ->
              property.get(this) //Error: Kotlin: Out-projected type 'KProperty1<out Foo,*>' prohibits the use of 'public abstract fun get(receiver: T): R defined in kotlin.reflect.KProperty1'
          }
       }
    }
    
    • Avatar

      Andrey Breslav says:

      February 27, 2017

      Due to such issues, we decided to withdraw this deprecation for now

      • Avatar

        Joshua Rosen says:

        March 2, 2017

        Thanks very much for considering my issue! Sorry if threw a wrench into things.

        Good luck getting the deprecation back in the future.

  12. Avatar

    Andreas M. Oberheim says:

    February 26, 2017

    Installation in Eclipse does not work:

    An error occurred while collecting items to be installed
    session context was:(profile=C__Users_user_eclipse_jee-neon_eclipse, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
    No repository found containing: osgi.bundle,org.eclipse.net4j.jms.api,3.0.0.v20110215-1551
    No repository found containing: osgi.bundle,org.springframework.roo.wrapping.protobuf-java-lite,2.3.0.0001

    • Avatar

      Andreas M. Oberheim says:

      February 26, 2017

      it works! was spring tool suite that caused this error message while installing the kotlin plugin

      • Avatar

        Mikhail Zarechenskiy says:

        February 27, 2017

        Currently I can’t reproduce the problem with a clean installation of STS. Could you please file an issue to our bugtracker (https://youtrack.jetbrains.com/issues/KT) with more details of your environment?

  13. Avatar

    Roman says:

    March 1, 2017

    Cannot change compiler and runtime version to 1.1.0-rc-91. Only 1.0.6.
    Plugin installed all repositories added