平台支持总览
玄铁语言最初在 Windows 上开发并完整运行,macOS / Linux 的适配由社区贡献推进。各平台状态:
| 平台 | 架构 | 状态 |
|---|---|---|
| Windows | x86_64 / arm64 | 主力平台,完整支持 |
| macOS | arm64(Apple Silicon) | 适配完成:编译器平台化、渲染库字体通道、自举验证通过 |
| macOS | Intel | 未适配(社区无计划) |
| Linux | ARM64(aarch64) | 适配完成:自举链验证通过(Debian) |
| Linux | x86_64 | 以官方发布为准(社区主测 ARM64) |
平台适配细节
Windows:作者主平台。渲染桥走 Win32 / GDI,链接参数为 Windows 库。
macOS arm64:已适配编译器链接参数(clang / 系统框架 Cocoa、OpenGL、IOKit、CoreVideo)、LLVM 目标三元组(arm64-apple-darwin)、POSIX 路径、渲染库字体通道(Apple TTC 中文渲染)、关窗语义对齐。自举链在 Apple Silicon 上跑通。
Linux ARM64:在 Debian aarch64 上完成自举链验证;铁铺等 CLI 已跨平台适配(POSIX 命令分支)。
已知问题清单
以下为社区实测发现的问题与状态(随版本更新可能变化):
| # | 问题 | 影响 | 状态 |
|---|---|---|---|
| 1 | 保留字「结果」作变量名 | XTC 曾静默通过但行为错误 | 已修复(与 GSC 一致拦截) |
| 2 | 保留字「否则」未实现 | 写 否则 编译报「未知标识符」,需用 否 | 未实现(issue 已挂) |
| 3 | 渲染库不支持 JPG / TGA 图片 | 加载报「Data format not supported」 | 未修复,绕行:转 PNG |
| 4 | 纹理解码失败返回非 0 句柄(伪成功) | 调用方误判加载成功 | 已知,处理中 |
| 5 | 字体加载必须在窗口初始化之后 | 开窗前加载字体画不出中文 | 语义行为,按顺序调用即可 |
| 6 | 字体池上限(实测 8 个句柄) | 超限返回空句柄 | 正常限制 |
| 7 | macOS 系统字体通道曾不可用 | 中文显示方块 / 问号 | 已修复(Apple TTC 重组) |
| 8 | macOS 关窗语义(请求关闭 = 立即关窗) | 重复调关闭窗口会崩溃 | 已定位,规避:请求关闭后勿再调关闭窗口 |
| 9 | 求 ()(HTTP 内建)darwin 编译版 TLS 握手失败 | 网络请求不可用 | 独立问题,未修复 |
| 10 | 铁铺 CLI 曾仅支持 Windows | macOS / Linux 不可用 | 已修复(跨平台适配) |
| 11 | macOS 渲染库链接需手动指定框架 | xtc 链接阶段默认走 MinGW | 工具链有抓中间产物 + 手动链接绕行 |
| 12 | 顶层变量初始化会被提升到模块最前 | 顶层加载字体等会在窗口初始化前执行 | 语义行为,规避:放入主循环内 |
使用建议(规避已知坑)
图片素材统一转 PNG(渲染库稳定支持)。
字体加载放在窗口初始化之后;顶层只声明不调用渲染 API。
macOS 渲染程序链接时手动附加系统框架;工具链侧用中间产物 + clang 手动链接。
条件分支用
否(不要写未实现的否则)。变量名避开保留字(结果 等),或对照关键字表命名。
参考
官方 GitHub 仓库:https://github.com/MARKJY-China/XuanTie-Lang
官方文档:仓库 GUIDE/ 目录(版本日志 versionLog.md、渲染库编程指南)