اوریکل شرکت د نړیوال مجازی ماشین خوشې کول ، کوم چې په جاواسکریپټ (Node.js)، پایتون، روبي، R، د JVM هرې ژبې (جاوا، سکالا، کلوجور، کوټلین)، او هغه ژبې چې د LLVM بټ کوډ تولید کیدی شي (C، C++، رسټ) کې د چلولو غوښتنلیکونو ملاتړ کوي. څانګه 19.3 د اوږدمهاله ملاتړ (LTS) خوشې کولو په توګه طبقه بندي شوې او ملاتړ ، د جاوا کوډ د اجرا وړ فایلونو کې د راټولولو وړتیا په شمول (GraalVM اصلي انځور). د پروژې کوډ د GPLv2 جواز لاندې. د GraalVM په کارولو سره د پایتون، جاواسکریپټ، روبي، او R ژبو پلي کولو نوې نسخې په ورته وخت کې خپرې شوې. , , и .
GraalVM یو JIT کمپیلر چې کولی شي په JVM کې د هرې سکرپټینګ ژبې څخه کوډ په چټکۍ سره اجرا کړي، په شمول د جاواسکریپټ، روبي، پایتون، او R، او همدارنګه اصلي کوډ ته اجازه ورکوي چې په JVM کې چل شي، LLVM بټ کوډ ته بدل شي. د GraalVM وسیلې کې د ژبې خپلواک ډیبګر، پروفایل کولو سیسټم، او د حافظې تخصیص تحلیل کونکی شامل دي. GraalVM د مختلفو ژبو اجزاو سره د ګډ غوښتنلیکونو رامینځته کولو ته اجازه ورکوي، چې د نورو ژبو کوډ څخه شیانو او صفونو ته لاسرسی ته اجازه ورکوي. د JVM پر بنسټ ژبو لپاره، دا شامل دي د ماشین کوډ کې راټول شوي د اجرا وړ فایلونو رامینځته کول چې په مستقیم ډول د لږترلږه حافظې مصرف سره اجرا کیدی شي (د حافظې او تار مدیریت د چوکاټ شاملولو له لارې پلي کیږي) ).
:
- د Node.js 12.10.0 سره مطابقت ډاډمن شوی دی؛
- غیر معیاري نړیوال ملکیتونه او دندې په ډیفالټ ډول غیر فعال دي:
global (د globalThis سره بدل شوی، د js.global-property ترتیب د بیرته راستنیدو لپاره چمتو شوی)، فعالیت (js.performance)، چاپ او printErr (js.print)؛ - Promise.allSettled او د nullish coalescing وړاندیز پلي شوی او د ECMAScript 2020 حالت کې شتون لري ("--js.ecmascript-version=2020");
- د انحصار ICU4J 64.2 ته، ASM 7.1 ته تازه شوی.
په ګریل پایتون کې:
- اضافه شوي gc{enable,disable,isenabled} سټبونه، پلي شوي charmap_build، sys.hexversion او _lzma؛
- د پایتون معیاري کتابتون 3.7.8 ته تازه شوی دی؛
- د NumPy 1.16.4 او Pandas 0.25.0 لپاره اضافه شوی ملاتړ؛
- د ټایم ایټ ملاتړ اضافه شوی؛
- socket.socket داسې حالت ته راوړل شوی چې د "graalpython -m http.server" چلولو او غیر کوډ شوي (پرته له TLS) http سرچینو بارولو ته اجازه ورکوي؛
- د پانډا ډیټا فریم شیانو د محصول سره حل شوې ستونزې،
په bytes.startswith کې د ټوپلونو ناسم اداره کول،
د تکرارونکو د دندې تخریب او د قاموسونو لپاره د dict.__contains__ کارول؛ - د ast.PyCF_ONLY_AST لپاره ملاتړ اضافه شوی، کوم چې ډاډ ترلاسه کړئ چې پایټیسټ کار کوي؛
- زیاته کړه PEP 498 (په لفظي ډول د تارونو انټرپولیشن)؛
- د "--python.EmulateJython" بیرغ د JVM ټولګیو واردولو لپاره د عادي پایتون وارداتي ترکیب په کارولو سره او د پایتون کوډ څخه د JVM استثناوې نیولو لپاره؛
- د پارسر فعالیت ښه شوی، د استثنا کیش کول،
د JVM کوډ څخه د پایتون شیانو ته لاسرسی. د پایتون کوډ او اصلي توسیعونو لپاره د فعالیت معیاري پایلې ښه شوي (د LLVM په سر کې د اصلي توسیعونو چلول پدې معنی دي چې د LLVM بټ کوډ د JIT تالیف لپاره GraalVM ته لیږدول شوی).
په ټریفل روبي کې:
- اوس اصلي توسیعونه د مدغم LLVM وسیلې زنځیر په کارولو سره تالیف شوي، کوم چې اصلي او بټ کوډ دواړه تولیدوي. دا پدې مانا ده چې نور اصلي توسیعونه باید د بکس څخه بهر تالیف شي، د لینک کولو ډیری ستونزې حل کړي.
- په TruffleRuby کې د اصلي توسیعونو نصبولو لپاره د LLVM جلا نصب کول؛
- په TruffleRuby کې د C++ ایکسټینشنونو نصب کول نور د libc++ او libc++abi نصبولو ته اړتیا نلري؛
- جواز EPL 2.0/GPL 2.0/LGPL 2.1 ته تازه شوی دی، لکه څنګه چې په وروستي JRuby کې؛
- په GC.stat کې د اختیاري دلیلونو لپاره ملاتړ اضافه شوی؛
- د ریپر سره د کرنل#لوډ طریقه او د :chdir سره د کرنل#سپون طریقه پلي شوه؛
- rb_str_drop_bytes اضافه شوي، کوم چې خورا ښه دی ځکه چې OpenSSL یې کاروي؛
- په ریل ۶ کې د نویو ریلونو لپاره اړین مخکې نصب شوي جواهراتو ته غزونه شامل دي؛
- د اصلي توسیعونو د راټولولو لپاره، بیرغونه کارول کیږي، لکه څنګه چې په MRI کې؛
- د فعالیت اصلاح شوې او د حافظې مصرف کم شوی دی.
په فاسټ آر کې:
- د R 3.6.1 سره د مطابقت ډاډمن شوی؛
- د LLVM پر بنسټ د اصلي توسیعونو اجرا کولو لپاره لومړني ملاتړ اضافه شوی دی. کله چې د اصلي R کڅوړې جوړیږي، FastR د GraalVM کې جوړ شوي LLVM وسیلې زنځیر کارولو لپاره تنظیم شوی. پایله لرونکي بائنری به دواړه اصلي کوډ او LLVM بټ کوډ ولري.
مخکې له مخکې نصب شوي کڅوړې هم په دې ډول راټولېږي.
FastR د اصلي توسیع کوډ په ډیفالټ ډول باروي او چلوي، مګر کله چې د "--R.BackEnd=llvm" اختیار سره چلیږي، بټ کوډ به وکارول شي. د LLVM بیک انډ د "--R.BackEndLLVM=pkg1,pkg2" مشخص کولو سره د ځینې R پیکجونو لپاره په انتخابي ډول کارول کیدی شي. که چیرې د پیکجونو نصبولو پرمهال ستونزې رامینځته شي، تاسو کولی شئ د fastr.setToolchain("native") زنګ وهلو یا د $FASTR_HOME/etc/Makeconf فایل په لاسي ډول ایډیټ کولو سره ډیفالټ ته بیرته راستون شئ. - په دې خپرونه کې، فاسټ آر د GCC د چلولو وخت کتابتونونو پرته لیږدول کیږي؛
- د حافظې لیکونه حل شوي؛
- د لویو ویکتورونو (>1GB) سره د کار کولو پر مهال ستونزې حل شوې؛
- grepRaw تطبیق شوی، مګر یوازې د fixed=T لپاره.
سرچینه: opennet.ru
