Skip to content

Releases: JetBrains/kotlin

M10.1

26 Dec 10:41
Compare
Choose a tag to compare
M10.1 Pre-release
Pre-release

Bugfix update

  • Multiple fixes and performance tweaks in the IDE
  • Gradle plugin now supports JavaScript
  • Minor tweaks and additions to the Standard Library
  • Better crash reports in the compiler

See M10 release notes here

Kotlin M10

17 Dec 10:58
Compare
Choose a tag to compare
Kotlin M10 Pre-release
Pre-release

What's new:

  • Language
    • Dynamic types (supported only when compiled to JavaScript)
    • Type inference supports capture for use-site variance
    • [breaking change] Reified type parameters for inline-functions
    • [breaking change] varargs are translated to Array<out T> instead of Array<T>
  • Java Interop
    • Static backing fields for properties in objects
    • [platformStatic] supported for properties
    • [native] annotation and JNI supported
    • HotSwap fixed in debugger (used to break because of lambdas)
    • Support for safe calls in assignments: a?.b = c
  • JavaScript Interop
    • Dynamic types (mentioned above)
    • js("string") function to write inline JS code
    • [nativeInvoke], [nativeGetter] and [nativeSetter] annotations
    • Escaping JS-keywords in generated code
    • No "unused" warnings in native declarations
    • -no-stdlib CLI option
  • Standard Library
    • [potentially breaking change] Array.size() and CharSeqence.length() are functions now
    • [potentially breaking change] CharSequence: charAt() and subsequence() introduced, get() is now an extension
    • mapIndexed, withIndex, forEachIndexed
    • [deprecation] size/length/first/head/tail/last properties
    • empty list/set/map singletons
    • comparator functions (compareBy, thenBy)
    • reified API (filterIsInstance, …)
    • componentN functions on collections: val (x, y) = “a=b”.split(“=”)
  • IDE/Compiler
    • Incremental compilation in mixed Kotlin/Java projects
    • Completion inserts casts to run-time types in Evaluate Expression
    • Copy Reference supported for Kotlin classes
    • Create From Usage supports type arguments, classes and packages
    • Change Signature interoperates with Java and supports type parameters
    • Applications runner supports main() function in objects
    • Automatic stdlib updates for JS, support for using library from plugin
    • Maven projects configuration for JS
    • Code Coverage information in editor (in IntelliJ IDEA 14)
    • Completion improvements: inheritors, sorting and highlighting members
    • Performance optimizations: memory in the IDE, parsing time
  • Build Tools
    • Support for new versions of Gradle and Android Studio

Kotlin M9

15 Oct 14:33
Compare
Choose a tag to compare
Kotlin M9 Pre-release
Pre-release

What's new:

  • Language
    • Platform Types
    • [breaking change] Local objects prohibited
    • Non-local returns from inline functions
    • type is no longer a keyword
  • JVM
    • [platformStatic] annotations
    • Byte code size improvements
    • Useless boxing/unboxing elimination
  • JavaScript
    • Language features supported: delegation, callable references, Long and Char, inline functions, multiple catch-blocks
    • [breaking change] Native traits exist only at compile time
    • [breaking change] New name mangling strategy
    • [breaking change] Packages renamed: js.* and js.debug.* -> kotlin.js.*, kotlin.query.* -> jquery.*
    • [breaking change] Changes in println() behavior
  • Incremental compilation in IntelliJ IDEA (experimental)
  • IDE plugin changes
    • Code Duplication detection in Extract Function
    • Create From Usage
    • Completion takes IDE modules into account
    • Find Usage and Rename respect conventions for operator overloading
    • Delegated properties in debugger
    • Completion improvements
  • CLI
    • [breaking change] Command Line options reworked

Kotlin M8

02 Jul 13:13
Compare
Choose a tag to compare
Kotlin M8 Pre-release
Pre-release

