Lua 5.5: Оновлення популярної мови програмування

Lua 5.5: Оновлення популярної мови програмування

Після п’яти з половиною років з моменту виходу версії 5.4, Lua, легка мова скриптів високого рівня, призначена для вбудовування в інші програми, представила свою нову версію 5.5.

Ключові нововведення в Lua 5.5

Однією з основних новинок є явні оголошення глобальних змінних. Це дозволяє розробникам більш чітко визначати глобальні змінні та уникати популярних помилок, пов’язаних з неявними глобальними оголошеннями. Крім того, змінні у циклах for тепер є лише для читання, що знижує можливі небажані наслідки в конструкціях циклів.

Використання пам’яті для масивів було суттєво оптимізовано у Lua 5.5. За словами розробників, реалізація більш компактних масивів зменшує обсяг пам’яті для великих таблиць приблизно на 60 відсотків, що покращує продуктивність у даних, що вимагають великого обсягу інформації.

Поліпшення збору сміття і роботи з плаваючими точками

Збір сміття також зазнав поліпшень. Введення нового поколіннєвого режиму збору сміття підвищує продуктивність, розділяючи короткочасні та довгочасні об’єкти. Крім того, основні цикли збору сміття тепер виконуються інкрементно, що зменшує час затримок і підвищує чутливість у довготривалих програмах.

Крім цього, значення з плаваючою точкою тепер виводяться з достатньою кількістю десяткових знаків, щоб їх можна було правильно читати. Оновлення також стосуються обробки рядків і UTF-8, зокрема, було розширено функцію utf8.offset, яка повертає фінальну позицію символів, а також додано підтримку зовнішніх рядків, що використовують пам’ять, яку не керує власний аллокатор Lua.

Нові утиліти і поліпшення для статичних бінарних файлів

Додані кілька нових утилітних функцій, включаючи luaL_openselectedlibs і luaL_makeseed, які вдосконалюють інтерфейси завантаження бібліотек і випадкової генерації. Крім того, інтерпретатор Lua (lua.c) тепер динамічно завантажує підтримку readline, коли це можливо, розширюючи можливості інтерактивного використання.

Поліпшення стосуються також статичних бінарних файлів. Під час завантаження бінарних даних в пам’ять, Lua може повторно використовувати оригінальну пам’ять у специфічних внутрішніх структурах. Операції вивантаження і повторного вивантаження тепер використовують усі рядки повторно, а допоміжний буфер повторно використовує свою пам’ять при побудові фінальних рядків, що зменшує виділення пам’яті.

Детальніше про всі зміни в Lua 5.5

Для отримання додаткової інформації про всі зміни в Lua 5.5, перейдіть за цим посиланням.