Hapụ 19.3.0 nke igwe mebere GraalVM na mmejuputa Python, JavaScript, Ruby na R dabere na ya.

Ụlọ ọrụ Oracle bipụtara ntọhapụ nke a eluigwe na ala mebere igwe GraalVM 19.3.0, nke na-akwado ngwa na-agba ọsọ na Javascript (Node.js), Python, Ruby, R, asụsụ ọ bụla maka JVM (Java, Scala, Clojure, Kotlin) na asụsụ nke LLVM bitcode nwere ike ịmepụta (C, C ++). , nchara). A na-ekewa ngalaba 19.3 dị ka ntọhapụ ogologo oge (LTS) na dị ịrịba ama nkwado NXU 11, gụnyere ikike ịchịkọta koodu Java n'ime faịlụ ndị enwere ike ime (GraalVM Native Image). Koodu oru ngo kesara site ikike n'okpuru GPLv2. N'otu oge ahụ, ewepụtara ụdị ọhụrụ Python, JavaScript, Ruby na mmejuputa asụsụ R site na iji GraalVM - GraalPython, GraalJS, TruffleRuby и FastR.

GraalVM na-enye Onye nchịkọta JIT nke nwere ike ịme koodu site na asụsụ ọ bụla scripting na ofufe na JVM, gụnyere JavaScript, Ruby, Python na R, ma na-emekwa ka o kwe omume ịme koodu obodo na JVM gbanwere na LLVM bitcode. Ngwa ndị GraalVM nyere gụnyere ihe nbibi na-adabereghị na asụsụ, sistemụ profaịlụ, yana ihe nyocha oke ebe nchekwa. GraalVM na-eme ka o kwe omume ịmepụta ngwa agwakọta nwere akụrụngwa n'asụsụ dị iche iche, na-enye gị ohere ịnweta ihe na nhazi site na koodu n'asụsụ ndị ọzọ. Maka asụsụ ndị dabere na JVM enwere ohere na-ekepụta faịlụ ndị a chịkọtara n'ime koodu igwe nke enwere ike igbu ya ozugbo site na iji obere ebe nchekwa (a na-emejuputa njikwa ebe nchekwa na eri site na ijikọ usoro. Ngwa VM).

Mgbanwe na GraalJS:

  • Ekwenyere na ndakọrịta na Node.js 12.10.0;
  • Ngwongwo na arụ ọrụ zuru ụwa ọnụ na-abụghị ọkọlọtọ site na ndabara:
    zuru ụwa ọnụ (dochie site globalThis, mwube js.global-property iji laghachi), arụmọrụ (js.performance), mbipụta na printErr (js.print);

  • Emezuru nkwa.allSettled na efu atụmatụ ịchịkọta ọnụ, nke dị na ọnọdụ ECMAScript 2020 (“-js.ecmascript-version=2020”);
  • Ndabere emelitere ICU4J ruo 64.2, ASM ruo 7.1.

