ПроХостер > блог > интернет вести > Издање 19.3.0 ГраалВМ виртуелне машине и имплементације Питхон, ЈаваСцрипт, Руби и Р засноване на њој
Издање 19.3.0 ГраалВМ виртуелне машине и имплементације Питхон, ЈаваСцрипт, Руби и Р засноване на њој
Компанија Орацле опубликовала издање универзалне виртуелне машине ГраалВМ 19.3.0, који подржава покретање апликација у ЈаваСцрипт-у (Ноде.јс), Питхон, Руби, Р, било којим језицима за ЈВМ (Јава, Сцала, Цлојуре, Котлин) и језицима за које се може генерисати ЛЛВМ бит код (Ц, Ц++ , Руст). Грана 19.3 је класификована као издање за дугорочну подршку (ЛТС) и изузетан подршка ЈДК 11, укључујући могућност компајлирања Јава кода у извршне датотеке (ГраалВМ Нативе Имаге). Шифра пројекта дистрибуира лиценциран под ГПЛв2. Истовремено, објављене су нове верзије Питхон, ЈаваСцрипт, Руби и Р језика који користе ГраалВМ - ГраалПитхон, ГраалЈС, ТруффлеРуби и ФастР.
ГраалВМ обезбеђује ЈИТ компајлер који може да изврши код из било ког језика за скриптовање у ходу у ЈВМ-у, укључујући ЈаваСцрипт, Руби, Питхон и Р, а такође омогућава покретање изворног кода у ЈВМ конвертованом у ЛЛВМ битцоде. Алати које пружа ГраалВМ укључују програм за отклањање грешака независан од језика, систем профилисања и анализатор алокације меморије. ГраалВМ омогућава креирање комбинованих апликација са компонентама на различитим језицима, омогућавајући вам да приступите објектима и низовима из кода на другим језицима. За језике засноване на ЈВМ постоји прилика креирање извршних датотека компајлираних у машински код који се могу извршити директно уз минималну потрошњу меморије (управљање меморијом и нитима се имплементира кроз повезивање оквира Супстрат ВМ).
Нестандардна глобална својства и функције су подразумевано онемогућене:
глобал (замењено глобалТхис, подешавање јс.глобал-проперти за повратак), перформансе (јс.перформанце), принт и принтЕрр (јс.принт);
Имплементирани Промисе.аллСеттлед и нуллисх предлог за спајање, који су доступни у ЕЦМАСцрипт 2020 режиму (“-јс.ецмасцрипт-версион=2020”);
Додати стубови гц.{енабле,дисабле,исенаблед}, имплементирани цхармап_буилд, сис.хекверсион и _лзма;
Ажурирана стандардна библиотека Питхон 3.7.8;
Додата подршка за НумПи 1.16.4 и Пандас 0.25.0;
Додата подршка за тимеит;
соцкет.соцкет је доведен у стање које вам омогућава да покренете „граалпитхон -м хттп.сервер“ и учитате нешифроване (без ТЛС) хттп ресурсе;
Решени проблеми са приказивањем објеката пандас.ДатаФраме.
нетачна обрада тупле у бајтовима.стартсвитх,
деструктурирање доделе итератора и коришћење дицт.__цонтаинс__ за речнике;
Додата подршка за аст.ПиЦФ_ОНЛИ_АСТ, што дозвољен обезбедити да питест ради;
Додато подршка ПЕП 498 (интерполација низова у литералима);
Имплементирано ознака „--питхон.ЕмулатеЈитхон“ за увоз ЈВМ класа користећи нормалну синтаксу увоза Питхон-а и хватање ЈВМ изузетака из Питхон кода;
Побољшане перформансе парсера, кеширање изузетака,
приступ Питхон објектима из ЈВМ кода. Побољшани резултати тестова перформанси за Питхон код и изворне екстензије (извршавање матичних екстензија на врху ллвм-а имплицира да се ллвм битни код прослеђује ГраалВМ-у за ЈИТ компилацију).
За компајлирање изворних екстензија, сада се користи уграђени ЛЛВМ алат који креира и изворни код и бит код. То значи да би више изворних екстензија требало да се компајлирају из кутије, елиминишући већину проблема са повезивањем;
Одвојена ЛЛВМ инсталација за инсталирање изворних екстензија у ТруффлеРуби;
Инсталирање Ц++ екстензија на ТруффлеРуби више не захтева инсталирање либц++ и либц++аби;
Лиценца ажурирана на ЕПЛ 2.0/ГПЛ 2.0/ЛГПЛ 2.1, исто као и недавни ЈРуби;
Додата подршка за опционе аргументе у ГЦ.стат;
Имплементован метод Кернел#лоад са омотачем и Кернел#спавн са :цхдир;
Додат рб_стр_дроп_битес, што је одлично јер га ОпенССЛ користи;
Укључена проширења унапред инсталираних драгуља потребних за нове шине у Раилс 6;
За компајлирање изворних екстензија, користе се заставице, као у МРИ;
Направљене су оптимизације перформанси и смањена је потрошња меморије.
Додата је прелиминарна подршка за покретање матичних екстензија заснованих на ЛЛВМ-у. Када правите изворне Р пакете, ФастР је конфигурисан да користи ГраалВМ-ов уграђени ЛЛВМ алат. Резултирајуће бинарне датотеке ће садржати и изворни код и ЛЛВМ битни код.
Унапред инсталирани пакети су такође направљени на овај начин.
ФастР подразумевано учитава и покреће изворни код екстензије, али када се покрене са опцијом „--Р.БацкЕнд=ллвм“, користиће се бит код. ЛЛВМ позадина се може користити селективно за неке Р пакете навођењем "--Р.БацкЕндЛЛВМ=пкг1,пкг2". Ако имате проблема са инсталирањем пакета, можете све вратити тако што ћете позвати фастр.сетТоолцхаин("нативе") или ручно уредити датотеку $ФАСТР_ХОМЕ/етц/Макецонф;
У овом издању, ФастР се испоручује без ГЦЦ рунтиме библиотека;
Поправљено цурење меморије;
Решени проблеми при раду са великим векторима (>1ГБ);