PikaPython Versions Save

An ultra-lightweight Python interpreter that runs with only 4KB of RAM, zero dependencies. It is ready to use out of the box without any configuration required and easy to extend with C. Similar project: MicroPython, JerryScript.

v1.13.3

2 months ago

We are thrilled to announceπŸ“£ the release of PikaPython v1.13.3! This version benefits from numerous community contributions and improvements, fixes multiple bugs🐞, and introduces many new features🎁. Here are the major updates:

πŸš€ New Features and Improvements:

  • Updated pikascript-core and PikaStdLib to v1.13.3, bringing more performance optimizations and feature enhancements.
  • Packages such as PikaStdDevice, socket, pika_lvgl, STM32, modbus, pika_fatfs, mqtt, time, network, and flashdb have been updated, improving device support and networking capabilities.
  • Added modbus_rt package v0.2.1, supporting modbus RTU, ASCII, TCP, UDP modes, enhancing master and slave functionality, and supporting custom file transfer features.
  • Made multiple improvements to pika_lvgl, including image processing fixes, recursive lock support, Pinyin support, and enhanced UI widgets, improving the graphical interface development experience and performance.
  • Introduced recursive mutex for the Global Interpreter Lock (GIL), enhancing thread safety.
  • Enhanced PikaStdDevice support for SPI/SOFT_SPI, added IIC utility functions, and optimized the Hardware Abstraction Layer (HAL).
  • Fixed memory management by using PikaPython-provided malloc and free functions instead of the standard library ones in modules, reducing the risk of memory leaks.
  • Supported try...import statements, optimized module import logic, improving code robustness and compatibility.
  • Resolved compilation warnings and errors, improving code quality and stability.
  • Synchronized updates for pika_hal and several other packages, fixing known bugs and performance issues.

πŸ› Bug Fixes:

  • Fixed memory leak issues with lvgl in certain scenarios.
  • Fixed potential errors with modbus_rt in specific environments.
  • Solved file writing and reading issues in flashdb and pika_fatfs.
  • Corrected compilation warnings and errors for several packages on specific platforms.

Module Releases (From v1.13.0):

package state version
pikascript-core Update v1.13.0 --> v1.13.3
PikaStdLib Update v1.13.0 --> v1.13.3
PikaStdDevice Update v2.4.4 --> v2.4.5
socket Update v0.2.0 --> v0.2.1
pika_lvgl Update v0.5.0 --> v0.5.1
STM32 Update v0.1.1 --> v0.1.2
modbus Update v0.0.7 --> v0.0.8
pika_fatfs Update v0.1.2 --> v0.1.3
mqtt Update v0.0.9 --> v0.1.0
time Update v0.2.0 --> v0.2.1
network Update v0.1.4 --> v0.1.5
flashdb Update v0.1.1 --> v0.1.2
modbus_rt Create v0.2.1

Special thanks to all contributors to PikaPython v1.13.3 development and testing. A special shoutout to those who contributed code on Gitee and GitHub. Thank you all for your hard work and dedication, every improvement provides a better experience for our users. We look forward to your continued feedback and support, let's contribute to PikaPython together!

v1.13.0

6 months ago

We're thrilled to announce πŸ“£ that PikaPython v1.13.0 has been released! This version has benefited from numerous community submissions and improvements, fixed several bugs🐞, and introduced many new features🎁. Below are the main updates:

πŸš€ New Features and Improvements:

  • Subdirectory Module Import: Added support for importing python modules from subdirectories (C modules not yet supported). Fixed AC5 and other related issues. This includes syntax support for from subdir import src, import subdir.src.
  • Enhanced Module Import: Supports from <mod> import * (C modules not yet supported).
  • File System & Hardware Support: The kernel now offers platform support for file directory operations, fatfs support for the os module has been completed and tested on STM32.
  • STM32F1 and STM32F4 have been merged into the STM32 module, and are no longer available for separate download.
  • STM32 module introduces ADC channel selection for STM32H7, optimizing the support for STM32F1.
  • pika_hal: Introduced pika_hal_utils, offering a range of simplified APIs derived from pika_hal.
  • Enhanced Debugging Abilities: The pdb module has been enhanced, supporting global variables, bytecode breakpoints, and module identification. Some display issues with pdb and REPL have been fixed. (Pre-release)
  • VSCode Plugin Support: Supports breakpoint debugging, continue execution, and exit in the VSCode plugin, and enhances the pre-compiler. (Pre-release)
  • BLE Support: Introduced a BLE feature pack, adapted for ESP32 and offers an iBeacon Profile.
  • Other Hardware Adapting & Optimizations: Added SPI (tested) and IIC support for ESP32, and fixed some STM32-related issues.
  • Code Cleanup & Maintenance: Removed unused files and code, cleaned up package references for STM32F1 and STM32F4.
  • Continuous Integration & Testing: Optimized the CI and TEST process, adding multiple functional tests.

