Re: Bizarre copy of unknown
I think this has something to do with threads. I rebuilt perl at work without threads and the module works again. On Jan 9, 2013 8:20 AM, Craig A. Berry craigbe...@mac.com wrote: On Jan 8, 2013, at 10:07 PM, Thomas Pfau tfp...@gmail.com wrote: Bizarre copy of UNKNOWN in list assignment at /DISK$USERS/PFAU/PROG/PERL/vms-cms/blib/lib/VMS/CMS.pm line 490. A quick web search shows that this usually means the compiler flags used to compile the extension are different from the compiler flags used to compile Perl. Your Makefile.PL has the line: CCFLAGS = /include=[]/standard=relaxed_ansi/prefix=all/obj=.obj/noshare_globals which will be similar but not 100% the same as what's used to build Perl, depending on configuration. You'll probably want to take $Config{ccflags} and append /noshare_globals to it, though since that's the default for the compiler, it doesn't seem necessary to specify it. You can see what your Perl was built with by doing: $ perl -V:ccflags ccflags='/Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj /NOANSI_ALIAS/float=ieee/ieee=denorm/NAMES=(SHORTENED)/Define=_USE_STD_STAT=1'; Craig A. Berry mailto:craigbe...@mac.com ... getting out of a sonnet is much more difficult than getting in. Brad Leithauser
Bizarre copy of unknown
I am having issues with my 5.16.2 build. Modules that worked fine on 5.8 and 5.10 are now aborting with this error when returning an undefined value by referencing PL_sv_undef. I have been fixing these by changing them to sv_newmortal() but I question why this code is suddenly broken. Does anyone know what changed?
Re: Bizarre copy of unknown
This is even causing problems with the generated constant function. If I try to get the value of a constant I get this: $x = VMS::CMS::CMS_K_ACCEPT Bizarre copy of UNKNOWN in list assignment at /DISK$USERS/PFAU/PROG/PERL/vms-cms/blib/lib/VMS/CMS.pm line 490. That implies that the code created by ExtUtils::MakeMaker::WriteConstants is broken. On Tue, Jan 8, 2013 at 10:59 AM, Thomas Pfau tfp...@gmail.com wrote: I am having issues with my 5.16.2 build. Modules that worked fine on 5.8 and 5.10 are now aborting with this error when returning an undefined value by referencing PL_sv_undef. I have been fixing these by changing them to sv_newmortal() but I question why this code is suddenly broken. Does anyone know what changed? -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: Bizarre copy of unknown
On Tue, Jan 8, 2013 at 11:02 PM, Craig A. Berry craigbe...@mac.com wrote: On Jan 8, 2013, at 9:14 PM, Thomas Pfau tfp...@gmail.com wrote: It looks like the definition of PL_sv_undef has something to do with threads. Could this be broken because I enabled threads in my build? It doesn't have anything to do with threads directly, except all PL_xxx global variables are not really global variables under threads, but are instead members of the interpreter struct. On Tue, Jan 8, 2013 at 9:24 PM, Thomas Pfau tfp...@gmail.com wrote: This is even causing problems with the generated constant function. If I try to get the value of a constant I get this: $x = VMS::CMS::CMS_K_ACCEPT The ampersand is forcing it to be interpreted as a subroutine call, but that's not really a subroutine is it? Yes. References to constants are resolved using AUTOLOAD which treats it like a subroutine. The subroutine returns the value of the constant. Bizarre copy of UNKNOWN in list assignment at /DISK$USERS/PFAU/PROG/PERL/vms-cms/blib/lib/VMS/CMS.pm line 490. The error message means it doesn't know the type of the scalar that's having its flags checked (search for Bizarre in sv.c). I see that most of your routines have return values of type SV *, so I would think that instead of RETVAL = PL_sv_undef; you would want: RETVAL = (SV *) PL_sv_undef; but I don't know if that would help with the immediate problem. I don't think that would help. RETVAL should be declared by the XS generation code as SV* so I don't think the cast would accomplish anything. I'll take a look at the generated C code. I haven't had time to download your module and try it. Is the one on CPAN the latest? Yes, the one on CPAN exhibits the problem. -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: VMS::Time module
See http://nbpfaus.net/~pfau/perl.log for a log of a session where I start with all of the files named properly, go through the build process, and make a zipdist. The case in the filenames has been altered by the time things get to the zip file. On Tue, Jan 1, 2013 at 6:52 PM, Thomas Pfau tfp...@gmail.com wrote: I just downloaded it recently. I believe it's the latest. I think the changes may occur as perl builds the directory tree. Copyright (c) 1990-2008 Info-ZIP - Type 'zip -L' for software license. This is Zip 3.0 (July 5th 2008), by Info-ZIP. On Tue, Jan 1, 2013 at 6:35 PM, Craig A. Berry craigbe...@mac.com wrote: On Jan 1, 2013, at 2:26 PM, Thomas Pfau tfp...@gmail.com wrote: I have this working on Alpha with (5.16.2) and without (5.10.0) 64 bit integer support, and on VAX (5.8.4). Before uploading this to CPAN I'm curious if anyone has a solution for 'mmk zipdist' mangling the case of filenames. The PAUSE server wants to extract certain files from the distribution but can't find them because of case differences. What version of zip do you have? As far as I know, zipdist just uses your zip program, and recent versions of Info-Zip preserve case just fine. Craig A. Berry mailto:craigbe...@mac.com ... getting out of a sonnet is much more difficult than getting in. Brad Leithauser -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/ -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: VMS::Time module
I have this working on Alpha with (5.16.2) and without (5.10.0) 64 bit integer support, and on VAX (5.8.4). Before uploading this to CPAN I'm curious if anyone has a solution for 'mmk zipdist' mangling the case of filenames. The PAUSE server wants to extract certain files from the distribution but can't find them because of case differences. NAME VMS::Time - Manipulate OpenVMS binary time values SYNOPSIS use VMS::Time ':all'; $now = gettim(); $bin = bintim('01-jan-2010 12:00:00.00'); $asc = asctim($bin); ($year, $month, $day, $hr, $mn, $sc, $cc) = numtim($bin); $unix = vms_to_epoch($bin); $vms = epoch_to_vms(time()); DESCRIPTION These functions provide access to the OpenVMS time system services SYS$GETTIM, SYS$BINTIM, SYS$ASCTIM, and SYS$NUMTIM. Also provided are functions for converting between OpenVMS binary times and unix epoch time values. EXPORT None by default. Any function or constant may be imported by name. All functions can be imported using the tag ':routines'. All constants can be imported using the tag ':constants'. Routines and constants can be imported using the tag ':all'. OVERVIEW VMS::Time can accept and return VMS times in various formats depending upon the platform and how perl was built. The routines that return VMS time values accept a return mode argument that determines the format for the returned value. Constants are defined for the return modes as follows. PACK - Pack format (default) Returns the time as a string containing an 8 byte OpenVMS time value. LONGINT - Integer Returns the time value as an integer. This is only supported if perl was built with support for long integers. FLOAT - Floating point Returns the time value as a floating point number. Precision may be lost especially if perl was not built with support for long doubles. FLOAT is not supported on VAX systems. HEX - Hex string Returns the time value as a hex encoded string with a leading '0x'. BIGINT - Math::BigInt Returns the time value as a Math::BigInt object. Math::BigInt must have been previously loaded. The format for input VMS time values is deduced from the attributes of the perl variable passed to the function. If the variable contains an integer, LONGINT format is assumed. If the variable containes a floating point value, FLOAT format is assumed. If the variable is a string with a leading '0x', HEX format is assumed. If the variable is an 8 byte string, PACK format is assumed. If the variable is a Math::BigInt object, BIGINT format is assumed. FUNCTIONS bintim - convert ascii time string to binary $bin = bintim('01-jan-2010 12:00:00.00'[,$retmode]); Converts the time string to a VMS time value. $retmode indicates the format for the returned value as described in the overview section. asctim - convert binary time to ascii string $text = asctim([$bin]) Converts an OpenVMS time to its textual presentation. If a binary time is not provided, the current time is used. gettim - get current time as binary $bin = gettim([$retmode]); Returns the current time. $retmode specifies the format of the returned value as described in the overview section. numtim - get current time as array or convert binary time to array @a = numtim(); # current time @a = numtim($bin); # supplied time value Returns an array of numeric values representing the current time. The values are returned in the order year, month, day, hour, minute, second, hundredth of seconds. If no binary time value is provided the current time is used. epoch_to_vms - convert unix epoch time value to vms time $bin = epoch_to_vms($tm); Converts the provided unix time value to OpenVMS binary time format. vms_to_epoch - convert vms time to unix epoch time value $tm = vms_to_epoch($bin); Converts an 8 byte OpenVMS binary time to a unix time value. SEE ALSO See the OpenVMS System Services Reference Manual for descriptions of the referenced system services. AUTHOR Thomas Pfau, tfp...@gmail.comgt COPYRIGHT AND LICENSE VMS::Time is Copyright (C) 2013 by Thomas Pfau This module is free software. You can redistribute it and/or modify it under the terms of the Artistic License 2.0. This module is distributed in the hope that it will be useful but it is provided as isand without any express or implied warranties.
Re: 5.16.2 build
On Tue, Jan 1, 2013 at 5:51 PM, Craig A. Berry craigbe...@mac.com wrote: On Dec 31, 2012, at 12:32 PM, Thomas Pfau tfp...@gmail.com wrote: Also, I haven't had any luck building on an ODS-5 volume on either Alpha or Integrity. Tests are running now. Building on ODS-5 definitely works for a default build, but I think you were building with case sensitive symbols. I was originally trying to build with case sensitive symbols but realized it was going to be a nightmare and gave up. All of my later attempts had this option turned off. -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: VMS::Time module
I just downloaded it recently. I believe it's the latest. I think the changes may occur as perl builds the directory tree. Copyright (c) 1990-2008 Info-ZIP - Type 'zip -L' for software license. This is Zip 3.0 (July 5th 2008), by Info-ZIP. On Tue, Jan 1, 2013 at 6:35 PM, Craig A. Berry craigbe...@mac.com wrote: On Jan 1, 2013, at 2:26 PM, Thomas Pfau tfp...@gmail.com wrote: I have this working on Alpha with (5.16.2) and without (5.10.0) 64 bit integer support, and on VAX (5.8.4). Before uploading this to CPAN I'm curious if anyone has a solution for 'mmk zipdist' mangling the case of filenames. The PAUSE server wants to extract certain files from the distribution but can't find them because of case differences. What version of zip do you have? As far as I know, zipdist just uses your zip program, and recent versions of Info-Zip preserve case just fine. Craig A. Berry mailto:craigbe...@mac.com ... getting out of a sonnet is much more difficult than getting in. Brad Leithauser -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
5.16.2 build
I finally got 5.16.2 to complete the build process on Integrity today. Apparently DECC$READDIR_DROPDOTNOTYPE enabled causes problems. We have that set at work for something else. I had to define it locally to disabled and the build completed. Also, I haven't had any luck building on an ODS-5 volume on either Alpha or Integrity. Tests are running now. -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: VMS::Time module
I was thinking about this today and thought of another way to select the return format. What if the routines that returned a VMS time value had an extra argument indicating what format to return it in? Constants for the format argument could be provided by the module. The possible formats could include 8 byte string (packed format), integer (if 64 bit integer support is built into perl), or float. Does this sound like a more usable interface? For example: $tm1 = gettim(VMSTM_PACK); $tm2 = bintim('31-DEC-2012 18:00', VMSTM_FLOAT); It was suggested to return a list of values but then the caller needs to know which entry in the returned list is in the desired format. It also means returning multiple values when the caller probably only wants one. On Mon, Dec 24, 2012 at 5:19 PM, Thomas Pfau tfp...@gmail.com wrote: I wrote a time module that interfaces to the VMS time system services - $BINTIM, $ASCTIM, $GETTIM, and $NUMTIM. I also had a replacement routines for $ASCTIM, $BINTIM and $GETTIM that could be used on non-VMS platforms. Currently it accepts and returns VMS time buffers as 8 byte strings but I was thinking of allowing numeric values to be passed if perl was built with 64 bit integer support. I could detect the input format by using SvIOK/SvPOK. The problem I have is determining how the user wants the information returned. Current interface ($now and $bin are 8 byte strings containing the time): $now = gettim(); $bin = bintim('01-jan-2010 12:00:00.00'); $asc = asctim($bin); ($year, $month, $day, $hr, $mn, $sc, $cc) = numtim($bin); I'm thinking of using an optional additional argument on gettim and bintim that would be written with the 8 byte string and have the routines return the time as an integer if perl is built with 64 bit integers. I could try to interface to the bigint module and return a bigint value if 64 bit integers aren't available. Would anyone find this useful? Any comments on the interface? -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/ -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: perl 5.16.2 build problems
Tests completed. Results are in http://nbpfaus.net/~pfau/perltest.zip -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: perl 5.16.2 build problems
I started looking through some of the failures. t/comp/parser . FAILED--unexpected output at test 0 1..123 ... ok 23 - interpolation, here doc ok 24 - ';' sub prototype confuses the lexer # ok 25 ok 26 - eval { foo = 'bar' } ok 27 - { foo = 'bar' } ... garbage line of output appears to come from this: # Bug #21575 # ensure that the second print statement works, by playing a bit # with the test output. my %data = ( foo = \n ); print #; print( $data{foo}); $test = $test + 1; print ok $test\n; Pipe problem? t/op/stat . FAILED at test 31 not ok 31 - symlink() ok # Failed test 31 - symlink() ok at [.t.op]stat.t line 223 not ok 32 - -l # Failed test 32 - -l at [.t.op]stat.t line 224 ... ok 81 - lstat $ioref reverts to regular fstat # Can't symlink [.t.op]stat.t: permission denied at [.t.op]stat.t line 485. # Looks like you planned 113 tests but ran 81. %SYSTEM-F-ABORT, abort t/op/taint FAILED--unexpected output at test 531 Appears to be due to building with secure logical name translations. First error is this: ok 7 # skip all directories are writeable Insecure $ENV{DCL$PATH} while running with -t switch at [.t.op]taint.t line 192. Insecure dependency in popen while running with -t switch at [.t.op]taint.t line 192. not ok 8 cpan/autodie/t/Fatal .. FAILED--expected test 15, saw test 17 ok 14 - Close filehandle using - \*FOO Fatal VMS error (status=114730) at DKA100:[PERL-5_16_2]VMS.C;1, line 11973 %RMS-E-FND, ACP file or directory lookup failed Fatal VMS error (status=114730) at DKA100:[PERL-5_16_2]VMS.C;1, line 11973 %RMS-E-FND, ACP file or directory lookup failed ok 16 - Package :void Fatal::opendir in scalar context ok 17 - Can't override print cpan/File-Path/t/Path . FAILED at test 66 ok 65 - bug 487319 setup not ok 66 - debian bug 487319 setup symlink # Failed test 'debian bug 487319 setup symlink' # at cpan/file-path/t/path.t line 332. # bug487319-symlink ok 67 - mask of symlink target dir unchanged (debian bug 487319)
VMS::Time module
I wrote a time module that interfaces to the VMS time system services - $BINTIM, $ASCTIM, $GETTIM, and $NUMTIM. I also had a replacement routines for $ASCTIM, $BINTIM and $GETTIM that could be used on non-VMS platforms. Currently it accepts and returns VMS time buffers as 8 byte strings but I was thinking of allowing numeric values to be passed if perl was built with 64 bit integer support. I could detect the input format by using SvIOK/SvPOK. The problem I have is determining how the user wants the information returned. Current interface ($now and $bin are 8 byte strings containing the time): $now = gettim(); $bin = bintim('01-jan-2010 12:00:00.00'); $asc = asctim($bin); ($year, $month, $day, $hr, $mn, $sc, $cc) = numtim($bin); I'm thinking of using an optional additional argument on gettim and bintim that would be written with the 8 byte string and have the routines return the time as an integer if perl is built with 64 bit integers. I could try to interface to the bigint module and return a bigint value if 64 bit integers aren't available. Would anyone find this useful? Any comments on the interface? -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: perl 5.16.2 build problems
I downloaded the latest MMK and tried again. It still failed to find module GLOBALS although it did find PERL. On Sat, Dec 22, 2012 at 11:32 PM, Thomas Pfau tfp...@gmail.com wrote: I zipped up the log files and config.h. You can grab it from http://nbpfaus.net/~pfau/perlbuild.zip. perlbuild-1.log was the first part of the build. That failed due to not finding dynaloader.c. I issued the MMK commands to get it generated and then resubmitted the build. That produced perlbuild-2.log. I started all of this after deleting the entire directory tree and unpacking the sources again. I have MMK V3.9-9. I'll try again with 4.1. On Sat, Dec 22, 2012 at 11:15 PM, Craig A. Berry craigbe...@mac.comwrote: On Dec 22, 2012, at 5:14 PM, Thomas Pfau tfp...@gmail.com wrote: My build had problems with DynLoader which I was able to get past with 'mmk dynloader.xs', 'mmk dynloader.c', 'mmk all'. I didn't have that problem. I don't know if it makes a difference, but I was using MMK 4.1 for this. After that I restarted the full build. It died with the following while building in dist/Cwd: Link /NoTrace/NoMap /Shareable=[--.LIB.AUTO.CWD]PL_CWD.EXE Cwd.opt/Option,[--]perlshr_attr.opt/Option %LINK-W-SHRWRNERS, compilation warnings in shareable image file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]PERLSHR.EXE;1 %MMK-F-ERRUPD, error status %X10648268 occurred when updating target [--.LIB.AUTO.CWD]PL_CWD.EXE %MMK-F-ERRUPD, error status %X10648268 occurred when updating target [--.LIB.AUTO.CWD]PL_CWD.EXE Unsuccessful make(dist/Cwd): code=1024 at make_ext.pl line 466. %NONAME-F-NOMSG, Message number 0C14803C %MMK-F-ERRUPD, error status %X0C14803C occurred when updating target DYNEXT This is almost certainly a symptom of not getting completely cleaned up after the compiler warnings you reported earlier. I looked further up in the build log and found this: Link /NoTrace/NoMap/Share=PERLSHR.EXE DynaLoader.obj, []perlshr_bld.opt/Option, perlshr_attr.opt/Option %LINK-W-NOSUCHMOD, module PERL not found in library DISK$USERS:[pfau.FREEWARE.perl-5_16_2]LIBPERL.OLB;1 %LINK-W-NOSUCHMOD, module GLOBALS not found in library DISK$USERS:[pfau.FREEWARE.perl-5_16_2]LIBPERL.OLB;1 Link /NoTrace/NoMap/THREADS=(MULTIPLE_KERNEL,UPCALLS)/Exe=PERL.EXE perlmain.obj, perlshr.opt/Option, perlshr_attr.opt/Option ,[]crt$ %LINK-W-SHRWRNERS, compilation warnings in shareable image file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]PERLSHR.EXE;1 Any ideas? Something went wrong compiling globals.c and/or perl.c. If you have compiler warnings or failures that we haven't addressed yet, that would be the place to start. If there aren't any that we haven't dealt with, then you haven't been getting the results of the previous compiles cleaned up adequately. BTW, is threading supported on VMS? It is, but you don't get it unless you configure with -Dusethreads. My link looked like: $ sea sys$login:build_5_16_2.log exe=perl Link /NoTrace/NoMap/Exe=PERL.EXE perlmain.obj, perlshr.opt/Option, perlshr_attr.opt/Option ,[]crtl.opt/Options Craig A. Berry mailto:craigbe...@mac.com ... getting out of a sonnet is much more difficult than getting in. Brad Leithauser -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/ -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: perl 5.16.2 build problems
Ok, I just saw it. I selected the option to preserve case in symbol names. The module gets named 'globals' but the options file calls for 'GLOBALS'. On Sun, Dec 23, 2012 at 8:56 AM, Thomas Pfau tfp...@gmail.com wrote: I downloaded the latest MMK and tried again. It still failed to find module GLOBALS although it did find PERL. On Sat, Dec 22, 2012 at 11:32 PM, Thomas Pfau tfp...@gmail.com wrote: I zipped up the log files and config.h. You can grab it from http://nbpfaus.net/~pfau/perlbuild.zip. perlbuild-1.log was the first part of the build. That failed due to not finding dynaloader.c. I issued the MMK commands to get it generated and then resubmitted the build. That produced perlbuild-2.log. I started all of this after deleting the entire directory tree and unpacking the sources again. I have MMK V3.9-9. I'll try again with 4.1. On Sat, Dec 22, 2012 at 11:15 PM, Craig A. Berry craigbe...@mac.comwrote: On Dec 22, 2012, at 5:14 PM, Thomas Pfau tfp...@gmail.com wrote: My build had problems with DynLoader which I was able to get past with 'mmk dynloader.xs', 'mmk dynloader.c', 'mmk all'. I didn't have that problem. I don't know if it makes a difference, but I was using MMK 4.1 for this. After that I restarted the full build. It died with the following while building in dist/Cwd: Link /NoTrace/NoMap /Shareable=[--.LIB.AUTO.CWD]PL_CWD.EXE Cwd.opt/Option,[--]perlshr_attr.opt/Option %LINK-W-SHRWRNERS, compilation warnings in shareable image file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]PERLSHR.EXE;1 %MMK-F-ERRUPD, error status %X10648268 occurred when updating target [--.LIB.AUTO.CWD]PL_CWD.EXE %MMK-F-ERRUPD, error status %X10648268 occurred when updating target [--.LIB.AUTO.CWD]PL_CWD.EXE Unsuccessful make(dist/Cwd): code=1024 at make_ext.pl line 466. %NONAME-F-NOMSG, Message number 0C14803C %MMK-F-ERRUPD, error status %X0C14803C occurred when updating target DYNEXT This is almost certainly a symptom of not getting completely cleaned up after the compiler warnings you reported earlier. I looked further up in the build log and found this: Link /NoTrace/NoMap/Share=PERLSHR.EXE DynaLoader.obj, []perlshr_bld.opt/Option, perlshr_attr.opt/Option %LINK-W-NOSUCHMOD, module PERL not found in library DISK$USERS:[pfau.FREEWARE.perl-5_16_2]LIBPERL.OLB;1 %LINK-W-NOSUCHMOD, module GLOBALS not found in library DISK$USERS:[pfau.FREEWARE.perl-5_16_2]LIBPERL.OLB;1 Link /NoTrace/NoMap/THREADS=(MULTIPLE_KERNEL,UPCALLS)/Exe=PERL.EXE perlmain.obj, perlshr.opt/Option, perlshr_attr.opt/Option ,[]crt$ %LINK-W-SHRWRNERS, compilation warnings in shareable image file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]PERLSHR.EXE;1 Any ideas? Something went wrong compiling globals.c and/or perl.c. If you have compiler warnings or failures that we haven't addressed yet, that would be the place to start. If there aren't any that we haven't dealt with, then you haven't been getting the results of the previous compiles cleaned up adequately. BTW, is threading supported on VMS? It is, but you don't get it unless you configure with -Dusethreads. My link looked like: $ sea sys$login:build_5_16_2.log exe=perl Link /NoTrace/NoMap/Exe=PERL.EXE perlmain.obj, perlshr.opt/Option, perlshr_attr.opt/Option ,[]crtl.opt/Options Craig A. Berry mailto:craigbe...@mac.com ... getting out of a sonnet is much more difficult than getting in. Brad Leithauser -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/ -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/ -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: perl 5.16.2 build problems
Ok, I fixed that options file and now it fails on devel/ppport. I'm starting over with the case sensitive build turned off. On Sun, Dec 23, 2012 at 9:16 AM, Craig A. Berry craigbe...@mac.com wrote: On Dec 23, 2012, at 7:58 AM, Thomas Pfau tfp...@gmail.com wrote: Ok, I just saw it. I selected the option to preserve case in symbol names. The module gets named 'globals' but the options file calls for 'GLOBALS'. Aha. Another non-default option I haven't tried in a long time. It looks like the following line in the linker option file generator will need to fiddle with case when that option is selected: $ search [.vms]gen_shrfls.pl globals my $incstr = 'PERL,GLOBALS'; Craig A. Berry mailto:craigbe...@mac.com ... getting out of a sonnet is much more difficult than getting in. Brad Leithauser -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: perl 5.16.2 build problems
Some defaults aren't restored properly when re-executing configure.com. Enable thread upcalls? [n] y Installation prefix to use (for PERL_ROOT)? [ perl_root.] ] dsa0:[perl-5_16_2_root.] What pager is used on your system? [type/pag] type/page=save=10 -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: perl 5.16.2 build problems
I started over, told it not to use mixed case symbols, and after about 4.25 hours it appears to have completed successfully. Now to start the tests On Sun, Dec 23, 2012 at 2:01 PM, Craig A. Berry craigbe...@mac.com wrote: On Dec 23, 2012, at 12:52 PM, Thomas Pfau tfp...@gmail.com wrote: Some defaults aren't restored properly when re-executing configure.com. Enable thread upcalls? [n] y Installation prefix to use (for PERL_ROOT)? [ perl_root.] ] dsa0:[perl-5_16_2_root.] What pager is used on your system? [type/pag] type/page=save=10 The intention is that it will read the config.sh generated by a previous configuration if it exists and use it as your new set of defaults. This is in imitation of what Configure does. If you don't want that behavior, you need to make the realclean target before reconfiguring, which will removing any existing config.sh files. Craig A. Berry mailto:craigbe...@mac.com ... getting out of a sonnet is much more difficult than getting in. Brad Leithauser -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
perl 5.16.2 build problems - dynaloader
Running Makefile.PL in ext/DynaLoader dsa3:[pfau.freeware.perl-5_16_2]miniperl.exe;1 -I../../lib Makefile.PL INST_LIB=[--.lib] INST_ARCHLIB=[--.lib] PERL_CORE=1 Writing Descrip.MMS for DynaLoader Making all in ext/DynaLoader MMK all /DESCRIPTION=descrip.mms /MACRO=(PERL_CORE=1) MCR [--]miniperl.exe -I[--.lib] -I[--.lib] DynaLoader_pm.PL DynaLoader.pm cp dynaloader.pm [--.lib]dynaloader.pm MCR [--]miniperl.exe -I[--.lib] -I[--.lib] -e use ExtUtils::Mksymlists; -e Mksymlists('NAME' = 'DynaLoader', 'DL_FUNCS' = { }, 'DL_VARS' = [], 'FUNCLIST' = []) MCR [--]miniperl.exe -e print [--.lib.auto.DynaLoader]DynaLoader.olb/Include=DYNALOADER\n[--.lib.auto.DynaLoader]DynaLoader.olb/L ibrary\n; DYNALOADER.OPT MCR [--]miniperl.exe -e print qq{PerlShr/Share\n} DYNALOADER.OPT MCR DISK$USERS:[pfau.FREEWARE.perl-5_16_2]miniperl.exe -I[--.lib] -I[--.lib] -MExtUtils::Command -e cp -- DYNALOADER.OPT [ --.LIB.AUTO.DYNALOADER]DYNALOADER.OPT CC/DECC /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj /NOANSI_ALIAS/float=ieee/ieee=denorm/NAMES=(AS_IS,SHORTENED)/Define=(_ USE_STD_STAT=1,LIBC=\(DECCRTL\),VERSION=1.14,XS_VERSION=1.14)/Include=([--])/NoList DYNALOADER.c %CC-F-OPENIN, error opening DISK$USERS:[pfau.FREEWARE.perl-5_16_2.ext.DynaLoader]DYNALOADER.c; as input -RMS-E-FNF, file not found %MMK-F-ERRUPD, error status %X10B9002C occurred when updating target DYNALOADER.OBJ %MMK-F-ERRUPD, error status %X10B9002C occurred when updating target DYNALOADER.OBJ Unsuccessful make(ext/DynaLoader): code=1024 at make_ext.pl line 466. %NONAME-F-NOMSG, Message number 0C14803C %MMK-F-ERRUPD, error status %X0C14803C occurred when updating target DYNALOADER.OBJ Axp1» dir [.ext.dynaloader] Directory DISK$USERS:[pfau.FREEWARE.perl-5_16_2.ext.DynaLoader] BLIB.DIR;1 Descrip.MMS;1 dlutils.c;1 dl_aix.xs;1 dl_beos.xs;1dl_dld.xs;1 dl_dllload.xs;1 dl_dlopen.xs;1 dl_dyld.xs;1dl_hpux.xs;1dl_mpeix.xs;1 dl_next.xs;1 dl_none.xs;1dl_symbian.xs;1 dl_vmesa.xs;1 dl_vms.xs;1 dl_win32.xs;1 DYNALOADER.OPT;1DYNALOADER.PM;1 DynaLoader_pm.PL;1 hints.DIR;1 Makefile.PL;1 PM_TO_BLIB.TS;1 README.;1 t.DIR;1 Total of 25 files. I managed to proceed by invoking 'mmk dynaloader.xs', 'mmk dynaloader.c', 'mmk all'. -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: perl 5.16.2 build problems
Thanks for the response. It's not a big deal. It didn't stop the build and seems like it had no effect. On Sat, Dec 22, 2012 at 9:50 AM, John E. Malmberg malmb...@encompasserve.org wrote: On 12/22/2012 8:07 AM, Craig A. Berry wrote: MCR SYS$DISK:[]generate_uudmap.exe uudmap.h bitcount.h mg_data.h Action did not update target BITCOUNT.H Action did not update target MG_DATA.H I'm not sure if this is a problem or not. Don't think so. MMS and MMK feel the need to tell you that they didn't do anything. It is a bug in MMS or MMK (possibly both) depending on where you saw it. The tool thinks it was told to create BITCOUNT.H and did not find it because bitcount.h was actually created. I reported a similar bug with library module handling to the current MMK maintainer, and he said he would look into it. I have not heard from him since. I just pulled down the latest DECSET ECO on Alpha, but have not tested it yet, and probably will not for a little bit. Regards, -John malmberg@encompasserve.**organization Personal Opinion Only -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
perl 5.16.2 build problems
My build had problems with DynLoader which I was able to get past with 'mmk dynloader.xs', 'mmk dynloader.c', 'mmk all'. After that I restarted the full build. It died with the following while building in dist/Cwd: Link /NoTrace/NoMap /Shareable=[--.LIB.AUTO.CWD]PL_CWD.EXE Cwd.opt/Option,[--]perlshr_attr.opt/Option %LINK-W-SHRWRNERS, compilation warnings in shareable image file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]PERLSHR.EXE;1 %MMK-F-ERRUPD, error status %X10648268 occurred when updating target [--.LIB.AUTO.CWD]PL_CWD.EXE %MMK-F-ERRUPD, error status %X10648268 occurred when updating target [--.LIB.AUTO.CWD]PL_CWD.EXE Unsuccessful make(dist/Cwd): code=1024 at make_ext.pl line 466. %NONAME-F-NOMSG, Message number 0C14803C %MMK-F-ERRUPD, error status %X0C14803C occurred when updating target DYNEXT I looked further up in the build log and found this: Link /NoTrace/NoMap/Share=PERLSHR.EXE DynaLoader.obj, []perlshr_bld.opt/Option, perlshr_attr.opt/Option %LINK-W-NOSUCHMOD, module PERL not found in library DISK$USERS:[pfau.FREEWARE.perl-5_16_2]LIBPERL.OLB;1 %LINK-W-NOSUCHMOD, module GLOBALS not found in library DISK$USERS:[pfau.FREEWARE.perl-5_16_2]LIBPERL.OLB;1 Link /NoTrace/NoMap/THREADS=(MULTIPLE_KERNEL,UPCALLS)/Exe=PERL.EXE perlmain.obj, perlshr.opt/Option, perlshr_attr.opt/Option ,[]crt$ %LINK-W-SHRWRNERS, compilation warnings in shareable image file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]PERLSHR.EXE;1 Any ideas? BTW, is threading supported on VMS? -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: perl 5.16.2 build problems
I zipped up the log files and config.h. You can grab it from http://nbpfaus.net/~pfau/perlbuild.zip. perlbuild-1.log was the first part of the build. That failed due to not finding dynaloader.c. I issued the MMK commands to get it generated and then resubmitted the build. That produced perlbuild-2.log. I started all of this after deleting the entire directory tree and unpacking the sources again. I have MMK V3.9-9. I'll try again with 4.1. On Sat, Dec 22, 2012 at 11:15 PM, Craig A. Berry craigbe...@mac.com wrote: On Dec 22, 2012, at 5:14 PM, Thomas Pfau tfp...@gmail.com wrote: My build had problems with DynLoader which I was able to get past with 'mmk dynloader.xs', 'mmk dynloader.c', 'mmk all'. I didn't have that problem. I don't know if it makes a difference, but I was using MMK 4.1 for this. After that I restarted the full build. It died with the following while building in dist/Cwd: Link /NoTrace/NoMap /Shareable=[--.LIB.AUTO.CWD]PL_CWD.EXE Cwd.opt/Option,[--]perlshr_attr.opt/Option %LINK-W-SHRWRNERS, compilation warnings in shareable image file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]PERLSHR.EXE;1 %MMK-F-ERRUPD, error status %X10648268 occurred when updating target [--.LIB.AUTO.CWD]PL_CWD.EXE %MMK-F-ERRUPD, error status %X10648268 occurred when updating target [--.LIB.AUTO.CWD]PL_CWD.EXE Unsuccessful make(dist/Cwd): code=1024 at make_ext.pl line 466. %NONAME-F-NOMSG, Message number 0C14803C %MMK-F-ERRUPD, error status %X0C14803C occurred when updating target DYNEXT This is almost certainly a symptom of not getting completely cleaned up after the compiler warnings you reported earlier. I looked further up in the build log and found this: Link /NoTrace/NoMap/Share=PERLSHR.EXE DynaLoader.obj, []perlshr_bld.opt/Option, perlshr_attr.opt/Option %LINK-W-NOSUCHMOD, module PERL not found in library DISK$USERS:[pfau.FREEWARE.perl-5_16_2]LIBPERL.OLB;1 %LINK-W-NOSUCHMOD, module GLOBALS not found in library DISK$USERS:[pfau.FREEWARE.perl-5_16_2]LIBPERL.OLB;1 Link /NoTrace/NoMap/THREADS=(MULTIPLE_KERNEL,UPCALLS)/Exe=PERL.EXE perlmain.obj, perlshr.opt/Option, perlshr_attr.opt/Option ,[]crt$ %LINK-W-SHRWRNERS, compilation warnings in shareable image file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]PERLSHR.EXE;1 Any ideas? Something went wrong compiling globals.c and/or perl.c. If you have compiler warnings or failures that we haven't addressed yet, that would be the place to start. If there aren't any that we haven't dealt with, then you haven't been getting the results of the previous compiles cleaned up adequately. BTW, is threading supported on VMS? It is, but you don't get it unless you configure with -Dusethreads. My link looked like: $ sea sys$login:build_5_16_2.log exe=perl Link /NoTrace/NoMap/Exe=PERL.EXE perlmain.obj, perlshr.opt/Option, perlshr_attr.opt/Option ,[]crtl.opt/Options Craig A. Berry mailto:craigbe...@mac.com ... getting out of a sonnet is much more difficult than getting in. Brad Leithauser -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
perl on vms website
A Google search for vms perl returns www.sidhe.org/*vmsperl*/ and www.* vmsperl*.com/ among the top results. Neither of these has current information about Perl on VMS. The first refers to Perl 5.6.1 (released in 2000) and the other contains no information at all. Could we get some more recent information about Perl on VMS on one of these sites or create a new site for this purpose? Or are we relying on HP to keep vital information updated on their VMS Perl page? I'll volunteer some time to get this off the ground if others are interested and someone provides a server. -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: perl on vms website
I'd really like to see what versions can be expected to compile on what platforms. I was trying to load 5.14.2 today on Itanium at work and kept running into problems. I think the last thing I saw anyone talk about on the mailing list was 5.12. I'd hate to start a build that had no hopes of finishing successfully on my Alpha workstation at home. It would be nice to have a matrix of hardware/vms version/perl version describing what works and what needs work. On Fri, Dec 21, 2012 at 7:25 PM, Craig A. Berry craigbe...@mac.com wrote: On Dec 21, 2012, at 5:04 PM, Thomas Pfau tfp...@gmail.com wrote: A Google search for vms perl returns www.sidhe.org/vmsperl/ and www.vmsperl.com/ among the top results. Neither of these has current information about Perl on VMS. The first refers to Perl 5.6.1 (released in 2000) and the other contains no information at all. Could we get some more recent information about Perl on VMS on one of these sites or create a new site for this purpose? Or are we relying on HP to keep vital information updated on their VMS Perl page? I'll volunteer some time to get this off the ground if others are interested and someone provides a server. Bless you, that would be fabulous. I was not aware of the vmsperl.comdomain; I would guess it's just someone parking on it. The sidhe.org site is owned by Dan Sugalski. I used to have access to it (maybe I still do) but I'm afraid I've never found time to do anything with it. I vaguely recall someone else volunteering to update it a few years ago, but that never happened. There are places to follow what's going on, such as this mailing list, or seeing what I've been up to in git history: http://perl5.git.perl.org/perl.git?a=searchh=HEADst=authors=craigberry. But it would be very nice to have a simple, friendly site that would show up in web searches. The perl.org site is looking rather nice these days and I'd be willing to ask if we could get vmsperl.perl.org or perl.org/vmsperl and just use their stylesheets and so on. Craig A. Berry mailto:craigbe...@mac.com ... getting out of a sonnet is much more difficult than getting in. Brad Leithauser -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
perl 5.16.2 build problems
I ran configure.com and selected large integer support but not maximal and not large double. DISK$USERS:[pfau.FREEWARE.perl-5_16_2.vms]vmsish.h;1 copied to DISK$USERS:[PFAU.FREEWARE.perl-5_16_2]vmsish.h;1 (58 blocks) CC/DECC/NOANSI_ALIAS /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList/float=ieee/ieee=denorm/NAMES=(AS_IS,SHORTENED)/Define=(PERL_CORE,_USE_STD_STAT=1) MINIPERLMAIN.C #undef NV_PRESERVES_UV ..^ An unexpected newline character is present in a string literal. at line number 4525 in file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]config.h;1 #undef NV_PRESERVES_UV ...^ #undef directive is not followed by an identifier and is being ignored. at line number 4525 in file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]config.h;1 Error status %X10B91262 occurred when updating target MINIPERLMAIN.OBJ Removing the quote character allows the build to proceed past this point. Configure.com line 5668 contains the following: $ d_nv_preserves_uv = undef The double quotation mark at the end gets parsed as a quotation mark inserted into the string. MCR SYS$DISK:[]generate_uudmap.exe uudmap.h bitcount.h mg_data.h Action did not update target BITCOUNT.H Action did not update target MG_DATA.H I'm not sure if this is a problem or not. CC/DECC/NOANSI_ALIAS /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList/float=ieee/ieee=denorm/NAMES=(AS_IS,SHORTENED)/Def ine=(PERL_CORE,_USE_STD_STAT=1) NUMERIC.C return NV_MAX; ...^ In this statement, floating-point overflow occurs in evaluating the expression 1.189731495357231765085759326628007016196477e4932l. at line number 810 in file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]numeric.c;1 Error status %X10B91260 occurred when updating target NUMERIC.OBJ I can get past this if I use MMK/IGNORE=WARNING. CC/DECC/NOANSI_ALIAS /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList/float=ieee/ieee=denorm/NAMES=(AS_IS,SHORTENED)/Def ine=(PERL_CORE,_USE_STD_STAT=1) PP.C NV (*func)(NV) = Perl_sin; .^ %CC-W-PTRMISMATCH, In the initializer for func, the referenced type of the pointer value sinl is function (long double) returning long double, which is not compatible with function (double) returning double. at line number 2691 in file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]pp.c;1 func = Perl_cos; ^ %CC-W-PTRMISMATCH, In this statement, the referenced type of the pointer value cosl is function (long double) returning long doub le, which is not compatible with function (double) returning double. at line number 2697 in file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]pp.c;1 func = Perl_exp; ^ %CC-W-PTRMISMATCH, In this statement, the referenced type of the pointer value expl is function (long double) returning long doub le, which is not compatible with function (double) returning double. at line number 2701 in file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]pp.c;1 func = Perl_log; ^ %CC-W-PTRMISMATCH, In this statement, the referenced type of the pointer value logl is function (long double) returning long doub le, which is not compatible with function (double) returning double. at line number 2705 in file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]pp.c;1 func = Perl_sqrt; ^ %CC-W-PTRMISMATCH, In this statement, the referenced type of the pointer value sqrtl is function (long double) returning long dou ble, which is not compatible with function (double) returning double. at line number 2710 in file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]pp.c;1 CC/DECC/NOANSI_ALIAS /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList/float=ieee/ieee=denorm/NAMES=(AS_IS,SHORTENED)/Def ine=(PERL_CORE,_USE_STD_STAT=1) PP_PACK.C cdouble = Perl_modf(cdouble / anv, trouble) * anv; ..^ %CC-W-PTRMISMATCH, In this statement, the referenced type of the pointer value trouble is double, which is not compatible with long double. at line number 2221 in file DISK$USERS:[pfau.FREEWARE.perl-5_16_2]pp_pack.c;1 Not sure if these will become problems but I would guess they will be. At this point miniperl gets built ok and it starts to build modules. I'll have more when I hit those errors. -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
Re: scp to VMS (Re: mms case sensitivity build failures (was Re: HP hobbyist license))
I understand this problem is fixed with the new ssh that comes with OpenVMS 8.4. Prior to this, scp does not work to openssh systems. On Wed, May 16, 2012 at 11:17 PM, Craig A. Berry craigbe...@mac.com wrote: On May 16, 2012, at 11:36 AM, Mark Berryman wrote: 1: Is there any easy way to get an scp2 client for Unix, so that I can scp to them? (And use editors remotely) SCP clients definitely work to VMS systems as I use them extensively. It has been awhile since I set up a TCPIP Services system (I use Multinet myself) but, if you have any error messages or log files, especially from the VMS side, I may be able to help. I'm almost positive scp only works with Multinet, not TCP/IP Services. IIRC, the HP scp server errors out with something about not talking SSH 1.0, only 2.0, but in fact it is its own fault for failing to recognize the 2.0 handshake sent by the client. If someone has a contrary example of using a modern scp client to talk to the TCP/IP Services server, I'd love to know how to make it work. Craig A. Berry mailto:craigbe...@mac.com ... getting out of a sonnet is much more difficult than getting in. Brad Leithauser -- Thomas Pfau tfp...@gmail.com http://www.linkedin.com/in/thomaspfau http://nbpfaus.net/~pfau/
mailing list subscriptions
I want to move my subscription to this list to another email address. The only address I can find for mailing list maintenance is majord...@perl.org but it doesn't seem to be a valid address. Does someone know the correct address for this? Is there a web interface?
Re: mailing list subscriptions
Never mind, I found it. On Sep 1, 2010, at 20:57 54, Thomas Pfau wrote: I want to move my subscription to this list to another email address. The only address I can find for mailing list maintenance is majord...@perl.org but it doesn't seem to be a valid address. Does someone know the correct address for this? Is there a web interface?
Re: SMG keyboard interface
On Aug 3, 2010, at 23:04 49, Craig A. Berry wrote: On Aug 3, 2010, at 5:19 PM, Thomas Pfau wrote: I've been hacking around with some code that interfaces to SMG's keyboard routines. The module exposes SMG$READ_STRING, SMG$READ_COMPOSED_LINE and SMG$READ_KEYSTROKE. I also created a Term::ReadLine::SMG that uses this module. If anyone is interested, I'll clean it up, put on the finishing touches and upload it to CPAN. Very interesting -- I'd like to see it on CPAN. Does it bear any resemblance to the very old one here: ftp://ftp.sidhe.org/smg.zip ? That code implements display routines. It has some input routines but not SMG$READ_COMPOSED_LINE. Mine only has the keyboard routines.
SMG keyboard interface
I've been hacking around with some code that interfaces to SMG's keyboard routines. The module exposes SMG$READ_STRING, SMG$READ_COMPOSED_LINE and SMG$READ_KEYSTROKE. I also created a Term::ReadLine::SMG that uses this module. If anyone is interested, I'll clean it up, put on the finishing touches and upload it to CPAN.
Re: VMS::Persona
Carl Friedberg wrote: Is anyone using VMS::Persona? If not, I'll quit here. I believe it may have been used by one of the webservers. I recall coming across persona stuff while trying to implement a website a long time ago. It might have been a perl environment provided for the OSU server and it might have actually been outside the perl code; i.e., C code called the persona stuff to set up the environment before starting a perl interpreter. I just looked through my web links and didn't see the package I was looking for. I'll look some more tomorrow.
VMS::Logical
I finally got around to uploading this to CPAN. I made some very minor changes and created version 0.4 which is available on CPAN and at http://axp1.nbpfaus.net/~pfau/. I also attempted to register the VMS::Logical namespace.
Re: getting new VMS extensions into Perl (was Re: [blead 2009-05-29.22:08:17] vms.c EFS logical name fix.)
Craig A. Berry wrote: On Jun 10, 2009, at 7:29 PM, John E. Malmberg wrote: Thomas Pfau wrote: John E. Malmberg wrote: We really need to get some sort of logical name support that we can count on being bundled with Perl on VMS. My VMS::Logical module appears to work. I don't think I ever uploaded it to CPAN but I could do that. http://axp1.nbpfaus.net/~pfau/perl/VMS-LOGICAL-0_3.ZIP That would be great. If that poses any problem for you I'd be happy to do it with your permission. No problem. I have a PAUSE account. I'll try to remember to upload it tonight. -- tom_p http://nbpfaus.net/
Re: [blead 2009-05-29.22:08:17] vms.c EFS logical name fix.
John E. Malmberg wrote: We really need to get some sort of logical name support that we can count on being bundled with Perl on VMS. My VMS::Logical module appears to work. I don't think I ever uploaded it to CPAN but I could do that. http://axp1.nbpfaus.net/~pfau/perl/VMS-LOGICAL-0_3.ZIP -- tom_p http://nbpfaus.net/
problem with MAKE_EXT.COM
I reported a problem with the build dying with the following after building VMS/Stdio: %RMS-F-DIR, error in directory name %RMS-F-DIR, error in directory name %MMK-F-ERRUPD, error status %X100184CC occurred when updating target DYNEXT The following code fragment comes from the end of MAKE_EXT.COM: $ done: $sts = $Status $Set Def def $Exit sts The symbol 'def' is never set anywhere. Upon entering the procedure, the current default directory is captured in symbol 'mydefault'. After replacing 'def' with 'mydefault' the build continues on to completion.
build error
perl-current dated 10/25 8:55 VAX/OpenVMS V7.3 on Simh This is the MadGoat Make Utility V3.9-1 Copyright © 1992-2001, MadGoat Software. All Rights Reserved. Compaq C V6.4-005 on OpenVMS VAX V7.3 I had to compile Ext/Digest/Sha/Sha.c manually with optimization turned off. After restarting the build, it ended with the following. Making VMS/Stdio (dynamic) Writing Descrip.MMS for VMS::Stdio cp stdio.pm [---.lib.vms]stdio.pm MCR simh04$dua1:[perl-current]miniperl.exe -I[---.lib] -I[---.lib] -e use ExtUtils::Mksymlists; -e Mksymlists('NAME' = 'VMS::Stdio', 'DL_FUNCS' = { }, 'DL_VARS' = [], 'FUNCLIST' = []) MCR simh04$dua1:[perl-current]miniperl.exe -e print [---.lib.auto.VMS.Stdio]Stdio.olb/Include=Stdio\n[---.lib.auto.VMS.Stdio]Stdio.olb/Library\n; STDIO.OPT MCR simh04$dua1:[perl-current]miniperl.exe -e print qq{[---]PerlShr.exe/Share\n} STDIO.OPT MCR simh04$dua1:[perl-current]miniperl.exe -I[---.lib] -I[---.lib] -MExtUtils::Command -e cp STDIO.OPT [---.LIB.AUTO.VMS.STDIO]STDIO.OPT MCR simh04$dua1:[perl-current]miniperl.exe -I[---.lib] -I[---.lib] [---.lib.ExtUtils]xsubpp -typemap [---.lib.ExtUtils]typemap STDIO.xs STDIO.C CC/DECC /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj /Define=(VERSION=2.3,XS_VERSION=2.3)/Include=([---])/NoList STDIO.c If F$Search([---.LIB.AUTO.VMS.STDIO]STDIO.OLB).eqs. Then Library/Object/Create [---.LIB.AUTO.VMS.STDIO]STDIO.OLB Library/Object/Replace [---.LIB.AUTO.VMS.STDIO]STDIO.OLB STDIO.OBJ If F$TrnLNm(PerlShr).eqs. Then Define/NoLog/User PerlShr Sys$Share:PerlShr.exe Link /NoTrace/NoMap /Shareable=[---.LIB.AUTO.VMS.STDIO]PL_VMS__STDIO.EXE Stdio.opt/Option,[---]perlshr_attr.opt/Option Running Mkbootstrap for VMS::Stdio () MCR simh04$dua1:[perl-current]miniperl.exe -I[---.lib] -I[---.lib] -MExtUtils::Command -e chmod 644 STDIO.BS MCR simh04$dua1:[perl-current]miniperl.exe -I[---.lib] -I[---.lib] -MExtUtils::Command -e cp Stdio.bs [---.LIB.AUTO.VMS.STDIO]STDIO.BS MCR simh04$dua1:[perl-current]miniperl.exe -I[---.lib] -I[---.lib] -MExtUtils::Command -e chmod 644 [---.LIB.AUTO.VMS.STDIO]STDIO.BS Error in directory name Error in directory name Error status %X100184CC occurred when updating target DYNEXT
Re: Perl 5.10.0 getting close: please test
Vorländer wrote: John E. Malmberg [EMAIL PROTECTED] wrote: Thomas Pfau wrote: I just snagged a copy to try to build under Simh. It wouldn't build with MMS. I tried again using MMK but it got hung compiling Ext/Digest/Sha/Sha.c. It grew to consume all available working set and then went totally CPU bound - no IO, no faults, nothing, just compute. Stayed that way for about an hour before I killed it. I just started another build after removing Digest::Sha from the list of builtins. That sounds like a known bug in the VAX DECC optimizer, PYTHON on VAX has a similar problem. If we can find the offending routine, it may be possible to put a VAX specific DECC pragma around it to disable optimization for that routine to fix it. For the time being, a workaround would be to break out of the build, compile SHA.C by hand with /NOOPTIMIZE, and restart the build. I remember doing exactly that at some time to get perl to build. I compiled it manually with /NOOPTIMIZE and it completed fairly quickly. I don't see any #pragma directives that control optimization in the compiler help. How do you turn optimization on and off?
Re: Perl 5.10.0 getting close: please test
Thomas Pfau wrote: Vorländer, Martin wrote: Thomas Pfau [EMAIL PROTECTED] wrote I don't see any #pragma directives that control optimization in the compiler help. How do you turn optimization on and off? $ cc/version Compaq C V6.5-001 on OpenVMS Alpha V7.3-2 $ help cc lang preproc #pragma ... #pragma optimize[_m|_nm] I'll check the version of my C Compiler when I get home tonight but I think it's older and it's the VAX version. I didn't see #pragma optimize in the help text. I'm having trouble locating a recent copy of a OpenVMS VAX consolidated distribution disk. $ CC/VER Compaq C V6.4-005 on OpenVMS VAX V7.3 I left the build running when I went to work this morning. This is where it stopped. Making VMS/Stdio (dynamic) Writing Descrip.MMS for VMS::Stdio cp stdio.pm [---.lib.vms]stdio.pm MCR simh04$dua1:[perl-current]miniperl.exe -I[---.lib] -I[---.lib] -e use ExtUtils::Mksymlists; -e Mksymlists('NAME' = 'VMS::Stdio', 'DL_FUNCS' = { }, 'DL_VARS' = [], 'FUNCLIST' = []) MCR simh04$dua1:[perl-current]miniperl.exe -e print [---.lib.auto.VMS.Stdio]Stdio.olb/Include=Stdio\n[---.lib.auto.VMS.Stdio]Stdio.olb/Library\n; STDIO.OPT MCR simh04$dua1:[perl-current]miniperl.exe -e print qq{[---]PerlShr.exe/Share\n} STDIO.OPT MCR simh04$dua1:[perl-current]miniperl.exe -I[---.lib] -I[---.lib] -MExtUtils::Command -e cp STDIO.OPT [---.LIB.AUTO.VMS.STDIO]STDIO.OPT MCR simh04$dua1:[perl-current]miniperl.exe -I[---.lib] -I[---.lib] [---.lib.ExtUtils]xsubpp -typemap [---.lib.ExtUtils]typemap STDIO.xs STDIO.C CC/DECC /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj /Define=(VERSION=2.3,XS_VERSION=2.3)/Include=([---])/NoList STDIO.c If F$Search([---.LIB.AUTO.VMS.STDIO]STDIO.OLB).eqs. Then Library/Object/Create [---.LIB.AUTO.VMS.STDIO]STDIO.OLB Library/Object/Replace [---.LIB.AUTO.VMS.STDIO]STDIO.OLB STDIO.OBJ If F$TrnLNm(PerlShr).eqs. Then Define/NoLog/User PerlShr Sys$Share:PerlShr.exe Link /NoTrace/NoMap /Shareable=[---.LIB.AUTO.VMS.STDIO]PL_VMS__STDIO.EXE Stdio.opt/Option,[---]perlshr_attr.opt/Option Running Mkbootstrap for VMS::Stdio () MCR simh04$dua1:[perl-current]miniperl.exe -I[---.lib] -I[---.lib] -MExtUtils::Command -e chmod 644 STDIO.BS MCR simh04$dua1:[perl-current]miniperl.exe -I[---.lib] -I[---.lib] -MExtUtils::Command -e cp Stdio.bs [---.LIB.AUTO.VMS.STDIO]STDIO.BS MCR simh04$dua1:[perl-current]miniperl.exe -I[---.lib] -I[---.lib] -MExtUtils::Command -e chmod 644 [---.LIB.AUTO.VMS.STDIO]STDIO.BS Error in directory name Error in directory name Error status %X100184CC occurred when updating target DYNEXT
Re: Any CMS users?
Craig A. Berry wrote: I'm afraid we never got approval to get CMS at the day job, but I can think of all sorts of useful things that would come from having a Perl interface. You could build a repository browser similar in principle to the Perl Repository Browser http://public.activestate.com/cgi-bin/perlbrowse. You could automate various maintenance and reporting functions, etc. I hope this works out for you as it would be a nifty package. My problem was working with change sets. The perl module and some DCL allowed me to get control of change management. I might have a half dozen changes in the works at any given time. Each change becomes a branch. Eventually, branches get merged to the test environment and if successfully tested they get merged to production. A branch might get merged with other changes into a new branch to be tested and installed together. Perl helps with merging - using the CMS interface, it figures out if the change is directly descended from the merge version and if so it does a fetch. Otherwise, it performs a CMS merge and stalls if necessary for me to resolve conflicts. CMS groups are used to track what files were changed in any change set. All this over several directories each with its own CMS repository. I got four responses in a week on a low traffic mailing list. Hopefully that will show some outside interest and get someone's attention to act on my request. If anyone else is interested, please let me know. The more ammunition the better. -- tom_p [EMAIL PROTECTED] -- http://nbpfaus.net/~pfau/
Any CMS users?
Does anyone use CMS? I wrote an XS package to interface to CMS to make supporting my system at work easier. I have asked about releasing it as open source but the request isn't moving too well. If anyone is interested, please reply. Maybe if I can show that there's some interest I could get the request to release moving again. -- tom_p [EMAIL PROTECTED] -- http://nbpfaus.net/~pfau/
set process name
To whoever wanted to set their process name from perl, I took VMS::Process and made the following changes: 1) Add the following to the end of process.xs: -- cut here --- int setprn(newname) char *newname CODE: { int descr[2]; descr[0] = strlen(newname); descr[1] = (int) newname; RETVAL = sys$setprn(descr); } OUTPUT: RETVAL -- cut here --- 2) Add 'setprn' to @EXPORT_OK in process.pm Use like this: -- cut here --- use VMS::Process qw(get_all_proc_info_items setprn); my $info = get_all_proc_info_items(0); setprn(scalar reverse($info-{PRCNAM})); -- cut here --- The return value is the status returned by the system service. -- tom_p [EMAIL PROTECTED] -- http://nbpfaus.net/~pfau/
Re: perlvms - VMS-specific documentation for Perl
Getting PID and setting a new name for a process running the Perlscript. I don't know of a programmatic way to change the process name in any language, but I could be forgetting something. I suspect SET PROCESS whacks the process header directly and there is no API that does this. The SYS$SETPRN system service changes the process name. I don't know of any perl modules that provide an interface to this, though. Run/detached of other programs. There is no general interface to SYS$CREPRC from Perl that I'm aware of. That sounds like a nice candidate for a new extension if there are any aspiring extension writers out there. I'd write both of these (they'd be quite simple) if not for my employee IP agreement. --- tom_p http://nbpfaus.net/~pfau/
[Fwd: Re: How to find memory leak?]
I had meant to send this to the list but hit 'reply' instead of 'reply all'... -- tom_p [EMAIL PROTECTED] -- http://nbpfaus.net/~pfau/ ---BeginMessage--- Craig A. Berry wrote: At 6:30 PM -0500 2/24/06, Thomas Pfau wrote: What facilities are in perl to debug memory allocation issues? You can run your script with the memory debug option enabled: $ perl -Dm myscript.pl That will log the memory allocations and deallocations, at least when Perl's memory API is used. I had to rebuild my perl since it wasn't built with -DDEBUGGING. Took the opportunity to upgrade from 5.8.6 to 5.8.8. Anyway, with the new perl, the info above, and a little script to match allocations to deallocations, I managed to find some major leaks in VMS::Device and VMS::Queue. Patches below. These have not been extensively tested but my scripts now run with significantly less leakage. It appears to still leak small amounts of memory but nothing like before. --- vms-device-0_08/device.xs Mon Dec 18 17:13:04 2000 +++ vms-device-0_09/device.xs Mon Feb 27 13:09:08 2006 @@ -2700,7 +2700,7 @@ /* Did it go OK? */ if (status == SS$_NORMAL) { /* Looks like it */ -AllPurposeHV = newHV(); +AllPurposeHV = (HV*)sv_2mortal((SV*)newHV()); for (i = 0; i DevInfoCount; i++) { switch(OurDataList[i].ReturnType) { case IS_STRING: @@ -2854,7 +2854,7 @@ { HV *AllPurposeHV; if (!strcmp(InfoName, DEVCHAR)) { -AllPurposeHV = newHV(); +AllPurposeHV = (HV*)sv_2mortal((SV*)newHV()); dev_bit_test(AllPurposeHV, REC, BitmapValue); dev_bit_test(AllPurposeHV, CCL, BitmapValue); dev_bit_test(AllPurposeHV, TRM, BitmapValue); @@ -2885,7 +2885,7 @@ dev_bit_test(AllPurposeHV, WCK, BitmapValue); } else { if (!strcmp(InfoName, DEVCHAR2)) { -AllPurposeHV = newHV(); +AllPurposeHV = (HV*)sv_2mortal((SV*)newHV()); dev_bit_test(AllPurposeHV, CLU, BitmapValue); dev_bit_test(AllPurposeHV, DET, BitmapValue); dev_bit_test(AllPurposeHV, RTT, BitmapValue); @@ -2915,7 +2915,7 @@ dev_bit_test(AllPurposeHV, NOFE, BitmapValue); } else { if (!strcmp(InfoName, STS)) { -AllPurposeHV = newHV(); +AllPurposeHV = (HV*)sv_2mortal((SV*)newHV()); ucb_bit_test(AllPurposeHV, TIM, BitmapValue) ucb_bit_test(AllPurposeHV, INT, BitmapValue) ucb_bit_test(AllPurposeHV, ERLOGIP, BitmapValue) @@ -2935,7 +2935,7 @@ ucb_bit_test(AllPurposeHV, DELETEUCB, BitmapValue) } else { if (!strcmp(InfoName, TT_CHARSET)) { -AllPurposeHV = newHV(); +AllPurposeHV = (HV*)sv_2mortal((SV*)newHV()); ttc_bit_test(AllPurposeHV, HANGUL, BitmapValue); ttc_bit_test(AllPurposeHV, HANYU, BitmapValue); ttc_bit_test(AllPurposeHV, HANZI, BitmapValue); @@ -2944,7 +2944,7 @@ ttc_bit_test(AllPurposeHV, THAI, BitmapValue); if (AllPurposeHV) { -XPUSHs(newRV((SV *)AllPurposeHV)); +XPUSHs(newRV_noinc((SV *)AllPurposeHV)); } else { XPUSHs(PL_sv_undef); } --- vms-queue-0_57/queue.xs Wed May 30 17:18:05 2001 +++ vms-queue-0_58/queue.xs Mon Feb 27 12:25:30 2006 @@ -1031,7 +1031,7 @@ { HV *AllPurposeHV; if (!strcmp(InfoName, FORM_FLAGS)) { -AllPurposeHV = newHV(); +AllPurposeHV = (HV*)sv_2mortal((SV*)newHV()); bit_test(AllPurposeHV, QUI$M_FORM_SHEET_FEED, FORM_SHEET_FEED, BitmapValue); bit_test(AllPurposeHV, QUI$M_FORM_TRUNCATE, FORM_TRUNCATE, @@ -1039,7 +1039,7 @@ bit_test(AllPurposeHV, QUI$M_FORM_WRAP, FORM_WRAP, BitmapValue); } else { if (!strcmp(InfoName, FILE_FLAGS)) { -AllPurposeHV = newHV(); +AllPurposeHV = (HV*)sv_2mortal((SV*)newHV()); bit_test(AllPurposeHV, QUI$M_FILE_BURST, FILE_BURST, BitmapValue); bit_test(AllPurposeHV, QUI$M_FILE_DELETE, FILE_DELETE, @@ -1058,14 +1058,14 @@ BitmapValue); } else { if (!strcmp(InfoName, FILE_STATUS)) { -AllPurposeHV = newHV(); +AllPurposeHV = (HV*)sv_2mortal((SV*)newHV()); bit_test(AllPurposeHV, QUI$M_FILE_CHECKPOINTED, FILE_CHECKPOINTED, BitmapValue); bit_test(AllPurposeHV, QUI$M_FILE_EXECUTING, FILE_EXECUTING, BitmapValue); } else { if (!strcmp(InfoName, JOB_FLAGS)) { -AllPurposeHV = newHV(); +AllPurposeHV = (HV*)sv_2mortal((SV*)newHV()); bit_test(AllPurposeHV, QUI$M_JOB_CPU_LIMIT, JOB_CPU_LIMIT, BitmapValue); bit_test(AllPurposeHV, QUI$M_JOB_ERROR_RETENTION, JOB_ERROR_RETENTION, BitmapValue); @@ -1096,7 +1096,7 @@ bit_test(AllPurposeHV, QUI$M_JOB_WSQUOTA, JOB_WSQUOTA, BitmapValue); } else { if (!strcmp(InfoName, JOB_STATUS)) { -AllPurposeHV = newHV(); +AllPurposeHV = (HV*)sv_2mortal((SV*)newHV()); bit_test(AllPurposeHV, QUI$M_JOB_ABORTING, JOB_ABORTING, BitmapValue); bit_test(AllPurposeHV, QUI$M_JOB_EXECUTING, JOB_EXECUTING, BitmapValue); bit_test(AllPurposeHV, QUI$M_JOB_HOLDING, JOB_HOLDING, BitmapValue); @@ -1112,7 +1112,7 @@ BitmapValue); } else { if (!strcmp(InfoName, MANAGER_FLAGS
How to find memory leak?
I wrote a script that was supposed to monitor certain system conditions and email me if things weren't right. It ran for about 18 hours and died complaining about no memory. I'm using a couple of VMS modules - VMS::Device and VMS::Queue - and suspect one or the other (or both) is leaking memory. I seem to recall Dan Sugalski's comments stating that there might be some leaks. I've done a little XS but not enough to understand all of the reference counting issues. What facilities are in perl to debug memory allocation issues? -- tom_p [EMAIL PROTECTED] -- http://nbpfaus.net/~pfau/
Re: License
Gerson Freire de Amorim Filho wrote: Hello all. Can anyone borrow me a VAX/VMS license (may be a hobbyst license) for some days? You can get hobbyist licenses for free from http://www.openvmshobbyist.com/.
Re: problems building smg
Thomas Pfau wrote: Carl Friedberg wrote: Hi, This is probably a FAQ, but I am trying to resurrect the VMS SMG module. Where can I download this module? Never mind, I just found it. -- tom_p [EMAIL PROTECTED] -- http://nbpfaus.net/~pfau/
Re: problems building smg
Carl Friedberg wrote: Thomas, I'll be glad to e-mail it to you; it's a zip file, 25kb. Thanks but no need. I found it in the author's directory. It didn't show up on any searches. I downloaded it and it built with no problems on VMS 6.2 on VAX (simh) using perl 5.8.4. The only problem was the compiler complaining about the routines not being declared. Converting the calls from upper to lower case solved that. I didn't attempt to use the code although I might play with it at work tomorrow (VMS 8.2 on Alpha). -- tom_p [EMAIL PROTECTED] -- http://nbpfaus.net/~pfau/
Re: MMK manual wanted
Michael G Schwern wrote: Hi. I need a copy of the MMK manual suitable for reading on a Unix machine. I tried using the one in the MMK.zip archive. The text file was full of nulls and the postscript docs were corrupt. Could someone convert the documentation into a Unixy text file? It would help with MakeMaker development. Try http://nbpfaus.net/~pfau/mmk_doc.ps or http://nbpfaus.net/~pfau/mmk_doc.txt.
Re: Cannot build bleadperl on OpenVMS
Make sure you have the latest version of MMK or use MMS. I recently built 5.8.4 on VAX with an older MMK and ran into some strange problems. It built fine after I installed the latest MMK.
Re: Perl 5.8.4 easy-to-build source: results
Thomas R Wyant_III wrote: Craig A. Berry [EMAIL PROTECTED] wrote on 08/25/2004 11:13:57 PM: I finally did the test_verbose=1. What happened was that I had defined global symbol D*IRECTORY == DIRECTORY/DATE/SIZE=ALL. VMS::FindFile's test works by comparing its results to those of a spawned DIRECTORY/NOHEAD/NOTRAIL/COLUMNS=1, so it failed when run under my username. The login.com for the system account does not mess with the dir command, so the test doesn't fail there. To badly misquote Mae West: Privilige had nothin' to do with it. There are a few standard cures for this type of situation. The first would be to define a symbol to invoke the command or at least to make sure that the base command will be invoked with no options. DCL does not translate symbols iteratively so '$ DIRECTORY = DIRECTORY' would make sure that no extra options are being picked up by an external symbol definition. Another option is to take advantage of the fact that DCL only looks at the first four characters of a verb when parsing. You could use the first four characters followed by an underscore to make sure the unmodified command is executed. Something like '$ DIRE_/NOHEAD/NOTRAIL/COLUMNS=1'. The other way I know to work around this is to define a blank symbol to use as a prefix for all commands. Something like this: $ REALLY = $ REALLY DIRECTORY/NOHEAD/NOTRAIL/COLUMNS=1 You can also play games with SET SCOPE. open IN, directory/nohead/notrail/column=1 []*.*; | || die Couldn't open pipe\n; The easiest way to fix this would probably be the second option above.
Re: Building on VAX fails, can someone give me a clue?
Richard Levitte - VMS Whacker wrote: I've tried building Perl 5.8.4 and 5.8.5 on VAX, with exactly the same result, it ends like this: CC/DECC /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj /Define=(VERSION=2.01,XS_VERSION=2.01)/Include=([--],[.Encode])/NoList ENCODE.c %CLI-F-OPENIN, error opening RL_LOCAL:[00.PERL-5_8_5.EXT.ENCODE]ENCODE.C; as input -RMS-E-FNF, file not found I had a similar problem when I first started trying to build on VAX/VMS 6.2. Building with MMS worked fine however. I managed to get through a build with MMK by grabbing the latest version. V3.8 was the one that failed for me.
Perl 5.8.4 for OpenVMS VAX 6.2
I have a compressed backup of my Perl 5.8.4 build on OpenVMS VAX V6.2 available. It is built with all core modules except Time::HiRes. It also includes the following modules: Data-FixedFormat-0_03.zip VMS-FlatFile-0_02.zip These two are my modules and may be newer than what's on CPAN. I'll eventually get around to uploading them. VMS-Device-0_08_1.zip VMS-IndexedFile-0_02.zip VMS-Misc-1_01.zip VMS-Monitor-0_06_1.zip VMS-Process-1_06_1.zip VMS-Queue-0_57_1.zip VMS-System-1_04_1.zip Some of these have been slightly modified from what's available on CPAN. Some minor modifications were necessary to get them to build. All of the above and perl-5_8_4.bck-gz are available at http://nbpfaus.net/~pfau/perl/vms/. Please have mercy - it's a low speed DSL connection.
Re: Anyone still using OpenVMS/VAX 6.2?
Thomas Pfau wrote: Craig A. Berry wrote: If you get no indication whatsoever that something misfired under the hood, that's worth noting. What happens of you do this with your D_FLOAT compiled perl: $ perl -e $x = 1.36514538e67; print $x; $ show symbol $status Perl just exits to DCL. $STATUS is %X148C which translates to 'Arithmetic trap, floating overflow'. My /G_FLOAT build is running now on SIMH. I'll see how it works tomorrow but I suspect it will be the same. With /G_FLOAT, the above works but if I change the exponent from 67 to 310 it behaves the same.
Re: Anyone still using OpenVMS/VAX 6.2?
Craig A. Berry wrote: At 10:43 PM -0400 7/22/04, Thomas Pfau wrote: I'll dig into the pack problem a little and see what I can come up with. That one's pretty important to me. There's a high probability the pack problem is floating point related as well. I started moving a '__END__' through pack.t to figure out why it wouldn't run. It seemed to be dying without any notice during compilation as only BEGIN blocks would run. I was about 2/3rds through the file when it stopped running. I commented out the immediate section of code and was able to run what remained. Uncommenting the section caused it to die again. In that section of code, there are some large floating point constants (1.36514538e67). The VAX range appears to be about 1.7e38. I get the feeling that these are causing perl to crash but it doesn't even print any messages. I have a perl script that prompts for perl code and executes it. If I enter one of these numbers, the script unceremoniously exits. If I try using very large floating point constants on linux, the variable gets assign 'inf' instead. Is perl not trapping floating point exceptions properly on VMS? Anyway, I reconfigured and rebuilt with /G_FLOAT today and op/pack.t passes but some other tests are now failing. On Monday I'll compare the results of the first build with the results of the /G_FLOAT build to see what changed. The tests hadn't completed before I left work today (3:43 to build, will probably take as long to test).
Re: Anyone still using OpenVMS/VAX 6.2?
Craig A. Berry wrote: If you get no indication whatsoever that something misfired under the hood, that's worth noting. What happens of you do this with your D_FLOAT compiled perl: $ perl -e $x = 1.36514538e67; print $x; $ show symbol $status Perl just exits to DCL. $STATUS is %X148C which translates to 'Arithmetic trap, floating overflow'. My /G_FLOAT build is running now on SIMH. I'll see how it works tomorrow but I suspect it will be the same. Anyway, I reconfigured and rebuilt with /G_FLOAT today and op/pack.t passes but some other tests are now failing. On Monday I'll compare the results of the first build with the results of the /G_FLOAT build to see what changed. The tests hadn't completed before I left work today (3:43 to build, will probably take as long to test). Perl has gotten very big, so it does take a very long time to build and test on older hardware. Gonna take even longer on SIMH. The 3:43 was on a 4000/600. SIMH performs like a MicroVAX II on my Athlon-XP 1600. Disk I/O is pretty fast though being mostly satisfied from the linux disk cache.
Anyone still using OpenVMS/VAX 6.2?
At work, our application still runs on VMS 6.2 on VAX systems. I installed perl 5.8.0 last year and don't remember having any problems. Alas, I must have deleted the source tree after a successful build because I can't find them or any traces of the build other than the PERL_ROOT directory tree. Anyway, I recently found SIMH (http://simh.trailing-edge.com/) and decided to give it a workout. I figured I'd install 6.2 first since that's the version I'm familiar with and maybe later I could move to 7.3. A new VMS install needs a new perl install so I figured I'd try to build 5.8.4. I hit errors during the build on both SIMH and the real VAXen at work. The first problem I hit during the build was an attempt to use ioctl(SIOCATMARK). VMS 6.2 doesn't support ioctl(). I ended up writing a vms_siocatmark() function using a QIO to plug into [.ext.io]io.xs. The second problem was with Time::HiRes. Although VMS 6.2 does not have many (if any) of the functions needed by this module, it's included in the default list of modules to build. I reconfigured without this module but the test phase still tried to reference it. Lastly, several tests failed. MMS TEST doesn't reveal much information about failures so I tried using harness. There were several things along the lines of 'unrecognized command verb \ECHO\' but also some real failures. op/pack failed with what appears to be a floating point overflow. Several Tie::File, Math::BigInt and Math::BigRat tests failed. I can post the errors from the build logs if anyone is interested. Does anyone know if any of these errors are serious? Are they worth looking into or am I the last diehard still trying to use perl on VAX/VMS 6.2?
Re: Anyone still using OpenVMS/VAX 6.2?
Craig A. Berry wrote: At 7:10 PM -0400 7/22/04, Thomas Pfau wrote: At work, our application still runs on VMS 6.2 on VAX systems. I installed perl 5.8.0 last year and don't remember having any problems. Alas, I must have deleted the source tree after a successful build because I can't find them or any traces of the build other than the PERL_ROOT directory tree. Anyway, I recently found SIMH (http://simh.trailing-edge.com/) and decided to give it a workout. I figured I'd install 6.2 first since that's the version I'm familiar with and maybe later I could move to 7.3. A new VMS install needs a new perl install so I figured I'd try to build 5.8.4. I hit errors during the build on both SIMH and the real VAXen at work. 5.8.5 came out a couple of days ago but is unlikely to help with your situation as no recent testing I'm aware of has been done on VAX or on pre 7.x VMS. That's what I was afraid of. I'm really surprised it built and tested as clean as it did. The first problem I hit during the build was an attempt to use ioctl(SIOCATMARK). VMS 6.2 doesn't support ioctl(). I ended up writing a vms_siocatmark() function using a QIO to plug into [.ext.io]io.xs. Good golly. That sounds like a seriously useful bit of backporting for folks in a similar situation. It shouldn't be too hard to determine from the appropriate appendix to the CRTL manual what particular #ifdefs should go around this code to get it into the sources. As far as I can tell, none of the tests exercise this function. All I know is it compiled clean. I've never used out-of-band data on a TCP socket before so I don't know if I can come up with a good test for this. It might be better to just make the routine unsupported on VMS pre-7.x unless someone needs it and can write a good test. The second problem was with Time::HiRes. Although VMS 6.2 does not have many (if any) of the functions needed by this module, it's included in the default list of modules to build. I reconfigured without this module but the test phase still tried to reference it. That should be a simple matter of adding lines similar to the following in the BEGIN block of the test: require Config; import Config; if ($Config{'extensions'} !~ /\bTime\/HiRes\b/) { print 1..0 # Skip: Time::HiRes was not built\n; exit 0; } I'll plug that in and see if it works. Lastly, several tests failed. MMS TEST doesn't reveal much information about failures so I tried using harness. harness is the canonical unixy way to get more details. The idiomatic VMS way (documented in README.vms) is, for example: $ @[.vms]test .exe -v [.op]pack.t I hope they haven't broken harness on VMS since the last time I tried it. It seemed to be spitting out some errors where MMK TEST would just say 'FAILED'. There were several things along the lines of 'unrecognized command verb \ECHO\' but also some real failures. op/pack failed with what appears to be a floating point overflow. Several Tie::File, Math::BigInt and Math::BigRat tests failed. I can post the errors from the build logs if anyone is interested. Does anyone know if any of these errors are serious? Are they worth looking into or am I the last diehard still trying to use perl on VAX/VMS 6.2? Tie::File is heavily dependent on POSIX-compliant seek() functionality in the CRTL. It's totally unsurprising that this doesn't work in a version of VMS that is, what, 10 or 12 years old and long since off the vendor's support matrix. As far as I know, no other core packages depend on Tie::File, so if you don't intend to use it explicitly, you should be fine. I think VMS 6.2 is 11 years old (good guess!). Last year we went looking into this and found it was 10 so it's at least nearing 11. The various math-related problems most likely come from D_FLOAT not representing the floating point ranges that tests expect. Whether this will cause you problems really depends on what sort of floating point work you may be doing. You can try configuring with G_FLOAT (instructions in README.vms) and see if that makes a difference. I believe I was supposed to make G_FLOAT the default on VAX, but I either got busy, forgot, decided I shouldn't without the ability to test it, or all of the above. I think some of the harness output seems to support this. Maybe I'll leave a G_FLOAT build running over the weekend and see what happens. I'll dig into the pack problem a little and see what I can come up with. That one's pretty important to me.
Re: TIEing a Hash in VMS?
"Smith, Sheldon" wrote: use VMS::Stdio qw( :CONSTANTS); use SDBM_File; my %dbase; tie(%dbase, 'SDBM_File', 'phones.db', O_RDWR|O_CREAT, 0) || die "can't open file: $!"; My guess is that a '.db' is getting appended to the file name you passed resulting in 'phones.db.db' which would indeed give the error you specified. Try specifying the file name as just 'phones'. -- tom_p [EMAIL PROTECTED] http://www.eclipse.net/~pfau/ Community Gospel Church information at http://www.cgcnb.org/
Re: Trouble with Perl on VMS
this is expected. However, when I run the same script (minus the path to perl) on VMS, I get DILBRT perl billperl.pl Unrecognized character \x13 at /perl_root/lib/shellwords.pl line 49. Did you transfer the file to VMS in ASCII mode? Sounds like you might have some control characters embedded in it. How did you do the transfer? -- tom_p [EMAIL PROTECTED] http://www.eclipse.net/~pfau/ Community Gospel Church information at http://www.cgcnb.org/
Re: Possibly useful file access modules
Peter Prymmer wrote: On Fri, 28 Jul 2000, Thomas Pfau wrote: I called the first module Formatter. This class is presented with a list of field names and pack/unpack descriptors. It provides subroutines to convert a record read from a file into a hash or convert a hash back into a record that can be written to a file. snip The second module is called FlatFile. This class can be used either by itself or can be used as a base which is what I did. It uses VMS::IndexedFile for file access and Formatter to convert data records into Perl usable formats. They sound great and I would like to take a look. Formatter and FlatFile sound a bit generic though. Perhaps they ought to go into the VMS::* package namespace? Or do we need an RMS::* namespace? Well, since FlatFile is kind of dependant on VMS::IndexedFile, I could see it falling into the VMS:: namespace but Formatter can stand on its own. As a matter of fact, I was looking for something to use as an example and wrote a description for a tar file header block and it worked! I could see it being used for things like parsing C structures (like sockaddr?) instead of having to remember pack formats and stuff. Keep the name suggestions coming... You ought to consider distributing them via CPAN - go to a CPAN site and hunt down the PAUSE documentation. I found that with web uploads it was ridiculously easy to pop modules onto CPAN just recently (I had even forgotten my password for a long time). I'll look into this. I've been working on the documentation. Expect this stuff to show up at http://www.eclipse.net/~pfau/perl/ shortly. -- tom_p [EMAIL PROTECTED] http://www.eclipse.net/~pfau/ Community Gospel Church information at http://www.cgcnb.org/