> The CPU also doesn't care if you use prefixes that aren't valid for a specific instruction, for example a REP on a non-repeatable instruction.
This is one of the reasons why the x86 could be extended so much. PAUSE is just REP NOP, for example. Segment prefixes in front of conditional branches were used as static branch prediction hints (which I believe have returned in some newer Intel CPUs). Useful if you want to make a hint on newer CPUs that is harmless on older CPUs.
Some prefixes have become part of the encoding for certain SIMD instructions, but that is a different case because those prefixes aren't hints.
The correct behavior for allowing future extensions has already been introduced by Intel with 80186, in 1982, which has introduced an invalid instruction exception, to be used for all undefined instruction opcodes.
This behavior was unlike 8086/8088, which happily executed any undefined instructions, most of them being aliases to defined instructions.
For any opcode where current CPUs generate invalid instruction exceptions, it is very easy to define them in future CPUs to encode useful instructions. Had REP NOP generated exceptions in old CPUs, it would have been still fine for it to become PAUSE in current CPUs. Unfortunately, the designers of Intel CPUs have not always followed their own documentation, so not all invalid opcodes generate the exception, as they should. The non-enforcing of this condition has led to the existence of even commercial programs that are invalid or of compilers that generate officially invalid instructions.
It is true that there are a few cases when Intel has exploited the fact that some encodings were equivalent with a NOP on old CPUs, by reusing them for some instruction on new CPUs, where this allowed the execution of a program compiled for new CPUs on old CPUs. However this has been possible only for very few instructions, e.g. for branch direction hints, when not executing them on old CPUs does not change the result of a program.
In general the reuse of an opcode for a new instruction, when that opcode does not generate exceptions on old CPUs, is very dangerous, because the execution on old CPUs of a program compiled for new CPUs will have unpredictable consequences, like destroying some property of the user.
Your example with PAUSE is also one of the very few examples, besides branch hints, where the execution of a new program on old computers is not dangerous, despite the reassignment of the opcode.
Some time ago there was a discussion about a bug in some CPU, but I do not remember in which one, where the bug was triggered when the order of the REP prefix and of the 64-bit REX prefix was invalid, but the invalid order was ignored by the older CPUs instead of generating the appropriate exception, which allowed the execution of invalid programs, which did not have any bad effects on old CPUs, but they triggered the bug on that specific new CPU.
The new CPU should have been bug-free, but also the programs that triggered the bug should not have existed, as they should have crashed immediately on any older CPU.
There is utility for having a reserved set of opcode space for "NOP if you don't know what the semantics are, but later ISAs may attach semantics for it," because this allows you to add various instructions that merely do nothing on processors that don't support them. The ENDBR32/ENDBR64 instructions for CET, XACQUIRE/XRELEASE hints for LOCK, the MPX instructions, the PREFETCH instructions all use reserved NOP space (0F0D and 0F18-0F1F opcode space).
This is true, but the encoding space reserved for future extensions that is interpreted as NOP should be many times smaller than the space for encodings that generate the invalid instruction exception.
The reason is that the number of useful instructions that are only performance hints or checks for some exceptional conditions, so that if they are ignored that does not have bad consequences, is very limited.
For the vast majority of instruction set extensions, not executing the new instructions completely changes the behavior of the program, which is not acceptable, so the execution of such programs must be prevented on older CPUs.
Regarding the order of prefixes, Intel has made mistakes in not specifying it initially in 8086 and in allowing redundant prefixes. The latter has been partially corrected in later CPUs by imposing a limit for the instruction length.
Because of this lack of specification, the various compilers and assemblers have generated any instruction formats that were accepted by an 8088, so it became impossible to tighten the specification.
However, what is really weird is why Intel and AMD have continued to accept incrorrect instruction encodings even after later extensions of the ISA that clearly specified only a certain encoding to be valid, but in reality the CPUs also accept other encodings and now there are programs that use those alternative encodings that were supposed to be invalid.
The prefix structure has been enforced starting with the VEX prefixes (which is a lot later than it should have; AMD made a mistake not enforcing more rules around the REX prefix). The legacy prefixes are of course an unfixable mess because of legacy.
Note that the Grauniad figures include some very unusual heat waves. There's no way the normal average could be a lot higher in years that were a lot colder.
What would be strange are hackers that are fascist. Fascism demands surrender to power and obedience, which is antithetical to the hacker sprit. Questioning systems, equalizing power imbalances is the hacker spirit.
There's plenty of European technologists who feel completely alienated from most stuff around c3 and hacker spaces because, believe it or not, most members there do tend to adhere to radical left-wing ideologies. This usually invites a whole grab bag of problems, if one has more right-wing beliefs and tries to engage.
I will concede to you that it did not used to be this bad. But it is now. Chalking this issue up to a 'long tradition' is like saying: "Community X has a long tradition of radicalization, so it's a-ok!"
Fighting fascism is required of every person who wants to keep a working democracy, regardless of your fiscal policy ideas or how egoistical you want your government to represent you.
Democracy is what allows you to remove bad leaders/parties without having to fight a bloody revolution. Fascism yearns to remove that possibility. Hence anti-fascism being needed.
That being said: Which part of the talk did you find especially extremist?
This "anti-fascism" talk sounds all nice and noble. But we all know that actual left-wing extremists have taken over the term now and most members are terrorist-adjacent. The irony is that antifa and other such "anti-fascists" are way more fascistic than their hypothetical and currently non-existent "fascists".
> The irony is that antifa and other such "anti-fascists" are way more fascistic than their hypothetical and currently non-existent "fascists".
Ah yes, the non-existent fascists that:
1. Marched openly as neo-Nazis in Charlottesville (2017), chanting "Jews will not replace us," resulting in the murder of Heather Heyer
2. Organize under explicitly fascist banners like Atomwaffen Division, The Base, Patriot Front, Blood Tribe, Golden Dawn, CasaPound, etc., all of which self-describe using fascist or Nazi ideology
3. Attempted to overturn a democratic election on Jan 6, 2021, including coordinated efforts by elected officials to submit fake electors and pressure state officials to "find" votes
4. Advocate ethno-states and mass deportations, including prominent figures calling for the removal of citizenship, voting rights, or legal protections from minorities (see CPAC speeches, "remigration" rhetoric in Europe, AfD platform language)
5. Celebrate or inspire political violence, from the Christchurch, El Paso, Buffalo, Halle, and Oslo attackers, all of whom explicitly cited fascist or white supremacist ideology in their manifestos
6. Promote leader-worship and elimination of dissent, e.g. calls to jail journalists, dissolve independent courts, criminalize opposition parties, or rule "by decree" (explicit in Hungary, echoed rhetorically elsewhere)
7. Attack independent media and academia as enemies of the nation, while advocating state control or punishment for ideological non-compliance
8. Receive normalization or support from sitting politicians, including endorsement, retweets, pardons, or refusal to condemn clearly fascist groups when given the opportunity
Calling this non-existent requires either ignoring explicit self-identification or redefining fascism so narrowly that only a 1930s uniform and a written and signed oath counts. But that definition isn't what any serious person would dare to bring to a discussion.
Meanwhile, "antifa" is not a party, not a centralized organization, has no manifesto, no leadership, no unified program, and no plausible path to state power. Are there idiots who claim the label antifa? Sure. But there are idiots in literally every subset of the population. Conflating street-level illiberal behavior with an actual authoritarian nationalist movement collapses basic political distinctions however.
I still don't see it. bunch of word salad. writing "safer nicotine products" in quotation marks and emphasizing that they ain't safe as if nobody's noticing a straw man argument. from what I gathered - whole thing is based upon Swedish research that states death is 2 times more likely (!!!) AFTER the heart attack while explicitly stating: "No increased risk of MI incidence has been observed in previous studies". because funky data extrapolation. oh well - at least they ain't crying that nicotine is the cause of cancer...
You likely didn’t read the sources. If you are already convinced of your (incorrect) position and assumptions despite ample evidence, why ask for sources?
From the second link:
>In this policy statement, 12 evidence-based key messages that highlight the CV [cardio vascular] toxicity of nicotine are presented, irrespective of delivery system.
So it doesn’t matter if it’s smoking, patches, gum, pouches, whatever. Nicotine is addictive and harmful. Perhaps not as harmful when it’s not combined with tobacco and all the other substances that come with cigarettes, but it’s not benign or harmless.
He is usually insufferable (and misleading) when he talks about AI innovation priorities. This article is different, though. It really does seem like Lilienfeld invented the transistor first and should be given credit for that. It also really does look like the official inventors knew that and were somewhat dishonest.
Funny, btw, that nobody here has mentioned that Lilienfeld also invented the electrolytic capacitor.
How would you distinguish the article from an honest write up about transistors? That is, you know about his crusade in ML, but if you didn't, how would you decide that this article is written in bad faith or not?
I agree that context matters, and I had the same thought as you. But does that mean that anything he writes on the topic of "who was first" is inherently tainted?
You need a lot of infrastructure for trains (and a lot of it isn't even used all that much -- it's not like all rails have a train passing by every 5 minutes). You also can't get much use out of your rolling stock because the speeds are fairly slow. You also don't have the same flexibility as planes have regarding routes.
The upshot is that trains are a lot costlier than most believe think and most railway routes require state subsidies (with goods transport usually being an exception), whereas air traffic works so well it can be taxed heavily.
Air traffic is not taxed heavily compared to other modes of transport - on the contrary, it is very heavily subsidized (at least in Europe): Regional airports often strongly depend on state subsidies, airlines are exempt from petroleum taxes, flight tickets are VAT-exempt.
In Germany (and also e.g. Switzerland), long-distance trains are expected to run either at cost (or make a profit). Short-distance trains (regional transport) are usually subsidized.
Sounds neat but what kind of range limits would that impose on each trip? Switching from one means of transportation to another, even if both are buses, increases the total travel time significantly. Not to mention all the hassle involved for passengers.
trains can be superfast. For example a tgv from strassbourg to marseille is 5-6h. Same with car is for me 8h. Bus is even slower so I would wildy guess 12h. Plan is btw 1 1/2 hour.
This is one of the reasons why the x86 could be extended so much. PAUSE is just REP NOP, for example. Segment prefixes in front of conditional branches were used as static branch prediction hints (which I believe have returned in some newer Intel CPUs). Useful if you want to make a hint on newer CPUs that is harmless on older CPUs.
Some prefixes have become part of the encoding for certain SIMD instructions, but that is a different case because those prefixes aren't hints.
reply