Re: authorial perlipc edit

[email protected] (demerphq) Tue, 9 Nov 2010 16:04:35 +0100
Newsgroups perl.perl5.porters,perl.documentation
Message-ID <[email protected]>
On 9 November 2010 15:44, Tom Christiansen <[email protected]> wrote:
> On 09 Nov 2010 06:02:55 GMT you wrote:
>
>>> For now, I'm sending the complete revision in toto.
>
>> Applied as cf21866, with some tpyo corretcions.
>
> Thanks very muhc. =A0I think it's a better document now,
> even if only marginally.
>
> =3D=3D=3D=3D=3D=3D=3D
> =A0TYPOS
> =3D=3D=3D=3D=3D=3D=3D
>
> Even though my last step was to spell-check it, a few typos still
> made it through. =A0Here are four that I'm aware of:
>
> =A01. Be careful qx(), system(), and some modules for calling external co=
mmands
> =A0 =A0 =A0 =A0 =A0 =A0 =A0^
> =A0 =A0 =A0 =A0 =A0 =A0 =A0^ insert ":" right after "careful"
>
> =A02. =A0 =A0 exit if $pid; =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 # non-zer=
o now mean I am the paren
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ^
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ^ change "mean" to means"
>
> =A03. resort to the harder-to-readm, multi-argument form of pipe open(). =
=A0However,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0^
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0^ delete t=
hat "m"
>
> =A04. Chapter 6 of the Camel.
> =A0 =A0 =A0 =A0 =A0 =A0^
> =A0 =A0 =A0 =A0 =A0 =A0^ That should now be "16", not "6".
>
> =3D=3D=3D=3D=3D=3D=3D=3D
> =A0POLICY
> =3D=3D=3D=3D=3D=3D=3D=3D
>
> That last one snuck past me because I always quickly avert my eyes from
> such self-mentions. =A0I'm *terribly* queasy about the least hint of what
> could be perceived as pecunious self-promotion. =A0I justify it in this
> case solely because it might also help out Larry, who otherwise receives
> so very little for his lifetime of work on Perl; it's the least we can do=
.
>
> Yet I'm bothered because it seems somewhat unfair to readers to point the=
m
> only at Camel:16 when Cookbook:14-18 covers that material in much richer
> detail. =A0But I cannot do that, given that I can no longer justify it in=
 the
> same way: Larry has only an intro in PCB, which had its notional origin i=
n
> material I split off from v1 Camel when making v2. =A0Even perlipc itself=
 I
> wrote as dry-run for Camel v3, just like many other standard pods.
>
> Not providing better references seems unfair to other authors (not me)
> whose own works might quite reasonably be referenced here and elsewhere
> in the standard Perl documentation, but that is a huge can of worms that
> we long ago decided not to open, as evinced by perlbook(1).
>
> So I feel it must be left as is--or rather, as amended to "16"--without
> the Cookbook reference, even though this really is too bad, especially
> when the full source code is downloadable for free.
>
> The current policy should stand. =A0I don't want to open that up.
> It's just not worth the bother, or the risk. =A0Oh well.
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> =A0CODE FIXES
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
> Beyond unifying the code back into my own style where it had become
> internally inconsistent and generally tightening it up in many
> places, I also improved the code's error checking, naming of
> identifier, and comments.
>
> In places I reduced code complexity by factoring out some of the deeply
> nested indentation. =A0I provided an additional multi-arg pipe example to
> better explain the problem of shell metachars, the guts of which is:
>
> =A0 =A0@grep_args =3D ("egrep", "-i", $some_pattern, @many_files);
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> =A0ENGLISH FIXES
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
> Besides trivial changes like normalizing spelling and to a lesser extent
> fonting, I smoothed out the phasing in quite a few places, including
> inlining some of the many parenthetical statements (which can be pretty
> distracting otherwise (don't you think?)).
>
> I reduced the number of explicit mentions of Unix where this made sense t=
o
> do. =A0I amended statements about the Mac so that it was clear that these
> applied only to pre-Darwin releases.
>
> I mentioned IPC::Shareable and threads::shared where appropriate.
> I excised mention of Comm.pl, as it is likely older than many of
> the readers, and far less healthy.
>
> One of my TODOs I left intact:
>
> =A0 =A0=3Dfor TODO
> =A0 =A0Hold on, is this even true? =A0First it says that socketpair() is =
avoided
> =A0 =A0for portability, but then it says it probably won't work except on
> =A0 =A0Unixy systems anyway. =A0Which one of those is true?
>
> That follows these two sentences:
>
> =A0 =A0Although it might have been more efficient by using socketpair(), =
this
> =A0 =A0would have been even less portable than it already is. =A0The open=
2() and
> =A0 =A0open3() functions are unlikely to work anywhere except on a Unix
> =A0 =A0system, or at least one purporting POSIX compliance.
>
> Are *both* those two statements really still needed?
>
> I've been led to believe that open2/3 do work on Microsoft systems,
> but that they do so there for reasons other than MS's not-useful
> letter-of-the-law POSIX compliance.
>
> Do they work on VMS? =A0What non-Unix systems apart from Microsoft and
> VMS do people still use? =A0What about iOS?

Personally I really wish you had kept the changes to use lexically
scoped filehandles.

cheers,
Yves
--=20
perl -Mre=3Ddebug -e "/just|another|perl|hacker/"