Re: GNV BASH hacks on 5.8.4-RCI issues.

2004-04-29 Thread Craig A. Berry
At 2:58 PM -0400 4/25/04, John E. Malmberg wrote:

With the patches that I have attached now, Perl is only failing one test.

lib/ExtUtils/t/basic.FAILED at test 28

I do not have hard links enabled on the ODS-5 volume.  I do not know if that is 
affecting the test results.

I doubt it. 

I also do not know how to trouble shoot this failed test to find out what is wrong, 
and how to make the test pass.

As part of its standard test suite, Perl builds, tests, and installs
a dummy extension in order to validate the extension building
process.  There are a couple of VMS-specific hacks in
[.lib.ExtUtils]Manifest.pm that case-level filenames read from an
extension's manifest.  These case-leveled names are then compared to
case-specific names returned from the filesystem, or at least they are
case-specific when DECC$EFS_CASE_PRESERVE is enabled.  Without
running the test with your modified version, I can't say for sure
this is where the problem is, but on the other hand I can't see how
Manifest.pm could work in a case-preserved environment (at least
without modifications that are planned but not yet implemented).


With only one test failing though, it looks a lot better.

Indeed.  So Perl is able to build itself and all the core extensions
with your modifications?


Now how do get a more verbose output of the failing test?

Read the instructions in README.vms :-).   . where it will tell you

$ @[.vms]test .exe  -v [-.lib.extutils.t]basic.t

though the second argument should be ndbg instead of empty if
you've got a VMS debug build.


I hope I do not need to build a debug version of perl, I have not got that to work 
yet on VAX.

I do it pretty regularly on Alpha and the relevant qualifiers should
be the same.  From your subsequent message it looks like you may have
it working, but let us know if not.



--- dist_root:[00]configure.com_oldSun Apr 11 21:58:27 2004
+++ dist_root:[00]configure.comSat Apr 24 22:31:30 2004

Forgive the ongoing nitpicking of your patch style, but unless these
filespecs are in unix syntax, folks who have check-in authority are
not going to be able to apply it.  I know you may not intend the
patch to be ready for that yet, but it's getting darn close.

Lots of stuff that looks ok snipped.


@@ -4384,8 +4422,10 @@
* the argv items and lowercase all of these names.
*/
   for (c = string; *c; ++c)
+  if (!decc_efs_case_preserve) {
   if (isupper(*c))
   *c = tolower(*c);
+  }
   if (isunix) trim_unixpath(string,item,1);
   add_item(head, tail, string, count);
   ++expcount;

I would think we'd want to check decc_efs_case_preserve outside the loop.


more good stuff snipped.

+#ifndef __VAX
+#if __CRTL_VER = 7030
+s = decc$feature_get_index(DECC$EFS_CASE_PRESERVE);
+decc_efs_case_preserve = decc$feature_get_value(s, 1);
+

I'm with you on this one.

+s = decc$feature_get_index(DECC$FILENAME_UNIX_REPORT);
+decc_filename_unix_report = decc$feature_get_value(s, 1);
+set_feature_default(DECC$FILENAME_UNIX_REPORT, FALSE);
+
+s = decc$feature_get_index(DECC$FILENAME_UNIX_ONLY);
+decc_filename_unix_only = decc$feature_get_value(s, 1);
+set_feature_default(DECC$FILENAME_UNIX_ONLY, FALSE);

But I'm confused on these two.  It looks to me like we check for
whether the features are enabled and save the setting we inherited
from the environment, but then we also explicitly disable the
features.  If we honor the values we inherit, it seems we would not
want to disable them.  If we disable them, it seems we would not want
to save the values we inherit.  What am I missing?

+#else
+status = sys_trnlnm(DECC$EFS_CASE_PRESERVE, val_str, sizeof(val_str));
+if (status) {
+  _toupper(str[0])
+  if ((str[0] == 'E') || (str[0] == 1) || (str[0] == 'T')) {
+ decc_efs_case_preserve = 1;
+  }
+}
+status = sys_trnlnm(DECC$FILENAME_UNIX_REPORT, val_str, sizeof(val_str));
+if (status) {
+  _toupper(str[0])
+  if ((str[0] == 'E') || (str[0] == 1) || (str[0] == 'T')) {
+ decc_filename_unix_report = 1;
+ status = sys_crelnm(DECC$FILENAME_UNIX_REPORT, DISABLE);
+  }
+}
+status = sys_trnlnm(DECC$FILENAME_UNIX_ONLY, val_str, sizeof(val_str));
+if (status) {
+  _toupper(str[0])
+  if ((str[0] == 'E') || (str[0] == 1) || (str[0] == 'T')) {
+ decc_filename_unix_only = 1;
+ status = sys_crelnm(DECC$FILENAME_UNIX_ONLY, ENABLE);
+  }
+}

Hmm.  On this last one we are checking to see if it's already enabled and then 
re-enabling it?

