Hacker News new | ask | show | jobs
by dbandstra 2017 days ago
It's good to see the project soldier forward! Some things I am excited about for the future:

- Continued progress on the new "stage2" compiler, which is written in Zig itself (long promised, work started in earnest I think about six months ago). There will be an optional non-LLVM backend this time, which is good news for build times. Even in debug mode, most of build time currently is spent waiting for LLVM.

- Incremental compilation with live reloading (in-place binary patching). The stage2 compiler is being written with this feature from the start.

- I can't find the link, but I believe the plan for stage1 (the current compiler written in C++, with all its warts) is to simply delete it. Since the new compiler will also support compiling to C, the devs will simply have stage2 compile its own source into C at some point, and that will be the stage1 from that point forward.

2 comments

> I can't find the link

Here you go! https://github.com/ziglang/zig/issues/6378

So did I understand correctly? The "bootstrap" stage which is best to be in C (for the targets which don't have LLVM) will be just the output of the compiler compiling itself to C, and that will be regularly produced and pushed as the compiler grows? And that's one of the steps to make it LLVM independent?

P.S. Amazing work up to now! Kudos! I'm a fan just for everything it does what other language designers ignore, like designing the language to both compile and link fast. Cross compiling always available is a masterpiece. I guess that feature wouldn't have to be present on the platforms which don't have LLVM, if the language is to work on such too?

Wow, a C backend sounds interesting. Should be super portable if they maintain it alongside LLVM.
In case you didnt know, the person whom you replied to is the creator of zig language.
> Incremental compilation with live reloading (in-place binary patching)

That is awesome! I’ve longed for such a feature when I work with Go and Rust although Go is usually fast enough that I can use a custom watch script.