What's new:

  • JVM
    • Reflection for properties introduced
    • Inline functions
      • Inlines into objects are supported
      • Default parameter values supported for inline functions
    • Generated code speedups
      • delegated properties work faster now
      • when's with constants are faster due to dedicated bytecode instructions used
    • breaking change Reporting platform signature clashes
      • [platformName] annotation to resolve signature conflicts
    • transient, synchronized and strictfp supported on the JVM
  • JS
    • data classes supported
    • LinkedHashSet/LinkedHashMap supported
  • Language
    • breaking change private in a package now means "in this package and subpackages in the same module"
    • breaking change extension properties can't have backing fields
    • breaking change Bare @ and @@ are no longer available
  • Standard library
    • slice()
    • collection-like operations on strings
    • Map.contains
    • join() for rendering separated lists
    • String.substringBefore/After[Last]
    • String.replaceBefore/After[Last]
    • Appendable.appendln()
    • StringBuilder {}
    • Iterable.merge(other) { (v1,v2)→v }
    • set operations (union, intersect, subtract)
  • IDE
    • IntelliJ IDEA 14 EAP supported
    • Debugger
      • Evaluate expression
      • Smart step into
    • Refactorings
      • Move toplevel declarations to separate file
      • Extract function (not finished, but some cases working)
      • Extract local function
    • Intentions
      • DeMorgan law
      • Flip binary expression (== etc)
      • Split if
      • Replace with operator sign
      • Replace with traditional assignment
      • Replace with infix call
      • Simplify boolean expressions
      • Add/Remove explicit type arguments
      • assert <-> if with throw
      • if <-> ?:
      • !! <-> if
      • make types explicit/implicit in lambda
      • forEach { } <-> for loop
      • string concatenation <-> interpolation
    • Smart completion
      • smarter on overloads
      • callable references (::functionName)
      • lambdas
      • !! and ?: for nullable members
      • anonymous classes (object expressions)
      • constants in when()
    • Formatter improved
    • Structure view shows members of supertypes
    • J2K converter improved
    • Speedups in highlighting and completion
  • Support for new versions of Gradle/Android (0.10, 0.11, 0.12)

Dot Operator

01 Apr 13:14
Compare
Choose a tag to compare
Dot Operator Pre-release
Pre-release

Release date: April 1, 2014

What's new

  • The Dot operator, as described here
    Implemented here.

Limitations:

The following things are NOT implemented:

  1. The higher-order dots. I find this feature quite specific and less useful in practice so I guess it can be put off for a while
  2. Dot flavours. For me this feature looks rather confusing, so I suggest reconsidering whether it's worth implementing at all

Kotlin M7

20 Mar 16:30
Compare
Choose a tag to compare
Kotlin M7 Pre-release
Pre-release

What's new:

  • Language
    • Inline functions
    • [breaking change] jet package renamed to kotlin
    • [breaking change] toString(), equals() and hashCode() are now members of Any
    • References to local functions
  • Interop
    • [throws] annotation for JVM target
    • Overloading supported for JS target
  • Standard Library
    • [breaking change] Streams introduced
  • IDE enhancements
    • Rename/move refactorings improved
    • Safe delete
    • New intention actions
    • Performance improvements

Kotlin M6.2

06 Dec 16:02
Compare
Choose a tag to compare
Kotlin M6.2 Pre-release
Pre-release

What's new:

  • Language features
    • Tail-call optimization with [tailRecursive]
    • Constant expression evaluation
    • Suffixes for Longs and Floats: 1L and 1.0F
  • Compilation to JavaScript
    • Default arguments
    • Super-constructor calls
    • Class-objects in traits
  • Java Inteoperability
    • @ReadOnly and @Mutable for collections
  • Android
    • Better annotations for Android SDK
  • IDE
    • Support for IntelliJ IDEA 13
    • Find Usages
    • Compiler preferences
    • Smart completion (Ctrl+Shift+Space)
    • Rename from Java
    • IDE warns on misusing Kotlin APIs from Java
  • Ant
    • Integration with <javac>
    • Support for compilation to JavaScript

Kotlin M6.1

03 Oct 13:56
Compare
Choose a tag to compare
Kotlin M6.1 Pre-release
Pre-release

What's new:

  • Language features
    • else is not required in when-statements
    • Type argument inference uses smart casts
    • Ability to suppress warnings with [suppress("...")] annotation
    • Local returns in lambda expressions
  • Compilation to JavaScript
    • Enums
    • Class Objects
    • Delegated properties
    • Multi-Declarations
    • SourceMaps
  • IntelliJ Plugin Improvements
    • Automatic configuration of Maven and Gradle projects
    • Convert member function to extension function
    • Navigation to getters and setters of a delegated property
    • Navigation to iterator/next/hasNext in a for loop
    • Navigation to invoke() from a call site
    • Improvements on Find Usages including support for constructors and overrides

Read more in this blog post

Kotlin M6

14 Aug 14:07
Compare
Choose a tag to compare
Kotlin M6 Pre-release
Pre-release

What's new:

  • Language features
    • SAM Conversions
    • Annotation improvements
    • Static fields visible from Java
  • Android
  • IDE features
    • Inline variable, Safe delete and other refactorings
    • TestNG support
    • Faster code completion

See a detailed description in this blog post.