Луа 5.4

По две години развој, на 29 јуни, тивко и тивко беше објавена новата верзија на програмскиот јазик Луа, 5.4.

Lua е едноставен, интерпретиран програмски јазик кој лесно може да се интегрира во апликациите. Поради овие квалитети, Lua е широко користен како јазик за проширување или опишување на конфигурацијата на програмите (особено, компјутерските игри). Луа се дистрибуира под лиценцата МИТ.

Претходната верзија (5.3.5) беше објавена на 10 јули 2018 година.

Главните промени во новата верзија

  • нова генерација ѓубреџија. Во функцијата collectgarbage, параметрите setpause и setstepmul се застарени и наместо тоа се препорачува поединечниот параметар;

  • нова функција за издавање предупредувачки предупредувања со можност за оневозможување на нивниот приказ;

  • новата имплементација на math.random го користи алгоритмот xoshiro256** наместо дадениот libc и го иницијализира генераторот со случаен број;

  • постојани променливи;

  • Променливите „to-be-closed“ се локални константи за кои се извршува методот __close кога се напушта опсегот;

  • нова функција lua_resetthread - го брише оџакот и ги затвора сите „затворени“ променливи;

  • нова функција coroutine.close - ја затвора наведената корутина и сите нејзини „затворени“ променливи;

  • корисничките податоци може да содржат збир на вредности до кои се пристапува по индекс. Воведени се нови функции за работа со нив: lua_newuserdatauv, lua_setiuservalue и lua_getiuservalue;

  • Достапни се информации за дебагирање за параметрите и повратните вредности на функциите;

  • ако се користи цел број индекс во јамката for и се случи прелевање, јамката завршува;

  • Додаден е изборен аргумент во функцијата string.gmatch, наведувајќи го поместувањето од почетокот на низата за пребарување на совпаѓања;

  • функциите за имплицитно конвертирање на низи во броеви се преместени во библиотеката со стрингови и нивното однесување е променето. На пример, резултатот од операцијата „1“ + „2“ ​​сега е цел број наместо број со подвижна запирка;

  • во функцијата за распределба на меморијата, може да се појави грешка при намалување на меморискиот блок;

  • нов симбол за форматирање во функцијата стринг.формат - %p (за покажувачи);

  • библиотеката utf8 прифаќа шифри на знаци до 2³¹ (ако е одредено посебно знаменце, без него се дозволени само кодови до 0x10FFFF и не се дозволени сурогати);

  • целобројните константи надвор од опсегот на вредности се претвораат во пловечки броеви (претходно се случи бит клип);

  • метаметодот __lt повеќе не се користи за емулирање на __le метаметодот доколку е потребно, метаметодот __le мора да биде експлицитно наведен;

  • ознака за изјава goto не може да се креира ако ознака со исто име веќе постои во тековниот опсег (дури и ако е дефинирана во надворешниот опсег);

  • Метаметодот __gc може да биде повеќе од само функција. Ако обидот за повикување метод не успее, ќе се отпечати предупредување;

  • функцијата за печатење не повикува tostring за секој аргумент, туку користи свои внатрешни конверзии;

  • функцијата io.lines враќа сет од четири вредности наместо една за да го имитира старото однесување, заградете го повикот во заграда ако го пренесувате како параметар на друг повик на функција.

Извор: linux.org.ru

Купете доверлив хостинг за сајтови со DDoS заштита, VPS VDS сервери 🔥 Купете сигурен веб-хостинг со DDoS заштита, VPS VDS сервери | ProHoster