HackerTrans
TopNewTrendsCommentsPastAskShowJobs

alexrp

no profile record

comments

alexrp
·8 days ago·discuss
> 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
·9 days ago·discuss
> 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
·20 days ago·discuss
> 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
·last month·discuss
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
·last month·discuss
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
·last month·discuss
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
·last month·discuss
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
·last month·discuss
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
·4 months ago·discuss
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
·5 months ago·discuss
> 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
·5 months ago·discuss
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
·5 months ago·discuss
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
·5 months ago·discuss
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
·6 months ago·discuss
> 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.
alexrp
·6 months ago·discuss
I'm fairly sure I recall Fedora folks signaling that they intend to move to RVA23 as soon as hardware becomes generally available.

It is of course possible that Debian sticks with RV64GC for the long term, but I seriously doubt it. It's just too much performance to leave on the table for a relatively new port, especially when RVA23 will (very) soon be the expected baseline for general-purpose RISC-V systems.
alexrp
·6 months ago·discuss
Most people would be better off waiting for the multiple RVA23 boards that are supposed to come out this year, at least if they don't want to be stuck running custom vendor distros. "RVA23 except V" at this price point and at this point in time is a pretty bad value proposition.

It's honestly a bit hard to understand why they bothered with this one. No hate for the Milk-V folks; I have 4 Jupiters sitting next to me running in Zig's CI. But hopefully they'll have something RVA23-compliant out soon (SpacemiT K3?).
alexrp
·7 months ago·discuss
Our CI workflow literally just invokes a plain old shell script (which is runnable outside CI). We really don't need an overcomplicated professional CI/CD solution.

One of the nice things about switching to Forgejo Actions is that the runner is lightweight, fast, and reliable - none of which I can say for the GitHub Actions runner. But even then, it's still more bloated than we'd ideally like; we don't need all the complexity of the YAML workflow syntax and Node.js-based actions. It'd also be cool for the CI system to integrate with https://codeberg.org/mlugg/robust-jobserver which the Zig compiler and build system will soon start speaking.

So if anything, we're likely to just roll our own runner in the future and making it talk to the Forgejo Actions endpoints.
alexrp
·7 months ago·discuss
> The reason they move to a lesser known Git provider sounds more like a marketing stunt.

We had technical problems that GitHub had no interest in solving, and lots of small frustrations with the platform built up over years.

Jumping from one enshittified profit-driven platform to another profit-driven platform would just mean we'd set ourselves up for another enshittification -> migration cycle later down the line.

No stunt here.
alexrp
·7 months ago·discuss
Worth noting that LLVM has AVR and MSP430 backends, so there's no particular resistance to 8-bit/16-bit targets.
alexrp
·8 months ago·discuss
Hug of death followed by a DDoS. At the time of me writing this, it loads instantly again.