libbuild2-autoconf
zig
libbuild2-autoconf | zig | |
---|---|---|
2 | 872 | |
7 | 38,567 | |
- | 2.4% | |
4.7 | 10.0 | |
10 days ago | 3 days ago | |
C | Zig | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
libbuild2-autoconf
-
GNU Make Standard Library
> If make supplied it's own shell language, a simplified one, then everything would be fantastic.
We did exactly that in build2, a modern make re-thought. And we provide a bunch of standard utilities like sed, find, etc., that work the same everywhere, including Windows. Here is an example of a non-trivial recipe: https://github.com/build2/libbuild2-autoconf/blob/17f637c1ca...
-
LLVM 16.0.0 Release
> [...] treated some of the code used for various feature checks invalid and the end result was checks failing even though they should have passed - often with barely any notification to the user (the user would see a "no" instead of a "yes" in some check)
This is a perfect illustration of conceptual bankruptcy of the autoconf approach. Using compile/link tests and basing a decision on whether they succeeded or failed without distinguishing the reasons for failure will inevitably lead to silent false negatives.
If you are wondering what to and what are the alternatives, here is one approach: https://github.com/build2/libbuild2-autoconf
zig
-
Zig's new LinkedList API (it's time to learn fieldParentPtr)
Two points here:
Linked lists are useful in unsafe code. Most recent use case I had for them was in an event loop with coroutines. It's not possible to implement such thing in memory safe languages. For example if you use Rust, you have to use unsafe [1].
@fieldParentPtr does not yet have safety but it is a planned upcoming change to the language, with a fairly straightforward implementation [2].
[1]: https://github.com/search?q=repo%3Atokio-rs%2Ftokio%20unsafe...
[2]: https://github.com/ziglang/zig/issues/2414
- Zig is a general-purpose programming language
-
Tail Call Recursion in Java with ASM (2023)
Generally I also find Zig's documentation pretty lacking, instead I try looking for the relevant issues/prs. In this case I found comments on this issues [1] which seem to still hold true. That same issue also links to the relevant LLVM/Clang issue [2], and the same restriction is also being proposed for Rust [3]. This is were I first learned about it and prompted me to investigate whether Zig also suffers from the same issue.
[1]: https://github.com/ziglang/zig/issues/694#issuecomment-15674...
- Zig: A good memory allocator in 200 lines of code
- A good memory allocator in 200 lines of code
-
Zig-0.14.0 Landed
One thing I'm super excited about here is that Zig can now cross-compile CGO to macOS [0], granted you link the appropriate macOS frameworks and SDK [1].
[0]: https://github.com/ziglang/zig/issues/20689, https://github.com/ziglang/zig/issues/21721
[1]: https://github.com/tpoechtrager/osxcross
-
Hallucinations in code are the least dangerous form of LLM mistakes
> Chose boring technology. I genuinely find myself picking libraries that have been around for a while partly because that way it’s much more likely that LLMs will be able to use them.
This is an appeal against innovation.
> I’ll finish this rant with a related observation: I keep seeing people say “if I have to review every line of code an LLM writes, it would have been faster to write it myself!”
> Those people are loudly declaring that they have under-invested in the crucial skills of reading, understanding and reviewing code written by other people. I suggest getting some more practice in. Reviewing code written for you by LLMs is a great way to do that.
As someone who has spent [an incredible amount of time reviewing other people's code](https://github.com/ziglang/zig/pulls?q=is%3Apr+is%3Aclosed), my perspective is that reviewing code is fundamentally slower than writing it oneself. The purpose of reviewing code is mentorship, investing in the community, and building trust, so that those reviewees can become autonomous and eventually help out with reviewing.
You get none of that from reviewing code generated by an LLM.
- F8 – an 8 bit architecture designed for C and memory efficiency [video]
-
Rust Kernel Policy
But the situation for Rust-C++ interop is also worse than for Rust-C interop. Why else would Google spend maybe $1 million on improving it in 2024? https://www.theregister.com/2024/02/05/google_rust_donation/ Many years after Rust got support in Mozilla for usage with Firefox written in C++.
>My sibling is also correct, language decisions were made in order to keep FFI zero overhead.
Yet overhead is only one piece of the puzzle for FFI and interop with C, or for that matter, C++.
How does Rust compare with a language with less advanced and more simple semantics and requirements of invariants, like Zig?
https://ziglang.org/
>Incrementally improve your C/C++/Zig codebase.
-
A tale of several distros joining forces for a common goal: reproducible builds
Regarding the reproducible bootstrapping problem, what is your project's policy on building from binary sources? For instance, Zig is written in zig and bootstraps from a binary wasm file which is translated to C: https://github.com/ziglang/zig/tree/master/stage1
Golang has an even more complicated bootstrapping procedure requiring to build each successive version of the compiler to get to the most recent version.
What are some alternatives?
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
ssr-proxy-js - A Server-Side Rendering Proxy focused on customization and flexibility!
llvm-project - Fork of LLVM with Xtensa specific patches. To be upstreamed.
Odin - Odin Programming Language
v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).