+#endif
+#endif
+
+
+/* CRTL can be initialized past this point, but not before. */
+/*DECC$CRTL_INIT(); */
+
+return SS$_NORMAL;
+}
+
+#ifdef __DECC
+/* DECC dependent attributes */
+#if __DECC_VER  60560002
+#define relative
+#define not_executable
+#else
+#define relative ,rel
+#define not_executable ,noexe
+#endif
+#pragma nostandard
+#pragma 

Re: Current Status and location of VMS::Logical?

2004-04-29 Thread PPrymmer




Dr. Martin P.J. Zinser [EMAIL PROTECTED]
wrote on 04/28/2004 06:56:10 PM:

 subject says it all:-) I am looking for a place to find the VMS::Logicals

 module (vmsbox.cjb.net does not work for me), as well as for information
 on its current status.

You bring up an important topic.  The original author,
Forrest Cahoon, does have a CPAN account as can be seen at e.g.:

http://search.cpan.org/~forrest/

From which you'll see that he has a semi active blog and
now appears to like writing perl code on Linux.  He has
a GPG key at:

http://www.abstractfactory.org/forrest/gpg_key.html

I think that I tried back in February 2004 to get a hold of
Forrest, but I do not recall having succeeded with plain email
(neither gpg nor pgp signed) to any of his old addresses that
he had used to post to vmsperl.

I suggested a patch way back in:

http://www.xray.mpe.mpg.de/mailing-lists/vmsperl/2002-06/msg00011.html

I think the module needs to be on CPAN.  If Forrest can't
do it (perhaps he moved and does not have access to VMS anymore?)
then someone else should.  Are there any volunteers out there?

Peter Prymmer



Re: Current Status and location of VMS::Logical?

2004-04-29 Thread Dr. Martin P.J. Zinser
Hello Craig, hello Peter,

as for VMS::Logical on the Freeware: I think I should know that ;-)
Seriously, VMS::Logical was on my wishlist for the freeware V6 and is
currently on my ToDo list for the next freeware kit. This is one of the
reasons I am looking for it right now ;-)

As for the Patch/CPAN: I do still have the mail with the Patch in my
mailfolder on disk:-), I just need the original to apply the patch 
against. Anybody has one by chance? I might be able to polish the 
module up so it could be submitted, but would prefer if somebody who
already has an account could do the final submission.

Greetings, Martin

 From: IN%[EMAIL PROTECTED] 29-APR-2004 18:04:20.25
 Subj: RE: Current Status and location of VMS::Logical?

 
 
 
 
 Dr. Martin P.J. Zinser [EMAIL PROTECTED]
 wrote on 04/28/2004 06:56:10 PM:
 
  subject says it all:-) I am looking for a place to find the VMS::Logicals
 
  module (vmsbox.cjb.net does not work for me), as well as for information
  on its current status.
 
 You bring up an important topic.  The original author,
 Forrest Cahoon, does have a CPAN account as can be seen at e.g.:
 
 http://search.cpan.org/~forrest/
 
 From which you'll see that he has a semi active blog and
 now appears to like writing perl code on Linux.  He has
 a GPG key at:
 
 http://www.abstractfactory.org/forrest/gpg_key.html
 
 I think that I tried back in February 2004 to get a hold of
 Forrest, but I do not recall having succeeded with plain email
 (neither gpg nor pgp signed) to any of his old addresses that
 he had used to post to vmsperl.
 
 I suggested a patch way back in:
 
 http://www.xray.mpe.mpg.de/mailing-lists/vmsperl/2002-06/msg00011.html
 
 I think the module needs to be on CPAN.  If Forrest can't
 do it (perhaps he moved and does not have access to VMS anymore?)
 then someone else should.  Are there any volunteers out there?
 
 Peter Prymmer
 
Dr. Martin P.J. Zinser   [EMAIL PROTECTED]
Deutsche Boerse Systems Inc.
233 South Wacker Drive   Tel: +1-312-544-1027 
Suite 2455   FAX: +1-312-544-1301
Chicago, IL, 60606   
USA  Private:  [EMAIL PROTECTED]


RE: Current Status and location of VMS::Logical?

2004-04-29 Thread Carl Friedberg
I've volunteered before, but I have not produced what
I promised (e.g., our website has not been touched,
and I'm feeling guilty about that).

Nonetheless, if no one else can do it, I will try to
step in here. I hope some one else can do it, however...

Carl Friedberg
[EMAIL PROTECTED]
+1.212.233.5470
www.comets.com 
  

 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
 Dr. Martin P.J. Zinser [EMAIL PROTECTED]
 wrote on 04/28/2004 06:56:10 PM:
 
  subject says it all:-) I am looking for a place to find the 
 VMS::Logicals
 
 You bring up an important topic.  The original author,
 Forrest Cahoon, does have a CPAN account as can be seen at e.g.:
 
 http://search.cpan.org/~forrest/
 
 From which you'll see that he has a semi active blog and
 now appears to like writing perl code on Linux.  He has
 a GPG key at:
 
 http://www.abstractfactory.org/forrest/gpg_key.html
 
 I think that I tried back in February 2004 to get a hold of
 Forrest, but I do not recall having succeeded with plain email
 (neither gpg nor pgp signed) to any of his old addresses that
 he had used to post to vmsperl.
 
 I suggested a patch way back in:
 
 http://www.xray.mpe.mpg.de/mailing-lists/vmsperl/2002-06/msg00011.html
 
 I think the module needs to be on CPAN.  If Forrest can't
 do it (perhaps he moved and does not have access to VMS anymore?)
 then someone else should.  Are there any volunteers out there?
 
 Peter Prymmer
 
 
 


