Fabio Ciampi wrote:
Hi

I'm a newbie of VMS. I've tried to build perl 5.10.1 on my IA64

Welcome to VMS.

I see a couple of newbie mistakes below, but they probably are not causing the issues that you are seeing, just additional issues. And these are somethings that people with experience should have learned but many have not.

Operating System (Version V8.3-1H1) with ODS5 disks. I have MadGoat Make Utility V4.1
and compiler HP C V7.2-001.

I gave the following commands after download perl sources and unpacked them:

set security/protection=(o:rwed) perl-5^.10^.1.DIR;1
rename perl-5^.10^.1.DIR perl-5_10_1.DIR
@configure "-des" "-Dprefix=DATE$MSA1:[PERL-5_10_1.]"

I have not used the -Dprefix. On VMS, I use logical names to determine which version of an application to run. Perl uses the logical name PERL_ROOT, regardless of what prefix that you assign.

Newbie note 1:
In general in managing VMS, physical device names should generally be referenced only in the startup procedures where logical names are mapped to them, and in utilities like backup or defragmenters that need to specifically operate on physical devices.

Any applications other than the above that require a physical device name instead of a logical name is broken, and not properly written for VMS. Some applications have broken configuration routines that put physical device names in configuration files instead of logical names. In most cases, I have found that manually fixing the configuration files makes the application more maintainable.

If I move the the application or its data to a new physical disk, all I should have to do is change how the logical names are mapped. I should never have to reconfigure an application for that.

And I should never need to notify an end user when I change what physical devices that are being used by the computer or one of their applications.

VMS uses logical names for things that Unix uses symbolic links for, but logical names are far more powerful and flexible.

mmk
mmk test

The mmk process works (I only have some "Warning: long symbol....").
During mmk test I saw some tests failed:
t/op/exec.....................................................FAILED at test 16 ext/Compress-Raw-Bzip2/t/01bzip2..............................FAILED--expected 157 tests, saw 10 ext/Compress-Raw-Bzip2/t/09limitoutput........................FAILED--expected 88 tests, saw 5 ext/IO-Compress/t/001bzip2....................................FAILED at test 58 ext/IO-Compress/t/006zip......................................FAILED--expected 77 tests, saw 17

Perl is sensitive to the logical name BIN, and foreign commands for ZIP and BZIP2 among others.

Older versions of the GNV product would incorrectly assign the logical name BIN in the system table, and many people will put in symbols for ZIP and BZIP2 in the SYLOGIN.COM or LOGIN.COM.

Other applications may set the BIN logical name and leave it behind.

If some of the tests find a ZIP or BZIP executable, they will try to use it just like a UNIX utility and may expect that they are running it under the Bash shell.

Perl also now supports the DECC$* feature logicals at run time. Not all combinations have been tested, and some combinations will cause tests to fail because they change the behavior in ways that the tests do not yet expect.

It is also possible that running on your environment may need some more quota for a resource than the build procedure knows to test for.

For building and the initial testing of Perl, make sure that all the DECC$ feature logicals are set to their default.

Then read the two VMS specific text files in Perl for their usage.

Newbie note 2:

[DIR$UTIL.PERL_5-010.PERL-5_10_1]PERL.EXE;1

The use of '$' in logical names, filenames, directories, and symbols is reserved to HP/VMS and registered third party usage. It should not be used in names that you make up for your own use unless directed to by the either the VMS or third party that has registered the prefix for that name. This is a long standing rule in VMS, but it used to be easier to find in the documentation.

This prevents your names and names from HP or layered products from having a conflict.

There is documentation in the VMS doc set on getting those names registered by application developers.

With all the possibilities out there, the odds of a conflict of making up your own names with $ in them are low, but it is not zero. Some layered products use undocumented prefixed logical names to enable debugging or other diagnostic procedures.

In addition, some TCPIP products use the $ in filenames to do encoding of case changes or other special characters in NFS exports and mounted disks.

-John
wb8...@qsl.network
Personal Opinion Only

Reply via email to