Snow 编程语言 v0.12.0 发布: 标准库体系扩展与系统调用规范化

版本更新

新增功能

标准库体系全面升级

  • 新增 std_env / std_fs / std_process / std_sync / std_sys / std_thread / std_time / std_io 等标准库模块,封装环境变量、文件系统、进程管理、并发原语、系统信息、线程与时间功能。
  • 新增 std_float / std_double / std_long,支持 abs/min/max、完整的数值常量、示例及文档。
  • 重命名并重构 std_integer,扩展数学能力(abs/max/min),统一结构与示例风格。
  • 新增 os_ 系列模块*:os_fsos_fdos_multiplexos_netos_processos_syncos_sysos_threados_time 等,对系统调用提供稳定封装。

系统调用与时间接口扩展

  • 新增 TICK_MS (0x1703) 系统调用:返回单调时钟毫秒值。
  • 新增 NANOSLEEP / sleep_ns,支持纳秒级睡眠、线程中断恢复、详细异常文档。
  • 标准化系统调用编号(如 CHMOD/FCHMOD/MKDIR/UTIME/OPEN 等)并修正与实现之间的不一致。
  • 同步扩展系统信息能力:cpu_countmemory_infolast_error_messagelast_error_code 等。

前端、IR 与类型系统增强

  • 引入前端词法分析模块 frontend-lexer,支持 Java 21/25 编译。
  • 增加对 struct / fields / this / super 的解析支持。
  • 在 IRBuilderScope 中新增 统一寄存器类型跟踪registerTypes 映射、类型推导、结果类型标记等。
  • 优化标签生成(带函数名前缀),提高字节码可读性与调试能力。
  • 扩展字符串与引用比较,新增 R_CE / R_CNE / CMP_REQ / CMP_RNE 操作码。

调试能力升级

  • 新增 --trace 指令级跟踪模式,输出字节码执行路径。
  • 扩展 LoggingUtils,新增 trace 级别日志过滤。
  • 为构建器添加函数作用域标签,方便 IR/VM 调试。

批量测试与工具链增强

  • 新增 test-all 测试命令:支持批量编译运行 Demo、跳过测试、失败停止、超时控制等。
  • 提供详细彩色输出和完整测试摘要。
  • 新增 PowerShell 工具:批量测试、PR 日志导出、Docker Registry 性能测试。

性能和稳定性改进

虚拟机数值体系重构

  • 新增 NumberUtils:集中处理数值弹栈与类型转换,统一 popInt/popLong/popDouble/popFloat 等。
  • 所有整数/短整型/长整型相关 VM 指令均重构为依赖 NumberUtils,消除重复代码与隐式类型转换。
  • 支持处理 Float/Double/Boolean/Number 等多类型,错误检查更严格。

科学计数法字面量支持

  • 增强数字扫描器,支持 1e3-2.5E-4、指数校验规则、d/D 后缀。
  • 移除非法格式(如指数中的下划线)。

进程/线程与同步模型增强

  • 重构 os_process 接口:

    • spawnfork
    • exec_replaceexec
    • wait_pid/wait_anywait
  • FORK/EXEC 改为同步模型:子进程结束后才返回,增强可用性。

  • 引入 StreamForwarder,支持子进程 stdout/stderr 实时转发。


开发者体验提升

文档体系全面规范化

  • 系统化统一为 JSDoc 注释风格@module / @function / @summary / @param / @returns / 异常说明。
  • 完善所有系统调用文档,覆盖 OPEN/READ/WRITE/CLOSE、SELECT/EPOLL、SOCKET、GETENV、CLOCK_GETTIME 等。
  • 移除重复示例,统一模块级文档结构。
  • 明确 readdir 非递归语义、chmod/fchmod 退化说明、utime 时间戳格式等。
  • 统一 Snow SDK 目录、SNOW_HOME、模块解析规则说明。

示例(Demo)体系整理

  • 新增大量 Demo:整数数学、Fibonacci、TCP 客户端/服务端、线程/进程、exec、乘法表、files 等。
  • 清理过时 demo、统一目录结构、统一模块名小写(snow)、重写部分示例代码。
  • 增加 .run.xml 运行配置,方便直接运行。

构建/发布链路改进(Windows / Linux / Docker)

  • 重构 Windows 发布脚本:

    • Compress-Archive → ZipFile(解决兼容性问题)
    • 改进 JDK 选择逻辑、PATH 设置方式、VERSION 文件生成
    • 统一 Join-Path,异常改为 throw
  • Linux 构建:

    • 强制使用 PowerShell 7 打包
    • 更新 Docker 镜像与脚本结构
  • Docker Registry 测试脚本:

    • 多镜像并行测速、响应时间分析、镜像拉取验证

编译链路增强

  • native-maven-plugin 版本管理调整
  • maven-compiler-plugin 升级
  • 本地编译优化级别提升到 -O3
  • 修正 Unix/Mac OS X 构建家族划分

Bug 修复

  • 修正大量系统调用编号不一致问题(OPEN/CHMOD/FCHMOD/MKDIR/UTIME 等)。
  • 修复 readdir/mkdir/chdir 等返回值描述不统一问题。
  • 修复 SEEK 文档与实现不一致、whence 参数缺失说明。
  • 修复 std_long 常量范围与 long 字面量大小写不一致。
  • 修复多处 Demo 路径、运行配置、空白行、宏重复的问题。
  • 修复多语言文档、系统调用边界情况说明缺失。

文档改进

  • 语言文档大规模重构:语法、访问控制、最佳实践、结构体继承、数组注意事项等。
  • 重写 API 参考与系统调用说明,补充参数/返回值/异常/边界。
  • 完整补全 TIMEOFDAY、CLOCK_GETTIME、GETENV、SOCKET、EPOLL 等所有系统调用文档。
  • 清理多余注释、空行,统一格式与术语。

如遇到使用问题,欢迎及时 提交 Issue

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

微信关注我们

转载内容版权归作者及来源网站所有!本站原创内容转载请注明来源!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

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

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。