# BT.info

## 功能

返回当前 BT 运行时信息快照。该快照包含解释器版本、平台、二进制文件、启动工作目录和并行线程数等基础信息。

## 语法

```bt
BT.info()
```

## 参数

| 参数 | 类型 | 必填 | 默认值 | 说明 |
| ------ | ------ | ------ | ------ | ------ |
| 无 | - | 否 | 无 | 不需要参数。 |

## 返回值

| 类型 | 说明 |
| ------ | ------ |
| Object | 返回运行时信息对象。字段见下方“返回对象字段”。 |

## 返回对象字段

`BT.info()` 的字段在首次调用时生成并缓存，后续调用返回同一份快照的克隆。

| 字段 | 类型 | 必定存在 | 说明 |
| ------ | ------ | ------ | ------ |
| version | String | 是 | 当前 BT 版本，来自构建时的 Cargo package version。 |
| name | String | 是 | 当前二进制的逻辑名称。CLI 构建通常为 `bt`，桌面 App 构建为 `bt_app`。 |
| os | String | 是 | 当前目标操作系统名称，例如 `windows`、`linux`、`macos`。 |
| arch | String | 是 | 当前 CPU 架构名称，例如 `x86_64`、`aarch64`。 |
| family | String | 是 | 当前操作系统家族，例如 `windows`、`unix`、`wasm`。 |
| debug | Bool | 是 | 当前二进制是否为 debug 构建。`true` 表示启用了 debug assertions。 |
| exe_name | String | 是 | 当前实际运行文件名，包含扩展名；用户重命名 exe 后会返回重命名后的文件名。读取失败时为空字符串。 |
| exe_ext | String | 是 | 当前平台可执行文件扩展名，带前导点。Windows 为 `.exe`；无扩展名的平台返回空字符串。 |
| lib_ext | String | 是 | 当前平台动态库扩展名，带前导点。例如 Windows 为 `.dll`，Linux 为 `.so`，macOS 为 `.dylib`。 |
| pointer_width | Int | 是 | 当前目标平台指针宽度。常见值为 `64` 或 `32`。 |
| threads | Int | 是 | 当前系统可用并行线程数。读取失败时返回 `1`。 |
| cwd | String | 是 | BT 进程启动时的工作目录快照，不是实时工作目录，也不是 VM 项目根目录。读取失败时为空字符串。 |
| exe_path | String | 是 | 当前实际运行文件完整路径。读取失败时为空字符串。 |

## 示例

```bt
info = BT.info()
result = info.exe_name

// 输出示例：bt_app.exe
print result
```

## 注意事项

- BT.info() 首次调用时生成快照，后续调用从缓存克隆返回。
- `cwd` 是 BT 进程启动时的工作目录快照；如需读取当前 VM 的项目根目录，请使用 `cur_root()`。
- bt_app Bundle 模式下，`cur_root()` 可能是资源临时展开目录，例如系统 Temp 下的 `bt-app-vm-*`；`BT.info().cwd` 仍然表示进程启动工作目录。
- 如需获取当前 exe 所在目录，可使用 `path(BT.info().exe_path).dirname()`。
