Live data from Hacker News

I hate compilers

xeiaso.net

141–150 of 182 posts

Re: I hate compilers

#141
post #115

> There are a shocking number of ways to accidentally create nondeterministic output when doing C/C++ development. One of the easiest is to use the builtin __DATE__ and __TIME__ macros to stamp a build with the time the compiler was executed at: Am I missing something here? Yes, if you use a feature that intentionally inserts the build time and date into the code, the every build is going to be different. That's the…

I don't think these kind of features belong in a compiler. If you want a stamp then pass it in to your compiler invocation via explicit defines.

You might accidentally end up including it transitively and suddenly your binary is nondeterministic.

Re: I hate compilers

#142

Earlier quoted context omitted.

I'm evaluating them using an objective metric, which is how long each took to arise in the universe. It could have never been the case that calculus arose before inverse kinematics, because a thing like that could not interact with the real world. Also, I suspect you're comparing dissimilar things, because in one case you're looking at a brain doing both inverse kinematics and "calculus" (sense 1), and in the other y…

> I'm evaluating them using an objective metric, I don’t think the metric is at all reasonable, and the fact that it’s “objective” doesn’t make up for its other shortcomings. I don’t think we have a basis for agreement here—I think you’ve framed the argument in a way that supports a “calculus is hard” conclusion merely by defining “hard” in such a way that supports your conclusion from the start, but I think that app…

>I think you’ve framed the argument in a way that supports a “calculus is hard” conclusion merely by defining “hard” in such a way that supports your conclusion from the start

It seems to me you're the one who first did that by equivocating what is easier to do and what is easier to make a machine do.

>we’ve failed to share ideas once you start using that tactic

Well, I certainly don't agree with that.

Re: I hate compilers

#143
post #128
post #76

So to avoid those energy-hungry LLM companies from scraping your website, you force each browser to compute a lot of hashes in a necessarily energy-hungry loop, creating, at the same time, all the kind of accessibility problems?

They have 2 options: - Put their ~1kb of text on a ~0kb website, make it cacheable, make hosting it free, make downloading and rendering it instantenous, make it accessible and let users read it comfortably - Set up a CAPTCHA and make the website inaccessible, spy on the users or give their history to trillion dollar ad companies, make them wait 10 secs to proceed. Guess which one HN front-page bloggers choose? I oft…

Anubis doesn't rely on spying on the user.

Re: I hate compilers

#144
post #57

Earlier quoted context omitted.

I would phrase it as "LLMs are good at big picture stuff and bad at fine detail", or to put it another way, they're accurate, but imprecise and with low reproducibility.

But where does that leave us when programmers treat themselves as architects with the AI doing the drudge work? As seems to be the fashion. It then means you have 2 parties focussing on the big picture and no one focussing on the details.

I said "big picture stuff", but I guess I should have said "broad strokes". The truly correct answer is probably similar to what the model will answer, and if your problem is such that it can work with small imperfections in a solution, then the LLM helps. If the solution needs to be exactly right, then it will probably fail.

Yesterday on a whim I tried asking a local model a question about kanji that look different in different fonts despite being the same character (to the point of strokes appearing in completely different directions), and the model hallucinated imgur links to images of the characters. If imgur could work with approximate references to data maybe that would have worked.

Re: I hate compilers

#145
post #97
post #93

Earlier quoted context omitted.

I don't get the sense they hate compilers at all. The writing describes work they seem to love doing. It's just clickbait. And it may not have crossed their mind that the clang behavior is a bug after finding a workaround. I'd also assume compilers do things "no mere mortal can fully comprehend on their own".

This might be the first time in my career I have genuinely found a compiler bug. I've been operating under the axiom of "don't assume it's a compiler bug, assume you're fucking it up somehow". When you get to the point that disabling ASLR makes it consistent intra-host I think I've won the right to at least suspect a compiler bug is at play. I'll go file it upstream after work today.

