Front page | perl.perl5.porters |
Postings from August 2008
Re: Re-gaining 'O's
From: H.Merijn Brand
August 25, 2008 13:59
Re: Re-gaining 'O's
Message ID: email@example.com
On Mon, 25 Aug 2008 13:36:23 -0700, Russ Allbery <firstname.lastname@example.org>
> "H.Merijn Brand" <email@example.com> writes:
> > So, if the $LC_ALL and/or $LANG is set to something unicodish and
> > #PERL_UNICODE is defined, shouldn't that be triggering this flag?
> > That combination is clearly begging for the flag.
> I don't think that implication works. The problem is that the generated
> *roff is not portable if you enable UTF-8 output. That means that if you
> generate man pages on one system with UTF-8 support and copy them
> somewhere else (a very common use case for pod2man), the man pages you're
> distributing may be very broken on that other system.
> It's not a question of what Pod::Man internally does. It understands
> Unicode just fine. The problem is that versions of nroff don't. groff in
> fact does not understand Unicode and does not support UTF-8 input; the
> Linux distributions have just worked around this by internally doing
> character set translation before passing the code to groff inside the man
> I'm very sympathetic to the desire to support non-ASCII characters, but
> doing so essentially creates non-portable man pages. If that's what you
> think is a good idea, then certainly Perl can take that step, but I want
> to make sure that you're aware of the consequences.
> It's probably easier to justify Perl's build process passing --utf8 on
> systems known to support UTF-8 in man pages (Red Hat and Debian at least,
> but possibly not all Linux's since it needs special support in the man
> program) than to change the global default for Pod::Man.
All sounds reasonable, but I still see no easy way out of the failing
tests. These smoke tests are there to check if the core modules
function as they are expected to behave, not testing portability
If that were the case, most open source test suites should fail before
even starting the tests if they rely on libs like libiconv and gettext,
as they have proven to be unavailable on many many systems by default
(and I don't blame those systems).
I applaud your reasoning and think you are right from the module point
of view, but in the core test suite, the assumption that we are
generating the man pages for other systems that are unlike the build
system not supporting Unicode is a wrong assumption.
H.Merijn Brand Amsterdam Perl Mongers http://amsterdam.pm.org/
using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, SuSE 10.1, 10.2, and 10.3, AIX 5.2, and Cygwin.