首页 文章 精选 留言 我的

精选列表

搜索[第二期热点征文-编程语言],共10000篇文章
优秀的个人博客,低调大师

Snow 编程语言 v0.10.0 发布: 实现方法重载、增加 ANY 类型

更新内容 新增功能 方法重载:引入按参数总数(含隐式 this)区分的重载机制;统一为为重载方法追加 _N 后缀的命名规则;新增重载表与 addMethod / getMethod;对象/静态方法调用自动追加 _N,普通函数调用不追加。 字符串/引用拼接:IR 新增 ADD_R,并由 IROpCodeMapper 映射到 VM 指令 R_ADD;VM 新增 RAddCommand,实现「两引用出栈 → 转字符串 → 按左到右顺序拼接 → 压栈」的语义,延续非数值 + 的字符串连接行为。 类型系统扩展:新增万能类型 ANY;isCompatible 增强以支持 ANY 与父类引用检查;类型提升工具支持引用类型 R; 变量声明支持自动类型提升。 平台:新增 macOS 打包配置,完善分发能力。 性能和稳定性改进 数值计算精确化:实现数值加法的精确处理,消除常见浮点误差;非数值 + 仍保持字符串连接语义。 调用链路优化:更新 CallExpressionAnalyzer 与方法查找算法,按参数计数解析更快、更准确。 执行路径简化:精简 CallCommand,移除虚拟调用路径,仅保留静态调用;删除不再使用的 Instance 与 VirtualTable,降低复杂度与运行开销。 核心组件重构:优化 IRBuilderScope、SignatureRegistrar、LocalVariableStore 等类的结构与文档,职责更清晰、内存/查询开销更低。 健壮性:加强参数校验与异常处理,提升容错与可观测性;改进模块常量加载逻辑并简化实现。 开发者体验提升 统一重载命名与结构体方法降级规则(StructName.method_N,N 含隐式 this),并梳理结构体签名注册与继承流程,易于理解与排错。 代码与注释全面整理:统一导入顺序与格式,清理未使用变量和冗余兜底逻辑,补充必要注释与包级文档。 日志与错误信息风格统一,定位信息更明确;示例/测试更完善,便于本地复现与演示。 新增 macOS 打包流程,降低本地试用与交付门槛。 Bug 修复 修复 成员访问表达式 在继承场景下父类字段下标重复计算的问题(已进行字段去重与索引纠正)。 修复 syscall 子命令 的解析异常,提升命令行稳定性。 文档改进 补充与统一类型系统文档:完善 BuiltinTypeRegistry / BuiltinType 的注释与结构说明,新增 ANY、引用类型 R 的类型提升与兼容性示例。 完善 IR↔VM 指令映射文档,明确 ADD_R → R_ADD 的语义与边界。 梳理多处 README 与类文档,统一术语与风格,提升可读性与检索性。 如遇到使用问题,欢迎及时 提交 Issue

优秀的个人博客,低调大师

Snow 编程语言 v0.4.2 发布: 实现类型间全转换能力

