Издање 19.3.0 ГраалВМ виртуелне машине и имплементације Питхон, ЈаваСцрипт, Руби и Р засноване на њој

Компанија Орацле опубликовала издање универзалне виртуелне машине ГраалВМ 19.3.0, који подржава покретање апликација у ЈаваСцрипт-у (Ноде.јс), Питхон, Руби, Р, било којим језицима за ЈВМ (Јава, Сцала, Цлојуре, Котлин) и језицима за које се може генерисати ЛЛВМ бит код (Ц, Ц++ , Руст). Грана 19.3 је класификована као издање за дугорочну подршку (ЛТС) и изузетан подршка ЈДК 11, укључујући могућност компајлирања Јава кода у извршне датотеке (ГраалВМ Нативе Имаге). Шифра пројекта дистрибуира лиценциран под ГПЛв2. Истовремено, објављене су нове верзије Питхон, ЈаваСцрипт, Руби и Р језика који користе ГраалВМ - ГраалПитхон, ГраалЈС, ТруффлеРуби и ФастР.

ГраалВМ обезбеђује ЈИТ компајлер који може да изврши код из било ког језика за скриптовање у ходу у ЈВМ-у, укључујући ЈаваСцрипт, Руби, Питхон и Р, а такође омогућава покретање изворног кода у ЈВМ конвертованом у ЛЛВМ битцоде. Алати које пружа ГраалВМ укључују програм за отклањање грешака независан од језика, систем профилисања и анализатор алокације меморије. ГраалВМ омогућава креирање комбинованих апликација са компонентама на различитим језицима, омогућавајући вам да приступите објектима и низовима из кода на другим језицима. За језике засноване на ЈВМ постоји прилика креирање извршних датотека компајлираних у машински код који се могу извршити директно уз минималну потрошњу меморије (управљање меморијом и нитима се имплементира кроз повезивање оквира Супстрат ВМ).

Промене у ГраалЈС-у:

  • Компатибилност са Ноде.јс 12.10.0 је осигурана;
  • Нестандардна глобална својства и функције су подразумевано онемогућене:
    глобал (замењено глобалТхис, подешавање јс.глобал-проперти за повратак), перформансе (јс.перформанце), принт и принтЕрр (јс.принт);

  • Имплементирани Промисе.аллСеттлед и нуллисх предлог за спајање, који су доступни у ЕЦМАСцрипт 2020 режиму (“-јс.ецмасцрипт-версион=2020”);
  • Ажуриране зависности ИЦУ4Ј на 64.2, АСМ на 7.1.

Промјене у ГраалПитхон-у:

  • Додати стубови гц.{енабле,дисабле,исенаблед}, имплементирани цхармап_буилд, сис.хекверсион и _лзма;
  • Ажурирана стандардна библиотека Питхон 3.7.8;
  • Додата подршка за НумПи 1.16.4 и Пандас 0.25.0;
  • Додата подршка за тимеит;
  • соцкет.соцкет је доведен у стање које вам омогућава да покренете „граалпитхон -м хттп.сервер“ и учитате нешифроване (без ТЛС) хттп ресурсе;
  • Решени проблеми са приказивањем објеката пандас.ДатаФраме.
    нетачна обрада тупле у бајтовима.стартсвитх,
    деструктурирање доделе итератора и коришћење дицт.__цонтаинс__ за речнике;

  • Додата подршка за аст.ПиЦФ_ОНЛИ_АСТ, што дозвољен обезбедити да питест ради;
  • Додато подршка ПЕП 498 (интерполација низова у литералима);
  • Имплементирано ознака „--питхон.ЕмулатеЈитхон“ за увоз ЈВМ класа користећи нормалну синтаксу увоза Питхон-а и хватање ЈВМ изузетака из Питхон кода;
  • Побољшане перформансе парсера, кеширање изузетака,
    приступ Питхон објектима из ЈВМ кода. Побољшани резултати тестова перформанси за Питхон код и изворне екстензије (извршавање матичних екстензија на врху ллвм-а имплицира да се ллвм битни код прослеђује ГраалВМ-у за ЈИТ компилацију).

Промјене у ТруффлеРуби:

  • За компајлирање изворних екстензија, сада се користи уграђени ЛЛВМ алат који креира и изворни код и бит код. То значи да би више изворних екстензија требало да се компајлирају из кутије, елиминишући већину проблема са повезивањем;
  • Одвојена ЛЛВМ инсталација за инсталирање изворних екстензија у ТруффлеРуби;
  • Инсталирање Ц++ екстензија на ТруффлеРуби више не захтева инсталирање либц++ и либц++аби;
  • Лиценца ажурирана на ЕПЛ 2.0/ГПЛ 2.0/ЛГПЛ 2.1, исто као и недавни ЈРуби;
  • Додата подршка за опционе аргументе у ГЦ.стат;
  • Имплементован метод Кернел#лоад са омотачем и Кернел#спавн са :цхдир;
  • Додат рб_стр_дроп_битес, што је одлично јер га ОпенССЛ користи;
  • Укључена проширења унапред инсталираних драгуља потребних за нове шине у Раилс 6;
  • За компајлирање изворних екстензија, користе се заставице, као у МРИ;
  • Направљене су оптимизације перформанси и смањена је потрошња меморије.

Промјене у ФастР:

  • Осигурана је компатибилност са Р 3.6.1;
  • Додата је прелиминарна подршка за покретање матичних екстензија заснованих на ЛЛВМ-у. Када правите изворне Р пакете, ФастР је конфигурисан да користи ГраалВМ-ов уграђени ЛЛВМ алат. Резултирајуће бинарне датотеке ће садржати и изворни код и ЛЛВМ битни код.

    Унапред инсталирани пакети су такође направљени на овај начин.
    ФастР подразумевано учитава и покреће изворни код екстензије, али када се покрене са опцијом „--Р.БацкЕнд=ллвм“, користиће се бит код. ЛЛВМ позадина се може користити селективно за неке Р пакете навођењем "--Р.БацкЕндЛЛВМ=пкг1,пкг2". Ако имате проблема са инсталирањем пакета, можете све вратити тако што ћете позвати фастр.сетТоолцхаин("нативе") или ручно уредити датотеку $ФАСТР_ХОМЕ/етц/Макецонф;

  • У овом издању, ФастР се испоручује без ГЦЦ рунтиме библиотека;
  • Поправљено цурење меморије;
  • Решени проблеми при раду са великим векторима (>1ГБ);
  • Имплементиран грепРав, али само за фикед=Т.

Извор: опеннет.ру

Додај коментар