πŸ› Bug Fixes:

  • Fixed issues in multiple modules such as soft_tim.py, platform rtthread, mqtt plat on esp32.
  • Made several optimizations and fixes for RT-Thread, including adapting thread functionality.
  • Addressed several issues related to formatting, comments, iterative sorting, etc.
  • Optimized UART reception for STM32 using a circular queue.

Special thanks to: HelloDuoLA, SenySunny, 撦程MI, @kcfkwok, and other contributors on Gitee and GitHub. Thanks for everyone's efforts and contributions. Each improvement provides a better experience for the users. We look forward to your continued feedback and support, contributing together for PikaPython!

Module Releases (Starting from v1.12.6):

package state version
pikascript-core Update v1.12.6 --> v1.13.0
PikaStdLib Update v1.12.6 --> v1.13.0
PikaStdDevice Update v2.4.2 --> v2.4.4
PikaCV Update v0.1.4 --> v0.1.5
unittest Update v0.1.4 --> v0.1.5
socket Update v0.1.9 --> v0.2.0
binascii Update v0.0.4 --> v0.0.5
pika_cjson Update v1.2.5 --> v1.2.6
STM32 Update v0.1.0 --> v0.1.1
ESP32 Update v0.4.3 --> v0.4.4
pika_fatfs Update v0.1.1 --> v0.1.2
mqtt Update v0.0.7 --> v0.0.9
hashlib Update v1.0.3 --> v1.0.5
aes Update v0.0.2 --> v0.0.3
time Update v0.1.9 --> v0.2.0
json Update v0.1.6 --> v0.1.7
os Update v0.1.3 --> v0.1.4
pika_littlefs Update v0.0.1 --> v0.0.2
flashdb Create v0.1.1
bluetooth Create v0.1.0

We encourage all users to downloadπŸ“₯, install, and use PikaPython v1.13.0. If you encounter any issues while using it, please feel free to contact us.

v1.12.6

8 months ago

We are thrilled to announce the release of PikaPython v1.12.6! This version brings a series of optimizations, new feature additions, and bug fixes. Here's a highlight of the updates:

New Features and Improvements: πŸ†•

  • Introduced a new struct module, version v0.1.0 πŸ“¦

  • Released a new STM32 module, version v0.1.0 πŸ’»

    This module offers support for the entire STM32 series, replacing modules like STM32F1, STM32F4, etc.

    The STM32 module was developed with insights from the rt-thread device framework. Special thanks are in order.

  • New fsm and eventloop modules have been rolled out.

    fsm is a multi-threaded state machine, and eventloop is a multi-threaded event loop.

  • The STM32HAL.pyi has been renamed to STM32.pyi πŸ”

  • Added support for GPIO, UART, ADC, DAC, PWM, and time in the STM32 package πŸŽ‰

  • Enhanced rtt compatibility layer πŸš€

  • Now supports struct.unpack() and tested struct.pack() 🧩

  • Added __eq__ support for tuple, list, and dict πŸ”„

  • SOFT_TIM support: Implemented SOFT_TIM based on thread_timer.

  • WIFI Fix: Resolved reconnection issues on esp32.

  • Network adaptation: Adapted the accept function for TCP server in _WIN32 environments. Kudos to @SenySunny for the contribution!

  • Camera support: Added camera support for pika_hal. Special thanks to 撦程MI for the contribution!

  • OS package: Adjusted the implementation of the mkdir function in the OS package for Windows to enhance compatibility. Props to @SenySunny for the fix!

  • REPL/NORMAL mode: New support for REPL/NORMAL mode for unused stack values.

