ВСрсия 19.3.0 Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° машина GraalVM ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Python, JavaScript, Ruby ΠΈ R, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° нСя

Компания Oracle ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΎ пусканС Π½Π° унивСрсална Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина GraalVM 19.3.0, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° стартиранС Π½Π° прилоТСния Π² JavaScript (Node.js), Python, Ruby, R, всякакви Π΅Π·ΠΈΡ†ΠΈ Π·Π° JVM (Java, Scala, Clojure, Kotlin) ΠΈ Π΅Π·ΠΈΡ†ΠΈ, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° LLVM Π±ΠΈΡ‚ΠΊΠΎΠ΄ (C, C++ , РъТда). Π Π°Π·ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ 19.3 Π΅ класифицирано ΠΊΠ°Ρ‚ΠΎ вСрсия Π·Π° Π΄ΡŠΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° (LTS) ΠΈ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅Π»Π΅Π½ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° JDK11, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Java ΠΊΠΎΠ΄ Π² изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (GraalVM Native Image). Код Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° разпространява сС ΠΎΡ‚ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€Π°Π½ ΠΏΠΎΠ΄ GPLv2. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ бяха пуснати Π½ΠΎΠ²ΠΈ вСрсии Π½Π° Python, JavaScript, Ruby ΠΈ R Π΅Π·ΠΈΠΊΠΎΠ²ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ GraalVM - GraalPython, GraalJS, Π’Ρ€ΡŽΡ„Π΅Π»Π ΡƒΠ±ΠΈΠ½ ΠΈ FastR.

GraalVM Π’ΠΎΠΉ осигурява JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° изпълнява ΠΊΠΎΠ΄ ΠΎΡ‚ всСки скриптов Π΅Π·ΠΈΠΊ Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² JVM, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ JavaScript, Ruby, Python ΠΈ R, ΠΈ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΏΡ€Π°Π²ΠΈ възмоТно ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° СстСствСн ΠΊΠΎΠ΄ Π² JVM, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½ Π² LLVM Π±ΠΈΡ‚ΠΊΠΎΠ΄. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅, прСдоставСни ΠΎΡ‚ GraalVM, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ нСзависим ΠΎΡ‚ Π΅Π·ΠΈΠΊΠ° Π΄Π΅Π±ΡŠΠ³Π΅Ρ€, систСма Π·Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€Π°Π½Π΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. GraalVM ΠΏΡ€Π°Π²ΠΈ възмоТно ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ прилоТСния с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π΅Π·ΠΈΡ†ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΈ масиви ΠΎΡ‚ ΠΊΠΎΠ΄ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π΅Π·ΠΈΡ†ΠΈ. Π—Π° JVM-Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π΅Π·ΠΈΡ†ΠΈ ΠΈΠΌΠ° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ създаванС Π½Π° изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈ Π² машинСн ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС изпълнява Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° консумация Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ (ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ Π½ΠΈΡˆΠΊΠΈΡ‚Π΅ сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Ρ‡Ρ€Π΅Π· ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° Бубстрат VM).

ΠŸΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² GraalJS:

  • ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½Π° Π΅ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с Node.js 12.10.0;
  • НСстандартнитС Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ свойства ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ са Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅:
    Π³Π»ΠΎΠ±Π°Π»Π΅Π½ (Π·Π°ΠΌΠ΅Π½Π΅Π½ с globalThis, настройка Π½Π° js.global-property Π·Π° Π²Ρ€ΡŠΡ‰Π°Π½Π΅), производитСлност (js.performance), print ΠΈ printErr (js.print);

  • Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° обСдиняванС Π½Π° Promise.allSettled ΠΈ nullish, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌ ECMAScript 2020 (β€œ-js.ecmascript-version=2020”);
  • Актуализирани зависимости ICU4J Π΄ΠΎ 64.2, ASM Π΄ΠΎ 7.1.

ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² GraalPython:

  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ пъновС gc.{enable,disable,isenabled}, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈ charmap_build, sys.hexversion ΠΈ _lzma;
  • Актуализирана стандартна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° Python 3.7.8;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° NumPy 1.16.4 ΠΈ Pandas 0.25.0;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° timeit;
  • socket.socket Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚Π΅ β€žgraalpython -m http.serverβ€œ ΠΈ Π΄Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Ρ‚Π΅ Π½Π΅ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½ΠΈ (Π±Π΅Π· TLS) http рСсурси;
  • ΠšΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ pandas.DataFrame.
    Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ Π² Π±Π°ΠΉΡ‚ΠΎΠ²Π΅.startswith,
    дСструктуриранС Π½Π° присвояванС Π½Π° ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° dict.__contains__ Π·Π° Ρ€Π΅Ρ‡Π½ΠΈΡ†ΠΈ;

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ast.PyCF_ONLY_AST, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»Π΅Π½ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ pytest Ρ€Π°Π±ΠΎΡ‚ΠΈ;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΎΡ‚ ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ° PEP 498 (интСрполация Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π² Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΈ);
  • Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΎ Ρ„Π»Π°Π³ΡŠΡ‚ β€ž--python.EmulateJythonβ€œ Π·Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° JVM класовС, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π½ΠΎΡ€ΠΌΠ°Π»Π΅Π½ синтаксис Π·Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Python ΠΈ улавянС Π½Π° JVM ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚ ΠΊΠΎΠ΄Π° Π½Π° Python;
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° производитСлност Π½Π° Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°, ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ,
    Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Python ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΎΡ‚ JVM ΠΊΠΎΠ΄. ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΏΡ€ΠΈ тСстовС Π·Π° производитСлност Π·Π° Python ΠΊΠΎΠ΄ ΠΈ СстСствСни Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ (ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° собствСни Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π²ΡŠΡ€Ρ…Ρƒ llvm ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°, Ρ‡Π΅ Π±ΠΈΡ‚ΠΊΠΎΠ΄ΡŠΡ‚ llvm сС ΠΏΡ€Π΅Π΄Π°Π²Π° Π½Π° GraalVM Π·Π° JIT компилация).

ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² TruffleRuby:

  • Π—Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° СстСствСни Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ сСга сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° вградСният инструмСнтариум LLVM, ΠΊΠΎΠΉΡ‚ΠΎ създава ΠΊΠ°ΠΊΡ‚ΠΎ собствСн ΠΊΠΎΠ΄, Ρ‚Π°ΠΊΠ° ΠΈ Π±ΠΈΡ‚ΠΊΠΎΠ΄. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ трябва Π΄Π° сС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Ρ‚ ΠΎΡ‚ кутията, Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π°ΠΉΠΊΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ със ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ;
  • ΠžΡ‚Π΄Π΅Π»Π½Π° инсталация Π½Π° LLVM Π·Π° инсталиранС Π½Π° собствСни Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π² TruffleRuby;
  • Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° C++ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π° TruffleRuby Π²Π΅Ρ‡Π΅ Π½Π΅ изисква инсталиранС Π½Π° libc++ ΠΈ libc++abi;
  • Π›ΠΈΡ†Π΅Π½Π·ΡŠΡ‚ Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΄ΠΎ EPL 2.0/GPL 2.0/LGPL 2.1, ΡΡŠΡ‰ΠΈΡΡ‚ ΠΊΠ°Ρ‚ΠΎ послСдния JRuby;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π½Π΅Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ към GC.stat;
  • Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈ са ΠΌΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ Kernel#load с ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° ΠΈ Kernel#spawn с :chdir;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ rb_str_drop_bytes, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ страхотно, Π·Π°Ρ‰ΠΎΡ‚ΠΎ OpenSSL Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°;
  • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ инсталирани ΡΠΊΡŠΠΏΠΎΡ†Π΅Π½Π½ΠΈ камъни, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° Π½ΠΎΠ²ΠΈ рСлси Π² Rails 6;
  • Π—Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° СстСствСни Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ„Π»Π°Π³ΠΎΠ²Π΅, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΡ€ΠΈ MRI;
  • НаправСни са ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° производитСлността ΠΈ консумацията Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½Π°.

ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² FastR:

  • ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½Π° Π΅ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с R 3.6.1;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° стартиранС Π½Π° собствСни Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° LLVM. ΠšΠΎΠ³Π°Ρ‚ΠΎ сС ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚ собствСни R ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, FastR Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° вградСния LLVM инструмСнтариум Π½Π° GraalVM. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Ρ‰Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΊΠ°ΠΊΡ‚ΠΎ собствСн ΠΊΠΎΠ΄, Ρ‚Π°ΠΊΠ° ΠΈ LLVM Π±ΠΈΡ‚ΠΊΠΎΠ΄.

    ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ инсталиранитС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΡΡŠΡ‰ΠΎ са ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½.
    FastR Π·Π°Ρ€Π΅ΠΆΠ΄Π° ΠΈ изпълнява собствСн ΠΊΠΎΠ΄ Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, Π½ΠΎ ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС стартира с опцията β€ž--R.BackEnd=llvmβ€œ, Ρ‰Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΡ‚ΠΊΠΎΠ΄. Π‘Π΅ΠΊΠ΅Π½Π΄ΡŠΡ‚ Π½Π° LLVM ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚Π΅Π»Π½ΠΎ Π·Π° някои R ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΊΠ°Ρ‚ΠΎ сС посочи "--R.BackEndLLVM=pkg1,pkg2". Ако ΠΈΠΌΠ°Ρ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с инсталиранСто Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΡŠΡ€Π½Π΅Ρ‚Π΅ всичко ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ°Ρ‚Π΅ fastr.setToolchain("native") ΠΈΠ»ΠΈ Ρ€ΡŠΡ‡Π½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Ρ‚Π΅ Ρ„Π°ΠΉΠ»Π° $FASTR_HOME/etc/Makeconf;

  • Π’ Ρ‚Π°Π·ΠΈ вСрсия FastR сС доставя Π±Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Π·Π° изпълнСниС Π½Π° GCC;
  • Ѐиксирани Ρ‚Π΅Ρ‡ΠΎΠ²Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚;
  • ΠšΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π³ΠΎΠ»Π΅ΠΌΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈ (>1GB);
  • Π’ΡŠΠ²Π΅Π΄Π΅Π½ grepRaw, Π½ΠΎ само Π·Π° fixed=T.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€