RE: OpenVMS can't get past configure

2002-03-17 Thread Brent Dax

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

2002-03-17 Thread 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.

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

2002-03-17 Thread Brent Dax

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

2002-03-17 Thread Josh Wilmes


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

2002-03-17 Thread Dan Sugalski

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

2002-03-17 Thread Melvin Smith


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

2002-03-17 Thread Brent Dax

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

2002-03-17 Thread Michael G Schwern

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