Live data from Hacker News

I hate compilers

xeiaso.net

151–160 of 182 posts

Re: I hate compilers

#151
post #52

The Birth and Death of Javascript really had the gift of prophecy, eh

Was that the thing where Gary predicted js in the kernel?

How about hardware accelerators to interpret JS? At least it wouldn't break, cause modern JS all transpiles to the old one.

Re: I hate compilers

#152

I’m still surprised by Anubis’ decision not to make the PoW have a useful output, for example a crypto, protein-folding like, or something else. And I speak as being generally very critical of cryptos, but here rewarding the website owner with some cents to have access seems fair, and resolves the traditional issues about micro-payments.

I'm not even convinced that this works well for users who want to run that work on their machines. Distributed cluster of random untrusted hardware has got to be so much less efficient than a purpose-designed datacenter cluster, and harder to manage. I get that any "free" compute is cheaper than paid compute, but at some point the gap is so wide that the coordination alone doesn't make sense.

Wasn't there some famous home-computing project that recently stopped because of that? I thought it was Folding@home but that seems to still be going.

Re: I hate compilers

#154
post #5

Earlier quoted context omitted.

On the off chance that you’re serious, that would result in disastrously bad output. The difference between “jmp $+15” and “jmp $+16” is inscrutable and the LLM would not be able to pick the right one without tooling. That tooling is a compiler. The higher level, the better chance the LLM can be steered to good output. Machine code is hopeless, don’t bother.

> The difference between “jmp $+15” and “jmp $+16” is inscrutable Just like the difference between 'him' and 'her' is inscrutable taken out of context, but that's why LLMs have embeddings they use to store contextual information in huge vectors and have an input processing phase during which the input tokens gain contextual information, so that the LLM knows that 'him' refers to 'Peter' and 'her' refers to 'Jane'. Li…

> Just like the difference between 'him' and 'her' is inscrutable taken out of context,

The context is pretty flexible, like "Do you know Jim? I saw him at the store." Or, "Do you know Jim? Fifteen days ago, I saw him at the store." There’s a relatively small universe of pronouns (him, her, that, who, etc) and the pronouns refer to a token nearby (in this case, Jim).

With machine code, there’s a massive set of jump offsets, and the referent isn’t a token, but rather a location to start processing.

> In fact, I think LLMs are actually surprisingly good at this kind of abstract symbol manipulation,

When you’re manipulating machine code, you’ve stepped away from abstract symbol manipulation and you’re just manipulating byte values now.

I don’t think your argument here is convincing. Maybe you can point to a demo or some architecture where this works. But my sense is this—once you start designing a harness to make LLMs capable of writing machine code, or designing an architecture for LLMs to write machine code, something in your implementation probably looks like an assembler, and something in your internal tokenization of the machine code probably looks like a higher-level language.

Re: I hate compilers

#155

Earlier quoted context omitted.

> 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.

If it's dumb and it works, is it really dumb?

Re: I hate compilers

#156
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…

I agree, also making it do useful work could detract from how well it works as bot-prevention. Recaptcha suffered from its own success eventually, having to ask people to read nearly impossible things, and now many sites are instead asking me to solve puzzles with no practical use.

P.S. Great to see you, omoikane

Re: I hate compilers

#157
post #155

Earlier quoted context omitted.

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

If it's dumb and it works, is it really dumb?

No it's not dumb, but I don't get how it manages to be so light still. Like I visit an Anubis-guarded site and barely have to wait. Scrapers really see that little CPU usage or wall time and back off? Or maybe that's just cause I'm not visiting sites that are under attack.

Re: I hate compilers

#158
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 last time I evaluated doing protein folding it required gigabytes of disk-data to make it happen. If there's a way to do it without needing gigabytes of disk-data, I'm at least interested in hearing it out.

Re: I hate compilers

#159
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…

"One of the easiest"

It's meant to be a trivial counterexample. Like saying "-1" to the claim "there's no number smaller than 0" to someone who's not familiar with math, the author is saying "build-dependent macros" to the claim "compilers are deterministic" to someone who might not be familiar with compilers.

Re: I hate compilers

#160
post #155

Earlier quoted context omitted.

If it's dumb and it works, is it really dumb?

No it's not dumb, but I don't get how it manages to be so light still. Like I visit an Anubis-guarded site and barely have to wait. Scrapers really see that little CPU usage or wall time and back off? Or maybe that's just cause I'm not visiting sites that are under attack.

It chooses the challenge weight based on signals. If your phone looks like a phone from a residential IP you get a simple challenge.

If you then spam requests you might get another, harder, hallenge appear.

If you have a data center IP and look like bot traffic you get a hard challenge out the gate.

AFAIU after looking at their docs several months ago.

Post reply on HN