|
TheGreatAndPowerfulOz wrote: if I'm forced to use it
Wait.
Do you mean Win 3.11?
Or, do you mean dotnet Core?
Dotnet core really is cool. It is amazingly flexible and you still get to use C#!
|
|
|
|
|
Win 3.11
#SupportHeForShe
Government can give you nothing but what it takes from somebody else. A government big enough to give you everything you want is big enough to take everything you've got, including your freedom.-Ezra Taft Benson
You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun
|
|
|
|
|
hanselman goes all the way with what not to do ..... ........ ..... ... ......
Caveat Emptor.
"Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long
|
|
|
|
|
In this blog post, I’d like to show you how I could quickly improve my old project with Modern C++. Thanks to using the newest compilers and free code analysis checkers you can cover and modernise a lot of code. I thought "real" C++ developers eschewed IDEs?
Yes, I just really wanted to use eschewed today. Probably inappropriately, but hopefully you understand anyway. I know many developers are quite keen on proper English usage.
|
|
|
|
|
How does adding/removing noexcept in C++ work in practice? It gave immediate flashbacks to the horror that Java's exception specifications became in any larger code base if you did anything to change the exception behavior of a low level function.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
You're telling the compiler that either this function won't throw exceptions, or that the program should crash if it throws any exceptions. It lets the compiler optimize the code.
|
|
|
|
|
And when you've got something like:
void Function1() noexcept
{
Function2();
}
void Function2() noexcept
{
}
...and then at some point in the future you change Function2 to throw an exception, do you then end up having to ether update functions everywhere up the call chain propagating the change, or have a zillion new warnings (errors?) cluttering up your codebase and that of anything that consumes it. Javaland ended up doing a lot of grotesque contortions to avoid breaking API specifications by changing what exceptions were thrown. This smells like a lighter weight version of the same thing.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
In the Points of Interest section at the end of this article[^], I mention why I loathe noexcept . It should never have been allowed in any case, for the same reason that
inline has been effectively repurposedregister has been deleted- there is a proposal to remove
volatile
That is, telling the compiler what to do (inline , register ) clutters the language with noise, and compilers that introduce errors during optimization (hence the need for volatile ) should be taken out and shot.
A noexcept function can call functions that throw. But if one of them throws, abort will get invoked.
|
|
|
|
|
Greg Utas wrote: there is a proposal to remove volatile
People working in embedded land have got to be loving that one.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
It's a C++20 proposal, and I don't think it's a problem provided that the compiler does exactly as it's 🐘ing told. I've never used volatile and haven't read the proposal, but if some weenie involved with C++ standards submitted it, I must assume (perhaps mistakenly) that it's feasible.
|
|
|
|
|
volatile is deceptive. It has a very narrow legitimate use case and even then, there are better, safer, solutions.
|
|
|
|
|
Out of curiosity, what is the safer solution to keep the compiler from thinking it can optimize a memory read to a cached value in a register when the value at the address is being updated by something outside of the program the compiler knows about?
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
You have identified the legitimate, narrow use case. However, even that is problematic, especially with modern CPUs (For instance, if the value in question is not memory aligned, especially true with structs. Also, the CPU itself may cache the value(s).)
The problem arises is devs thinking volatile guarantees atomicity and/or is a reliable way to do synchronization.
|
|
|
|
|
"Universal memory" is, in essence, a memory where the data is very robustly stored, but can also easily be changed; something that was widely considered to be unachievable—until now. I needed to post this before I forgot again.
I was going to go with some lyrics from Nina Hagen's "Universal Radio" (as that's what popped into my head first), but I realized that would probably be silly. But then I replaced it with a lame blurb, so ... meh.
Bonus points to them calling it ULTRARAM. I am sad that it doesn't seem to be an acronym though.
|
|
|
|
|
Kent Sharkey wrote: I realized that would probably be silly Are you losing the plot, or what?
An interesting enough article, which stupidly almost lost me with the headline ("new deadline"? WTF?) and the article-usage error in the first sentence of the second paragraph.Kent Sharkey wrote: Bonus points to them calling it ULTRARAM. I am sad that it doesn't seem to be an acronym though. It's wrong, then. No acronym, no capitals: "UltraRAM", "ultraRAM", "URAM", or "uRAM".
Of course, it doesn't matter, getting things like that right -- it's only communication, the enabler of every single advance and invention the human race has ever achieved, so we don't even need it, really; we can just go back to living in caves, and hitting hairy elephants with sticks.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Beef is an open source performance-oriented compiled programming language which has been built hand-in-hand with its IDE environment. Oh. Here it is.
"Beef is a performance-oriented compiled programming language. The syntax and core library design derives from C#, but there are many semantic differences due to differing design goals. "
|
|
|
|
|
mmmm.... if beef is that... what is BACON?
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Nelek wrote: what is BACON? A thin subset of Beef. Can easily be incorporated into areas where a whole beef wouldn't fit.
"Five fruits and vegetables a day? What a joke!
Personally, after the third watermelon, I'm full."
|
|
|
|
|
Bacon is at the presentation level; Beef makes something edible, bacon makes it yummy
Director of Transmogrification Services
Shinobi of Query Language
Master of Yoda Conditional
|
|
|
|
|
[Lights pipe and settles back in the comfortable chair, in front of the fire]
I wonder if articles will still be written about it in 50 years' time, as they are with C.
[Coughs and splutters because he doesn't smoke]
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Wow.. this looks interesting...
|
|
|
|
|
show me the beef file
Caveat Emptor.
"Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long
|
|
|
|
|
Sometimes, you have to convince people that you need to invest in refactoring in order to improve the quality of a piece of code in order to keep working with it. It keeps going faster and faster until you have no hope of finishing?
Or:
You always get the crooked pieces when you least need them?
|
|
|
|
|
Kent Sharkey wrote: It keeps going faster and faster until you have no hope of finishing?
Or:
You always get the crooked pieces when you least need them? Or:
Technical Debt Is like a game of Baldur's Gate
Or:
Technical Debt Is like The Masked Singer
Or:
Technical Debt Is like a thumb that's been sucked too much
The way he crushed, squeezed, and squashed the metaphor into the article demonstrates that the content of his articles probably depends on what the guy is into at the time.
[edit]
I just had to correct two inflection errors!
That's a bad, bad, bad day!
[/edit]
I wanna be a eunuchs developer! Pass me a bread knife!
modified 21-Jan-20 11:46am.
|
|
|
|
|
Technical debt is like articles by authors trying to sound intelligent and comment writers trying to be cleverly snarky who don't know how to end their comment....
|
|
|
|