top | item 36529931

(no title)

frmdstryr | 2 years ago

So I spent ~4 years writing all my embedded projects (and libraries) in Zig and now several "tier 1" supported arches are just going to be dropped?

It's your language so do whatever you want but please adjust the branding accordingly...

discuss

order

audunw|2 years ago

Are they being dropped?

Im guessing you'll have two categories of tier 1 support: - Built-in tier 1 support. - Tier 1 support through the optional LLVM backend.

If they already have tier 1 support for an architecture, I don't see why they'd loose that support when they make the LLVM backend an optional dependency?

And as Andrew writes in the proposal, this way might provide a path for better support for more obscure architectures. I would happily work on a backend for Zig for some interesting processor architecture. No way I will ever contribute to LLVM. Working with C++ in not something I'll ever do to fun

frmdstryr|2 years ago

"In the near term it would also reduce the number of targets Zig supports", I hope not but it sure sounds like it.

MuffinFlavored|2 years ago

They're dropping LLVM by re-implementing everything it does in their own homegrown fashion?...

To what benefit? Isn't this a waste of resources?

delphLonepaw|2 years ago

LLVM just works well on the front that clang uses, after that, llvm itself is a wild beast full of worms, which is becoming more and more painful to work with if you are a language creator/mantainer, A lot of untested paths, and hidden bugs that zig has hit before... many times.

It will NOT reimplement everything, if you read the proposal, it's in favour of changing the LLVM dependency (the libs) not dropping LLVM IR generation, this will come with performance regression since now will be up to the team to get the correct IR, and making decisions LLVM IR generation does already in LLVM

The problem is that clang is being dropped, which means, unless we have a new C++ front made in zig (a-la AroCC for C) we are gonna suffer quite a bit for projects using C++ with zig.

brucethemoose2|2 years ago

The reasoning seems to be the flood of LLVM bugs, but I don't think reinventing such a large wheel will be any easier.

harerazer|2 years ago

I mean, it’s no secret that zig is pre 1.0. I’m not sure this is on them, although it does seem like a drastic proposal.

brabel|2 years ago

One of the mantras for Andrew Kelly has been "do not use Zig in production" until it hits 1.0.

People know that, but it's difficult to avoid using it for real things once you've tried it and it works :D.

I haven't done that with Zig, but with Kotlin things like serialization/coroutines/kotest/KAPT (it was the same feeling: oh this stuff is "Experimental" but so cool, I can't do real Kotlin without them!!)... well yeah, I spent many hours rewriting stuff due to that, and totally acknowledge that was on me.

TUSF|2 years ago

This is only still at the proposal stage. The Github issue is mostly for posting usecases for and against, etc… It's not "Accepted".

janpolak|2 years ago

Just wanted to point out that this is just a proposal, so if enough people voice their opinion, which many have already done, I am sure the core team will adjust their approach.