HNHacker News
TopNewBestAskShowJobs

alexrp

279 karma · joined May 2, 2012

submissionscomments
alexrp··on Zig v0.17.0
> My point is that at some point one needs to recognize their project is used for production stuff and make stability the focus, rather than hiding behind the 0.x excuse for years. Call it the Peter Pan syndrome of open source.

We have a roadmap to 1.0.0 -- it's literally right there in the release notes -- and we're going to execute on that and then tag it. Ignoring that (and SemVer) and declaring that we should actually stabilize right now is a bit unreasonable.

> For comparison, Elixir started in 2012, and got its 1.0 in 2014, two years later. Zig stable has been ‘a few years’ for literally a decade.

This is a wild comparison to me, and I say this as someone who actually used Elixir for a time fairly early in its development (and still like it!). Zig has a vastly larger and more difficult problem space to deal with than Elixir.

alexrp··on Zig v0.17.0
> after 2 times consecutively facing the same issue

Sorry, would you mind clarifying what you mean by this? I'm only aware of the one incident?

alexrp··on Zig v0.17.0
Well of course the block itself was deliberate. By "in error" I meant that we might have misjudged the text as being LLM.

Who did you email, when, and did you get a response? We've all been very busy leading up to the release, and most of the team is also currently traveling for SYCL.

Regarding sending a message, consider our side: We're tired of having our time wasted on slop, so we don't also want to have to write formal block notifications to people we block on suspicion of using LLMs. I'm fully aware that this can lead to an unfortunate situation like this, however. For what it's worth, this is why we want to move to an invite tree for Zig development; it'll allow us to create a high-trust environment where this kind of suspicion is unnecessary.

alexrp··on Zig v0.17.0
I would suggest just starting by filling out the bug report template, i.e. steps to reproduce, expected behavior, and observed behavior. If for some reason you can't provide a reasonable reproduction, the symptoms on their own can sometimes be enough for us to make an educated guess at what's going wrong.

Regarding whether you should post the root cause analysis: Per the current policy, the answer would have to be no.

I do personally have more nuanced thoughts on this, and I started typing them out... but then I realized that my reply was getting dangerously close to blog post length, so I decided to restrain myself and commit to turning it into an actual blog post later. In a nutshell, though, the problem is that even if there is such a thing as responsible use of LLMs for bug analysis, the only way we can currently be confident that someone possesses the required qualities for that is by working with them for a while.

alexrp··on Zig v0.17.0
Yes, 0.16.0 and 0.17.0 are the only two releases that have loop vectorization disabled. (And it will be re-enabled in 0.18.0.)
alexrp··on Zig v0.17.0
> because my projects on github using zig uses LLM

To be clear, we do not block people for merely having LLM-related projects. Obviously we have opinions about LLMs in a broader context, but in terms of rules enforcement, we only care about LLM usage taking place within official Zig spaces.

It's possible you were blocked in error. LLM detection is not foolproof, so unless it's an open-and-shut case, our usual approach is to just unblock if people reach out to us by email.

alexrp··on Zig v0.17.0
We simply ask that Zig bug reports be written by humans, for humans. Whether you use LLMs on your project is immaterial to us.

Yes, I'm a core team member.

alexrp··on Zig v0.17.0
> If there's an edict that no one is allowed to bring up the topic, how can someone change this part of the code of conduct?

To clarify, do you mean someone who isn't part of the core team?

alexrp··on Zig v0.17.0
For the record, there isn't even uniformity of thought on LLMs within the core team, let alone the broader Zig community.
alexrp··on Zig v0.17.0
The fix could not be backported to LLVM 22 because it changed the LLVM library ABI. We also could not skip straight to LLVM 23 because that would make life harder for distro package maintainers.
alexrp··on Why some US restaurants are banning tips
I think it depends on location.

It would be a bizarre approach in Scandinavia because the consensus here is that companies must pay their employees a decent baseline salary -- which unions negotiate across the whole sector -- so there's no expectation of a tip by default.

But for much of the rest of the world, it's not a given that working conditions are as good.

alexrp··on Introduce a memory safe compilation mode inspired by Fil-C
> But you cannot state that people are "welcome to engage and debate the idea on its merits" when that clearly isn't the case.

I really didn't think that part had to be stated explicitly; I genuinely don't know why someone not invested in Zig would even feel the need to go debate on the Zig issue tracker. But even setting that aside, this is far from the first time that the core team has made it clear that we don't want the internet peanut gallery to brigade the issue tracker.

> as evidenced by real comments being deleted from that issue.

Which real comments were deleted?

alexrp··on Introduce a memory safe compilation mode inspired by Fil-C
You don't need to be a Zig expert, but you do need to at least be invested in the Zig ecosystem in some way.

