PikaScript v1.9.0 已经发布,轻量级跨平台嵌入式 Python 引擎

PikaScript v1.9.0 已经发布,轻量级跨平台嵌入式 Python 引擎

此版本更新内容包括:

概述

  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

详情查看:https://gitee.com/Lyon1998/pikascript/releases/v1.9.0

猜你喜欢

转载自www.oschina.net/news/201496