> > > > I try to stick to the hectic pace at which Pugs evolves :)
> > > >
> > > > http://pixigreg.com/?pxperl
> > >
> > > is it possible to have an alternative approach of just
> > zip-packed binaries?
> >
> > What do you mean? Please explain. Do you want a separate package for
> > Pugs and Parrot?
> >
> > PXPerl consists of an installer, it's not only an archive. Which means
> > you have shortcuts and environment variables set, as well as
> > relocation done, automatically for you. It's a complete, ready to run,
> > Perl distribution.
> 
> I am a bit nervous about EXE installer, especially MSI installer, it will
> probably polute my registry and increase a mess with a list of installed
> programs in control panel.

PXPerl does not rely on an MSI installer. It uses free and better NSIS
(http://nsis.sourceforge.net). It won't pollute your registry, just
add 3 keys (HKCU\Software\PixiGreg\PXPerl, and 2 others under HKCR for
file association if you chose it).
Every key is deleted upon uninstall.

> 
> All I want - look into ZIPped archive, extract what I want and run.
> 
> That is why, for example, Mozilla offers both installer and ZIP.
> 

No problem, I will do so in next release for Pugs and Parrot.
But not for the whole PXPerl package (ZIP compression is really bad...
The package would be 47MB And I don't have an infinite server
bandwidth as ActiveState has... but perhaps you have some webspace to
share?).


> >
> >
> > >
> > > Also, there is mentioned some Intel compiler for better
> > performance... how
> > > it is supported?
> > > For the best of my knowledge, only gcc, msvc++ and borland
> > are supported on
> > > Win32... am I wrong?
> > >
> >
> > Yes! :)
> 
> which makefile do you use?

The standard Win32 makefile, with necessary tweaks for working with
Intel compiler (not so many since it was designed to be as compatible
with VC++ compiler as possible).

> 
> 
> > Intel C++ Compiler is a Windows (and Linux) compiler which produces
> > faster code for Intel processors. With other processor brands, its
> > code is roughly as fast as with VC++ compiler (3% better with
> > perlbench on my AMD 2000+ box).
> > Used with correct flags (like in PXPerl), it produces specialized code
> > for Pentium IV (with special extensions) for critical sections, as
> > well as the classical x86 code, which means that binaries will run on
> > any x86 Windows platform. For both, it performs deep global
> > optimizations, too.
> 
> one of my PCs to try is P-III.

Yeah, you'll be between 1x and 1.16x faster than with ActivePerl. I can't say.
Perform the test yourself with perlbench module (available on CPAN).
Intel knows well its processors, I bet on a 5% improvement...

> 
> > The drawback is that binaries are usually twice bigger than
> > VC++ compiler ones.
> 
> interesting...
> 
> OTOH win32/makefile.mk from Perl source distribution states (somewhere in
> its comments) that when compiled wit *size* optimization you get faster
> executable than optimizing for *speed*, probably because of cache misses
> 

Indeed, the speed effect won't be sensitive with small scripts,
because loading bigger binaries in memory is time eating. But once the
binaries are loaded, you can be sure it'll be faster... I selected the
heavier optimizations when compiling PXPerl. Perhaps I should try a
compromise between size and optimizations. But I don't believe it will
be better.

The speed difference will be sensitive when processing bigger scripts,
and very sensitive as regards to, for example, GraphicsMagick module,
which image processing algorithms are heavily consuming CPU cycles.

For your information, here are the bench reports I made some months
ago with perlbench:

--------------- P4 BOX -----------------------------------
A) perl-5.008004
        path        = e:\activeperl\bin\perl.exe
        cc          = cl
        optimize    = -MD -Zi -DNDEBUG -O1
        ccflags     = -nologo -Gf -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -D
NO_STRICT -DHAVE_DES_FCRYPT  -DNO_HASH_SEED -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLI
CIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX
        usemymalloc = n

B) perl-5.008005
        path        = c:\pxperl\bin\perl.exe
        cc          = icl
        optimize    = -MD -Zi -DNDEBUG /fast /Og /Ob2 /Ot /GT /G7 /GA /QaxW /GF
/FD /EHsc /Gy
        ccflags     = -nologo -Gf -W3 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_S
TRICT -DHAVE_DES_FCRYPT  -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLI
O -DPERL_MSVCRT_READFIX
        usemymalloc = n

                           A       B
                        ----    ----
arith/mixed              100     143
arith/trig               100     153
array/copy               100     124
array/foreach            100     102
array/index              100     106
array/pop                100     125
array/shift              100     128
array/sort-num           100     105
array/sort               100     115
call/0arg                100     105
call/1arg                100     104
call/2arg                100     102
call/9arg                100     126
call/empty               100      89
call/fib                 100     110
call/method              100     118
call/wantarray           100     126
hash/copy                100     115
hash/each                100     114
hash/foreach-sort        100     118
hash/foreach             100     120
hash/get                 100     108
hash/set                 100     112
loop/for-c               100     109
loop/for-range-const     100     124
loop/for-range           100     107
loop/getline             100     116
loop/while-my            100     115
loop/while               100     132
re/const                 100     104
re/w                     100     109
startup/fewmod           100     108
startup/lotsofsub        100     135
startup/noprog           100     103
string/base64            100     121
string/htmlparser        100     106
string/index-const       100     125
string/index-var         100     128
string/ipol              100     119
string/tr                100     118

AVERAGE                  100     116
---------------------------------------------------------------------

---------------------AMD BOX----------------------
A) perl-5.008004
        path        = c:\activeperl\bin\perl.exe
        cc          = cl
        optimize    = -MD -Zi -DNDEBUG -O1
        ccflags     = -nologo -Gf -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -D
NO_STRICT -DHAVE_DES_FCRYPT  -DNO_HASH_SEED -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLI
CIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX
        usemymalloc = n

B) perl-5.008005
        path        = c:\pxperl\bin\perl.exe
        cc          = icl
        optimize    = -MD -Zi -DNDEBUG /fast /Og /Ob2 /Ot /GT /G7 /GA /QaxW /GF
/FD /EHsc /Gy
        ccflags     = -nologo -Gf -W3 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_S
TRICT -DHAVE_DES_FCRYPT  -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLI
O -DPERL_MSVCRT_READFIX
        usemymalloc = n

                           A       B
                        ----    ----
arith/mixed              100      99
arith/trig               100     113
array/copy               100     133
array/foreach            100     101
array/index              100      97
array/pop                100     117
array/shift              100     117
array/sort-num           100     109
array/sort               100     108
call/0arg                100     109
call/1arg                100     104
call/2arg                100     106
call/9arg                100     108
call/empty               100     114
call/fib                 100     106
call/method              100      98
call/wantarray           100     112
hash/copy                100     110
hash/each                100     103
hash/foreach-sort        100     109
hash/foreach             100     110
hash/get                 100      99
hash/set                 100     101
loop/for-c               100      98
loop/for-range-const     100      97
loop/for-range           100      98
loop/getline             100     102
loop/while-my            100     100
loop/while               100      99
re/const                 100      95
re/w                     100      96
startup/fewmod           100      82
startup/lotsofsub        100     105
startup/noprog           100      96
string/base64            100      91
string/htmlparser        100      83
string/index-const       100      97
string/index-var         100      98
string/ipol              100      93
string/tr                100      96

AVERAGE                  100     103
---------------------------------------------------------------------


PS: I'm not an Intel shareholder :P


Regards,

-- 
Grgoire Pan aka PixiGreg
www.pixigreg.com
[EMAIL PROTECTED]

Reply via email to