7,322 karma · joined August 5, 2017
Therefore the onus is on Firefox to provide a good user experience.
If each and every tile is 60% whitespace then there's too much whitespace for me.
So, for example, `C:\Users\ChrisSD\AUX` will be resolved to `\??\AUX`.
Even more surprisingly, any filename that starts with `aux.` will also be affected by this. E.g. `C:\Users\ChrisSD\aux.txt`.
However, as you say, by 1996 people were already using the older UCS-2 standard.
There seems to be an uncanny valley effect with C-like languages. The best you can do is have non-standard compiler extensions on top of ISO C.
https://doc.rust-lang.org/std/convert/trait.TryFrom.html#exa...
C programmers want their code to be fast. Vanilla C no longer gives them the tools to do that on a modern processor. Either the language needs to be extended or the compiler needs to get more creative in interpreting the existing language. The latter is the least disruptive and it doesn't stop judicious use of the former.
So, in short, UB is what gives room for the compiler to be more creative without the programmer having to change their code. It wasn't a reading error, it was an opportunity the compiler devs enthusiastically embraced.
> The 4, 5, and 6 byte sequences are only there for political reasons. I would prefer to delete these
Obviously 5 and 6 byte sequences are consigned to history but 4 byte sequences turned out to be useful for more than "political reasons".
http://doc.cat-v.org/bell_labs/utf-8_history
(scroll right to the bottom)
A code point is the atomic unit of the abstract Unicode encoding. By "abstract" I mean it is not an actual text encoding you can write to a file.
A code unit is the atomic unit of an actual text encoding, such as UTF-8, UTF-16LE or UTF-32LE (and their BE equivalents).
---
So to put it together a "user-perceived character" is made up of one or more "code points". When implemented in an application, each "code point" is encoded using one or more "code units".
For Unicode, 32-bit bytes would be an incredibly wasteful in memory encoding.
#[inline]
const fn is_valid_scalar(c: u32) -> bool {
match c {
0..=0xD7FF => true,
0xD800..=0xDFFF => false, // surrogate pairs
0xE000..=0x10FFFF => true,
0x110000..=u32::MAX => false, // outside of Unicode range
}
}
But this could be reduced down to a simple if statement that tests for the invalid ranges.Very early on Rust was made independent of Mozilla. And since the layoffs it's hard to argue they had much indirect influence left even before the Foundation was started. Well, no more than other companies using Rust.
To be clear, the noscript tag "disappears" when javascript is enabled in the browser. When javascript is disabled it behaves like any other tag and can be styled accordingly.
Extension can disable scripts selectively but in that case javascript is still considered enabled for the purposes of the noscript tag.
I should also add that most applications won't even be using the TCP/UDP primitives directly. They'll likely be using a third party library. Rust's stdlib is intentionally minimal and lacking a lot of higher level features that are practically necessary for many applications.
Far better to let the experts do it.
Or they may be reluctant to get involved but sympathetic enough to offer a select few technological advances, if we want them.
There are a lot of possibilities which don't result in full surrender or a fight to the death.
Incidentally your first question is one that's very amenable to testing. When does the Rust compiler spend most of it's time? Is it at the checking stage?
cargo install --no-default-features
To avoid building support for all storage backends. You can then add back any backend you're actually using.Including language metadata with text was felt to be especially important for Japanese and Korean users. I was told the difference was like having "595 kg" displayed as "5P5 kg". That is, it's possible to decipher the intended meaning but it looks wrong and it takes a moment to work out what was meant. Depending on the language some glyphs can be mirror images, have extra strokes, strokes missing or in different places or at different angles.
It can't be interpreted as a single identifier.
On the web you can work around this using the lang attribute to tell the browser how text should be interpreted.
It's notable that, for example, traditional and simplified Chinese does not have this problem because they are encoded separately.
Another problem is missing characters. Some people have complained of not being able to write their own name. I'm not sure to what extent this has been solved through Unicode updates.
Then simply use the `lossy` function. Or create an alias to it if you don't like the name.