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.9.0

1 year ago

Overview

This is the most trustworthy version of PikaScript to date, one that has received a lot of feedback from real-world engineering and offers a lot of practical improvements and bug fixes.

Feature Updates:

Language

  1. Support [] index for bytes #123
  2. Support __str__ magic method for print() and str() #127
  3. Support __len__ magic method for len()
  4. Support 0o100 Octal literal #130
  5. Support Tab in python script #132
  6. check overflow for pika VM #135
  7. Support void line in function define in *.py for preCompiler #138
  8. Support define Function in C Module #144
  9. Support __del__() magic method for C Module #147
  10. Support class property #150
  11. Support call back in other python files #152
  12. Support <None> #153
  13. Support virtual interrupt and callback #110
  14. Support use \ to combine multiline
  15. Support get Kernal Version #156
  16. Support d = {'a':x, 'b':y, 'c':z} #165
  17. Support obj_runChar() to push char to REPL #133
  18. Support slice for string and bytes #121

Library

  1. Support read/writeBytes API for StdDevice #125
  2. Add TemplateDevice to test StdDevice and supply reference demo #126
  3. Support chr(), hex(), ord(), id() builtin #128
  4. Support bytes() builtin #131
  5. Support int() for bytes like: < int(b'test'[0]) > #134
  6. Support int_to_bytes() transfer #137
  7. Support unix-time and utc-time for PikaStdDevice.Time() #146
  8. Support format and variable pars for printf() #149
  9. Support callback for PikaStdDevice #151

Bug Fix:

  1. Error in __user_free on ac5. #114
  2. pre-compiler need two void line in end #113
  3. fix bytecode align error on M1 core #129
  4. fix parse faild when meet some comments #166
  5. fix parse issue when met xx_import #164
  6. '~-1' is not equal '0' #163
  7. a[1] = 1 not work inner function() #155
  8. for_loop runError in module #145
  9. parse error when '[' inner the string #140
  10. memory leak when < str(PikaStdData.String('test')) > #141
  11. can not run function import from anothor module #142
  12. Bluepill template built with arm-gcc does not fit 128K Flash #139
  13. Lexer Error if the end of line is . #136
  14. Exception output when creating PikaStdDevice.Time() #143

Incompatible updates:

Use double in C while float in python #148

Migration Guide:

Use double in C Module.

v1.8.0

2 years ago

Feature Updates:

  1. Support pc-side python files are compiled into bytecode and packaged into firmware, and multi-python files are supported (no file system required).
  2. Memory management uses reference counting and supports factory methods.
  3. A comprehensive troubleshooting of memory hazards was carried out using valgrind.

Feature Interpretation Video:

https://www.bilibili.com/video/BV14t4y1x7nv

Incompatible updates:

The python declaration file suffix of the C module is modified from .py to .pyi, and the syntax content remains unchanged.

Migration Guide:

Modify the .py file suffix of the C module to .pyi.

v1.7.0

2 years ago
  1. use self in py method declarations in C modules to better support pylance smart hints.
  2. Support for defining functions in REPL.
  3. Support defining classes in REPL. 4.
  4. enhance the stability of REPL, enhance the error prompting.
  5. support built-in mode for list and dict (requires configuration).
  6. Add ctypes module to provide cpython-like ctypes compatibility.
  7. support import as, from import, from import as syntax in scripts.
  8. Enhance the stability of pre-compiler and fix some bugs.
  9. support bytes basic data type.
  10. support s = '\x33\x44' literal value escaping.
  11. Support b = b'\0x00\x03\x04' to create bytes variables.

image

v1.6.0

2 years ago

image

latest

2 years ago

rt-thread-package

2 years ago

v1.2.0

2 years ago

add rt-thread support package in port/rt-thread

v0.8.1

2 years ago

support script new object like: "uart = STM32.UART()"

v0.7.6

2 years ago

support download python script by USART in stm32g030.

v0.7.5

2 years ago

support RGB for PikaPi-Zero (stm32g030)