# 模块系统

玄铁的模块系统采用直接的引入和命名空间机制:

*   **引** (Import):引入外部模块。路径相对于当前源文件所在目录。
    ```text
    引 "./库/数学.xt"
    引 "./库/文件.xt" 予 文件
    ```
*   **予** (Alias):为引入的模块指定别名,作为访问其成员的前缀。
*   **命名空间隔离**:不同模块的同名符号通过模块前缀区分,不会冲突。
*   **编译机制**:预扫描阶段递归收集所有引入模块的符号,合并编译为单一可执行文件。循环引用被检测并报错。
*   **路径规范**:玄铁强制路径分隔符规范——**`/` 代表相对路径,`\` 代表绝对路径**(Windows 原生)。编译器自动将混用斜杠规范化:相对路径中 `\` → `/`,绝对路径中 `/` → `\`。

> 详细语法、路径解析、完整示例请参阅:[05_模块系统.md](../05_模块系统.md)

## 铁铺包管理器 (TiePM)

铁铺是玄铁语言的官方包管理器,提供铁器的搜索、安装与发布功能:

*   **安装铁器**:`铁铺 安装 <包名>` — 从远程索引下载并验证安装
*   **搜索铁器**:`铁铺 搜索 <关键词>` — 按名称和描述搜索可用包
*   **发布铁器**:`铁铺 发布` — 打包当前项目并登记到官方索引
*   **包清单**:项目根目录的 `tiepm.toml` 文件描述包的元信息(名称、版本、仓库、哈希)
*   **安全保障**:所有下载文件经过 SHA256 哈希验证,确保完整性

> 完整使用指南、命令参考、发布工作流请参阅:[07_铁铺使用指南.md](../07_铁铺使用指南.md)
>
> 架构设计与 API 规范请参阅:[铁铺设计笔记.md](../铁铺设计笔记.md)

## 项目根模式(玄铁.配置.toml)

含 `玄铁.配置.toml` 的目录即**项目根**(类似 Go 的 go.mod、Rust 的 Cargo.toml)。编译器与 LSP 均从当前文件所在目录向上逐级查找该文件来定位项目根:

*   **声明入口**:在项目根的 `玄铁.配置.toml` 中声明入口文件:
    ```toml
    [项目]
    入口 = "主.xt"
    ```
*   **裸跑编译**:项目内任意子目录执行 `xtc 铁`(不带源文件参数),即编译 `项目根\入口`。
*   **编译后立即运行**:`xtc pao <源文件>`(中文写法 `xtc 跑 <源文件>`)—— 编译产物落到缓存目录后立刻运行,退出码原样透传、临时产物跑完即清理(语义同 `go run` / `cargo run`)。`--` 之后的参数原样传给程序:`xtc pao 主.xt -- 甲 乙`。
*   **编译配置**:`[编译] 严格度 = 默认/严格/禁止`、`[编译] 忽略警告 = ["W001"]` 等同样按项目根生效(LSP 与编译器双端一致)。
*   **未声明入口时**:裸跑会明确报错并提示用法,不会静默猜测编译目标。