I think it's reasonable for any open source project to only be interested in the opinions of its actual users, especially when obvious social media brigading is taking place.

If I -- having written precisely 5 lines of Rust in my life -- showed up on the Rust issue tracker and started expressing my opinions on the future direction of the project and debating a proposed feature, I would absolutely expect people to be annoyed about the noise I'm generating.

alexrp··on Introduce a memory safe compilation mode inspired by Fil-C
The Zig issue tracker is for technical discussion; you are more than welcome to engage and debate the idea on its merits. But we do indeed delete meta-commentary, wild speculation, and outright hostility.
alexrp··on Introduce a memory safe compilation mode inspired by Fil-C
This is about a strictly-enforced form of run-time memory safety where there's no `unsafe` escape hatch that a careless programmer can misuse to undermine the memory safety mechanism. Contrasting with Rust is helpful to get that point across - which the body text of the issue does.

I can't speak for Andrew, but I didn't read this as a "diss" at all.

alexrp··on Zig Creator Calls Spade a Spade, Anthropic Blows Smoke
> I think the Zig people are really just concerned that maybe Zig itself is a DOA language because it doesn't offer enough over C for any serious use

I promise you, hand on heart, that literally no one on the Zig core team is wasting their time on thoughts like this.

> and their flagship project has now abandoned it.

Quoting Andrew:

> So, when the Anthropic aquisition finally happened, we at ZSF breathed a sigh of relief. When the donation silently stopped, our bank account was ready for it. When they neither canceled their monthly meeting with us, nor showed up, we were not surprised. The relationship was over.

I advise you to take this paragraph at face value. Again, I promise you that it is the truth.

alexrp··on PostgreSQL and the OOM killer: Why we use strict memory overcommit
> NT is optimized, since day one, to swap.

I'm not sure what point you're making here. Did you assume we had the page file disabled or something?

> This is a feature, not a bug.

OOMing when there's tens of gigabytes of unused memory is a feature...?

alexrp··on PostgreSQL and the OOM killer: Why we use strict memory overcommit
> Both Windows and macOS do so much better out of the box for essentially any workload.

We test FreeBSD, Linux, macOS, NetBSD, OpenBSD, and Windows in Zig's CI fleet. Of these, Windows is the only OS that we've had to configure with swap double the size of physical RAM to not hit completely unjustifiable OOMs.

By "unjustifiable", I mean that we're not even close to actually running out of physical memory (let alone swap), but the MM seems to be doing a horrible job of making unused memory actually available to processes.

It's possible there's a relevant configuration knob here that we're just not aware of... but the point is, the default behavior does in fact suck.

alexrp··on Open Source for IBM Z and LinuxONE
> Their CI instances are over provisioned and time-out

I can't speak to their managed Jenkins offering, but FWIW, we've had no major trouble running Zig's CI on 3 s390x-linux VMs, each with 8x z15 vCPUs and 32 GB of RAM.

They are definitely over-provisioned, though, so we have the job timeouts set ~3 hours higher than they ideally should be to deal with load spikes. But after we dialed those timeout values in, it's been smooth sailing from there. I'd even say it's one of our most stable CI platforms now.

I did reach out to Bruce Gilkes about the over-provisioning and he informed me that they are planning an upgrade to z17 later this year, so hopefully that'll improve the situation.

> What does an open source project get from this? ... So besides the bragging rights (I guess?) and discovering latent bugs exposed by the exotic architecture, what's in it for a project to deal with this extra architecture

The way I look at it, if Zig is going to be a serious C competitor, it must run in all the places that people run C in. Plus I just find it fun to do porting work since it involves a whole bunch of learning.

alexrp··on Chuwi Minibook X
I only started using GPD products with the Pocket 4, so unfortunately I can't speak to your experience with the Pocket 2. I certainly hope the battery doesn't degrade that fast on their newer models...

The only thing I can say is that they seem to have significantly improved the thermals; IME, the Pocket 4 only gets moderately warm to the touch during full CPU load, and that's even with the quiet fan mode.

alexrp··on Chuwi Minibook X
That's fair; the keyboard layouts are definitely an acquired taste. Not that I've quite acquired said taste myself... but for devices that I mainly use when traveling, I just don't particularly care that much. It'd probably be more of an issue if I was using one of them as my daily driver - but I still very much prefer my workstation at home for that.
alexrp··on Chuwi Minibook X
Depends on what you're doing I suppose? I'm able to work on Zig with both of the devices I mentioned. Of course I'm limiting the test cases to the subset that's actually relevant to the area or target I'm working on. But that would be the case on a beefy full-size laptop too; even there, the full Zig test suite would take many hours and murder the battery in the process.
alexrp··on Chuwi Minibook X
The CPU is just too underpowered; I'm sure it's fine for basic computery stuff, but building software and running medium/large test suites on it would be far too slow. Also not enough USB ports; I don't want to carry a USB hub with it.

