Команда проекта (Taco Hoekwater, Hartmut Henkel и Hans Hagen) с гордостью представляет первый стабильный релиз LuaTeX — TeX-подобной системы компьютерной верстки, основанной на pdfTeX.
Среди ключевых особенностей LuaTeX можно отметить встроенную поддержку скриптового языка Lua, с помощью которого пользователи могут с лёгкостью разрабатывать собственные дополнения, а также поддержку шрифтов OpenType (собственная библиотека, основанная на FontForge).
Тихо и без лишнего шума вышла версия 1.6.6 отечественной СУБД Tarantool, разрабатываемой компанией Mail.Ru Group и сообществом энтузиастов. Tarantool сочетает в себе асинхронный неблокирующий сервер приложений на Lua и NoSQL базу данных с поддержкой хранения слабоструктурированных данных.
Первого мая вышла восьмая версия этого, написанного по большей части на Lua редактора текста для программистов. Главным нововведением этой версии стал переход на lua 5.3, однако поскольку последний (и первый) раз здесь рассказывалось о версии 6.4 этого редактора, думаю стоит немного рассказать о самом продукте, и изменениях, произошедших с ним за последние два года. Предшественником его была авторская сборка scite — scite-st. Одним из её нововведений стала поддержка лексеров языков программирования, используемых для подсветки синтаксиса, написанных на lua (она доступна в виде отдельной библиотеки). Однако, спустя некоторое время, автор сборки Митчел Форал, нашёл, что в скайте слишком много захордкодено на языке С, и он недостаточно «программируем» на lua. Это сподвигло его на написание своего рода аналога Emacs, где роль лиспа играет язык lua, а на С помимо, собственно, Scintilla написан самый минимум. Восьмая версия этого программного продукта выглядит достаточно приятной и удобной для повседневного применения, это как минимум — полноценная замена скайта. В частности, появились привычные вкладки-табы для нескольких открытых текстов. Важное нововведение по сравнению со скайтом — возможность запуска в терминале, специально для этого была написана библиотека Scinterm — curses оболочка над Scintilla. Редактор также поддерживает деление экрана на неограниченное количество частей, подсветку более 80 языков программирования, автозавершение кода и может полностью управляться с клавиатуры.
Выпущена корректирующая версия интерпретатора текстово-графических 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 некоторых запутанных протоколов, в реализации которых легко допустить ошибку.