Cuideachta Oracle scaoileadh meaisín fíorúil uilíoch , a thacaíonn le feidhmchláir a rith i JavaScript (Node.js), Python, Ruby, R, aon teangacha don JVM (Java, Scala, Clojure, Kotlin) agus teangacha ar féidir cód giotán LLVM a ghiniúint (C, C ++ , meirge). Tá an brainse 19.3 rangaithe mar scaoileadh Tacaíocht Fadtéarmach (LTS) agus tacaíocht , lena n-áirítear an cumas cód Java a thiomsú i gcomhaid inrite (Íomhá Dúchais GraalVM). Cóid tionscadail ceadúnaithe faoi GPLv2. Ag an am céanna, eisíodh leaganacha nua de fheidhmithe teanga Python, JavaScript, Ruby agus R ag baint úsáide as GraalVM - , , и .
GraalVM Tiomsaitheoir JIT atá in ann cód a fhorghníomhú ó aon teanga scriptithe ar an eitilt sa JVM, lena n-áirítear JavaScript, Ruby, Python agus R, agus a fhágann gur féidir cód dúchais a rith sa JVM arna thiontú go cód giotán LLVM. I measc na n-uirlisí a sholáthraíonn GraalVM tá dífhabhtóir teanga-neamhspleách, córas próifílithe, agus anailísí leithdháilte cuimhne. Is féidir feidhmchláir chomhcheangailte a chruthú le comhpháirteanna i dteangacha éagsúla le GraalVM, rud a ligeann duit rochtain a fháil ar réada agus eagair ó chód i dteangacha eile. Maidir le teangacha JVM-bhunaithe tá comhaid inrite a chruthú arna dtiomsú i gcód meaisín is féidir a rith go díreach le hídiú cuimhne íosta (cuirtear bainistíocht cuimhne agus snáithe i bhfeidhm tríd an gcreat a nascadh ).
:
- Cinntítear comhoiriúnacht le Node.js 12.10.0;
- Díchumasaítear airíonna agus feidhmeanna neamhchaighdeánacha domhanda de réir réamhshocraithe:
domhanda (arna ionadú ag globalThis, ag socrú js.global-property chun filleadh), feidhmíocht (js.performance), print and printErr (js.print); - Promise.all curtha i bhfeidhm Togra comhaontaithe socraithe agus neamhnithe, atá ar fáil i mód ECMAScript 2020 (“-js.ecmascript-version=2020”);
- Cleithiúnaithe nuashonraithe ICU4J go 64.2, ASM go 7.1.
in GraalPython:
- Cuireadh stubs gc.{chumas, díchumasaigh, díchumasaithe}, curtha i bhfeidhm charmap_build, sys.hexversion agus _lzma;
- Leabharlann chaighdeánach Python 3.7.8 nuashonraithe;
- Tacaíocht bhreise do NumPy 1.16.4 agus Pandas 0.25.0;
- Cuireadh tacaíocht timeit leis;
- Tá socket.socket tugtha go staid a ligeann duit “graalpython -m http.server” a rith agus acmhainní http neamhchriptithe (gan TLS) a luchtú;
- Saincheisteanna seasta le rudaí pandas.DataFrame a thaispeáint.
próiseáil mícheart tuples i bytes.startswith,
sannadh iterators a scrios agus úsáid dict.__contains__ le haghaidh foclóirí; - Cuireadh tacaíocht le haghaidh ast.PyCF_ONLY_AST, a a chinntiú go n-oibríonn pytest;
- Curtha leis PEP 498 (idirshuíomh teaghrán i liteartha);
- an bhratach “--python.EmulateJython” chun ranganna JVM a allmhairiú ag baint úsáide as gnáth-chomhréir allmhairithe Python agus eisceachtaí JVM ó chód Python a ghabháil;
- Feidhmíocht parsálaí feabhsaithe, taisceadh eisceachta,
rochtain a fháil ar rudaí Python ó chód JVM. Torthaí feabhsaithe i dtástálacha feidhmíochta le haghaidh cód python agus síntí dúchais (tá sé le tuiscint nuair a chuirtear síntí dúchasacha i gcrích ar bharr llvm go gcuirtear bitcode llvm ar aghaidh chuig GraalVM le haghaidh tiomsú JIT).
i TruffleRuby:
- Chun síntí dúchais a thiomsú, úsáidtear an fhoireann uirlisí LLVM ionsuite anois, ag cruthú cód dúchais agus cód giotán. Ciallaíonn sé seo gur chóir go mbeadh níos mó síntí dúchais le chéile as an mbosca, rud a chuirfeadh deireadh leis an gcuid is mó de na saincheisteanna nasctha;
- Suiteáil LLVM ar leithligh chun síntí dúchais a shuiteáil i TruffleRuby;
- Ní gá libc++ agus libc++abi a shuiteáil a thuilleadh chun síntí C++ a shuiteáil ar TruffleRuby;
- Ceadúnas nuashonraithe go EPL 2.0/GPL 2.0/LGPL 2.1, mar an gcéanna le JRuby le déanaí;
- Tacaíocht d'argóintí roghnacha curtha le GC.stat;
- Cuireadh modh luchtaithe Eithne i bhfeidhm le cumhdach agus sceith Eithne le :chdir;
- Cuireadh rb_str_drop_bytes leis, rud atá iontach mar go n-úsáideann OpenSSL é;
- Áiríodh síntí ar GEMS réamhshuiteáilte a theastaíonn le haghaidh ráillí nua i Rails 6;
- Chun síntí dúchais a thiomsú, úsáidtear bratacha, mar atá i MRI;
- Tá optimizations feidhmíochta déanta agus laghdaíodh tomhaltas cuimhne.
i FastR:
- Cinntítear comhoiriúnacht le R 3.6.1;
- Cuireadh réamhthacaíocht leis chun síntí dúchais a rith bunaithe ar LLVM. Agus pacáistí R dúchasacha á dtógáil, tá FastR cumraithe chun uirlis LLVM ionsuite GraalVM a úsáid. Beidh an dá chód dúchais agus giotán LLVM sna comhaid dhénártha mar thoradh air.
Tógtar pacáistí réamhshuiteáilte ar an mbealach seo freisin.
Lódálann agus ritheann FastR cód síntí dúchais de réir réamhshocraithe, ach nuair a sheoltar é leis an rogha "--R.BackEnd = llvm", úsáidfear bitcode. Is féidir an t-inneall LLVM a úsáid go roghnach do roinnt pacáistí R trí "--R.BackEndLLVM=pkg1,pkg2" a shonrú. Má tá fadhbanna agat le pacáistí a shuiteáil, is féidir leat gach rud a chur ar ais trí ghlao a chur ar fastr.setToolchain ("dúchais") nó an comhad $FASTR_HOME/etc/Makeconf a chur in eagar de láimh; - Sa scaoileadh seo, seoltar FastR gan leabharlanna ama rite an GCC;
- Sceitheadh cuimhne seasta;
- Fadhbanna seasta agus tú ag obair le veicteoirí móra (> 1GB);
- GrepRaw curtha i bhfeidhm, ach i gcás seasta=T amháin.
Foinse: oscailtenet.ru
