Live data from Hacker News

I fixed Windows native development

marler8997.github.io

341–350 of 406 posts

Re: I fixed Windows native development

#341
post #339

Earlier quoted context omitted.

Eww no. MingW is evil and no project should ever use it. Just use Clang + MSVC STL + WinSDK. Very simple.

>MingW is evil Care to elaborate?

I've been shipping Windows software for 20+ years. Not one project I have ever worked on was based on MinGW. It's a gross hack that is ABI incompatible with the predominate ecosystem.

In the year 2026 there is no reason to use MinGW. Just use Clang and target MSVC ABI. Cross-compiling Linux->Windows is very easy. Cross-compiling Windows->Linux is 1000x harder because Linux userspace is a clusterfuck of terrible design choices.

If a project "supports Windows" by only way of MinGW then it doesn't really support Windows. It's fundamentally incompatible with how almost all Windows software is developed. It's a huge red flag and a clear indicator that the project doesn't actually care about supporting Windows.

Re: I fixed Windows native development

#342

Is this post AI-written? The repeated lists with highlighted key points, the "it's not just [x], but [y]" and "no [a] just [b]" scream LLM to me. It would be good to know how much of this post and this project was human-built.

you know why LLMs repeat those patterns so much? because that's how real humans speak

No, they do it because they're mode-collapsed, use similar training algorithms (or even distillation on each other's outputs) and have a feedback loop based on scraping the web polluted with the outputs of previous gen models. This makes annoying patterns come and go in waves. It's pretty likely that in the next generation of models the "it's not just X, it's Y" pattern will disappear entirely, but another will annoy everyone.

This is purely an artifact of training and has nothing to do with real human writing, which has much better variety.

Re: I fixed Windows native development

#343

Earlier quoted context omitted.

Ah sorry. I should clarify. Not referring to specifically cross compiling; just general compiling. In rust weather PC or embedded, I run Cargo run. For C or C++, it's who knows. A provincial set of steps for each project, error messages, makes me get frustrated. I keep a set of notes for each one I touch to supplement the project's own docs. I am maybe too dumb or inexperienced in some cases, but I am having a hard t…

I’m the opposite: I want my development tools to use my operating system’s package manager. Nothing enrages me quite like how, when I want to pull in a Python dependency, I have to reach for Python’s parallel package manager. Now I have to keep track of what apt installed and what pip installed. Then I move to do a rust project and there’s now another parallel package manager I need to use to install those dependenci…

If I understand correctly, this makes your program and/or its build system tied to an OS. Depending on the details (You mention interpreted and compiled languages), it's not clear if this would provincialize the build only, or running the application as well. (With complications beyond executable ABI compatibility)

My perspective: I want from the OS: An allocator, threading, filesystem support, dates/times, and in some cases hardware access like for GPUs, USB etc.

I do not want my software to be dependent on a specific OS's package manager. I don't want a headache when I change the PC I'm compiling on, and really don't want to deal with a separate package manager for each OS I distribute the application for. Especially so given that there are so many linux distros.

Re: I fixed Windows native development

#344
post #285

Earlier quoted context omitted.

You're talking about .net for server applications right? The discussion above is for client apps being distributed for windows endusers.

Just ship a self contained build?

This was a sidecar application distributed by literally millions of installs per day - so having a 25MB "self contained" build was out of the question - we were targeting KB-sized distributables not 10's of MB.

Re: I fixed Windows native development

#345

Earlier quoted context omitted.

you know why LLMs repeat those patterns so much? because that's how real humans speak

No, they do it because they're mode-collapsed, use similar training algorithms (or even distillation on each other's outputs) and have a feedback loop based on scraping the web polluted with the outputs of previous gen models. This makes annoying patterns come and go in waves. It's pretty likely that in the next generation of models the "it's not just X, it's Y" pattern will disappear entirely, but another will annoy…

Yup, the first models always added "however it's important to note that..." at the end

Re: I fixed Windows native development

#346

Earlier quoted context omitted.

The purpose isn't information, the purpose is drama. Er, sorry. I meant: the purpose isn't just drama—it's a declaration of values, a commitment to the cause of a higher purpose, the first strike in a civilizational war of independence standing strong against commercialism, corporatism, and conformity. What starts with a single sentence in an LLM-rewritten blog post ends with changing the world. See? And I didn't eve…

This is actually the scariest part. Because lately even authors and creators who are not using LLM are starting to pick up some of these ways of expressing themselves.

I wonder where did LLM learnt that...

Re: I fixed Windows native development

#347
post #121

> The build.bat above isn’t just a helper script; it’s a declaration of independence from the Visual Studio Installer. I am so fed up with this! Please if you're writing an article using LLMs stop writing like this!

Humans invented writing, not LLMs. They are copying us not the other way around. You can’t jump on 1 sentence that vaguely sounds like an LLM and say it’s written by AI. It’s so silly. I understand the aversion to AI slop but this is not that.

