DDevTerminal Botfix(runtime): 修复导致脚本'跑不起来'的引擎问题与文档脱节
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(runtime): 修复导致脚本'跑不起来'的引擎问题与文档脱节 1. pybridge.c:execFile 注入 __file__/__cached__/__loader__/__spec__ 模块元属性。 PyRun_FileExFlags 不会自动设置这些,用户脚本里 os.path.dirname(__file__) / Path(__file__) 等高频写法会直接 NameError(已实测复现)。同步重编 jniLibs/libpybridge.so(NDK 27.3 + CPython 3.13.9 交叉头文件)。 2. NativeEngine.run:修复并发运行状态机。execFile 是阻塞 JNI 调用, 协程 cancel 无法中断;原实现在 Finished 事件/awaitClose 里提前复位 busy, 旧线程未退出时新运行会并发执行(sys.path/cwd/argv 互相污染、输出串台)。 现在 busy/running 只在 execFile 真正返回时复位;Finished 事件幂等去重; stop() 增加中断兜底线程(2s 未收尾补发 Finished 130)。 3. EditorViewModel:stopRun 兜底由 3s 延长到 8s 并对齐引擎实际状态; Java 文件运行时给出明确提示(原实现会把 Java 源码当 Python 执行)。 4. scripts/build_apk.sh:pkill -9 -f GradleDaemon 会误杀用户所有项目的 Gradle 进程,改为 gradlew --stop + 只清理陈旧(>10min)锁文件。 5. README:架构描述对齐原生 CPython 3.13(原为已废弃的 Pyodide/WASM), 修正 numpy/pandas/matplotlib 未预装的诚实声明与构建前置要求。 6. 清理 4 处未使用 import。 | 29 天前 | |
fix(scripts): 本地构建脚本去掉硬编码绝对路径,改为可移植实现 - build_apk.sh:仓库根目录由脚本自身位置推导;JAVA_HOME 支持环境变量覆盖并自动探测; Gradle 缓存目录改用 GRADLE_USER_HOME/默认 ~/.gradle - package_native.sh:CPython 交叉编译目录改为参数或 CPYTHON_CROSS_DIR 传入(缺失时给出用法), NDK 支持 ANDROID_NDK_HOME 并自动探测 SDK 下最新版本,APP 目录随仓库根推导 | 29 天前 | |
feat(v0.9.3): 全面优化——删72MB pyodide死资产/引擎args传参与read修复/UI体验补齐/加密存储 第一刀发版前置: - 删除 assets/pyodide/ (72MB, 19文件) + python-runner.html + PyodideEngine.kt (437行死代码) - 版本号 0.9.3 / versionCode 13 - python-data 模板改纯标准库 statistics (原 import numpy 必失败) - 全仓 Pyodide/WASM 文案清理为原生 CPython 3.13.9 第二刀 P1 全修复: - RunRequest.args 透传 sys.argv (JNI jobjectArray + PyList 构造) - _DtIn.read(size=-1) 循环读到 EOF - autoFollow 跨运行复位 - 解压中返回键拦截 - 新建空白文件入口 (激活 newFile 死代码) - 运行不立即弹键盘 (底部点击输入手动入口) - AI Key/Git token EncryptedSharedPreferences + Keystore 加密 - allowBackup=false + cleartext 限 localhost - MissingToolchainScreen 文案更新 - CompletionProvider 删 numpy/pandas/matplotlib 第三刀 P2/P3 体验补齐: - 品牌启动屏 (windowBackground 规避白屏) - 运行按钮移到 OutputPanel 顶部 pill (拇指区) - 命令面板最近文件/撤销重做/分享代码 - 首次预热提示 RunEvent.Log - 通知权限先解释再请求 - 停止 3s 兜底超时 - Git 冲突文件列表 - AI SSE 流式输出 - Tab 触控区放大+脏点/语义色/CommandPalette imePadding - WebView destroy+禁JS/符号栏条件渲染/会话恢复光标 - bridge_output detach/sys.path去重/inittab防重复/解压进度回调 验证: BUILD SUCCESSFUL, 单测6/6, APK 125MB→94MB (-25%), pyodide 0残留 | 1 个月前 |