Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Compiled perl executable

0 views
Skip to first unread message

owin...@gmail.com

unread,
Jul 7, 2008, 10:52:20 PM7/7/08
to
Anyone else noticed on Windows that when you run a compiled perl
script (compiled using pp) it causes TWO copies of the executable to
run? I'm running perl5.8.8 and previously perl5.8.6. A compile of the
same script in 5.8.6 only runs one copy. I want to revert to only one
copy, ....2 copies looks ugly and can be confusing as to whats going
on (through Windows task manager), especially if you are running
multiple instances of the same executable. Ta

Ben Morrow

unread,
Jul 7, 2008, 11:09:06 PM7/7/08
to

Quoth owin...@gmail.com:

If you use Sysinternals' procexp.exe instead of Task Manager, you will
see that one is the child of the other: the parent is the instance you
started, and the child is a new copy that has been created in the par-
xxxx temp directory and is the one actually doing all the work. I don't
really know why this is necessary, but it's probably part of getting
Windows' dll loader to do the right thing.

Ben

--
It will be seen that the Erwhonians are a meek and long-suffering people,
easily led by the nose, and quick to offer up common sense at the shrine of
logic, when a philosopher convinces them that their institutions are not based
on the strictest morality. [Samuel Butler, paraphrased] b...@morrow.me.uk

pil...@pp.info

unread,
Jul 8, 2008, 1:38:20 AM7/8/08
to
On Tue, 8 Jul 2008 04:09:06 +0100, Ben Morrow <b...@morrow.me.uk> wrote:

>
>Quoth owin...@gmail.com:
>> Anyone else noticed on Windows that when you run a compiled perl
>> script (compiled using pp) it causes TWO copies of the executable to
>> run? I'm running perl5.8.8 and previously perl5.8.6. A compile of the
>> same script in 5.8.6 only runs one copy. I want to revert to only one
>> copy, ....2 copies looks ugly and can be confusing as to whats going
>> on (through Windows task manager), especially if you are running
>> multiple instances of the same executable. Ta
>
>If you use Sysinternals' procexp.exe instead of Task Manager, you will
>see that one is the child of the other: the parent is the instance you
>started, and the child is a new copy that has been created in the par-
>xxxx temp directory and is the one actually doing all the work. I don't
>really know why this is necessary, but it's probably part of getting
>Windows' dll loader to do the right thing.
>
>Ben

Excuse me, gents. What is 'pp'?

Tad J McClellan

unread,
Jul 8, 2008, 7:59:25 AM7/8/08
to
pil...@pp.info <pil...@pp.info> wrote:

> Excuse me, gents. What is 'pp'?


http://search.cpan.org/~smueller/PAR-Packer-0.980/lib/pp.pm


--
Tad McClellan
email: perl -le "print scalar reverse qq/moc.noitatibaher\100cmdat/"

nolo contendere

unread,
Jul 8, 2008, 10:41:56 PM7/8/08
to

why did you compile it? what's the performance comparison against the
uncompiled version?

nolo contendere

unread,
Jul 8, 2008, 10:46:26 PM7/8/08
to
On Jul 8, 1:38 am, pilc...@pp.info wrote:

> Excuse me, gents.  What is 'pp'?

for detailed info, google 'perl pp'.

O

unread,
Jul 8, 2008, 10:54:55 PM7/8/08
to
On Jul 8, 3:09 pm, Ben Morrow <b...@morrow.me.uk> wrote:
> Quoth owins...@gmail.com:

Thanks Ben, I guessed that was the case. The behaviour must have
changed as it did not do this for 5.8.6 (only ran one exe). If
possible I would like to go back to having only one exe but I could
not find anything through the PAR/PP doc that suggested there was a
compile time option that would achieve this.

O

unread,
Jul 8, 2008, 10:58:14 PM7/8/08
to
On Jul 8, 5:38 pm, pilc...@pp.info wrote:
> On Tue, 8 Jul 2008 04:09:06 +0100, Ben Morrow <b...@morrow.me.uk> wrote:
>
> >Quoth owins...@gmail.com:

Its part of the Perl PAR package that allows you to compile your
scripts into an executable. This enables you to distribute to another
server/pc that does not have Perl installed ->
http://search.cpan.org/~autrijus/PAR-0.85/script/pp

Ben Morrow

unread,
Jul 8, 2008, 11:42:45 PM7/8/08
to

Quoth O <owin...@gmail.com>:

> On Jul 8, 3:09 pm, Ben Morrow <b...@morrow.me.uk> wrote:
> > Quoth owins...@gmail.com:
> >
> > > Anyone else noticed on Windows that when you run a compiled perl
> > > script (compiled using pp) it causes TWO copies of the executable to
> > > run?
<snip>

> >
> > If you use Sysinternals' procexp.exe instead of Task Manager, you will
> > see that one is the child of the other: the parent is the instance you
> > started, and the child is a new copy that has been created in the par-
> > xxxx temp directory and is the one actually doing all the work. I don't
> > really know why this is necessary, but it's probably part of getting
> > Windows' dll loader to do the right thing.
>
> Thanks Ben, I guessed that was the case. The behaviour must have
> changed as it did not do this for 5.8.6 (only ran one exe). If
> possible I would like to go back to having only one exe but I could
> not find anything through the PAR/PP doc that suggested there was a
> compile time option that would achieve this.

I rather doubt it's related to perl version. It's much more likely
related to either PAR.pm version or the options you passed to
PAR::Packer. AFAICT, with current versions of pp you get two instances
if you don't pass -d or if your perl wasn't built with a shared libperl
(but practically all Win32 perls are), but I don't really understand any
of this so ICBW.

Ben

--
I must not fear. Fear is the mind-killer. I will face my fear and
I will let it pass through me. When the fear is gone there will be
nothing. Only I will remain.
b...@morrow.me.uk Frank Herbert, 'Dune'

0 new messages