Сегодня были зафиксированы первые бета-версии наших проектов SObjectizer и so_5_extra. Загрузить их можно отсюда:
so-5.5.23-beta1.zip и
so_5_extra-1.2.0-beta1.zip (либо
so_5_extra-1.2.0-beta1-full.zip).
Подробнее об нововведениях рассказывается
в очередной статье на Хабре.
Со сроками официально релиза пока так: ориентировочно релиз состоится в первой декаде ноября. Если успеем раньше, выкатим раньше. Но там еще много работы, в том числе и по документированию, и по проверке сборки под Android с помощью Google-овского NDK и еще разных мелочей (и не мелочей). Так что первая декада ноября выглядит более реалистично.
В общем, если кому-то интересно, что в SObjectizer-е происходит, то смотрим, делимся впечатлениями и соображениями. Пока еще есть время и возможность повлиять на то, что попадет в SO-5.5.23 и so_5_extra-1.2.0.
так а для новых проектов какую версию SObjectizer предпочтительней использовать?
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Состоялся релиз SObjectizer версии 5.5.23 и версии 1.2.0 сопутствующего проекта so_5_extra. Официальный анонс
здесь.
Самое главное нововведение -- это возможность отсылать
сообщения, которые упакованы в специальные объекты-конверты. В конвертах может содержаться дополнительная информация о сообщении. Так же конверт может выполнять дополнительные действия когда сообщение доставляется до получателя (
например, может отсылать подтверждение о доставке отправителю).
На базе этой фичи в so_5_extra-1.2.0 реализовано несколько новых инструментов. Так, добавлена возможность отсылки сообщений, которые можно отозвать. Например:
// Отсылаем сообщение и сохраняем ID доставки.
auto id = so_5::extra::revocable_msg::send<my_message>(mbox, ...);
... // Делаем что-то еще.
if(some_condition())
// Решаем, что сообщение нужно отозвать.
id.revoke(); // Если сообщение еще не дошло до получателя,
// то оно будет отозвано и к получателю не попадет.
Отзывать можно и таймерные сообщения (т.е. отложенные и периодические). В этом случае сообщение будет отозвано даже если оно уже попало в очередь получателя (обычные таймерные сообщения в SObjectizer-е в этом случае до получателя все равно доходят).
Еще одна из новых фич so_5_extra -- возможность ограничить время доставки сообщения. Например, если сообщение не доставлено до получателя за 10 секунд, то оно выбрасывается и получателю уже не доставляется. Выглядит это так:
// Создаем экземпляр сообщения, которое хотим доставить.
so_5::extra::enveloped_msg::make<check_user>(...)
// ...теперь запаковываем его в специальный конверт...
.envelope<so_5::extra::enveloped_msg::time_limited_delivery_t>(10s)
// ...и отсылаем конверт с нашим сообщением..
.send_to(target_mbox);
Взять SO-5.5.23 можно на
SF.net или на
GitHub-зеркале.
Взять so_5_extra-1.2.0 можно на
SF.net.
Хочется поблагодарить не только тех людей, которые помогали нам с этим релизом. Но и вообще всех, кто проявлял интерес к SObjectizer-у все эти годы и находил время/возможность делится с нами своим впечатлениями, соображениями и идеями.
PS. SObjectizer-5.5 развивается уже больше четырех лет. И, вероятно, развитие ветки 5.5 подходит к своему логическому завершению. Если кому-то интересно посмотреть на то, что появилось в SO-5.5 за это время, то
вот небольшой конспектик.
SObjectizer обновился до версии 5.5.24. Главное нововведение в этой версии -- это экспериментальная поддержка unit-тестирования для агентов. Подробнее эта возможность описана
в отдельной статье. Если кому-то интересно, то попробуйте, поделитесь своими впечатлениями. Любой конструктивный фидбэк поможет нам сделать эту поддержку лучше и удобнее.
SObjectizer может быть загружен из
секции Files на SourceForge или взят из
зеркала на GitHub-е. SObjectizer может быть установлен с помощью
vcpkg или
Conan.
Также обновился сопутствующий проект
so_5_extra: мы перевели его на более свежие версии зависимостей и добавили еще один
пример в набор штатных примеров.
so_5_extra может быть загружен из
секции Files на SourceForge. Также so_5_extra может быть установлен с помощью
vcpkg или
Conan.
В течении ближайшей недели-двух мы планируем начать разработку SObjectizer-5.6, отказавшись от сохранения совместимости с веткой 5.5.
Причины, цели и некоторые ближайшие шаги описаны
здесь. Если кому-то интересно повлиять на дальнейшее развитие SObjectizer-а, то можно отставить свои конструктивные соображения по указанной ссылке или прямо здесь.
Статья на Хабре про опыт использования SObjectizer-а для управления оборудованием сцены:
"Если проект «Театр» используй акторов…"
Мы сами к этому проекту не имеем никакого отношения. Знали только, что SObjectizer используется. Но как и где -- не знали.