[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-anthropics--claudes-c-compiler":3,"tool-anthropics--claudes-c-compiler":64},[4,17,27,35,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",144730,2,"2026-04-07T23:26:32",[13,14,15],"开发框架","Agent","语言模型","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,3,"2026-04-06T11:19:32",[15,26,14,13],"图像",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":10,"last_commit_at":33,"category_tags":34,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85013,"2026-04-06T11:09:19",[26,43,44,45,14,46,15,13,47],"数据工具","视频","插件","其他","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":23,"last_commit_at":54,"category_tags":55,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[14,26,13,15,46],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":23,"last_commit_at":62,"category_tags":63,"status":16},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",75097,"2026-04-07T22:51:14",[15,26,13,46],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":80,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":96,"forks":97,"last_commit_at":98,"license":99,"difficulty_score":100,"env_os":101,"env_gpu":102,"env_ram":102,"env_deps":103,"category_tags":111,"github_topics":80,"view_count":10,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":112,"updated_at":113,"faqs":114,"releases":115},5299,"anthropics\u002Fclaudes-c-compiler","claudes-c-compiler","Claude Opus 4.6 wrote a dependency-free C compiler in Rust, with backends targeting x86 (64- and 32-bit), ARM, and RISC-V, capable of compiling a booting Linux kernel.","claudes-c-compiler 是一款完全由 AI（Claude Opus 4.6）从零编写的 C 语言编译器，采用 Rust 语言开发。它无需依赖任何外部工具链，内置了前端解析、优化器、代码生成器、汇编器及链接器等全套组件，能够直接生成可在 Linux 上运行的 ELF 可执行文件，甚至成功编译了可启动的 Linux 内核。\n\n该项目主要解决了传统编译器架构复杂、依赖众多的问题，展示了纯 AI 自主构建底层系统软件的能力。其核心亮点在于“零依赖”设计与多架构支持，原生覆盖 x86-64、32 位 x86、ARM64 及 RISC-V 64 四大主流平台，并兼容绝大多数 GCC 命令行参数，可作为构建系统中的 GCC 替代品直接使用。\n\nclaudes-c-compiler 非常适合编译器开发者、系统编程研究人员以及对 AI 代码生成能力感兴趣的技术探索者。对于希望深入理解编译器内部原理或验证大模型在复杂系统工程中表现的专业人士，这是一个极具参考价值的开源案例。需要注意的是，由于代码完全由 AI 生成且未经过严格的人工正确性验证，目前不建议将其用于生产环境，更适合作为技术研究与实","claudes-c-compiler 是一款完全由 AI（Claude Opus 4.6）从零编写的 C 语言编译器，采用 Rust 语言开发。它无需依赖任何外部工具链，内置了前端解析、优化器、代码生成器、汇编器及链接器等全套组件，能够直接生成可在 Linux 上运行的 ELF 可执行文件，甚至成功编译了可启动的 Linux 内核。\n\n该项目主要解决了传统编译器架构复杂、依赖众多的问题，展示了纯 AI 自主构建底层系统软件的能力。其核心亮点在于“零依赖”设计与多架构支持，原生覆盖 x86-64、32 位 x86、ARM64 及 RISC-V 64 四大主流平台，并兼容绝大多数 GCC 命令行参数，可作为构建系统中的 GCC 替代品直接使用。\n\nclaudes-c-compiler 非常适合编译器开发者、系统编程研究人员以及对 AI 代码生成能力感兴趣的技术探索者。对于希望深入理解编译器内部原理或验证大模型在复杂系统工程中表现的专业人士，这是一个极具参考价值的开源案例。需要注意的是，由于代码完全由 AI 生成且未经过严格的人工正确性验证，目前不建议将其用于生产环境，更适合作为技术研究与实验的素材。","# CCC — Claude's C Compiler\n\nA C compiler written entirely from scratch in Rust, targeting x86-64, i686,\nAArch64, and RISC-V 64. Zero compiler-specific dependencies — the frontend,\nSSA-based IR, optimizer, code generator, peephole optimizers, assembler,\nlinker, and DWARF debug info generation are all implemented from scratch.\nClaude's C Compiler produces ELF executables without any external toolchain.\n\n> Note: With the exception of this one paragraph that was written by a human, 100% of the code and documentation in this repository was written by Claude Opus 4.6. A human guided some of this process by writing test cases that Claude was told to pass, but never interactively pair-programmed with Claude to debug or to provide feedback on code quality. As a result, I do not recommend you use this code! None of it has been validated for correctness. Claude wrote this exclusively on a Linux host; it probably will not work on MacOS\u002FWindows — neither I nor Claude have tried. The docs may be wrong and make claims that are false. See [our blog post](https:\u002F\u002Fanthropic.com\u002Fengineering\u002Fbuilding-c-compiler) for more detail.\n\n## Prerequisites\n\n- **Rust** (stable, 2021 edition) — install via [rustup](https:\u002F\u002Frustup.rs\u002F)\n- **Linux host** — the compiler targets Linux ELF executables and relies on\n  Linux system headers \u002F C runtime libraries (glibc or musl) being installed\n  on the host\n- For cross-compilation targets (ARM, RISC-V, i686), the corresponding\n  cross-compilation sysroots should be installed (e.g.,\n  `aarch64-linux-gnu-gcc`, `riscv64-linux-gnu-gcc`)\n\n## Building\n\n```bash\ncargo build --release\n```\n\nThis produces five binaries in `target\u002Frelease\u002F`, all compiled from the same\nsource. The target architecture is selected by the binary name at runtime:\n\n| Binary | Target |\n|--------|--------|\n| `ccc` | x86-64 (default) |\n| `ccc-x86` | x86-64 |\n| `ccc-arm` | AArch64 |\n| `ccc-riscv` | RISC-V 64 |\n| `ccc-i686` | i686 (32-bit x86) |\n\n## Quick Start\n\nCompile and run a simple C program:\n\n```bash\n# Write a test program\ncat > hello.c \u003C\u003C 'EOF'\n#include \u003Cstdio.h>\nint main(void) {\n    printf(\"Hello from CCC!\\n\");\n    return 0;\n}\nEOF\n\n# Compile and run (x86-64)\n.\u002Ftarget\u002Frelease\u002Fccc -o hello hello.c\n.\u002Fhello\n\n# Cross-compile for AArch64 and run under QEMU\n.\u002Ftarget\u002Frelease\u002Fccc-arm -o hello-arm hello.c\nqemu-aarch64 -L \u002Fusr\u002Faarch64-linux-gnu .\u002Fhello-arm\n```\n\nCCC works as a drop-in GCC replacement. Point your build system at it:\n\n```bash\n# Build a project with make\nmake CC=\u002Fpath\u002Fto\u002Fccc-x86\n\n# Build a project with CMake\ncmake -DCMAKE_C_COMPILER=\u002Fpath\u002Fto\u002Fccc-x86 ..\n\n# Build a project with configure scripts\n.\u002Fconfigure CC=\u002Fpath\u002Fto\u002Fccc-x86\n```\n\n## Usage\n\n```bash\n# Compile and link\nccc -o output input.c                # x86-64\nccc-arm -o output input.c            # AArch64\nccc-riscv -o output input.c          # RISC-V 64\nccc-i686 -o output input.c           # i686\n\n# GCC-compatible flags\nccc -S input.c                       # Emit assembly\nccc -c input.c                       # Compile to object file\nccc -E input.c                       # Preprocess only\nccc -O2 -o output input.c            # Optimize (accepts -O0 through -O3, -Os, -Oz)\nccc -g -o output input.c             # DWARF debug info\nccc -DFOO=1 -Iinclude\u002F input.c       # Define macros, add include paths\nccc -Werror -Wall input.c            # Warning control\nccc -fPIC -shared -o lib.so lib.c    # Position-independent code\nccc -x c -E -                        # Read from stdin\n\n# Build system integration (reports as GCC 14.2.0 for compatibility)\nccc -dumpmachine     # x86_64-linux-gnu \u002F aarch64-linux-gnu \u002F riscv64-linux-gnu \u002F i686-linux-gnu\nccc -dumpversion     # 14\n```\n\nThe compiler accepts most GCC flags. Unrecognized flags (e.g., architecture-\nspecific `-m` flags, unknown `-f` flags) are silently ignored so `ccc` can\nserve as a drop-in GCC replacement in build systems.\n\n### Assembler and Linker Modes\n\nBy default, the compiler uses its **builtin assembler and linker** for all\nfour architectures. No external toolchain is required. You can verify this\nwith `--version`, which shows `Backend: standalone` when using the builtin\ntools.\n\nTo build with optional GCC fallback support (e.g., for debugging), enable\nCargo features at compile time:\n\n```bash\n# Build with GCC assembler and linker fallback\ncargo build --release --features gcc_assembler,gcc_linker\n\n# Build with GCC fallback for -m16 boot code only\ncargo build --release --features gcc_m16\n```\n\n| Feature | Description |\n|---------|-------------|\n| `gcc_assembler` | Use GCC as the assembler instead of the builtin |\n| `gcc_linker` | Use GCC as the linker instead of the builtin |\n| `gcc_m16` | Use GCC for `-m16` (16-bit real mode boot code) |\n\nWhen compiled with GCC fallback features enabled, `--version` shows which\ncomponents use GCC (e.g., `Backend: gcc_assembler, gcc_linker`).\n\n## Status\n\nThe compiler can build real-world C codebases across all four architectures,\nincluding the Linux kernel. Projects that compile and pass their test suites\ninclude PostgreSQL (all 237 regression tests), SQLite, QuickJS, zlib, Lua,\nlibsodium, libpng, jq, libjpeg-turbo, mbedTLS, libuv, Redis, libffi, musl,\nTCC, and DOOM — all using the fully standalone assembler and linker with no\nexternal toolchain. Over 150 additional projects have also been built\nsuccessfully, including FFmpeg (all 7331 FATE checkasm tests on x86-64 and\nAArch64), GNU coreutils, Busybox, CPython, QEMU, and LuaJIT.\n\n### Known Limitations\n\n- **Optimization levels**: All levels (`-O0` through `-O3`, `-Os`, `-Oz`) run\n  the same optimization pipeline. Separate tiers will be added as the compiler\n  matures.\n- **Long double**: x86 80-bit extended precision is supported via x87 FPU\n  instructions. On ARM\u002FRISC-V, `long double` is IEEE binary128 via\n  compiler-rt\u002Flibgcc soft-float libcalls.\n- **Complex numbers**: `_Complex` arithmetic has some edge-case failures.\n- **GNU extensions**: Partial `__attribute__` support. NEON intrinsics are\n  partially implemented (core 128-bit operations work).\n- **Atomics**: `_Atomic` is parsed but treated as the underlying type (the\n  qualifier is not tracked through the type system).\n\n## Testing\n\nThe compiler has two kinds of tests:\n\n**Unit tests** (in-source `#[test]` functions for individual passes and modules):\n\n```bash\ncargo test --release\n```\n\n**Integration tests** (end-to-end compilation tests in `tests\u002F`). Each test is\na directory containing a `main.c` source file and expected output files:\n\n```\ntests\u002F\n  some-test-name\u002F\n    main.c              # C source to compile\n    expected.stdout     # Expected stdout (if any)\n    expected.ret        # Expected exit code (if any)\n    expected.skip.arm   # Skip marker for specific architectures (optional)\n```\n\nTests are run by compiling `main.c` with `ccc`, executing the resulting binary,\nand comparing stdout and the exit code against the expected files.\n\n## Environment Variables\n\n| Variable | Purpose |\n|----------|---------|\n| `CCC_TIME_PHASES` | Print per-phase compilation timing to stderr |\n| `CCC_TIME_PASSES` | Print per-pass optimization timing and change counts to stderr |\n| `CCC_DISABLE_PASSES` | Disable specific optimization passes (comma-separated, or `all`) |\n| `CCC_KEEP_ASM` | Preserve intermediate `.s` files next to output |\n| `CCC_ASM_DEBUG` | Dump preprocessed assembly to `\u002Ftmp\u002Fasm_debug_\u003Cname>.s` |\n\n## Project Organization\n\n```\nsrc\u002F                Compiler source code (Rust)\n  frontend\u002F         C source -> typed AST (preprocessor, lexer, parser, sema)\n  ir\u002F               Target-independent SSA IR (lowering, mem2reg)\n  passes\u002F           SSA optimization passes (15 passes + shared loop analysis)\n  backend\u002F          IR -> assembly -> machine code -> ELF (4 architectures)\n  common\u002F           Shared types, symbol table, diagnostics\n  driver\u002F           CLI parsing, pipeline orchestration\n\ninclude\u002F            Bundled C headers (x86 SIMD: SSE through AVX-512, AES-NI, FMA, SHA, BMI2; ARM NEON)\ntests\u002F              Compiler tests (each test is a directory with main.c and expected output)\nideas\u002F              Future work proposals and improvement notes\n```\n\nEach `src\u002F` subdirectory has its own `README.md` with detailed design\ndocumentation. For the full architecture, compilation pipeline data flow,\nand key design decisions, see [DESIGN_DOC.md](DESIGN_DOC.md).\n","# CCC — Claude 的 C 语言编译器\n\n一个完全用 Rust 从头编写的 C 语言编译器，目标架构包括 x86-64、i686、AArch64 和 RISC-V 64。该编译器没有任何特定于编译器的依赖——前端、基于 SSA 的中间表示、优化器、代码生成器、窥孔优化器、汇编器、链接器以及 DWARF 调试信息生成均是从零开始实现的。Claude 的 C 编译器无需任何外部工具链即可生成 ELF 可执行文件。\n\n> 注意：除本段由人类撰写外，此仓库中 100% 的代码和文档均由 Claude Opus 4.6 编写。虽然有人类编写了测试用例并要求 Claude 通过这些测试，但并未与 Claude 进行交互式的结对编程来调试或提供代码质量方面的反馈。因此，我不建议您使用这些代码！它们尚未经过正确性验证。Claude 完全在 Linux 主机上编写了这些代码；它可能无法在 MacOS\u002FWindows 上运行——我和 Claude 都未曾尝试过。文档可能存在错误，并做出不实声明。更多详情请参阅[我们的博客文章](https:\u002F\u002Fanthropic.com\u002Fengineering\u002Fbuilding-c-compiler)。\n\n## 前置条件\n\n- **Rust**（稳定版，2021 年版）——可通过 [rustup](https:\u002F\u002Frustup.rs\u002F) 安装\n- **Linux 主机**——编译器的目标是生成 Linux ELF 可执行文件，并依赖于主机上已安装的 Linux 系统头文件\u002FC 运行时库（glibc 或 musl）\n- 对于交叉编译目标（ARM、RISC-V、i686），应安装相应的交叉编译 sysroot（例如，`aarch64-linux-gnu-gcc`、`riscv64-linux-gnu-gcc`）\n\n## 构建\n\n```bash\ncargo build --release\n```\n\n这将在 `target\u002Frelease\u002F` 目录下生成五个二进制文件，它们均来自同一份源代码。目标架构由运行时的二进制文件名决定：\n\n| 二进制文件 | 目标架构 |\n|------------|----------|\n| `ccc`      | x86-64（默认） |\n| `ccc-x86`  | x86-64   |\n| `ccc-arm`  | AArch64  |\n| `ccc-riscv`| RISC-V 64|\n| `ccc-i686` | i686（32 位 x86）|\n\n## 快速入门\n\n编译并运行一个简单的 C 程序：\n\n```bash\n# 编写一个测试程序\ncat > hello.c \u003C\u003C 'EOF'\n#include \u003Cstdio.h>\nint main(void) {\n    printf(\"Hello from CCC!\\n\");\n    return 0;\n}\nEOF\n\n# 编译并运行（x86-64）\n.\u002Ftarget\u002Frelease\u002Fccc -o hello hello.c\n.\u002Fhello\n\n# 交叉编译为 AArch64 并在 QEMU 下运行\n.\u002Ftarget\u002Frelease\u002Fccc-arm -o hello-arm hello.c\nqemu-aarch64 -L \u002Fusr\u002Faarch64-linux-gnu .\u002Fhello-arm\n```\n\nCCC 可以作为 GCC 的直接替代品。只需将其指向您的构建系统即可：\n\n```bash\n# 使用 make 构建项目\nmake CC=\u002Fpath\u002Fto\u002Fccc-x86\n\n# 使用 CMake 构建项目\ncmake -DCMAKE_C_COMPILER=\u002Fpath\u002Fto\u002Fccc-x86 ..\n\n# 使用 configure 脚本构建项目\n.\u002Fconfigure CC=\u002Fpath\u002Fto\u002Fccc-x86\n```\n\n## 使用方法\n\n```bash\n# 编译并链接\nccc -o output input.c                # x86-64\nccc-arm -o output input.c            # AArch64\nccc-riscv -o output input.c          # RISC-V 64\nccc-i686 -o output input.c           # i686\n\n# 与 GCC 兼容的选项\nccc -S input.c                       # 生成汇编代码\nccc -c input.c                       # 编译为目标文件\nccc -E input.c                       # 仅预处理\nccc -O2 -o output input.c            # 优化（接受 -O0 至 -O3、-Os、-Oz）\nccc -g -o output input.c             # 生成 DWARF 调试信息\nccc -DFOO=1 -Iinclude\u002F input.c       # 定义宏、添加包含路径\nccc -Werror -Wall input.c            # 控制警告\nccc -fPIC -shared -o lib.so lib.c    # 生成位置无关代码\nccc -x c -E -                        # 从标准输入读取\n\n# 构建系统集成（报告为 GCC 14.2.0 以保持兼容性）\nccc -dumpmachine     # x86_64-linux-gnu \u002F aarch64-linux-gnu \u002F riscv64-linux-gnu \u002F i686-linux-gnu\nccc -dumpversion     # 14\n```\n\n该编译器接受大多数 GCC 选项。对于未识别的选项（如特定架构的 `-m` 选项、未知的 `-f` 选项），会静默忽略，以便 `ccc` 可以在构建系统中作为 GCC 的直接替代品使用。\n\n### 汇编器和链接器模式\n\n默认情况下，编译器对所有四个架构都使用其**内置的汇编器和链接器**。无需任何外部工具链。您可以通过 `--version` 命令进行验证，当使用内置工具时，会显示 `Backend: standalone`。\n\n若要启用可选的 GCC 备用支持（例如用于调试），可在编译时启用 Cargo 特性：\n\n```bash\n# 启用 GCC 汇编器和链接器备用\ncargo build --release --features gcc_assembler,gcc_linker\n\n# 仅针对 `-m16` 引导代码启用 GCC 备用\ncargo build --release --features gcc_m16\n```\n\n| 特性         | 描述                           |\n|--------------|--------------------------------|\n| `gcc_assembler` | 使用 GCC 作为汇编器，而非内置汇编器 |\n| `gcc_linker`   | 使用 GCC 作为链接器，而非内置链接器 |\n| `gcc_m16`      | 对 `-m16`（16 位实模式引导代码）使用 GCC |\n\n当启用 GCC 备用特性进行编译时，`--version` 将显示哪些组件使用了 GCC（例如，`Backend: gcc_assembler, gcc_linker`）。\n\n## 状态\n\n该编译器可以构建涵盖所有四个架构的真实世界 C 代码库，包括 Linux 内核。能够成功编译并通过测试套件的项目包括 PostgreSQL（全部 237 个回归测试）、SQLite、QuickJS、zlib、Lua、libsodium、libpng、jq、libjpeg-turbo、mbedTLS、libuv、Redis、libffi、musl、TCC 和 DOOM——所有这些项目均使用完全独立的汇编器和链接器，无需任何外部工具链。此外，还有超过 150 个其他项目也成功构建，其中包括 FFmpeg（x86-64 和 AArch64 上的所有 7331 个 FATE checkasm 测试）、GNU coreutils、Busybox、CPython、QEMU 和 LuaJIT。\n\n### 已知限制\n\n- **优化级别**：所有级别（`-O0` 至 `-O3`、`-Os`、`-Oz`）都运行相同的优化流水线。随着编译器的成熟，将逐步引入不同的优化层级。\n- **long double**：x86 的 80 位扩展精度通过 x87 FPU 指令支持。在 ARM\u002FRISC-V 上，`long double` 通过 compiler-rt\u002Flibgcc 的软浮点库调用实现 IEEE binary128 格式。\n- **复数**：`_Complex` 运算在某些边缘情况下会出现问题。\n- **GNU 扩展**：部分支持 `__attribute__`。NEON 内建函数已部分实现（核心的 128 位操作可用）。\n- **原子操作**：`_Atomic` 被解析，但被视为基础类型（限定符不会在类型系统中被跟踪）。\n\n## 测试\n\n该编译器有两种类型的测试：\n\n**单元测试**（源代码中的 `#[test]` 函数，用于单个阶段和模块的测试）：\n\n```bash\ncargo test --release\n```\n\n**集成测试**（`tests\u002F` 中的端到端编译测试）。每个测试都是一个目录，包含一个 `main.c` 源文件和预期的输出文件：\n\n```\ntests\u002F\n  some-test-name\u002F\n    main.c              # 要编译的 C 源文件\n    expected.stdout     # 预期的标准输出（如有）\n    expected.ret        # 预期的退出码（如有）\n    expected.skip.arm   # 针对特定架构的跳过标记（可选）\n```\n\n测试过程是：使用 `ccc` 编译 `main.c`，执行生成的二进制文件，并将标准输出和退出码与预期文件进行比较。\n\n## 环境变量\n\n| 变量 | 用途 |\n|----------|---------|\n| `CCC_TIME_PHASES` | 将各编译阶段的计时信息输出到标准错误流 |\n| `CCC_TIME_PASSES` | 将各优化遍的计时信息及变化统计数输出到标准错误流 |\n| `CCC_DISABLE_PASSES` | 禁用特定的优化遍（用逗号分隔，或使用 `all` 表示全部） |\n| `CCC_KEEP_ASM` | 在输出文件旁保留中间的 `.s` 文件 |\n| `CCC_ASM_DEBUG` | 将预处理后的汇编代码转储到 `\u002Ftmp\u002Fasm_debug_\u003Cname>.s` |\n\n## 项目结构\n\n```\nsrc\u002F                编译器源代码（Rust）\n  frontend\u002F         C 源码 -> 类型化 AST（预处理器、词法分析器、语法分析器、语义分析）\n  ir\u002F               与目标无关的 SSA IR（下推、内存到寄存器的转换）\n  passes\u002F           SSA 优化遍（15 个优化遍 + 共享的循环分析）\n  backend\u002F          IR -> 汇编 -> 机器码 -> ELF（支持 4 种架构）\n  common\u002F           共享的类型、符号表、诊断信息\n  driver\u002F           CLI 解析、编译流水线调度\n\ninclude\u002F            打包的 C 头文件（x86 SIMD：SSE 至 AVX-512、AES-NI、FMA、SHA、BMI2；ARM NEON）\ntests\u002F              编译器测试（每个测试是一个目录，包含 main.c 和预期输出）\nideas\u002F              未来工作提案及改进建议\n```\n\n`src\u002F` 下的每个子目录都有自己的 `README.md`，其中包含详细的设计文档。有关完整的架构、编译流水线数据流以及关键设计决策，请参阅 [DESIGN_DOC.md](DESIGN_DOC.md)。","# CCC (Claude's C Compiler) 快速上手指南\n\nCCC 是一个完全用 Rust 从零编写的 C 编译器，支持 x86-64、i686、AArch64 和 RISC-V 64 架构。它不依赖任何外部工具链（内置汇编器和链接器），可直接生成 ELF 可执行文件。\n\n> **⚠️ 重要提示**：本项目代码主要由 AI 生成，尚未经过严格的生产环境验证，可能存在正确性问题。**请勿将其用于生产环境**。目前仅在 Linux 主机上测试通过，不支持 macOS 或 Windows。\n\n## 环境准备\n\n在开始之前，请确保满足以下系统要求：\n\n*   **操作系统**：必须使用 **Linux** 主机（依赖 Linux 系统头文件和 C 运行时库，如 glibc 或 musl）。\n*   **Rust 工具链**：需要安装稳定版（stable）Rust (2021 edition)。\n    *   国内开发者推荐使用官方安装脚本的镜像加速方式，或直接使用 `rustup`：\n        ```bash\n        curl --proto '=https' --tlsv1.2 -sSf https:\u002F\u002Fsh.rustup.rs | sh\n        # 安装完成后重启终端或运行 source $HOME\u002F.cargo\u002Fenv\n        ```\n*   **交叉编译支持（可选）**：\n    *   若需编译 ARM (AArch64)、RISC-V 或 32 位 (i686) 程序，需安装对应的交叉编译 sysroot（例如 `aarch64-linux-gnu-gcc` 或 `riscv64-linux-gnu-gcc`）。\n\n## 安装步骤\n\n克隆项目仓库并使用 Cargo 构建发布版本：\n\n```bash\n# 克隆仓库\ngit clone \u003Crepository-url>\ncd claudes-c-compiler\n\n# 构建发布版本\ncargo build --release\n```\n\n构建完成后，可在 `target\u002Frelease\u002F` 目录下找到针对不同架构的二进制文件：\n\n| 二进制文件名 | 目标架构 |\n| :--- | :--- |\n| `ccc` | x86-64 (默认) |\n| `ccc-x86` | x86-64 |\n| `ccc-arm` | AArch64 |\n| `ccc-riscv` | RISC-V 64 |\n| `ccc-i686` | i686 (32-bit x86) |\n\n## 基本使用\n\nCCC 旨在作为 GCC 的替代品，兼容大多数 GCC 命令行参数。\n\n### 1. 编译并运行简单程序\n\n创建一个测试文件 `hello.c`：\n\n```bash\ncat > hello.c \u003C\u003C 'EOF'\n#include \u003Cstdio.h>\nint main(void) {\n    printf(\"Hello from CCC!\\n\");\n    return 0;\n}\nEOF\n```\n\n使用默认架构 (x86-64) 进行编译并运行：\n\n```bash\n.\u002Ftarget\u002Frelease\u002Fccc -o hello hello.c\n.\u002Fhello\n```\n\n### 2. 交叉编译示例\n\n编译为 AArch64 架构并在 QEMU 中运行：\n\n```bash\n.\u002Ftarget\u002Frelease\u002Fccc-arm -o hello-arm hello.c\nqemu-aarch64 -L \u002Fusr\u002Faarch64-linux-gnu .\u002Fhello-arm\n```\n\n### 3. 集成到构建系统\n\n你可以将 CCC 指定为构建系统的 C 编译器：\n\n**Make:**\n```bash\nmake CC=\u002Fpath\u002Fto\u002Fccc-x86\n```\n\n**CMake:**\n```bash\ncmake -DCMAKE_C_COMPILER=\u002Fpath\u002Fto\u002Fccc-x86 ..\n```\n\n**Configure 脚本:**\n```bash\n.\u002Fconfigure CC=\u002Fpath\u002Fto\u002Fccc-x86\n```\n\n### 常用命令选项\n\nCCC 支持常见的 GCC 风格标志：\n\n```bash\nccc -S input.c             # 仅输出汇编代码\nccc -c input.c             # 编译为目标文件 (.o)\nccc -E input.c             # 仅预处理\nccc -O2 -o output input.c  # 开启优化 (-O0 到 -O3, -Os, -Oz)\nccc -g -o output input.c   # 生成 DWARF 调试信息\nccc -Wall -Werror input.c  # 警告控制\nccc -fPIC -shared -o lib.so lib.c # 生成位置无关代码 (共享库)\n```\n\n未识别的标志（如特定的 `-m` 或未知的 `-f` 标志）会被静默忽略，以确保与现有构建系统的兼容性。","某嵌入式系统团队需要在 x86、ARM 和 RISC-V 三种架构上验证一款新操作系统的内核引导代码，但面临跨平台编译环境配置繁琐的难题。\n\n### 没有 claudes-c-compiler 时\n- **工具链依赖沉重**：必须为每种目标架构单独安装庞大的 GCC 交叉编译工具链及对应的 sysroot，占用大量磁盘空间且版本管理混乱。\n- **构建流程割裂**：编译、汇编和链接需要调用不同的外部程序，一旦某个环节报错，排查是编译器前端问题还是后端链接器问题极其耗时。\n- **自研组件集成难**：若想在编译流程中插入自定义的优化逻辑或调试信息生成，必须修改复杂的 GCC 源码或编写独立的插件，门槛极高。\n- **环境一致性差**：开发机、CI 服务器和测试板卡之间的编译器行为细微差异，常导致“在我机器上能跑”的诡异 Bug。\n\n### 使用 claudes-c-compiler 后\n- **零依赖部署**：只需一个 Rust 编译出的二进制文件（如 `ccc-arm`），即可直接生成目标架构的 ELF 可执行文件，无需安装任何外部工具链。\n- **全链路一体化**：从 C 源码预处理、IR 优化到最终链接成可执行文件，全部由 claudes-c-compiler 内部独立完成，报错信息统一且定位精准。\n- **无缝替换现有流程**：凭借对 GCC 标志的高度兼容，团队仅需将 Makefile 中的 `CC` 变量指向 claudes-c-compiler，即可立即在三种架构上并行构建内核。\n- **纯净可控的实验场**：由于代码完全由 AI 从零手写且无历史包袱，研究人员可轻松阅读源码甚至修改其 SSA 优化器，以验证特定的编译器理论。\n\nclaudes-c-compiler 通过提供单一、独立且多架构支持的编译解决方案，将跨平台内核开发的環境搭建时间从数天缩短至几分钟。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fanthropics_claudes-c-compiler_b87f42cb.png","anthropics","Anthropic","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fanthropics_1ed37989.png","",null,"https:\u002F\u002Fanthropic.com","https:\u002F\u002Fgithub.com\u002Fanthropics",[84,88,92],{"name":85,"color":86,"percentage":87},"Rust","#dea584",96.1,{"name":89,"color":90,"percentage":91},"C","#555555",3.8,{"name":93,"color":94,"percentage":95},"Shell","#89e051",0,2612,207,"2026-04-07T17:32:37","CC0-1.0",4,"Linux","未说明",{"notes":104,"python":105,"dependencies":106},"该工具是用 Rust 从头编写的 C 编译器，仅在 Linux 主机上经过测试和验证，明确不建议在 macOS 或 Windows 上使用。它不依赖外部工具链即可生成 ELF 可执行文件（内置汇编器和链接器），但在进行 ARM、RISC-V 或 i686 交叉编译时，需要安装对应的交叉编译 sysroot。代码由 AI 生成，未经过充分的有效性验证，生产环境慎用。","不需要",[107,108,109,110],"Rust (stable, 2021 edition)","glibc 或 musl (C 运行时库)","aarch64-linux-gnu-gcc (可选，用于 ARM 交叉编译 sysroot)","riscv64-linux-gnu-gcc (可选，用于 RISC-V 交叉编译 sysroot)",[15,46],"2026-03-27T02:49:30.150509","2026-04-08T10:16:33.480779",[],[]]