用途:指导使用 Hare 编程语言进行系统工具开发。Hare 强调简单、稳定、编译式,适合编写小型系统工具、CLI 工具、守护进程,以及需要显式错误处理和可审计代码库的场景。
安装与工作流:Linux/macOS 从源码构建,执行 git clone https://git.sr.ht/~sircmpwn/hare,然后 cd hare、make check、sudo make install,用 hare version 验证。Hare 无项目生成器,需手动创建目录与 hare.mod(写入 module 名称)。构建与运行命令为 hare build -o mytool、hare run .、hare test。
主要能力:标准库模块包括 fmt(格式化 I/O)、io(读写接口)、os(文件、环境、参数)、strings、bufio、encoding(JSON、hex)、net、time、mem、types。错误处理使用标签联合,? 传播错误、! 断言语境无错、match 处理分支。类型系统包含标签联合与切片(指针加长度),无隐式转换,需显式转型。C FFI 通过 @extern 声明链接 C 库,也可导出 Hare 函数给 C 使用,并在 hare.mod 中通过 require 声明库依赖。测试使用 @test 属性和 assert,hare test -v 运行。
限制:Hare 无泛型(comptime 有限),标准库较精简,平台系统调用可能缺失,需借助 @extern 调用 libc。若需要大量泛型元编程、已有庞大 C 生态胶水或 GPU/内核领域,可考虑 C 或 Zig。
常见问题:unknown type 多因缺少 import;FFI 链接错误需检查 hare.mod 中的 require 和 -l 标志;错误未处理需用 ? 或 match;UTF-8 错误用 strings::fromutf8 验证;测试未找到需为函数加 @test 属性;平台系统调用缺失可用 @extern 调用 libc。