If I, a human, read the source code of $THING and then later implement my own version, that's not a "clean-room" re-implementation. The whole point of "clean-room" is that no single person has access to both the original code and the new code. (That way, you can legally prove that no copyright infringement took place.)
But when an AI does it, now it counts? Opus is trained on the source code of Clang, GCC, TCC, etc. So this is not "clean-room".
At one point there were issues with LLMs regurgitating licensed code verbatim. I have no doubt that Claude could parrot a large portion of GCC given correct prompting.
Being able to memorize the various C compiler implementations, alongside the sum of human knowledge, is an incredible feat. However, this is in a distinctly different domain to what a human does when writing a clean-room compiler implementation in the absence of near perfect recall of all C compiler implementations. The way that Claude solved this is probably something a human can't do, the way a human would solve this is definitely something Claude can't do.
Copyright doesn't protect ideas, it protects writing. Avoiding reading LLVM or GCC is to protect you from other kinds of IP issues, but it's not a copyright issue. The same people contribute to both projects despite their different licenses.
They don't call Clang a "clean-room implementation". Unlike Anthropic, who are calling their project exactly that
A clean-room implementation is when you implement a replacement by only looking at the behavior and documentation (possibly written by another person on your team who is not allowed to write code, only documentation).
That's not the only way to protect yourself from accusations of copyright infringement. I remember reading that the GNU utils were designed to be as performant as possible in order to force themselves to structure the code differently from the unix originals.
Feb 1: receive monthly paycheck Feb 2: spend all of it on strippers/drugs/alcohol/twinkies/etc. Feb 3: I'm hungry.
Unless you are prepared to let the wagies starve to death, wages will never work.
Or to put it in less sarcastic terms: Why would UBI payments be more likely to be squandered than any other monthly payments? Especially by people who can't afford food without it. Are there any studies that show such behavior?
I suppose the difference is that we have a means-tested program which the wagies can fall into. Was the proposal to have a UBI with a means-tested program behind it? I thought most UBI proponents count on turning off the means-tested program in order to fund the UBI program.
At $1k/month for 340m people, we will double social welfare spending per capita if we don't turn off the existing programs. That will put the US at the tippy-top of per-capita spending above even Luxembourg. Fascinating.
Hmm, means-tested program behind UBI would mean you get more money if UBI is not enough, right? I have heard some arguments in favor of that, for example for disabled people. You are right that those programs need to be a lot smaller and simpler to be worth the bureaucracy. But I doubt "I spent it all on prostitutes" would qualify you for that.
Other UBI advocates don't want any additional program like that. I think healthcare would need to change a lot to make that viable.
Or if you mean spending restrictions like those that exist for food stamps, then yeah, UBI usually means getting rid of those. So the argument there would be "people who are on food stamps instead of a job are idiots (sic) / too irresponsible to spend it wisely, so we must control what they spend it on", which is one of the foundational ideas that UBI advocates disagree with.
I'd like to add that I feel quite strongly "Universal" and "Basic" are hugely probematic words. You end up with massive digressions immediately.. case in point.. look at this AMA for proof:
How much of that MASSIVE SET OF DIGRESSIONS (which Neil handled like a gentleman, because he's a truly nice person) could have been avoided by not using "universal" (like, every atom in the universe? every person in the world? every mammal in this country) and "basic" (what is basic, even?) ..
Not everything is made from wires and transistors. And that's why these things are usually not measured in powers of 2:
- magnetic media
- optical media
- radio waves
- time
There's good reasons for having power-of-2 sectors (they need to get loaded into RAM), but there's really no compelling reason to have a power-of-2 number of sectors. If you can fit 397 sectors, only putting in 256 is wasteful.
Since everything ultimately ends up inside a base-2 computer across base-2 bus that even if these media aren't subject to the same considerations it still makes sense to measure them that way.
The choice would be effectively arbitrary, the number of actual bits or bytes is the same regardless of the multiplier that you use. But since it's for a computer, it makes sense to use units that are comparable (e.g. RAM and HD).
Buses and networking fit best with base 10 bits (not bytes) per second for reasons that are hopefully obvious. But I agree with you that everything else naturally lends itself to base 2.
I agree it's great, but that risk is so major that I stopped using it. "There's a 50% chance that your editor will invisibly corrupt the data you enter, and another 30% chance to corrupt the entire file" is just not usable...
Especially in Zed where the only way to switch hard tabs is buried in the settings menu, and impossible to change per buffer.
Lack of control over your editor's behaviour shouldn't be acceptable on this level. Just like making tabs/spaces visible, control like this ahould be a basic feature of every editor.
You'd think more editors would be smart enough to recognize that it's a TSV file and therefore should preserve the tabs, in much the same way that you'd think editors would be smart enough to recognize that something's a Makefile and therefore should preserve the tabs.
It gets tricky when you have a TSV inside Markdown. I don’t think I’ve ever seen tabs used for indentation in Markdown in the wild, though it probably does work.
We could, however, make the Tab key insert spaces if the cursor is in the beginning of a line, and a literal \t if it’s in the middle. This way, you can write a TSV table pretty much anywhere you want.
Lots of people. Several people from Arm and Microsoft, various PhD students... I don't know if anyone working at Facebook worked on the JIT, maybe they did.
It's great to hear you've already tried X twice. But have you tried reading our FAQ section on X? Also, try using this setting that doesn't exist or this dialog that was removed in 2022
Depends. If it takes an assembly programmer 8 hours to implement <X>, can an equally proficient Python programmer spending 8 hours to implement <X> create a faster program?
Let's say they only need 2 hours to get the <X> to work, and can use the remaining 6 hours for optimizing. Can 6 hours of optimizing a Python program make it faster than the assembly program?
The answer isn't obvious, and certainly depends on the specific <X>. I can imagine various <X> where even unlimited time spent optimizing Python code won't produce faster results than the assembly code, unless you drop into C/C++/Zig/Rust/D and write a native Python extension (and of course, at that point you're not comparing against Python, but that native language).
But when an AI does it, now it counts? Opus is trained on the source code of Clang, GCC, TCC, etc. So this is not "clean-room".
reply