{"id":53001,"date":"2019-11-21T00:00:00","date_gmt":"2019-11-20T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove"},"modified":"2020-02-18T14:00:50","modified_gmt":"2020-02-18T11:00:50","slug":"reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove","title":{"rendered":"GraalVM 19.3.0 virtuaalmasina ja selle baasil t\u00f6\u00f6deldud Python, JavaScript, Ruby ja R rakenduste v\u00e4ljaanne","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Oracle Corporation <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/graal\/releases\/tag\/vm-19.3.0\">avalikustasin<\/a><\/noindex> universaalse virtuaalmasina v\u00e4ljalase <noindex><a rel=\"nofollow\" href=\"https:\/\/www.graalvm.org\/\">GraalVM 19.3.0<\/a><\/noindex>, mis toetab rakenduste k\u00e4ivitamist JavaScriptis (Node.js), Pythonis, Rubys, R-is, igasugustes JVM-i keeltes (Java, Scala, Clojure, Kotlin) ja keeltes, mille jaoks saab luua LLVM bitkoodi (C, C++, Rust). Haru 19.3 kuulub pikaajalise toe (LTS) v\u00e4ljaannete kategooriasse ja <noindex><a rel=\"nofollow\" href=\"https:\/\/www.graalvm.org\/docs\/release-notes\/19_3\/\">on t\u00e4helepanuv\u00e4\u00e4rne<\/a><\/noindex> toetades <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=49336\">JDK 11<\/a><\/noindex>, sealhulgas v\u00f5ime Java-koodi kompileerida t\u00e4itmisfailideks (GraalVM Native Image). Projekti kood <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/graal\/\">GNU \u00dcldine Avaliku litsentsi alusel.<\/a><\/noindex> \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 GPLv2. \u041e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0432\u044b\u043f\u0443\u0449\u0435\u043d\u044b \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 GraalVM \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u044f\u0437\u044b\u043a\u043e\u0432 Python, JavaScript, Ruby \u0438 R &#8212;  <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graalpython\/\">GraalPython<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graaljs\/\">GraalJS<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/truffleruby\/\">TruffleRuby<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/fastr\/\">FastR<\/a><\/noindex>. <\/p>\n<p>GraalVM <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=48472\">pakub<\/a><\/noindex> JIT-kompilaator, mis suudab JVM-is jooksutada k\u00f5igi skriptikeelte, sealhulgas JavaScripti, Ruby, Python ja R, koode reaalajas ning v\u00f5imaldab samuti k\u00e4ivitada JVM-is natiivkoodi, mis on muudetud LLVMi bitikoodiks. GraalVM pakub keelelt s\u00f5ltumatut t\u00f6\u00f6riistakomplekti, mis sisaldab debugeerijat, profiilianal\u00fc\u00fcsis\u00fcsteemi ja m\u00e4lu jaotuse analy\u00fcsijat. GraalVM v\u00f5imaldab luua kombineeritud rakendusi erinevatel keeltest koosnevatest komponentidest, v\u00f5imaldades loetletud objekte ja massiive kasutada muudes keeltes kirjutatud koodis. JVM-p\u00f5histe keelte jaoks on saadaval <noindex><a rel=\"nofollow\" href=\"https:\/\/www.graalvm.org\/docs\/reference-manual\/aot-compilation\/\">v\u00f5imalus<\/a><\/noindex> masinkoodiks kompileeritud k\u00e4ivitusfailide loomine, mida saab otse k\u00e4ivitada minimaalse m\u00e4lutarbimisega (m\u00e4lu ja l\u00f5ime haldamine on rakendatud raamistiku kaudu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/graal\/tree\/master\/substratevm\">Substrate VM<\/a><\/noindex>).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graaljs\/blob\/master\/CHANGELOG.md\">GraalJS muudatused<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Node.js 12.10.0 \u00fchilduvus tagatud;\n<li class=\"l\"> Vaikimisi on keelatud mittestandardsed globaalsete omaduste ja funktsioonide kasutamine:<br \/>\n       global (asendatud globalThisiga, tagastamine on konfigureeritud js.global-property), performance (js.performance), print ja printErr (js.print);<\/p>\n<li class=\"l\"> \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b Promise.allSettled \u0438 nullish coalescing proposal, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 ECMAScript 2020 (&#171;&#8212;js.ecmascript-version=2020&#187;);\n<li class=\"l\"> ICU4J s\u00f5ltuvused on uuendatud versioonile 64.2, ASM versioonile 7.1.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graalpython\/blob\/master\/CHANGELOG.md#version-1930\">Muutused<\/a><\/noindex> GraalPythonis:<\/p>\n<ul>\n<li class=\"l\"> Lisatud on gc.{enable,disable,isenabled} kohandamisfunktsioonid, implementeeritud on charmap_build, sys.hexversion ja _lzma;\n<li class=\"l\"> Python 3.7.8 standardbiblioteek on uuendatud;\n<li class=\"l\"> Toetatud on NumPy 1.16.4 ja Pandas 0.25.0;\n<li class=\"l\"> Toetatud on timeit;\n<li class=\"l\">  socket.socket \u0434\u043e\u0432\u0435\u0434\u0451\u043d \u0434\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c &#171;graalpython -m http.server&#187; \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043d\u0435\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 (\u0431\u0435\u0437 TLS) http-\u0440\u0435\u0441\u0443\u0440\u0441\u044b;\n<li class=\"l\"> Parandatud on probleemid, mis on seotud pandas.DataFrame objektide v\u00e4ljundiga,<br \/>\n    vale tuplede t\u00f6\u00f6tlemisega funktsioonis bytes.startswith,<br \/>\n    destruktureerimise m\u00e4\u00e4ramise iteratiivsete elementide ja dict.__contains__ kasutamisega s\u00f5nastike jaoks;<\/p>\n<li class=\"l\"> Lisa toetus ast.PyCF_ONLY_AST, mis <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graalpython\/issues\/53\">v\u00f5imaldas<\/a><\/noindex> tagada pytest t\u00f6\u00f6;\n<li class=\"l\"> Lisatud <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graalpython\/issues\/85\">toetamine<\/a><\/noindex> PEP 498 (stringide interpoleerimine liitlikes);\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graalpython\/issues\/43\">Tehtud<\/a><\/noindex>  \u0444\u043b\u0430\u0433 &#171;&#8212;python.EmulateJython&#187; \u0434\u043b\u044f \u0438\u043c\u043f\u043e\u0440\u0442\u0430 JVM-\u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e Python-\u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 import \u0438 \u043b\u043e\u0432\u043b\u0438 JVM-\u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0438\u0437  \u043a\u043e\u0434\u0430 \u043d\u0430 Python;\n<li class=\"l\">  Parandatud on parseri j\u00f5udlust, erandite vahem\u00e4lu,<br \/>\n      Python objekti juurdep\u00e4\u00e4s JVM-koodist. T\u00f5hustatud on j\u00f5udluse teste python koodi ja kohandatud laiendite jaoks (kohandatud laiendite teostamine llvm-i peal eeldab, et llvm-i bitkood edastatakse GraalVM-ile JIT-kompileerimiseks).\n<\/ul>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/truffleruby\/releases\/tag\/vm-19.3.0\">Muutused<\/a><\/noindex> TruffleRubys:<\/p>\n<ul>\n<li class=\"l\"> Natiivsete laiendite kompileerimiseks kasutatakse n\u00fc\u00fcd sisseehitatud LLVM t\u00f6\u00f6riistade komplekti, mis genereerib nii natiivset koodi kui ka bitikoodi. See t\u00e4hendab, et enamiku natiivsete laiendite kompileerimine peaks olema n\u00fc\u00fcd sujuvam, lahendades enamikku sidumisega seotud probleeme;\n<li class=\"l\"> TruffleRuby natiivsete laiendite installimiseks on vajalik eraldi LLVM installatsioon;\n<li class=\"l\"> TruffleRuby C++ laiendite installimiseks ei ole n\u00fc\u00fcd vaja libc++ ja libc++abi installimist;\n<li class=\"l\">    Litsents on uuendatud EPL 2.0\/GPL 2.0\/LGPL 2.1, nagu ka hiljutises JRuby versioonis;\n<li class=\"l\"> GC.stat meetod on t\u00e4iendatud valiklike argumendiga;\n<li class=\"l\"> Meetod Kernel#load on rakendatud \u00fcmber ja Kernel#spawn koos :chdir;\n<li class=\"l\"> Lisatud on rb_str_drop_bytes, mis on t\u00e4helepanuv\u00e4\u00e4rne, kuna seda kasutab OpenSSL;\n<li class=\"l\">    Rails 6 raamistikuks vajalikud eelnevalt installitud gemide laiendused on n\u00fc\u00fcd kaasatud, et toetada rails new;\n<li class=\"l\"> Natiivsete laiendite kompileerimisel on kasutusele v\u00f5etud flagid nagu MRI-s;\n<li class=\"l\"> Tulemuslikkuse optimeerimised ja m\u00e4lutarbimise v\u00e4hendamine on teostatud.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/fastr\/releases\/tag\/vm-19.3.0\">Muutused<\/a><\/noindex> FastR-is:<\/p>\n<ul>\n<li class=\"l\"> Tagatud on \u00fchilduvus R 3.6.1-ga;\n<li class=\"l\"> Lisatud eeltoelised LLVM-p\u00f5histe natiivsete laiendite t\u00e4itmise tugi. Natiivsete pakettide koostamisel on R FastR seadistatud GraalVM-i integreeritud LLVM-t\u00f6\u00f6riistade kasutamiseks. Tulemuseks olevad binaarfailid sisaldavad nii natiivset koodi kui ka LLVM-bitikoodi.\n<p>Esialgsed paketid on samuti sel viisil koostatud.<br \/>\n FastR \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u0434 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u0441 \u043e\u043f\u0446\u0438\u0435\u0439 &#171;&#8212;R.BackEnd=llvm&#187;, \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0438\u0442\u043a\u043e\u0434. LLVM \u0431\u044d\u043a\u044d\u043d\u0434 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u0431\u0438\u0440\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 R \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044f &#171;&#8212;R.BackEndLLVM=pkg1,pkg2&#187;. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435  \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043c\u043e\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0441\u0451 \u043d\u0430\u0437\u0430\u0434, \u0432\u044b\u0437\u0432\u0430\u0432 fastr.setToolchain(&#171;native&#187;) \u0438\u043b\u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u043e\u0434\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0432 \u0444\u0430\u0439\u043b $FASTR_HOME\/etc\/Makeconf;<\/p>\n<li class=\"l\"> Selles v\u00e4ljaandes on FastR ilma GCC runtime'i raamatukogudeta;\n<li class=\"l\"> M\u00e4lu lekkeid on parandatud;\n<li class=\"l\"> Probleemid suurte vektoritega (&gt;1GB) on parandatud;\n<li class=\"l\"> On rakendatud grepRaw, kuid ainult fixed=T jaoks.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Allikas: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51906\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b GraalVM 19.3.0, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 JavaScript (Node.js), Python, Ruby, R, \u043b\u044e\u0431\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u0434\u043b\u044f JVM (Java, Scala, Clojure, Kotlin) \u0438 \u044f\u0437\u044b\u043a\u0430\u0445, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0438\u0442\u043a\u043e\u0434 LLVM (C, C++, Rust). \u0412\u0435\u0442\u043a\u0430 19.3 \u043e\u0442\u043d\u0435\u0441\u0435\u043d\u0430 \u043a \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u043e\u0432 \u0441 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 (LTS) \u0438 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 JDK 11, \u0432 \u0442\u043e\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-53001","post","type-post","status-publish","format-standard","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b GraalVM 19.3.0, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 JavaScript (Node.js), Python, Ruby, R, \u043b\u044e\u0431\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u0434\u043b\u044f JVM (Java, Scala, Clojure, Kotlin) \u0438 \u044f\u0437\u044b\u043a\u0430\u0445, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0438\u0442\u043a\u043e\u0434 LLVM (C, C++, Rust). \u0412\u0435\u0442\u043a\u0430 19.3 \u043e\u0442\u043d\u0435\u0441\u0435\u043d\u0430 \u043a \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u043e\u0432 \u0441 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 (LTS) \u0438 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 JDK 11, \u0432 \u0442\u043e\u043c\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 19.3.0 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b GraalVM \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 Python, JavaScript, Ruby \u0438 R \u043d\u0430 \u0435\u0451 \u043e\u0441\u043d\u043e\u0432\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b GraalVM 19.3.0, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 JavaScript (Node.js), Python, Ruby, R, \u043b\u044e\u0431\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u0434\u043b\u044f JVM (Java, Scala, Clojure, Kotlin) \u0438 \u044f\u0437\u044b\u043a\u0430\u0445, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0438\u0442\u043a\u043e\u0434 LLVM (C, C++, Rust). \u0412\u0435\u0442\u043a\u0430 19.3 \u043e\u0442\u043d\u0435\u0441\u0435\u043d\u0430 \u043a \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u043e\u0432 \u0441 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 (LTS) \u0438 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 JDK 11, \u0432 \u0442\u043e\u043c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-20T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:50+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47GraalVM 19.3.0 virtuaalmasina v\u00e4ljalaskmine ning Python, JavaScript, Ruby ja R teostused sellel alusel | ProHoster","description":"Oracle on avalikustanud GraalVM 19.3.0 universaalse virtuaalmasina versiooni, mis toetab rakenduste k\u00e4ivitamist JavaScriptis (Node.js), Pythonis, Ruby's, R-is, igasugustes JVM-i keeltes (Java, Scala, Clojure, Kotlin) ja keeltes, mille jaoks saab genereerida LLVM-i bitkoodi (C, C++, Rust). 19.3 haru kuulub pikaajalise toe (LTS) versioonide kategooriasse ning sellel on m\u00e4rkimisv\u00e4\u00e4rne JDK 11 tugi,","canonical_url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 19.3.0 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b GraalVM \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 Python, JavaScript, Ruby \u0438 R \u043d\u0430 \u0435\u0451 \u043e\u0441\u043d\u043e\u0432\u0435 | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b GraalVM 19.3.0, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 JavaScript (Node.js), Python, Ruby, R, \u043b\u044e\u0431\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u0434\u043b\u044f JVM (Java, Scala, Clojure, Kotlin) \u0438 \u044f\u0437\u044b\u043a\u0430\u0445, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0438\u0442\u043a\u043e\u0434 LLVM (C, C++, Rust). \u0412\u0435\u0442\u043a\u0430 19.3 \u043e\u0442\u043d\u0435\u0441\u0435\u043d\u0430 \u043a \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u043e\u0432 \u0441 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 (LTS) \u0438 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 JDK 11, \u0432 \u0442\u043e\u043c","og:url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-11-20T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:50+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53001","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 05:41:27","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:33:28","updated":"2026-01-24 05:41:27"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/53001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=53001"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/53001\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=53001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=53001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=53001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}