Michael G Schwern: # 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
Yikes. Does the C compiler recognize that sort of path? How about the -I switch (it may be set differently by VMS's hints file) that tells it to look in ./include? # 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 # # :) Nine versions of foo. A nice feature, IMHO. ;^) --Brent Dax <[EMAIL PROTECTED]> @roles=map {"Parrot $_"} qw(embedding regexen Configure) #define private public --Spotted in a C++ program just before a #include