91 Star 777 Fork 182

GVP李昂 / pikapython

2024-03-02 16:35
5521445 lyon1998 1638070311 李昂

我们很高兴地宣布📣PikaPython v1.13.3现已发布!此版本受益于社区的众多提交和改进,修复了多个bug🐞,并引入了许多新特性🎁。以下是主要的更新内容:

🚀新特性和改进:

  • 更新了pikascript-core和PikaStdLib到v1.13.3,带来更多的性能优化和功能增强。
  • PikaStdDevice、socket、pika_lvgl、STM32、modbus、pika_fatfs、mqtt、time、network和flashdb等包均有更新,提升了设备支持和网络通信能力。
  • 新增modbus_rt包v0.2.1,支持modbus RTU、ASCII、TCP、UDP模式,增强了主机和从机功能,支持自定义文件传输功能。
  • 对pika_lvgl进行了多项改进,包括图像处理修复、递归锁支持、拼音支持和界面控件增强等,提升了图形界面的开发体验和性能。
  • 引入了递归互斥锁用于全局解释器锁(GIL),增强了线程安全性。
  • 提升了PikaStdDevice对SPI/SOFT_SPI的支持,增加了IIC工具函数,优化了硬件抽象层(HAL)。
  • 修复了内存管理,在模块中使用PikaPython提供的malloc和free函数替代标准库函数,减少了内存泄漏风险。
  • 支持try...import语句,优化了模块导入逻辑,提高了代码的健壮性和兼容性。
  • 解决了编译警告和错误,提高了代码质量和稳定性。
  • 同步更新了pika_hal和其他多个包,修复了已知的bug和性能问题。

🐛Bug修复:

  • 修复了lvgl在某些场景下的内存泄漏问题。
  • 修复了modbus_rt在特定环境下可能导致的错误。
  • 解决了flashdb和pika_fatfs中的文件写入和读取问题。
  • 修正了多个包在特定平台上的编译警告和错误。

