Hlahisa 19.3.0 ea mochini o sebetsang oa GraalVM le ts'ebetsong ea Python, JavaScript, Ruby le R e thehiloeng ho eona.

Khampani ea Oracle e phatlalalitsoeng ho lokolloa ha mochini o sebetsang oa bokahohle GraalVM 19.3.0, e ts'ehetsang lits'ebetso tse sebetsang ho JavaScript (Node.js), Python, Ruby, R, lipuo life kapa life tsa JVM (Java, Scala, Clojure, Kotlin) le lipuo tseo LLVM bitcode e ka hlahisoang ho tsona (C, C++) , Mafome). Lekala la 19.3 le khethiloe e le Tokollo ea Nako e Telele ea Tšehetso (LTS) le tsotehang tšehetso EA-11-JDK, ho kenyelletsa le bokhoni ba ho bokella khoutu ea Java ho lifaele tse ka sebetsoang (GraalVM Native Image). Khoutu ea morero ajoa ke e nang le laesense tlasa GPLv2. Ka nako e ts'oanang, ho ile ha lokolloa mefuta e mecha ea Python, JavaScript, Ruby le R lipuo tse sebelisang GraalVM - GraalPython, GraalJS, TruffleRuby и FastR.

GraalVM e fana Motlalehi oa JIT o ka sebelisang khoutu ho tsoa puong efe kapa efe ea mongolo ka sefofane ho JVM, ho kenyeletsoa JavaScript, Ruby, Python le R, hape e nolofalletsa ho tsamaisa khoutu ea lehae ho JVM e fetoletsoeng ho LLVM bitcode. Lisebelisoa tse fanoeng ke GraalVM li kenyelletsa debugger e ikemetseng ea puo, sistimi ea profiling, le mohlahlobi oa kabo ea memori. GraalVM e etsa hore ho khonehe ho theha lits'ebetso tse kopaneng tse nang le likarolo ka lipuo tse fapaneng, e u lumellang ho fihlella lintho le li-arrays ho tsoa ho khoutu ka lipuo tse ling. Bakeng sa lipuo tse thehiloeng ho JVM ho na le monyetla ho theha lifaele tse sebetsang tse hlophisitsoeng ka khoutu ea mochini tse ka sebelisoang ka kotloloho ka tšebeliso e fokolang ea memori (memori le taolo ea likhoele e kengoa ts'ebetsong ka ho hokahanya moralo. Substrate VM).

Liphetoho ho GraalJS:

  • Ho lumellana le Node.js 12.10.0 ho netefalitsoe;
  • Thepa le mesebetsi e sa tloaelehang ea lefats'e e emisoa ka ho sa feleng:
    global (e nkeloe sebaka ke globalThis, setting js.global-property to return), tshebetso (js.performance), print and printErr (js.print);

  • Ts'episo e Phethahetseng.allSettled le ha ho na thuso, e fumanehang ka mokhoa oa ECMAScript 2020 (“-js.ecmascript-version=2020”);
  • Litšetleho tse ntlafalitsoeng ICU4J ho isa ho 64.2, ASM ho isa ho 7.1.

Liphetoho ho GraalPython:

  • E kentse li-stubs gc.{enable,disable,isenabled}, charmap_build e kentsoeng, sys.hexversion le _lzma;
  • Laeborari e tloaelehileng ea Python 3.7.8 e ntlafalitsoeng;
  • Tšehetso e ekelitsoeng bakeng sa NumPy 1.16.4 le Pandas 0.25.0;
  • Ts'ehetso ea nako e ekelitsoeng;
  • socket.socket e tlisitsoe sebakeng se u lumellang hore u tsamaise "graalpython -m http.server" le ho laela lisebelisoa tse sa ngolisoang (ntle le TLS) http mehloli;
  • E lokisa litaba ka ho hlahisa li-pandas.DataFrame dintho.
    ts'ebetso e fosahetseng ea li-tuples ka li-bytes.startswith,
    ho senya kabelo ea li-iterators le tšebeliso ea dict.__contains__ bakeng sa dikishinari;

  • E kentse tšehetso bakeng sa ast.PyCF_ONLY_AST, e leng lumelloa etsa bonnete ba hore pytest e sebetsa;
  • E kentsoe tšehetso PEP 498 (ho kenyeletsoa ha likhoele ka mantsoe a tobileng);
  • E kentswe tshebetsong folakha ea "--python.EmulateJython" ho kenya lihlopha tsa JVM ka ho sebelisa syntax e tloaelehileng ea Python le ho tšoara mekhelo ea JVM ho tsoa khoutu ea Python;
  • Ts'ebetso e ntlafalitsoeng ea li-parser, ntle le caching,
    ho fihlella lintho tsa Python ho tsoa ho khoutu ea JVM. Liphetho tse ntlafalitsoeng litekong tsa ts'ebetso bakeng sa khoutu ea python le li-extensions tsa matsoalloa (ho sebelisa likeketso tsa matsoalloa holim'a llvm ho bolela hore bitcode llvm e fetisetsoa ho GraalVM bakeng sa pokello ea JIT).