更新内容 新增功能 增加 IR 对类型转换指令的支持,补充基本数值类型转换相关指令,实现类型间全转换能力(如 long64/float32/double64/short16/byte8 等互转)。 性能和稳定性改进 优化函数调用指令逻辑,支持 void 类型函数调用,修复空函数、非 void 函数缺失 return 的判断与报错。 修正比较操作的错误提示信息,增强容错和反馈能力。 修复函数参数重名、空函数不生成代码、比较跳转等边界问题,提升稳定性。 修正 CmpJumpGenerator 逻辑以适配新 VMOpCode。 统一修复类型转换相关注释与文档错误,提升类型转换的准确性和一致性。 开发者体验提升 优化 CallInstruction 类设计与实现,提升结构清晰度与可维护性。 重构 AST 节点位置信息表示方式,便于调试与错误定位。 提取和统一类型提升逻辑至 TypePromoteUtils 工具类,简化代码结构。 同步 VMOpCode 指令到 OpHelper 工具类,提升代码一致性。 优化 IDEA 配置和 Demo 运行配置,调整 Demo 文件结构,减少根目录污染。 统一代码风格,实现代码规范化。 Bug修复 修复函数参数重名导致的语义冲突。 修复空函数不生成代码、非 void 函数缺少 return 等边界问题。 修复类型转换、比较指令、函数调用等相关细节 bug。 修复拼写和注释错误,提升文档质量。 文档改进 完善 Snow-Lang 语法文档,新增 Snow-Lang-Syntax 相关文档。 补充并修正类型转换指令(byte8、short16、long64、float32、double64 等)相关说明。 优化 FunctionParser、L2I、ExpressionUtils、TypePromoteUtils、ComparisonUtils、CmpJumpGenerator 等核心类与方法的注释说明。 统一优化类型转换相关文档,消除歧义,提升可读性。 丰富类和方法的 JavaDoc 注释,解释用途和使用方式。 修改 README,优化项目说明。 优化测试用例及测试配置。 如遇到使用问题,欢迎及时 提交 Issue

优秀的个人博客,低调大师

木兰编程语言不同运行版本的 Python sys.path 差异小结

上文中的两个问题之一,是发布到 PyPI 的版本在运行时有个测试未通过:测试/引用/引用本地包内py.ul,而开发版和木兰原始可执行文件是通过的。 由于这是第一次发觉 PyPI 发布版本的行为差异,于是优先研究。 问题描述 测试源码如下: using test.package.module_py test.package.module_py.talk() 在项目根目录下(后文如无特别说明,命令运行都在根目录下),有如下测试包结构: test package module_py.py test_module_py.py <--- 该模块在根目录下 开发版如下运行测试无误: $ python3 -m 木兰 测试/引用/引用本地包内py.ul 但如果安装在 PyPI 的发布版,再如下运行相同测试用例则报错(见此 issue): $ 木兰 测试/引用/引用本地包内py.ul 没找到模块:‘test.package’ 调用层级如下 见第1行:using test.package.module_py 但是,发布版如下引用当前目录下的模块并无问题: using test_module_py test_module_py.talk() 为何? 调查过程 由于木兰原始可执行文件运行该测试无误,于是首先对木兰重现项目用 PyInstaller 生成(参考前文)exe 文件进行测试,引用并无问题。 由于无头绪,建立最简项目重现问题,再次确认当前运行目录需添加到 sys.path 才能引用当前目录下的模块 test_module_py(在此前的 commit 中实现)。接下去围绕 sys.path 做一系列测试。 期间试着将 test 目录改名为 tes,结果引用成功。又直接使用__import__('test'),才发现在 Python3 的包路径中,原就存在一个 test 包。 结论 sys.path 在不同运行版本的区别如下: PyPI 发布版:虽然添加了运行当前目录到 sys.path,但位于末尾。在 sys.path 中更靠前的路径中包含 Python3 的包路径,其中恰好存在其他 test 包,而且该包中没有 package 子目录,因而报错。 exe 发布版(用 PyInstaller 生成):sys.path 中不包含 Python3 的包路径,因而不会认错 test 包。 开发版:运行的当前目录位于 sys.path 第一个。sys.path 中虽也包含 Python3 的包路径,但由于顺序靠后,并不起作用,因而不认错 test 包。 由此来看重现项目两种发布版的优劣势: PyPI 发布版:由于自带 Python3 包路径,那么只要是当前 Python3 环境下可用的包,木兰即可引用。副效应就是万一碰到上面这样的同名包,会优先引用 Python3 自带包,而 Python 的行为是优先引用自定义包。 exe 发布版:由于不带 Python3 包路径,木兰将不能引用 Python3 环境下安装的包。当然也就没有同名包的优先问题。但如果用户自行配置了环境变量,使得系统路径中包含 Python3 的包路径,是否会有同样问题尚待确认。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册