Не знаю как вы, а я люблю ковыряться в кишочках разных систем. И в этой статье хочу рассказать о внутреннем устройстве Lua-таблиц и их особенностях. Lua — мой основной язык программирования по долгу службы, и чтобы писать хороший код, надо хоть немного понимать, что происходит за кулисами. Любопытных прошу за мной.
Рубрика «luajit»
Анатомия таблиц LuaJIT и особенности их использования
2020-03-26 в 11:04, admin, рубрики: Lua, luajit, tarantool, Блог компании Mail.Ru Group, Программирование, Проектирование и рефакторинг, Совершенный кодLuaVela: реализация Lua 5.1, основанная на LuaJIT 2.0
2019-08-29 в 9:59, admin, рубрики: announce, C, highload, IPONWEB, Lua, luajit, анонс, Блог компании IPONWEB, системное программированиеНекоторое время назад мы анонсировали публичный релиз и открыли под лицензией MIT исходный код LuaVela – реализации Lua 5.1, основанной на LuaJIT 2.0. Мы начали работать над ним в 2015 году, и к началу 2017 года его использовали в более чем 95% проектов компании. Сейчас хочется оглянуться на пройденный путь. Какие обстоятельства подтолкнули нас к разработке собственной реализации языка программирования? С какими проблемами мы столкнулись и как их решали? Чем LuaVela отличается от остальных форков LuaJIT?
Lua In Moscow 2019 conference program
2019-02-28 в 9:29, admin, рубрики: Lua, luajit, nginx, tarantool, Блог компании Mail.Ru Group, ПрограммированиеAs announced in the previous post, on March 3 (the first Sunday of March) Mail.ru Group’s Moscow office will be hosting the third international Lua conference, Lua in Moscow 2019. See schedule details under the cut.
Читать полностью »
Программа конференции Lua in Moscow 2019
2019-02-26 в 7:25, admin, рубрики: Lua, luajit, nginx, tarantool, Блог компании Mail.Ru Group, конференции, ПрограммированиеКак мы сообщали в предыдущем анонсе, 3 марта (воскресенье) в офисе Mail.ru Group пройдёт третья международная конференция Lua in Moscow 2019.
Читать полностью »
Когда вызовы функций через внешний интерфейс быстрее нативных вызовов C
2018-06-04 в 13:29, admin, рубрики: C, ffi, GOT, jit-компиляция, Lua, luajit, PLT, ПрограммированиеДополнено: хорошая дискуссия на Hacker News
Дэвид Ю на GitHub разработал интересный тест производительности для вызовов функций через разные внешние интерфейсы (Foreign Function Interfaces, FFI).
Он создал файл общего объекта (.so
) с одной простой функцией C. Затем написал код для многократного вызова этой функции через каждый FFI с измерением времени.
Для C «FFI» он использовал стандартную динамическую компоновку, а не dlopen()
. Это различие очень важно, так как действительно сказывается на результатах теста. Можно спорить, насколько честно такое сравнение с фактическим FFI, но всё равно его интересно измерить.
Самый удивительный результат бенчмарка — то, что FFI от LuaJIT существенно быстрее, чем C. Он примерно на 25% быстрее, чем нативный вызов C для функции общего объекта. Как смог слабо и динамически типизированный скриптовый язык обогнать в бенчмарке C? Точен ли результат?
Читать полностью »
DevConf::Frontend — 17 июня в Москве: Angular 4, React Native, выбор JS-фреймоврка для крупного проекта + Lua Meetup
2017-06-09 в 1:50, admin, рубрики: AngularJS, Lua, luajit, react.js, ReactJS, ReactNative, Блог компании DevConf, встречи разработчиков, Разработка веб-сайтов
17 июня в Москве, Измайлово пройдет конференция Devconf::FrontEnd
Откроет ее Виталий Грин, лидер Frontend разработки Альфа Лаборатории, Ex-Яндекс.Карты,
который расскажет как сделать общую библиотеку компонентов с одной стороны стабильной для десятков команд, а с другой стороны гибкой и расширяемой
Сергей Аверин, tech-менеджер из компании Acronis поведает о том, как важен правильный выбор JS-фреймоврка для крупного проекта в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
Читать полностью »
Lua Meetup 2 сентября в офисе Mail.Ru Group
2016-08-25 в 17:06, admin, рубрики: Lua, luajit, mail.ru, meetup, Блог компании Mail.Ru Group, разработка игр2 сентября 2016 года в офисе Mail.Ru Group пройдёт очередной Lua Meetup — встреча, посвящённая языку программирования Lua и его экосистеме. Анонсированы два доклада (о них вы сможете подробнее прочитать под катом), но мне бы хотелось написать о другой причине, по которой на встречу нужно прийти. В мире очень много языков программирования, и новые языки появляются чуть ли не каждую неделю. Как писал классик, «все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему». Интересуясь исключительно мейнстримовыми языками программирования, мы лишаем себя ощущения контраста, и, как следствие, осознанности в выборе. Lua ни в какой мере не является «несчастливым» языком, но это однозначно язык, стоящий в стороне от мейнстрима. У Lua прекрасный синтаксис и очень легковесная реализация. Мало кто знает, что язык создан в 1993 году — настолько современно он смотрится. Что же мешает ему стать таким же популярным как Python или Go?
Читать полностью »
Вызываем Java код из Love2D
2016-05-21 в 9:04, admin, рубрики: C, game development, Gamedev, java, jni, love2d, Lua, luajit, разработка игрВсем доброго времени суток!
Возникла потребность встроить рекламу в свою игру на Love2D. Решил показывать банер после выиграша игрока и тут возникли сложности: банер вызывается Java кодом приложения, а выиграш определяется в Lua коде. Свзязывает их код на Си, туториалов, как добавлять свои методы в движок не было, и пришлось копаться в коде самостоятельно. Репозиторий Love2D для Android лежит вот тут.
Lapis: сайт на Lua в конфигах Nginx
2014-10-15 в 15:08, admin, рубрики: asynchronous I/O, coroutines, etlua, green threads, Lua, luajit, moonscript, nginx, node.js, nonblocking I/O, sailor moon, веб-приложение, веб-прокси, Веб-разработка, веб-сервер
Tl;dr Lapis(Lua) = RoR(Ruby) = Django(Python)
Читать полностью »