Battery life on it is comparable to the MicroPC 2, but for the netbook form factor, it should really be compared to the Pocket 4. Similar story for the RAM, as well as the odd screen refresh rate.

Minor points: I do also appreciate the Ethernet ports on the GPD devices, and their approach to touchpads (buttons and placement in particular).

I guess my issues basically all boil down to the Minibook X not having enough functionality for the form factor when compared to GPD. That's mostly understandable for the price, but my point is just that if you're willing to fork over some more cash, you can get a whole lot more laptop in the same form factor (Pocket 4) or slightly better specs in a smaller form factor (MicroPC 2), and at least for me, that's the only way I could even have seriously considered these form factors for my work.

(Just to be clear, I have no particular brand loyalty to GPD; they're just the only player in town for high-end netbooks/UMPCs at the moment.)

alexrp··on Chuwi Minibook X
The Minibook X is obviously targeted at the netbook form factor in the traditional sense, i.e. small and cheap. If you're like me and appreciate the netbook/UMPC form factors (for travel purposes in my case) but also need better specs to actually get any work done -- and you're willing to fork out a bit more to get that -- I would recommend looking at GPD's Pocket and MicroPC series. I own both a Pocket 4 and MicroPC 2 with Linux on them, and I'm quite satisfied. The only issue I've noticed is the same screen rotation quirk described here, for which the same workarounds apply.
alexrp··on Wine 11 rewrites how Linux runs Windows games at kernel with massive speed gains
I've experienced multiple instances where (so I heard; I don't use Windows) a Windows Update completely broke a game on Windows for everyone, but Wine/Proton kept running it just fine. So we're already there in some sense.
alexrp··on Ghidra by NSA
> No shellcode decoding

Can't speak to this as I don't RE for security purposes, but:

> no plugin support and rather limited IR.

this I'm profoundly confused by. BN has multiple IRs that are easily accessible both in the UI and to scripts. And it certainly has a plugin system too.

alexrp··on Ghidra by NSA
Binary Ninja deserves a mention in these threads: https://binary.ninja

I've used IDA, Ghidra, and Binary Ninja a lot over the years. At this point I much prefer Binary Ninja for the task of building up an understanding of large binaries with many thousands of types and functions. It also doesn't hurt that its UI/UX feel like something out of this century, and it's very easy to automate using Python scripts.

alexrp··on Zig – io_uring and Grand Central Dispatch std.Io implementations landed
It sounds like you expected 1.0 stability from a language that isn't 1.0.

> I thought it was stable enough initially but they completely broke fuzz testing feature and didn’t fix it.

From the 0.14.0 release notes:

> Zig 0.14.0 ships with an integrated fuzzer. It is alpha quality status, which means that using it requires participating in the development process.

How could we possibly have been more explicit?

Fuzzing will be a major component of Zig's testing strategy in the long term, but we clearly haven't had the time to get it into shape yet. But we also didn't claim to have done!

> Also some things like stack traces were broken in small ways in zig. It would report wrong lines in stack traces when compiling with optimizations. Also wasn’t able to cleanly collect stack traces into strings in production build.

I mean, to be fair, most compiled languages can't give you 100% accurate source-level stack traces in release builds. But that aside, we have actually invested quite a lot of effort into std.debug in the 0.16.0 release cycle, and you should now get significantly better and more reliable stack traces on all supported platforms. If you encounter a case where you don't, file a bug.

> And recently saw they even moved the time/Instant API to some other place too. This kind of thing is just super annoying with seemingly no benefit. Could have left the same API there and re-used it from somewhere else. But no, have to make it “perfect”

I acknowledge that API churn can be annoying, but it would be weird not to aim for perfection prior to 1.0.

alexrp··on Zig – io_uring and Grand Central Dispatch std.Io implementations landed
Just on this point:

> You mean like how Rust tried green threads pre-1.0? Rust gave up this one up because it made runtime too unwieldy for embedded devices.

The idea with making std.Io an interface is that we're not forcing you into using green threads - or OS threads for that matter. You can (and should) bring your own std.Io implementation for embedded targets if you need standard I/O.

alexrp··on Milk-V Titan: A $329 8-Core 64-bit RISC-V mini-ITX board with PCIe Gen4x16
> You still need a custom distro for Raspberry Pi for example.

Are you sure that's still the case? I just checked the Raspberry Pi Imager and I see several "stock" distro options that aren't Raspbian.

Regardless, I take your point that we're reliant on vendors actually doing the upstreaming work for device trees (and drivers). But so far the recognizable players in the RISC-V space do all(?) seem to be doing that, so for now I remain hopeful that we can avoid the Arm mess.

Page 1 of 3Next →