Skip to content

v0.4.0

Choose a tag to compare

@sin1111yi sin1111yi released this 30 Mar 13:32

Ralqlator v0.4.0 Release Notes

Release Date: 2026-03-30
Git Tag: v0.4.0
Commit: d9741f5


🎉 核心亮点

v0.4.0 引入了 用户定义持久化存储 功能 - 您自定义的函数、数列和常量现在会自动保存并在会话间加载!


✨ 新功能

用户定义持久化存储

所有用户定义的元素会自动持久化到 ~/.ralqlator(隐藏 TOML 文件):

  • 自动保存 当您:

    • 创建定义(通过 create 命令或 -c 参数)
    • 删除定义(通过 destroy 命令或 -d 参数)
    • 退出 REPL(quit 命令)
  • 自动加载 当您:

    • 启动 REPL
    • 从命令行运行计算

新增 CLI 参数

参数 说明 示例
-c, --create <DEF> 创建函数/数列/常量 ralqlator -c "func f(x) = x * 2"
-d, --destroy <NAME> 删除用户定义 ralqlator -d f
-L, --list 列出所有用户定义 ralqlator -L

新增 REPL 命令

命令 说明 示例
destroy <name> 删除用户定义 > destroy f

存储文件格式 (TOML)

[functions.square]
params = ["x"]
expr = "x * x"

[functions.triangle]
params = ["n"]
expr = "n * (n + 1) / 2"

[constants]
G = 9.81
SPEED_OF_LIGHT = 299792458.0

📦 新增模块

storage.rs

新的 TOML 持久化模块:

  • save_user_data() - 保存定义到 ~/.ralqlator
  • load_user_data() - 从 ~/.ralqlator 加载
  • delete_user_definition() - 删除并自动保存
  • get_storage_path() - 获取存储文件路径

🧪 测试

新测试文件:09_storage_tests.rs

19 个全面的测试用例 覆盖:

  • 创建操作(函数、数列、常量)
  • 列表操作(空、单个、多个)
  • 删除操作(函数、常量、不存在、大小写敏感)
  • 自动保存功能
  • 自动加载功能
  • 完整工作流集成
  • 跨会话持久化
  • 存储文件格式验证
  • 边界情况

测试统计

类别 数量
总测试数 450+
测试文件 10
新增测试 (v0.4.0) 19
测试覆盖 所有核心功能

📋 使用示例

命令行

# 创建函数
ralqlator -c "func double(x) = x * 2"

# 创建数列
ralqlator -c "seq triangle(n) = n * (n + 1) / 2"

# 创建常量
ralqlator -c "const G 9.81"

# 列出所有定义
ralqlator -L

# 立即使用
ralqlator "double(21)"        # 输出:42
ralqlator "triangle(10)"      # 输出:55
ralqlator "G * 10"            # 输出:98.1

# 删除定义
ralqlator -d double

# 验证删除
ralqlator -L

REPL

$ ralqlator
Type 'q' or 'quit' to exit...

> create func f(x) = x + 100
Function 'f' defined

> f(5)
105

> destroy f
Deleted 'f' and saved

> quit
# 自动保存所有定义

🔧 技术变更

依赖项

版本 用途
serde 1.0 序列化框架
toml 0.8 TOML 格式支持

修改文件

文件 变更
Cargo.toml 添加 serde, toml 依赖
Cargo.lock 更新依赖
src/storage.rs 新增 - 持久化模块
src/main.rs CLI 参数处理
src/cli.rs 新增 CLI 参数
src/repl.rs 自动保存/加载,destroy 命令
src/lib.rs 导出 storage 模块
tests/09_storage_tests.rs 新增 - 存储测试

📚 文档更新

  • README.md: 添加持久化文档、示例、CLI 参数
  • README_zh.md: 中文文档更新
  • agent.md: 开发者文档,包含新模块信息
  • PKGBUILD: 更新为 v0.4.0,添加 aarch64 支持

🚀 迁移指南

从 v0.3.x 升级到 v0.4.0

无破坏性变更! 您现有的用户定义将继续工作。

可选:将旧定义迁移到新的持久化系统:

  1. 使用旧会话启动 REPL
  2. 重新创建重要的函数/常量
  3. 它们会自动保存到 ~/.ralqlator

🐛 Bug 修复

本次发布无 Bug 修复。


⚠️ 破坏性变更

无。完全保持向后兼容。


🔗 链接


Copyright (C) 2026 Ralqlator Contributors
License: GPLv3