people run on heuristics and no amount of our righteousness will change that. the entire article absolutely reeks of LLM style so the original commentor isnt off the mark. to address your point, LLMs are copying that which leads to the most human engagement, so the way you expressed things makes it seem like you are defending junk food as real food. which of course it is, however it is designed to make someone money at the cost of human health. that's not something i'd be defending personally.

Re: I fixed Windows native development

#348

Earlier quoted context omitted.

> glibc dependencies that can't be resolved because you need two different versions simultaneously in the same build somehow... If you somehow experience an actual dependency issue that involves glibc itself, I'd like to hear about it. Because I don't think you ever will. The glibc people are so serious about backward and forward compatibility, you can in fact easily look up the last time they broke it: https://lwn.n…

> The glibc people are so serious about backward and forward compatibility, you can in fact easily look up the last time they broke it What? There was a huge breakage literally last year: https://sourceware.org/bugzilla/show_bug.cgi?id=32653 Glibc has been a source of breakage for proprietary software ever since I started using Linux. How many codebases had to add this line around 2014 (the year I brought my first la…

> https://sourceware.org/bugzilla/show_bug.cgi?id=32653

dlopen and dlmopen no longer make the stack executable if a shared library requires it

I'm not counting intentional breakage to improve system security. I'm not even sure I'd call it an ABI breakage; by a wide definition I guess it is a "change in glibc that makes things not work anymore". You also can't execute a.out binaries anymore, eh. And I don't think I would call something that affects primarily closed source binaries (and mono on i386) a "huge" issue either.

The fix is trivial ("execstack -s ") and doesn't involve any change to installed versions of anything.

> __asm__ (".symver memcpy, memcpy@GLIBC_2.2.5");

A 12 year old forward compatibility issue that is fixed by upgrading glibc, okay. (Note this is the same timeframe as the s390 thing I linked.) I guess people shipping binaries need to be aware of it if they want to support glibc pre-2.2.14. That said, the general rule of shipping binaries is that you need to assume whatever you build against becomes the minimum required version, anything else is a gift.

I think my point about never pinning glibc stands, and how many other things do you know where you need to go back 12 years to find an ABI break?

Re: I fixed Windows native development

#349

Earlier quoted context omitted.

The purpose isn't information, the purpose is drama. Er, sorry. I meant: the purpose isn't just drama—it's a declaration of values, a commitment to the cause of a higher purpose, the first strike in a civilizational war of independence standing strong against commercialism, corporatism, and conformity. What starts with a single sentence in an LLM-rewritten blog post ends with changing the world. See? And I didn't eve…

This is actually the scariest part. Because lately even authors and creators who are not using LLM are starting to pick up some of these ways of expressing themselves.

Oh, I didn't learn it from LLM's, believe me.

That style of writing has been around forever. LLM's learned it from us. I'd basically call it "American sales pitch". It's a little bit product landing page, a little bit political opinion column, a little bit self-help book or motivational blogger.

It's always been a style of writing that tries to maximize engagement. The issue is that now we see it creeping into areas that never used to use it. It's not how developers tend to write. But now developers toss their original draft into an LLM asking it to "punch it up for engagement" -- or the LLM has just been trained to assume that's what someone wants by default -- and so now it stands out like a sore thumb.

And obviously, it's an appeal to emotion. Whereas developers tend to be looking for just the cold hard facts. So it's doubly off-putting.

Re: I fixed Windows native development

#350

Earlier quoted context omitted.

> The glibc people are so serious about backward and forward compatibility, you can in fact easily look up the last time they broke it What? There was a huge breakage literally last year: https://sourceware.org/bugzilla/show_bug.cgi?id=32653 Glibc has been a source of breakage for proprietary software ever since I started using Linux. How many codebases had to add this line around 2014 (the year I brought my first la…

> https://sourceware.org/bugzilla/show_bug.cgi?id=32653 dlopen and dlmopen no longer make the stack executable if a shared library requires it I'm not counting intentional breakage to improve system security. I'm not even sure I'd call it an ABI breakage; by a wide definition I guess it is a "change in glibc that makes things not work anymore". You also can't execute a.out binaries anymore, eh. And I don't think I wo…

A few recent examples: many distros changed the flag for emuTLS on Windows, which gcc implemented as a hard ABI break for no essential reason. If you compile for enough platforms, it will print various notes that various alignments have changed in the struct, which has caused grief numerous times in the past few years for people I work with (many of the changes don’t come with notes, they just change alignment since new hardware comes out that has new features which need more and/or there were bugs previously, so they silently change it). There’s also win32 or posix threading, and sjlj vs structured exceptions, all of which are mutually incompatible. Oh, and then don’t get me started on ARM v6 atomics, which is some weird decided-based-on-compiler-flags-to-record-heuristics-detected-during-configure-of-some-auxiliary-header time, instead of using the current target’s ABI

Sure, the ABI does not change at all, if you know in advance where the landmines are. Though it does have quite few, especially for a large project with a huge surface area

Post reply on HN