Sunungura 19.3.0 yemuchina weGraalVM chaiwo uye mashandisirwo ePython, JavaScript, Ruby uye R zvichibva pairi.

Oracle Company yakabudiswa kuburitswa kweuniversal virtual muchina GraalVM 19.3.0, iyo inotsigira kumhanya maapplication muJavaScript (Node.js), Python, Ruby, R, chero mitauro yeJVM (Java, Scala, Clojure, Kotlin) nemitauro inogona kugadzirwa LLVM bitcode (C, C++) , Ngura). Iro 19.3 bazi rinorondedzerwa seRubatsiro Rwenguva Yakareba (LTS) kuburitswa uye zvinoshamisa kutsigira JDK11, kusanganisira kugona kuunganidza kodhi yeJava mumafaira anogona kuitiswa (GraalVM Native Image). Project code inoparadzirwa ne ine rezinesi pasi peGPLv2. Panguva imwecheteyo, shanduro itsva dzePython, JavaScript, Ruby uye R mutauro kushandisa GraalVM dzakaburitswa - GraalPython, GraalJS, TruffleRuby ΠΈ FastR.

GraalVM inopa Iyo JIT compiler iyo inogona kuita kodhi kubva kune chero mutauro wekunyora panhunzi muJVM, kusanganisira JavaScript, Ruby, Python uye R, uye zvakare inoita kuti ikwanise kumhanyisa kodhi kodhi muJVM yakashandurwa kuita LLVM bitcode. Zvishandiso zvinopihwa neGraalVM zvinosanganisira mutauro-yakazvimirira debugger, profiling system, uye memory allocation analyzer. GraalVM inoita kuti zvikwanise kugadzira mashandisirwo akasanganiswa ane zvikamu mumitauro yakasiyana, ichikubvumidza kuti uwane zvinhu uye arrays kubva kukodhi mune mimwe mitauro. Kune JVM-yakavakirwa mitauro iripo mukana kugadzira mafaera anogoneka akaunganidzwa muchina kodhi anogona kuurayiwa zvakananga nekushoma ndangariro kushandiswa (ndangariro uye tambo manejimendi inoshandiswa kuburikidza nekubatanidza chimiro. Substrate VM).

Shanduko muGraalJS:

  • Kuenderana neNode.js 12.10.0 inovimbiswa;
  • Zvisiri-zvakajairwa zvepasirese zvivakwa uye mabasa zvinodzimwa nekusarudzika:
    global (yakatsiviwa neglobalThis, setting js.global-property to return), performance (js.performance), print and printErr (js.print);

  • Implemented Promise.allSettled and nullish coalescing proposal, inowanikwa muECMAScript 2020 mode (β€œ-js.ecmascript-version=2020”);
  • Yakagadziridzwa zvinoenderana neICU4J kusvika 64.2, ASM kusvika 7.1.

Shanduko muGraalPython:

  • Yakawedzerwa stubs gc.{enable, disable,isenabled}, yaiswa charmap_build, sys.hexversion uye _lzma;
  • Yakagadziridzwa Python 3.7.8 raibhurari yakajairika;
  • Yakawedzerwa rutsigiro rweNumPy 1.16.4 uye Pandas 0.25.0;
  • Yakawedzera timeit rutsigiro;
  • socket.socket yakaunzwa kune imwe nyika inokubvumira kuti umhanye "graalpython -m http.server" uye kutakura zvisina kunyorwa (pasina TLS) http zviwanikwa;
  • Yakagadzirisa nyaya nekuratidza pandas.DataFrame zvinhu.
    kushandiswa kusina kururama kwematuples mumabytes.startswith,
    destructuring assignment of iterators and use of dict.__contains__ for dictionaries;

  • Yakawedzera rutsigiro rwe ast.PyCF_ONLY_AST, iyo kubvumidzwa chengetedza kuti pytest inoshanda;
  • Added kutsigira PEP 498 (kududzirwa kwetambo muzvinyorwa);
  • Implemented iyo "-python.EmulateJython" mureza kupinza makirasi eJVM uchishandisa yakajairwa Python import syntax uye kubata JVM kunze kwePython kodhi;
  • Kuvandudza kuita kweparser, kusarudzika caching,
    kuwana zvinhu zvePython kubva kuJVM kodhi. Mibairo yakavandudzwa mukuedzwa kwekuita kwepython kodhi uye mawedzero echivanhu (kuita mawedzero echivanhu pamusoro pellvm zvinoreva kuti bitcode llvm inopfuudzwa kuGraalVM yeJIT kuunganidzwa).

Shanduko muTruffleRuby:

  • Kuunganidza mawedzero emunharaunda, iyo yakavakirwa-mukati LLVM toolkit yava kushandiswa, kugadzira ese ari maviri kodhi kodhi uye bitcode. Izvi zvinoreva kuti mamwe mawedzero emunharaunda anofanirwa kuunganidza kunze kwebhokisi, kubvisa nyaya dzakawanda dzekubatanidza;
  • Kuparadzanisa LLVM kuisirwa kwekuisa mawedzero emunharaunda muTruffleRuby;
  • Kuisa C++ extensions paTruffleRuby hakuchadi kuisa libc++ uye libc++abi;
  • Rezinesi yakagadziridzwa kuEPL 2.0/GPL 2.0/LGPL 2.1, yakafanana neyazvino JRuby;
  • Yakawedzera tsigiro yesarudzo dzenharo kuGC.stat;
  • Washandisa nzira yeKernel#load nechiputi uye Kernel#spawn with :chdir;
  • Yakawedzerwa rb_str_drop_bytes, iyo yakanaka nekuti OpenSSL inoshandisa iyo;
  • Inosanganisirwa mawedzero ematombo akaiswa kare anodiwa kune njanji nyowani muRails 6;
  • Kuunganidza zvinyorwa zvekuzvarwa, mireza inoshandiswa, seMRI;
  • Performance optimizations yakaitwa uye ndangariro kushandiswa kwakaderedzwa.

Shanduko mu FastR:

  • Kuenderana neR 3.6.1 kunovimbiswa;
  • Yakawedzera tsigiro yekutanga yekumhanyisa mawedzero emunharaunda akavakirwa paLLVM. Kana uchivaka maR mapakeji, FastR inogadziriswa kushandisa GraalVM yakavakirwa-mukati LLVM chishandiso. Mafaira ebhinari anozobuda achange aine kodhi yekuzvarwa uye LLVM bitcode.

    Pre-yakaiswa mapakeji anovakwawo nenzira iyi.
    FastR inotakura uye inomhanyisa kodhi yekuwedzera kodhi nekukasira, asi kana yatangwa ne "--R.BackEnd=llvm" sarudzo, bitcode ichashandiswa. Iyo LLVM yekumashure inogona kushandiswa zvakasarudzwa kune mamwe maR mapakeji nekudoma "--R.BackEndLLVM=pkg1,pkg2". Kana uine matambudziko nekuisa mapakeji, unogona kudzosera zvese kumashure nekufona fastr.setToolchain("native") kana kugadzirisa nemaoko $FASTR_HOME/etc/Makeconf faira;

  • Mukuburitswa uku, FastR ngarava isina GCC runtime raibhurari;
  • Fixed memory leaks;
  • Yakagadziriswa matambudziko kana uchishanda nemavheji makuru (> 1GB);
  • Yakashandiswa grepRaw, asi chete yakagadziriswa=T.

Source: opennet.ru

Voeg