αž…αŸαž‰αž•αŸ’αžŸαžΆαž™ 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 bitcode αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž”αžΆαž“ (C, C++ , αž…αŸ’αžšαŸ‚αŸ‡) αŸ” សអខអ 19.3 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αžαŸ’αž“αžΆαž€αŸ‹αž‡αžΆαž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžšαž™αŸˆαž–αŸαž›αžœαŸ‚αž„ (LTS) αž“αž·αž„ αž‚αž½αžšαž±αŸ’αž™αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹ αž‚αžΆαŸ†αž‘αŸ’αžš JDK αŸ‘αŸ’αžšαž½αž˜αž‘αžΆαŸ†αž„αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž„αž€αŸ’αžšαž„αž€αžΌαžŠ Java αž‘αŸ…αž‡αžΆαž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“ (GraalVM Native Image)αŸ” αž€αžΌαžŠαž‚αž˜αŸ’αžšαŸ„αž„ αž…αŸ‚αž€αž…αžΆαž™β€‹αžŠαŸ„αž™ αž˜αžΆαž“αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαž€αŸ’αžšαŸ„αž˜ GPLv2. αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡ αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαž“αŸƒαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž—αžΆαžŸαžΆ Python, JavaScript, Ruby αž“αž·αž„ R αžŠαŸ„αž™αž”αŸ’αžšαžΎ GraalVM αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™ - GraalPython, GraalJS, TruffleRuby ΠΈ FastR.

