Some cities have streets where internal combustion engines are banned.
Some have bans on just diesel engines. Others ban combustion engines during some hours.
Some inner-city congestion taxes have been introduced for health reasons.
Second-hand smoke does affect people around you. It is how people get addicted to nicotine. It is how new smokers are created.
And there are some people who are more sensitive to temporary exposure to smoke (and pollution in general) than others.
That is why smoking tends to be is banned around hospitals and day care centers — because those are places where you will find those people.
My father was one of them, after he had got his larynx removed for throat cancer after having smoked for decades. He could not suffer being subjected to even small amounts of second-hand smoke again because then the breathing hole in his throat would get irritated, fill up with mucus and have to be cleaned with a suction device.
And if you drink alcohol next to me, it does not make my clothes and my hair stink so much afterwards that I will want to wash my hair and change my clothes before going to bed.
I don't think that is AI slop. adrian_b often post long posts because he thinks he has a lot to say, but you can often tell that they contain his personal views and points that he thinks are important related to the discussions whereas actual AI slop tends to be bland and generic.
There are algorithms to align allocations and use metadata in unused pointer bits to encode object start addresses. That would allow Fil-C's shadow memory to be reduced to a tag bit per 8-byte word (like 32-bit CHERI), at the expense of more bit shuffling. But that shuffling could certainly be a candidate for hardware acceleration.
There is a startup working on "Object Memory Addressing" (OMA) with tracing GC in hardware [1], and its model seems to map quite well to Fil-C's.
I have also seen a discussion on RISC-V's "sig-j" mailing list about possible hardware support for ZGC's pointer colours in upper pointer bits, so that it wouldn't have to occupy virtual memory bits — and space — for those.
However, I think that tagged pointers with reference counting GC could be a better choice for hardware acceleration than tracing GC.
The biggest performance bottleneck with RC in software are the many atomic counter updates, and I think those could instead be done transparently in parallel by a dedicated hardware unit.
Cycles would still have to be reclaimed by tracing but modern RC algorithms typically need to trace only small subsets of the object graph.
That does look a little suspicious. There do exist AI-based tools now that can take other people's blogs and rewrite them with other words. Those are all the rage over on Reddit subs on blogging for ad revenue ...
The "Dragon Book" is big on parsing but I wouldn't recommend it if you want to make many optimisation passes or a back-end.
The first edition was my first CS textbook, back in the '90s and as a young programmer I learned a lot from it.
A couple years ago, I started on a modern compiler back-end however, and found that I needed to update my knowledge with quite a lot.
The 2nd ed covers data-flow analysis, which is very important.
However, modern compilers (GCC, LLVM, Cranelift, ...) are built around an intermediate representation in Static Single Assignment-form. The 2nd ed. has only a single page about SSA and you'd need to also learn a lot of theory about its properties to actually use it properly.
Parsing is the front end to a compiler. Can't get semantics without first recognizing syntax. I have a hard time thinking about programming languages without seeing them as a parsing exercise first, every time.
Syntax and semantics are never orthogonal and you always need syntax so it must be considered from the start. Any reasonable syntax will quickly become much more pleasant to generate an ast or ir than, say, manually building these objects in the host language of the compiler which is what the semantics first crowd seem to propose.
It also is only the case that most of the work is the backend for some compilers, though of course all of this depends on how backend is defined. Is backend just codegen or is it all of the analysis between parsing and codegen? If you target a high level language, which is very appropriate for one's first few compilers, the backend can be quite simple. At the simplest, no ast is even necessary and the compiler can just mechanically translate one syntax into another in a single pass.
I think his point is that "form follows function".
If you know what kind of semantics you're going to have, you can use that to construct a syntax that lends itself to using it properly.
> The recommended advice is to start with semantics first. Syntax will change, there is not much point fixing it down too early.
It's actually the reverse, in my opinion. Semantics can change much more easily than syntax. You can see this in that small changes in syntax can cause massive changes in a recursive-descent parser while the semantics can change from pass-by-reference to pass-by-value and make it barely budge.
There is a reason practically every modern language has adopted syntax sigils like (choosing Zig):
pub fn is_list(arg: arg_t, len: ui_t) bool {
This allows the identification of the various parts and types without referencing or compiling the universe. That's super important and something that must be baked in the syntax at the start or there is nothing you can do about it.
Getting an overview of parsing theory is mainly useful to avoid making ambiguous or otherwise hard to parse grammars. Usually one can't go too wrong with a hand-written recursive descent parser, and most general-purpose language are so complicated that parser generator can't really handle them. Anyway the really interesting parts of compiling happen in the backend.
Another alternative is basing the language on S-expressions, for which a parser is extremely simple to write.
I used to do cosplay. Many costumes from movies, TV-series and anime are of characters that wield guns, often unique or at least quite distinctive guns. Carrying the correct gun is sometimes a thing that identifies the character, and therefore is an integral part of the cosplay.
For example, I used to cosplay for charity in the Star Wars costuming club 501'st Legion [0], where for most costumes a blaster gun of high likeness to the original is required. It has hundreds of members in California.
These days, it is very common to make cosplay accessories through 3D-printing.
A ban on replica guns parts would hit the hobby hard.
So that law would also diminish the glorification of weapons in pop culture then. I guess that would be seen as positive side effect for the people supporting this ban.
I really want to highlight this comment to everyone who's on the fence on gun rights or still believes that compromise is possible. This is the position of hardline anti-gun people, their billionaire funded NGOs, and the politicians they finance.
It's not about reducing excess death, it's not about gun violence, it's about abolishing all civilian firearms ownership and removing any positive association of firearms or self defense from the culture. There is no compromise possible because they will never be happy with anything less.
I firmly believe it’s a disinformation campaign run by Russia to make a potential invasion easier, and anybody peddling “gun control” is really just a useful idiot.
How about blasting caps? Those are integrated into modern brass cartridges, and I think making them that way would require more precision than you'd be able to achieve with simple hand tools and an anvil.
19th century revolvers tended to require separate blasting caps, but you still had to buy them even if you could make the bullets.
Tiny objects are harder to regulate. Many drugs are illegal but are still easily accessible due to their small size and transportability.
The correct action at this point in a society that wanted to keep guns legal but better regulated would be regulation of barrels. They are the only item left that are truly difficult to make in quantity and hide easily.
reply