|
But some people think poop emojis are cute. 💩💩💩
|
|
|
|
|
Hack'o'soft? What?
|
|
|
|
|
It’s always been a bit tricky distributing my Python code because of package management, Python interpreter management, etc. Also, trying to ask non-devs to install/run Python code never goes well. Pick a peck of packaged Python to prize product parcels
|
|
|
|
|
Current hardware trends make C++ exceptions harder and harder to justify. This paper illustrates and quantifies the problem and discusses potential future directions to fix exceptions. He takes exception to them
|
|
|
|
|
Designer: I found that handling exceptions for taking the square root of negative numbers is costly!
...
"Let me design my mission critical system so this failure occurs 10% of the time!"
Engineer: "Is there any other possible way to handle this? Like maybe performing some type of check?"
Designer: "Not to my knowledge!"
Engineer: "Ahh! Another graduate of CP's questions forum."
|
|
|
|
|
If you program for a 10% exception rate, then you haven't understood the term 'exception'.
|
|
|
|
|
The crux appears to be this:
Quote: 2) exception unwinding is effectively single-threaded, because the table driven unwinder logic used by modern C++ compilers grabs a global mutex to protect the tables from concurrent changes. This has disastrous consequences for high core counts and makes exceptions nearly unusable on such machines [later giving the example of 256 cores]. I don't get the nuance of the global lock and have to wonder if a lock dedicated to in-progress exceptions or these mysterious "tables" would suffice.
Not to mention that anyone running massive concurrency on 256 cores, apart from some real bespoke CPU-intensive application that inherently lends itself to parallel computation, has less than mush for brains.
|
|
|
|
|
Greg Utas wrote: anyone running massive concurrency on 256 cores, apart from some real bespoke CPU-intensive application that inherently lends itself to parallel computation, has less than mush for brains. But how else are you supposed to get an 8k monitor to output at 120Hz and look good, if you don't break every 17 scanlines into their own processor?
|
|
|
|
|
For this post I’ve distilled these sometimes complex and technical discussions to what each feature means in your code. Spoiler alert!
|
|
|
|
|
One so-called "new feature" (and its explanation) seems absurd to me: [^]
«The mind is not a vessel to be filled but a fire to be kindled» Plutarch
|
|
|
|
|
|
We tend to think of intelligence as something that describes just one individual. But it's possible to describe all kinds of collectives as intelligent, too – whether we're talking about social groups of humans, enclaves of insects, or even the mysterious behavior of slime mold and viruses. Looks around. Yup.
|
|
|
|
|
Trying to give the "Gaia" religion a scientific basis.
|
|
|
|
|
Which makes as much sense as "intelligent design" and other attempts to give creation myths a scientific grounding.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
|
Q: Is there any intelligent life on Earth?
A: Yes, but I'm just visiting.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
I’ve written a lot of data structures before, but I’ve never written one that is “idiomatic”. After doing it, I’m left with the question, is it actually feasible to do any of this correctly? Hardly everybody uses it anymore
|
|
|
|
|
Quote: But exceptions come at a performance cost. So ideally we want to turn them off. So let’s turn them off ... And that's a wrap, folks! Unless you are making programs that rely on throwing exceptions for normal logic flow, in which case you should be completely wrapped up and fired.
But he does go on to make some valid points after spouting that nonsense.
(For newbies - exceptions only impede performance when they are thrown. And they should only be thrown for real issues, not as logic checks. And when they are thrown for real issues, the alternative is almost always complex and time-consuming. Not as time consuming as a full stack unwind, but still problematic, and usually non-trivial to code.)
|
|
|
|
|
I'm looking forward to you taking an exception to another C++ item I have coming up after lunch
TTFN - Kent
|
|
|
|
|
What if I make an exception?
|
|
|
|
|
He makes some reasonable points but also whines. The problem, as I discovered when corresponding with someone who wrote a proposal for handling POSIX signals in C++, is that the standards crowd are very conservative. They're incapable of growing a pair and telling existing users that the next version will have some non-upward compatible changes which will require retesting and possibly rework. And if you're not willing to accept that, then stay on the version you're currently using. So lots of things get bolted on, especially in edge areas that are only of interest to the pedantic, and nothing gets removed.
|
|
|
|
|
Greg Utas wrote: They're incapable of growing a pair and telling existing users that the next version will have some non-upward compatible changes which will require retesting and possibly rework. And if you're not willing to accept that, then stay on the version you're currently using. I can't remember where I picked up this word of wisdom -
Any sufficiently high-versioned standard is indistinguishable from a can of worms.
|
|
|
|
|
You're quoting me! The Lounge[^]
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
I was going to suggest that it must have been ACC who said it.
|
|
|
|
|
GitHub has already published the full contents of the Advisory Database to encourage collaboration. Collect the full set!
"The GitHub Advisory Database is the largest database of vulnerabilities in software dependencies in the world." <- they could have just said, "GitHub is the largest database of vulnerabilities in software dependencies in the world."
|
|
|
|