On Wed, 15 Jan 2014 16:47:45 -0500 Mark H Weaver <m...@netris.org> wrote: [snip] > > So far as filenames are concerned, this seems to me to be something > > for which a fluid would be just the thing - it could default to the > > locale encoding but a user could set it to something else. > > We could do that, but I'm not really sure how it would improve the > situation. If Guile expects the program to know the encoding of > filenames on the filesystem, that just passes the buck to the program. > How does the program know what encoding to use? > > Yes, the program can know the encoding if it's a custom program > written for one specific system. However, if you write a program > that's supposed to work on any system, how do you know the encoding? > > It seems to me that each system must standardize on a single encoding > for all filenames on that system, and the locale encoding is the > defacto standard way of telling programs what that is.
A language support library such as guile can adopt a default but it cannot standardize on anything. It certainly cannot assume that all filenames use the locale encoding which happens to be the chosen locale on a particular user's computer. The only thing a general library can do is pass the issue back to the program. Generally it would have to be a setting for the program/network, along with many other configuration settings. A given computer system has to know other basic things, like the address of its nameserver. There are many different ways in which that can be achieved. In practice you might include it in a look-up table which the network administrator provides. More likely it is a standard promulgated by the administrator for all systems which happen to form part of a single business unit. More likely still in other than Asia the administrator has a policy of only using ASCII names for files served across wide area networks. Leaving that aside, the idea that a library should not enable the program to choose its filename encoding as a configuration option in some way seems to me to be odd, and unworkable in many real life situations. Chris