Апублікаваны выпуск праекта PikaScript 1.8, які развівае кампактны рухавічок для напісання прыкладанняў для мікракантролераў на мове Python. PikaScript не прывязаны да вонкавых залежнасцяў і можа працаваць на мікракантролерах з 4 КБ АЗП і 32 КБ Flash, такіх як STM32G030C8 і STM32F103C8. Для параўнання для працы MicroPython патрабуецца 16 КБ АЗП і 256КБ Flash, а для Snek – 2 КБ АЗП і 32 КБ Flash. Код праекту напісаны на мове Сі і распаўсюджваецца пад ліцэнзіяй MIT.
PikaScript падае падмноства мовы Python 3, якое падтрымлівае такія элементы сінтаксісу, як аператары галінавання і цыклаў (if, while, for, else, elif, break, continue), базавыя аператары (+ - * / < == >), модулі, інкапсуляцыю, атрыманне ў спадчыну, палімарфізм, класы і метады. Python-скрыпты выконваюцца на прыладах пасля папярэдняй кампіляцыі - PikaScript спачатку пераўтворыць Python-код ва ўнутраны байткод Pika Asm, які на канчатковым прыладзе выконваецца ў спецыяльнай віртуальнай машыне Pika Runtime. Падтрымліваецца праца напроста па-над абсталяваннем ці ў асяроддзі RT-Thread, VSF (Versaloon Software Framework) і Linux.
Асобна адзначаецца прастата інтэграцыі скрыптоў PikaScript з кодам на мове Сі - да кода могуць прывязвацца напісаныя на мове Сі функцыі, што дазваляе пры ўкараненні PikaScript выкарыстоўваць напрацоўкі старых праектаў, напісаных на мове Сі. Для распрацоўкі Сі-модуляў могуць выкарыстоўваць існуючыя асяроддзі распрацоўкі, такія як Keil, IAR, RT-Thread Studio і Segger Embedded Studio. Прывязкі генеруюцца аўтаматычна на этапе кампіляцыі, дастаткова вызначыць API у файле з Python-кодам і прывязка Сі-функцый да модуляў Python будзе выканана падчас запуску кампілятара Pika Pre-compiler.
У PikaScript заяўлена падтрымка 24 мікракантролераў, у тым ліку розныя мадэлі stm32g *, stm32f *, stm32h *, WCH ch582, ch32 *, WinnerMicro w80 *, Geehy apm32 *, Bouffalo Lab bl-706, RaspberryTC32. Для хуткага пачатку распрацоўкі без абсталявання прадастаўляецца сімулятар або прапануецца поплатак для распрацоўнікаў Pika-Pi-Zero на аснове мікракантролера STM3G264C32T030 з 8 КБ Flash і 6 КБ АЗП, якая падтрымлівае тыпавыя перыферыйныя інтэрфейсы (GPIO, TIME, IIC, RGB, KEY . Распрацоўнікі таксама падрыхтавалі online-генератар праектаў і пакетны мэнэджар PikaPackage.
У новай версіі рэалізавана кіраванне памяццю на аснове падліку спасылак і дададзена падтрымка віртуальных канструктараў (factory method). Праведзена дыягностыка праблем з памяццю, выкананая з выкарыстаннем інструментара valgrind. Дададзена падтрымка кампіляцыі pc-файлаў Python у байткод і пакаванні ў прашыўку. Рэалізавана магчымасць выкарыстання ў прашыўках некалькіх Python-файлаў без неабходнасці выкарыстання файлавай сістэмы.
Крыніца: opennet.ru