Kotlin 1.1 Release Candidate is Here

Posted on by Mikhail Glukhikh

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.

31 Responses to Kotlin 1.1 Release Candidate is Here

  1. Mike says:

    February 17, 2017

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

    • Mikhail Glukhikh says:

      February 17, 2017

      Thanks, fixed

  2. Kotlin 1.1 RC is Here | Ace Infoway says:

    February 17, 2017

    […] 1.1 RC is Here {$excerpt:n} submitted by /u/belovrv [link] [comments] Source: […]

  3. 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 🙂

  4. 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

  5. Kotlin 1.1 RC 版发布,即将发布正式版 | News Pod says:

    February 18, 2017

    […] 发布主页 […]

  6. 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.

  7. hhhxxjj says:

    February 18, 2017

    Congratulations. Looking forward to Kotlin 1.1

  8. 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 ?

    • Andrey Breslav says:

      February 21, 2017

      I believe Kotlin is compatible with compact1.

      Java 9 modularity support is coming soon.

  9. 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!

    • Andrey Breslav says:

      February 21, 2017

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

  10. Выпущен релиз-кандидат Kotlin 1.1 – Русский Эпик says:

    February 18, 2017

    […] официальный блог KotlinИван Бирюков, страж […]

  11. 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?

    • 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

  12. JVM-Sprache Kotlin: Zweite Beta-Version von Kotlin 1.1 erschienen [Update] - JAXenter says:

    February 20, 2017

    […] Informationen finden Sie in diesem Blogpost sowie auf der […]

  13. Victor says:

    February 20, 2017

    Kotlin, I really like it

  14. 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.

  15. 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'
          }
       }
    }
    
    • Andrey Breslav says:

      February 27, 2017

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

      • 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.

  16. 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

    • Andreas M. Oberheim says:

      February 26, 2017

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

      • 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?

  17. 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