> > > > 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]