Amateur photographer and musician.
Autistic.
| homepage | https://manmachine.me/ |
| Pixelfed | @manmachine@metapixl.com |
| homepage | https://manmachine.me/ |
| Pixelfed | @manmachine@metapixl.com |
Super interesting publication: https://web.ist.utl.pt/nuno.lopes/pubs/ub-pldi25.pdf It analyzes how much compilers actually gain from exploiting undefined behavior to optimize C/C++ code, by hacking up LLVM to eliminate UB and thus denying the optimizer those strategies.
They find that the performance degradation is only on the order of single digit percent, and that quite a few of those losses can be recovered with a little bit of compiler work to make non-UB optimization strategies work a little better.
I find this super interesting, because I'd naively assume that forcing the compiler to assume that pointers can alias would be catastrophic, but instead... it's kinda within the range where you could choose to pay for a slightly bigger computer in exchange for a language that doesn't randomly stab you in the face in non-obvious ways.
Everyone you meet is fighting a battle you know nothing about
The battle is against vampires
Their battles against vampires are basically the same as your own battles against vampires
If only it wasn't considered rude to talk about vampires,
Then maybe we'd realize we're all fighting the same goddamn vampires
I have two broad categories of objections to the GPL and similar licenses:
The first is that, as complex legal documents, they select for people with expensive lawyers. I do not have an expensive lawyer. Microsoft, Apple, Amazon, IBM, and so on have entire legal divisions with expensive lawyers on the payroll. If I want to do something against the spirit of the license, I won't risk it. If a multi-billion-dollar company wants to do such a thing, they will pay a lawyer to come up with a reason that it's fine and outspend you in court if you try to sue them. Good luck with that.
The second is that it's built around the C linkage model and around proprietary-software development and distribution models. Even Objective-C had problems with some of these. We used LGPL for GNUstep, but there were a bunch of corner cases. Objective-C lets you write categories (or use reflection APIs) to replace methods in a class. Is that allowed under the LGPL? Do you need to make the source code available for these? You would if you modified the code, but not if you simply don't use it and replace it with something else. Now what happens if (as we did) you provide a scripting environment with a JIT compiler that can replace methods dynamically? And what happens if you write a document that incorporates a script that replaces a method in a GPL'd program? Do you have to GPL the document?
In my ideal Free Software ecosystem, there is a very blurry line between programs, plugins, and documents. Code in libraries may exist in any of these roles. Yet the GPL assumes that there is a watertight distinction between a program (maintained by the priesthood of programmers) and a document (which the unwashed masses may create). And, at the same time, tries to pretend that this is somehow designed to empower end users.
"permissive licenses like MIT are bad because corporations can just take all or part of your software and pretend like they wrote it"
uhhh no they can't, not without violating the terms of the license agreement, actually. and if they're up for license agreement violation, picking a different license *will not help*
- const tantinople;
+ int stanbul;
Me: new Oblivion would fix me.
My husband: I don’t know… you’re so far gone, it might take a new Morrowind.