Releases: pikasTech/PikaPython
v1.10.0
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
Bug fix:
- Bug: print(None) return other string #175
- Bug: For loop error inner loop after continue #179
- Bug: stack error when arg size > int16_t #185
- Some python operators operate incorrectly or do not meet expectations https://gitee.com/Lyon1998/pikascript/issues/I5JN75
- The output for in [dict] is incorrect https://gitee.com/Lyon1998/pikascript/issues/I5JWSR
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.
v1.9.0
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
- Support [] index for bytes #123
- Support __str__ magic method for print() and str() #127
- Support __len__ magic method for len()
- Support 0o100 Octal literal #130
- Support Tab in python script #132
- check overflow for pika VM #135
- Support void line in function define in *.py for preCompiler #138
- Support define Function in C Module #144
- Support __del__() magic method for C Module #147
- Support class property #150
- Support call back in other python files #152
- Support <None> #153
- Support virtual interrupt and callback #110
- Support use \ to combine multiline
- Support get Kernal Version #156
- Support d = {'a':x, 'b':y, 'c':z} #165
- Support obj_runChar() to push char to REPL #133
- Support slice for string and bytes #121
Library
- Support read/writeBytes API for StdDevice #125
- Add TemplateDevice to test StdDevice and supply reference demo #126
- Support chr(), hex(), ord(), id() builtin #128
- Support bytes() builtin #131
- Support int() for bytes like: < int(b'test'[0]) > #134
- Support int_to_bytes() transfer #137
- Support unix-time and utc-time for PikaStdDevice.Time() #146
- Support format and variable pars for printf() #149
- Support callback for PikaStdDevice #151
Bug Fix:
- Error in __user_free on ac5. #114
- pre-compiler need two void line in end #113
- fix bytecode align error on M1 core #129
- fix parse faild when meet some comments #166
- fix parse issue when met xx_import #164
- '~-1' is not equal '0' #163
- a[1] = 1 not work inner function() #155
- for_loop runError in module #145
- parse error when '[' inner the string #140
- memory leak when < str(PikaStdData.String('test')) > #141
- can not run function import from anothor module #142
- Bluepill template built with arm-gcc does not fit 128K Flash #139
- Lexer Error if the end of line is . #136
- 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
Feature Updates:
- Support pc-side python files are compiled into bytecode and packaged into firmware, and multi-python files are supported (no file system required).
- Memory management uses reference counting and supports factory methods.
- 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
- use self in py method declarations in C modules to better support pylance smart hints.
- Support for defining functions in REPL.
- Support defining classes in REPL. 4.
- enhance the stability of REPL, enhance the error prompting.
- support built-in mode for list and dict (requires configuration).
- Add ctypes module to provide cpython-like ctypes compatibility.
- support import as, from import, from import as syntax in scripts.
- Enhance the stability of pre-compiler and fix some bugs.
- support bytes basic data type.
- support s = '\x33\x44' literal value escaping.
- Support b = b'\0x00\x03\x04' to create bytes variables.
v1.6.0
pikascript-latest
rename Pika_F051
rt-thread-package-pikascript
update pacakges.toml