Skip to content

Chinese++ 0.3(win64)

Latest

Choose a tag to compare

@YoloLogic YoloLogic released this 09 Oct 07:26
· 5 commits to main since this release

Chinese++ 0.3(win64,2026-10-09)

下载:下面 Assets 区块里的 Chinese++-0.3-win64.zip(约 101 MB)。

Assets 区块可能是折叠的 —— 点一下展开才能看到附件。

怎么用(三步)

  1. 解压到任意目录(路径里有中文也没关系,已实测)
  2. 双击 一键安装.cmd(只在这个文件夹里做事,不碰系统 PATH、不碰你已有的 VS Code)
  3. 想确认装好了:跑 verify.ps1 —— 它真编译、真链接、真运行,29 项全过才算能用

不需要装 Visual Studio:本包默认 bundled 模式,自带工具链基底
(开源版 MSVC STL 头 + mingw-w64 的 UCRT/Win32 头 + 我们自己的 CRT 与导入库 + app-local 的 VC++ 运行时 DLL)。
想用你机器上的 VS:powershell -NoProfile -File install.ps1 -Toolchain system。
不想联网 / 只想拿编译器:powershell -NoProfile -File install.ps1 -NoEditor

相对 0.2 的变化

  • C 库汉化做到「除硬边界外全覆盖」:26 个中文 C 包装头,中文名 362 个
    (标准::格式化输出、标准::分配内存、标准::快速排序、标准::串转最大整数…都能中文调);
    逻辑缺口 230 → 14,且这 14 个全是硬边界(cmath 的 12 个函数式宏 + 2 个 _Mbstatet 别名)。
  • 修掉一个会咬人的既有缺陷:中文复数重载被 C 轨的变参转发劫持(标准::平方根(复数) 编不过)。
  • 编译器本体更新:bin\chinese++.exe / llvm-ar.exe / llvm-rc.exe。
  • 包内自测 21 项 → 29 项(新增 5 项是逐份点名检查许可/合规文件)。
  • 常见问题.md 第一节订正:本包默认开箱即用(自带工具链基底),不再写「必须先装 Visual Studio」。
  • 补齐许可与合规(见下):新增 LICENSE(自定义条款)/ LICENSE-SCOPE.md / TRADEMARK.md,
    并把 NOTICE.txt 按 0.3 实况订正(旧版说"没有再分发微软的库",而 0.3 起带了 app-local 的
    可再分发 VC++ 运行时 DLL 与开源版 MSVC STL 头;旧版还说 compiler-rt 不含、ASan 不可用,其实已含)。

许可与再分发(重要,先看这一节)

本发行包不是单一许可,完整判定规则见包内 LICENSE-SCOPE.md:

哪一部分 许可 你能做什么
我们写的(中文关键字表 / 诊断正文表 / 中文标准库里我们写的 / 安装脚本 / 文档) 自定义条款(LICENSE) 读、学、改(自用)、用它写程序卖钱都行;不许重新打包再发布
编译器与 LLVM(bin\*.exe、lib\clang\**) Apache-2.0 with LLVM Exceptions(LICENSE.TXT) 可再分发、可商用、可再许可 —— 不受那条"禁止再发布"的限制
微软 / 第三方(lib\stl\ 开源 MSVC STL 头、lib\mingw\ 头、bin\*.dll 运行时) 各按各的许可 逐项见 NOTICE.txt;那些 DLL 是微软可再分发的运行库
  • ✅ 你用本工具链写出来的程序,版权与许可完全归你 —— 我们的许可不对编译产物附加任何条件。
  • ✅ 非营利、原封不动地整体转发官方发行包:允许(四个条件见 LICENSE 第四节)。
  • ❌ 重新打包发布 / 改名换标上架 / 捆进你的产品 / 发布你的修改版 / 拆开只取一部分:不行,需事先书面许可。
  • ❌ 名字不能用:Chinese++ / 汉语编程 的名称与图标属项目作者(见 TRADEMARK.md)。

⚠ 性质说明:这是 source-available(源码可见),不是 OSI 意义上的开源 ——
OSI 的开源定义要求允许再分发。我们如实这么写,不混淆。

这个包能编什么(实测输出)

#包含 <向量>
#包含 <C标准输入输出>

整数 主函数(){
    标准::向量<整数> 数 = {1, 2, 3, 4};
    整数 合计 = 0;
    对于 (整数 甲 : 数) { 合计 += 甲 * 甲; }
    标准::格式化输出("平方和 = %d\n", 合计);
    标准::格式化输出("元素个数 = %d\n", (整数)数.尺寸());
    返回 0;
}
chinese++ -std=c++20 平方和.cpp -o 平方和.exe
.\平方和.exe
# 平方和 = 30
# 元素个数 = 4

(不加任何 -I / -isystem;#包含 <向量>、#include <vector> 都直接可用。)

校验与合规

  • MANIFEST.txt 记着包里每个文件的 SHA256,verify.ps1 会核对(含 5 份许可/合规文件逐份点名)。
  • 这是修改过的 LLVM/Clang,不是上游原版:改动声明见 NOTICE.txt(依据 Apache-2.0 第 4(b) 条)。
  • 包内第三方来源与许可逐项写在 NOTICE.txt。

反馈请带上

MANIFEST.txt 前两行(版本 + built 时间)+ chinese++.exe 那一行的 SHA256 + 你的 Windows 版本

  • bundled 还是 system 模式(看 bin\toolchain.txt)。