Bug Fixes: 🐞

  • Resolved the ssize_t definition issue on adapter_rtt.h.
  • Fixed the memory shortage problem with os_read_platform.
  • Addressed the mkdir function problem of the os package on _WIN32.
  • WIFI reconnection problem on esp32 has been fixed.
  • Rectified the dict_removeArg issue.
  • Updated PikaStdDevice πŸ”„
  • Resolved the REPL check issue on \b.
  • Fixed the backspace problem on Linux when pos is zero.
  • Other fixes and optimizations πŸ› 

Module Releases (Starting from v1.12.5):

package state version
pikascript-core Update v1.12.5 --> v1.12.6
PikaStdLib Update v1.12.5 --> v1.12.6
PikaStdDevice Update v2.4.0 --> v2.4.2
re Update v0.1.4 --> v0.1.5
struct Create v0.1.0
socket Update v0.1.8 --> v0.1.9
pika_lua Update v0.0.5 --> v0.0.6
STM32 Create v0.1.0
ESP32 Update v0.4.2 --> v0.4.3
STM32F4 Update v0.1.3 --> v0.1.4
pika_fatfs Update v0.1.0 --> v0.1.1
mqtt Update v0.0.6 --> v0.0.7
json Update v0.1.5 --> v0.1.6
network Update v0.1.3 --> v0.1.4
os Update v0.1.2 --> v0.1.3
fsm Create v0.1.0
eventloop Create v0.1.0

We hope this new v1.12.6 release will provide a better experience for users and enhance both the performance and stability of the system. Thanks to all the developers who contributed to this version! πŸŽ‰πŸŽ‰πŸŽ‰

v1.12.5

9 months ago

We are excited to announce that PikaPython v1.12.5 is now available! This new version introduces several improvements, fixes numerous bugs, and adds some new features. Here are the main updates:

New Features and Improvements: πŸ†•

  • Added littlefs package πŸ“¦
  • Added ESP32's pika_hal support for SPI/IIC πŸ’»
  • Updated socket module for _WIN32 support 🌐
  • Optimized stack size for large lists πŸš€
  • Enhanced VM stack overflow detection πŸ”
  • Added support for list comprehension 🧩
  • Added gethostbyname support for socket.py πŸ–§
  • Modified write function to send in socket module for _WIN32 πŸ”„

Bug Fixes: 🐞

  • Fixed syntax issues on msvc, making the kernel and standard libraries use pure ASCII character set
  • Fixed the conversion of PikaList/PikaDict to objects
  • Fixed issues in if not xxx: statement
  • Fixed behavior of if <str/bytes/object/list>
  • Fixed behavior of bool()
  • Fixed some parsing errors
  • Fixed issues in package management
  • Fixed some issues with os_path
  • Supported deserialize Response for modbus, fixing crash

Module Releases (From v1.12.4):

package state version
math Create v0.1.1
pika_littlefs Create v0.0.1
pikascript-core Update v1.12.4 --> v1.12.5
PikaStdLib Update v1.12.4 --> v1.12.5
PikaStdDevice Update v2.3.8 --> v2.4.0
PikaMath Update v0.2.1 --> v0.2.3
PikaCV Update v0.1.2 --> v0.1.4
re Update v0.1.2 --> v0.1.4
socket Update v0.1.5 --> v0.1.8
random Update v0.1.2 --> v0.1.3
ctypes Update v1.1.2 --> v1.1.3
binascii Update v0.0.3 --> v0.0.4
pika_cjson Update v1.2.3 --> v1.2.5
pika_lua Update v0.0.4 --> v0.0.5
PLOOC Update v1.0.0 --> v1.0.2
STM32G0 Update v2.1.0 --> v2.1.1
ESP32 Update v0.4.0 --> v0.4.2
STM32F4 Update v0.1.2 --> v0.1.3
modbus Update v0.0.5 --> v0.0.7
mqtt Update v0.0.4 --> v0.0.6
requests Update v1.0.0 --> v1.0.2
hashlib Update v1.0.2 --> v1.0.3
hmac Update v1.0.1 --> v1.0.2
aes Update v0.0.1 --> v0.0.2
base64 Update v1.0.0 --> v1.0.1
time Update v0.1.7 --> v0.1.9
json Update v0.1.4 --> v0.1.5
network Update v0.1.2 --> v0.1.3
_thread Update v0.0.5 --> v0.0.6
zlib Update v0.1.0 --> v0.1.2
os Update v0.1.0 --> v0.1.2

