{"id":121425,"date":"2021-03-04T23:17:35","date_gmt":"2021-03-04T22:17:35","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=121425"},"modified":"2021-03-04T23:17:35","modified_gmt":"2021-03-04T22:17:35","slug":"el-nuevo-backend-ir-de-jvm-esta-en-beta-hagamos-juntos-que-sea-estable","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/es\/kotlin\/2021\/03\/el-nuevo-backend-ir-de-jvm-esta-en-beta-hagamos-juntos-que-sea-estable\/","title":{"rendered":"El nuevo backend IR de JVM est\u00e1 en Beta: hagamos juntos que sea estable"},"content":{"rendered":"<p>Pronto haremos estable el nuevo backend, as\u00ed que necesitamos que todos ustedes lo adopten. Veamos c\u00f3mo hacerlo.<\/p>\n<\/p>\n<p>Hemos estado trabajando para implementar un nuevo backend IR de JVM como parte de nuestro proyecto continuado para reescribir todo el compilador. Este nuevo compilador impulsar\u00e1 el rendimiento tanto para los usuarios de Kotlin como para el propio equipo de Kotlin al proporcionar una infraestructura vers\u00e1til que hace que sea sencillo a\u00f1adir nuevas funcionalidades de lenguaje.<\/p>\n<p>Nuestro trabajo en el backend IR de JVM casi est\u00e1 completo, y pronto lo haremos estable. No obstante, antes de poder hacerlo, necesitamos que usted lo utilice. En Kotlin 1.4.30, estamos haciendo que el nuevo backend produzca binarios estables, lo que significa que podr\u00e1 utilizarlo con seguridad en sus proyectos. Siga leyendo para obtener m\u00e1s informaci\u00f3n sobre los cambios que trae este nuevo backend, as\u00ed como la manera de contribuir al proceso de finalizaci\u00f3n de esta parte del compilador.<\/p>\n<p>Qu\u00e9 cambia con el nuevo backend:<\/p>\n<ul>\n<li>Hemos <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=%23fixed-in-jvm-ir%20sort%20by:%20votes\" target=\"_blank\" rel=\"noopener\">solucionado<\/a> una serie de errores que estaban presentes en el backend antiguo.<\/li>\n<li>El desarrollo de nuevas funcionalidades de lenguaje ser\u00e1 m\u00e1s r\u00e1pido.<\/li>\n<li>A\u00f1adiremos todas las futuras mejoras de rendimiento al nuevo backend de JVM.<\/li>\n<li>El nuevo <a href=\"https:\/\/developer.android.com\/jetpack\/compose\" target=\"_blank\" rel=\"noopener\">Jetpack Compose<\/a> solo funcionar\u00e1 con el nuevo backend.<\/li>\n<\/ul>\n<p>Otro punto a favor de empezar a utilizar el nuevo backend IR de JVM ahora es que se convertir\u00e1 en el predeterminado en Kotlin 1.5.0. Antes de que lo hagamos la opci\u00f3n predeterminada, queremos asegurarnos de solucionar el mayor n\u00famero posible de errores, y si adopta el nuevo backend pronto, nos ayudar\u00e1 a garantizar que la migraci\u00f3n sea lo m\u00e1s sencilla posible.<\/p>\n<p><strong>Para empezar a utilizar el nuevo backend IR de JVM<\/strong><\/p>\n<ol>\n<li>Actualice la dependencia de Kotlin a la versi\u00f3n 1.4.30 en su proyecto. <\/li>\n<li>\n<p>En el archivo de configuraci\u00f3n del build, a\u00f1ada las siguientes l\u00edneas al bloque de plataforma de destino de su proyecto\/m\u00f3dulo para activar el nuevo compilador.<br \/>\nPara Gradle, a\u00f1ada lo siguiente:<\/p>\n<ul>\n<li>En Groovy\n<pre class=\"kotlin-code\" data-highlight-only=\"true\" theme=\"idea\" indent=\"4\" style=\"visibility: hidden; padding: 36px 0;\">\ncompileKotlin {\n    kotlinOptions.useIR = true\n}\n<\/pre>\n<\/li>\n<li>En Kotlin\n<pre class=\"kotlin-code\" data-highlight-only=\"true\" theme=\"idea\" indent=\"4\" style=\"visibility: hidden; padding: 36px 0;\">\n    Kotlin\n    import org.jetbrains.kotlin.gradle.tasks.KotlinCompile\n    \/\/ ...\n    val compileKotlin: KotlinCompile by tasks\n    compileKotlin.kotlinOptions.useIR = true\n<\/pre>\n<\/li>\n<\/ul>\n<p>Y para Maven a\u00f1ada lo siguiente:<\/p>\n<pre class=\"kotlin-code\" data-highlight-only=\"true\" theme=\"idea\" indent=\"4\" style=\"visibility: hidden; padding: 36px 0;\"> \n&lt;configuration&gt;\n    &lt;args&gt;\n        &lt;arg&gt;-Xuse-ir&lt;\/arg&gt;\n    &lt;\/args&gt;\n&lt;\/configuration&gt;\n<\/pre>\n<\/p>\n<\/li>\n<li>Haga un build limpio y ejecute pruebas despu\u00e9s de habilitar el nuevo backend para comprobar que su proyecto compila correctamente.<\/li>\n<\/ol>\n<p>No deber\u00eda notar ninguna diferencia, pero si lo hace, informe al respecto en <a href=\"https:\/\/kotl.in\/issue\" target=\"_blank\" rel=\"noopener\">YouTrack<\/a> o env\u00edenos un mensaje en este <a href=\"https:\/\/kotlinlang.slack.com\/archives\/C01KWTRVA69\" target=\"_blank\" rel=\"noopener\">canal de Slack<\/a> (obtenga una invitaci\u00f3n <a href=\"https:\/\/surveys.jetbrains.com\/s3\/kotlin-slack-sign-up?_ga=2.134077326.1218289669.1605167163-154294388.1603171954\" target=\"_blank\" rel=\"noopener\">aqu\u00ed<\/a>). Cuando lo haga, adjunte una lista de pasos para reproducir el problema y una muestra de c\u00f3digo, si es posible.<\/p>\n<p>Puede volver al backend antiguo en cualquier momento simplemente quitando la l\u00ednea del paso dos y reconstruyendo el proyecto.<\/p>\n","protected":false},"author":1086,"featured_media":113680,"comment_status":"closed","ping_status":"closed","template":"","categories":[907],"tags":[91,477],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin\/121425"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/users\/1086"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/comments?post=121425"}],"version-history":[{"count":1,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin\/121425\/revisions"}],"predecessor-version":[{"id":121426,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin\/121425\/revisions\/121426"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/media\/113680"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/media?parent=121425"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/categories?post=121425"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/tags?post=121425"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/cross-post-tag?post=121425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}