Выпущена корректирующая версия интерпретатора текстово-графических LUA-игр Instead. Говорит разработчик Пётр Косых: «Исправлена регрессия, которая была введена в версии 2.2.0. Всем кто использует версию 2.2.0 или 2.2.1 рекомендую обновиться. Ошибка проявляется в играх, где есть переходы в комнаты с пустым описанием. Бинарные сборки будут появляться по мере их готовности.»
Незаметно и внезапно вышла новая версия встраиваемого языка программирования Lua.
Значимые изменения:
Появился целочисленный тип (64-битный по умолчанию). До этого был тип number, хранящийся как число с плавающей точкой. При компиляции можно задать размер в 32 бита.
Битовые операции.
Базовая поддержка UTF-8.
Функции для сериализации данных в бинарные строки (похожа на python struct).
Удалён режим сборки мусора на основе поколений. Это была экспериментальная возможность в версии 5.2.
13 и 14 сентября (суббота и воскресенье) в Москве, в офисе Mail.Ru Group пройдёт крупнейшая ежегодная конференция, посвящённая языку программирования Lua — Lua Workshop 2014. Эта международная англоязычная конференция проводится в этом году в 9-й раз.
Участие в конференции бесплатно, но требуется регистрация.
В состав ядра экспериментальной ветки NetBSD включена подсистема, добавляющая в ядро поддержку Lua. Разработка подсистемы под кодовым названием Lunatik была начата в 2010 году. Поддержка Lua в ядре позволит разрабатывать динамически загружаемые расширения, изменяющие поведение существующих систем или добавляющие новые возможности.
Lua-расширения применяются при необходимости быстрого создания готового модуля без серьёзных требований к производительности. В качестве примеров использования Lua в ядре разработчики указывают:
Планировщик процессов - позволяет пользователю задать свои собственные алгоритмы для управления выполняемыми задачами и для создания различных политик планирования для независимых наборов процессов или потоков.
Фильтр пакетов - позволяет создавать более гибкие правила для фильтрации сетевого трафика.
Управление питанием - позволяет пользователю задать свои методы управления энергопотреблением. Например, пользователь может определить собственный алгоритм для масштабирования частоты CPU и напряжения на нём для экономии электроэнергии или предотвращения перегрева.
Выполняющиеся в пространстве ядра скрипты изолированы в виртуальной машине и не имеют прямого доступа к памяти ядра. При формировании байткода происходит его анализ и блокирование опасных конструкций.
Согласно докладу Марка Балмера (Marc Balmer, разработчик NetBSD) на FOSDEM'13, прошедшего 2 и 3 февраля, в ядро NetBSD-current добавлен скриптовый язык lua. Работы в данном направлении ведутся уже, как минимум, с 2010-го года.
Использование языка lua в ядре позволяет ускорить разработку драйверов, изменения функционала ядра, а также его настройку. Более низкий порог вхождения по сравнению с языком C позволит в будущем упростить разработку и ускорить темпы развития проекта, а также увеличить интерес сообщества к проекту NetBSD и привлечь новых людей.
ToME 4 представляет из себя графический тайловый roguelike, геймплейно напоминающий Dungeons of Dredmor, однако имеющий более разветвлённую систему классов и умений, традиционно завышенный уровень сложности (есть менее сбалансированные расы и режимы для начинающих) и делающий упор на сюжет вместо гриндинга. Изначально в качестве тайлов использовался стилизованный ASCII-сет, однако в процессе разработки сторонним художником был создан более визуально привлекательный тайлсет, ставший основным к моменту релиза. Игрой были заняты первые места в конкурсах Roguelike of the Year 2010, 2011 и 2012 годов, в чём, несомненно, сыграли немаловажную роль наличие полноценного обучающего режима, доступный графический интерфейс и общая визуальная привлекательность по сравнению с конкурентами.
На сайте игры доступны сборки для всех основных платформ, включая 32 и 64-разрядный GNU/Linux. Для готовых заниматься сборкой из исходных кодов доступны пакет в AUR и ебилды.
Зарелизился Eclipse Juno 4.2. Это первый релиз ветки 4.x, ветка 3.x закрыта и больше не будет развиваться. Для совместимости со старыми плагинами и RCP приложениями в Juno включен слой совместимости.
Code Recommenders: новый проект автодополнения кода. Анализируя использование Java API приложения формируется база best practices. В дальнейшем, Code Recommenders предлагает разработчику использовать определенное Java API в своих проектах.
Virgo: новое ядро, позволяющее создавать менее громоздкие приложения на основе OSGi.
Koneki: новый проект по созданию LUA IDE. Проект является важной частью Eclipse M2M Industry Working Group.
Xtext: добавлена поддержка интегрированной отладки DSL, созданных с использованием Xtext. Реализована более тесная интеграция с Java Development Tools (JDT).
Equinox: включена реализация новых OSGi R5 спецификаций.
Представлены два новых пакета:
Eclipse IDE for Automotive Software Developer - содержит инструменты и фреймворки для разработки встроенного ПО для автомобилей.
Eclipse for Mobile Developers - упрощение установки и работы с мобильными SDK, включая Android SDK.
Завершена работа над новой версией популярного встраиваемого языка програмирования Lua. Выпущены руководство (reference manual) с описанием новой версии языка (5.2), набор тестов для реализаций Lua версии 5.2 и образцовый (референсный) интерпретатор версии 5.2.0.
Вот основные изменения в новой версии языка:
Можно вызывать yield из защищенного вызова (pcall) и метаметодов.
Новый метод работы с окружениями и глобальными переменными. В частности, функции getfenv/setfenv больше не работают.
Появилось стандартное API для битовых операций.
Изменение в C API: появились т.н. «облегченные нативные функции» («light C functions»), представляющие собой простые указатели на функции. В отличие от полноценных замыканий, они не имеют окружения, что позволяет экономить системные ресурсы.
В языке появился оператор goto.
Изменение в сборке мусора: таблицы со слабыми ссылками на ключи и с сильными ссылками на значения теперь будут работать как таблицы эфемеронов.
Теперь у таблиц могут быть финализаторы.
Помимо уже существующего инкрементного сборщика мусора, интерпретатор теперь имеет экстренный сборщик мусора, который освобождает память, если не удается выделить новую. Кроме того, появился экспериментальный сборщик мусора с учетом поколений (generational GC), но он по умолчанию отключен.
Полный список изменений можно прочитать в файле README, находящемся в дистрибутиве Lua.
Интерпретатор текстовых квестов INSTEAD теперь официально поддерживает платформу Android с версии 1.2.3. Релиз стал возможным во многом благодаря усилиям SilentLexx, которому удалось сохранить функциональность основной ветки приложения. Среди возможностей релиза:
Поддержка звука и трекерной музыки
Темы оформления под различные разрешения экранов
Размер игр значительно уменьшен за счет использования сжатия картинок.
Для установки установите .apk файл и дождитесь скачивания ресурсов из интернет, или распакуйте sdcard образ на флеш-карту устройства.
Если Linux является вашей постоянной средой «обитания», то наверняка вам приходилось иметь дело с интерпретируемыми языками программирования (которые чаще называют языками для написания скриптов), такими как shell, Perl, Python, Ruby. Все они справляются с поставленными задачами, одни лучше, другие хуже, в зависимости от конкретной ситуации. Так зачем же нужен ещё один интерпретируемый язык? Не спешите выносить приговор – давайте сначала рассмотрим все преимущества и недостатки Lua.
В заключительной части мы рассмотрим взаимодействие Lua с другими языками программирования (в частности, с API) и конкретные примеры применения Lua как в свободно распространяемых, так и в коммерческих программах.
В результате недельного обсуждения в tech-userlevel@ ряд разработчиков выразил заинтересованность во включении Lua в базовую систему NetBSD, в том числе и в ядро -- для реализации на Lua некоторых запутанных протоколов, в реализации которых легко допустить ошибку.