ΠΠΎΠΌΠΏΠ°Π½ΠΈΡΠ°ΡΠ° Oracle
GraalVM
- ΠΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡ ΡΠΎ Node.js 12.10.0;
- ΠΠ΅ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈΡΠ΅ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΡΠ²ΠΎΡΡΡΠ²Π° ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΈ:
global (Π·Π°ΠΌΠ΅Π½Π΅ΡΠΎ ΡΠΎ globalThis, ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ js.global-property Π΄Π° ΡΠ΅ Π²ΡΠ°ΡΠΈ), ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ (js.performance), print ΠΈ printErr (js.print); - ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ Promise.all Π Π΅ΡΠ΅Π½ ΠΈ ΠΏΠΎΠ½ΠΈΡΡΠ΅Π½ ΠΏΡΠ΅Π΄Π»ΠΎΠ³ Π·Π° ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅, ΠΊΠΎΠΈ ΡΠ΅ Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈ Π²ΠΎ ΡΠ΅ΠΆΠΈΠΌΠΎΡ ECMAScript 2020 (β-js.ecmascript-version=2020β);
- ΠΠΆΡΡΠΈΡΠ°Π½ΠΈ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ICU4J Π½Π° 64.2, ASM Π½Π° 7.1.
- ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΈ ΡΠ΅ Π½ΠΈΠΊΡΠ»ΡΠΈ 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 ΡΠ΅ΡΡΡΡΠΈ;
- ΠΠΎΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠΎ ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠ°Π½Π΄ΠΈΡΠ΅.ΠΠ±ΡΠ΅ΠΊΡΠΈ Π½Π° DataFrame.
Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π²ΠΎ Π±Π°ΡΡΠΈ.ΠΏΠΎΡΠ½ΡΠ²Π° ΡΠΎ,
Π΄Π΅ΡΡΡΡΠΊΡΡΡΠ½ΠΎ Π΄ΠΎΠ΄Π΅Π»ΡΠ²Π°ΡΠ΅ Π½Π° ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΈ ΠΈ ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° Π΄ΠΈΠΊ.__ΡΠΎΠ΄ΡΠΆΠΈ__ Π·Π° ΡΠ΅ΡΠ½ΠΈΡΠΈ; - ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ast.PyCF_ONLY_AST, ΡΡΠΎ
Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ ΠΎΡΠΈΠ³ΡΡΠ°ΡΡΠ΅ ΡΠ΅ Π΄Π΅ΠΊΠ° pytest ΡΠ°Π±ΠΎΡΠΈ; - ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΎ
ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° PEP 498 (ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»Π°ΡΠΈΡΠ° Π½Π° Π½ΠΈΠ·ΠΈ Π²ΠΎ Π±ΡΠΊΠ²Π°Π»Π½ΠΈ); -
ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ ΠΎΠ·Π½Π°ΠΊΠ°ΡΠ° β--python.EmulateJythonβ Π·Π° ΡΠ²ΠΎΠ· Π½Π° JVM ΠΊΠ»Π°ΡΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π½ΠΎΡΠΌΠ°Π»Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠ° Π·Π° ΡΠ²ΠΎΠ· Π½Π° Python ΠΈ ΡΠ°ΡΠ°ΡΠ΅ Π½Π° ΠΈΡΠΊΠ»ΡΡΠΎΡΠΈ Π½Π° JVM ΠΎΠ΄ ΠΊΠΎΠ΄ΠΎΡ Π½Π° Python; - ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ Π½Π° Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΡ, ΠΊΠ΅ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΡΠΊΠ»ΡΡΠΎΡΠΈ,
ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΈ Π½Π° Python ΠΎΠ΄ ΠΊΠΎΠ΄ΠΎΡ Π½Π° JVM. ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ Π²ΠΎ ΡΠ΅ΡΡΠΎΠ²ΠΈΡΠ΅ Π·Π° ΠΈΠ·Π²Π΅Π΄Π±Π° Π·Π° ΠΊΠΎΠ΄ΠΎΡ Π½Π° python ΠΈ ΠΏΡΠΈΡΠΎΠ΄Π½ΠΈΡΠ΅ Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΠΈ (ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΡΠΎΠ΄Π½ΠΈ Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΠΈ Π½Π° Π²ΡΠ²ΠΎΡ Π½Π° llvm ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ° Π΄Π΅ΠΊΠ° Π±ΠΈΡ-ΠΊΠΎΠ΄ΠΎΡ llvm Π΅ ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ Π½Π° GraalVM Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΠ° Π½Π° JIT).
- ΠΠ° Π΄Π° ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°Π°Ρ ΠΏΡΠΈΡΠΎΠ΄Π½ΠΈ Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΠΈ, ΡΠ΅Π³Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΠΎΡ Π°Π»Π°ΡΠ½ΠΈΠΊ 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;
- ΠΠ° Π΄Π° ΡΠ΅ ΡΠΎΡΡΠ°Π²Π°Ρ ΠΏΡΠΈΡΠΎΠ΄Π½ΠΈ Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΠΈ, ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π·Π½Π°ΠΌΠΈΡΠ°, ΠΊΠ°ΠΊΠΎ Π²ΠΎ ΠΠΠ ;
- ΠΠ°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ ΠΈ Π½Π°ΠΌΠ°Π»Π΅Π½Π° Π΅ ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠ°ΡΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°.
- ΠΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡ ΡΠΎ R 3.6.1;
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΡΠ΅Π»ΠΈΠΌΠΈΠ½Π°ΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΈΡΠΎΠ΄Π½ΠΈ Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΠΈ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° LLVM. ΠΠΎΠ³Π° ΡΠ΅ Π³ΡΠ°Π΄Π°Ρ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈ R ΠΏΠ°ΠΊΠ΅ΡΠΈ, FastR Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ Π΄Π° ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈ Π²Π³ΡΠ°Π΄Π΅Π½Π°ΡΠ° Π°Π»Π°ΡΠΊΠ° Π·Π° LLVM Π½Π° GraalVM. ΠΠΎΠ±ΠΈΠ΅Π½ΠΈΡΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠΎΠ΄ΡΠΆΠ°Ρ ΠΈ ΠΌΠ°ΡΡΠΈΠ½ ΠΊΠΎΠ΄ ΠΈ Π±ΠΈΡΠΊΠΎΠ΄ LLVM.
ΠΠ° ΠΎΠ²ΠΎΡ Π½Π°ΡΠΈΠ½ ΡΠ΅ Π³ΡΠ°Π΄Π°Ρ ΠΈ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ.
FastR ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ Π³ΠΎ Π²ΡΠΈΡΡΠ²Π° ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΈΠ·Π²ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π·Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΡΠ²Π°ΡΠ΅, Π½ΠΎ ΠΊΠΎΠ³Π° ΡΠ΅ ΡΠ΅ ΡΡΠ°ΡΡΡΠ²Π° ΡΠΎ ΠΎΠΏΡΠΈΡΠ°ΡΠ° β--R.BackEnd=llvmβ, ΡΠ΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π±ΠΈΡ-ΠΊΠΎΠ΄. ΠΠ°Π΄Π½ΠΈΠ½Π°ΡΠ° Π½Π° LLVM ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎ Π·Π° Π½Π΅ΠΊΠΎΠΈ R ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠΎ Π½Π°Π²Π΅Π΄ΡΠ²Π°ΡΠ΅ β--R.BackEndLLVM=pkg1,pkg2β. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ΡΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΡΠ°ΡΠΈΡΠ΅ ΡΓ¨ Π½Π°Π·Π°Π΄ ΡΠΎ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ Π½Π° fastr.setToolchain (βΠΌΠ°ΡΡΠΈΠ½β) ΠΈΠ»ΠΈ ΡΠ°ΡΠ½ΠΎ ΡΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° $FASTR_HOME/etc/Makeconf; - ΠΠΎ ΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, FastR ΡΠ΅ ΠΈΡΠΏΠΎΡΠ°ΡΡΠ²Π° Π±Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° ΡΡΠ°Π΅ΡΠ΅ Π½Π° GCC;
- ΠΠΎΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΡΠΎΡΠ΅ΠΊΡΠ²Π°ΡΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ°;
- ΠΠΎΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ Π²Π΅ΠΊΡΠΎΡΠΈ (>1GB);
- ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ grepRaw, Π½ΠΎ ΡΠ°ΠΌΠΎ Π·Π° fixed=T.
ΠΠ·Π²ΠΎΡ: opennet.ru