Lua 5.4

İki illik inkişafdan sonra, iyunun 29-da, Lua proqramlaşdırma dilinin yeni versiyası, 5.4, sakit və səssiz şəkildə buraxıldı.

Lua, tətbiqlərə asanlıqla inteqrasiya oluna bilən sadə, şərh edilmiş proqramlaşdırma dilidir. Bu keyfiyyətlərə görə Lua proqramların (xüsusən də kompüter oyunlarının) konfiqurasiyasını genişləndirmək və ya təsvir etmək üçün bir dil kimi geniş istifadə olunur. Lua MIT lisenziyası altında paylanır.

Əvvəlki versiya (5.3.5) 10 iyul 2018-ci ildə buraxılmışdır.

Yeni versiyada əsas dəyişikliklər

  • yeni nəsil zibil yığan. Collectgarbage funksiyasında setpause və setstepmul parametrləri köhnəlib və əvəzinə artım parametri tövsiyə olunur;

  • onların ekranını söndürmək imkanı ilə xəbərdarlıq xəbərdarlıqlarının verilməsi üçün yeni funksiya;

  • math.random-un yeni tətbiqi təqdim edilmiş libc əvəzinə xoshiro256** alqoritmindən istifadə edir və generatoru təsadüfi nömrə ilə işə salır;

  • sabit dəyişənlər;

  • “bağlanacaq” dəyişənlər əhatə dairəsini tərk edərkən __close metodunun icra olunduğu lokal sabitlərdir;

  • yeni lua_resetthread funksiyası - yığını təmizləyir və bütün "qapalı" dəyişənləri bağlayır;

  • yeni funksiya coroutine.close - göstərilən koroutini və onun bütün “qapalı” dəyişənlərini bağlayır;

  • istifadəçi məlumatları indekslə əldə edilən bir sıra dəyərləri ehtiva edə bilər. Onlarla işləmək üçün yeni funksiyalar təqdim edilib: lua_newuserdatauv, lua_setiuservalue və lua_getiuservalue;

  • Parametrlər və funksiyaların qaytarılması dəyərləri haqqında sazlama məlumatları mövcuddur;

  • for döngəsində tam indeks istifadə edilərsə və daşqın baş verərsə, dövrə bitir;

  • string.gmatch funksiyasına isteğe bağlı arqument əlavə edildi, uyğunluqları axtarmaq üçün sətirin əvvəlindən ofseti təyin etdi;

  • sətirləri rəqəmlərə dolayısı ilə çevirmək üçün funksiyalar sətir kitabxanasına köçürüldü və onların davranışı dəyişdi. Məsələn, "1" + "2" əməliyyatının nəticəsi indi üzən nöqtəli nömrə deyil, tam ədəddir;

  • yaddaşın ayrılması funksiyasında yaddaş blokunun azaldılması zamanı xəta baş verə bilər;

  • string.format funksiyasında yeni formatlama simvolu - %p (göstəricilər üçün);

  • utf8 kitabxanası 2³¹-ə qədər simvol kodlarını qəbul edir (əgər xüsusi bayraq göstərilibsə, onsuz yalnız 0x10FFFF-ə qədər kodlara icazə verilir və surroqatlara icazə verilmir);

  • dəyərlər diapazonundan kənarda olan tam sabitlər üzən nömrələrə çevrilir (əvvəllər bit kəsilməsi baş vermişdi);

  • __lt metametod artıq __le metametodunu təqlid etmək üçün istifadə edilmir, lazım gələrsə, __le metametod açıq şəkildə göstərilməlidir;

  • cari əhatə dairəsində eyni adlı etiket artıq mövcuddursa, goto ifadəsi üçün etiket yaradıla bilməz (hətta xarici əhatə dairəsində müəyyən edilmiş olsa belə);

  • __gc metametod bir funksiyadan daha çox ola bilər. Metod çağırmaq cəhdi uğursuz olarsa, xəbərdarlıq çap olunacaq;

  • çap funksiyası hər bir arqument üçün tostring çağırmır, lakin öz daxili çevrilmələrindən istifadə edir;

  • io.lines funksiyası bir əvəzinə dörd dəyər dəstini qaytarır; köhnə davranışı təqlid etmək üçün onu parametr kimi başqa bir funksiya çağırışına keçirsəniz, onu mötərizələrə daxil edin.

Mənbə: linux.org.ru

Добавить комментарий