On Wed, May 05, 2004 at 07:47:53PM +0300, Jarkko Hietaniemi wrote: : We tried this with perl 5.8.0 and the feedback was overwhelmingly : negative... if people do "print chr 0xff" they do expect one byte, : not two.
We'll just have to figure out how to retrain those people for Perl 6. The binary/text distinction is important enough on filehandles that I'm tempted to resort to different keywords to open them, just to force people to be specific. 'Course, that doesn't help with stdout... A non-serious suggestion is that we pull the same trick and force people to specify by name whether they're running a version of Perl that defaults to text or binary, so they have to invoke #!/usr/bin/tperl or #!/usr/bin/bperl. But realistically, Perl is going to continue to default to text mode, which means we have to make it simple to switch to "binary-filter mode" on stdin and stdout. (Presumably stderr remains textish.) Right now, the meaning of "text" is subject to severe distortions due to legacy issues. But in the long run, "text" is going to mean Unicode, and that probably means a UTF-8 file encoding at least in the western world, and probably something else in the eastern world (but in either case, the file encoding is hidden behind the filehandle as far as Perl is concerned). The P5-to-P6 transition is a reasonable time to bite that bullet. Not sure how much fence straddling Ponie can do though... It would be really nice if the OS guys would get their collective act together and provide APIs to tell programs what their expectations are, but the next few years are likely to remain chaotic in that respect, and we're likely to see many "bandaids" in the form of environment variables, which are the wrong solution to most API problems. But we have to aim Perl 6 for the time when things will eventually settle down. That doesn't mean that we have to make Unicode the default right away if we decide it's impossible to "bite the bullet" right now--but it does mean at miminum that there shouldn't be any default other than Unicode, and if we force people to be explicit right now, there has to be a way of simplify the API later when it's reasonable to default to Unicode. That's probably the transitional form that Perl 5 and Ponie have to go through anyway, even if Perl 6 manages to force the issue. Larry