Nuevo Kotlin User Group en Valencia y event "Estado de Machine Learning en Kotlin"
¡Se acaba de inaugurar el nuevo Kotlin Valencia User Group! Inicialmente organizado por Carlos Cáceres
Nos alegra anunciar Kotlin 1.1.50, una nueva actualización con corrección de errores y mejoras en las herramientas. Esta actualiación incluye:
La lista completa de cambios en esta versión está disponible en el changelog.
Nos gustaría agradecer a los contribuyentes externos cuyas PRs se han incluído en esta versión:
Andrius Semionovas,
Dimach,
Kirill Rakhman,
Toshiaki Kameyama,
scache,
André Oriani,
Daniil Vodopian,
Nagesh Susarla
y
Knize.
Empezando con esta versión, en vez de usar las versiones 1.1.5, 1.1.5-1, 1.1.5-2, etc. empezaremos a usar 1.1.50, 1.1.51, 1.1.52.
Queremos publicar nustros artefactor de JS a NPM con el mismo número de versión que la versión de la release. El problema es que usamos el número tras el guión como número de hotfix, mientras que NPM considera estas versiones como versión preeliminar. Lo que quiere decir que NPM considera Kotlin 1.1.5 más reciente que 1.1.5-1, y lo cierto es que ¡es justo lo contrario! Cambiando el esquema de versionado, arreglamos este problema.
Kotlin 1.1.4 introdujo un soporte inicial para las anotaciones de nulabilidad por defecto, como <code class="highlighter-rouge">@ParametersAreNonnullByDefault
como una característica a optar. En Kotlin 1.1.50, los problemas de nulabilidad detectados gracias a dichas anotaciones se reportan como warnings por defecto. Para convertirlas en errores, añadid el parámetro de la línea de comandos <code class="highlighter-rouge">-Xjsr305=strict
. Para deshabilitar los warnings, usad <code class="highlighter-rouge">-Xjsr305=ignore
. (Nótse que el parámetro de línea de comandos <code class="highlighter-rouge">-Xjsr305-annotations=enable
, que se usaba para habilitar las anotaciones de nulabilidad por defecto en Kotlin 1.1.4, ahora está deprecado.)
También, desde esta versión, Kotlin ya no requiere tener un .jar con las anotaciones de JSR-305 en las dependencias de una librería para ser capaz de leer la información de nulabilidad de dicha librería.
Kotlin 1.1.50 introduce varios cambios que rompen la compatibilidad binaria con el backend de JavaScript. Esto significa que tendréis que actualizar vuestro compilador a la 1.1.50 o superior si queréis usar librerías compiladas con Kotlin/JS 1.1.50. Seguís podiendo utilizar librerías compiladas con versiones más antiguas del compilador de Kotlin.
La forma en la que las funciones inline se convierten a JS se ha cambiado para evitar usar nombres completamente cualificados en los cuerpos de las funciones inline. Esto reduce el tamaño del archivo JS resultante.
Las arrays primitivas se transforman en TypedArrays por defecto ahora. Esta caracerística se puede deshabilitar pasando <code class="highlighter-rouge">-Xtypedarrays=false
al compilador. Este cambio afecta a la compatibilidad hacia alante – usar el compilador viejo con librerías nuevas está desaconsejado.
Nótese que la nueva representación de arrays también puede afectar a llamar JS desde Kotlin. Para llamar a una función JS que espera un Array normal y no un TypedArray, usad la función de extensión <code class="highlighter-rouge">toTypedArray
para convertir un TypedArray en un Array normal. Las funciones como <code class="highlighter-rouge">toIntArray
se pueden usar para convertir un Array normal de primitivas en un TypedArray.
valintArray:IntArray=intArrayOf(1,2,3)// equivalent to Int32Array.of(1, 2, 3)
valarrayOfInts:Array<Int>=intArray.toTypedArray()// arrayOfInts equals to [1, 2, 3]
valotherIntArray:IntArray=arrayOfInts.toIntArray()//otherIntArrayisInt32Array`
valintArray:Any=intArrayOf(1,2,3)// Int32Array.of(1, 2, 3)
intArrayisIntArray&&intArray!isArray<*>// true
valarrayOfInts:Any=arrayOf(1,2,3)// [1, 2, 3]
arrayOfInts!isIntArray&&arrayOfIntsisArray<*>//true`
Kotlin 1.1.50 mejora la herramienta de eliminación de código muerto para hacer más fácil depurar su salida. La herramienta detecta sourcemaps existentes y los transforma junto al código. Echad un ojo al tutorial para aprender más sobre la depuración de JS.
La nueva versión trae muchas mejoras al plugin de IntelliJ IDEA:
Para actualizar el plugin, usad <code class="highlighter-rouge">Tools | Kotlin | Configure Kotlin Updates
y pulsad el botón <code class="highlighter-rouge">Check for updates now
. No olvidéis actualizar el compilador y versión de la librería estándar en vuestros build scripts de Maven y de Gradle.
Como de costumbre, si os encontráis con cualquier problema con esta versión, os invitamos a pedir ayudar en los foros, en Slack (invitación aquí) o reportar cualquier problema en el issue tracker.
¡A Kotlinear!