RE: OpenVMS can't get past configure
Michael G Schwern: # Using 5.005_03 on OpenVMS 7.3... # # # Determining if your C compiler is actually gcc (this could # take a while): # # # 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)... # Out of memory! # %SYSTEM-F-ABORT, abort 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_(.*)$/)); } --Brent Dax [EMAIL PROTECTED] @roles=map {Parrot $_} qw(embedding regexen Configure) #define private public --Spotted in a C++ program just before a #include
RE: OpenVMS can't get past configure
At 10:13 AM -0800 3/17/02, Brent Dax wrote: # Probing Perl 5's configuration to determine which headers you # have (this could # take a while on slow machines)... # Out of memory! # %SYSTEM-F-ABORT, abort 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. No, it's not. Perl works fine on VMS, just as it does on dozens of other platforms. If that code's throwing a fit, then either perl itself is broken, or the configure script is broken. Likely the error is someplace else. Honestly, I'd rather not change it to bow to a retarded OS I think, perhaps, that namecalling at software would best be saved for other places. -- Dan --it's like this--- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk
RE: OpenVMS can't get past configure
Dan Sugalski: # At 10:13 AM -0800 3/17/02, Brent Dax wrote: # # Probing Perl 5's configuration to determine which headers you # # have (this could # # take a while on slow machines)... # # Out of memory! # # %SYSTEM-F-ABORT, abort # # 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. # # No, it's not. Perl works fine on VMS, just as it does on dozens of # other platforms. If that code's throwing a fit, then either perl # itself is broken, or the configure script is broken. # # Likely the error is someplace else. We saw this error on VMS before, and that was the cause. That line _does_ take a lot of memory: -the hash -a list of the keys -the result list from the grep # Honestly, I'd rather not change it to bow to a retarded OS # # I think, perhaps, that namecalling at software would best be saved # for other places. The namecalling was because it couldn't handle grep's memory requirements (which, granted, are non-trivial), not because of any personal dislike for VMS. I don't know enough about VMS to form an opinion on it--its popular days were before my time. ;^) --Brent Dax [EMAIL PROTECTED] @roles=map {Parrot $_} qw(embedding regexen Configure) #define private public --Spotted in a C++ program just before a #include
Re: OpenVMS can't get past configure
I suspect that it's not that VMS can't handle it- it's more likely that VMS does a better job of placing quotas on memory usage than other OSes. There's probably something analogous to ulimit which would fix the issue, but requiring that in order to build parrot isn't really reasonable. If we can make it take less memory, that'd be preferable. Though if it's running out of memory on that grep, i hesitate to imagine what it will do on trying to compile some of those giant autogenerated .c files. --Josh At 11:52 on 03/17/2002 PST, Brent Dax [EMAIL PROTECTED] wrote: Dan Sugalski: # At 10:13 AM -0800 3/17/02, Brent Dax wrote: # # Probing Perl 5's configuration to determine which headers you # # have (this could # # take a while on slow machines)... # # Out of memory! # # %SYSTEM-F-ABORT, abort # # 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. # # No, it's not. Perl works fine on VMS, just as it does on dozens of # other platforms. If that code's throwing a fit, then either perl # itself is broken, or the configure script is broken. # # Likely the error is someplace else. We saw this error on VMS before, and that was the cause. That line _does_ take a lot of memory: -the hash -a list of the keys -the result list from the grep # Honestly, I'd rather not change it to bow to a retarded OS # # I think, perhaps, that namecalling at software would best be saved # for other places. The namecalling was because it couldn't handle grep's memory requirements (which, granted, are non-trivial), not because of any personal dislike for VMS. I don't know enough about VMS to form an opinion on it--its popular days were before my time. ;^) --Brent Dax [EMAIL PROTECTED] @roles=map {Parrot $_} qw(embedding regexen Configure) #define private public --Spotted in a C++ program just before a #include
RE: OpenVMS can't get past configure
At 11:52 AM -0800 3/17/02, Brent Dax wrote: Dan Sugalski: # At 10:13 AM -0800 3/17/02, Brent Dax wrote: # # Probing Perl 5's configuration to determine which headers you # # have (this could # # take a while on slow machines)... # # Out of memory! # # %SYSTEM-F-ABORT, abort # # 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. # # No, it's not. Perl works fine on VMS, just as it does on dozens of # other platforms. If that code's throwing a fit, then either perl # itself is broken, or the configure script is broken. # # Likely the error is someplace else. We saw this error on VMS before, and that was the cause. That line _does_ take a lot of memory: -the hash -a list of the keys -the result list from the grep In which case it's not a VMS problem, but a memory one. I expect the quotas on the test drive machines that Schwern's using are pretty low to keep any one user from adversely impacting another. Odds are that an attempt at another time would work, if there were fewer users on the system--the system will hand out extra memory to a process if its available, but makes no guarantees on having overflow. More importantly, this is a sign we're going to have problems on systems without ample memory. (I'm not looking forward to the expected footprint for a compile of core.ops with full optimization on...) I'm going to try and get a VMS test system out of some of the folks I know in VMS engineering. Won't be the latest and greatest, but there'll be fewer limits. # Honestly, I'd rather not change it to bow to a retarded OS # # I think, perhaps, that namecalling at software would best be saved # for other places. The namecalling was because it couldn't handle grep's memory requirements (which, granted, are non-trivial), not because of any personal dislike for VMS. I don't know enough about VMS to form an opinion on it--its popular days were before my time. ;^) Still, the namecalling's inappropriate. Operating systems are software, and all software sucks. Singling out a particular piece of it's pretty pointless--might as well point out that one particular spot on the sun's awfully bright. ;) -- Dan --it's like this--- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk
RE: OpenVMS can't get past configure
personal dislike for VMS. I don't know enough about VMS to form an opinion on it--its popular days were before my time. ;^) I never cared for the VMS command shell (I think it was DCL, been a few years since I worked on it), but there is a lot to be learned from the VMS architecture itself. For one, it has security features that would make you cringe. Also, it just plain doesn't crash. That aside, to each his own. You'll take my UN*X when you pry it from my cold, dead, hardware. -Melvin
RE: [PATCH Configure.pl] (still broken) Re: OpenVMS can't get past configure
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.plSun 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.hfrom 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/Makefilefrom 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/Makefilefrom # languages/scheme/Makefile.in... # Building lib/Parrot/Types.pmfrom 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.cfrom 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
Re: [PATCH Configure.pl] (still broken) Re: OpenVMS can't get past configure
On Sun, Mar 17, 2002 at 05:06:35PM -0800, Brent Dax wrote: # Checking some things by compiling and running another small C # program (this # could take a while): # # Building ./testparrotsizes.cfrom 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? main::(configure.pl:668): compiletestc(testparrotsizes); DB2 s main::CODE(0x7a1c8c)((eval 4)[configure.pl:297]:10): 10: my $name; DB2 n main::CODE(0x7a1c8c)((eval 4)[configure.pl:297]:11): 11: $name = shift; DB2 main::CODE(0x7a1c8c)((eval 4)[configure.pl:297]:12): 12: $name = test unless $name; DB2 main::CODE(0x7a1c8c)((eval 4)[configure.pl:297]:13): 13: system($c{cc} $c{ccflags} $name.c) and die C compiler died!; DB2 x $c{cc} $c{ccflags} $name.c 0 'CC/DECC /Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList/NOANSI_ALIAS/include=([.include],/here) testparrotsizes.c' DB3 use Cwd DB4 x cwd 0 'USER1:[SCHWERN.SRC.PARROT]' DB5 n #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;3 at line number 9 in file USER1:[SCHWERN.SRC.PARROT]TESTPARROTSIZES.C;3 C compiler died! at (eval 4)[configure.pl:297] line 13. main::__ANON__[(eval 4)[configure.pl:297]:15]('testparrotsizes') called Debugged program terminated. Use q to quit or R to restart, Poking around in the DECC manual, there's two problems. http://www.openvms.compaq.com/commercial/c/5492p004.htm#index_x_113 First, its INCLUDE_DIRECTORY, not INCLUDE (although INCLUDE works). Second, there seems to be some confusing rules about mixing VMS and Unix style paths. It seems that the style used in INCLUDE_DIRECTORY has to match the style used in the #include. Search the places specified in the /INCLUDE_DIRECTORY qualifier, if any. A place that can be parsed successfuly as an OpenVMS file-spec and that does not contain an explicit file type or version specification is edited to append the default header file type specification (.h or .). A place containing a / character is considered to be a UNIX-style name. If the name in the #include directive also contains a / character that is not the first character and is not preceded by a ! character (it is not an absolute UNIX-style pathname), then the name in the #include directive is appended to the named place, separated by a / character, before applying the decc$to_vms pathname translation function. The result of the decc$to_vms translation is then used as the filespec to try to open. so this works: CC/DECC /INCLUDE=(./include) testparrotsizes.c but you might want to get independent confirmation from the vmsperl folks about that. -- Michael G. Schwern [EMAIL PROTECTED]http://www.pobox.com/~schwern/ Perl Quality Assurance [EMAIL PROTECTED] Kwalitee Is Job One Not king yet