> Java doesn't let you directly ask for some reference type to go on the stack but does escape analysis to try really hard to put your Object memory on the stack for you anyway
Is that a new hotspot feature? I thought it can only do scalar replacement (avoiding object allocation and keeping the object fields in registers).
We have several times experienced having to change the electronic board. It cost more than buying a new washer. The electronics does many many options, almost none of which we care about. I would just like a button or dial, and just press go but there are no units like that on the market.
How does that manifest itself? I'm asking because I'm pretty sure that no washing machine in my extended family (parents, siblings, etc.) has broken down because of this in the last 45 years. All but one have made it well over 12 years. Three had problems during their lifetime: One needed a new control board, two needed a new waste water pump.
(I know all this because I recently had to replace our 17-year-old washing machine and I wanted to know which brand to buy)
It should get noisy and rotate less freely then ultimately seize up. From there it depends on the drive type, in direct drives the motor burns, in belt drives the belt gets worn.
Perhaps, but certainly consistent. John was famously not a fan of large government, be it the USSR, the USofA, or the EU - a believer in small government and prepared to sell merch to just that end.
I guess it's tongue in cheek, and it is funny, but some of what is written is a bit weird.
"anti-democratic ... empire at the expense of the natural rights, individual liberty, local autonomy, and cultural diversity which made Europe the wellspring of Western civilisation."
Firstly, I wouldn't call Mesopotamia and the eastern Med Europe exactly.
Secondly, lot of cultural and scientific advances that did happen in Europe were under (among others) the Roman, Holy Roman, British and Spanish Empires, which are exactly what he is against!
It's also weird that he thinks the EU "began to sprout" in 2003, a decade after Maastrict.
Latin and Greek are both successors to the Phoenician alphabet. The Phoenicians settled parts of modern day Europe and brought their alphabet and other technologies that they inherited from Mesopotamian civs. The Greeks would have been nowhere without Babylonian maths and astrology.
West and East is very grey though. I've made a distinction that I'm happy with, and pointed out why I'm not happy with John's.
It seems like satire today given what's happened in the last 10 years but given it was published 2003, he was well ahead of the times and possibly writing with tongue in cheek, even if he did believe the thrust of it
That isn't how evolution works (or at least it is a gross generalization that is borderline wrong).
You own cells mutate over your lifetime and the mutations may trigger genetic features across your entire body. Sometimes, these mutations cause errors that we call cancer, but not always.
Evolution is when a certain genetic feature provides better fitness (which doesn't necessarily have to come from a mutation), and then gets selected through mating. For example, if suddenly people with brown hair were a better mate, it would be much more likely for the next generation to have brown hair, until non-brown hair were "evolved" out of the gene pool completely and it would be impossible to not have brown hair.
This is how we got orange carrots, which are distinct from the previous non-orange carrots, for example.
So evolution is copying the state of a running executable (one that’s poorly memory managed and dependent on external variables) instead of the file itself, and evolution favors favors the copies that survive and maybe even run faster or are otherwise better.
Not exactly, evolution doesn’t happen instantly. A digital comparison to an organism would be something like this:
An organism is a collection a billions of threads all running the same code but starting at seemingly random entry points. Before dying, each thread forks one or more threads (depending on external factors like available memory).
In order to reproduce, the “father” code sends a copy of its current code, but only the bottom word of every byte. The “mother” program combines this with the top word of every byte and then executes it in a chroot jail to make sure it will actually run. Once it is confident it will run, it “births” it onto its own machine.
Every thread in this process is running on non-ECC memory, with cosmic rays bit-flipping things, though there are threads running around making fixes to broken threads (actually, just killing them before they can fork).
The implementation of the threads isn’t relevant here (such as modeling proteins, atp pumps, and such).
In this, evolution fitness would be less cancer (fork bombs), doing usable work, successfully mating, etc. This evolution pressure might look like preventing mating until the program is a certain age or performed certain milestones and a “score” of how well it has done its work (both partners want a good “life score” but not too high — liars could exist! — to proceed with mating).
Evolution would occur naturally over many generations. From one generation to the next, they look nearly identical, but from hundreds of generations they might look identical, or not. The “not” part is evolution.
I was expecting that at the end it would turn out that the records of the lost civilization are full of symbols of a certain religion, let's say the "Om" sign or whatever, and that the priest would then realize: "Oh shit, religion XYZ was right all the time" or something like that.
Actually, I like my ending better :)
I guess we had to wait till Douglas Adams for such absurdities.
I couldn't edit my above post in time because the server was unreachable. What I wanted to add:
I think I misunderstood the blog author's question. He wasn't asking about the ENTER statement with a non-zero argument, but about the special ABI with arrays of frame pointers.
I think you could, but you wouldn't leave your phone in the shop for other employees to use. You would have to buy a dedicated phone for the purpose... At that point you can also buy a dedicated calculator instead.
This device is for 40 USD. What phones can you buy at this price point that provide the same latency, reliability, and big keys you can smash, as this device?
Because these are businesses that are probably using a calculator anyway.
It's very much a cultural thing - punch numbers into the calculator and pass it back and forth when negotiating on a price, or add up the costs on a physical calculator on your market stall. You aren't giving receipts or anything, so hard to keep track.
I'm in the UK so don't see it often, but if you go to India / Vietnam / Thailand etc you see lots of people punching numbers into calculators everywhere rather than using some sort of POS system.
Asking why you don't just use your phone with a numberpad is missing that the selling point here is that the user interface IS a calculator.
One of the big draws is a tactile interface that you don't have to look at while you punch in the numbers. Smartphone touch screens don't offer that and brick phones are too dumb or the models that do have some form of smart OS are not available in these places. This seems like a good way to tap into an existing market that's fairly huge while adding smart features
I remember that I didn't like the Dragon Book when I was a student. But I don't remember anymore why :) (I think I found it poorly structured, and with too many details for some topics and not enough details for others).
If you already have some base knowledge, you might like this:
I also disliked the Dragon Book as a student. I found it to have too much of an emphasis on lexing/parsing and not enough discussion for optimizations/analysis for my liking. I liked Advanced Compiler Design and Implementation by Muchnick, although it does have some warts (ICAN; less discussion of SSA than I would've liked) and I think it is a bit dated now.
FYI: replacing the 18 with 23 in your link to 411 gets you a slightly updated version.
I suspect that the emphasis is an artifact when the Dragon Book was written - getting a decent parser was rather more of a challenge, and heavily optimising compilers a lot less common.
Not just that, but the theory that drives modern compilers, like graph coloring register allocation and static single assignment form, weren't conceived until the mid 1980s (1984 and 1986 each), and better implementations of those theories were written about in the 90s. Linear scan register allocation was first written about in 1999.
You can compare these books:
Engineering a compiler: VAX-11 code generation and optimization, which was published in 1982, talks about the design and implementation of the PL/I compiler for the DEC VAX-11.
You can compare it to Bob Morgan's Building an Optimizing Compiler, which was published in 1997. The techniques he discusses there are a lot closer to how LLVM works today than the 1982 book.
Is that a new hotspot feature? I thought it can only do scalar replacement (avoiding object allocation and keeping the object fields in registers).