Liphetoho ka TruffleRuby:

  • Ho bokella likeketso tsa matsoalloa, ho se ho sebelisoa sephutheloana sa lisebelisoa sa LLVM se hahelletsoeng ka hare, se theha khoutu ea tlhaho le bitcode. Sena se bolela hore likeketso tse ngata tsa matsoalloa li lokela ho bokellana ka ntle ho lebokose, ho tlosa litaba tse ngata tse hokahanyang;
  • Arola ho kenya LLVM bakeng sa ho kenya lisebelisoa tsa tlhaho ho TruffleRuby;
  • Для установки C++ расширений на TruffleRuby теперь не требуется установка libc++ и libc++abi;
  • License e nchafalitsoe ho EPL 2.0/GPL 2.0/LGPL 2.1, e tšoanang le ea morao tjena JRuby;
  • Tšehetso e ekelitsoeng bakeng sa likhang tsa boikhethelo ho GC.stat;
  • E kentse tshebetsong mokgwa wa Kernel#mojaro ka sephuthelo le Kernel#e tswala ka :chdir;
  • E kentse rb_str_drop_bytes, e ntle hobane OpenSSL e e sebelisa;
  • E kenyelelitsoe katoloso ea mahakoe a kentsoeng pele a hlokahalang bakeng sa liporo tse ncha ho Rails 6;
  • Ho bokella litlatsetso tsa matsoalloa, ho sebelisoa lifolakha, joalo ka MRI;
  • Lintlafatso tsa ts'ebetso li entsoe mme tšebeliso ea memori e fokotsehile.

Liphetoho ka FastR:

  • Ho lumellana le R 3.6.1 ho netefalitsoe;
  • E kenyellelitse ts'ehetso ea mantlha bakeng sa ho tsamaisa likeketso tsa lehae tse thehiloeng ho LLVM. Ha o haha ​​​​liphutheloana tsa R tsa matsoalloa, FastR e lokiselitsoe ho sebelisa lisebelisoa tsa GraalVM tse hahiloeng ka har'a LLVM. Lifaele tsa binary tse hlahisoang li tla ba le khoutu ea tlhaho le LLVM bitcode.

    Liphutheloana tse kentsoeng esale pele le tsona li hahiloe ka tsela ena.
    FastR e jarisa le ho tsamaisa khoutu ea katoloso ea lehae ka boiketsetso, empa ha e qala ka khetho ea "--R.BackEnd=llvm", bitcode e tla sebelisoa. LLVM e ka morao e ka sebelisoa ka boikhethelo bakeng sa liphutheloana tse ling tsa R ka ho hlakisa "--R.BackEndLLVM=pkg1,pkg2". Haeba u na le mathata a ho kenya liphutheloana, u ka khutlisetsa ntho e 'ngoe le e' ngoe morao ka ho letsetsa fastr.setToolchain("native") kapa ka letsoho ho hlophisa faele ea $FASTR_HOME/etc/Makeconf;

  • Tokollong ena, FastR e tsamaisa ntle le lilaebrari tsa nako ea GCC;
  • Mehopolo e tsitsitseng e lutla;
  • Mathata a tsitsitseng ha o sebetsa le li-vector tse kholo (> 1GB);
  • Ke grepRaw e kentsweng tshebetsong, empa feela bakeng sa fixed=T.

Source: opennet.ru

Eketsa ka tlhaloso