# arocc **Repository Path**: test-ccannew/arocc ## Basic Information - **Project Name**: arocc - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-31 - **Last Updated**: 2026-02-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Aro # Aro A C compiler with the goal of providing fast compilation and low memory usage with good diagnostics. The project intends to support standard C and all common extensions: | Version | status | | ---------------- | ---------------------------------------------------------------------------------------------------------- | | C23 | Complete excluding [Add IEEE 754 interchange and extended types](https://github.com/Vexu/arocc/issues/552) | | C17 | Complete excluding warnings [Ensure C1/ compatibility](https://github.com/Vexu/arocc/issues/820) | | C11 | Complete excluding warnings [Ensure C11 compatibility](https://github.com/Vexu/arocc/issues/821) | | C99 | Complete excluding warnings [Ensure C99 compatibility](https://github.com/Vexu/arocc/issues/822) | | C95 | Complete | | C89 | Complete | | GNU extensions | [Ensure GNU C extension compatibility](https://github.com/Vexu/arocc/issues/824) | | Clang extensions | [ Ensure Clang C extension compatibility](https://github.com/Vexu/arocc/issues/825) | Aro will be used as the C frontend for [C to Zig translation](https://github.com/ziglang/translate-c/) in the Zig toolchain. ## Codegen Earlier there was a proof of concept backend capable of producing a valid hello world binary but it was removed to make way for a new more capable backend which is still under construction. The new backend will reuse parts of the self-hosted Zig compiler. [#542](https://github.com/Vexu/arocc/issues/542) ## Using aro as a module The following assumes that your package has a `build.zig.zon` file. ```sh-session zig fetch --save git+https://github.com/Vexu/arocc.git ``` Add the following to your `build.zig`: ```zig const aro = b.dependency("aro", .{ .target = target, .optimize = optimize, }); exe.root_module.addImport("aro", aro.module("aro")); // Optional; this will make aro's builtin includes (the `include` directory of this repo) available to `Toolchain` b.installDirectory(.{ .source_dir = aro.path("include"), .install_dir = .prefix, .install_subdir = "include", }); ``` Now you can do ```zig const aro = @import("aro"); ``` in your Zig code.