模块发布 (从 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

特别鸣谢:所有参与PikaPython v1.13.3开发和测试的贡献者。特别感谢在Gitee和GitHub上贡献代码的朋友们。感谢大家的努力和付出,每一个改进都为用户提供了更好的体验。期待大家继续的反馈和支持,一起为PikaPython贡献力量!

最后提交信息为: release v1.13.3 and packages
2023-11-01 11:55
5521445 lyon1998 1638070311 李昂

🎉公告:PikaPython v1.13.0 发布

我们很高兴地宣布📣PikaPython v1.13.0现已发布!此版本受益于社区的众多提交和改进,修复了多个bug🐞,并引入了许多新特性🎁。以下是主要的更新内容:

🚀新特性和改进:

  • 子目录模块导入:新增支持从子目录导入 python 模块(暂不支持c模块),修复了AC5和其他相关问题。包括from subdir import srcimport subdir.src 的语法支持。
  • 模块导入增强:支持from <mod> import *(暂不支持c模块)。
  • 文件系统与硬件支持:内核提供了对文件目录操作的platform支持,fatfsos模块的支持已经完成,并在STM32上进行了测试,
  • STM32F1STM32F4两个模块并入了STM32模块,不再单独提供下载。
  • STM32模块对STM32H7引入了ADC通道选择支持,优化了STM32F1的相关支持。
  • pika_hal: 新增 pika_hal_utils ,提供了一系列对 pika_hal 二次封装而来的简易 API。
  • 更强的调试能力:增强了pdb模块,支持全局变量、字节码断点和模块识别。修复了pdb和REPL的一些显示问题。(预发布)
  • VSCode插件支持:支持VSCode插件的断点调试、继续运行和退出,同时增强了预编译器。(预发布)
  • BLE支持:引入了BLE功能包,为ESP32适配并提供了iBeacon Profile。
  • 其他硬件适配与优化:为ESP32新增SPI(已测试)和IIC支持,修复了一些STM32相关的问题。
  • 代码清理与维护:删除了不再使用的文件和代码,清理了STM32F1STM32F4的包引用。
  • 持续集成与测试:优化了CITEST流程,增加了多种功能测试。

🐛Bug修复:

  • 修复了soft_tim.pyplatform rtthreadmqtt plat on esp32等多个模块的问题。
  • 针对RT-Thread进行了多项优化和修复,包括对线程功能的适配。
  • 解决了一系列关于格式、注释、迭代排序等的问题。
  • 优化了STM32的UART接收,使用了循环队列。

特别鸣谢:HelloDuoLA, SenySunny, 梦程MI, @rbg 以及其他在GiteeGitHub上的贡献者。感谢大家的努力和付出,每一个改进都为用户提供了更好的体验。期待大家继续的反馈和支持,一起为PikaPython贡献力量!

模块发布(从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

我们鼓励所有用户下载📥、安装并使用PikaPython v1.13.0。如果在使用过程中遇到任何问题,请随时联系我们。

最后提交信息为: release v1.13.0
2023-07-07 19:35
5521445 lyon1998 1638070311 李昂

公告:PikaPython v1.12.4 发布

我们很高兴地宣布PikaPython v1.12.4现已发布!此次新版本进行了许多改进,修复了众多bug,并新增了一些特性。以下是主要的更新内容:

新特性和改进:

  • 更新和改进了PikaCompiler,修复了解析错误。
  • 添加对.pya版本5的支持。
  • 新增对tuple(), '^', 和其他一些单目运算的支持。
  • 新增了this和fsm模块。
  • 支持zlib包和测试。
  • 支持bytearray()内建函数。
  • 支持对原生类和简单类型的isinstance()。
  • 提高了json.dumps速度,提升超过100倍。
  • 引入了对PIKA_UNBUFFERED_ENABLE的支持。
  • 支持Pika Lua,包括method_proxy和var proxy,以及获取pika_lua.eval的返回值。
  • 为PikaStdLib引入了builtins.pyi。
  • 为开发docker引入了sshd_config和frpc的支持。

Bug修复:

  • 修复了os发布。
  • 修复了pya加载问题。
  • 修复了pack版本5的问题。
  • 修复了pika.studio。
  • 修复了json模块,json.loads()对空对象的问题以及在jsmn上的json解析问题。
  • 修复了freeRTOS创建线程的bug。
  • 修复了事件循环默认循环周期和事件循环删除事件崩溃的问题。
  • 修复了REPL FUNC_KEY重置。
  • 修复了v1.12.3版本中的问题,包括__getitem__缺少__len__,以及msc rm dir字段。

模块发布(从v1.12.2版本开始):

模块名称 更新类型 版本更改
pikascript-core 更新 v1.12.2 --> v1.12.4
PikaStdLib 更新 v1.12.2 --> v1.12.4
PikaStdDevice 更新 v2.3.7 --> v2.3.8
socket 更新 v0.1.4 --> v0.1.5
binascii 更新 v0.0.2 --> v0.0.3
pika_cjson 更新 v1.2.2 --> v1.2.3
pika_lua 更新 v0.0.2 --> v0.0.4
pikaRTDevice 更新 v1.1.3 --> v1.1.4
mqtt 更新 v0.0.3 --> v0.0.4
hashlib 更新 v1.0.1 --> v1.0.2
time 更新 v0.1.5 --> v0.1.7
json 更新 v0.1.1 --> v0.1.4
_thread 更新 v0.0.4 --> v0.0.5
zlib 创建 v0.1.0
os 创建 v0.1.0

我们鼓励所有用户下载、安装并使用PikaPython v1.12.4。如果在使用过程中遇到任何问题,请随时联系我们。

最后提交信息为: fix vs version
2023-05-03 22:56
5521445 lyon1998 1638070311 李昂

📢 发布公告:PikaPython v1.12.2 发布 🚀

我们很高兴地宣布发布 PikaPython v1.12.2 版本!这个版本修复了一些错误和漏洞,并添加了一些新功能和改进。

更新内容如下:

新增功能 🌟:

  • 支持 max() 和 min() 内置函数。
  • 支持 REPL 历史记录功能。
  • 支持 ESP32C3 和 ESP32S3。
  • 支持延时事件循环。
  • 支持字符串查找 string.find()。
  • 支持单元素元组,例如 (1,) 或 ('test',)。
  • 支持为时间模块设置默认值和时区。
  • 支持检查线程创建是否成功。
  • 优化 PikaVM 的栈使用。

修复错误 🐛:

  • 修复了一些语法解析问题。
  • 修复了内存泄漏问题。
  • 修复了在某些无效语法下的内核崩溃问题。
  • 修复了文档生成的一些问题。
  • 修复了字符串打包读取的问题。
  • 修复了多线程和事件循环的一些问题。
  • 修复了一些类型转换问题。

更新改进 🔧:

  • 更新了各个模块的版本。
  • 更新了 ESP32 的 BSP,支持 ESP32C3 和 ESP32S3。
  • 更新了 STM32G0 的项目文件。
  • 更新了 modbus 示例代码和注释。
  • 改进了 PikaStudio 中的文档生成。
  • 支持了 CJSON 示例。
  • 改进了事件和线程。

我们欢迎所有用户下载、安装并使用 PikaPython v1.12.2 版本。如果您在使用过程中遇到任何问题,请随时联系我们。

模块发布 📦:

模块名 更新类型 版本变更
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
2023-03-15 16:32
5521445 lyon1998 1638070311 李昂

发布公告:PikaPython v1.12.1 发布

我们很高兴地宣布发布 PikaPython v1.12.1 版本!这个版本修复了一些错误和漏洞,并添加了一些新功能和改进。

更新内容如下:

新增功能:

新增了 os 模块。
支持 str.join() 方法。
添加了 clear() 内置方法用于开发板中的脚本
修复了 REPL 线程问题。
增强了事件和线程。
支持在 lwip 中使用 socket 模块中的 fcntl 方法。
支持使用 mark-sweep 垃圾回收。

修复错误:

修复了在 ESP32 上的 os 错误。
修复了 Linux 端口中的 pika_platform_get_tick() 方法。
修复了时间戳问题。
修复了多行注释问题。
修复了偶发的内存泄漏。
修复了许多其他问题。

更新改进:

更新了 STM32F103ZE 的项目文件。
更新了运行 pikapackage.exe 时的清理机制。
更新了 PikaPackageManager。
更新了 pikafs,支持打包给定文件和解包 *.pack 文件到指定路径。
更新了 modbus 示例代码和注释。
在 pikaui 中自动扫描后端。
改进了 pikaCompiler 中的注释。
改进了事件和线程。
我们欢迎所有用户下载、安装并使用 PikaPython v1.12.1 版本。如果您在使用过程中遇到任何问题,请随时联系我们。

模块发布:

模块名 更新类型 版本变更
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
最后提交信息为: release v1.12.1
2023-01-29 12:19
5521445 lyon1998 1638070311 李昂

语言

  • 支持 __getattr()__ __setattr()__ __setattribute()__ 魔法方法。#222
  • 只有当pika的主线程是 READY 时才运行事件回调()#202
  • 字符输入问题 | 支持左右键移动 repl 光标 #271
  • 支持事件的返回值 #270
  • 在 pyi 中支持多行定义方法 #224
  • 为 VM 栈节省 RAM 空间 #225
  • 优化字符串分片的时间开销 #226
  • 支持对象池以增加 malloc/free 的速度 #261
  • 支持在 RAM 中通过串口运行文件 #263
  • 在 const struct 中用排序的 hash 绑定 C 模块 #264
  • 支持多模块导入,如 import a, b, c #265
  • 支持导入 *.py.o字节码文件 #266
  • 支持通过 REPL 下载文件到文件系统 #267
  • 在 *.py.o 内部使用 u32 大小信息 #268
  • 支持从 REPL 运行字节码文件 #269
  • 自动保存字节码。#275
  • 支持从位置参数加载默认值 #276
  • 支持 pika 小程序,打包字节码和资源文件(图像/其他)。#277
  • 支持 *vars, **kws 解包 #281
  • 支持 def test(a,b), test(b=1, a=2) #280

模块更新

模块 状态 版本
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

内置函数

  • 支持列表的 insert() delete() #223
  • 支持 eval()#228
  • 支持 input() 内建程序 #262
  • 支持 help("modules") #272
  • 为设备模块添加 pika_hal。#278

错误修正

  • 0xFFFFFF 到 int64 失败。#220
  • 调用不可调用的对象时出现 panic。#221
  • py 文件相互导入,会导致 pika 不能运行 #229
  • 修复 Escape for '\n' '\r' '\t' #282

不兼容更新

  • str() 内建函数在输入 bytes 时的行为修改为与 cpython 一致,原先行为等同于 bytes.decode(),迁移方式:将 str(bytes) 修改为 bytes.decode()
最后提交信息为: fix v1.12.0, ready to release v1.12.0
2022-08-05 15:34
5521445 lyon1998 1638070311 李昂

功能更新:

性能

  • 速度提升高达78%

语言

  • 初步支持"try...except" #169

  • 支持 0bxxx字面值 #171

  • 支持像 String('test').split('t') 这样的函数链

  • 支持切片嵌套,如 a = x[y[z]] #173

  • 支持切片链,如 a[x][y] #174

  • 支持 function()[x] #177

  • 支持元组字面值 #178

  • 支持绑定来自其他 *.py (除main.py外)引入的 .pyi

  • 支持 del 关键字 https://gitee.com/Lyon1998/pikascript/issues/I5KDES

  • 支持binascii #176
  • 支持open() 内置函数 #181
  • 支持 windows 和 linux 的sleep()#186

错误修复:

不兼容的更新:

  • .pyi 生成的函数的入口参数顺序可能发生更改

迁移指南:

  • 更新C模块中入口参数的顺序。
最后提交信息为: restore g030 to v1.9.0
2022-07-02 01:03
5521445 lyon1998 1638070311 李昂

概述

  1. 可靠性大幅提高,在实际工程中受到检验并得到了大量的反馈。
  2. 包含大量实用的功能改进和错误修复。

功能更新

内核

  1. 支持 [] 字节的索引
  2. 支持 print() 和 str() 的 __str__ 魔法方法
  3. 支持 len() 和 __len()__ 魔法方法
  4. 支持 0o100 的八进制字面值
  5. 在 python 脚本中支持 Tab
  6. 为 pikaVM 检查栈溢出
  7. 支持 preCompiler 的 *.py 中 fuction 定义中的空行
  8. 支持 C 模块中的定义函数
  9. 支持 C 模块的 __del__() 魔法方法
  10. 支持类属性
  11. 支持使用 \ 合并多行代码
  12. 支持在其他 Python 文件中回调
  13. 支持 <None>
  14. 支持虚拟中断和回调
  15. 支持获取 Kernal 版本
  16. 支持 d = {'a':x, 'b':y, 'c': z}.
  17. 支持 obj_runChar() 将char推送到 REPL
  18. 支持字符串和字节的切片

  1. 支持 StdDevice 的读/写 Bytes API
  2. 添加 TemplateDevice 来测试 StdDevice 并提供参考演示
  3. 支持 chr()、hex()、ord()、id() 内置函数
  4. 支持 byte() 内置函数
  5. 支持 int() 转换 bytes,如 int(b'test'[0])
  6. 支持 int_to_bytes() 转换
  7. 支持 PikaStdDevice.Time() 的 unix 时间和 utc 时间
  8. 支持 printf() 的格式化输出和可变参数
  9. 支持 PikaStdDevice 的回调

错误修正

  1. ac5上的__user_free 错误
  2. 预编译器在最后需要两个空行
  3. 修复 cotex-M0 核心上的字节码对齐错误
  4. 修正遇到某些注释时的解析失败
  5. 修正遇到xx_import时的解析问题
  6. 1.'~-1'不等于'0'
  7. a[1] = 1 在内部函数不工作
  8. 模块中的 for_loop runError
  9. 当字符串内部出现 '[' 时出现解析错误
  10. 当 str(PikaStdData.String('test')) 时出现内存泄漏
  11. 不能运行从其他模块导入的函数
  12. 用 arm-gcc 构建的 Bluepill 模板不适合 128K Flash
  13. 如果行尾是 <空格>,则Lexer有概率错误
  14. 创建 PikaStdDevice.Time() 时的异常输出

不兼容的更新

在 C 模块中使用 float 类型标注后,在 C 中的类型改为 double (之前是 float)

迁移指南

在 C 模块的 C 实现中使用 double

最后提交信息为: fix msc for v1.9.0 kernal
2022-05-16 22:02
5521445 lyon1998 1638070311 李昂

功能更新:

  1. 支持PC端将python文件编译为字节码打包进固件,支持多python文件(无需文件系统)。
  2. 内存管理使用引用计数,支持工厂方法。
  3. 使用 valgrind 对内存隐患进行了全面排查。

功能解读视频:
https://www.bilibili.com/video/BV14t4y1x7nv

不兼容更新:

  1. C 模块的python声明文件后缀由.py修改为.pyi,语法内容不变。

迁移指南:

  1. 将 C 模块的.py文件后缀修改为.pyi。
2022-04-22 13:21
5521445 lyon1998 1638070311 李昂
  1. 在 C 模块的 py 方法声明中使用 self, 更好地支持 pylance 智能提示。
  2. 在 REPL 中支持定义函数。
  3. 在 REPL 中支持定义类。
  4. 增强了 REPL 的稳定性,增强了错误提示。
  5. 支持 list 和 dict 的 built-in 模式(需要配置)。
  6. 增加了 ctypes 模块,提供类似 cpython 的 ctypes 兼容。
  7. 脚本中支持了 import as, from import, from import as 语法。
  8. 增强了预编译器的稳定性,修复了一些 bug。
  9. 支持 bytes 基本数据类型。
  10. 支持 s = '\x33\x44' 字面值转义。
  11. 支持 b = b'\0x00\x03\x04' 创建 bytes 变量。
最后提交信息为: fix v1.7.0 commit id
2022-04-04 23:19
5521445 lyon1998 1638070311 李昂

v1.6.0发布,相较于v1.5.0:

  1. 性能提升339%
  2. 支持含参构造
  3. 支持多行注释
  4. 支持 byteArray
  5. 支持 main.py 中的空行
  6. 支持除零异常
  7. 交互式运行中,直接打印未赋值出去的参数
  8. 支持性能模式的配置
  9. 检查函数的入口参数个数
  10. 语法分析 bug 修复
C
1
https://gitee.com/Lyon1998/pikapython.git
git@gitee.com:Lyon1998/pikapython.git
Lyon1998
pikapython
pikapython

搜索帮助