perl.vmsperl http://www.nntp.perl.org/group/perl.vmsperl/ ... Copyright 1998-2016 perl.org Fri, 29 Apr 2016 06:42:31 +0000 ask@perl.org Perl 5.22.1 binary kits for OpenVMS available by Craig A. Berry Installation kits for OpenVMS Alpha and OpenVMS I64 v8.3 and later are available at: <br/> <br/>&lt;http://download.perl.space/&gt; <br/> <br/>or <br/> <br/>&lt;https://sourceforge.net/projects/vmsperlkit/files/&gt; <br/> <br/>The files are self-extracting archives and after downloading you must run them like so: <br/> <br/>$ run VMSPORTS-AXPVMS-PERL522-V0522-1-1.SFX_AXPEXE <br/> <br/>for Alpha, and: <br/> <br/>$ run VMSPORTS-I64VMS-PERL522-V0522-1-1.SFX_I64EXE <br/> <br/>for Itanium. Then, on either platform: <br/> <br/>$ product install perl522 <br/> <br/>and follow the usual installation prompts. Note that the major version is now included in the product name so this installation will not remove installations of previous versions (e.g., 5.18 or 5.20) but will replace previous 5.22 releases. <br/> <br/>The kits provided here are intended to be a convenient way to acquire a default build; there are many other configuration options available if you build your own Perl from the source at &lt;http://www.cpan.org/src/5.0/perl-5.22.1.tar.gz&gt;. <br/> <br/>Have an appropriate amount of fun. Anything related to these kits that turns out to be more fun than you can handle is probably best reported on the vmsperl mailing list.[1] <br/> <br/>Changes in this release can be found via typing &quot;perldoc perldelta&quot; after installation. <br/> <br/> <br/>[1] &lt;http://lists.perl.org/list/vmsperl.html&gt; <br/> <br/>________________________________________ <br/>Craig A. Berry <br/>mailto:craigberry@mac.com <br/> <br/>&quot;... getting out of a sonnet is much more <br/> difficult than getting in.&quot; <br/> Brad Leithauser <br/> <br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/12/msg15706.html Wed, 16 Dec 2015 13:22:14 +0000 Re: DECC$features question by Brian Schenkenberger On Tue, 2015-11-03 at 15:56 +0000, Craig A. Berry wrote:<br/>&gt; <br/>&gt; <br/>&gt; <br/>&gt; On Nov 03, 2015, at 08:01 AM, &quot;Brian Schenkenberger, VAXman-&quot;<br/>&gt; &lt;system@TMESIS.COM&gt; wrote:<br/>&gt; <br/>&gt; &gt; I have created a callable Perl routine. I need to have the DECC<br/>&gt; &gt; $feature<br/>&gt; &gt; DECC$FILENAME_UNIX_REPORT enabled for Excel::Writer::XLSX to for<br/>&gt; &gt; proper<br/>&gt; &gt; functioning.<br/>&gt; &gt; <br/>&gt; &gt; Why does calling DECC$FEATURE_SET to establish DECC<br/>&gt; &gt; $FILENAME_UNIX_REPORT<br/>&gt; &gt; not cause Perl to use/see this feature setting but the definition of<br/>&gt; &gt; the <br/>&gt; &gt; DECC$FILENAME_UNIX_REPORT logical does?<br/>&gt; &gt; <br/>&gt; <br/>&gt; <br/>&gt; I understand why it doesn&#39;t work but I&#39;m not sure what to do about it.<br/>&gt; At start-up time, via a LIB$INITIALIZE psect, we capture feature<br/>&gt; settings from the environment and/or set some defaults. For certain<br/>&gt; features, we save the setting in a global variable. Here&#39;s where the<br/>&gt; setting of DECC$FILENAME_UNIX_REPORT is stored:<br/>&gt; <br/>&gt; <br/>&gt; <br/>&gt; http://perl5.git.perl.org/perl.git/blob/HEAD:/vms/vms.c#l14044<br/>&gt; <br/>&gt; <br/>&gt; <br/>&gt; I think part of the reason for this was so we don&#39;t have to call decc<br/>&gt; $feature_get all over the place to check the setting, but I also think<br/>&gt; at one time we supported some features in Perl that older CRTLs didn&#39;t<br/>&gt; (yet) have. John Malmberg designed all this and at one time planned<br/>&gt; to have a VMS::Feature Perl module that would allow you to get and set<br/>&gt; these features, but he never implemented it.<br/>&gt; <br/>&gt; <br/>&gt; <br/>&gt; So I think the only choice right now is to get the setting in the<br/>&gt; environment before Perl starts up.<br/>&gt; <br/>Yeah, I wasn&#39;t going to let this delay the project any longer than it&#39;s<br/>already been. I left the DECC$FEATURE_SET in the code but I also do a<br/>SYS$CRELNM to create a user mode definition of DECC$FILENAME_UNIX_REPORT<br/>translating to ENABLED.<br/><br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/11/msg15705.html Fri, 06 Nov 2015 03:23:54 +0000 Re: Perl and privileged vs. nonprivileged users by Brian Schenkenberger, VAXman- &quot;Brian Schenkenberger, VAXman-&quot; &lt;system@TMESIS.COM&gt; writes:<br/><br/>&gt;Another question concerning the Excel::Writer::XLSX.<br/>&gt;<br/>&gt;If I run my program under the SYSTEM account, it completes successfully and<br/>&gt;quietly. However, using a nonprivileged account, it completes successfully<br/>&gt;but output:<br/>&gt;<br/>&gt;/sys$scratch/reLOKmPhRU/Content_Types.xml [Content_Types].xml<br/>&gt;/sys$scratch/reLOKmPhRU/docProps/app.xml docProps/app.xml<br/>&gt;/sys$scratch/reLOKmPhRU/docProps/core.xml docProps/core.xml<br/>&gt;/sys$scratch/reLOKmPhRU/xl/styles.xml xl/styles.xml<br/>&gt;/sys$scratch/reLOKmPhRU/xl/workbook.xml xl/workbook.xml<br/>&gt;/sys$scratch/reLOKmPhRU/xl/drawings/drawing1.xml xl/drawings/drawing1.xml<br/>&gt;/sys$scratch/reLOKmPhRU/xl/drawings/_rels/drawing1.xml.rels xl/drawings/_rels/d<br/>&gt;rawing1.xml.rels<br/>&gt;/sys$scratch/reLOKmPhRU/xl/media/image1.png xl/media/image1.png<br/>&gt;/sys$scratch/reLOKmPhRU/xl/theme/theme1.xml xl/theme/theme1.xml<br/>&gt;/sys$scratch/reLOKmPhRU/xl/worksheets/sheet1.xml xl/worksheets/sheet1.xml<br/>&gt;/sys$scratch/reLOKmPhRU/xl/worksheets/_rels/sheet1.xml.rels xl/worksheets/_rels<br/>&gt;/sheet1.xml.rels<br/>&gt;/sys$scratch/reLOKmPhRU/xl/_rels/workbook.xml.rels xl/_rels/workbook.xml.rels<br/>&gt;/sys$scratch/reLOKmPhRU/_rels/.rels _rels/.rels<br/>&gt;<br/>&gt;I could define SYS$OUTPUT to NL: but then, any legitimate errors would go<br/>&gt;unnoticed. Why does Perl output what appears to be the translation of the<br/>&gt;VMS path to the .XLSX file&#39;s contents if the user is not privileged?<br/><br/>Nevermind. The idiot that installed everything I told them to install did<br/>NOT execute the Perl startup to redefine the PERL_ROOT logical systemwide.<br/>I, of course, had it defined in the SYSTEM accounts process because I was<br/>doing testing of the latest Perl.<br/><br/>Sorry for wasting your time.<br/><br/>-- <br/>VAXman- A Bored Certified VMS Kernel Mode Hacker VAXman(at)TMESIS(dot)ORG<br/><br/>I speak to machines with the voice of humanity.<br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/11/msg15704.html Wed, 04 Nov 2015 19:38:52 +0000 Perl and privileged vs. nonprivileged users by Brian Schenkenberger, VAXman- Another question concerning the Excel::Writer::XLSX.<br/><br/>If I run my program under the SYSTEM account, it completes successfully and<br/>quietly. However, using a nonprivileged account, it completes successfully<br/>but output:<br/><br/>/sys$scratch/reLOKmPhRU/Content_Types.xml [Content_Types].xml<br/>/sys$scratch/reLOKmPhRU/docProps/app.xml docProps/app.xml<br/>/sys$scratch/reLOKmPhRU/docProps/core.xml docProps/core.xml<br/>/sys$scratch/reLOKmPhRU/xl/styles.xml xl/styles.xml<br/>/sys$scratch/reLOKmPhRU/xl/workbook.xml xl/workbook.xml<br/>/sys$scratch/reLOKmPhRU/xl/drawings/drawing1.xml xl/drawings/drawing1.xml<br/>/sys$scratch/reLOKmPhRU/xl/drawings/_rels/drawing1.xml.rels xl/drawings/_rels/d<br/>rawing1.xml.rels<br/>/sys$scratch/reLOKmPhRU/xl/media/image1.png xl/media/image1.png<br/>/sys$scratch/reLOKmPhRU/xl/theme/theme1.xml xl/theme/theme1.xml<br/>/sys$scratch/reLOKmPhRU/xl/worksheets/sheet1.xml xl/worksheets/sheet1.xml<br/>/sys$scratch/reLOKmPhRU/xl/worksheets/_rels/sheet1.xml.rels xl/worksheets/_rels<br/>/sheet1.xml.rels<br/>/sys$scratch/reLOKmPhRU/xl/_rels/workbook.xml.rels xl/_rels/workbook.xml.rels<br/>/sys$scratch/reLOKmPhRU/_rels/.rels _rels/.rels<br/><br/>I could define SYS$OUTPUT to NL: but then, any legitimate errors would go<br/>unnoticed. Why does Perl output what appears to be the translation of the<br/>VMS path to the .XLSX file&#39;s contents if the user is not privileged?<br/><br/>-- <br/>VAXman- A Bored Certified VMS Kernel Mode Hacker VAXman(at)TMESIS(dot)ORG<br/><br/>I speak to machines with the voice of humanity.<br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/11/msg15703.html Wed, 04 Nov 2015 19:20:09 +0000 Re: DECC$features question by Craig A. Berry http://www.nntp.perl.org/group/perl.vmsperl/2015/11/msg15702.html Tue, 03 Nov 2015 15:56:36 +0000 DECC$features question by Brian Schenkenberger, VAXman- I have created a callable Perl routine. I need to have the DECC$feature<br/>DECC$FILENAME_UNIX_REPORT enabled for Excel::Writer::XLSX to for proper<br/>functioning.<br/><br/>Why does calling DECC$FEATURE_SET to establish DECC$FILENAME_UNIX_REPORT<br/>not cause Perl to use/see this feature setting but the definition of the <br/>DECC$FILENAME_UNIX_REPORT logical does?<br/><br/>-- <br/>VAXman- A Bored Certified VMS Kernel Mode Hacker VAXman(at)TMESIS(dot)ORG<br/><br/>I speak to machines with the voice of humanity.<br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/11/msg15701.html Tue, 03 Nov 2015 14:01:30 +0000 Re: Excel::Writer on OpenVMS by Brian Schenkenberger On Mon, 2015-11-02 at 20:57 +0000, Craig A. Berry wrote:<br/>&gt; <br/>&gt; On Nov 02, 2015, at 01:35 PM, Brian Schenkenberger &lt;VAXman@tmesis.com&gt;<br/>&gt; wrote:<br/>&gt; <br/>&gt; &gt; On Mon, 2015-11-02 at 18:54 +0000, Craig A. Berry wrote:<br/>&gt; <br/>&gt; &gt; &gt; Have you tried the set_optimization() <br/>&gt; <br/>&gt; &gt; &gt; <br/>&gt; &gt; I added that. THe conversion completed without an out of memory<br/>&gt; &gt; error<br/>&gt; &gt; but the resultant file is corrupt or, at least, LibreOffice seems to<br/>&gt; &gt; think so. No M$ here with which to try.<br/>&gt; &gt; <br/>&gt; <br/>&gt; <br/>&gt; Have you messed about with page file quota and /or working set? If<br/>&gt; the working data is over 2GB, the limitations imposed by 32-bit<br/>&gt; pointers could be kicking in, but if not, then giving it as much as it<br/>&gt; wants might do the trick.<br/>&gt; <br/>Actually, I sftped the .XLSX file to my Linux laptop. For some reason,<br/>the first sftp quit before the entire file copied over. You known how<br/>much UNZIP loves an incomplete archive. ;) A subsequent sftp pulled<br/>the .XLSX file over and it&#39;s intact and looks beautiful!!! Even parts<br/>of my code that embed logo graphics and setup cell formats (foreground<br/>and background colors, fonts, etc.) appear to be fine! <br/><br/>Thanks for your help. That set_optimization() did the trick. It&#39;s not<br/>fact on my DS10L test box but the customer has a cluster of much faster<br/>boxes. I might see how quickly all this converts on my ES45 or ES47,<br/>but I&#39;m not overly concerned.<br/><br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/11/msg15700.html Tue, 03 Nov 2015 12:13:04 +0000 Re: Excel::Writer on OpenVMS by Craig A. Berry http://www.nntp.perl.org/group/perl.vmsperl/2015/11/msg15699.html Mon, 02 Nov 2015 20:57:43 +0000 Re: Excel::Writer on OpenVMS by Brian Schenkenberger On Mon, 2015-11-02 at 18:54 +0000, Craig A. Berry wrote:<br/>&gt; <br/>&gt; <br/>&gt; <br/>&gt; On Nov 02, 2015, at 12:46 PM, Brian Schenkenberger &lt;VAXman@tmesis.com&gt;<br/>&gt; wrote:<br/>&gt; <br/>&gt; &gt; On Mon, 2015-11-02 at 18:39 +0000, Craig A. Berry wrote:<br/>&gt; &gt; &gt; <br/>&gt; &gt; &gt; <br/>&gt; &gt; &gt; <br/>&gt; &gt; &gt; On Nov 02, 2015, at 11:09 AM, Brian Schenkenberger<br/>&gt; &gt; &gt; &lt;VAXman@tmesis.com&gt;<br/>&gt; &gt; &gt; wrote:<br/>&gt; &gt; &gt; &gt; &gt; -----Original Message-----<br/>&gt; &gt; &gt; &gt; &gt; From: Craig A. Berry [mailto:craigberry@mac.com]<br/>&gt; &gt; &gt; <br/>&gt; &gt; &gt; &gt; &gt; $ gdiff -pu lib/Excel/Writer/XLSX/Workbook.pm;-0<br/>&gt; &gt; &gt; &gt; &gt; lib/Excel/Writer/XLSX/Workbook.pm<br/>&gt; &gt; &gt; &gt; &gt; --- lib/Excel/Writer/XLSX/Workbook.pm;-0 2015-10-29<br/>&gt; &gt; &gt; &gt; &gt; 14:09:16 -0500<br/>&gt; &gt; &gt; &gt; &gt; +++ lib/Excel/Writer/XLSX/Workbook.pm 2015-10-30 13:07:34<br/>&gt; &gt; &gt; -0500<br/>&gt; &gt; &gt; &gt; &gt; @@ -964,7 +964,7 @@ sub _store_workbook {<br/>&gt; &gt; &gt; &gt; &gt; # with File::Find and pass each one to addFile().<br/>&gt; &gt; &gt; <br/>&gt; &gt; &gt; <br/>&gt; &gt; &gt; Whatever version of the package was current on the CPAN the day<br/>&gt; &gt; &gt; you<br/>&gt; &gt; &gt; originally posted. Apparently that&#39;s been 0.86 since 18 October.<br/>&gt; &gt; &gt; <br/>&gt; &gt; &gt; &gt; Line 964 in mine is not:<br/>&gt; &gt; &gt; <br/>&gt; &gt; &gt; &gt; sub _store_workbook {<br/>&gt; &gt; &gt; <br/>&gt; &gt; &gt; <br/>&gt; &gt; &gt; No, of course not, but it is *within* the _store_workbook<br/>&gt; &gt; &gt; function.<br/>&gt; &gt; &gt; The part after the second &quot;@@&quot; in a GNU unified diff section<br/>&gt; &gt; &gt; header is<br/>&gt; &gt; &gt; just a hint to the patch program and/or the human reader.<br/>&gt; &gt; <br/>&gt; &gt; I didn&#39;t realize that those line numbers were only hints.<br/>&gt; <br/>&gt; <br/>&gt; The line numbers are exact for the context lines they refer to. The<br/>&gt; hint is the function name in which those lines occur. I would have<br/>&gt; sent a DIFFERENCES/SLP if I&#39;d known the GNU diff would confuse<br/>&gt; you :-).<br/>&gt; <br/>&gt; <br/>&gt; &gt; I was able to make the edits from what you&#39;d posted and it works.<br/>&gt; &gt; However, the one CSV file has over 35K lines giving an out of memory<br/>&gt; &gt; error.<br/>&gt; &gt; <br/>&gt; <br/>&gt; <br/>&gt; Have you tried the set_optimization() method as recommended here:<br/>&gt; <br/>&gt; <br/>&gt; &lt;http://search.cpan.org/~jmcnamara/Excel-Writer-XLSX-0.86/lib/Excel/Writer/XLSX.pm#SPEED_AND_MEMORY_USAGE&gt;<br/>&gt; <br/>&gt; <br/>&gt; <br/>&gt; ?<br/>&gt; <br/>I added that. THe conversion completed without an out of memory error<br/>but the resultant file is corrupt or, at least, LibreOffice seems to<br/>think so. No M$ here with which to try.<br/><br/><br/><br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/11/msg15698.html Mon, 02 Nov 2015 19:35:12 +0000 Re: Excel::Writer on OpenVMS by Brian Schenkenberger On Mon, 2015-11-02 at 18:39 +0000, Craig A. Berry wrote:<br/>&gt; <br/>&gt; <br/>&gt; <br/>&gt; On Nov 02, 2015, at 11:09 AM, Brian Schenkenberger &lt;VAXman@tmesis.com&gt;<br/>&gt; wrote:<br/>&gt; &gt; &gt; -----Original Message-----<br/>&gt; &gt; &gt; From: Craig A. Berry [mailto:craigberry@mac.com]<br/>&gt; <br/>&gt; &gt; &gt; $ gdiff -pu lib/Excel/Writer/XLSX/Workbook.pm;-0<br/>&gt; &gt; &gt; lib/Excel/Writer/XLSX/Workbook.pm<br/>&gt; &gt; &gt; --- lib/Excel/Writer/XLSX/Workbook.pm;-0 2015-10-29<br/>&gt; &gt; &gt; 14:09:16 -0500<br/>&gt; &gt; &gt; +++ lib/Excel/Writer/XLSX/Workbook.pm 2015-10-30 13:07:34 -0500<br/>&gt; &gt; &gt; @@ -964,7 +964,7 @@ sub _store_workbook {<br/>&gt; &gt; &gt; # with File::Find and pass each one to addFile().<br/>&gt; <br/>&gt; <br/>&gt; Whatever version of the package was current on the CPAN the day you<br/>&gt; originally posted. Apparently that&#39;s been 0.86 since 18 October.<br/>&gt; <br/>&gt; &gt; Line 964 in mine is not:<br/>&gt; <br/>&gt; &gt; sub _store_workbook {<br/>&gt; <br/>&gt; <br/>&gt; No, of course not, but it is *within* the _store_workbook function.<br/>&gt; The part after the second &quot;@@&quot; in a GNU unified diff section header is<br/>&gt; just a hint to the patch program and/or the human reader.<br/><br/>I didn&#39;t realize that those line numbers were only hints.<br/><br/>I was able to make the edits from what you&#39;d posted and it works.<br/>However, the one CSV file has over 35K lines giving an out of memory<br/>error.<br/><br/>I do wish I could get the Spreadsheet::WriteExcel::Big to work. I&#39;m at<br/>a loss there. Any data that takes the .XLS file over 7M fails.<br/><br/>&gt; <br/>&gt; <br/><br/><br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/11/msg15697.html Mon, 02 Nov 2015 19:35:10 +0000 Re: Excel::Writer on OpenVMS by Brian Schenkenberger On Fri, 2015-10-30 at 21:04 +0000, Carl Friedberg wrote: <br/>&gt; Craig, <br/>&gt; <br/>&gt; Wow, thanks for your meticulous research. Great job! <br/>&gt; <br/>&gt; Carl <br/>&gt; <br/>&gt; Carl Friedberg <br/>&gt; friedberg@esb.com (212) 798-0718 <br/>&gt; www.esb.com <br/>&gt; The Elias Book of Baseball Records <br/>&gt; 2015 Edition <br/>&gt; <br/>&gt; <br/>&gt; -----Original Message----- <br/>&gt; From: Craig A. Berry [mailto:craigberry@mac.com] <br/>&gt; Sent: Friday, October 30, 2015 4:59 PM <br/>&gt; To: vmsperl (vmsperl@perl.org) <br/>&gt; Subject: Re: Excel::Writer on OpenVMS <br/>&gt; <br/>&gt; <br/>&gt; &gt; On Oct 30, 2015, at 9:43 AM, Craig A. Berry &lt;craigberry@mac.com&gt; wrote: <br/>&gt; &gt; <br/>&gt; &gt; It still fails to clean up the temp directory and I think it&acirc;&#128;&#153;s that same [Content_Types].xml file that is causing the problem. Don&acirc;&#128;&#153;t have a solution for that yet. <br/>&gt; <br/>&gt; Now I do. When the File::Temp destructor tries to clean up the temp directory, it calls File::Path::rmtree, which navigates to each directory and deletes each file in it before deleting the directory. That fails because [Content_Types].xml as a relative specification is ambiguous, so the delete of that file fails and then the attempt to delete the directory containing it fails. <br/>&gt; <br/>&gt; Deleting [Content_Types].xml as part of an absolute path is fine, though, as it&acirc;&#128;&#153;s not ambiguous when there are directory components present. We can help things out by deleting the files we&acirc;&#128;&#153;ve created before the File::Temp destructor ever attempts to go after them. <br/>&gt; <br/>&gt; So along with DECC$FILENAME_UNIX_REPORT, the following gets us a working Excel::Writer::XLSX on VMS: <br/>&gt; <br/>&gt; $ gdiff -pu lib/Excel/Writer/XLSX/Workbook.pm;-0 lib/Excel/Writer/XLSX/Workbook.pm <br/>&gt; --- lib/Excel/Writer/XLSX/Workbook.pm;-0 2015-10-29 14:09:16 -0500 <br/>&gt; +++ lib/Excel/Writer/XLSX/Workbook.pm 2015-10-30 13:07:34 -0500 <br/>&gt; @@ -964,7 +964,7 @@ sub _store_workbook { <br/>&gt; # with File::Find and pass each one to addFile(). <br/>&gt; my @xlsx_files; <br/>&gt; <br/>&gt; - my $wanted = sub { push @xlsx_files, $File::Find::name if -f }; <br/>&gt; + my $wanted = sub { push @xlsx_files, $File::Find::name unless -d }; <br/>&gt; <br/>&gt; File::Find::find( <br/>&gt; { <br/>&gt; @@ -1010,6 +1010,7 @@ sub _store_workbook { <br/>&gt; print { $self-&gt;{_filehandle} } $buffer; <br/>&gt; } <br/>&gt; } <br/>&gt; + for my $f ( @xlsx_files ) { 1 while unlink $f; } <br/>&gt; } <br/>&gt; <br/>&gt; <br/>&gt; [end] <br/>&gt; <br/>&gt; ________________________________________ <br/>&gt; Craig A. Berry <br/>&gt; mailto:craigberry@mac.com <br/>&gt; <br/>&gt; &quot;... getting out of a sonnet is much more <br/>&gt; difficult than getting in.&quot; <br/>&gt; Brad Leithauser <br/>&gt; <br/> <br/>What version of Workbook.pm do you have? Line 964 in mine is not: <br/> <br/>sub _store_workbook { <br/> <br/> <br/> <br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/11/msg15696.html Mon, 02 Nov 2015 19:35:09 +0000 Re: Excel::Writer on OpenVMS by Craig A. Berry http://www.nntp.perl.org/group/perl.vmsperl/2015/11/msg15695.html Mon, 02 Nov 2015 18:54:31 +0000 Re: Excel::Writer on OpenVMS by Craig A. Berry http://www.nntp.perl.org/group/perl.vmsperl/2015/11/msg15694.html Mon, 02 Nov 2015 18:40:26 +0000 RE: Excel::Writer on OpenVMS by Carl Friedberg Craig, <br/> <br/>Wow, thanks for your meticulous research. Great job! <br/> <br/>Carl <br/> <br/>Carl Friedberg <br/>friedberg@esb.com (212) 798-0718 <br/>www.esb.com <br/>The Elias Book of Baseball Records <br/>2015 Edition <br/> <br/> <br/>-----Original Message----- <br/>From: Craig A. Berry [mailto:craigberry@mac.com] <br/>Sent: Friday, October 30, 2015 4:59 PM <br/>To: vmsperl (vmsperl@perl.org) <br/>Subject: Re: Excel::Writer on OpenVMS <br/> <br/> <br/>&gt; On Oct 30, 2015, at 9:43 AM, Craig A. Berry &lt;craigberry@mac.com&gt; wrote: <br/>&gt; <br/>&gt; It still fails to clean up the temp directory and I think it&acirc;&#128;&#153;s that same [Content_Types].xml file that is causing the problem. Don&acirc;&#128;&#153;t have a solution for that yet. <br/> <br/>Now I do. When the File::Temp destructor tries to clean up the temp directory, it calls File::Path::rmtree, which navigates to each directory and deletes each file in it before deleting the directory. That fails because [Content_Types].xml as a relative specification is ambiguous, so the delete of that file fails and then the attempt to delete the directory containing it fails. <br/> <br/>Deleting [Content_Types].xml as part of an absolute path is fine, though, as it&acirc;&#128;&#153;s not ambiguous when there are directory components present. We can help things out by deleting the files we&acirc;&#128;&#153;ve created before the File::Temp destructor ever attempts to go after them. <br/> <br/>So along with DECC$FILENAME_UNIX_REPORT, the following gets us a working Excel::Writer::XLSX on VMS: <br/> <br/>$ gdiff -pu lib/Excel/Writer/XLSX/Workbook.pm;-0 lib/Excel/Writer/XLSX/Workbook.pm <br/>--- lib/Excel/Writer/XLSX/Workbook.pm;-0 2015-10-29 14:09:16 -0500 <br/>+++ lib/Excel/Writer/XLSX/Workbook.pm 2015-10-30 13:07:34 -0500 <br/>@@ -964,7 +964,7 @@ sub _store_workbook { <br/> # with File::Find and pass each one to addFile(). <br/> my @xlsx_files; <br/> <br/>- my $wanted = sub { push @xlsx_files, $File::Find::name if -f }; <br/>+ my $wanted = sub { push @xlsx_files, $File::Find::name unless -d }; <br/> <br/> File::Find::find( <br/> { <br/>@@ -1010,6 +1010,7 @@ sub _store_workbook { <br/> print { $self-&gt;{_filehandle} } $buffer; <br/> } <br/> } <br/>+ for my $f ( @xlsx_files ) { 1 while unlink $f; } <br/> } <br/> <br/> <br/>[end] <br/> <br/>________________________________________ <br/>Craig A. Berry <br/>mailto:craigberry@mac.com <br/> <br/>&quot;... getting out of a sonnet is much more <br/> difficult than getting in.&quot; <br/> Brad Leithauser <br/> <br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/10/msg15693.html Fri, 30 Oct 2015 21:04:41 +0000 Re: Excel::Writer on OpenVMS by Craig A. Berry <br/>&gt; On Oct 30, 2015, at 9:43 AM, Craig A. Berry &lt;craigberry@mac.com&gt; wrote: <br/>&gt; <br/>&gt; It still fails to clean up the temp directory and I think it&rsquo;s that same [Content_Types].xml file that is causing the problem. Don&rsquo;t have a solution for that yet. <br/> <br/>Now I do. When the File::Temp destructor tries to clean up the temp directory, it calls File::Path::rmtree, which navigates to each directory and deletes each file in it before deleting the directory. That fails because [Content_Types].xml as a relative specification is ambiguous, so the delete of that file fails and then the attempt to delete the directory containing it fails. <br/> <br/>Deleting [Content_Types].xml as part of an absolute path is fine, though, as it&rsquo;s not ambiguous when there are directory components present. We can help things out by deleting the files we&rsquo;ve created before the File::Temp destructor ever attempts to go after them. <br/> <br/>So along with DECC$FILENAME_UNIX_REPORT, the following gets us a working Excel::Writer::XLSX on VMS: <br/> <br/>$ gdiff -pu lib/Excel/Writer/XLSX/Workbook.pm;-0 lib/Excel/Writer/XLSX/Workbook.pm <br/>--- lib/Excel/Writer/XLSX/Workbook.pm;-0 2015-10-29 14:09:16 -0500 <br/>+++ lib/Excel/Writer/XLSX/Workbook.pm 2015-10-30 13:07:34 -0500 <br/>@@ -964,7 +964,7 @@ sub _store_workbook { <br/> # with File::Find and pass each one to addFile(). <br/> my @xlsx_files; <br/> <br/>- my $wanted = sub { push @xlsx_files, $File::Find::name if -f }; <br/>+ my $wanted = sub { push @xlsx_files, $File::Find::name unless -d }; <br/> <br/> File::Find::find( <br/> { <br/>@@ -1010,6 +1010,7 @@ sub _store_workbook { <br/> print { $self-&gt;{_filehandle} } $buffer; <br/> } <br/> } <br/>+ for my $f ( @xlsx_files ) { 1 while unlink $f; } <br/> } <br/> <br/> <br/>[end] <br/> <br/>________________________________________ <br/>Craig A. Berry <br/>mailto:craigberry@mac.com <br/> <br/>&quot;... getting out of a sonnet is much more <br/> difficult than getting in.&quot; <br/> Brad Leithauser <br/> <br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/10/msg15692.html Fri, 30 Oct 2015 20:59:41 +0000 Re: Excel::Writer on OpenVMS by Craig A. Berry <br/>&gt; On Oct 29, 2015, at 6:44 PM, Craig A. Berry &lt;craigberry@me.com&gt; wrote: <br/>&gt; <br/>&gt; <br/>&gt; I got somewhat farther by setting this: <br/>&gt; <br/>&gt; $ DEFINE DECC$FILENAME_UNIX_REPORT 1 <br/>&gt; <br/>&gt; and testing with [.examples]demo.pl, but the resulting file is corrupt. <br/> <br/>&gt; Nothing looks greatly amiss in the VMS version except that the oddly named file [Content_Types].xml is missing. The file does exist in the temp directory on VMS: <br/>&gt; <br/>&gt; $ dir/size [...]^[Content_Types^].xml;1 <br/>&gt; <br/>&gt; Directory MDA0:[CRAIG.SCRATCH.bGENbxoyB2] <br/>&gt; <br/>&gt; ^[Content_Types^].xml;1 <br/>&gt; 3 <br/>&gt; <br/>&gt; Total of 1 file, 3 blocks. <br/>&gt; <br/>&gt; so something is preventing that file from getting added to the zip/xlsx archive. <br/> <br/>And that something is the following line of code: <br/> <br/> my $wanted = sub { push @xlsx_files, $File::Find::name if -f }; <br/> <br/>The -f file test operator is a pretty thin wrapper around the CRTL stat function, which fails with [Content_Types].xml, presumably because, while it&rsquo;s a valid Unix-format specification, it&rsquo;s also a valid VMS-format directory and file specification. There is no choice about what to name this file &mdash; it&rsquo;s a standard part of an XLSX archive. <br/> <br/>If you give it a hint by prepending a little Unix syntax (&ldquo;./&ldquo;) or escape the brackets to make it unambiguously a VMS-syntax file, it&rsquo;s ok, but on its own it is not recognized as a file. <br/> <br/>$ perl -e &quot;print -f &#39;./[Content_Types].xml&#39; ? &#39;Y&#39; : &#39;N&#39;;&quot; <br/>Y <br/>$ perl -e &quot;print -f &#39;^[Content_Types^].xml&#39; ? &#39;Y&#39; : &#39;N&#39;;&quot; <br/>Y <br/>$ perl -e &quot;print -f &#39;[Content_Types].xml&#39; ? &#39;Y&#39; : &#39;N&rsquo;&rdquo; <br/>N <br/> <br/>The solution is simple because what the code in question is doing is trying to exclude directories from its list of files to include in the archive and only include files. So instead of saying &ldquo;is it a file?&rdquo; we can say &ldquo;is it not a directory?&rdquo;, like so: <br/> <br/>$ gdiff -pu lib/Excel/Writer/XLSX/Workbook.pm;-0 lib/Excel/Writer/XLSX/Workbook.pm <br/>--- lib/Excel/Writer/XLSX/Workbook.pm;-0 2015-10-29 14:09:16 -0500 <br/>+++ lib/Excel/Writer/XLSX/Workbook.pm 2015-10-30 09:14:16 -0500 <br/>@@ -964,7 +964,7 @@ sub _store_workbook { <br/> # with File::Find and pass each one to addFile(). <br/> my @xlsx_files; <br/> <br/>- my $wanted = sub { push @xlsx_files, $File::Find::name if -f }; <br/>+ my $wanted = sub { push @xlsx_files, $File::Find::name unless -d }; <br/> <br/> File::Find::find( <br/> { <br/>[end] <br/> <br/>That in conjunction with DECC$FILENAME_UNIX_REPORT is all you need to get a valid XLSX file. You can ignore my previous suggestion to convert the temp directory to Unix format as the DECC$ setting already does the equivalent. In case it&rsquo;s not obvious you also need an ODS-5 disk and a recentish version of Perl (I tested with 5.20.1). <br/> <br/>It still fails to clean up the temp directory and I think it&rsquo;s that same [Content_Types].xml file that is causing the problem. Don&rsquo;t have a solution for that yet. <br/>________________________________________ <br/>Craig A. Berry <br/>mailto:craigberry@mac.com <br/> <br/>&quot;... getting out of a sonnet is much more <br/> difficult than getting in.&quot; <br/> Brad Leithauser <br/> <br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/10/msg15691.html Fri, 30 Oct 2015 14:43:56 +0000 Re: Excel::Writer on OpenVMS by Craig A. Berry <br/>&gt; On Oct 29, 2015, at 2:40 PM, Craig A. Berry &lt;craigberry@me.com&gt; wrote: <br/>&gt; <br/>&gt; <br/>&gt; $ perl -&quot;I[.blib.lib]&quot; examples/array_formula.pl <br/>&gt; (in cleanup) Couldn&#39;t create sub directory mda0:[craig.scratch.QHki3CLXLC]/xl: no such file or directory at blib/lib/Excel/Writer/XLSX/Workboo <br/>&gt; k.pm line 957. <br/>&gt; <br/> <br/>The fix for that is simple: <br/> <br/>$ gdiff -pu lib/Excel/Writer/XLSX/Workbook.pm;-0 lib/Excel/Writer/XLSX/Workbook.pm <br/>--- lib/Excel/Writer/XLSX/Workbook.pm;-0 2015-10-29 14:09:16 -0500 <br/>+++ lib/Excel/Writer/XLSX/Workbook.pm 2015-10-29 14:47:56 -0500 <br/>@@ -918,6 +918,8 @@ sub _store_workbook { <br/> my $packager = Excel::Writer::XLSX::Package::Packager-&gt;new(); <br/> my $zip = Archive::Zip-&gt;new(); <br/> <br/>+ # We&#39;ll be appending Unix-style paths onto this. <br/>+ $tempdir = VMS::Filespec::unixpath($tempdir) if $^O eq &#39;VMS&#39;; <br/> <br/> # Add a default worksheet if non have been added. <br/> $self-&gt;add_worksheet() if not @{ $self-&gt;{_worksheets} }; <br/>[end] <br/> <br/>Now it runs but creates empty files. I&rsquo;ll have to look into that sometime but have to get back to real work at the moment. <br/> <br/>________________________________________ <br/>Craig A. Berry <br/>mailto:craigberry@mac.com <br/> <br/>&quot;... getting out of a sonnet is much more <br/> difficult than getting in.&quot; <br/> Brad Leithauser <br/> <br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/10/msg15690.html Fri, 30 Oct 2015 12:02:44 +0000 Re: Excel::Writer on OpenVMS by Craig A. Berry <br/>&gt; On Oct 29, 2015, at 1:53 PM, Brian Schenkenberger, VAXman- &lt;system@TMESIS.COM&gt; wrote: <br/>&gt; <br/>&gt; Hi, <br/>&gt; <br/>&gt; I need to get Excel::Writer functioning on VMS. If you download the first <br/>&gt; of the example scripts for this package, you&#39;ll see that it complains when <br/>&gt; trying to create temporary directories into which worksheets and workbooks <br/>&gt; are stored. <br/> <br/>What do those complaints look like? This, perhaps? <br/> <br/>$ perl -&quot;I[.blib.lib]&quot; examples/array_formula.pl <br/> (in cleanup) Couldn&#39;t create sub directory mda0:[craig.scratch.QHki3CLXLC]/xl: no such file or directory at blib/lib/Excel/Writer/XLSX/Workboo <br/>k.pm line 957. <br/> <br/>Looks like mongrel syntax to me. It&rsquo;s getting a temp file in native syntax, then pasting &ldquo;/xl&rdquo; onto it. I&rsquo;ll see if I can spot where it&rsquo;s doing that and what to do about it as this would be a very nice module to have available. <br/> <br/>&gt; I&#39;ve played about with defining various DECC$features logicals and results <br/>&gt; change but the errors all seem to focus about the creation of the temporary <br/>&gt; directories and files. <br/>&gt; <br/>&gt; Has anyone got this package working on VMS? <br/> <br/>I think I might&rsquo;ve built a previous version once but don&rsquo;t recall actually using it. <br/> <br/>&gt; <br/>&gt; Thanks in advance. <br/>&gt; <br/>&gt; FWIW, I did have Spreadsheet::WriteExcel working to write .XLS files but I <br/>&gt; now need to write .XLSX files and Excel::Writer::XLSX looks to be the only <br/>&gt; package available. <br/>&gt; <br/>&gt; -- <br/>&gt; VAXman- A Bored Certified VMS Kernel Mode Hacker VAXman(at)TMESIS(dot)ORG <br/>&gt; <br/>&gt; I speak to machines with the voice of humanity. <br/> <br/>________________________________________ <br/>Craig A. Berry <br/>mailto:craigberry@mac.com <br/> <br/>&quot;... getting out of a sonnet is much more <br/> difficult than getting in.&quot; <br/> Brad Leithauser <br/> <br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/10/msg15689.html Fri, 30 Oct 2015 12:02:43 +0000 Re: Excel::Writer on OpenVMS by Craig A. Berry <br/>&gt; On Oct 29, 2015, at 2:58 PM, Craig A. Berry &lt;craigberry@me.com&gt; wrote: <br/> <br/>&gt; Now it runs but creates empty files. I&rsquo;ll have to look into that sometime but have to get back to real work at the moment. <br/> <br/>Oh, for goodness sake, when are these messages ever going to make it through moderation and show up on list? <br/> <br/>I got somewhat farther by setting this: <br/> <br/>$ DEFINE DECC$FILENAME_UNIX_REPORT 1 <br/> <br/>and testing with [.examples]demo.pl, but the resulting file is corrupt. Since an xlsx file is just a zip file containing a bunch of different Excel-specific files, you can examine its contents with unzip. Here&rsquo;s what&rsquo;s in it when created on VMS: <br/> <br/>$ unzip -l demo.xlsx <br/>Archive: demo.xlsx <br/> Length Date Time Name <br/> -------- ---- ---- ---- <br/> 848 10-29-15 17:49 docProps/app.xml <br/> 592 10-29-15 17:49 docProps/core.xml <br/> 606 10-29-15 17:49 xl/sharedStrings.xml <br/> 1992 10-29-15 17:49 xl/styles.xml <br/> 652 10-29-15 17:49 xl/workbook.xml <br/> 1018 10-29-15 17:49 xl/drawings/drawing1.xml <br/> 291 10-29-15 17:49 xl/drawings/_rels/drawing1.xml.rels <br/> 6263 10-29-15 17:49 xl/media/image1.png <br/> 6995 10-29-15 17:49 xl/theme/theme1.xml <br/> 1802 10-29-15 17:49 xl/worksheets/sheet1.xml <br/> 438 10-29-15 17:49 xl/worksheets/sheet2.xml <br/> 438 10-29-15 17:49 xl/worksheets/sheet3.xml <br/> 460 10-29-15 17:49 xl/worksheets/_rels/sheet1.xml.rels <br/> 979 10-29-15 17:49 xl/_rels/workbook.xml.rels <br/> 587 10-29-15 17:49 _rels/.rels <br/> -------- ------- <br/> 23961 15 files <br/> <br/>Here&rsquo;s what&rsquo;s in it when created on OS X: <br/> <br/>$ unzip -l demo.xlsx <br/>Archive: demo.xlsx <br/> Length Date Time Name <br/> -------- ---- ---- ---- <br/> 1609 10-29-15 18:02 [Content_Types].xml <br/> 587 10-29-15 18:02 _rels/.rels <br/> 848 10-29-15 18:02 docProps/app.xml <br/> 592 10-29-15 18:02 docProps/core.xml <br/> 606 10-29-15 18:02 xl/sharedStrings.xml <br/> 1992 10-29-15 18:02 xl/styles.xml <br/> 652 10-29-15 18:02 xl/workbook.xml <br/> 979 10-29-15 18:02 xl/_rels/workbook.xml.rels <br/> 1018 10-29-15 18:02 xl/drawings/drawing1.xml <br/> 291 10-29-15 18:02 xl/drawings/_rels/drawing1.xml.rels <br/> 6263 10-29-15 18:02 xl/media/image1.png <br/> 6995 10-29-15 18:02 xl/theme/theme1.xml <br/> 1802 10-29-15 18:02 xl/worksheets/sheet1.xml <br/> 438 10-29-15 18:02 xl/worksheets/sheet2.xml <br/> 438 10-29-15 18:02 xl/worksheets/sheet3.xml <br/> 460 10-29-15 18:02 xl/worksheets/_rels/sheet1.xml.rels <br/> -------- ------- <br/> 25570 16 files <br/> <br/>Nothing looks greatly amiss in the VMS version except that the oddly named file [Content_Types].xml is missing. The file does exist in the temp directory on VMS: <br/> <br/>$ dir/size [...]^[Content_Types^].xml;1 <br/> <br/>Directory MDA0:[CRAIG.SCRATCH.bGENbxoyB2] <br/> <br/>^[Content_Types^].xml;1 <br/> 3 <br/> <br/>Total of 1 file, 3 blocks. <br/> <br/>so something is preventing that file from getting added to the zip/xlsx archive. That&rsquo;s got to be happening somewhere around here: <br/> <br/>https://github.com/jmcnamara/excel-writer-xlsx/blob/master/lib/Excel/Writer/XLSX/Workbook.pm#L962 <br/> <br/>and needs further investigation. <br/> <br/>________________________________________ <br/>Craig A. Berry <br/>mailto:craigberry@mac.com <br/> <br/>&quot;... getting out of a sonnet is much more <br/> difficult than getting in.&quot; <br/> Brad Leithauser <br/> <br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/10/msg15688.html Fri, 30 Oct 2015 12:02:43 +0000 Excel::Writer on OpenVMS by Brian Schenkenberger, VAXman- Hi,<br/><br/>I need to get Excel::Writer functioning on VMS. If you download the first<br/>of the example scripts for this package, you&#39;ll see that it complains when<br/>trying to create temporary directories into which worksheets and workbooks<br/>are stored.<br/><br/>I&#39;ve played about with defining various DECC$features logicals and results<br/>change but the errors all seem to focus about the creation of the temporary<br/>directories and files.<br/><br/>Has anyone got this package working on VMS?<br/><br/>Thanks in advance. <br/><br/>FWIW, I did have Spreadsheet::WriteExcel working to write .XLS files but I<br/>now need to write .XLSX files and Excel::Writer::XLSX looks to be the only<br/>package available.<br/><br/>-- <br/>VAXman- A Bored Certified VMS Kernel Mode Hacker VAXman(at)TMESIS(dot)ORG<br/><br/>I speak to machines with the voice of humanity.<br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/10/msg15687.html Thu, 29 Oct 2015 18:53:36 +0000 VMS::Lock 1.03 available by Craig A. Berry I&rsquo;ve at long last obtained co-maintainership of Brad Hughes&rsquo;s VMS::Lock module and fixed the longstanding namespace pollution bug and a couple of other nits. Available at: <br/> <br/>&lt;http://search.cpan.org/~cberry/VMS-Lock-1_03/&gt; <br/> <br/> <br/>________________________________________ <br/>Craig A. Berry <br/>mailto:craigberry@mac.com <br/> <br/>&quot;... getting out of a sonnet is much more <br/> difficult than getting in.&quot; <br/> Brad Leithauser <br/> <br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/07/msg15686.html Sat, 04 Jul 2015 22:05:39 +0000 Re: perl for VMS 7.3-2 on VAX (or rather the SIMH) by Dr Eberhard W Lisse Craig, <br/> <br/>thanks. Point noted :-)-O <br/> <br/>This (VAX/SIMH) is just a blast from the past, (from Medical School <br/>actually, 35 years ago) :-)-O, and I just thought I play with perl a <br/>little. <br/> <br/>And I run the emulator on OS X and could not find much for that :-)-O <br/> <br/>I found perl5_005_03_vmsvax6_2.zip on DECUSLIB (it is not on the FTP nor <br/>HTTP site) and that works. <br/> <br/>greetings, el <br/> <br/> <br/> <br/> <br/>On 2015-07-03 22:41 , Craig A. Berry wrote: <br/>&gt; <br/>&gt;&gt; On Jul 3, 2015, at 2:58 PM, Dr Eberhard Lisse &lt;nospam@lisse.NA&gt; wrote: <br/>&gt;&gt; <br/>&gt;&gt; I am currently playing with this on a Hobbyist license and wonder now if <br/>&gt;&gt; there is a perl kit (any version, really). <br/>&gt;&gt; <br/>&gt; <br/>&gt; A pedantic point, but there is no such thing as VMS v7.3-2 on VAX. <br/>&gt; v7.3 was the terminal release on VAX and v7.3-2 was Alpha only. <br/>&gt; <br/>&gt; For Perl versions up through 5.22, there is latent support for <br/>&gt; building on VAX but I haven&rsquo;t tried it in at least a couple <br/>&gt; years. There are so many essential features missing from VAX that <br/>&gt; it&rsquo;s just not worth the trouble. <br/>&gt; <br/>&gt; There are some ancient binary kits of Perl for VAX at <br/>&gt; &lt;http://www.sidhe.org/vmsperl/prebuilt.html&gt;. <br/>&gt; <br/>&gt; If you want to run more current software, my advice is to get away <br/>&gt; from VAX and run an Alpha emulator. There are free ones but no <br/>&gt; complete open source ones that I&rsquo;m aware of. <br/>&gt; <br/>&gt; ________________________________________ <br/>&gt; Craig A. Berry <br/>&gt; mailto:craigberry@mac.com <br/>&gt; <br/>&gt; &quot;... getting out of a sonnet is much more <br/>&gt; difficult than getting in.&quot; <br/>&gt; Brad Leithauser <br/>&gt; <br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/07/msg15685.html Sat, 04 Jul 2015 06:22:53 +0000 Re: perl for VMS 7.3-2 on VAX (or rather the SIMH) by Craig A. Berry <br/>&gt; On Jul 3, 2015, at 2:58 PM, Dr Eberhard Lisse &lt;nospam@lisse.NA&gt; wrote: <br/>&gt; <br/>&gt; I am currently playing with this on a Hobbyist license and wonder now if <br/>&gt; there is a perl kit (any version, really). <br/>&gt; <br/> <br/>A pedantic point, but there is no such thing as VMS v7.3-2 on VAX. v7.3 was the terminal release on VAX and v7.3-2 was Alpha only. <br/> <br/>For Perl versions up through 5.22, there is latent support for building on VAX but I haven&rsquo;t tried it in at least a couple years. There are so many essential features missing from VAX that it&rsquo;s just not worth the trouble. <br/> <br/>There are some ancient binary kits of Perl for VAX at &lt;http://www.sidhe.org/vmsperl/prebuilt.html&gt;. <br/> <br/>If you want to run more current software, my advice is to get away from VAX and run an Alpha emulator. There are free ones but no complete open source ones that I&rsquo;m aware of. <br/> <br/>________________________________________ <br/>Craig A. Berry <br/>mailto:craigberry@mac.com <br/> <br/>&quot;... getting out of a sonnet is much more <br/> difficult than getting in.&quot; <br/> Brad Leithauser <br/> <br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/07/msg15684.html Fri, 03 Jul 2015 20:41:16 +0000 perl for VMS 7.3-2 on VAX (or rather the SIMH) by Dr Eberhard Lisse Hi,<br/><br/>I am currently playing with this on a Hobbyist license and wonder now if<br/>there is a perl kit (any version, really).<br/><br/>greetings, el<br/>-- <br/>replace nospam by el if you want to email me directly<br/><br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/07/msg15683.html Fri, 03 Jul 2015 20:25:26 +0000 Perl 5.22.0 binary kits for OpenVMS available by Craig A. Berry Installation kits for OpenVMS Alpha and OpenVMS I64 v8.3 and later are available at: <br/> <br/>&lt;https://sourceforge.net/projects/vmsperlkit/files/&gt; <br/> <br/>The files are self-extracting archives and after downloading <br/>you must run them like so: <br/> <br/>$ run VMSPORTS-AXPVMS-PERL522-V0522-0-1.SFX_AXPEXE <br/> <br/>for Alpha, and: <br/> <br/>$ run VMSPORTS-I64VMS-PERL522-V0522-0-1.SFX_I64EXE <br/> <br/>for Itanium. Then, on either platform: <br/> <br/>$ product install perl522 <br/> <br/>and follow the usual installation prompts. Note that the major version is now included in the product name so this installation will not remove installations of previous versions (e.g., 5.18 or 5.20). <br/> <br/>The kits provided here are intended to be a convenient way to acquire a default build; there are many other configuration options available if you build your own Perl from the source at &lt;http://www.cpan.org/src/5.0/perl-5.22.0.tar.gz&gt;. <br/> <br/>Have an appropriate amount of fun. Anything related to these kits that turns out to be more fun than you can handle is probably best reported on the vmsperl mailing list.[1] <br/> <br/>Changes in this release can be found via typing &quot;perldoc perldelta&quot; after installation. <br/> <br/> <br/>[1] &lt;http://lists.perl.org/list/vmsperl.html&gt; <br/> <br/>________________________________________ <br/>Craig A. Berry <br/>mailto:craigberry@mac.com <br/> <br/>&quot;... getting out of a sonnet is much more <br/> difficult than getting in.&quot; <br/> Brad Leithauser <br/> <br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/06/msg15682.html Thu, 04 Jun 2015 13:24:11 +0000 Re: Error Building OpenVMS perl 5.20.2 by Eric Robertson Craig A. Berry wrote:<br/><br/>&gt;&gt; Creating Makefile.PL in dist/ExtUtils-ParseXS for ExtUtils::ParseXS<br/>&gt;&gt;<br/>&gt;&gt; Running Makefile.PL in dist/ExtUtils-ParseXS<br/>&gt;&gt; DKB1:[usr.robertson.WebDownloads.perl.perl-5^.20^.2.][000000]MINIPERL.EXE;2 <br/>&gt;&gt;<br/>&gt;&gt; &quot;-I../../lib&quot; &quot;Makefile.PL&quot; &quot;INST_LIB=[--.lib]&quot; &quot;INST_AR<br/>&gt;&gt; CHLIB=[--.lib]&quot; &quot;PERL_CORE=1&quot;<br/>&gt;&gt; Generating a MMK-style Descrip.MMS<br/>&gt;&gt; Writing Descrip.MMS for ExtUtils::ParseXS<br/>&gt;&gt; Making all in dist/ExtUtils-ParseXS<br/>&gt;&gt; MMK all /DESCRIPTION=descrip.mms /MACRO=(&quot;PERL_CORE=1&quot;)<br/>&gt;&gt; %MMK-F-CANTUPD, cannot update target [.LIB.EXTUTILS]XSUBPP^.. - sources<br/>&gt;&gt; unknown<br/>&gt;&gt; %MMK-F-CANTUPD, cannot update target [.LIB.EXTUTILS]XSUBPP^.. - sources<br/>&gt;&gt; unknown<br/>&gt; <br/>&gt; Please check that you have extended parse enabled in the process, and <br/>&gt; please also check that you do not have DECC$EFS_CHARSET explicitly <br/>&gt; disabled in the process. This is just guessing. I&#39;ve never seen this <br/>&gt; particular error so I don&#39;t know for sure what&#39;s going on, but <br/>&gt; &quot;XSUBPP^..&quot; sure looks like something went wrong with handling <br/>&gt; extended characters.<br/>Thanks for the clue! I had not built perl since 5.18.2 and while the <br/>command procedure that builds perl had the SET <br/>PROCESS/PARSE_STYLE=EXTENDED/CASE_LOOKUP=BLIND as its first command, my <br/>LOGIN.COM had changed and no longer had this command in it. So in some <br/>cases MMK would create batch jobs which would not setup the EXTENDED <br/>parse style needed for ODS-5 extended file naming. After I added this <br/>command back to my LOGIN.COM, all was well and perl 5.22.0 built <br/>successfully.<br/><br/>Thanks again for the quick response!<br/><br/>Regards,<br/><br/>Eric<br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/06/msg15681.html Tue, 02 Jun 2015 20:32:44 +0000 Re: Error Building OpenVMS perl 5.20.2 by Craig A. Berry <br/> <br/>On Jun 02, 2015, at 11:39 AM, Eric Robertson &lt;eric.robertson@iqware.us&gt; wrote: <br/> <br/>&gt; I am currently attempting to build the perl 5.20.2 release on OpenVMS <br/>&gt; Alpha V8.3 and I get an error part way through the build. <br/> <br/>5.22.0 was released yesterday, so I&#39;d recommend starting there. I hope to get kits out soonish but I gather you have a reason to build your own from source so there&#39;s no reason to wait for me. <br/>&gt; I saw an earlier posting that <br/>&gt; indicated the CPAN.pm module for 5.20.x was not functional for OpenVMS. <br/>&gt; But when I compared the CPAN.pm modules from the 5.20.2 release with the <br/>&gt; supposedly patched versions contained in the <br/>&gt; VMSPORTS-AXPVMS-PERL--V0520-1-1 kit I did not see any differences <br/> <br/>This is odd but the CPAN problem would not have anything to do with building the core, only with installing additional extensions afterwards. And the problem there was with CPAN has been fixed in 5.22.0. <br/>&gt; As Always, any wisdom on how to investigate this problem would be <br/>&gt; appreciated. <br/> <br/>&#xFEFF; <br/>&gt; Creating Makefile.PL in dist/ExtUtils-ParseXS for ExtUtils::ParseXS <br/>&gt; <br/>&gt; Running Makefile.PL in dist/ExtUtils-ParseXS <br/>&gt; DKB1:[usr.robertson.WebDownloads.perl.perl-5^.20^.2.][000000]MINIPERL.EXE;2 <br/>&gt; &quot;-I../../lib&quot; &quot;Makefile.PL&quot; &quot;INST_LIB=[--.lib]&quot; &quot;INST_AR <br/>&gt; CHLIB=[--.lib]&quot; &quot;PERL_CORE=1&quot; <br/>&gt; Generating a MMK-style Descrip.MMS <br/>&gt; Writing Descrip.MMS for ExtUtils::ParseXS <br/>&gt; Making all in dist/ExtUtils-ParseXS <br/>&gt; MMK all /DESCRIPTION=descrip.mms /MACRO=(&quot;PERL_CORE=1&quot;) <br/>&gt; %MMK-F-CANTUPD, cannot update target [.LIB.EXTUTILS]XSUBPP^.. - sources <br/>&gt; unknown <br/>&gt; %MMK-F-CANTUPD, cannot update target [.LIB.EXTUTILS]XSUBPP^.. - sources <br/>&gt; unknown <br/> <br/>Please check that you have extended parse enabled in the process, and please also check that you do not have DECC$EFS_CHARSET explicitly disabled in the process. This is just guessing. I&#39;ve never seen this particular error so I don&#39;t know for sure what&#39;s going on, but &quot;XSUBPP^..&quot; sure looks like something went wrong with handling extended characters. http://www.nntp.perl.org/group/perl.vmsperl/2015/06/msg15680.html Tue, 02 Jun 2015 17:18:14 +0000 Error Building OpenVMS perl 5.20.2 by Eric Robertson I am currently attempting to build the perl 5.20.2 release on OpenVMS <br/>Alpha V8.3 and I get an error part way through the build. Taken at face <br/>value it would seem that not all of the needed dependencies for the perl <br/>module ExtUtils::ParseXS are present. But, there may be a deeper problem <br/>of which this error is but a symptom. What follows is an excerpt taken <br/>from near the end of the build log. I saw an earlier posting that <br/>indicated the CPAN.pm module for 5.20.x was not functional for OpenVMS. <br/>But when I compared the CPAN.pm modules from the 5.20.2 release with the <br/>supposedly patched versions contained in the <br/>VMSPORTS-AXPVMS-PERL--V0520-1-1 kit I did not see any differences (Under <br/>the assumption that the static versions of the files in the kit are <br/>used and not dynamically generated by the PCSI installation procedure). <br/>So, I assumed that the 5.20.2 release already contained the patched <br/>versions of CPAN.pm module.<br/><br/>As Always, any wisdom on how to investigate this problem would be <br/>appreciated.<br/><br/>Thanks,<br/><br/>Eric<br/><br/><br/>.<br/>.<br/>.<br/>Running Makefile.PL in cpan/Test-Harness<br/>DKB1:[usr.robertson.WebDownloads.perl.perl-5^.20^.2.][000000]MINIPERL.EXE;2 <br/>&quot;-I../../lib&quot; &quot;Makefile.PL&quot; &quot;INST_LIB=[--.lib]&quot; &quot;INST_AR<br/>CHLIB=[--.lib]&quot; &quot;PERL_CORE=1&quot;<br/>Generating a MMK-style Descrip.MMS<br/>Writing Descrip.MMS for Test::Harness<br/>Making all in cpan/Test-Harness<br/>MMK all /DESCRIPTION=descrip.mms /MACRO=(&quot;PERL_CORE=1&quot;)<br/>cp [.lib.App.Prove.State.Result]Test.pm <br/>[--.lib.App.Prove.State.Result]Test.pm<br/>cp [.lib.App.Prove.State]Result.pm [--.lib.App.Prove.State]Result.pm<br/>cp [.lib.App.Prove]State.pm [--.lib.App.Prove]State.pm<br/>cp [.lib.App]Prove.pm [--.lib.App]Prove.pm<br/>cp [.lib.TAP.Formatter.Console]ParallelSession.pm <br/>[--.lib.TAP.Formatter.Console]ParallelSession.pm<br/>cp [.lib.TAP.Formatter.Console]Session.pm <br/>[--.lib.TAP.Formatter.Console]Session.pm<br/>cp [.lib.TAP.Formatter.File]Session.pm [--.lib.TAP.Formatter.File]Session.pm<br/>cp [.lib.TAP.Formatter]Base.pm [--.lib.TAP.Formatter]Base.pm<br/>cp [.lib.TAP.Formatter]Color.pm [--.lib.TAP.Formatter]Color.pm<br/>cp [.lib.TAP.Formatter]Console.pm [--.lib.TAP.Formatter]Console.pm<br/>cp [.lib.TAP.Formatter]File.pm [--.lib.TAP.Formatter]File.pm<br/>cp [.lib.TAP.Formatter]Session.pm [--.lib.TAP.Formatter]Session.pm<br/>cp [.lib.TAP.Harness]Beyond.pod [--.lib.TAP.Harness]Beyond.pod<br/>cp [.lib.TAP.Harness]Env.pm [--.lib.TAP.Harness]Env.pm<br/>cp [.lib.TAP.Parser.Iterator]Array.pm [--.lib.TAP.Parser.Iterator]Array.pm<br/>cp [.lib.TAP.Parser.Iterator]Process.pm <br/>[--.lib.TAP.Parser.Iterator]Process.pm<br/>cp [.lib.TAP.Parser.Iterator]Stream.pm [--.lib.TAP.Parser.Iterator]Stream.pm<br/>cp [.lib.TAP.Parser.Result]Bailout.pm [--.lib.TAP.Parser.Result]Bailout.pm<br/>cp [.lib.TAP.Parser.Result]Comment.pm [--.lib.TAP.Parser.Result]Comment.pm<br/>cp [.lib.TAP.Parser.Result]Plan.pm [--.lib.TAP.Parser.Result]Plan.pm<br/>cp [.lib.TAP.Parser.Result]Pragma.pm [--.lib.TAP.Parser.Result]Pragma.pm<br/>cp [.lib.TAP.Parser.Result]Test.pm [--.lib.TAP.Parser.Result]Test.pm<br/>cp [.lib.TAP.Parser.Result]Unknown.pm [--.lib.TAP.Parser.Result]Unknown.pm<br/>cp [.lib.TAP.Parser.Result]Version.pm [--.lib.TAP.Parser.Result]Version.pm<br/>cp [.lib.TAP.Parser.Result]YAML.pm [--.lib.TAP.Parser.Result]YAML.pm<br/>cp [.lib.TAP.Parser.Scheduler]Job.pm [--.lib.TAP.Parser.Scheduler]Job.pm<br/>cp [.lib.TAP.Parser.Scheduler]Spinner.pm <br/>[--.lib.TAP.Parser.Scheduler]Spinner.pm<br/>cp [.lib.TAP.Parser.SourceHandler]Executable.pm <br/>[--.lib.TAP.Parser.SourceHandler]Executable.pm<br/>cp [.lib.TAP.Parser.SourceHandler]File.pm <br/>[--.lib.TAP.Parser.SourceHandler]File.pm<br/>cp [.lib.TAP.Parser.SourceHandler]Handle.pm <br/>[--.lib.TAP.Parser.SourceHandler]Handle.pm<br/>cp [.lib.TAP.Parser.SourceHandler]Perl.pm <br/>[--.lib.TAP.Parser.SourceHandler]Perl.pm<br/>cp [.lib.TAP.Parser.SourceHandler]RawTAP.pm <br/>[--.lib.TAP.Parser.SourceHandler]RawTAP.pm<br/>cp [.lib.TAP.Parser.YAMLish]Reader.pm [--.lib.TAP.Parser.YAMLish]Reader.pm<br/>cp [.lib.TAP.Parser.YAMLish]Writer.pm [--.lib.TAP.Parser.YAMLish]Writer.pm<br/>cp [.lib.TAP.Parser]Aggregator.pm [--.lib.TAP.Parser]Aggregator.pm<br/>cp [.lib.TAP.Parser]Grammar.pm [--.lib.TAP.Parser]Grammar.pm<br/>cp [.lib.TAP.Parser]Iterator.pm [--.lib.TAP.Parser]Iterator.pm<br/>cp [.lib.TAP.Parser]IteratorFactory.pm [--.lib.TAP.Parser]IteratorFactory.pm<br/>cp [.lib.TAP.Parser]Multiplexer.pm [--.lib.TAP.Parser]Multiplexer.pm<br/>cp [.lib.TAP.Parser]Result.pm [--.lib.TAP.Parser]Result.pm<br/>cp [.lib.TAP.Parser]ResultFactory.pm [--.lib.TAP.Parser]ResultFactory.pm<br/>cp [.lib.TAP.Parser]Scheduler.pm [--.lib.TAP.Parser]Scheduler.pm<br/>cp [.lib.TAP.Parser]Source.pm [--.lib.TAP.Parser]Source.pm<br/>cp [.lib.TAP.Parser]SourceHandler.pm [--.lib.TAP.Parser]SourceHandler.pm<br/>cp [.lib.TAP]Base.pm [--.lib.TAP]Base.pm<br/>cp [.lib.TAP]Harness.pm [--.lib.TAP]Harness.pm<br/>cp [.lib.TAP]Object.pm [--.lib.TAP]Object.pm<br/>cp [.lib.TAP]Parser.pm [--.lib.TAP]Parser.pm<br/>cp [.lib.Test]Harness.pm [--.lib.Test]Harness.pm<br/> Making Test (all)<br/><br/>Running pm_to_blib for cpan/Test directly<br/>cp lib/Test.pm ../../lib/Test.pm<br/> Making Test::Simple (all)<br/><br/>Running pm_to_blib for cpan/Test-Simple directly<br/>cp lib/Test/Builder/Tester.pm ../../lib/Test/Builder/Tester.pm<br/>cp lib/Test/Builder/Module.pm ../../lib/Test/Builder/Module.pm<br/>cp lib/Test/Builder/Tester/Color.pm ../../lib/Test/Builder/Tester/Color.pm<br/>cp lib/Test/Simple.pm ../../lib/Test/Simple.pm<br/>cp lib/Test/Builder.pm ../../lib/Test/Builder.pm<br/>cp lib/Test/More.pm ../../lib/Test/More.pm<br/>cp lib/Test/Tutorial.pod ../../lib/Test/Tutorial.pod<br/> Making Text::Balanced (all)<br/><br/>Running pm_to_blib for cpan/Text-Balanced directly<br/>cp lib/Text/Balanced.pm ../../lib/Text/Balanced.pm<br/> Making Text::ParseWords (all)<br/><br/>Running pm_to_blib for cpan/Text-ParseWords directly<br/>cp lib/Text/ParseWords.pm ../../lib/Text/ParseWords.pm<br/> Making Text::Tabs (all)<br/><br/>Running pm_to_blib for cpan/Text-Tabs directly<br/>cp lib/Text/Tabs.pm ../../lib/Text/Tabs.pm<br/>cp lib/Text/Wrap.pm ../../lib/Text/Wrap.pm<br/> Making Tie::RefHash (all)<br/><br/>Running pm_to_blib for cpan/Tie-RefHash directly<br/>cp lib/Tie/RefHash.pm ../../lib/Tie/RefHash.pm<br/> Making Time::Local (all)<br/><br/>Running pm_to_blib for cpan/Time-Local directly<br/>cp lib/Time/Local.pm ../../lib/Time/Local.pm<br/> Making version (all)<br/><br/>Running pm_to_blib for cpan/version directly<br/>cp lib/version/vpp.pm ../../lib/version/vpp.pm<br/>cp lib/version/Internals.pod ../../lib/version/Internals.pod<br/>cp lib/version/regex.pm ../../lib/version/regex.pm<br/>cp lib/version.pod ../../lib/version.pod<br/>cp lib/version.pm ../../lib/version.pm<br/><br/> Making Attribute::Handlers (all)<br/><br/>Running pm_to_blib for dist/Attribute-Handlers directly<br/>cp lib/Attribute/Handlers.pm ../../lib/Attribute/Handlers.pm<br/> Making autouse (all)<br/><br/>Running pm_to_blib for dist/autouse directly<br/>cp lib/autouse.pm ../../lib/autouse.pm<br/> Making base (all)<br/><br/>Running pm_to_blib for dist/base directly<br/>cp lib/fields.pm ../../lib/fields.pm<br/>cp lib/base.pm ../../lib/base.pm<br/> Making bignum (all)<br/><br/>Running pm_to_blib for dist/bignum directly<br/>cp lib/Math/BigFloat/Trace.pm ../../lib/Math/BigFloat/Trace.pm<br/>cp lib/bigint.pm ../../lib/bigint.pm<br/>cp lib/Math/BigInt/Trace.pm ../../lib/Math/BigInt/Trace.pm<br/>cp lib/bignum.pm ../../lib/bignum.pm<br/>cp lib/bigrat.pm ../../lib/bigrat.pm<br/> Making Carp (all)<br/><br/>Running pm_to_blib for dist/Carp directly<br/>cp lib/Carp.pm ../../lib/Carp.pm<br/>cp lib/Carp/Heavy.pm ../../lib/Carp/Heavy.pm<br/> Making constant (all)<br/><br/>Running pm_to_blib for dist/constant directly<br/>cp lib/constant.pm ../../lib/constant.pm<br/> Making Devel::SelfStubber (all)<br/><br/>Running pm_to_blib for dist/Devel-SelfStubber directly<br/>cp lib/Devel/SelfStubber.pm ../../lib/Devel/SelfStubber.pm<br/> Making Dumpvalue (all)<br/><br/>Running pm_to_blib for dist/Dumpvalue directly<br/>cp lib/Dumpvalue.pm ../../lib/Dumpvalue.pm<br/> Making Env (all)<br/><br/>Running pm_to_blib for dist/Env directly<br/>cp lib/Env.pm ../../lib/Env.pm<br/> Making Exporter (all)<br/><br/>Running pm_to_blib for dist/Exporter directly<br/>cp lib/Exporter/Heavy.pm ../../lib/Exporter/Heavy.pm<br/>cp lib/Exporter.pm ../../lib/Exporter.pm<br/> Making ExtUtils::CBuilder (all)<br/><br/>Running pm_to_blib for dist/ExtUtils-CBuilder directly<br/>cp lib/ExtUtils/CBuilder/Platform/aix.pm <br/>../../lib/ExtUtils/CBuilder/Platform/aix.pm<br/>cp lib/ExtUtils/CBuilder/Platform/Unix.pm <br/>../../lib/ExtUtils/CBuilder/Platform/Unix.pm<br/>cp lib/ExtUtils/CBuilder/Platform/dec_osf.pm <br/>../../lib/ExtUtils/CBuilder/Platform/dec_osf.pm<br/>cp lib/ExtUtils/CBuilder/Platform/android.pm <br/>../../lib/ExtUtils/CBuilder/Platform/android.pm<br/>cp lib/ExtUtils/CBuilder/Platform/darwin.pm <br/>../../lib/ExtUtils/CBuilder/Platform/darwin.pm<br/>cp lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm <br/>../../lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm<br/>cp lib/ExtUtils/CBuilder.pm ../../lib/ExtUtils/CBuilder.pm<br/>cp lib/ExtUtils/CBuilder/Platform/VMS.pm <br/>../../lib/ExtUtils/CBuilder/Platform/VMS.pm<br/>cp lib/ExtUtils/CBuilder/Platform/cygwin.pm <br/>../../lib/ExtUtils/CBuilder/Platform/cygwin.pm<br/>cp lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm <br/>../../lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm<br/>cp lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm <br/>../../lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm<br/>cp lib/ExtUtils/CBuilder/Platform/os2.pm <br/>../../lib/ExtUtils/CBuilder/Platform/os2.pm<br/>cp lib/ExtUtils/CBuilder/Platform/Windows.pm <br/>../../lib/ExtUtils/CBuilder/Platform/Windows.pm<br/>cp lib/ExtUtils/CBuilder/Base.pm ../../lib/ExtUtils/CBuilder/Base.pm<br/> Making ExtUtils::Command (all)<br/> <br/>Running pm_to_blib for dist/ExtUtils-Command directly<br/>cp lib/ExtUtils/Command.pm ../../lib/ExtUtils/Command.pm<br/> Making ExtUtils::Install (all)<br/><br/>Running pm_to_blib for dist/ExtUtils-Install directly<br/>cp lib/ExtUtils/Installed.pm ../../lib/ExtUtils/Installed.pm<br/>cp lib/ExtUtils/Install.pm ../../lib/ExtUtils/Install.pm<br/>cp lib/ExtUtils/Packlist.pm ../../lib/ExtUtils/Packlist.pm<br/> Making ExtUtils::Manifest (all)<br/><br/>Running pm_to_blib for dist/ExtUtils-Manifest directly<br/><br/>Creating Makefile.PL in dist/ExtUtils-Manifest for ExtUtils::Manifest<br/><br/>Running Makefile.PL in dist/ExtUtils-Manifest<br/>DKB1:[usr.robertson.WebDownloads.perl.perl-5^.20^.2.][000000]MINIPERL.EXE;2 <br/>&quot;-I../../lib&quot; &quot;Makefile.PL&quot; &quot;INST_LIB=[--.lib]&quot; &quot;INST_AR<br/>CHLIB=[--.lib]&quot; &quot;PERL_CORE=1&quot;<br/>Generating a MMK-style Descrip.MMS<br/>Writing Descrip.MMS for ExtUtils::Manifest<br/>Making all in dist/ExtUtils-Manifest<br/>MMK all /DESCRIPTION=descrip.mms /MACRO=(&quot;PERL_CORE=1&quot;)<br/>cp [.lib.ExtUtils]MANIFEST.SKIP [--.lib.ExtUtils]MANIFEST.SKIP<br/>cp [.lib.ExtUtils]Manifest.pm [--.lib.ExtUtils]Manifest.pm<br/> Making ExtUtils::ParseXS (all)<br/><br/>Running pm_to_blib for dist/ExtUtils-ParseXS directly<br/><br/>Creating Makefile.PL in dist/ExtUtils-ParseXS for ExtUtils::ParseXS<br/><br/>Running Makefile.PL in dist/ExtUtils-ParseXS<br/>DKB1:[usr.robertson.WebDownloads.perl.perl-5^.20^.2.][000000]MINIPERL.EXE;2 <br/>&quot;-I../../lib&quot; &quot;Makefile.PL&quot; &quot;INST_LIB=[--.lib]&quot; &quot;INST_AR<br/>CHLIB=[--.lib]&quot; &quot;PERL_CORE=1&quot;<br/>Generating a MMK-style Descrip.MMS<br/>Writing Descrip.MMS for ExtUtils::ParseXS<br/>Making all in dist/ExtUtils-ParseXS<br/>MMK all /DESCRIPTION=descrip.mms /MACRO=(&quot;PERL_CORE=1&quot;)<br/>%MMK-F-CANTUPD, cannot update target [.LIB.EXTUTILS]XSUBPP^.. - sources <br/>unknown<br/>%MMK-F-CANTUPD, cannot update target [.LIB.EXTUTILS]XSUBPP^.. - sources <br/>unknown<br/>Unsuccessful make(dist/ExtUtils-ParseXS): code=1024 at make_ext.pl line 561.<br/>%NONAME-F-NOMSG, Message number 0C14805C<br/>%MMK-F-ERRUPD, error status %X0C14805C occurred when updating target <br/>NONXSEXT<br/> ROBERTSON job terminated at 2-JUN-2015 10:20:50.81<br/><br/> Accounting information:<br/> Buffered I/O count: 66935 Peak working set <br/>size: 21104<br/> Direct I/O count: 48976 Peak virtual size: <br/>198240<br/> Page faults: 137869 Mounted <br/>volumes: 0<br/> Charged CPU time: 0 00:00:48.62 Elapsed time: 0 <br/>00:26:45.53<br/> http://www.nntp.perl.org/group/perl.vmsperl/2015/06/msg15679.html Tue, 02 Jun 2015 16:05:15 +0000 contact info for Brad Hughes? by Craig A. Berry The VMS::Lock module (&lt;http://search.cpan.org/~bhughes/VMS-Lock-1.02/&gt;) needs some TLC and both Carl Friedberg and I have made repeated attempts to contact its author Brad Hughes but can&#39;t find a working address. Does anyone know where he can be reached? <br/> <br/>________________________________________ <br/>Craig A. Berry <br/>mailto:craigberry@mac.com <br/> <br/>&quot;... getting out of a sonnet is much more <br/> difficult than getting in.&quot; <br/> Brad Leithauser <br/> <br/> http://www.nntp.perl.org/group/perl.vmsperl/2014/10/msg15678.html Thu, 30 Oct 2014 14:57:10 +0000 Perl 5.20.1 binary kits for OpenVMS available by Craig A. Berry Installation kits for OpenVMS Alpha and OpenVMS I64 v8.3 and later are available at: <br/> <br/>&lt;https://sourceforge.net/projects/vmsperlkit/files/&gt; <br/> <br/>The files are self-extracting archives and after downloading you must run them like so: <br/> <br/>$ run VMSPORTS-AXPVMS-PERL-V0520-1-1.SFX_AXPEXE <br/> <br/>for Alpha, and: <br/> <br/>$ run VMSPORTS-I64VMS-PERL-V0520-1-1.SFX_I64EXE <br/> <br/>for Itanium. Then, on either platform: <br/> <br/>$ product install perl <br/> <br/>and follow the usual installation prompts. <br/> <br/>Note that the kits provided here are intended to be a convenient way to acquire a default build; there are many other configuration options available if you build your own Perl from the source at &lt;http://www.cpan.org/src/5.0/perl-5.20.1.tar.gz&gt;. <br/> <br/>N.B. The version of CPAN.pm (the module that lets you install other modules) that ships with Perl 5.20.x is completely non-functional on VMS. The binary kits announced here include a patched version and those patches have been sent upstream to &lt;https://rt.cpan.org/Public/Bug/Display.html?id=98265&gt; but not yet included in a release. Don&#39;t upgrade your CPAN.pm without verifying that these problems have been fixed. <br/> <br/>Have an appropriate amount of fun. Anything related to these kits that turns out to be more fun than you can handle is probably best reported on the vmsperl mailing list.[1] <br/> <br/>Changes in this release can be found via typing &quot;perldoc perldelta&quot; after installation. <br/> <br/> <br/>[1] &lt;http://lists.perl.org/list/vmsperl.html&gt; <br/> <br/>________________________________________ <br/>Craig A. Berry <br/>mailto:craigberry@mac.com <br/> <br/>&quot;... getting out of a sonnet is much more <br/> difficult than getting in.&quot; <br/> Brad Leithauser <br/> <br/> http://www.nntp.perl.org/group/perl.vmsperl/2014/10/msg15677.html Tue, 14 Oct 2014 12:32:32 +0000 RE: Q: Can anyone explain this curious behaviour. by john.dite@compinia.de Hi,<br/><br/>again thanks for the replies to this thread.<br/><br/>The original OP was not about &quot;Unix/VMS error/exit codes&quot;, it was about <br/>the unexpected %SYSTEM-F-NOLOGNAM. The explanation given triggered<br/>some tests and examples shown for Linux and VMS, which included the exit <br/>codes.<br/><br/> From a perl viewpoint, I just expect one perl script to print the very <br/>same output no matter where it runs, especially as there is no OS <br/>specific code in the script.<br/><br/>As far as I understand, %ENV is or behaves like a perl hash. That is, <br/>&#39;defined $ENV{X}&#39; can be false and that is expected. But looking up a <br/>hash value should not cause any side effect. On VMS it does, so from my <br/>point of view the implementation of %ENV on VMS is incomplete, incorrect <br/>or broken.<br/><br/><br/>John<br/><br/> http://www.nntp.perl.org/group/perl.vmsperl/2014/08/msg15676.html Thu, 07 Aug 2014 08:18:12 +0000 Re: Q: Can anyone explain this curious behaviour. by Craig A. Berry <br/>On Aug 6, 2014, at 2:48 AM, john.dite@compinia.de wrote: <br/> <br/>&gt; To me the question is still, why is errno set on VMS for $s=$ENV{X} ? <br/> <br/>This is a reasonable question and I could be persuaded that our getenv() implementation should not set errno (even though it has for twenty years). If anyone knows about whether the standard changed at some point or whether setting errno was common for getenv() before it was standardized not to, that would be helpful. <br/> <br/>Everything else in your post simply ignores the documentation and the explanations I&#39;ve already given you. I don&#39;t really have anything to add. <br/> <br/>________________________________________ <br/>Craig A. Berry <br/>mailto:craigberry@mac.com <br/> <br/>&quot;... getting out of a sonnet is much more <br/> difficult than getting in.&quot; <br/> Brad Leithauser <br/> <br/> http://www.nntp.perl.org/group/perl.vmsperl/2014/08/msg15675.html Wed, 06 Aug 2014 13:13:02 +0000 Re: Q: Can anyone explain this curious behaviour. by John E. Malmberg On 8/6/2014 2:48 AM, john.dite@compinia.de wrote:<br/>&gt;<br/>&gt; Here my thoughts on the responses so far.<br/>&gt;<br/>&gt; &gt; What you&#39;ve actually demonstrated here is that the behaviour on Unix<br/>&gt; and VMS is equivalent. A die after a failed syscall (such as chdir)<br/>&gt; causes a generic failure status to be passed to the operating system<br/>&gt; when Perl exits.<br/>&gt;<br/>&gt; Hmm, on Linux I see $? as 2 which is not generic in my point of view.<br/>&gt; The %SYSTEM-F-ABORT looks generic and it is different from<br/>&gt; %RMS-E-DNF which from John M&#39;s reply indicates it is not severe enough.<br/>&gt;<br/>&gt; Fankly, I don&#39;t understand all this exit/return code mangling and I<br/>&gt; don&#39;t think a Perl script writer needs to.<br/><br/>The exit/return code encoding is required to comply with the VMS <br/>programing standard.<br/><br/>It is illegal on VMS to simply return the UNIX exit codes, and from a <br/>system manager&#39;s point of view it wrecks havoc with programs that <br/>monitor process accounting for unusual errors. And when I managed <br/>commercial systems, I used those programs extensively.<br/><br/>It is a mostly undocumented feature of the CRTL on the details how it <br/>encodes/decodes the values. So both the Perl VMS specific documentation <br/>and the GNV Bash VMS release notes document it.<br/><br/>That feature of the CRTL was implemented long after Perl was first <br/>ported to VMS, so originally Perl could not have taken advantage of it.<br/>So someone made the decision to just return SS$_ABORT for all <br/>non-success exit codes instead of violating the VMS programming standard.<br/><br/>With the traditional default VMS behavior, if you are in Perl and run a <br/>perl script as a subprocess, and it fails with a die or other error <br/>detected by Perl you get 42 or SYSTEM-F-ABORT returned to the parent as <br/>the exit code regardless of what the actual error is.<br/><br/>With PERL_VMS_POSIX_EXIT defined, in the Perl parent, you get the actual <br/>error code that the child exited with. Perl children processes then <br/>behave just like on Unix.<br/><br/>If you are executing Perl as a subprocess from any correctly built C <br/>program on VMS, including Perl, the PERL_VMS_POSIX_EXIT needs to be <br/>defined to get the correct exit code from the child.<br/><br/>Only VMS scripts like DCL or MMS/MMK or non-C programs need to be <br/>concerned with how to do the exit decoding to get the original value.<br/><br/>The only time PERL_VMS_POSIX_EXIT does not need to be defined is if you <br/>do not care what the actual exit reason is.<br/><br/>PERL_VMS_POSIX_EXIT is not a default when running under DCL so that <br/>existing DCL scripts that call perl scripts would not have to be changed.<br/><br/>IMHO, With Perl now being changed to support EFS character sets by <br/>default, it should also now default to PERL_VMS_POSIX_EXIT by default so <br/>that actual the die/exit status is not lost. Craig disagrees.<br/><br/>&gt; &gt; Changing our implementation so it doesn&#39;t set errno also wouldn&#39;t<br/>&gt; really help you because you&#39;d still get whatever random value was in<br/>&gt; vaxc$errno. Some of the time it would not be set and you&#39;d get the<br/>&gt; generic failure exit, but anything at all that sets errno could give you<br/>&gt; a surprise value that has nothing to do with your %ENV lookup.<br/>&gt;<br/>&gt; Another &quot;hmm&quot;, the value in vaxc$errno shouldn&#39;t be random, or? It<br/>&gt; should be the result of a CRTL function which sets it. But from my point<br/>&gt; of view it should be cleared or reset to the previous value of<br/>&gt; vaxc$errno, whenever a CRTL function is called to implement a Perl<br/>&gt; feature, which usually does not require a CRTL function to be called.<br/><br/>It is not really random, it is simply stale data.<br/><br/>The value of vaxc$errno is undefined unless errno is EVMSERR per the <br/>CRTL documentation.<br/><br/>The VMS specific code in Perl follows that and only updates vaxc$errno <br/>if it needs to set errno to EVMSERR, which is rare.<br/><br/>The code to lookup EVMSERR in Perl assumes that the Perl programmer <br/>knows that what they are getting is stale data if errno is not EVMSERR.<br/><br/>Out of time to deal with the rest right now.<br/><br/>Regards,<br/>-John<br/><br/> http://www.nntp.perl.org/group/perl.vmsperl/2014/08/msg15674.html Wed, 06 Aug 2014 12:48:33 +0000 RE: Q: Can anyone explain this curious behaviour. by john.dite@compinia.de Hi,<br/><br/>back from vacation.<br/>Thanks for all the responses.<br/><br/>Here my thoughts on the responses so far.<br/><br/> &gt; What you&#39;ve actually demonstrated here is that the behaviour on Unix <br/>and VMS is equivalent. A die after a failed syscall (such as chdir) <br/>causes a generic failure status to be passed to the operating system <br/>when Perl exits.<br/><br/>Hmm, on Linux I see $? as 2 which is not generic in my point of view. <br/>The %SYSTEM-F-ABORT looks generic and it is different from<br/>%RMS-E-DNF which from John M&#39;s reply indicates it is not severe enough.<br/><br/>Fankly, I don&#39;t understand all this exit/return code mangling and I <br/>don&#39;t think a Perl script writer needs to.<br/><br/> &gt; Changing our implementation so it doesn&#39;t set errno also wouldn&#39;t <br/>really help you because you&#39;d still get whatever random value was in <br/>vaxc$errno. Some of the time it would not be set and you&#39;d get the <br/>generic failure exit, but anything at all that sets errno could give you <br/>a surprise value that has nothing to do with your %ENV lookup.<br/><br/>Another &quot;hmm&quot;, the value in vaxc$errno shouldn&#39;t be random, or? It <br/>should be the result of a CRTL function which sets it. But from my point <br/>of view it should be cleared or reset to the previous value of <br/>vaxc$errno, whenever a CRTL function is called to implement a Perl <br/>feature, which usually does not require a CRTL function to be called.<br/><br/> &gt; The value you get is an accident resulting from whatever last set <br/>errno. This is true on any operating system. Here&#39;s bash on OS X:<br/> &gt;<br/> &gt; $ perl -e &#39;$! = 99; $s = $ENV{X} or die qq/no such environment <br/>variable: $!\n/;&#39;<br/> &gt; no such environment variable: Not a STREAM<br/> &gt; $ echo $?<br/> &gt; 99<br/><br/>I see a predictable behaviour. If I set #! to 99 it is still 99 after an <br/>attempt to retrieve a value from the hash. To me this demonstrates, that <br/>Perl on OS X doesn&#39;t show unwanted side effects as Perl on VMS does.<br/><br/> &gt; Since a lookup in %ENV is not a syscall, the value of errno is just <br/>whatever happens to be lying around and a call to die in these <br/>circumstances cannot produce a predictable exit status on any operating <br/>system (as indicated in the docs I quoted previously). In the specific <br/>case of an %ENV lookup, it&#39;s actually more predictable on VMS than it&#39;s <br/>supposed to be.<br/><br/>$ perl -e &quot;$s; defined $s or die &quot;&quot;undefined variable: &#39;$!, $^E&#39;\n&quot;&quot;&quot;<br/>undefined variable: &#39;, %SYSTEM-S-NORMAL, normal successful completion&#39;<br/>%SYSTEM-F-ABORT, abort<br/>$<br/><br/>To me the question is still, why is errno set on VMS for $s=$ENV{X} ?<br/><br/> &gt; use vmsish &#39;hushed&#39;;<br/><br/>I can even conditionalize that just for VMS or as has already been <br/>suggested clear $!, $^E and maybe even $?, which are all workarounds<br/>only required for VMS.<br/><br/>John<br/><br/> http://www.nntp.perl.org/group/perl.vmsperl/2014/08/msg15673.html Wed, 06 Aug 2014 07:48:17 +0000 Re: PERL_VMS_POSIX_EXIT (Re: Q: Can anyone explain this cursiousbehaviour.) by Craig A. Berry <br/>On Jul 22, 2014, at 10:18 PM, John E. Malmberg &lt;malmberg@Encompasserve.org&gt; wrote:<br/><br/>&gt; On 7/22/2014 7:13 AM, Craig A. Berry wrote:<br/>&gt;&gt; <br/>&gt;&gt; On Jul 21, 2014, at 7:41 PM, John E. Malmberg &lt;wb8tyw@qsl.net&gt; wrote:<br/>&gt;&gt; <br/>&gt;&gt;&gt; On 7/21/2014 7:06 PM, Craig A. Berry wrote:<br/>&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt; DECC$FILENAME_UNIX_REPORT has nothing at all to do with exit statuses.<br/>&gt;&gt; <br/>&gt;&gt; Well, I wouldn&#39;t think it did, but for some reason the two are wired together:<br/>&gt; <br/>&gt; The idea was that if you wanted UNIX filenames, you would also want UNIX exit statuses.<br/><br/>It&#39;s easy enough to ask for both, but if folks feel strongly it should stay the way it is, I&#39;ll leave it. If we separate them, we&#39;ll have to add posix exit to what gets turned on under bash, but that&#39;s easy to do.<br/>&gt; <br/>&gt;&gt; I think I&#39;m going to regard that as a bug and separate them.<br/>&gt; <br/>&gt; The logical GNV$UNIX_SHELL is defined when bash is running. It should be causing PERL_VMS_POSIX_EXIT to be in effect. That does not seem to be working on encompasserve.org.<br/><br/>Same bug as PERL_VMS_POSIX_EXIT:<br/><br/> gnv_unix_shell = 0;<br/> status = simple_trnlnm(&quot;GNV$UNIX_SHELL&quot;, val_str, sizeof(val_str));<br/> if ($VMS_STATUS_SUCCESS(status)) {<br/> gnv_unix_shell = 1;<br/><br/>If the length of the equivalence name is odd, then status will test as a successful VMS status and it will work. But that whole problem is now fixed in blead:<br/><br/>http://perl5.git.perl.org/perl.git/commitdiff/9bd30c63d934b70cf98e71983670d3e837ec38bb<br/><br/>I will try to get this into 5.20.1 but it will be in 5.22 in any case. Since &quot;bash&quot; has an even number of characters in it, I don&#39;t see a reasonable short-term workaround.<br/><br/>________________________________________<br/>Craig A. Berry<br/>mailto:craigberry@mac.com<br/><br/>&quot;... getting out of a sonnet is much more<br/> difficult than getting in.&quot;<br/> Brad Leithauser<br/><br/> http://www.nntp.perl.org/group/perl.vmsperl/2014/07/msg15672.html Wed, 23 Jul 2014 12:17:59 +0000 Re: PERL_VMS_POSIX_EXIT (Re: Q: Can anyone explain this cursiousbehaviour.) by John E. Malmberg On 7/22/2014 7:13 AM, Craig A. Berry wrote:<br/>&gt;<br/>&gt; On Jul 21, 2014, at 7:41 PM, John E. Malmberg &lt;wb8tyw@qsl.net&gt; wrote:<br/>&gt;<br/>&gt;&gt; On 7/21/2014 7:06 PM, Craig A. Berry wrote:<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; DECC$FILENAME_UNIX_REPORT has nothing at all to do with exit statuses.<br/>&gt;<br/>&gt; Well, I wouldn&#39;t think it did, but for some reason the two are wired together:<br/><br/>The idea was that if you wanted UNIX filenames, you would also want UNIX <br/>exit statuses.<br/><br/>&gt; I think I&#39;m going to regard that as a bug and separate them.<br/><br/>The logical GNV$UNIX_SHELL is defined when bash is running. It should <br/>be causing PERL_VMS_POSIX_EXIT to be in effect. That does not seem to <br/>be working on encompasserve.org.<br/><br/>Regards,<br/>-John<br/><br/> http://www.nntp.perl.org/group/perl.vmsperl/2014/07/msg15671.html Wed, 23 Jul 2014 03:19:58 +0000 Re: PERL_VMS_POSIX_EXIT (Re: Q: Can anyone explain this cursiousbehaviour.) by Craig A. Berry <br/>On Jul 21, 2014, at 7:41 PM, John E. Malmberg &lt;wb8tyw@qsl.net&gt; wrote:<br/><br/>&gt; On 7/21/2014 7:06 PM, Craig A. Berry wrote:<br/>&gt;&gt; <br/>&gt;&gt; DECC$FILENAME_UNIX_REPORT has nothing at all to do with exit statuses.<br/><br/>Well, I wouldn&#39;t think it did, but for some reason the two are wired together:<br/><br/> s = decc$feature_get_index(&quot;DECC$FILENAME_UNIX_REPORT&quot;);<br/> if (s &gt;= 0) {<br/> decc_filename_unix_report = decc$feature_get_value(s, 1);<br/> if (decc_filename_unix_report &gt; 0) {<br/> decc_filename_unix_report = 1;<br/> vms_posix_exit = 1;<br/> }<br/> else<br/> decc_filename_unix_report = 0;<br/> }<br/><br/>I think I&#39;m going to regard that as a bug and separate them.<br/><br/>&gt; <br/>&gt; The perlvms documentation needs to be updated.<br/>&gt; <br/>&gt; http://perldoc.perl.org/perlvms.html<br/>&gt; <br/>&gt; The PERL_VMS_POSIX_EXIT needed to be 1 to get it active. &quot;ENABLE&quot; did not work. Perl VMS documentation only mentions &quot;ENABLE&quot;<br/><br/>The problem is that for this feature and several others we have code that looks like:<br/><br/> status = simple_trnlnm<br/> (&quot;PERL_VMS_POSIX_EXIT&quot;, val_str, sizeof(val_str));<br/> if ($VMS_STATUS_SUCCESS(status)) {<br/><br/>but simple_trnlnm does not return a VMS status. It returns zero on failure or the length the equivalence name on success. &quot;1&quot; has an odd length and is considered a success; &quot;ENABLE&quot; has an even length and is considered a failure. That is definitely a bug, apparently one I introduced at &lt;http://perl5.git.perl.org/perl.git/commit/8dc9d3390b257b55ff81dfb908f4621b80760d78?f=vms/vms.c&gt;. Sorry about that. I will fix it soonish, possibly even in time for 5.20.1.<br/><br/><br/>________________________________________<br/>Craig A. Berry<br/>mailto:craigberry@mac.com<br/><br/>&quot;... getting out of a sonnet is much more<br/> difficult than getting in.&quot;<br/> Brad Leithauser<br/><br/> http://www.nntp.perl.org/group/perl.vmsperl/2014/07/msg15670.html Tue, 22 Jul 2014 12:14:05 +0000 Re: PERL_VMS_POSIX_EXIT (Re: Q: Can anyone explain this cursiousbehaviour.) by John E. Malmberg On 7/21/2014 7:06 PM, Craig A. Berry wrote:<br/>&gt;<br/>&gt; On Jul 20, 2014, at 3:50 PM, John E. Malmberg &lt;wb8tyw@qsl.net&gt; wrote:<br/>&gt;<br/>&gt;&gt; If you define PERL_VMS_POSIX_EXIT or DECC$FILENAME_UNIX_REPORT, it<br/>&gt;&gt; is supposed to behave the way that you would normally expect.<br/>&gt;<br/>&gt; That depends on what you normally expect. PERL_VMS_POSIX_EXIT should<br/>&gt; more or less give you posixish behavior regarding exit codes. I can&#39;t<br/>&gt; think of a good reason to enable it unless you are running under bash.<br/>&gt; DECC$FILENAME_UNIX_REPORT has nothing at all to do with exit statuses.<br/><br/>The perlvms documentation needs to be updated.<br/><br/>http://perldoc.perl.org/perlvms.html<br/><br/>The PERL_VMS_POSIX_EXIT needed to be 1 to get it active. &quot;ENABLE&quot; did <br/>not work. Perl VMS documentation only mentions &quot;ENABLE&quot;<br/><br/>&gt; Well it certainly does something:<br/>&gt;<br/>&gt; $ define PERL_VMS_POSIX_EXIT 1 $ perl -e &quot;$! = 66; die;&quot; Died at -e<br/>&gt; line 1. $ show symbol $status $STATUS == &quot;%X1035A212&quot;<br/>&gt;<br/>&gt; 66 is ENOTEMPTY. 66 might be embedded in that $STATUS value<br/>&gt; somewhere, transmogrified by various kinds of masking and shifting,<br/>&gt; but I&#39;m late for dinner and have no time to debug it at the moment.<br/><br/>$ x = %x212/8<br/>$ show sym x<br/> X = 66 Hex = 00000042 Octal = 00000000102<br/><br/>BASH-4.2$ alias perl=/perl_root/perl.exe<br/>BASH-4.2$ perl -e \<br/> &quot;\$s=\$ENV{X} or die \&quot;no such environment variable: &#39;\$!&#39;\n\&quot;&quot;<br/>no such environment variable: &#39;invalid argument&#39;<br/>BASH-4.2$ echo $?<br/>22<br/><br/>BASH-4.2$ perl -e \<br/> &quot;\$s=&#39;nosuchdir&#39;; chdir \$s or die \&quot;Can&#39;t cd to \$s: &#39;\$!&#39;\n\&quot;&quot;<br/>Can&#39;t cd to nosuchdir: &#39;no such file or directory&#39;<br/>BASH-4.2$ echo $?<br/>2<br/><br/>BASH-4.2$ uname -a<br/>OpenVMS EISNER 0 V8.3 AlphaServer_DS20_500_MHz Alpha Alpha HP/OpenVMS<br/><br/>Trying the DCL examples again:<br/><br/>$ perl -e &quot;$s=&#39;nosuchdir&#39;; chdir $s or die &quot;&quot;Can&#39;t cd to $s: &#39;$!, $^E&#39;\n&quot;&quot;&quot;<br/>Can&#39;t cd to nosuchdir: &#39;no such file or directory, %RMS-E-DNF, directory <br/>not found&#39;<br/>$ show sym $status<br/> $STATUS == &quot;%X1035A012&quot;<br/>$ unix = %x12/8<br/>$ show sym unix<br/> UNIX = 2 Hex = 00000002 Octal = 00000000002<br/><br/>$ perl -e &quot;$s=$ENV{X} or die &quot;&quot;no such environment variable: &#39;$!, $^E&#39;\n&quot;&quot;&quot;<br/>no such environment variable: &#39;invalid argument, %SYSTEM-F-NOLOGNAM, no <br/>logical name match&#39;<br/>$ show sym $status<br/> $STATUS == &quot;%X1035A0B2&quot;<br/>$ unix = %x0b2/8<br/>$ show sym unix<br/> UNIX = 22 Hex = 00000016 Octal = 00000000026<br/><br/>This feature setting also allows perl to spawn child perls and capture <br/>the original exit codes.<br/><br/>Regards,<br/>-John<br/><br/><br/> http://www.nntp.perl.org/group/perl.vmsperl/2014/07/msg15669.html Tue, 22 Jul 2014 00:42:43 +0000 PERL_VMS_POSIX_EXIT (Re: Q: Can anyone explain this cursiousbehaviour.) by Craig A. Berry <br/>On Jul 20, 2014, at 3:50 PM, John E. Malmberg &lt;wb8tyw@qsl.net&gt; wrote:<br/><br/>&gt; If you define PERL_VMS_POSIX_EXIT or DECC$FILENAME_UNIX_REPORT, it is supposed to behave the way that you would normally expect.<br/><br/>That depends on what you normally expect. PERL_VMS_POSIX_EXIT should more or less give you posixish behavior regarding exit codes. I can&#39;t think of a good reason to enable it unless you are running under bash. DECC$FILENAME_UNIX_REPORT has nothing at all to do with exit statuses.<br/><br/>&gt; From a quick test on Encompasserve with PERL 5.18, that feature does not appear to be working.<br/>&gt; <br/>&gt; When that feature is working from DCL scripts or Bash you can recover the original Unix error code unless it is a VMS specific error.<br/>&gt; <br/>&gt; I do not know why the PERL_VMS_POSIX_EXIT feature does not appear to be working, I have not built/tested perl on VMS for a few years.<br/><br/>Well it certainly does something:<br/><br/>$ define PERL_VMS_POSIX_EXIT 1<br/>$ perl -e &quot;$! = 66; die;&quot;<br/>Died at -e line 1.<br/>$ show symbol $status<br/> $STATUS == &quot;%X1035A212&quot;<br/><br/>66 is ENOTEMPTY. 66 might be embedded in that $STATUS value somewhere, transmogrified by various kinds of masking and shifting, but I&#39;m late for dinner and have no time to debug it at the moment.<br/><br/>________________________________________<br/>Craig A. Berry<br/>mailto:craigberry@mac.com<br/><br/>&quot;... getting out of a sonnet is much more<br/> difficult than getting in.&quot;<br/> Brad Leithauser<br/><br/> http://www.nntp.perl.org/group/perl.vmsperl/2014/07/msg15668.html Tue, 22 Jul 2014 00:07:08 +0000 Re: Q: Can anyone explain this cursious behaviour. by Craig A. Berry <br/>On Jul 20, 2014, at 2:52 PM, John Dite &lt;john.dite@compinia.de&gt; wrote:<br/><br/>&gt; Hi,<br/>&gt; <br/>&gt; first of all thanks for all the replies.<br/>&gt; <br/>&gt; Either I don&#39;t understand or it doesn&#39;t make sense to me.<br/><br/>OK, let me try again.<br/><br/>&gt; For example, with perl on Linux:<br/>&gt; <br/>&gt; $ perl -e &quot;\$s=&#39;nosuchdir&#39;; chdir \$s or die \&quot;Can&#39;t cd to \$s: &#39;\$!&#39;\n\&quot;&quot;<br/>&gt; Can&#39;t cd to nosuchdir: &#39;No such file or directory&#39;<br/>&gt; <br/>&gt; $ echo $?<br/>&gt; 2<br/>&gt; <br/>&gt; $ perl -e &quot;\$s=\$ENV{X} or die \&quot;no such environment variable: &#39;\$!&#39;\n\&quot;&quot;<br/>&gt; no such environment variable: &#39;&#39;<br/>&gt; <br/>&gt; $ echo $?<br/>&gt; 255<br/>&gt; <br/>&gt; $<br/>&gt; and &quot;equivalent scripts&quot; with perl on VMS:<br/>&gt; <br/>&gt; $ perl -e &quot;$s=&#39;nosuchdir&#39;; chdir $s or die &quot;&quot;Can&#39;t cd to $s: &#39;$!, $^E&#39;\n&quot;&quot;&quot;<br/>&gt; Can&#39;t cd to nosuchdir: &#39;no such file or directory, %RMS-E-DNF, directory<br/>&gt; not found&#39;<br/>&gt; %SYSTEM-F-ABORT, abort<br/>&gt; <br/>&gt; $ sh symbol $status<br/>&gt; <br/>&gt; $STATUS == &quot;%X0000002C&quot;<br/><br/>&gt; perl -e &quot;$s=$ENV{X} or die &quot;&quot;no such environment<br/>&gt; variable: &#39;$!, $^E&#39;\n&quot;&quot;&quot;<br/>&gt; no such environment variable: &#39;invalid argument, %SYSTEM-F-NOLOGNAM, no<br/>&gt; logical name match&#39;<br/>&gt; %SYSTEM-F-NOLOGNAM, no logical name match<br/>&gt; <br/>&gt; $ sho symbol $status<br/>&gt; $STATUS == &quot;%X000001BC&quot;<br/>&gt; $<br/><br/>What you&#39;ve actually demonstrated here is that the behavior on Unix and VMS is equivalent. A die after a failed syscall (such as chdir) causes a generic failure status to be passed to the operating system when Perl exits. A die under other circumstances (such as a failed lookup in %ENV, which is not a syscall) causes an exit status to be concocted from errno or vaxc$errno or fall back to some other generic value if errno is not set. <br/><br/>One difference on VMS is that it&#39;s no problem to pass a full 32-bit condition value to the operating system, whereas on Unix there is various masking and shifting going on to try to encode a meaningful status in 8 bits. I think in your example, the 255 you see on Unix is a fallback for when errno is not set. The details are at &lt;http://perl5.git.perl.org/perl.git/blob/maint-5.20:/perl.c#l4947&gt;.<br/><br/>&gt; and regarding<br/>&gt; <br/>&gt; 1.) A failed lookup in %ENV sets errno / vaxc$errno in our getenv<br/>&gt; implementation (specifically Perl_vmstrenv in [.vms]vms.c). This is<br/>&gt; normal and as it should be.<br/>&gt; <br/>&gt; 2.) die() (specifically Perl_my_failure_exit in perl.c) retrieves the<br/>&gt; most recent value of vaxc$errno and uses it as the VMS exit status. This<br/>&gt; is also normal behaviour.<br/>&gt; <br/>&gt; In the first example vaxc$errno was set to %RMS-E-DNF but $status is<br/>&gt; %SYSTEM-F-ABORT.<br/>&gt; <br/>&gt; In the second example, a usual, aka C, getenv() doesn&#39;t set errno. Why<br/>&gt; setting errno to EINVAL and vaxc$errno to NOLOGNAM &quot;is normal and as it<br/>&gt; should be&quot; for the VMS implementation is not obvious to me.<br/><br/>You raise an interesting point, which is why our getenv() implementation sets errno whereas apparently the standard does not specify any errno values for it. We actively suppress the errno it sets when we&#39;ve called it for our own internal purposes, but leave it alone when called as part of satisfying a user request. This may not be correct but it&#39;s been this way for decades so I&#39;d need to think long and hard about changing it. <br/><br/>Changing our implementation so it doesn&#39;t set errno also wouldn&#39;t really help you because you&#39;d still get whatever random value was in vaxc$errno. Some of the time it would not be set and you&#39;d get the generic failure exit, but anything at all that sets errno could give you a surprise value that has nothing to do with your %ENV lookup.<br/><br/>&gt; Anyway, in the second example I expected a more generic return/exit code<br/>&gt; like %SYSTEM-F-ABORT and not an implementation specific one like<br/>&gt; %SYSTEM-F-NOLOGNAM.<br/><br/>The value you get is an accident resulting from whatever last set errno. This is true on any operating system. Here&#39;s bash on OS X:<br/><br/>$ perl -e &#39;$! = 99; $s = $ENV{X} or die qq/no such environment variable: $!\n/;&#39;<br/>no such environment variable: Not a STREAM<br/>$ echo $?<br/>99<br/><br/>Since a lookup in %ENV is not a syscall, the value of errno is just whatever happens to be lying around and a call to die in these circumstances cannot produce a predictable exit status on any operating system (as indicated in the docs I quoted previously). In the specific case of an %ENV lookup, it&#39;s actually more predictable on VMS than it&#39;s supposed to be.<br/><br/>&gt; Whether DCL should inhibit the message or not is most probably a<br/>&gt; different question.<br/><br/>use vmsish &#39;hushed&#39;;<br/><br/>at the top of your code will inhibit the message if you wish.<br/><br/>&gt; <br/>&gt; Anyway I&#39;m off on vacation for the next 2 weeks, so don&#39;t expect any<br/>&gt; quick responses.<br/>&gt; <br/>&gt; John<br/>&gt; <br/><br/>________________________________________<br/>Craig A. Berry<br/>mailto:craigberry@mac.com<br/><br/>&quot;... getting out of a sonnet is much more<br/> difficult than getting in.&quot;<br/> Brad Leithauser<br/><br/> http://www.nntp.perl.org/group/perl.vmsperl/2014/07/msg15667.html Mon, 21 Jul 2014 12:26:11 +0000