Currently, file paths loaded through the C-API (and possibly other routes) call the fileio functions directly. These should respect ~/ in expanding the file paths.
It's not clear to me that this should be baked into our APIs at the lowest levels, since ~ expansion is really a feature of certain unix shells, not a file system. As a point of comparison, note that NSFileManager APIs don't perform this expansion. IMHO, we should treat the C++ backend more like a library, not like an app, and allow clients to implement or perhaps to opt into this behavior.
Is there a user-visible problem that this solves, introducing the concept of user home directories into the backend?
Right now it's completely inconsistent. You can load an SFrame from a path starting with ~ for example, but saving a model or exporting to CoreML doesn't do the expansion. If this is not supported directly, there should be an easy and consistent way to do it.
Personally I don't see why this isn't always done. It makes it much easier to provide code examples if you can use ~ to refer to the home directory rather than needing to enter a full path.
Most helpful comment
Right now it's completely inconsistent. You can load an SFrame from a path starting with ~ for example, but saving a model or exporting to CoreML doesn't do the expansion. If this is not supported directly, there should be an easy and consistent way to do it.
Personally I don't see why this isn't always done. It makes it much easier to provide code examples if you can use ~ to refer to the home directory rather than needing to enter a full path.