6 ms·
"without warning"? Not really. This has been discussed to death on ATP last year. Also, in regards to the headline, there are tens or maybe over a hundred mill
by mchanson 9y ago
"without warning"? Not really. This has been discussed to death on ATP last year.
Also, in regards to the headline, there are tens or maybe over a hundred million non-english speakers using iOS already running APFS...
- the_mitsuhiko 9y agoiOS never exposes low-level filenames to the user.
- JoachimS 9y agoOne of the new features in iOS 11 presented yesterday is the File App. It provides access to all files (at some level) in the system and on networked systems including iCloud, Dropbox etc.
- the_mitsuhiko 9y agoThat only ever surfaces filenames through cocoa APIs that underwent normalization.
- deleted 9y ago[deleted]
- TorKlingberg 9y agoOn iOS the user doesn't get much direct access to the file system.
- cryptonector 9y agoDid anyone mention normalization-preserving/normalization-insensitive behavior? That's what ZFS does, and it's great!
- foota 9y agoIs that not just treating the filename as a byte sequence?
- cryptonector 9y agoAlmost! But not quite: it aliases some possible filenames, though only they are valid UTF-8 encodings (or UTF-16 say, if one did this on Windows). In particular, it prevents the existence of two files with equivalent names.
- foota 9y agoInteresting, so it recognizes different encodings of the same Unicode code points?
- foota 9y agoOr does it just map code points that are identical to each other?
- cryptonector 9y agoYes. But only for the purpose of string comparison and hashing (ZFS hashes directories for fast lookups).
- cryptonector 9y agoYes. Well, it recognizes different forms of the same characters. The encoding is and must be UTF-8.
- derefr 9y agoIn other words, like most RDBMSes, ZFS differentiates "field type" from "collation." "Field type" in an RDBMS controls what can be written (e.g. "valid UTF8 strings"), what will be read back (e.g. the use of the Unicode replacement character), and what special values like NULL will cast to. An RDBMS field's collation controls how values in the field will compare for equality, and what will happen when you sort on that field. Unique constraints in RDBMSes function on top of collation—so if the collation says two values are equivalent, the unique constraint will prevent you from inserting the new one. Great properties, if you can get them. It's too bad that the filesystem API is as low-level as it is, actually; if POSIX had some concept of "readdir(2) pre-sorted by a given field" like e.g. Windows does, then you could require that userland programs rely on FS-level collation rather than allowing them to collate the resulting values however they feel like (usually meaning "naively.")