Pull Request Merge

  • Addition of pika_littlefs package contributed by @dreamcmi pull request
  • Modification of write function to send in _WIN32 contributed by @SenyLee pull request
  • Modification of socket package for _WIN32 support contributed by @SenyLee pull request
  • Release of pika_littlefs v0.0.1 contributed by @dreamcmi pull request

This version includes some significant updates, adding new features, optimizations, and bug fixes to improve performance and stability. We hope you will enjoy this new version! πŸŽ‰πŸŽ‰πŸŽ‰

v1.12.4

10 months ago

Announcement: PikaPython v1.12.4 Release

We are excited to announce the release of PikaPython v1.12.4! This new version has many improvements, bug fixes and newly added features. Please find the main updates below:

New Features and Improvements:

Updated and improved PikaCompiler to fix parsing bugs. Added support for .pya Version 5. Added support for tuple(), '^', and more self-optimization. Introduced this and fsm modules. Support for zlib package and tests. Support for bytearray() built-in. Support for isinstance() for native class and simple types. Enhanced json.dumps speed over 100 times. Introduced PIKA_UNBUFFERED_ENABLE support. Support for Pika Lua, including method_proxy and var proxy, and getting return value for pika_lua.eval. Introduced builtins.pyi for PikaStdLib. Introduced sshd_config and frpc support for develop docker.

Bug Fixes:

Fixed os release. Fixed pya load issue. Fixed pack version 5 issue. Fixed pika.studio. Fixed json module, json.loads() with empty object and json parsing issue on jsmn. Fixed thread create bug for freeRTOS. Fixed eventloop default loop period and eventloop remove event crash. Fixed REPL FUNC_KEY reset. Fixed issues with v1.12.3 including getitem without len, and msc rm dir field.

Module Releases(From v1.12.2):

Module Name Update Type Version Change
pikascript-core Update v1.12.2 --> v1.12.4
PikaStdLib Update v1.12.2 --> v1.12.4
PikaStdDevice Update v2.3.7 --> v2.3.8
socket Update v0.1.4 --> v0.1.5
binascii Update v0.0.2 --> v0.0.3
pika_cjson Update v1.2.2 --> v1.2.3
pika_lua Update v0.0.2 --> v0.0.4
pikaRTDevice Update v1.1.3 --> v1.1.4
mqtt Update v0.0.3 --> v0.0.4
hashlib Update v1.0.1 --> v1.0.2
time Update v0.1.5 --> v0.1.7
json Update v0.1.1 --> v0.1.4
_thread Update v0.0.4 --> v0.0.5
zlib Create v0.1.0
os Create v0.1.0

v1.12.2

1 year ago

πŸ“’ Announcement: PikaPython v1.12.2 Released πŸš€

We are excited to announce the release of PikaPython v1.12.2! This version fixes some bugs and vulnerabilities, and adds new features and improvements.

Here's what's new:

New Features 🌟:

  • Support for max() and min() built-in functions.
  • Support for REPL history.
  • Support for ESP32C3 and ESP32S3.
  • Support for delayed event loops.
  • Support for string search with string.find().
  • Support for single-element tuples, like (1,) or ('test',).
  • Support for setting default values and time zones in the time module.
  • Support for checking if thread creation was successful.
  • Optimization of PikaVM stack usage.

Bug Fixes πŸ›:

  • Fixed some syntax parsing issues.
  • Fixed memory leak problems.
  • Fixed kernel crash issues with certain invalid syntax.
  • Fixed issues with documentation generation.
  • Fixed problems with string packing reads.
  • Fixed some issues with multithreading and event loops.
  • Fixed some type conversion issues.

Updates and Improvements πŸ”§:

  • Updated versions of various modules.
  • Updated ESP32 BSP, supporting ESP32C3 and ESP32S3.
  • Updated STM32G0 project files.
  • Updated modbus example code and comments.
  • Improved documentation generation in PikaStudio.
  • Added support for CJSON examples.
  • Improved events and threads.

We welcome all users to download, install, and use PikaPython v1.12.2. If you encounter any issues during use, please feel free to contact us.

Module Releases πŸ“¦:

