19.3.0 de GraalVM virtualis machina et exsecutione Pythonis, JavaScript, Ruby et R innititur

Oraculum Company published et universae virtualis apparatus dimittere GraalVM 19.3.0, quae applicationes cursus in JavaScript (Node.js), Python, Ruby, R sustinet, quaslibet linguas pro JVM (Java, Scala, Clojure, Kotlin) et linguas pro quibus LLVM bitcode generari possunt (C, C++ , Rubigo). In 19.3 ramus stat pro Long Term Support (LTS) emissio et praeclarum auxilium XII JDK, e facultate Javae codicem in files exsecutabiles componendi (GraalVM Native Image). Project code per distribui licentiatus sub GPLv2. Eodem tempore novae versiones Pythonis, JavaScript, Ruby et R in usu linguae GraalVM dimissi sunt - GraalPython, GraalJS, TruffleRuby ΠΈ FastR.

GraalVM praebet A JIT compilator, qui codicem e lingua quavis scripturae in musca in JVM, incluso JavaScript, Ruby, Python et R, exsequi potest, ac etiam sinit ut in JVM in JVM converti ad LLVM bitcode currendum sit. Instrumenta a GraalVM provisum includunt debugger lingua-independens, systema profiling, et destinatio analystrix memoriam. GraalVM efficit ut coniunctos applicationes cum diversis in variis linguis componentes creare sinat, te ad res accedere et e codice in aliis linguis vestiri. JVM pro fundatum linguarum est potestatem creando files exsecutabile in codice machinae confecto quae directe exsecutioni mandari potest cum minimalis memoriae consummatio (memoria et fila administratio per compagem connectens impletur. Substratum VM).

Mutationes in GraalJS:

  • Compatibilitas cum Node.js 12.10.0 conservatur;
  • Proprietates globales non vexillum proprietatibus et functionibus per defaltam debilitata sunt:
    global (reponitur per globalThis, occasus js.global-proprietas reditus), effectus (js.performance), print and printErr (js.print);

  • Impleta Promise.allSettled et nullish coalescentibus propositionibus, quae in ECMAscript 2020 modo praesto sunt ("-js. ecmascript-version=2020");
  • Renovata dependentiae ICU4J ad 64.2, ASM ad 7.1.

mutationes in GraalPython:

  • Stipulae additae gc.{enable, disable, isenabled}, implemented charmap_build, sys.hexversion et _lzma;
  • Renovata Pythone 3.7.8 vexillum bibliotheca;
  • Addidit subsidium NumPy 1.16.4 et Pandas 0.25.0;
  • Addidit timeit subsidium;
  • socket.socket adductus est ad statum qui permittit ut "graalpython -m http.server" currere et onerare unencrypted (sine TLS) http opes;
  • Certae quaestiones cum obiectis pandas.DataFrame ostentantes.
    falsa processus tuples in bytes.startswith,
    iteratorum assignationem destruens et usum dict.__ continet pro dictionariis;

  • Auxilia addita pro ast.PyCF_ONLY_AST, quod licet opera ut pytest;
  • adiecit auxilium PEP 498 (filum interpolationis literae);
  • implemented vexillum "--python.EmulateJython" importare JVM classes utentes normalis Python syntaxin important et excipias JVM exceptiones e Pythone codice;
  • Improved Total performance, Exceptio caching;
    accessing Python objects from JVM code. Proventus melioris in effectu probationum pro pythonis codice et extensionibus indigenis (executioni indigenarum super llvm involvit quod bitcode llvm ad GraalVM pro JIT compilationem transiit).

mutationes in TruffleRuby:

  • Ad extensiones indigenas componendas, constructum-in LLVM toolkit nunc adhibitum est, tam indigenam quam bitcode creans. Hoc significat plures extensiones indigenas componi ex archa, quaestiones maxime ligantes removentes;
  • Separate LLVM institutionem pro extensionibus nativis in TruffleRuby insertis;
  • Installing C++ extensiones in TruffleRuby non amplius requirit inaugurari libc++ et libc++abi;
  • Licentia renovata ad EPL 2.0/GPL 2.0/LGPL 2.1, eadem ac recentia JRuby;
  • Adiecta subsidia ad rationes ad libitum GC.stat;
  • Modum oneris nuclei implevit cum fasciculo et Kernel# pariunt cum :chdir;
  • Rb_str_drop_bytes addidit, qui magnus est, quia OpenSSL eo utitur;
  • Includuntur extensiones gemmarum pre-installarum necessariarum ad cancellos novas in Rails 6;
  • Ad extensiones vernaculas componendas, vexilla adhibentur, ut in MRI;
  • Optimizationes euismod factae sunt et consummatio memoriae redacta est.

mutationes in FastR:

  • Compatibility with R 3.6.1 conservatur;
  • Auxilia praevia addita pro extensionibus indigenis in LLVM currentibus. Cum sarcinis indigenis R aedificandis, FastR configuratur uti aedificatum GraalVM in LLVM instrumento. Lima binaria inde proveniens utrumque codicem nativum ac LLVM bitcode continebit.

    Fasciculi praestructi hoc modo etiam aedificati sunt.
    Onera FastR et extensio codice indigena decurrit per defaltam, sed cum optione "--R.BackEnd=llvm" immissa est, bitcode adhibebitur. LLVM backend selective adhiberi potest pro aliquibus fasciculis R "--R.BackEndLLVM=pkg1,pkg2". Si problemata fasciculi inserta habes, omnia retro reverti potes vocando fastr.setToolchain("nativa") vel manually emendando fasciculum $FASTR_HOME/etc/Makeconf;

  • In this release, FastR naves sine GCC runtime libraries;
  • Certa memoria pinum;
  • Problemata fixa cum vectoribus magnis laborantibus (1 GB);
  • Impletur grepRaw, sed tantum pro fixum=T.

Source: opennet.ru