{"id":121422,"date":"2021-03-04T21:45:51","date_gmt":"2021-03-04T20:45:51","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=121422"},"modified":"2021-03-04T21:45:51","modified_gmt":"2021-03-04T20:45:51","slug":"o-novo-back-end-ir-da-jvm-esta-em-estagio-beta-vamos-torna-lo-estavel-juntos","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/pt-br\/kotlin\/2021\/03\/o-novo-back-end-ir-da-jvm-esta-em-estagio-beta-vamos-torna-lo-estavel-juntos\/","title":{"rendered":"O novo Back-end IR da JVM est\u00e1 em est\u00e1gio Beta: vamos torn\u00e1-lo est\u00e1vel juntos"},"content":{"rendered":"<p>Em breve, tornaremos o novo back-end est\u00e1vel e, portanto, precisamos que cada um de voc\u00eas o adote. Vejamos como fazer isso.<\/p>\n<\/p>\n<p>Temos trabalhado para implementar um novo back-end IR da JVM como parte de nosso projeto em andamento para reescrever todo o compilador. Esse novo compilador aumentar\u00e1 o desempenho tanto para usu\u00e1rios do Kotlin quanto para a pr\u00f3pria equipe do Kotlin, fornecendo uma infraestrutura vers\u00e1til que facilita a inclus\u00e3o de novos recursos de linguagem.<\/p>\n<p>Nosso trabalho no back-end IR da JVM est\u00e1 quase completo e vamos torn\u00e1-lo est\u00e1vel em breve. Por\u00e9m, antes disso, precisamos que voc\u00ea o use. No Kotlin 1.4.30, estamos fazendo o novo back-end produzir bin\u00e1rios est\u00e1veis, o que significa que voc\u00ea poder\u00e1 us\u00e1-lo com seguran\u00e7a nos seus projetos. Continue lendo para saber mais sobre as mudan\u00e7as que esse novo back-end traz, bem como para saber como contribuir com o processo de finaliza\u00e7\u00e3o dessa parte do compilador.<\/p>\n<p>O que muda com o novo back-end:<\/p>\n<ul>\n<li><a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=%23fixed-in-jvm-ir%20sort%20by:%20votes\" target=\"_blank\" rel=\"noopener\">Corrigimos<\/a> v\u00e1rios bugs que estavam presentes no antigo back-end.<\/li>\n<li>O desenvolvimento de novos recursos de linguagem ser\u00e1 muito mais r\u00e1pido.<\/li>\n<li>Adicionaremos todas as melhorias de desempenho futuras ao novo back-end da JVM.<\/li>\n<li>O novo <a href=\"https:\/\/developer.android.com\/jetpack\/compose\" target=\"_blank\" rel=\"noopener\">Jetpack Compose<\/a> s\u00f3 funcionar\u00e1 com o novo back-end.<\/li>\n<\/ul>\n<p>Outro ponto a favor de come\u00e7ar a usar o novo back-end IR da JVM agora mesmo \u00e9 que ele se tornar\u00e1 o padr\u00e3o no Kotlin 1.5.0. Antes que ele se torne o padr\u00e3o, queremos ter certeza de corrigir o m\u00e1ximo de bugs que pudermos e, ao adotar o novo back-end antecipadamente, voc\u00ea ajudar\u00e1 a garantir que a migra\u00e7\u00e3o seja a mais tranquila poss\u00edvel.<\/p>\n<p><strong>Para come\u00e7ar a usar o novo back-end IR da JVM<\/strong><\/p>\n<ol>\n<li>Atualize a depend\u00eancia do Kotlin para 1.4.30 no seu projeto. <\/li>\n<li>\n<p>No arquivo de configura\u00e7\u00e3o de compila\u00e7\u00e3o, adicione as seguintes linhas ao bloco de plataforma de destino do seu projeto\/m\u00f3dulo para ativar o novo compilador.<br \/>\nPara o Gradle, adicione o seguinte:<\/p>\n<ul>\n<li>No 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>No 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>E, para o Maven, adicione o seguinte:<\/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>Fa\u00e7a uma compila\u00e7\u00e3o limpa e execute testes ap\u00f3s habilitar o novo back-end para verificar se o projeto foi compilado com sucesso.<\/li>\n<\/ol>\n<p>Voc\u00ea n\u00e3o deve perceber qualquer diferen\u00e7a, mas se notar, relate-a no <a href=\"https:\/\/kotl.in\/issue\" target=\"_blank\" rel=\"noopener\">YouTrack<\/a> ou envie-nos uma mensagem neste <a href=\"https:\/\/kotlinlang.slack.com\/archives\/C01KWTRVA69\" target=\"_blank\" rel=\"noopener\">Canal Slack<\/a> (receba um convite <a href=\"https:\/\/surveys.jetbrains.com\/s3\/kotlin-slack-sign-up?_ga=2.134077326.1218289669.1605167163-154294388.1603171954\" target=\"_blank\" rel=\"noopener\">aqui<\/a>). Ao fazer isso, anexe uma lista de etapas para reproduzir o problema e um exemplo do c\u00f3digo, se poss\u00edvel.<\/p>\n<p>Voc\u00ea pode voltar para o back-end antigo a qualquer momento simplesmente removendo a linha da etapa dois e reconstruindo o projeto.<\/p>\n","protected":false},"author":1086,"featured_media":113678,"comment_status":"closed","ping_status":"closed","template":"","categories":[907],"tags":[91,477],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/121422"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/users\/1086"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/comments?post=121422"}],"version-history":[{"count":1,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/121422\/revisions"}],"predecessor-version":[{"id":121423,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/121422\/revisions\/121423"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/media\/113678"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/media?parent=121422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/categories?post=121422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/tags?post=121422"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/cross-post-tag?post=121422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}