GraalVM αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ JIT αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠαž–αžΈαž—αžΆαžŸαžΆαžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŽαžΆαž˜αž½αž™αž—αŸ’αž›αžΆαž˜αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„ JVM αžšαž½αž˜αž‘αžΆαŸ†αž„ JavaScript, Ruby, Python αž“αž·αž„ R αž αžΎαž™αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΌαžŠαžŠαžΎαž˜αž“αŸ…αž€αŸ’αž“αž»αž„ JVM αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ†αž”αŸ’αž›αŸ‚αž„αž‘αŸ…αž‡αžΆ LLVM bitcode αŸ” αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αžŠαŸ„αž™ GraalVM αžšαž½αž˜αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž―αž€αžšαžΆαž‡αŸ’αž™αž—αžΆαžŸαžΆ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αž˜αŸ’αžšαž„αŸ‹ αž“αž·αž„αž§αž”αž€αžšαžŽαŸαžœαž·αž—αžΆαž‚αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αŸ” GraalVM αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž‡αžΆαž—αžΆαžŸαžΆαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž…αžΌαž›αž”αŸ’αžšαžΎαžœαžαŸ’αžαž» αž“αž·αž„αž’αžΆαžšαŸαž–αžΈαž€αžΌαžŠαž‡αžΆαž—αžΆαžŸαžΆαž•αŸ’αžŸαŸαž„αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆαžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž›αžΎ JVM αž˜αžΆαž“ αž±αž€αžΆαžŸ αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“αžŠαŸ‚αž›αž…αž„αž€αŸ’αžšαž„αž‡αžΆαž€αžΌαžŠαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžαž·αž…αžαž½αž…αž”αŸ†αž•αž»αž (αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž“αž·αž„αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αžαžΆαž„αž€αŸ’αžšαŸ„αž˜ VM).

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž“αŸ…αž€αŸ’αž“αž»αž„ GraalJS:

  • αž—αžΆαž–αž†αž”αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™ Node.js 12.10.0 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž“αžΆαŸ”
  • αž›αž€αŸ’αžαžŽαŸˆαžŸαž˜αŸ’αž”αžαŸ’αžαž· αž“αž·αž„αž˜αž»αžαž„αžΆαžšαžŸαž€αž›αž˜αž·αž“αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αŸ–
    αžŸαž€αž› (αž‡αŸ†αž“αž½αžŸαžŠαŸ„αž™ globalThis αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ js.global-property αžŠαžΎαž˜αŸ’αž”αžΈαžαŸ’αžšαž‘αž”αŸ‹) αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž (js.performance) αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž– αž“αž·αž„ printErr (js.print);

  • αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž Promise.allSettled and nullish coalesing proposal, which available in ECMAScript mode 2020 (β€œ-js.ecmascript-version=2020”);
  • αž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž—αžΆαž–αž’αžΆαžŸαŸ’αžšαŸαž™ ICU4J αž‘αŸ… 64.2, ASM αž‘αŸ… 7.1 αŸ”

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž“αŸ…αž€αŸ’αž“αž»αž„ GraalPythonαŸ–

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ stubs gc.{enable,disable,isenabled} αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž charmap_build, sys.hexversion αž“αž·αž„ _lzma;
  • αž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš Python 3.7.8;
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ NumPy 1.16.4 αž“αž·αž„ Pandas 0.25.0;
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž–αŸαž›αžœαŸαž›αžΆ;
  • socket.socket αžαŸ’αžšαžΌαžœαž”αžΆαž“αž“αžΆαŸ†αž™αž€αž‘αŸ…αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš β€œgraalpython -m http.server” αž“αž·αž„αž•αŸ’αž‘αž»αž€αž’αž“αž’αžΆαž“ http αžŠαŸ‚αž›αž˜αž·αž“αž”αžΆαž“αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž” (αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“ TLS) αŸ”
  • αž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αžœαžαŸ’αžαž» pandas.DataFrame αŸ”
    αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒ tuples αž“αŸ…αž€αŸ’αž“αž»αž„ bytes.startswith,
    αž€αžΆαžšαž”αŸ†αž•αŸ’αž›αž·αž…αž”αŸ†αž•αŸ’αž›αžΆαž‰αž€αžΆαžšαž…αžΆαžαŸ‹αžαžΆαŸ†αž„αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž‘αžΎαž„αžœαž·αž‰ αž“αž·αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ dict.__contains__ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαž…αž“αžΆαž“αž»αž€αŸ’αžšαž˜;

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ ast.PyCF_ONLY_AST αžŠαŸ‚αž› αž’αž“αž»αž‰αŸ’αž‰αžΆαž αž’αžΆαž“αžΆαžαžΆ pytest αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš;
  • αž”αž“αŸ’αžαŸ‚αž˜ αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš PEP 498 (αž€αžΆαžšβ€‹αž”αž‰αŸ’αž…αžΌαž›β€‹αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšβ€‹αž‡αžΆβ€‹αž–αŸ’αž™αž‰αŸ’αž‡αž“αŸˆ);
  • αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž αž‘αž„αŸ‹ β€œ--python.EmulateJython” αžŠαžΎαž˜αŸ’αž”αžΈαž“αžΆαŸ†αž…αžΌαž›αžαŸ’αž“αžΆαž€αŸ‹ JVM αžŠαŸ„αž™αž”αŸ’αžšαžΎαžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αžΆαŸ†αž…αžΌαž› Python αž’αž˜αŸ’αž˜αžαžΆ αž αžΎαž™αž…αžΆαž”αŸ‹αž€αžΆαžšαž›αžΎαž€αž›αŸ‚αž„ JVM αž–αžΈαž€αžΌαžŠ Python αŸ”
  • αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž‰αŸ‚αž€, αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž€αžšαžŽαžΈαž›αžΎαž€αž›αŸ‚αž„,
    αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαžœαžαŸ’αžαž» Python αž–αžΈαž€αžΌαžŠ JVM αŸ” αž›αž‘αŸ’αž’αž•αž›αžŠαŸ‚αž›αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΌαžŠ python αž“αž·αž„αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžŠαžΎαž˜ (αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžŠαžΎαž˜αž“αŸ…αž›αžΎ llvm αž˜αžΆαž“αž“αŸαž™αžαžΆ bitcode llvm αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž‘αŸ… GraalVM αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αž„αž€αŸ’αžšαž„ JIT) αŸ”

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž“αŸ… TruffleRubyαŸ–

  • αžŠαžΎαž˜αŸ’αž”αžΈαž…αž„αž€αŸ’αžšαž„αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžŠαžΎαž˜ αž”αŸ’αžšαž’αž”αŸ‹αž§αž”αž€αžšαžŽαŸ LLVM αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎ αžŠαŸ„αž™αž”αž„αŸ’αž€αžΎαžαž‘αžΆαŸ†αž„αž€αžΌαžŠαžŠαžΎαž˜ αž“αž·αž„αž”αŸŠαžΈαžαž€αžΌαžŠαŸ” αž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆαž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžŠαžΎαž˜αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“αž‚αž½αžšαž…αž„αž€αŸ’αžšαž„αž…αŸαž‰αž–αžΈαž”αŸ’αžšαž’αž”αŸ‹ αžŠαŸ„αž™αž›αž»αž”αž”αŸ†αž”αžΆαžαŸ‹αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αŸ”
  • αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ LLVM αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžŠαžΎαž˜αž“αŸ…αž€αŸ’αž“αž»αž„ TruffleRuby;
  • αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ C++ αž“αŸ…αž›αžΎ TruffleRuby αž›αŸ‚αž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ libc++ αž“αž·αž„ libc++abi αž‘αŸ€αžαž αžΎαž™αŸ”
  • αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž‘αŸ… EPL 2.0/GPL 2.0/LGPL 2.1 αžŠαžΌαž…αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„ JRuby αžαŸ’αž˜αžΈαŸ—αž“αŸαŸ‡αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αžŸαŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž‘αŸ… GC.stat;
  • αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžαžΊαžŽαŸ‚αž›#αž•αŸ’αž‘αž»αž€αž‡αžΆαž˜αž½αž™αžšαž»αŸ† αž“αž·αž„αžαžΊαžŽαŸ‚αž›#αž–αž„αž‡αžΆαž˜αž½αž™ :chdir;
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ rb_str_drop_bytes αžŠαŸ‚αž›αž›αŸ’αž’αžŽαžΆαžŸαŸ‹αž–αŸ’αžšαŸ„αŸ‡ OpenSSL αž”αŸ’αžšαžΎαžœαžΆ;
  • αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž“αŸƒαžαŸ’αž”αžΌαž„αžŠαŸ‚αž›αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž‡αžΆαž˜αž»αž“αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž›αžΌαžœαžŠαŸ‚αž€αžαŸ’αž˜αžΈαž“αŸ…αž€αŸ’αž“αž»αž„ Rails 6;
  • αžŠαžΎαž˜αŸ’αž”αžΈαž…αž„αž€αŸ’αžšαž„αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžŠαžΎαž˜ αž‘αž„αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎ αžŠαžΌαž…αž‡αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ MRI αŸ”
  • αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„ αž αžΎαž™αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αŸ”

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž“αŸ…αž€αŸ’αž“αž»αž„ FastRαŸ–

  • αž—αžΆαž–αž†αž”αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™ R 3.6.1 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž“αžΆαŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž”αž‹αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžŠαžΎαž˜αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎ LLVM αŸ” αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαžαž€αž‰αŸ’αž…αž”αŸ‹ R ដើម FastR αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸ LLVM αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ GraalVM αŸ” αž›αž‘αŸ’αž’αž•αž›αž―αž€αžŸαžΆαžšαž‚αŸ„αž›αž–αžΈαžšαž“αžΉαž„αž˜αžΆαž“αž‘αžΆαŸ†αž„αž€αžΌαžŠαžŠαžΎαž˜ αž“αž·αž„ LLVM bitcodeαŸ”

    αž€αž‰αŸ’αž…αž”αŸ‹αžŠαŸ‚αž›αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž‡αžΆαž˜αž»αž“αž€αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžαžΆαž˜αžœαž·αž’αžΈαž“αŸαŸ‡αž•αž„αžŠαŸ‚αžšαŸ”
    FastR αž•αŸ’αž‘αž»αž€ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΌαžŠαž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžŠαžΎαž˜αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™αž‡αž˜αŸ’αžšαžΎαžŸ "--R.BackEnd=llvm" αž€αžΌαžŠαž”αŸŠαžΈαžαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαžΆαž„αž€αŸ’αžšαŸ„αž™ LLVM αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž‰αŸ’αž…αž”αŸ‹ R αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ„αž™αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ "--R.BackEndLLVM=pkg1,pkg2" αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž€αž‰αŸ’αž…αž”αŸ‹ αž’αŸ’αž“αž€αž’αžΆαž…αžαŸ’αžšαž‘αž”αŸ‹αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž˜αž€αžœαž·αž‰αžŠαŸ„αž™αž€αžΆαžšαž αŸ…αž‘αŸ…αž€αžΆαž“αŸ‹ fastr.setToolchain("ដើម") αž¬αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž―αž€αžŸαžΆαžš $FASTR_HOME/etc/Makeconf αžŠαŸ„αž™αžŠαŸƒαŸ”

  • αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž“αŸαŸ‡ FastR αžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš GCC αŸ”
  • αž€αžΆαžšαž›αŸαž…αž’αŸ’αž›αžΆαž™αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžαŸαžš;
  • αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžœαŸ‰αž·αž…αž‘αŸαžšαž’αŸ† (> 1GB);
  • αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž grepRaw αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚ fixed=T αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