Skip to content

[局部变量扩展]同步上游更改 #310

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

SimonShiki
Copy link

@SimonShiki SimonShiki commented Feb 23, 2025

概述

同步了原局部变量扩展近期上游更改。

具体内容

增加了对动态变量名的支持

通过扫描静态变量名,当线程内存在动态变量名时自动回退到更慢的变量管理模式。

同步编译/非编译模式局部变量行为

如题,在静态变量名模式保证原先性能的同时尽可能将一部分运行期代码提前至编译期

增加 range 积木

block_2025_2_23-21_29_14

建议

  1. 编译器部分的实现在同步后基本以上游为主,代码逻辑变更造成的项目运行逻辑差异需要进行确认
  2. 当 range 积木域末存在 在兼容层中运行的积木(如未进行编译器兼容的扩展积木,原版looks_say) 会阻塞运行无法复现,亦在原扩展中得到修复
  3. 测试过程中的破坏性更改在合并后可能需要更新原先教程

Signed-off-by: SimonShiki <[email protected]>
Signed-off-by: SimonShiki <[email protected]>
@sylarhcn
Copy link
Contributor

sylarhcn commented Mar 3, 2025

大概看了一遍 change,看起来应该可以直接上线,没有什么兼容问题?
我暂时没有时间做单元测试,我发给社区看看大家试试偶遇没有什么 bug

Arkos123 added 2 commits March 3, 2025 21:42
* fix: 遍历列表行为和原版保持一致;range行为和原版保持一致;
fix: 更改局部变量名的生成方式

* fix: 遍历列表行为和原版保持一致;range行为和原版保持一致;
fix: 更改局部变量名的生成方式

* fix: 移除_scopeVarPool

* fix: 修复了非编译模式下由于ccw自制返回值积木没有stackFrame导致的bug
不使用pushStack模拟非编译行为,而是直接用对象存放数据,提高效率
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants