gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, new-vms, updated. gawk-4.1.0-130-g4ea6e0


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, new-vms, updated. gawk-4.1.0-130-g4ea6e07
Date: Mon, 16 Dec 2013 20:36:10 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, new-vms has been updated
       via  4ea6e0780fbbd34d2f0d8e6b43c15c14d28b5d55 (commit)
      from  b754902e81384e9c66d022f31d01ed8de3b2ad4d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=4ea6e0780fbbd34d2f0d8e6b43c15c14d28b5d55

commit 4ea6e0780fbbd34d2f0d8e6b43c15c14d28b5d55
Author: Arnold D. Robbins <address@hidden>
Date:   Mon Dec 16 22:35:57 2013 +0200

    More VMS notes.

diff --git a/vms/vms-notes b/vms/vms-notes
index 312a562..2d57648 100644
--- a/vms/vms-notes
+++ b/vms/vms-notes
@@ -616,3 +616,533 @@ On 12/6/2013 7:20 PM, John E. Malmberg wrote:
 >>> -John
 >
 
+From address@hidden  Mon Dec 16 21:27:20 2013
+Return-Path: <address@hidden>
+Received: from skeeve.com (skeeve.com [127.0.0.1])
+       by skeeve.com (8.14.4/8.14.4/Debian-2ubuntu2.1) with ESMTP id 
rBGJQJfQ002202
+       for <address@hidden>; Mon, 16 Dec 2013 21:27:19 +0200
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       frenzy.freefriends.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW autolearn=ham
+       version=3.3.1
+X-Envelope-From: address@hidden
+X-Envelope-To: <address@hidden>
+Received: from frenzy.freefriends.org [66.54.153.139]
+       by skeeve.com with IMAP (fetchmail-6.3.21)
+       for <address@hidden> (single-drop); Mon, 16 Dec 2013 21:27:19 +0200 
(IST)
+Received: from mail-ie0-f173.google.com (mail-ie0-f173.google.com 
[209.85.223.173])
+       by freefriends.org (8.14.6/8.14.6) with ESMTP id rBG6Tatb002732
+       for <address@hidden>; Sun, 15 Dec 2013 23:29:39 -0700
+Received: by mail-ie0-f173.google.com with SMTP id to1so5932042ieb.4
+        for <address@hidden>; Sun, 15 Dec 2013 22:29:36 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20120113;
+        h=message-id:date:from:user-agent:mime-version:to:cc:subject
+         :content-type;
+        bh=ksiNjtwxRvh74kzY1LKaRL/l+Ja2PriUxgPwwm+Igho=;
+        b=BiJLgaDXXU4R0IwBKeNvon0qca3q3Le4HtVArPhKruA9rRhSqfVcTRHrQ8fF1r0f5h
+         N28vQidBEX3PNHi9k0uzfHF1sqT7LHGxOfSS/7ipk8UWoa4BVB3taSOFAAMzTkQUeduC
+         2RNaWLJHjFR4xRvkOwYqJPVikLyg2atmds6iLoxKOFbNCz+KUFQacDmaCLiibEg4pxV1
+         DsZWlBKLFrl8wXF5+gy3ZAj3FafIZluCgY5rUqrfXxrV9a7kumGrgljPG84MAOT01eCe
+         nXnlrhJgxIAjndT7sYPSYGZkeieSagmN57kRqefNkHk9PhdF5RbY3J0PBC7r0cJn/MKE
+         Uh0A==
+X-Received: by 10.50.154.102 with SMTP id vn6mr13663789igb.1.1387175375953;
+        Sun, 15 Dec 2013 22:29:35 -0800 (PST)
+Received: from [192.168.0.101] (173-19-202-206.client.mchsi.com. 
[173.19.202.206])
+        by mx.google.com with ESMTPSA id 
da14sm14704681igc.1.2013.12.15.22.29.33
+        for <multiple recipients>
+        (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
+        Sun, 15 Dec 2013 22:29:34 -0800 (PST)
+Message-ID: <address@hidden>
+Date: Mon, 16 Dec 2013 00:29:43 -0600
+From: John Malmberg <address@hidden>
+User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20130215 
Thunderbird/17.0.3
+MIME-Version: 1.0
+To: Aharon Robbins <address@hidden>
+CC: "John E. Malmberg" <address@hidden>
+Subject: Updates for gawktexi.in,readme.vms
+Content-Type: multipart/mixed;
+ boundary="------------040502020402090508010905"
+Status: RO
+X-Status: A
+
+This is a multi-part message in MIME format.
+--------------040502020402090508010905
+Content-Type: text/plain; charset=ISO-8859-1; format=flowed
+Content-Transfer-Encoding: 7bit
+
+Hello Arnold,
+
+These are the preliminary updates for the VMS documentation.
+
+I forgot to document (not sure where to put it)
+
+   *  The exit code reporting in GAWK is wrong and violates VMS
+      standards.  This is a common problem in older ports because
+      the exit() was not implemented correctly, and neither was
+      the rest of the C runtime.  Day 1 porting bug that was inevitable.
+
+      The first problem is that if I fix it to report the correct exit
+      status, it would break DCL procedures written to expect the
+      wrong value.
+
+      The second problem is that the new exit() call does not
+      allow setting the severity values and the existing gawk code
+      is setting them for tests to use.
+
+      Using reverse engineering, I have determined how to encode
+      the correct exit codes with severity into the old exit()
+      API.
+
+   If the shell is a UNIX shell:
+
+   *  The input parameters and options are handled the same as Unix.
+      (I have forgotten if I sent you that patch yet)
+
+   *  The exit codes are correct.  The DCL severity information
+      is also added even though most C programs will not use them.
+
+I do not know if would be permissible to change the behavior to always 
+use the correct exit code with the severity values set.
+
+Existing DCL code using the severity values would not notice this change.
+
+I would have to document how to convert UNIX exit codes to DCL values 
+for people to get the original codes back.
+
+
+
+In the documentation, I have been trying to change the case of the 
+filenames referenced in the VMS sections to be exact instead in upper case.
+
+
+In general, on the older ODS-2 VMS file system, the files were stored 
+and displayed in upper case.
+
+In the newer ODS-5 file system, filenames are stored in a case preserved 
+state and are when unpacked from a repository are still in lower case.
+
+The VMS DCL shell also has an optional mode /PARSE=EXTEND mode where it 
+handles those names.
+
+In the normal mode DCL converts all unquoted parameters to upper case, 
+and then the C runtime converts all unquoted parameters to lower case.
+A slight but significant difference.
+
+In the extended mode, DCL and the C runtime will also not do any 
+conversion of parameters.
+
+Which means that in extended mode, the target to the MMS or MMK program 
+needs to be in the exact case, or it may not be found.
+
+When you have an NFS mounted volume, like I do, things get a bit strange 
+on older VMS, like VAX/VMS, because it presents lower case filenames in 
+upper case, and uses the $ character to indicate when the case gets 
+inverted.
+
+Example:
+
+TOAD> dir src_root:[gawk.readme_d]readme.vms
+%DIRECT-E-OPENIN, error opening SRC_ROOT:[GAWK.README_D]README.VMS;* as 
+input
+
+TOAD> dir src_root:[gawk.$readme_$d]$readme.vms
+
+Directory SRC_ROOT:[GAWK.$README_$D]
+
+$README.VMS;1
+
+On current versions of VMS that support ODS-5, the exact case of the 
+files are seen.
+
+EAGLE> dir src_root:[gawk.readme_d]readme.vms
+
+Directory SRC_ROOT:[gawk.README_d]
+
+README.VMS;1
+
+This affects build procedures as they must look for both path names.
+
+Regards,
+-John
+
+--------------040502020402090508010905
+Content-Type: text/plain; charset=windows-1252;
+ name="gawktexti_in.gdiff"
+Content-Transfer-Encoding: 7bit
+Content-Disposition: attachment;
+ filename="gawktexti_in.gdiff"
+
+--- /src_root/gawk/doc/gawktexi.in     Fri Dec 13 17:43:41 2013
++++ /vms_root/gawk/doc/gawktexi.in     Sun Dec 15 23:28:13 2013
+@@ -32713,6 +32713,9 @@
+ @item
+ Prestandard VAX C compiler for VAX/VMS
+ 
address@hidden
++GCC for VAX and Alpha has not been tested for a while.
++
+ @end itemize
+ 
+ @end itemize
+@@ -33993,41 +33996,96 @@
+ @appendixsubsubsec Compiling @command{gawk} on VMS
+ @cindex compiling @command{gawk} for VMS
+ 
+-To compile @command{gawk} under VMS, there is a @code{DCL} command procedure 
that
+-issues all the necessary @code{CC} and @code{LINK} commands. There is
+-also a @file{Makefile} for use with the @code{MMS} utility.  From the source
+-directory, use either:
++To compile @command{gawk} under VMS, there is a @code{DCL} command procedure
++that issues all the necessary @code{CC} and @code{LINK} commands. There is
++also a @file{Makefile} for use with the @code{MMS} or @code{MMK} utility.
++From the source directory, use either:
+ 
+ @example
+-$ @kbd{@@[.VMS]VMSBUILD.COM}
++$ @kbd{@@[.vms]vmsbuild.com}
+ @end example
+ 
+ @noindent
+ or:
+ 
+ @example
+-$ @kbd{MMS/DESCRIPTION=[.VMS]DESCRIP.MMS GAWK}
++$ @kbd{MMS/DESCRIPTION=[.vms]descrip.mms gawk}
+ @end example
++or:
++
address@hidden
++$ @kbd{MMK/DESCRIPTION=[.vms]descrip.mms gawk}
address@hidden example
++
++The @code{MMK} is an open source freeware near clone of @code{MMS} and
++can better handle @code{ODS-5} volumes with upper and lower case filenames.
address@hidden is available from @url{https://github.com/endlesssoftware/mmk}.
++
++With @CODE{ODS-5} volumes and extended parsing enabled, the case of the target
++parameter may need to be exact.
+ 
+ Older versions of @command{gawk} could be built with VAX C or
+ GNU C on VAX/VMS, as well as with DEC C, but that is no longer
+ supported.  DEC C (also briefly known as ``Compaq C'' and now known
+ as ``HP C,'' but referred to here as ``DEC C'') is required.  Both
address@hidden and @code{DESCRIP.MMS} contain some obsolete support
address@hidden and @code{descrip.mms} contain some obsolete support
+ for the older compilers but are set up to use DEC C by default.
+ 
address@hidden has been tested under Alpha/VMS 7.3-1 using Compaq C V6.4,
+-and on Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS address@hidden IA64
+-architecture is also known as ``Itanium.''}
address@hidden has been tested under VAX/VMS 7.3 and Alpha/VMS 7.3-1
++using Compaq C V6.4, and Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS 8.3.
++Most recent builds are were using HP C V7.3 on Alpha VMS 8.3 and both
++Alpha and IA64 VMS 8.4 using HP C 7.3.
address@hidden IA64 architecture is also known as ``Itanium.''}
++
++Work is currently being done for a procedure to build @code{gawk} and create
++a PCSI kit for compatible with the GNV product.
++
address@hidden Compiling @command{gawk} Dynamic Extensions on VMS
++
++Dynamic extensions need to be compiled with the same compiler options for
++floating point, pointer size, and symbol name handling as @code{gawk}.
++Alpha and Itanium should use IEEE floating point.  The pointer size is 32 
bits,
++and the symbol name handling is to be exact case with CRC shortening for
++symbols longer than 32 bits.
++
++Alpha and Itanium:
++
address@hidden
++/name=(as_is,short)
++/float=ieee/ieee_mode=denorm_results
address@hidden example
++
++VAX:
++
address@hidden
++/name=(as_is,short)
address@hidden example
++
++Compile time macros needed to be defined before the first VMS supplied
++header file is included.
++
address@hidden
++#if (__CRTL_VER >= 70200000) && !defined (__VAX)
++#define _LARGEFILE 1
++#endif
++
++#ifndef __VAX
++#ifdef __CRTL_VER
++#if __CRTL_VER >= 80200000
++#define _USE_STD_STAT 1
++#endif
++#endif
++#endif
address@hidden example
+ 
+ @node VMS Installation Details
+ @appendixsubsubsec Installing @command{gawk} on VMS
+ 
+-To install @command{gawk}, all you need is a ``foreign'' command, which is
+-a @code{DCL} symbol whose value begins with a dollar sign. For example:
++To use @command{gawk}, all you need is a ``foreign'' command, which is a
address@hidden symbol whose value begins with a dollar sign. For example:
+ 
+ @example
+-$ @kbd{GAWK :== $disk1:[gnubin]GAWK}
++$ @kbd{GAWK :== $disk1:[gnubin]gawk}
+ @end example
+ 
+ @noindent
+@@ -34039,10 +34097,15 @@
+ @file{sylogin.com} procedure, which allows all users
+ to run @command{gawk}.
+ 
++If your @command{gawk} was installed by a PCSI kit into the
address@hidden:} directory tree, the program will be known as
address@hidden:[bin]gnv$gawk.exe} and the help file will be
address@hidden:[vms_help]gawk.hlp}.
++
+ Optionally, the help entry can be loaded into a VMS help library:
+ 
+ @example
+-$ @kbd{LIBRARY/HELP SYS$HELP:HELPLIB [.VMS]GAWK.HLP}
++$ @kbd{LIBRARY/HELP sys$help:helplib [.vms]gawk.hlp}
+ @end example
+ 
+ @noindent
+@@ -34106,6 +34169,19 @@
+ of @env{AWKPATH} is a comma-separated list of directory specifications.
+ When defining it, the value should be quoted so that it retains a single
+ translation and not a multitranslation @code{RMS} searchlist.
++
address@hidden VMS GNV
++
++The VMS GNV package provides a build environment similar to POSIX with ports
++of a collection of open source tools.  The @command{gawk} found in the GNV
++base kit is an older port.  Currently the GNV project is being reorganized
++to be individual PCSI packages for each component.
address@hidden://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}
++
++The normal build procedure @command{gawk} will produce a program that
++is suitable for use with GNV.  At this time work is being done to create
++the procedures for building a PCSI kit to replace the older @code{gawk}
++port.
+ 
+ @ignore
+ @c The VMS POSIX product, also known as POSIX for OpenVMS, is long defunct
+
+--------------040502020402090508010905
+Content-Type: text/plain; charset=windows-1252;
+ name="readme_vms.gdiff"
+Content-Transfer-Encoding: 7bit
+Content-Disposition: attachment;
+ filename="readme_vms.gdiff"
+
+--- /src_root/gawk/readme_d/README.VMS Fri Dec 13 17:43:41 2013
++++ /vms_root/gawk/readme_d/README.VMS Sun Dec 15 22:57:42 2013
+@@ -37,6 +37,38 @@
+ GAWK was originally ported for VMS V4.6 and up.  It has not been tested
+ with a release that old for some time.
+ 
++Compiling dynamic extensions on VMS:
++
++Dynamic extensions need to be compiled with the same compiler options for
++floating point, pointer size, and symbol name handling as gawk.
++Alpha and Itanium should use IEEE floating point.  The pointer size is 32 
bits,
++and the symbol name handling is to be exact case with CRC shortening for
++symbols longer than 32 bits.
++
++Alpha and Itanium:
++
++/name=(as_is,short)
++/float=ieee/ieee_mode=denorm_results
++
++VAX:
++
++/name=(as_is,short)
++
++Compile time macros needed to be defined before the first VMS supplied
++header file is included.
++
++#if (__CRTL_VER >= 70200000) && !defined (__VAX)
++#define _LARGEFILE 1
++#endif
++
++#ifndef __VAX
++#ifdef __CRTL_VER
++#if __CRTL_VER >= 80200000
++#define _USE_STD_STAT 1
++#endif
++#endif
++#endif
++
+ 
+ Installing GAWK on VMS:
+ 
+@@ -47,6 +79,10 @@
+ That symbol should be placed in the user's login.com or in the system-
+ wide sylogin.com procedure so that it will be defined every time the
+ user logs on.
++
++If your gawk was installed by a PCSI kit into the GNV$GNU: directory tree,
++the program will be known as GNV$GNU:[bin]gnv$gawk.exe and the help file
++will be GNV$GNU:[vms_help]gawk.hlp.
+ 
+      Optionally, the help entry can be loaded into a VMS help library.
+  |$ LIBRARY/HELP SYS$HELP:HELPLIB [.VMS]GAWK.HLP
+
+--------------040502020402090508010905--
+
+From address@hidden  Wed Dec 11 20:03:44 2013
+Return-Path: <address@hidden>
+Received: from skeeve.com (skeeve.com [127.0.0.1])
+       by skeeve.com (8.14.4/8.14.4/Debian-2ubuntu2.1) with ESMTP id 
rBBI3gNX002464
+       for <address@hidden>; Wed, 11 Dec 2013 20:03:43 +0200
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       frenzy.freefriends.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM
+       autolearn=ham version=3.3.1
+X-Envelope-From: address@hidden
+X-Envelope-To: <address@hidden>
+Received: from frenzy.freefriends.org [66.54.153.139]
+       by skeeve.com with IMAP (fetchmail-6.3.21)
+       for <address@hidden> (single-drop); Wed, 11 Dec 2013 20:03:43 +0200 
(IST)
+Received: from Encompasserve.org (Eisner.encompasserve.org [67.53.90.116])
+       by freefriends.org (8.14.6/8.14.6) with ESMTP id rBB5jaW9020988
+       for <address@hidden>; Tue, 10 Dec 2013 22:45:40 -0700
+Received: from [192.168.0.101]
+ (173-19-202-206.client.mchsi.com [173.19.202.206])
+ by Encompasserve.org (PMDF V6.6 #13031)
+ with ESMTPSA id <address@hidden> for address@hidden;
+ Tue, 10 Dec 2013 23:45:35 -0600 (CST)
+Date: Tue, 10 Dec 2013 23:45:36 -0600
+From: "John E. Malmberg" <address@hidden>
+Subject: Re: Some questions...
+In-reply-to: <address@hidden>
+To: Aharon Robbins <address@hidden>
+Cc: address@hidden
+Message-id: <address@hidden>
+MIME-version: 1.0
+Content-type: text/plain; charset=ISO-8859-1; format=flowed
+Content-transfer-encoding: 7BIT
+User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20130215
+ Thunderbird/17.0.3
+References: <address@hidden> <address@hidden>
+Status: R
+
+On 12/10/2013 10:26 PM, Aharon Robbins wrote:
+> Hi. Some questions about your changes.
+>
+> 1. I notice that there is at least one instance of #if __VMS, where as
+> it seems most code uses #if VMS.  Is that on purpose?  If not, which
+> is correct?
+
+VMS is a macro historically pre-defined by C compilers on C before the 
+ANSI rules.
+
+Under strict ANSI rules, a standards compliant compiler is not allowed 
+to pre-define macros that are not prefixed by "__".
+
+Which means that you can not count on the VMS macro being defined unless 
+you do it yourself.
+
+So __VMS is the ANSI correct definition.  But it would be a lot of work 
+to change all the code.
+
+The vms_config.h that is now generated has these lines in it to make 
+sure that VMS is defined.
+
+#ifdef __VMS  /* ANSI compliant */
+#ifndef VMS /* PRE-ansi */
+#define VMS 1
+#endif
+#endif
+
+This may be needed for other architectures.  It only shows up as an 
+issue if you set a "strict" compliance flag on the compile command.
+
+> 2. For the include of the main wrapper.  Gawk already has a routine
+> os_arg_fixup which is intended to manipulate argc and argv as needed
+> by an OS-specific routine before main() parses it.  A quick look at
+> the wrapper looks to me like it could be made to fit within that framework,
+> which would keep #if and the include out of the mainline code.
+
+I can look at that.  I can also look to see if I can move the logic from 
+vms_crtl_init.c into it in a way that would sidestep that it has no 
+copyright notice at all.  The result would be code that is almost 
+identical to code that is in the official Perl distribution.
+
+GNV was started as a user project and when the VMS POSIX product was 
+dropped and they needed a Unix like environment, Digital took over the 
+GNV product, but did not really do much to keep it up to date.
+
+The routine in vms_crtl_init.c is actually called before main() is 
+called, so just linking a module with it in is all that it takes to 
+activate the change.  Unfortunately I do not know how to get it to 
+magically fix up the argv array.
+
+> If that looks reasonable to you, can you make that change?  You can send
+> it as a diff against what you currently have already done.
+
+I will look at it tomorrow night.  I also found another change needed 
+for vms_args.c to work properly under a bash shell.
+
+> I'm sorry about the hassle on the copyrights, but I really have to play
+> this game by the FSF rules.  I hope we can get it clarified soon
+> so that I can include the files in the dist.
+
+I hope so.  I have not seen a reply from Karl yet.  He did say that 
+there are other options.
+
+This would clear the way for getting the similar code accepted into the 
+Bash and coreutils repositories.  I have a report that the first bash 
+4.3 beta built on VMS and looked real good on the test run.
+
+I am currently working on adapting the packaging scripts from bash and 
+coreutils to gawk.  Each product has had it unique features, so I have 
+not yet come up with a generic set of scripts.
+
+This is a preview what will be coming:
+
+backup_gawk_src.com - Builds a VMS equivalent to tar archive.  By 
+placing the source in the PCSI kit, it covers the requirement of 
+providing source somewhere with the binary.
+
+build_gawk_pcsi_desc.com - Creates a VMS PCSI package manifest file.
+
+build_gawk_pcsi_text.com - text output by the VMS PCSI package installer.
+
+compare_gawk_source.com - I have the source checked out on an NFS 
+server.  The backup program needs me to copy it to a VMS volume first. 
+This procedure makes sure that the two copies are the same and ready for 
+backup.
+
+gawk_alias_setup.com - Sets up gawk and awk links to gnv$gawk.exe. 
+Needed to repair when sins of the past partially break an install.
+
+gawk_verb.cld - for gawk to use gnv$gawk.exe as an image.  Different 
+than gawk.cld.  To properly add an image to the VMS command table, it 
+needs a prefix.  I have "GNV$" registered as a prefix for this purpose.
+
+gnv_gawk_kit_name.com - Calculates the VMS PCSI package name, used for 
+both file names and file contents.
+
+gnv_gawk_startup.com - Run at VMS startup to make sure that the 
+environment is set up properly for gawk.
+
+pcsi_gawk_file_list.txt - Source file for build_gawk_pcsi_desc.com.
+
+remove_old_gawk.com - Needed to properly clean up sins of the past. 
+Only touches the the GNV provided gawk and awk programs.
+
+stage_gawk_install.com - Does a pre-install into a fake "root" directory 
+tree for the kitting procedure to pull files out of.
+
+Regards,
+-John
+

-----------------------------------------------------------------------

Summary of changes:
 vms/vms-notes |  530 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 530 insertions(+), 0 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]