ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Oracle
GraalVM
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ Node.js 12.10.0;
- ΠΡΠΊΠ»ΡΡΠ΅Π½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ:
global (Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° globalThis, Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° js.global-property), performance (js.performance), print ΠΈ printErr (js.print); - Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Promise.allSettled ΠΈ nullish coalescing proposal, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ 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-ΡΠ΅ΡΡΡΡΡ;
- ΠΡΠΏΡΠ°Π²Π»Π΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² pandas.DataFrame,
Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ Π² bytes.startswith,
Π΄Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΡΡΡΠΈΠΌ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ dict.__contains__ Π΄Π»Ρ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ; - ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ast.PyCF_ONLY_AST, ΠΊΠΎΡΠΎΡΠ°Ρ
ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ pytest; - ΠΠΎΠ±Π°Π²Π»Π΅Π½Π°
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° PEP 498 (ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΡ ΡΡΡΠΎΠΊ Π² Π»ΠΈΡΠ΅ΡΠ°Π»Π°Ρ ); -
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠ»Π°Π³ «—python.EmulateJython» Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° JVM-ΠΊΠ»Π°ΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Python-ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° import ΠΈ Π»ΠΎΠ²Π»ΠΈ JVM-ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΠΊΠΎΠ΄Π° Π½Π° Python; - Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ°, ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ,
Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ Python ΠΈΠ· JVM-ΠΊΠΎΠ΄Π°. Π£Π»ΡΡΡΠ΅Π½Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅ΡΡΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΊΠΎΠ΄Π° python ΠΈ Π½Π°ΡΠΈΠ²Π½ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ (ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π°ΡΠΈΠ²Π½ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ²Π΅ΡΡ llvm ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ, ΡΡΠΎ bitcode 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;
- ΠΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ gem-ΠΎΠ², Π½ΡΠΆΠ½ΡΠ΅ Π΄Π»Ρ rails new Π² Rails 6;
- ΠΠ»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π½Π°ΡΠΈΠ²Π½ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ ΡΠ»Π°Π³ΠΈ, ΠΊΠ°ΠΊ Π² MRI;
- ΠΠ½Π΅ΡΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ R 3.6.1;
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°ΡΠΈΠ²Π½ΡΡ
ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ LLVM. ΠΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Π½Π°ΡΠΈΠ²Π½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² R FastR ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Π² GraalVM ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ LLVM. Π Π΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π±ΡΠ΄ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΈ Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ LLVM-Π±ΠΈΡΠΊΠΎΠ΄.
ΠΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ±ΡΠ°Π½Ρ ΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
FastR Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΡΠ΅Π½ Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ «—R.BackEnd=llvm», Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π±ΠΈΡΠΊΠΎΠ΄. LLVM Π±ΡΠΊΡΠ½Π΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ R ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΡΠΊΠ°Π·ΡΠ²Π°Ρ «—R.BackEndLLVM=pkg1,pkg2». Π ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ Π²ΡΡ Π½Π°Π·Π°Π΄, Π²ΡΠ·Π²Π°Π² fastr.setToolchain(«native») ΠΈΠ»ΠΈ Π²ΡΡΡΠ½ΡΡ ΠΏΠΎΠ΄ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π² ΡΠ°ΠΉΠ» $FASTR_HOME/etc/Makeconf; - Π ΡΡΠΎΠΌ ΡΠ΅Π»ΠΈΠ·Π΅ FastR ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π±Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ GCC runtime;
- ΠΡΠΏΡΠ°Π²Π»Π΅Π½Ρ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ;
- ΠΡΠΏΡΠ°Π²Π»Π΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π²Π΅ΠΊΡΠΎΡΠ°ΠΌΠΈ (>1GB);
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ grepRaw, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ fixed=T.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru