{"id":118616,"date":"2021-02-23T12:36:27","date_gmt":"2021-02-23T11:36:27","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=118616"},"modified":"2021-02-23T12:36:27","modified_gmt":"2021-02-23T11:36:27","slug":"le-nouveau-backend-ir-de-la-jvm-est-en-phase-beta-favorisons-sa-stabilite-ensemble","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/fr\/kotlin\/2021\/02\/le-nouveau-backend-ir-de-la-jvm-est-en-phase-beta-favorisons-sa-stabilite-ensemble\/","title":{"rendered":"Le nouveau backend IR de la JVM est en phase b\u00eata : favorisons sa stabilit\u00e9 ensemble"},"content":{"rendered":"<p>Nous allons bient\u00f4t rendre le nouveau backend stable, nous avons donc besoin que chacun d\u2019entre vous l\u2019adopte. Voyons comment proc\u00e9der.<\/p>\n<p>Nous avons travaill\u00e9 sur l&#8217;impl\u00e9mentation d\u2019un nouveau backend IR pour la JVM dans le cadre de notre projet de r\u00e9\u00e9criture de l\u2019ensemble du compilateur. En fournissant une infrastructure polyvalente permettant d\u2019ajouter facilement de nouvelles caract\u00e9ristiques au langage, ce nouveau compilateur am\u00e9liorera les performances tant pour les utilisateurs de Kotlin que pour l\u2019\u00e9quipe Kotlin elle-m\u00eame.<\/p>\n<p>Notre travail sur le backend IR de la JVM est presque termin\u00e9 et nous allons bient\u00f4t le rendre stable. Mais pour cela, nous avons besoin que vous l\u2019utilisiez. Avec Kotlin 1.4.30, nous avons fait en en sorte que le nouveau backend produise des binaires stables, ce qui signifie que vous pouvez l\u2019utiliser dans vos projets en toute s\u00e9curit\u00e9. Poursuivez votre lecture pour d\u00e9couvrir les changements qu&#8217;apporte ce nouveau backend et savoir comment contribuer au processus de finalisation de cette partie du compilateur.<\/p>\n<p>Ce qui change avec le nouveau backend :<\/p>\n<ul>\n<li>Nous avons <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=%23fixed-in-jvm-ir%20sort%20by:%20votes\" target=\"_blank\" rel=\"noopener\">corrig\u00e9<\/a> un certain nombre de bugs pr\u00e9sents dans l\u2019ancien backend.<\/li>\n<li>Le d\u00e9veloppement de nouvelles fonctionnalit\u00e9s du langage sera beaucoup plus rapide.<\/li>\n<li>Nous ajouterons toutes les futures am\u00e9liorations de performance au nouveau backend de la JVM.<\/li>\n<li>Le nouveau <a href=\"https:\/\/developer.android.com\/jetpack\/compose\" target=\"_blank\" rel=\"noopener\">Jetpack Compose<\/a> ne fonctionnera qu\u2019avec le nouveau backend.<\/li>\n<\/ul>\n<p>Autre argument en faveur de l&#8217;utilisation du nouveau backend IR de la JVM\u00a0: il deviendra la valeur par d\u00e9faut dans Kotlin 1.5.0. Avant cela, nous voulons nous assurer de corriger autant de bugs que possible ; en adoptant le nouveau backend rapidement, vous contribuerez \u00e0 optimiser la fluidit\u00e9 de cette migration.<\/p>\n<p><strong>Pour commencer \u00e0 utiliser le nouveau backend IR de la JVM<\/strong><\/p>\n<ol>\n<li>Mettez \u00e0 jour la d\u00e9pendance Kotlin vers la version 1.4.30 dans votre projet. <\/li>\n<li>\n<p>Dans le fichier de configuration de la build, ajoutez les lignes suivantes au bloc de la plateforme cible de votre projet\/module pour activer le nouveau compilateur.<br \/>\nPour Gradle, ajoutez le code suivant :<\/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>Et pour Maven, ajoutez ce qui suit :<\/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>Veuillez lancer un build propre et effectuer des tests apr\u00e8s avoir activ\u00e9 le nouveau backend pour v\u00e9rifier que votre projet compile correctement.<\/li>\n<\/ol>\n<p>Vous ne devriez pas remarquer de diff\u00e9rence, mais si c\u2019est le cas, veuillez nous le signaler dans <a href=\"https:\/\/kotl.in\/issue\" target=\"_blank\" rel=\"noopener\">YouTrack<\/a> ou nous envoyer un message dans ce <a href=\"https:\/\/kotlinlang.slack.com\/archives\/C01KWTRVA69\" target=\"_blank\" rel=\"noopener\">canal Slack<\/a> (cliquez <a href=\"https:\/\/surveys.jetbrains.com\/s3\/kotlin-slack-sign-up?_ga=2.134077326.1218289669.1605167163-154294388.1603171954\" target=\"_blank\" rel=\"noopener\">ici<\/a> pour obtenir une invitation). Dans ce signalement, joignez si possible une liste des \u00e9tapes \u00e0 suivre pour reproduire le probl\u00e8me et un \u00e9chantillon de code.<\/p>\n<p>Vous pouvez revenir \u00e0 l\u2019ancien backend \u00e0 tout moment\u00a0simplement en retirant la ligne de la deuxi\u00e8me \u00e9tape et en g\u00e9n\u00e9rant \u00e0 nouveau le projet. <\/p>\n<p>Auteur de l&#8217;article original en anglais : <a href=\"https:\/\/blog.jetbrains.com\/author\/alinagrebenkina\/\" target=\"_blank\" rel=\"noopener noreferrer\">Alina Grebenkina<\/a><\/p>\n","protected":false},"author":813,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","categories":[],"tags":[],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/kotlin\/118616"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=118616"}],"version-history":[{"count":2,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/kotlin\/118616\/revisions"}],"predecessor-version":[{"id":118620,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/kotlin\/118616\/revisions\/118620"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=118616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=118616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=118616"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=118616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}