Mgbanwe na GraalPython:

  • stubs agbakwunyere gc.{na-enwe ike, gbanyụọ, gbanyụọ}, emejuputa charmap_build, sys.hexversion na _lzma;
  • Ọbá akwụkwọ ọkọlọtọ Python 3.7.8 emelitere;
  • Nkwado agbakwunyere maka NumPy 1.16.4 na Pandas 0.25.0;
  • Nkwado oge agbakwunyere;
  • ewebatala socket.socket na steeti nke na-enye gị ohere ịgba ọsọ “graalpython -m http.server” ma buru ibu enweghị nzuzo (na-enweghị TLS) http akụrụngwa;
  • Esemokwu edoziziri na igosipụta pandas.DataFrame ihe.
    nhazi tuples na-ezighi ezi na bytes. malite na,
    na-emebi ọrụ nke ndị na-emegharị ihe na iji dict.__nwere__ maka akwụkwọ ọkọwa okwu;

  • agbakwunyere nkwado maka ast.PyCF_ONLY_AST, nke ekwe hụ na pytest na-arụ ọrụ;
  • agbakwunyere nkwado PEP 498 (string interpolation na nkịtị);
  • Emere ya ọkọlọtọ "--python.EmulateJython" iji bubata klaasị JVM site na iji syntax mbubata Python nkịtị wee jide ihe JVM dị na koodu Python;
  • Ịrụ ọrụ nzacha emelitere, ewepu caching,
    ịnweta ihe Python site na koodu JVM. Nsonaazụ emelitere na ule arụmọrụ maka koodu python na ndọtị ala (imepe ndọtị nwa afọ n'elu llvm na-egosi na bitcode llvm gafere na GraalVM maka mkpokọta JIT).

Mgbanwe na TruffleRuby:

  • Iji chịkọta ndọtị nke ala, a na-eji ngwa LLVM arụnyere arụnyere ugbu a, na-eke ma koodu obodo yana koodu bitcode. Nke a pụtara na ihe ndọtị ndị ọzọ kwesịrị ịchịkọta na igbe ahụ, na-ewepụ ọtụtụ nsogbu njikọ;
  • Echichi LLVM dị iche maka ịwụnye ndọtị ala na TruffleRuby;
  • Ịwụnye mgbakwunye C ++ na TruffleRuby anaghịzi achọ ịwụnye libc++ na libc++ abi;
  • Emelitere ikike na EPL 2.0/GPL 2.0/LGPL 2.1, dị ka JRuby na-adịbeghị anya;
  • agbakwunyere nkwado maka arụmụka nhọrọ na GC.stat;
  • Ejiri ihe mkpuchi mee usoro kernel#load yana kernel#spawn na :chdir;
  • Agbakwunyere rb_str_drop_bytes, nke dị mma n'ihi na OpenSSL na-eji ya;
  • Gụnyere mgbakwunye nke bara nnukwu uru etinyegoro maka ụgbọ okporo ígwè ọhụrụ na Rails 6;
  • Iji chịkọta ndọtị nke ala, a na-eji ọkọlọtọ eme ihe, dị ka ọ dị na MRI;
  • Emeela ka arụmọrụ dị mma ma belata oriri ebe nchekwa.

Mgbanwe na FastR:

  • Ekwenyere na ndakọrịta na R 3.6.1;
  • agbakwunyere nkwado mbido maka ịgbatị ndọtị ala dabere na LLVM. Mgbe ị na-ewu ngwugwu R nke ala, a haziri FastR ka ọ jiri ngwa ọrụ LLVM arụnyere na GraalVM. Faịlụ ọnụọgụ abụọ ga-enwe ma koodu ala yana LLVM bitcode.

    A na-ewukwa ngwungwu etinyegoro ụzọ otu a.
    FastR na-ebu ma na-agba koodu ndọtị ala site na ndabara, mana mgbe ejiri nhọrọ "-R.BackEnd=llvm" malite, a ga-eji bitcode. Enwere ike iji azụ azụ LLVM họrọ maka ụfọdụ ngwugwu R site na ịkọwa "--R.BackEndLLVM=pkg1,pkg2". Ọ bụrụ na ị nwere nsogbu ịwụnye ngwugwu, ị nwere ike weghachite ihe niile site na ịkpọ fastr.setToolchain("nwaafọ") ma ọ bụ jiri aka na-edezi faịlụ $FASTR_HOME/etc/Makeconf;

  • Na ntọhapụ a, FastR na-ebu ụgbọ mmiri na-enweghị ụlọ akwụkwọ oge GCC;
  • Ebe nchekwa edobere anya;
  • Nsogbu edoziri mgbe ị na-arụ ọrụ na nnukwu vectors (> 1GB);
  • Emebere grepRaw, mana naanị maka edozi = T.

isi: opennet.ru

Tinye a comment