cmarinas
cmarinas on Hacker News
CHERI provides spatial protection and is very strong at this but does not handle temporal protection well (use-after-free for example). Once a pointer is given to another code entity/compartment it is hard to revoke the permission since that's tied to the (capability) pointer itself, not the memory it points to. There are workarounds but not that nice.
MTE, OTOH, was specifically designed for detecting temporal bugs. For example, a freed object has the allocation tag (stored in memory) changed by the heap allocator so that the original pointer (with the original tag) can no longer access it. Of course, the trade-off is the 4 bits per 16-byte granule that need to be stored somewhere and the probabilistic nature (1 in 16 chance of hitting it).
But I think CHERI and MTE would complement each other nicely.
NightMKoder's comment was referring to the x32 mode where an application uses the x86_64 ISA and registers but with a 32-bit ABI (ILP32 - int, long, pointers are 32-bit). The kernel is full 64-bit, so there is no overhead like in PAE where the kernel is 32-bit and needs to temporarily map physical addresses above 4GB (using highmem support). On the application side, x32 has some benefits over x86_32 since it has access to a larger register bank and wider registers if needed (e.g long long).
On ARM, there are patches implementing ILP32 with an A64 ISA (AArch64 mode and registers). While there probably is an improvement over the A32/T32 ISA, the benefit is not that great since the 32-bit ARM architecture already had 14 general purpose registers (AArch64 has 30).
The reason the arm64 ILP32 hasn't made it into mainline Linux is not fully justifying the software porting/maintenance cost over the benefit it brings. Full 64-bit software stack is in general a better option unless you run in a very constraint environment but, in that case, an M-class ARM CPU is probably a better option anyway.
I used it in the context of Linux kernel development to model/verify various algorithms. I gave a presentation last year at Linux Plumbers:
http://procode.org/FormalMethodsPlumbers2018.pdf
Slides 4 and 28 list actual bugs found by such modelling.
I do find TLA+ (or formal modelling in general) pretty useful for real world cases, only that, unfortunately, I don't always have the time.
I turned off autocorrect on my wife's phone as her messages didn't make sense ;) (not bothering to check the autocorrected words).
As for multi-language, SwiftKey seems pretty good, you don't need to switch between languages, it handles two (maybe three) at the same time relatively well.
"delivered to server" is different from "delivered to device". Let's say my friend is abroad with no roaming, I have no idea whether a message was delivered to him/her or not. WhatsApp has both.
As I wrote, I think (I might be wrong though) that if you enable E2E encryption on Telegram you can no longer use additional/desktop client.
Well, search for "whatsapp mitm".
Not really. What I missed most in Telegram was "delivered to device" status. While they claim such information wouldn't tell which of the recipient's devices received the message, I see it more as laziness on their side. They could have aimed for "delivered to
any/one device" or "delivered to the
default device". I personally care about whether a message was delivered (and the recipient would eventually look at their phone) or the server is down, recipient doesn't have a data connection etc. and I can try different communication methods. A "read" status is nice but the people I usually talk to tend to reply anyway.
In terms of message storage (ignoring government requests here), Telegram servers need to store them so that they can be provided to different clients/devices. For WhatsApp, OTOH, there are primary communication devices (phones) with end-to-end encryption and secondary clients that connect to the primary device to access the messages (rather than getting them from WhatsApp's servers). End-to-end encryption is available on Telegram as well but AFAIK you lose the ability to use secondary clients.
For a more consistent behaviour, I deleted the other default iOS keyboards (in Settings) and just left the swype-style one (Google's now, used Swiftkey before). Occasionally I get an iOS keyboard (without any language) but very rarely, I guess some timeout in opening the swype-style keyboard.
Yeah, right... The government passes an emergency ordinance quietly during the night, aimed at saving the party's leader, and you blame the president. IOW, people shouldn't think for themselves because there are leaders elected to do just that. What I'm really ashamed of is that there are still many Romanian citizens who think that leaders are allowed to steal as long as they give a little bit in return (for those who were old enough in December '89, any similarities to "give them another hundred lei..."?).