Module Update Type Version Change
bflb Create v0.2.0
pikascript-core Update v1.12.1 --> v1.12.2
PikaStdDevice Update v2.3.6 --> v2.3.7
PikaCV Update v0.1.1 --> v0.1.2
unittest Update v0.1.2 --> v0.1.4
re Update v0.1.1 --> v0.1.2
random Update v0.1.1 --> v0.1.2
ctypes Update v1.1.1 --> v1.1.2
binascii Update v0.0.1 --> v0.0.2
pika_lvgl Update v0.4.4 --> v0.5.0
pika_lua Update v0.0.1 --> v0.0.2
pikaRTThread Update v1.3.1 --> v1.3.2
pikaRTDevice Update v1.1.0 --> v1.1.3
STM32G0 Update v2.0.0 --> v2.1.0
ESP32 Update v0.3.1 --> v0.4.0
modbus Update v0.0.4 --> v0.0.5
pika_libc Update v1.0.1 --> v1.0.2
time Update v0.1.3 --> v0.1.5
_thread Update v0.0.3 --> v0.0.4

v1.12.1

1 year ago

Announcement: PikaPython v1.12.1 Release

We are pleased to announce the release of PikaPython v1.12.1! This version fixes some bugs and vulnerabilities, as well as adds some new features and improvements.

The updates are as follows:

New Features:

  • Added the os module.
  • Support for str.join() method.
  • Added clear() built-in method for scripts on development board.
  • Fixed REPL thread issue.
  • Enhanced events and threads.
  • Support for using fcntl method in socket module in lwip.
  • Support for mark-sweep garbage collection.

Bug Fixes:

  • Fixed os error on ESP32.
  • Fixed pika_platform_get_tick() method in Linux port.
  • Fixed timestamp issue.
  • Fixed multi-line comment issue.
  • Fixed occasional memory leaks.
  • Fixed many other issues.

Updates and Improvements:

  • Updated project files for STM32F103ZE.
  • Updated cleaning mechanism when running pikapackage.exe.
  • Updated PikaPackageManager.
  • Updated pikafs to support packing given files and unpacking *.pack files to specified paths.
  • Updated modbus example code and comments.
  • Automatically scan backend in pikaui.
  • Improved comments in pikaCompiler.
  • Improved events and threads.

We welcome all users to download, install and use PikaPython v1.12.1. If you encounter any issues during use, please feel free to contact us.

Module Releases:

Module Name Update Type Version Change
pikascript-core Update v1.12.0 --> v1.12.1
PikaStdLib Update v1.12.0 --> v1.12.1
PikaStdDevice Update v2.3.4 --> v2.3.6
unittest Update v0.1.1 --> v0.1.2
socket Update v0.1.1 --> v0.1.4
pika_cjson Update v1.2.1 --> v1.2.2
pika_lvgl Update v0.4.3 --> v0.4.4
STM32F1 Update v1.1.3 --> v1.1.4
modbus Update v0.0.2 --> v0.0.4
mqtt Update v0.0.2 --> v0.0.3
BLMCU Create v0.1.0
time Update v0.1.0 --> v0.1.3
_thread Create v0.0.3
weakref Create v0.0.2

v1.12.0

1 year ago

Language

  • Support getattr() setattr() setattribute() magic method. #222
  • Run callback() only when main thread of pika is READY #202
  • Character input problem | Support left and right keys to move the REPL cursor #271
  • Support return val from event #270
  • Support multiline Define Method in pyi #224
  • Save RAM space for VM stack #225
  • Optimize time spend for string slice #226
  • Support object pool to add speed for malloc/free #261
  • Support run file by serial in ram #263
  • Binding C module in const struct with sorted hash #264
  • Support multi-module import like import a, b, c #265
  • Support import *.py.o bytecode file #266
  • Support download file to file system by REPL #267
  • Use u32 size info inner *.py.o #268
  • Support run bytecode file from REPL #269
  • Auto save bytecode. #275
  • Support load default from pos arg #276
  • Support pika app, combine bytecode and resource file(image/other). #277
  • Support *vars, **kws unpack #281
  • Support def test(a,b), test(b=1, a=2) #280

Package Update

