3 ms·
the zig build system is the only thing that actually matters in these notes. nobody maintains a parallel build system for fun—it's a clear signal they're finall
by semiinfinitely 7mo ago
the zig build system is the only thing that actually matters in these notes. nobody maintains a parallel build system for fun—it's a clear signal they're finally pathfinding a way to migrate the core away from legacy c. zig's native interop is basically the only way to do this incrementally without the massive friction of a full rust rewrite. definitely makes nvim feel like a much more serious environment for systems-level performance work.
- mihaelm 7mo agoIt doesn't necessarily mean they're going to migrate from C, building a C project is just so much nicer with Zig than fiddling around with CMake. You got people using it as a build system even for Go projects, especially if they're relying on CGo. However, if you were entertaining the idea of slowly switching to Zig, the build system would be the place to start. Moving away from CMake is worth it even if you don't push it further. But yeah, the C-Zig interop story is so good it's a no brainer if you want to "modernize" your C codebase, and you can do so incrementally instead of stopping the world for a rewrite.
- semiinfinitely 7mo ago> slowly switching to Zig why "slow" just re-write it with ai. and to be clear im 0% joking and am prepared to be downvoted by people who haven't yet understood how feasible this kind of thing already is and how utterly trivial it will be in the near future
- tovej 7mo agoCouldn't disagree more. Why move away from solid, mature build systems to something relatively fringe like zig. Sadly, this is the general trend with neovim in general: less focus on stability, more and more focus on shiny new things. If I didn't have an nvim config that I'm used to I would have switched to plain vim ages ago.
- monooso 7mo agoI've found Neovim to be remarkably stable, even when building from main.
- tovej 7mo agoYou haven't been using the LSP API then. There have also been multiple breaking changes over the last five years, including breaking compatibility with established default vim keybindings.
- justinmk 7mo agoChanging default mappings is not a "breaking" change.
- tovej 6mo agoIt is. And iirc, neovim themselves mark them as such.
- justinmk 6mo agoWe may mention them in `:help news-breaking` for visibility, but that's only because I don't care about pedantry. API breakage != UI changes (e.g. mappings).
- tovej 6mo agoAPI breakage != UI breakage, yes, ofc. Because API != UI. But the UI is also an interface, and the user is part of the total system. That system interface is broken if you change default mappings. It doesn't matter if the interfacing component is software or a user.
- monooso 7mo agoA documented breaking change does not mean the application is unstable. The Neovim developers have been extremely clear that part of the process of getting to 1.0 is finalising the API, and that there will be breaking changes en-route.
- metaltyphoon 7mo ago> the only way to do this incrementally without the massive friction of a full rust rewrite Any rewrite is massive friction, I’m sure probably meant port? The only annoyance with Rust ports is if you have to support varargs. Hopefully that will come to an end soon.