LLVM deprioritizes helper scripts such as update_analyze_test_checks.py, and the build infrastructure is far from perfect. Scripts like the ones categorizing PRs are very much unpaid work.
LLVM also deprioritizes general cleanup work, such as getting rid off passes that don’t work, and are rotting in the tree: of the top of my head, I can think of GVNSink, LoopFusion.
There are additional problems unique to LLVM, as it doesn’t have a dictator: there are multiple different dependence analysis in tree, for instance.
Many thousands of companies use LLVM in their products and benefit from the technology.
As it is an open source project, in an ideal world, it would e fair to assume they would somehow contribute back, but instead they just take it for granted as there is a group of people who make it available for free.
(please read to the end before posting your "wHy pUt iT oPeN-sOuRcE tHeN???" bigoted comments)
Don't get me wrong: It is perfectly legal for anyone to do so, as the project is available under a permissive license and you are not mandated to do anything to contribute back.
I'm just trying to clarify the point made by OP here, and clarifying that some infrastructure tooling such as compilers and debugger are often taken for granted, and even rich companies opt not to contribute back.
I just looked at 1 page of the most recent commits to the LLVM project and every single one of them is from a corporate developer. I can't imagine how to arrive at the conclusion that the industry takes LLVM for granted. The major LLVM subprojects that I follow are not just largely written and maintained by large companies, but were also initially invented and contributed by them.
LatexML has come a long way. Even arXiv uses LatexML internally to offer HTML5 versions as of late 2023. It does have limitations in not supporting all packages, or producing a high-quality translation in all cases.
If you don't need to convert entire LaTeX documents, MathJaX and KaTeX are really good at rendering a subset of LaTeX as MathML/SVG. I run MathJaX + an xypic extension for commutative diagrams with server-side rendering on my website, and it works great in practice.
I'll look into the Sonos API. The problem I've found with other casting/streaming APIs (Google Cast in particular) is that it expects a single URL to stream from, whereas Ambiphone is just loading individual sound files and playing them simultaneously on your device. It should work fine over Bluetooth but I appreciate that's not the best experience with Sonos and other smart speakers
It's not out of the question at all, I just need to figure out how to combine the sounds server-side and stream them out. On the plus side it should then be pretty simple to make work across different smart speakers, I'm just not sure how complex/expensive it would be to get set up
Honestly, everyone working with C++ sticks to a select subset of the language that they've chosen for their project, or the project they're contributing to. Nobody knows all of C++. Personally, I don't mind C++ forking out in different directions and accepting diverse proposals; while I wouldn't bother to use them myself, I realize that it may be useful to other people.
C++ is an engineer's language, and it's ridiculous to imagine that we'd ever need a C++2.0 that cleans it up. Subjectively, you could say that some features are "ugly", but this is an evolutionary process, and there are bound to be vestigial features.
Yes, there are memory safety issues, but in practice, these are isolated in very few places. Take a compiler like LLVM for instance: most developers are working on transforms or analyses, and they're exposed to zero manual memory management. Sure, the Pass Manager needs to build passes, and the IR needs to be allocated, but that's about all the manual memory management there is.
Personally, I couldn't care less about standardized argv-parsing, as each project has its own set of complex requirements. There are JSON parsing libraries available for C++, and I don't see why it should be standardized. Faster hashing in std could be a low-priority feature, but projects like LLVM have their own optimized version of std data structures and algorithms.
I suppose a module system could be useful; most C++ projects are built with CMake which is already very good at finding and linking dependencies. Personally, my biggest pain point is compile-times, but that's really an LLVM/Clang problem.
Overall, the article doesn't seem to be written by someone who has a lot of experience with large C++ codebases.
> Yes, there are memory safety issues, but in practice, these are isolated in very few places. Take a compiler like LLVM for instance: most developers are working on transforms or analyses, and they're exposed to zero manual memory management.
It is really easy to get use-after-free in LLVM passes due to using eraseFromParent() instead of removeFromParent(), etc. As I recall, in some places the optimization code goes through really awkward patterns in order to keep track of the IR nodes that are dead to avoid UAF, none of which would be necessary if LLVM were written in a GC'd language. (Note: I'm not saying LLVM should be written in a GC'd language.)
It is far more dehumanizing to be so hopelessly addicted to drugs that you’ve lost all ability to support yourself and are shooting up in public. The filming of it is a secondary and far more minor indignity.
We (as a society) consider addicts personally responsible for their actions. For instance, if an alcoholic drives drunk and kills someone, we don't say "oh they're an alcoholic and therefore not responsible for what happened." Whether or not you want to call it a choice is up to you.
But we, as a society, are hypocrites. There are people (anecdotally I think a lot or even a majority), who, when asked, would say that alcohol is not a drug. Simply using the law (alcohol is legal), they will say it cannot be a drug as drugs are illegal or subscribed. This is, of course, non sense.
The other point is that many dui’s and accidents do not happen to alcoholics but rather casual users of alcohol, like students having a drink, no idea what their limits are and getting into a car. That’s different from actual alcoholics who down half a liter of vodka just to get out of bed. I believe they should be treated differently; the latter is ill, the former is a criminal.
Addiction is a disease but society is not kind to the sufferers. It will change though; before the 90s, most mental illness was just ‘don’t whine, walk it off’. Doctors in 80s would send people with anxiety or depression home with a clean bill of health and just ‘work hard, it’ll pass’. If they were women and the doctors men, it would be considered as female hysterics. This all changed quite a bit over the past decades, at least in the west. Addiction will get there and in some countries that is going faster than others.
Any actual Addicts (alcohol or crack or TikTok) operating heavy machinery is a bad idea; functional addicts are just not easy to recognise. An ex colleague of mine is a functional alcohol who drinks exactly 2.5 liters of vodka per day ; he doesn’t drive, he is smart, he functions fully. Not many people know he is an addict. I would say it’s easier to recognise addicts to social media far faster than him because you can see their phone, and when I see them driving while scrolling on their phone, I hope they get a dui and their license taken and then therapy; I am not sure how it’s not as dangerous as driving drunk and yet I see people swerving sitting on their phone daily while swerving without phone is very rare (at least here).
I don’t think you can automatically classify addiction as disease. It can be a disease, but it can also be a compulsion that a “sufferer” chooses to partake in. There is an implicit assumption in your argument that all drug addicts would choose to stop if they weren’t addicted. In my experience, that isn’t true. Many drug users like to use drugs and would not stop using given the choice.
For a more benign example: I “suffer” from dermatophagia. It’s a compulsion that would be very hard for me to stop. But I like doing it. I wouldn’t stop even if I could. This is similar to how addiction is a compulsion, but that doesn’t make the behavior something done unwillingly.
If you are an addict how do you know that the liking is not the addiction? Many ex smokers liked smoking but after really kicking off the habits they cannot stand the smell or thought of it. Same with many ex drinkers; they would tell you they just like drinking and wouldn’t stop, but when they do they dislike the taste even if not full blown alcoholics to begin with. I think you forget that you can only ask them to their choice after waning off the addiction, not while they still have it. Same for your benign pleasure.
But sure, it depends on the case, I didn’t say it didn’t, however I think there is little interpretation for the Philly zombies in this case; given a choice (not addicted and a life that supports that), they would, probably all of them.
I read the title as Philippines at first but Philadelphia makes sadly even more sense. I haven’t really seen a drug/homeless problem as bad as major North American cities anywhere else
The example described in this post is JSON parsing in Haskell, but I've implemented a complicated compiler transform that lifts loops to static control parts (SCOPs), in the past, in C++. Each inner function in the lift would switch on valid constructs, either returning a lifted integer set, or throwing an exception on match failure. Although exceptions have a non-trivial cost in C++, it was the cleanest design I could come up with at the time.
Is tree-sitter really slower than TextMate grammars? Some benchmarks indicate that this isn't really the case [1]. On the other hand, breaking parse trees is a real issue, because the error-recovery in tree-sitter is pretty rudimentary [2][3], but as you said, it's not an issue for Shiki.
Several TextMate grammars suffer from inaccuracy bugs, and issues of maintainability. Perhaps the biggest hindrance in the adoption of tree-sitter, is that the most popular editor, VSCode, still doesn't support it.
Unfortunately, even the LLVM community has chosen a combination of Discord/Discourse, and deprecated their mailing list/IRC channel. This is a very unhealthy trend, and only the most ardent of communities such as Linux/Git/GCC stick to old-fashioned publicly-archived mailing lists.
I still love the language, and maintain my SSG that was written in Ruby over a decade ago. Shame that it's nearly dead now.