Package Status Version
pikascript-core Update v1.11.0 --> v1.12.0
PikaStdLib Update v1.11.0 --> v1.12.0
PikaStdDevice Update v1.11.0 --> v2.3.4
PikaMath Update v0.2.0 --> v0.2.1
PikaCV Update v0.1.0 --> v0.1.1
unittest Update v0.1.0 --> v0.1.1
re Update v0.1.0 --> v0.1.1
socket Update v0.1.0 --> v0.1.1
random Update v0.1.0 --> v0.1.1
configparser Update v0.2.0 --> v0.2.1
ctypes Update v1.1.0 --> v1.1.1
pika_cjson Update v1.2.0 --> v1.2.1
pika_lvgl Update v0.2.0 --> v0.4.3
pikaRTThread Update v1.3.0 --> v1.3.1
PikaVSF Update v0.0.1 --> v0.0.2
Arm2D Update v0.6.0 --> v0.6.1
STM32G0 Update v1.3.1 --> v2.0.0
STM32F1 Update v1.1.1 --> v1.1.3
ESP32 Update v0.1.0 --> v0.3.1
STM32F4 Update v0.1.0 --> v0.1.2
PikaPiZero Update v1.3.0 --> v1.4.0
CH32V103 Update v1.0.0 --> v1.0.1
SmartLoong Update v0.0.1 --> v0.0.2
W801Device Update v1.1.0 --> v1.1.1
CH582 Update v1.1.1 --> v1.1.2
modbus Create v0.0.2
pika_fatfs Create v0.1.0
mqtt Create v0.0.2
requests Create v1.0.0
hashlib Create v1.0.1
hmac Create v1.0.1
BLIOT Create v0.4.1
aes Create v0.0.1
base64 Create v1.0.0
pika_libc Create v1.0.1
time Create v0.1.0
at_client Create v0.0.1
json Create v0.1.1
network Create v0.1.2

Builtin

  • Support insert() delete() for list #223
  • Support eval() #228
  • input() builtin #262
  • Support help("modules") #272
  • Add stddevice_hal c lib for device modules. #278

Bug Fix

  • 0xFFFFFF to int64 faild. #220
  • Panic when calling a not-callable object. #221
  • pyζ–‡δ»Άη›ΈδΊ’importοΌŒδΌšε―Όθ‡΄pikaδΈθƒ½θΏθ‘Œ #229
  • fix Escape for '\n' '\r' '\t' #282

v1.11.0

1 year ago

Language

  1. Support is keyword #188
  2. Support in keyword #189
  3. Support assert keyword #190
  4. Support Defalut Function parameters #170
  5. Support method for basic type like int, str #183
  6. support multiline calls like foo(a, \n b) #197
  7. support add(), sub() magic method #198
  8. floating point numbers expressed in scientific notation #217
  9. Support multi value return and multi value assign #200
  10. can a dead-loop python program add an exit interface #201
  11. Support keyword parameters #207
  12. Support if a in list and if a in dict #208
  13. Support super() #209
  14. Support slice for list #210
  15. Support for k,v in d.items #213
  16. Support int64 type hint for c module #214
  17. Exit when error occord #215
  18. exception for slicing strings containing Chinese #218

Library

  1. support exec() builtin #193
  2. support dir() builtin #194
  3. Support getattr() and setattr() builtin #195
  4. Support range(a) and range(a, b, c) #216

Bug Fix

  1. Bug: try ... except for dict no attr not work #204
  2. parse problem #187
  3. unspecified member variables in a list, tuple, or dictionary cause
  4. Support void line and no new line for obj_run() #196

v1.10.0

1 year ago

Feature Updates:

Performance

  • Speed increase up to 78%

Language

  • Support "try ... exception" #169

  • Support 0bxxx #171

  • Support function chain like < String('test').split('t') > #172

  • Support slice nesting like < a = x[ y[ z ] ] > #173

  • Support slice chain like < a[x][y] > #174

  • Support < fun()[x] > #177

  • Support Tuple literal #178

  • Support bind .pyi from other *.py expect main.py #180

  • Support <del> keyword https://gitee.com/Lyon1998/pikascript/issues/I5KDES

Library

  • Support binascii module #176
  • Support open() builtin #181
  • Support sleep() for windows and linux #186

Bug fix:

Incompatible updates:

  • The order of the entry parameters for the .pyi-generated function has changed

Migration Guide:

  • Update the order of the entry parameters in C module.