If you feel like increasing your power as per your post, this is a somewhat decent first LLVM issue, take a look at WebAssemblyCFGStackify.cpp :)

llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll and friends are existing tests that you can kinda mangle if you want to get a good reproducer.

Also take a look at https://discourse.llvm.org/t/reverse-iteration-bots/72224

Otherwise, happy to put my reproducer/patch on the bug after you file it!

Re: I hate compilers

#146
post #60

A better solution might be to use https://github.com/evanw/polywasm to run the original wasm in place.

I tried doing that at first. I kept running into edge cases that made the whole thing fall to ribbons. I gave up and am just falling back to what I know works: compiling the WASM to JS.

Re: I hate compilers

#147
post #145
post #97

Earlier quoted context omitted.

This might be the first time in my career I have genuinely found a compiler bug. I've been operating under the axiom of "don't assume it's a compiler bug, assume you're fucking it up somehow". When you get to the point that disabling ASLR makes it consistent intra-host I think I've won the right to at least suspect a compiler bug is at play. I'll go file it upstream after work today.

If you feel like increasing your power as per your post, this is a somewhat decent first LLVM issue, take a look at WebAssemblyCFGStackify.cpp :) llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll and friends are existing tests that you can kinda mangle if you want to get a good reproducer. Also take a look at https://discourse.llvm.org/t/reverse-iteration-bots/72224 Otherwise, happy to put my reproducer/patch on the b…

I'm gonna have to file the bug without a minimal reproduction case. The issue seems to be those try_table blocks getting nondeterministically reordered at link time (is it using machine pointers for iteration order?). Sadly I'm observing this with a local checkout of binaryen, so it may take a while for you to find the minimal reproduction case.

Re: I hate compilers

#148

Earlier quoted context omitted.

> Being able to reproduce the binary from the source code and being able to verify that it's the same as the original is quite important in some contexts Why not build your own binaries and be done with that. If you don’t trust the compiler or the machine doing the build, just build the code yourself.

Sure, I can do that, but there's some value in being able to check quickly and easily that, for example, the xz utils binaries shipped by a major distro actually match the published source. Also useful for checking that a binary containing GPLed code does actually correspond to its published source.

The capability may be nice to have, but what about its usefulness. Would that have been of use in any real world situation?

Re: I hate compilers

#149
post #100

Earlier quoted context omitted.

Patches welcome. I'd love to do protein folding too.

I would think twice before adding those type of features to Anubis. I like how Anubis currently does one thing and do that well. Once you make a captcha-like service that also does useful work, users will eventually perceive it as a useful-work-service that happens to have captcha-like function on the side, and that new perception will get a lot more people upset about Anubis. We see this with Recaptcha where when it…

The original reCAPTCHA which was used to train OCR came out back when Google was at least pretending to not be evil, hence the favourable coverage about old books. Now that the challenges are used to train Waymo cars (citation needed, but obviously they won't be sharing the data), and Google is definitely not tracking everyone with it (according to... Google, the adtech company), there's no positive spin you could possibly put on it.

Were Anubis to add crypto mining, even if all the revenue went to Techaro, you could still say "the enshittification is a shame, but at least they're not Google". Using the compute for BOINC protein folding somehow should be unobjectionable.

Re: I hate compilers

#150

Earlier quoted context omitted.

I don’t get how people believe there’s a PoW function that both: 1. Allows access in reasonable time/battery use to me on my phone 2. Poses any meaningful challenge to the most compute-resourced organizations on the planet I wonder how many cumulative hours of human life have been wasted waiting on Anubis.

> I wonder how many cumulative hours of human life have been wasted waiting on Anubis. "How dare that mugging victim fight back". The choice is not between Anubis and no Anubis, the choice is between Anubis and my website going offline because I can't afford the $400/month that AI scrapers would cost me (yes, I checked, and yes, that's the real figure) if Anubis wasn't in front.

That makes sense, and I believe you, I'm just surprised it really deters the scrapers.
Post reply on HN