Re: GNV BASH hacks on 5.8.4-RCI issues.

2004-04-29 Thread John E. Malmberg
Craig A. Berry wrote:
At 2:58 PM -0400 4/25/04, John E. Malmberg wrote:

Indeed.  So Perl is able to build itself and all the core extensions
with your modifications?
It seems so.  The intent was that unless the C features were enabled, 
that they would not be visible.

I do not have any feature logicals set for the build.  They might affect 
things, and then the build procedure would have to disable them to 
protect it self.


--- dist_root:[00]configure.com_old Sun Apr 11 21:58:27 2004
+++ dist_root:[00]configure.com Sat Apr 24 22:31:30 2004

Forgive the ongoing nitpicking of your patch style, but unless these
filespecs are in unix syntax, folks who have check-in authority are
not going to be able to apply it.  I know you may not intend the
patch to be ready for that yet, but it's getting darn close.
I will have to use the bash shell to change the syntax.  The samba/rsync 
folks seem to be able to accept them.  Having never run a patch 
procedure, I do not know if it cares about what is in the filename, but 
just uses it as a comment.  After all, those lines do not contain 
anything that the patch program needs to apply the patch.

Lots of stuff that looks ok snipped.

@@ -4384,8 +4422,10 @@
 * the argv items and lowercase all of these names.
 */
for (c = string; *c; ++c)
+   if (!decc_efs_case_preserve) {
if (isupper(*c))
*c = tolower(*c);
+   }
if (isunix) trim_unixpath(string,item,1);
add_item(head, tail, string, count);
++expcount;

I would think we'd want to check decc_efs_case_preserve outside the loop.
So do I.  I am surprised that I did not see that before.  My suspicion 
is that I put the line in the wrong place.  I will change that even 
though the compiler should know to do the right thing.

more good stuff snipped.
 
+s = decc$feature_get_index(DECC$FILENAME_UNIX_REPORT);
+decc_filename_unix_report = decc$feature_get_value(s, 1);
+set_feature_default(DECC$FILENAME_UNIX_REPORT, FALSE);
+
+s = decc$feature_get_index(DECC$FILENAME_UNIX_ONLY);
+decc_filename_unix_only = decc$feature_get_value(s, 1);
+set_feature_default(DECC$FILENAME_UNIX_ONLY, FALSE);

But I'm confused on these two.  It looks to me like we check for
whether the features are enabled and save the setting we inherited
from the environment, but then we also explicitly disable the
features.  If we honor the values we inherit, it seems we would not
want to disable them.  If we disable them, it seems we would not want
to save the values we inherit.  What am I missing?
If you leave these features set, it may cause problems when filenames 
are passed from C routines to RMS or system services.

It may also have other side effects for filenames that are externally 
displayed, which is probably desired.

To leave these features enabled would require more study of the code to 
make sure that there are not any problems, and probably some more tests.

But the settings are remembered so that perl will treat . as UNIX 
./, instead of SYS$DISK:[].;


+}
+status = sys_trnlnm(DECC$FILENAME_UNIX_ONLY, val_str, sizeof(val_str));
+if (status) {
+   _toupper(str[0])
+   if ((str[0] == 'E') || (str[0] == 1) || (str[0] == 'T')) {
+  decc_filename_unix_only = 1;
+  status = sys_crelnm(DECC$FILENAME_UNIX_ONLY, ENABLE);
+   }
+}
 
Hmm.  On this last one we are checking to see if it's already enabled and then re-enabling it?
That is a bug,  Since this is a newer version than the #ifdef, it should 
not be affecting what I built.

This code was copied from what I did on Python where it was desired to 
have all internal filenames in UNIX format.

+
+/* CRTL can be initialized past this point, but not before. */
+/*DECC$CRTL_INIT(); */
A side note here.
Putting a DECC$CRTL_INIT() in a lib$initialize psect may have undesired 
effects if put in a shared image.  They get chained, and if a C program 
is linked with a shared image that has such a call, it will prevent the 
features from being detected.  This was discovered with Python, and the 
RDB module had to be converted to being dynamically loaded to fix.


So there are two psects, LIB$INITIALIZ and LIB$INITIALIZE ?
Yes.  I suspect that the LIB$INITIALIZ psect name is not critical, since 
the documentation is a bit sparse on that, I would have to either 
rummage around in the internals, or track down who ever is currently 
maintaining that code.

Well, now I will see if I can find out why that one test is failing, and 
then I will look at the two .pm scripts that I am told need a change to 
build GTK+.

When I actually try to build GTK+, I may find more issues.
-John