NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Writing a C Compiler, in Zig (ar-ms.me)
fuhsnn 2 hours ago [-]
Looking at the repo, the author seemed a little fed up [1] with the nature of lower level language and quitted.

[1] https://github.com/asibahi/paella/blob/main/writeup/c19.md#u...

dwroberts 1 hours ago [-]
Feels like maybe something lost in translation with their explanation - they say they were fed up of data structures etc. but they returned to Rust? I’m assuming there’s something a bit more nuanced about what they got tired of with Zig
ecshafer 15 minutes ago [-]
I think Rust is "higher level" than C or Zig in the sense that there are most abstractions than C or Zig. Its not Javascript, but it is possible to program Rust without worrying too much about low level concerns.
flossly 2 hours ago [-]
I thought Zig has a C compiler built in? Or is it just the Zig build system that's able to compile C, but uses an external compiler for that?

Still a proper programmer-flex to build another one.

spiffyk 1 hours ago [-]
Zig actually bundles LLVM's Clang, which it uses to compile C with the `zig cc` command. But the long term goal seems to not be so tightly coupled to LLVM, so I'm expecting that to move elsewhere. They still do some clever stuff around compiler-rt, allowing it to be better at cross-compilation than raw Clang, but the bulk of it is mostly just Clang.

There is also another C compiler written in Zig, Aro[1], which seems to be much more complete than TFA. Zig started using that as a library for its TranslateC functionality (for translating C headers into Zig, not whole programs) in 0.16.

[1]: https://github.com/Vexu/arocc

scatbot 2 hours ago [-]
Cool project. Feels like writing a C compiler in Zig aligns nicely with the old "maintain it in Zig" idea that was part of Zig's early value proposition. Is that still considered a relevant goal today?

Longer term it also makes me wonder whether something like this could eventually reduce reliance on Clang/LLVM for the C frontend in zig's toolchain.

spiffyk 1 hours ago [-]
There is actually another C compiler written in Zig, Aro[1], which Zig started using since 0.16 for its TranslateC module.

[1]: https://github.com/Vexu/arocc

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 13:17:12 GMT+0000 (Coordinated Universal Time) with Vercel.