On Sun, Mar 17, 2002 at 10:13:58AM -0800, Brent Dax wrote: > Lines in question: > > > foreach(grep {/^i_/} keys %Config) { > $c{$_}=$Config{$_}; > $c{headers}.=defineifdef((/^i_(.*)$/)); > } > > I think VMS is too lame to handle the grep line. Honestly, I'd rather > not change it to bow to a retarded OS, but apparently we have to. You > can probably just say: > > foreach(keys %Config) { > next unless /^i_/; > $c{$_}=$Config{$_}; > $c{headers}.=defineifdef((/^i_(.*)$/)); > }
If one wanted to do that in a memory efficient manner... --- Configure.pl Sun Mar 17 15:53:06 2002 +++ Configure.pl Sat Mar 16 15:00:00 2002 @@ -483,9 +481,10 @@ # Set up HAS_HEADER_ # -foreach(grep {/^i_/} keys %Config) { - $c{$_}=$Config{$_}; - $c{headers}.=defineifdef((/^i_(.*)$/)); +while(my($k, $v) = each %Config) { + next unless $k =~ /^i_/; + $c{$k} = $v; + $c{headers} .= defineifdef(($k =~ /^i_(.*)$/)); } print <<"END"; But even with this in place it still takes forever with 5.005_03. So I'll just chalk it up to a perl bug. 5.7.2 fares much better, but still bombs later on... Your C compiler is not gcc. Probing Perl 5's configuration to determine which headers you have (this could take a while on slow machines)... Determining C data type sizes by compiling and running a small C program (this could take a while): Building ./test.c from test_c.in... Figuring out the formats to pass to pack() for the various Parrot internal types... Figuring out what integer type we can mix with pointers... We'll use 'unsigned int'. Building a preliminary version of include/parrot/config.h, your Makefiles, and other files: Building include/parrot/config.h from config_h.in... Building ./Makefile from Makefile.in... Use of uninitialized value in substitution iterator at configure.pl line 803. Building ./classes/Makefile from classes/Makefile.in... Building ./docs/Makefile from docs/Makefile.in... Building ./languages/Makefile from languages/Makefile.in... Building ./languages/jako/Makefile from languages/jako/Makefile.in... Building ./languages/miniperl/Makefile from languages/miniperl/Makefile.in... Building ./languages/scheme/Makefile from languages/scheme/Makefile.in... Building lib/Parrot/Types.pm from Types_pm.in... Building lib/Parrot/Config.pm from Config_pm.in... Checking some things by compiling and running another small C program (this could take a while): Building ./testparrotsizes.c from testparrotsizes_c.in... #include "parrot/parrot.h" #include "parrot/parrot.h" ..^ ..^ %CC-F-NOINCLFILEF, Cannot find file "parrot/parrot.h" specified in #include directive. %CC-F-NOINCLFILEF, Cannot find file "parrot/parrot.h" specified in #include directive. at line number 9 in file USER1:[SCHWERN.SRC.PARROT]TESTPARROTSIZES.C;1 at line number 9 in file USER1:[SCHWERN.SRC.PARROT]TESTPARROTSIZES.C;1 C compiler died! at (eval 1) line 13. %RMS-E-FNF, file not found PS You're not qualified to yell at VMS until you grok the mystery of: $ rm foo $ rm foo $ rm foo $ rm foo $ rm foo $ rm foo $ rm foo $ rm foo $ rm foo $ rm foo $ rm foo rm.exe: foo: no such file or directory :) -- Michael G. Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/ Perl Quality Assurance <[EMAIL PROTECTED]> Kwalitee Is Job One It wasn't false, just differently truthful. -- Abhijit Menon-Sen in <[EMAIL PROTECTED]>