Кит Паккард (Keith Packard), активный разработчик Debian, лидер проекта X.Org и создатель множества X-расширений, включая XRender, XComposite и XRandR, опубликовал новый выпуск языка программирования Snek 1.10, позиционируемого как упрощённый вариант языка Python, адаптированный для использования на встраиваемых системах, на которых недостаточно ресурсов для использования MicroPython и CircuitPython. Snek не претендует на полноценную поддержку языка Python, но может использоваться на чипах, имеющих всего 2КБ ОЗУ, 32 КБ Flash-памяти и 1КБ EEPROM. Код проекта распространяется под лицензией GPLv3. Сборки подготовлены для Linux, Windows и macOS.
В языке Snek используется семантика и синтаксис Python, но поддерживается лишь ограниченное подмножество возможностей. Одной из целей, которая учитывается при разработке, является сохранение обратной совместимости – программы на Snek могут выполняться с использованием полноценных реализаций Python 3.
Для разработки приложений на Snek может использоваться редактор кода Mu (патчи для поддержки) или собственная консольная интегрированная среда разработки Snekde, которая написана с использованием библиотеки Curses и предоставляет интерфейс для редактирования кода и взаимодействия с устройством через USB-порт (можно сразу сохранять программы в eeprom устройства и загружать код с устройства).
Snek портирован для различных встраиваемых устройств, включая платы Arduino, Feather/Metro M0 Express, Adafruit Crickit, Adafruit ItsyBitsy, Lego EV3 и µduino, предоставляет доступ к GPIO и периферийным устройствам. Проектом также разработан собственный открытый микроконтроллер Snekboard (ARM Cortex M0 с 256КБ Flash и 32КБ ОЗУ), рассчитанный на использование со Snek или CircuitPython, и нацеленный на обучение и создание роботов с использованием деталей LEGO.
В новом выпуске:
- Добавлена поддержка использования 512-байтового загрузчика ubaboot на платах ATmega 32u4.
- В глобальное пространство имён перенесены функции, связанные с математическими вычислениями, временем и генерацией псевдослучайных чисел (модули “math”, “time” и “random”), которые теперь можно использовать без префиксов “math.”, “time.” и “random.”.
- Компоненты для поддержки микроконтроллеров AVR адаптированы для новой avr libc и компилятора gcc-avr на базе gcc 14.
- Для всех поддерживаемых устройств предложены унифицированные реализации генераторов псевдослучайных чисел snek-random.c и snek-random-small.c (вариант без 64-разрядной арифметики для маломощных устройств).