From MAILER-DAEMON Sat Apr 01 00:54:06 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuB38-0004cB-9g for mharc-bug-gawk@gnu.org; Sat, 01 Apr 2017 00:54:06 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56077) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuB35-0004c1-Ch for bug-gawk@gnu.org; Sat, 01 Apr 2017 00:54:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cuB30-0007O0-Ho for bug-gawk@gnu.org; Sat, 01 Apr 2017 00:54:03 -0400 Received: from resqmta-ch2-09v.sys.comcast.net ([69.252.207.41]:48956) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cuB30-0007N2-CK for bug-gawk@gnu.org; Sat, 01 Apr 2017 00:53:58 -0400 Received: from resomta-ch2-01v.sys.comcast.net ([69.252.207.97]) by resqmta-ch2-09v.sys.comcast.net with SMTP id uB20cUPKiQe9cuB20cBW0n; Sat, 01 Apr 2017 04:52:56 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20161114; t=1491022376; bh=qin5vGSU5YQ4nZB2DYI0IM31/BmZy2CGr4dRB3tVrUw=; h=Received:Received:To:From:Subject:Message-ID:Date:MIME-Version: Content-Type; b=gVo6/h26Z8aiECpaHfrDH2brKArxajm2XMChbdGqFf0G/MFoTtups94UFty4oLpLP sNDORWcd1rje3RqJKBy99fzMtnMxtJqpnA77p93ofTf2eqZEC2p3ybvhwo2Dnum8yM P3IOU76HjDXqCqWptUJCLTgvgTQ4WG/lLl7OMDp3+Y23127glEYZRXKAwoaRwKGIEA /GKs5I2s/FvPC6vZ2J5rHJl0ML1vdWSH3X7oUJcoaLzRGJ7kgt8gORaFyurqX+Iuyp 4iWjURzhoEkQK8lB8e/xpKvHBHkKmiEeTAlCamaH8PxcbSa4iJLLtcMXIMBpctvHfU Q/uO0bi9T8ImA== Received: from [192.168.1.102] ([98.220.194.177]) by resomta-ch2-01v.sys.comcast.net with SMTP id uB1zcfWqCY10NuB20cq2Xt; Sat, 01 Apr 2017 04:52:56 +0000 To: bug-gawk@gnu.org From: Ed Morton Message-ID: Date: Fri, 31 Mar 2017 23:52:29 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Antivirus: Avast (VPS 170331-1, 03/31/2017), Outbound message X-Antivirus-Status: Clean X-CMAE-Envelope: MS4wfAZ0sirS/uMRCLNzkAs0rB/bltODnEav9sBt3JONwXiTlQHhcsEfkGHPYhJGjlKi2FEyvZYb0n5v40hjxpbQ17sHunr0a3irZHO5qmCu3adq7UmFNVNJ 2NjfLD/FAhRQnSzw7nTf+5Pu19DQ1/QZ9IE7wGhiad/vk2X+HJrvTcAWBaohK68+w8jmWkV3npML3Q== X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 69.252.207.41 Subject: [bug-gawk] FPAT bug? X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2017 04:54:04 -0000 Is this a bug? $ cat tst.awk BEGIN { FPAT="[^,]*" } { print NF, $0 for (i=1;i<=NF;i++) print "\t" i, "[" $i "]" print "" } $ cat -v file.csv ,,3 ,,3 $ awk -f tst.awk file.csv 3 ,,3 1 [] 2 [] 3 [3] 2 ,,3 1 [] 2 [3] Note that awk recognizes 3 fields in the first line but only 2 in the second. If it's not a bug - what's causing that behavior? $ gawk --version GNU Awk 4.1.4, API: 1.1 (GNU MPFR 3.1.5, GNU MP 6.1.2) Copyright (C) 1989, 1991-2016 Free Software Foundation. $ $SHELL --version GNU bash, version 4.4.12(3)-release (x86_64-unknown-cygwin) Copyright (C) 2016 Free Software Foundation, Inc. Regards, Ed. From MAILER-DAEMON Sat Apr 01 09:57:22 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuJWs-00069r-43 for mharc-bug-gawk@gnu.org; Sat, 01 Apr 2017 09:57:22 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54685) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuJWq-00068c-Fr for bug-gawk@gnu.org; Sat, 01 Apr 2017 09:57:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cuJWn-0004K6-BS for bug-gawk@gnu.org; Sat, 01 Apr 2017 09:57:20 -0400 Received: from gw3a.telemetry-investments.com ([38.76.0.51]:35682 helo=sv3.telemetry-investments.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuJWn-0004Jp-6A for bug-gawk@gnu.org; Sat, 01 Apr 2017 09:57:17 -0400 Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129]) by sv3.telemetry-investments.com (Postfix) with ESMTP id F0113213; Sat, 1 Apr 2017 09:57:15 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telemetry-investments.com; s=tele1409; t=1491055036; bh=S6edeBOiiSOCdh8ZilqWUFUnn34Y/S5LUy//N88ipwo=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=Ao7/23hqa3Oh8QlyWJH1Ht8sttVq0QyBht/D5mGbY+OX6HwzuqFGZ1vCiN8QiB1Ip fGuEBjunxHEjTUS5KCt27MgPZvYpubNce+tt+YZkdnWu94o1E61mfOIWELYS/ois/X FmxluiO/nxnSpB5CWqAmFYyU+AoAbtx+5iZTCmOU= Received: by ti129.telemetry-investments.com (Postfix, from userid 300) id C8D96335; Sat, 1 Apr 2017 09:57:15 -0400 (EDT) Date: Sat, 1 Apr 2017 09:57:15 -0400 From: "Andrew J. Schorr" To: Ed Morton Cc: bug-gawk@gnu.org Message-ID: <20170401135715.GA24807@ti129.telemetry-investments.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 38.76.0.51 Subject: Re: [bug-gawk] FPAT bug? X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2017 13:57:21 -0000 On Fri, Mar 31, 2017 at 11:52:29PM -0500, Ed Morton wrote: > Is this a bug? Yes. It is a regression in 4.1.4. > $ cat tst.awk > BEGIN { FPAT="[^,]*" } > { > print NF, $0 > for (i=1;i<=NF;i++) > print "\t" i, "[" $i "]" > print "" > } > > $ cat -v file.csv > ,,3 > ,,3 > > $ awk -f tst.awk file.csv > 3 ,,3 > 1 [] > 2 [] > 3 [3] > > 2 ,,3 > 1 [] > 2 [3] > > Note that awk recognizes 3 fields in the first line but only 2 in > the second. If it's not a bug - what's causing that behavior? This worked OK in 4.1.3, but is broken in 4.1.4. It is related to this ChangeLog entry: 2015-09-18 Arnold D. Robbins * field.c (fpat_parse_field): Always use rp->non_empty instead of only if in_middle. The latter can be true even if we've already parsed part of the record. Thanks to Ed Morton for the bug report. diff --git a/field.c b/field.c index 6a7c6b1..ed31098 100644 --- a/field.c +++ b/field.c @@ -1598,9 +1598,8 @@ fpat_parse_field(long up_to, /* parse only up to this field number */ if (in_middle) { regex_flags |= RE_NO_BOL; - non_empty = rp->non_empty; - } else - non_empty = false; + } + non_empty = rp->non_empty; eosflag = false; need_to_set_sep = true; Reversing this patch fixes the bug, but reintroduces the bug that was fixed by this patch. :-) Here's the test case for that bug: ==> test/fpat5.awk <== BEGIN { FPAT = "([^,]*)|(\"[^\"]+\")" OFS = ";" } p != 0 { print NF } { $1 = $1 ; print } ==> test/fpat5.in <== "A","B","C" ==> test/fpat5.ok <== "A";"B";"C" *** fpat5.ok 2017-01-26 13:52:53.285369000 -0500 --- _fpat5 2017-04-01 09:55:20.122459000 -0400 *************** *** 1 **** ! "A";"B";"C" --- 1 ---- ! "A";;"B";"C" Arnold? Regards, Andy From MAILER-DAEMON Sat Apr 01 11:24:28 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuKtA-0001cK-IO for mharc-bug-gawk@gnu.org; Sat, 01 Apr 2017 11:24:28 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56757) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuKt8-0001cD-2w for bug-gawk@gnu.org; Sat, 01 Apr 2017 11:24:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cuKt4-0003e0-TL for bug-gawk@gnu.org; Sat, 01 Apr 2017 11:24:26 -0400 Received: from resqmta-ch2-02v.sys.comcast.net ([69.252.207.34]:54736) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cuKt4-0003dJ-MN for bug-gawk@gnu.org; Sat, 01 Apr 2017 11:24:22 -0400 Received: from resomta-ch2-06v.sys.comcast.net ([69.252.207.102]) by resqmta-ch2-02v.sys.comcast.net with SMTP id uKrCcg9G4BHfPuKs5cFnnK; Sat, 01 Apr 2017 15:23:21 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20161114; t=1491060201; bh=95ycD4Qe203HGBIZgBFG9p6KUSe1gU+9Om/jmulv6l0=; h=Received:Received:Subject:To:From:Message-ID:Date:MIME-Version: Content-Type; b=lHufZP73P5dXEi65OGx7lKAgfcH8OSXuIfi3IosU6FJL2BSl1p0257Y2oi1BML24o t2hEz2y3BEhKR83riAPk8if9VS/AXRmuI2KFITBIUBADNOPQRhKQAxS9rdEHDSk3h1 gCNYWwZmayL0bUTA7ZGd+Z0BspYOqn83A2HJXartG3xDbQlQX1ThDp8KhAb0TCS6WT TYGg2/l+Gz9VPaWSuZI3PkLmsUM7jo5QJAb/QMeUiEm8U9VncHFpl1IMhLOVe18K9i Kr+YIZboWJUZ6UayrynNAuuwHaUMBgqrETKd4zcg4rAF1ffbVM5Nr69/SQVl/ncipf 12/UPVGXSKhrQ== Received: from [192.168.1.102] ([98.220.194.177]) by resomta-ch2-06v.sys.comcast.net with SMTP id uKs5c0i3YeyvGuKs5cGtC2; Sat, 01 Apr 2017 15:23:21 +0000 To: bug-gawk@gnu.org References: From: Ed Morton Message-ID: <709fddb1-661a-9991-d391-0c58b7c72589@comcast.net> Date: Sat, 1 Apr 2017 10:22:54 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Antivirus: Avast (VPS 170331-1, 03/31/2017), Outbound message X-Antivirus-Status: Clean X-CMAE-Envelope: MS4wfM+sSnHOiYIQEdhsENcTCNO6m0o+VuX7Zpo7VxydgfK4UShNZGnRIGyZEgaMmaQawNx97RxbCjpzJLkbdz3RxC3w2eed4wDdBkfFlcDknXHOhHY6X8MX cbHb6rawf8RbSSAF4N8NQG/aodB9jcndTVjkGyA8ZG7RVnnboC6InY9Vg5Pp4vwDyyeBSYgCCF1TZQ== X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 69.252.207.34 Subject: Re: [bug-gawk] FPAT bug? X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2017 15:24:27 -0000 FYI someone else with a slightly older gawk gets what (to me at least) is the expected output: I get a different result here... 3 ,,3 1 [] 2 [] 3 [3] 3 ,,3 1 [] 2 [] 3 [3] $ awk --version GNU Awk 4.1.2, API: 1.1 (GNU MPFR 3.1.0-p3, GNU MP 5.0.2) Copyright (C) 1989, 1991-2015 Free Software Foundation. On 3/31/2017 11:52 PM, Ed Morton wrote: > Is this a bug? > > $ cat tst.awk > BEGIN { FPAT="[^,]*" } > { > print NF, $0 > for (i=1;i<=NF;i++) > print "\t" i, "[" $i "]" > print "" > } > > $ cat -v file.csv > ,,3 > ,,3 > > $ awk -f tst.awk file.csv > 3 ,,3 > 1 [] > 2 [] > 3 [3] > > 2 ,,3 > 1 [] > 2 [3] > > Note that awk recognizes 3 fields in the first line but only 2 in the second. > If it's not a bug - what's causing that behavior? > > $ gawk --version > GNU Awk 4.1.4, API: 1.1 (GNU MPFR 3.1.5, GNU MP 6.1.2) > Copyright (C) 1989, 1991-2016 Free Software Foundation. > > $ $SHELL --version > GNU bash, version 4.4.12(3)-release (x86_64-unknown-cygwin) > Copyright (C) 2016 Free Software Foundation, Inc. > > Regards, > > Ed. From MAILER-DAEMON Sat Apr 01 11:30:22 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuKys-0002cB-8I for mharc-bug-gawk@gnu.org; Sat, 01 Apr 2017 11:30:22 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59177) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuKyq-0002c1-0U for bug-gawk@gnu.org; Sat, 01 Apr 2017 11:30:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cuKym-0008Rl-RI for bug-gawk@gnu.org; Sat, 01 Apr 2017 11:30:20 -0400 Received: from resqmta-ch2-02v.sys.comcast.net ([69.252.207.34]:57038) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cuKym-0008R6-Ly for bug-gawk@gnu.org; Sat, 01 Apr 2017 11:30:16 -0400 Received: from resomta-ch2-04v.sys.comcast.net ([69.252.207.100]) by resqmta-ch2-02v.sys.comcast.net with SMTP id uKw6cg9diBHfPuKxncFtov; Sat, 01 Apr 2017 15:29:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20161114; t=1491060555; bh=klF2/j81nbUq21FQwfEuCZW3TofzQKbylaqekHvVp3k=; h=Received:Received:Subject:To:From:Message-ID:Date:MIME-Version: Content-Type; b=b7vWxU5UmUdBkDoRlp7aQNrSIZWQlhERfRbpETU7sLY+9Ma4hAzVxTszZnCBn9pot YJ6gxi8LwOEGwOy/eBA8fIja11KZyZzyibrmQHWgR70YJcD1sO+bhYYwzYKmdh1v1B EECyBEyxRaMzAUihE4uTw9Zas3AfxMGc73vb0Z/P5PCxKb45KV8Tc5GX9dXV397Spt x7vfhnv0HcfvVnoGRRN0E8g1V3Kb4s8R+SCjv+oB9IKthyC7iGrTxNZsSaBpG2jYZS OsFOyoWIE5vaibCZ70nWLd2L/Mf9IKlJfNk30mXLjgrH8FayjjW0e+kSty4U0ld3D3 5zp5nhEYXFnJQ== Received: from [192.168.1.102] ([98.220.194.177]) by resomta-ch2-04v.sys.comcast.net with SMTP id uKxmc172qFcZ2uKxmc6LkV; Sat, 01 Apr 2017 15:29:15 +0000 To: "Andrew J. Schorr" References: <20170401135715.GA24807@ti129.telemetry-investments.com> Cc: bug-gawk@gnu.org From: Ed Morton Message-ID: <96d214a7-177c-392b-31a4-8da4dcc0b14a@comcast.net> Date: Sat, 1 Apr 2017 10:28:47 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170401135715.GA24807@ti129.telemetry-investments.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Antivirus: Avast (VPS 170331-1, 03/31/2017), Outbound message X-Antivirus-Status: Clean X-CMAE-Envelope: MS4wfDTpyl0C+OR26Cku0LTKwDvLDY4tWVLMx0sG9CDRZkaX3wmC7rjqDkGuAuwi+RSeDk3NDgXx7nHYaOLrr4RXPRxWu9CE4aMkUGR1NdRb0+d6LbOK+to3 2oECyWHcOpvQwi/s/XPxxYI606dIMxeV4yfP6WtJKTBGo013gAozQ4MtjxrGTGUItMh6pPewvLPmi4jBKv/CZ+1gRJt60p0vTo3cGQGvK8bBPDBdAENTa60F X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 69.252.207.34 Subject: Re: [bug-gawk] FPAT bug? X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2017 15:30:21 -0000 OK, thanks for the update! On 4/1/2017 8:57 AM, Andrew J. Schorr wrote: > On Fri, Mar 31, 2017 at 11:52:29PM -0500, Ed Morton wrote: >> Is this a bug? > Yes. It is a regression in 4.1.4. > >> $ cat tst.awk >> BEGIN { FPAT="[^,]*" } >> { >> print NF, $0 >> for (i=1;i<=NF;i++) >> print "\t" i, "[" $i "]" >> print "" >> } >> >> $ cat -v file.csv >> ,,3 >> ,,3 >> >> $ awk -f tst.awk file.csv >> 3 ,,3 >> 1 [] >> 2 [] >> 3 [3] >> >> 2 ,,3 >> 1 [] >> 2 [3] >> >> Note that awk recognizes 3 fields in the first line but only 2 in >> the second. If it's not a bug - what's causing that behavior? > This worked OK in 4.1.3, but is broken in 4.1.4. It is related to this > ChangeLog entry: > > 2015-09-18 Arnold D. Robbins > > * field.c (fpat_parse_field): Always use rp->non_empty instead > of only if in_middle. The latter can be true even if we've > already parsed part of the record. Thanks to Ed Morton > for the bug report. > > diff --git a/field.c b/field.c > index 6a7c6b1..ed31098 100644 > --- a/field.c > +++ b/field.c > @@ -1598,9 +1598,8 @@ fpat_parse_field(long up_to, /* parse only up to this field number */ > > if (in_middle) { > regex_flags |= RE_NO_BOL; > - non_empty = rp->non_empty; > - } else > - non_empty = false; > + } > + non_empty = rp->non_empty; > > eosflag = false; > need_to_set_sep = true; > > Reversing this patch fixes the bug, but reintroduces the bug that > was fixed by this patch. :-) Here's the test case for that bug: > > ==> test/fpat5.awk <== > BEGIN { > FPAT = "([^,]*)|(\"[^\"]+\")" > OFS = ";" > } > > p != 0 { print NF } > > { $1 = $1 ; print } > > ==> test/fpat5.in <== > "A","B","C" > > ==> test/fpat5.ok <== > "A";"B";"C" > > > *** fpat5.ok 2017-01-26 13:52:53.285369000 -0500 > --- _fpat5 2017-04-01 09:55:20.122459000 -0400 > *************** > *** 1 **** > ! "A";"B";"C" > --- 1 ---- > ! "A";;"B";"C" > > Arnold? > > Regards, > Andy > From MAILER-DAEMON Sat Apr 01 13:09:02 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuMWL-0004FF-Vl for mharc-bug-gawk@gnu.org; Sat, 01 Apr 2017 13:09:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39977) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuMWF-0004EA-Qg for bug-gawk@gnu.org; Sat, 01 Apr 2017 13:08:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cuMWB-0004oV-4d for bug-gawk@gnu.org; Sat, 01 Apr 2017 13:08:55 -0400 Received: from gw3a.telemetry-investments.com ([38.76.0.51]:36722 helo=sv3.telemetry-investments.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuMWA-0004n4-Vr for bug-gawk@gnu.org; Sat, 01 Apr 2017 13:08:51 -0400 Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129]) by sv3.telemetry-investments.com (Postfix) with ESMTP id 62FC21EB; Sat, 1 Apr 2017 13:08:48 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telemetry-investments.com; s=tele1409; t=1491066528; bh=erxqL7Y//Vywcgqau5LVUR0z2iZhPtDoCFFkd/23bM0=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=UUCbTcHDy9TvJ2IpsgsNSobetklR2TkVWB7q+raq7XjUDmve3+disD3xB9cLsfNKy VtYMU5KDty2psQPEAto+hyzgrLItCoHJhHucKzzbIzKMxdENTsTGRrhFzHD0LCwMbb PzrBrk4ZaJe0+PiStnZpD5n0TjvsmH5W9UWFagVI= Received: by ti129.telemetry-investments.com (Postfix, from userid 300) id 446B6338; Sat, 1 Apr 2017 13:08:48 -0400 (EDT) Date: Sat, 1 Apr 2017 13:08:48 -0400 From: "Andrew J. Schorr" To: Ed Morton Cc: bug-gawk@gnu.org Message-ID: <20170401170848.GA2560@ti129.telemetry-investments.com> References: <20170401135715.GA24807@ti129.telemetry-investments.com> <96d214a7-177c-392b-31a4-8da4dcc0b14a@comcast.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <96d214a7-177c-392b-31a4-8da4dcc0b14a@comcast.net> User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 38.76.0.51 Subject: Re: [bug-gawk] FPAT bug? X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2017 17:08:58 -0000 On Sat, Apr 01, 2017 at 10:28:47AM -0500, Ed Morton wrote: > OK, thanks for the update! Just to confirm that this is a bug: I think the results must be consistent with the patsplit function. In 4.1.4, it says: bash-4.2$ ./gawk 'BEGIN {nf = patsplit(",,3", f, "[^,]*"); for (i = 1; i <= nf; i++) printf "%d [%s]\n", i, f[i]}' 1 [] 2 [] 3 [3] That is clearly inconsistent with: bash-4.2$ (echo ,,3; echo ,,3) | ./gawk -v "FPAT=[^,]*" '{for (i = 1; i <= NF; i++) printf "%d [%s]\n", i, $i}' 1 [] 2 [] 3 [3] 1 [] 2 [3] So 4.1.4 is internally inconsistent; the first record was parsed correctly, but the second was not. The only remaining question is how to fix this properly... Regards, Andy From MAILER-DAEMON Sat Apr 01 16:31:53 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuPgf-00045f-A6 for mharc-bug-gawk@gnu.org; Sat, 01 Apr 2017 16:31:53 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35020) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuPZV-0003T8-Vn for bug-gawk@gnu.org; Sat, 01 Apr 2017 16:24:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cuPZV-0004gm-3L for bug-gawk@gnu.org; Sat, 01 Apr 2017 16:24:30 -0400 Received: from mail-pg0-x22b.google.com ([2607:f8b0:400e:c05::22b]:33045) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cuPZU-0004fq-UI for bug-gawk@gnu.org; Sat, 01 Apr 2017 16:24:29 -0400 Received: by mail-pg0-x22b.google.com with SMTP id x125so92598805pgb.0 for ; Sat, 01 Apr 2017 13:24:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=9zc9Z5tVwTSXcrwGeXWEeEw29Y8eQidCpk2cLqsmCwY=; b=jKSvWuvJgWuwdviY2KTwcdlfqzUly29MQnQRuAvHa129p3Y3RKz1skIbzaWlODfeGO 1gi45D+LNsJonwpBEXNChUrFtyd7msO6b6/aJTAc5C5aacKXgY42LVMTtYc661I56Gtd Hs7EBPoNhcq8v/Z/ZYQC3kh74rZk5XxmZa8RUnvIc2aDSl7k7SmG+nVPKgP44DEOsP5G qvvL5WlDMCXolnmDqxQ8c+JWH/TVmKqRfaznJQKUdqsbfI24otyzAUCcyQ4oeRqHKFYA PujRh8Qy5pKCaoaq53F1avhcawnec05ljHRoHMZ+kWmxjIbo8I2TbhrLw4csje15QSpz iQjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=9zc9Z5tVwTSXcrwGeXWEeEw29Y8eQidCpk2cLqsmCwY=; b=dJTpc1iTbCttJmt6/exNNM3gmlkA74g/5Hx87U9OtmGsz4Tto3NzE+Tti3MEKS7jv2 J5lJVMnpiTD1FQtsLiwXJDYSyyJ0OeXkqITkuqgqMaSt1TVfu14XmYQ/wuvy7fNaG72C tqJUF53BWE7PECOq0SiK+o7PhXLHipvgxbHyDOwb2omCb7fzy3g+EmDEfVh8bqDkf50w 4HsllHM5Cs5Cn0BdHSsMLILiInY5W5qMpOCErv4MnAzpxa2w4Q6jnaENRc2cnQiV7r0S K7CrPOWdnqW8TjPFr/JvpqDcajMO8niLqC5+MaD8h/o7pw2O78LrRreqnub5F3Whcf6i DDqA== X-Gm-Message-State: AFeK/H2UBMAV6d8SpH1FqpKCdsy82ZsqOSF44NmN3nms6VVddUj+POZ8+woTghOVwVhbt6Uv8keF5c4lau5sbg== X-Received: by 10.84.216.81 with SMTP id f17mr11140679plj.170.1491078267947; Sat, 01 Apr 2017 13:24:27 -0700 (PDT) MIME-Version: 1.0 Received: by 10.100.170.143 with HTTP; Sat, 1 Apr 2017 13:24:27 -0700 (PDT) In-Reply-To: References: From: Denis Shirokov Date: Sat, 1 Apr 2017 23:24:27 +0300 Message-ID: To: bug-gawk@gnu.org Content-Type: text/plain; charset=UTF-8 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400e:c05::22b X-Mailman-Approved-At: Sat, 01 Apr 2017 16:31:52 -0400 Subject: Re: [bug-gawk] errout: wrong source line reported X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2017 20:24:30 -0000 i'm sorry i should attach gawk version: gawk 4.1.1 (downloaded from EZ-ports) 2017-04-01 23:22 GMT+03:00, Denis Shirokov : > hello > > (please see screenshot attached) > > there is two examples of how we can reproduce the issue. > at the left part of the screen you may see the gawk source, at the > right part of the screen - it's error output. > > it's seems like the gawk reporting wrong source line error > > kind regards > Denis Shirokov > From MAILER-DAEMON Sat Apr 01 16:31:54 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuPgg-00046X-EI for mharc-bug-gawk@gnu.org; Sat, 01 Apr 2017 16:31:54 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34279) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuPXv-0003MQ-DO for bug-gawk@gnu.org; Sat, 01 Apr 2017 16:22:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cuPXu-0002s8-Gm for bug-gawk@gnu.org; Sat, 01 Apr 2017 16:22:51 -0400 Received: from mail-pf0-x22c.google.com ([2607:f8b0:400e:c00::22c]:34615) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cuPXu-0002qd-3E for bug-gawk@gnu.org; Sat, 01 Apr 2017 16:22:50 -0400 Received: by mail-pf0-x22c.google.com with SMTP id 197so6926345pfv.1 for ; Sat, 01 Apr 2017 13:22:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=SSgyS2N1ZKdJOvSWwul31Ewt3W/5JeBElTPtBlzQqdg=; b=eYULSixryKvUrZ4lNJtAgsA35KNYswxtdj9vw+khMNGRM6Sf6K++mf52KUERlrroon iPUHRqHSI8ydw8x/keTkfUogNZirtyFKu+WKWGtRMQRLQ3b7sCxlKbQVSB7nTgrXVovF 5WQOtDG5tfVYu8GG80W+bcpa1YUfg9IYJLK9RJlxefzfrWPAe6ZIA1qeYXxXLR2fWB/K X60lNrYWKiXI4ybuNCYSDyFqMNxM7Q+q45ZMvpgx84ifHOotYuRQUAOSJLIHs90FjBKj hhCgQH+3kiXBXeYa05MxVQbZOQHSK76MJ8QRnYZub3BukXWi2ivXTzj3hjRdqaPwY8tE yf/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=SSgyS2N1ZKdJOvSWwul31Ewt3W/5JeBElTPtBlzQqdg=; b=Usl2r7AW4IDV+T3RFpFbZiXHGNCmzeU89hfWwWf88oJfs13jTdC0cAhtqn5zWfeYVa rrrO9Q5mCz90WW+hxfATVnaI/OSh1HN5S8HDzKD1W6DMYpiMK7I96+cv02TJeHcuf4Kg HHpnYrXyGJ9CbBqXAhLKdYn+ajMVtQEqf96EfHFlEycrRl07eVBsn+MnAhnyDKWtNhEj frv7Qrp+ix+PE9uYHTPjUXVz/y11xjwFsxDfv+yoWt7Kh1lLyN96CqXV4pvwfsBGj8iL oKXthA5dTOD9KfQgAzl8dVI+C3c+PMu0MiYf6kUFf/9eT/ZaIY5VtQG+Yg/d74ZjKKyr rAjg== X-Gm-Message-State: AFeK/H0Ltm8KDlSw0VxkwxCwE8AIXCWNl0bTxaOrOTnmNHNWLlcqsORDM7Z5pTRlSnWRR8J/KWsjdiAUleLQHQ== X-Received: by 10.98.52.5 with SMTP id b5mr9069769pfa.206.1491078168957; Sat, 01 Apr 2017 13:22:48 -0700 (PDT) MIME-Version: 1.0 Received: by 10.100.170.143 with HTTP; Sat, 1 Apr 2017 13:22:48 -0700 (PDT) From: Denis Shirokov Date: Sat, 1 Apr 2017 23:22:48 +0300 Message-ID: To: bug-gawk@gnu.org Content-Type: multipart/mixed; boundary=94eb2c11ca10980188054c20b06b X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400e:c00::22c X-Mailman-Approved-At: Sat, 01 Apr 2017 16:31:52 -0400 Subject: [bug-gawk] errout: wrong source line reported X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2017 20:22:52 -0000 --94eb2c11ca10980188054c20b06b Content-Type: text/plain; charset=UTF-8 hello (please see screenshot attached) there is two examples of how we can reproduce the issue. at the left part of the screen you may see the gawk source, at the right part of the screen - it's error output. it's seems like the gawk reporting wrong source line error kind regards Denis Shirokov --94eb2c11ca10980188054c20b06b Content-Type: image/png; name="_bug.png" Content-Disposition: attachment; filename="_bug.png" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 iVBORw0KGgoAAAANSUhEUgAAB00AAANKCAIAAABpvUFBAAAAAXNSR0IArs4c6QAAAARnQU1BAACx jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhe7P3P7yXHYR9q6w+5q+Au5l2FBLSR IYCQr+GbeATCsBxTY8uJMbgDYRDCCAiEBCXQ41l4wwBEFCqMzZjgwhtFCQxrYxiGQIyMRHDyZvUm OwYgHWR7ISA7acP3nNN9+vTpH1XV1X369I9n8IVNzXRXVz1V3X36c+pb/aX/z8tf9kOAAAECBAgQ IECAAAECBAgQIECAAAEC6xX40nqrruYECBAgQIAAAQIECBAgQIAAAQIECBAgcBCQ85rOTIAAAQIE CBAgQIAAAQIECBAgQIAAgXULyHnX3X++rCBAgAABAgQIECBAgAABAgQIECBAgICcV85LgAABAgQI ECBAgAABAgQIECBAgACBdQvIedfdf76pIECAAAECBAgQIECAAAECBAgQIECAgJxXzkuAAAECBAgQ IECAAAECBAgQIECAAIF1C8h5191/vqkgQIAAAQIECBAgQIAAAQIECBAgQICAnFfOS4AAAQIECBAg QIAAAQIECBAgQIAAgXULyHnX3X++qSBAgAABAgQIECBAgAABAgQIECBAgICcV85LgAABAgQIECBA gAABAgQIECBAgACBdQvIedfdf76pIECAAAECBAgQIECAAAECBAgQIECAgJxXzkuAAAECBAgQIECA AAECBAgQIECAAIF1C8h5191/vqkgQIAAAQIECBAgQIAAAQIECBAgQICAnFfOS4AAAQIECBAgQIAA AQIECBAgQIAAgXULyHnX3X++qSBAgAABAgQIECBAgAABAgQIECBAgICcV85LgAABAgQIECBAgAAB AgQIECBAgACBdQvIedfdf76pIECAAAECBAgQIECAAAECBAgQIECAgJxXzkuAAAECBAgQIECAAAEC BAgQIECAAIF1C8h5191/vqkgQIAAAQIECBAgQIAAAQIECBAgQICAnFfOS4AAAQIECBAgQIAAAQIE CBAgQIAAgXULyHnX3X++qSBAgAABAgQIECBAgAABAgQIECBAgICcV85LgAABAgQIECBAgAABAgQI ECBAgACBdQvIedfdf76pIECAAAECBAgQIECAAAECBAgQIECAgJxXzkuAAAECBAgQIECAAAECBAgQ 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 38noq3z0q5SUVlfb3Poz/B7Kl/NuP+cNzBU6P0wWz5kfPn/2tP7g2l6ft1yctz+/q63eO1/OW5/S W8xsHR+epp/8xQoMgSOWr1xroVXvTAvXNrwMxRm8Wzs9Tc5uRR2qOlz1Rr45OyK9y2xJgACB8QLR nDf75jtPzpv42Nl+hfenH//jQR/W2xv/sz8/5LyRKb2HvaolFwNz7qLPWukZTWejwmFQNSswOvGn s/BEh5TwKNybic/q0QfjohVVlpq4fXS0tB0aaW+KQFm3ciZ4fOHavFakSJbjdnj8nTgeZsh5L2df Zwhynm4fWKi0HJA9KWogYaklsJHVYFP6ompI5zVkkivMVWQ5PGMNnB3p42FkHYrOGvNSypSleAMt PY+W7tP26iVUXes2RL8VqDo6vLTuOc/9o8Yiy9X1pwqCw9e0vpGZeM+NXjDn3CDxLJu2Spfbes9K HcerRPVazp7X3AUCyqsR1XOhHjkmm8l1ba3qYrZ7yueo6MCuOdxk3YaiFeHLdXnnjXVHxggZ/yld CXLe7ee8rzx6860ixj38vPtm49H0tWfnf/qg+b7vds57CfJaCw4UQeHxzw+fRSeHRucFlwdKXtag WqU3eujJz/kqrq0mFJezjB8++0GVd/YsxXvZt2uD+r8eVNs1L0PeoFJi1DumFVXFrl8Ed2q8Kb2n OeZ+CBDYnkA0582++d4657089CZEUbUpWuV6i7+Ya0rv4cHg/KzVMe0u+vA/NPjrew6p6tDIQQYx dofIaVM4wylnSjUSn9XTc9ti2s7np/97eNdQxiPcVTLV43BIe+vJcmKYftNWJErmrd6QPoVz5LcX 41tx9Rag65ylntEEvqEps4NWjlP9fbS7E1sRHg/jrzAjM9bAuZM+HsbUIXG+XmA+73c/meDW0Nfv 1d+/+LM/+rxvfd7qi4fWHe3Sv3/3R9HJhvV7SmP41cZJ/IoXGJkpyd3Iy+m0uyeeZdMetBpsl95/ fnWXqXdr36Ev16jaqKhfuD7/s2ag3yhqzJhs5rz1ybzFb0clTOmtfT/R/TVM34eTTpP0O2MrpD69 XvL0076kp4TyecNje08N87dIzruDnPfhcSmGx+9WeW7Xf7Ty38Mu7Zz3MEA7srxamlnM3yxnsJZ/ f5lq2r3vdUx5FW62SgicIdVB559Desm4axSX/wznsNdxcGcB7TV2u5SOCXvd57oXygz+8Ja2PsMx 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 cl45r5x32LP9Ji8EGkWAAAECgwTyottBe8l5B/WIjQkQIECAAAECBAgQkPPKeeW8cl4CBAgQIDBM YFBim7exnNfHdAIECBAgQIAAAQIEBgnIeeW8ct5hz/aDTjAbEyBAgMAmBfKi20F7yXk3OXI0igAB AgQIECBAgMDtBOS8cl45r5yXAAECBAgMExiU2OZtLOe93cdfJRMgQIAAAQIECBDYpICcV84r5x32 bL/JC4FGESBAgMAggbzodtBect5BPWJjAgQIECBAgAABAgTkvHJeOa+clwABAgQIDBMYlNjmbSzn 9TGdAAECBAgQIECAAIFBAnLebea8gwaBjQkQIECAAAECBAgQIECAAAECBAgQWLWAnFfOO2wG06qH u8oTIECAAAECBAgQIECAAAECBAgQ2KSAnFfOK+clQIAAAQIECBAgQIAAAQIECBAgQGDdAnJeOe+6 R/Amv37RKAIECBAgQIAAAQIECBAgQIAAAQKDBOS8cl45LwECBAgQIECAAAECBAgQIECAAAEC6xaQ 88p51z2CB32tYWMCBAgQIECAAAECBAgQIECAAAECmxSQ88p55bwECBAgQIAAAQIECBAgQIAAAQIE CKxbQM47IOftw/L3BAgQIECAAAECBAgQIECAAAECBAgQWKDA5JOXvzR5ibcrcIH9oUoECBAgQIAA AQIECBAgQIAAAQIECBAYKjB5iCrn/a9D+8D2BAgQIECAAAECBAgQIECAAAECBAgQGCMg5xXLEiBA gAABAgQIECBAgAABAgQIECBAYN0Cct5199+YjN++BAgQIECAAAECBAgQIECAAAECBAhsQ0DOK+cl QIAAAQIECBAgQIAAAQIECBAgQIDAugXkvOvuv21826AVBAgQIECAAAECBAgQIECAAAECBAiMEZDz ynkJECBAgAABAgQIECBAgAABAgQIECCwboFd57yTN16BBAgQIECAAAECBAgQIECAAAECBAgQ2IDA lzbQBk0gQIAAAQIECBAgQIAAAQIECBAgQIDAngXkvF/ec/drOwECBAgQIECAAAECBAgQIECAAAEC GxCQ88p5CRAgQIAAAQIECBAgQIAAAQIECBAgsG4BOe+6+28DXzVoAgECBAgQIECAAAECBAgQIECA AAECIwXkvHJeAgQIECBAgAABAgQIECBAgAABAgQIrFtAzrvu/hsZ89udAAECBAgQIECAAAECBAgQ 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 uwjIeeW8HTnvXcaigxIgQIAAgWUK5EW3g/aS8y6z69WKAAECBAgQIECAwIoE5LxyXjnv1RhY0dmr qgQIECAwj8CgxDZvYznvPF3pKAQIECBAgAABAgQ2LCDnlfPKeeW8BAgQIEAgJJAX3Q7aS8674U/b mkaAAAECBAgQIEBgHgE5r5xXzivdIECAAAECcl5jgAABAgQIECBAgACBdQvIeeW8ct51n8PzfCPk KAQIENizwKCZuXkbm8+75wGm7QQIECBAgAABAgQmEZDzrinnnaTLFUKAAAECBAgQIECAAAECBAgQ IECAwMYE5LxyXrNZCRAgQIAAAQIECBAgQIAAAQIECBBYt4CcV8677hG8sS9eNIcAAQIECBAgQIAA AQIECBAgQIBAhoCcV84r5yVAgAABAgQIECBAgAABAgQIECBAYN0Ccl4577pHcMaXG3YhQIAAAQIE CBAgQIAAAQIECBAgsDEBOa+cV85LgAABAgQIECBAgAABAgQIECBAgMC6BeS8ct51j+CNffGiOQQI ECBAgAABAgQIECBAgAABAgQyBOS8cl45LwECBAgQIECAAAECBAgQIECAAAEC6xaQ88p51z2CM77c sAsBAgQIECBAgAABAgQIECBAgACBjQnIeeW8cl4CBAgQIECAAAECBAgQIECAAAECBNYtIOeV8657 BG/sixfNIUCAAAECBAgQIECAAAECBAgQIJAhIOeV88p5CRAgQIAAAQIECBAgQIAAAQIECBBYt4Cc V8677hGc8eWGXQgQIECAAAECBAgQIECAAAECBAhsTEDOK+eV8xIgQIAAAQIECBAgQIAAAQIECBAg sG4BOa+cd90jeGNfvGgOAQIECBAgQIAAAQIECBAgQIAAgQwBOa+cV85LgAABAgQIECBAgAABAgQI ECBAgMC6BeS8ct51j+CMLzfsQoAAAQIECBAgQIAAAQIECBAgQGBjAnJeOa+clwABAgQIECBAgAAB AgQIECBAgACBdQvIeeW86x7BG/viRXMIECBAgAABAgQIECBAgAABAgQIZAjIeeW8cl4CBAgQIECA AAECBAgQIECAAAECBNYtIOeV8657BGd8uWEXAgQIECBAgAABAgQIECBAgAABAhsTkPPKeeW8BAgQ IECAAAECBAgQIECAAAECBAisW0DOK+dd9wje2BcvmkOAAAECBAgQIECAAAECBAgQIEAgQ0DOK+eV 8xIgQIAAAQIECBAgQIAAAQIECBAgsG4BOa+cd90jOOPLDbsQIECAAAECBAgQIECAAAECBAgQ2JiA nFfOK+clQIAAAQIECBAgQIAAAQIECBAgQGDdAnJeOe+6R/DGvnjRHAIECBAgQIAAAQIECBAgQIAA AQIZAnJeOa+clwABAgQIECBAgAABAgQIECBAgACBdQvIeeW86x7BGV9u2IUAAQIECBAgQIAAAQIE CBAgQIDAxgTkvHJeOS8BAgQIECBAgAABAgQIECBAgAABAusWkPPKedc9gjf2xYvmECBAgAABAgQI ECBAgAABAgQIEMgQkPPKeeW8BAgQIECAAAECBAgQIECAAAECBAisW0DOK+dd9wjO+HLDLgQIECBA gAABAgQIECBAgAABAgQ2JiDnlfPKeQkQIECAAAECBAgQIECAAAECBAgQWLeAnFfOu+4RvLEvXjSH AAECBAgQIECAAAECBAgQIECAQIaAnFfOK+clQIAAAQIECBAgQIAAAQIECBAgQGDdAnJeOe+6R3DG lxt2IUCAAAECBAgQIECAAAECBAgQILAxATmvnFfOS4AAAQIECBAgQIAAAQIECBAgQIDAugXkvHLe dY/gjX3xojkECBAgQIAAAQIECBAgQIAAAQIEMgTkvHJeOS8BAgQIECBAgAABAgQIECBAgAABAusW kPPKedc9gjO+3LALAQIECBAgQIAAAQIECBAgQIAAgY0JyHnlvHJeAgQIECBAgAABAgQIECBAgAAB AgTWLSDnlfOuewRv7IsXzSFAgAABAgQIECBAgAABAgQIECCQISDnlfPKeQkQIECAAAECBAgQIECA AAECBAgQWLeAnFfOu+4RnPHlhl0IECBAgAABAgQIECBAgAABAgQIbExAzivnlfMSIECAAAECBAgQ IECAAAECBAgQILBuATmvnHfdI3hjX7xoDgECBAgQIECAAAECBAgQIECAAIEMATmvnFfOS4AAAQIE CBAgQIAAAQIECBAgQIDAugXkvHLedY/gjC837EKAAAECBAgQIECAAAECBAgQIEBgYwJyXjmvnJcA AQIECBAgQIAAAQIECBAgQIAAgXULyHnlvOsewRv74kVzCBAgQIAAAQIECBAgQIAAAQIECGQIyHnl vHJeAgQIECBAgAABAgQIECBAgAABAgTWLSDnlfOuewRnfLlhFwIECBAgQIAAAQIECBAgQIAAAQIb E5DzynnlvAQIECBAgAABAgQIECBAgAABAgQIrFtAzivnXfcI3tgXL5pDgAABAgQIECBAgAABAgQI ECBAIENAzivnlfMSIECAAAECBAgQIECAAAECBAgQILBuATmvnHfdIzjjyw27ECBAgAABAgQIECBA gAABAgQIENiYgJxXzivnJUCAAAECBAgQIECAAAECBAgQIEBg3QJyXjnvukfwxr540RwCBAgQIECA AAECBAgQIECAAAECGQJyXjmvnJcAAQIECBAgQIAAAQIECBAgQIAAgXULyHnlvOsewRlfbtiFAAEC BAgQIECAAAECBAgQIECAwMYE5LxyXjkvAQIECBAgQIAAAQIECBAgQIAAAQLrFpDzynnXPYI39sWL 5hAgQIAAAQIECBAgQIAAAQIECBDIEJDzynnlvAQIECBAgAABAgQIECBAgAABAgQIrFtAzivnXfcI zvhywy4ECBAgQIAAAQIECBAgQIAAAQIENiYg55XzynkJECBAgAABAgQIECBAgAABAgQIEFi3gJxX zrvuEbyxL140hwABAgQIECBAgAABAgQIECBAgECGgJxXzivnJUCAAAECBAgQIECAAAECBAgQIEBg 3QJyXjnvukdwxpcbdiFAgAABAgQIECBAgAABAgQIECCwMQE5r5xXzkuAAAECBAgQIECAAAECBAgQ IECAwLoF5Lxy3nWP4I198aI5BAgQIECAAAECBAgQIECAAAECBDIE5LxyXjkvAQIECBAgQIAAAQIE CBAgQIAAAQLrFpDzynnXPYIzvtywCwECBAgQIECAAAECBAgQIECAAIGNCch55bxyXgIECBAgQIAA AQIECBAgQIAAAQIE1i0g55XzrnsEb+yLF80hQIAAAQIECBAgQIAAAQIECBAgkCEg55XzynkJECBA gAABAgQIECBAgAABAgQIEFi3gJxXzrvuEZzx5YZdCBAgQIAAAQIECBAgQIAAAQIECGxMQM4r55Xz EiBAgAABAgQIECBAgAABAgQIECCwbgE5r5x33SN4Y1+8aA4BAgQIECBAgAABAgQIECBAgACBDAE5 r5xXzkuAAAECBAgQIECAAAECBAgQIECAwLoF5Lxy3nWP4IwvN+xCgAABAgQIECBAgAABAgQIECBA YGMCcl45r5yXAAECBAgQIECAAAECBAgQIECAAIF1C8h55bzrHsEb++JFcwgQIECAAAECBAgQIECA AAECBAhkCMh55bxyXgIECBAgQIAAAQIECBAgQIAAAQIE1i0g55XzrnsEZ3y5YRcCBAgQIECAAAEC BAgQIECAAAECGxOQ88p55bwECBAgQIAAAQIECBAgQIAAAQIECKxbQM4r5133CN7YFy+aQ4AAAQIE CBAgQIAAAQIECBAgQCBDQM4r55XzEiBAgAABAgQIECBAgAABAgQIECCwbgE5r5x33SM448sNuxAg QIAAAQIECBAgQIAAAQIECBDYmICcNynn7WPy9wQIECBAgAABAgQIECBAgAABAgQIEFiswIRx9pcm LOvWRS22P1SMAAECBAgQIECAAAECBAgQIECAAAECQwUmDFTlvP91qL7tCRAgQIAAAQIECBAgQIAA AQIECBAgMF5AziucJUCAAAECBAgQIECAAAECBAgQIECAwLoF5Lzr7r/xSb8SCBAgQIAAAQIECBAg QIAAAQIECBBYu4CcV85LgAABAgQIECBAgAABAgQIECBAgACBdQvIedfdf2v/nkH9CRAgQIAAAQIE CBAgQIAAAQIECBAYLyDnlfMSIECAAAECBAgQIECAAAECBAgQIEBg3QI7zXknbLaiCBAgQIAAAQIE CBAgQIAAAQIECBAgsBmBL22mJRpCgAABAgQIECBAgAABAgQIECBAgACBfQrIeb+8z47XagIECBAg QIAAAQIECBAgQIAAAQIENiMg55XzEiBAgAABAgQIECBAgAABAgQIECBAYN0Cct51999mvnDQEAIE CBAgQIAAAQIECBAgQIAAAQIEsgXkvHJeAgQIECBAgAABAgQIECBAgAABAgQIrFtAzrvu/ssO+O1I gAABAgQIECBAgAABAgQIECBAgMBmBOS8cl4CBAgQIECAAAECBAgQIECAAAECBAisW0DOu+7+28wX DhpCgAABAgQIECBAgAABAgQIECBAgEC2gJxXzkuAAAECBAgQIECAAAECBAgQIECAAIF1C8h5191/ 2QG/HQkQIECAAAECBAgQIECAAAECBAgQ2IyAnFfOS4AAAQIECBAgQIAAAQIECBAgQIAAgXULyHnX 3X+b+cJBQwgQIECAAAECBAgQIECAAAECBAgQyBaQ88p5CRAgQIAAAQIECBAgQIAAAQIECBAgsG4B Oe+6+y874LcjAQIECBAgQIAAAQIECBAgQIAAAQKbEZDzynkJECBAgAABAgQIECBAgAABAgQIECCw bgE577r7bzNfOGgIAQIECBAgQIAAAQIECBAgQIAAAQLZAnJeOS8BAgQIECBAgAABAgQIECBAgAAB AgTWLSDnXXf/ZQf8diRAgAABAgQIECBAgAABAgQIECBAYDMCcl45LwECBAgQIECAAAECBAgQIECA AAECBNYtIOddd/9t5gsHDSFAgAABAgQIECBAgAABAgQIECBAIFtAzivnJUCAAAECBAgQIECAAAEC BAgQIECAwLoF5Lzr7r/sgN+OBAgQIECAAAECBAgQIECAAAECBAhsRkDOK+clQIAAAQIECBAgQIAA AQIECBAgQIDAugXkvOvuv8184aAhBAgQIECAAAECBAgQIECAAAECBAhkC8h55bwECBAgQIAAAQIE CBAgQIAAAQIECBBYt4Ccd939lx3w25EAAQIECBAgQIAAAQIECBAgQIAAgc0IyHnlvAQIECBAgAAB AgQIECBAgAABAgQIEFi3gJx33f23mS8cNIQAAQIECBAgQIAAAQIECBAgQIAAgWwBOa+clwABAgQI ECBAgAABAgQIECBAgAABAusWkPOuu/+yA347EiBAgAABAgQIECBAgAABAgQIECCwGQE5r5yXAAEC BAgQIECAAAECBAgQIECAAAEC6xaQ8667/zbzhYOGECBAgAABAgQIECBAgAABAgQIECCQLSDnlfMS IECAAAECBAgQIECAAAECBAgQIEBg3QJy3nX3X3bAb0cCBAgQIECAAAECBAgQIECAAAECBDYjIOeV 8xIgQIAAAQIECBAgQIAAAQIECBAgQGDdAnLedfffZr5w0JD/f3t2TAQADMNAjD/rcPD2OQHIUHn7 EiBAgAABAgQIECBAgAABAgQIECAwC+i8Oi8BAgQIECBAgAABAgQIECBAgAABAgTaAjpve7858Dsk QIAAAQIECBAgQIAAAQIECBAgQOCNgM6r8xIgQIAAAQIECBAgQIAAAQIECBAgQKAtoPO293vz4eAh BAgQIECAAAECBAgQIECAAAECBAjMAjqvzkuAAAECBAgQIECAAAECBAgQICg9CMUAAAEMSURBVECA AIG2gM7b3m8O/A4JECBAgAABAgQIECBAgAABAgQIEHgjoPPqvAQIECBAgAABAgQIECBAgAABAgQI EGgL6Lzt/d58OHgIAQIECBAgQIAAAQIECBAgQIAAAQKzgM6r8xIgQIAAAQIECBAgQIAAAQIECBAg QKAtoPO295sDv0MCBAgQIECAAAECBAgQIECAAAECBN4I6Lw6LwECBAgQIECAAAECBAgQIECAAAEC BNoCOm97vzcfDh5CgAABAgQIECBAgAABAgQIECBAgMAsoPPqvAQIECBAgAABAgQIECBAgAABAgQI EGgL6Lzt/ebA75AAAQIECBAgQIAAAQIECBAgQIAAgTcCB3QrCB91PU1NAAAAAElFTkSuQmCC --94eb2c11ca10980188054c20b06b-- From MAILER-DAEMON Sat Apr 01 17:12:29 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuQJx-0000Cb-Qc for mharc-bug-gawk@gnu.org; Sat, 01 Apr 2017 17:12:29 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53044) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuQJw-0000CV-67 for bug-gawk@gnu.org; Sat, 01 Apr 2017 17:12:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cuQJv-0008RK-E3 for bug-gawk@gnu.org; Sat, 01 Apr 2017 17:12:28 -0400 Received: from mail-pg0-x234.google.com ([2607:f8b0:400e:c05::234]:36791) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cuQJv-0008Qx-8j for bug-gawk@gnu.org; Sat, 01 Apr 2017 17:12:27 -0400 Received: by mail-pg0-x234.google.com with SMTP id g2so91822444pge.3 for ; Sat, 01 Apr 2017 14:12:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=JSalYVxTlUvPkU8/o17KEJMYCJWiLT2OTDe+ks83deU=; b=Rg70CbiV60HggOWQWkYuiOTna/O7k+6NTl7HiT0238QsM43MIVhGUxufuYGKJ/uHjz efjD0mq4odfShpkCoO64AhkVcATfxLTKUG926mKPGji8LWmSceU4ZpoE23vei94iEoxg 4HfWwnnOqH2djHCYMK+c33wNh93itXWe/LwFoJDZ5dLKpJdQB+PA9o6gH8I1xevWr/Hk iqgi2SLJgqzVZrJMnJ5KqqJ89gcvKqYRJhHISPVIyGb9Xmdb04tGSAQxxxZryYYjFAZG TF5jy+FP80uFdtvjdVS83d3e18jYgts1a8g/Gw/9z4FLK4nmYzddZ3nCAvyVbgdrfD6p vN3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=JSalYVxTlUvPkU8/o17KEJMYCJWiLT2OTDe+ks83deU=; b=Zcu10BqJNF0NqpXXunyhPP3mtg9/0H2YGRmExbmr8yLRl+zehP6ga5D7/CI1Xnl34a 5Bw7dzHA4XPPaXdgPb5+kgBdhhPZ4i+tAGS2d3AyVMdmMClPhu8vmLUm0Yxd5vRwdxUM NRfpGj/JYIoAvV5QZkPERkwb9JC42/B5MOWe3MTDtP1MjV1MNJRT2wP+bDiw0Fozk3An G/PqryWwrTgzri3Y0YlvYLKZh8k8IIj1rmGUjVo/IBGHTEKiORuKIEhcHrhogvz1pUHA qd4FK1BziZ5QKDJEC9moo1hMOifzkjVFA2axN6HbGa1xhaTeMXK2dGNA3T1V8SMMHWAS a5RQ== X-Gm-Message-State: AFeK/H1OS+Fezqmp68z7QbHmi3pkK+vLuJYGmWzrRXHJojltYTYWAP/tlex2oFHXfNdi4ABDT0P1CuxtEiQEMw== X-Received: by 10.99.65.1 with SMTP id o1mr9821040pga.93.1491081146284; Sat, 01 Apr 2017 14:12:26 -0700 (PDT) MIME-Version: 1.0 Received: by 10.100.170.143 with HTTP; Sat, 1 Apr 2017 14:12:25 -0700 (PDT) Received: by 10.100.170.143 with HTTP; Sat, 1 Apr 2017 14:12:25 -0700 (PDT) In-Reply-To: References: From: Denis Shirokov Date: Sun, 2 Apr 2017 00:12:25 +0300 Message-ID: To: bug-gawk@gnu.org Content-Type: multipart/alternative; boundary=94eb2c08ed340e4742054c216242 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400e:c05::234 Subject: [bug-gawk] errout: wrong line reported X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2017 21:12:29 -0000 --94eb2c08ed340e4742054c216242 Content-Type: text/plain; charset=UTF-8 hello (please see screenshot attached) there is two examples of how we can reproduce the issue. at the left part of the screen you may see the gawk source, at the right part of the screen - it's error output. it's seems like the gawk reporting wrong source line error kind regards Denis Shirokov --94eb2c08ed340e4742054c216242 Content-Type: text/html; charset=UTF-8


hello

(please see screenshot attached)

there is two examples of how we can reproduce the issue.
at the left part of the screen you may see the gawk source, at the
right part of the screen - it's error output.

it's seems like the gawk reporting wrong source line error

kind regards
Denis Shirokov

--94eb2c08ed340e4742054c216242-- From MAILER-DAEMON Sat Apr 01 17:14:25 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuQLp-0000Ic-Bq for mharc-bug-gawk@gnu.org; Sat, 01 Apr 2017 17:14:25 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53643) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuQLm-0000IU-Rz for bug-gawk@gnu.org; Sat, 01 Apr 2017 17:14:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cuQLl-0001N2-Sw for bug-gawk@gnu.org; Sat, 01 Apr 2017 17:14:22 -0400 Received: from mail-pg0-x231.google.com ([2607:f8b0:400e:c05::231]:33228) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cuQLl-0001MR-FP for bug-gawk@gnu.org; Sat, 01 Apr 2017 17:14:21 -0400 Received: by mail-pg0-x231.google.com with SMTP id x125so92856224pgb.0 for ; Sat, 01 Apr 2017 14:14:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=PmMOYYppmWk0lf/k/SlZ95e/OEParZeZlVwb2cbViGg=; b=VbkBzJklCCIrRoZeY4xYKGuRlSKqH/yKT4F3OnIG7i5s4+zbqv6vrAMYp1xEF2eqC7 JZfz2II3eEFYUGFUZaHj/p6MfiN84vM6ZG2G/Q65fM/PSkzjWnxQKHC05odZHVK7sCYl wTaIEBGjKPuJ95JsR1xkLmkO8R+XKEP7o0cNOBc78oUhVOUjTwE5JXwZ1JA/CTkxrbCK AoAz4MsvqEegoxkKJEZFCVqkYNqGkQPS06m1Pt4QYoW5sLrMZzcin0/cMmLK97d/IsJs 9oh4DV9syCbevA5EwxNHDZ86BheeJj07z2doYiBz/yZB0kwm0BssZko3I0hBU8N92Nug K2aQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=PmMOYYppmWk0lf/k/SlZ95e/OEParZeZlVwb2cbViGg=; b=jGNZHnrq+n9FjOUydopCgLe7t8kYB9KOFXzPzKtLDA+1esy96SiLsgP2WDdDRY0GJ1 pjQGA5P7W+FpymKUVj95RssJAr99GLFyFqAVD1gtrUy7gf1dHSFhmI9KsTS8N9OsO/Ri 6gmmxenpHyO7826iy23zgGDPNBh9ghowuIlzeOOn2DtVTlc79PPvz3QgF38IdvgaR8Qa 0OurrmMoFT1Qlx37SqXTXn1SB2hbVfhQcp6vai35Fat/oIE/rWVA3sSVSiGP7s65/dXd /56HUJb4h9/ImrdLpgvirVPkApMd1KZc8bPA6rCozDn+zXTXnR0VXbJ2LgvNu4fK18tr 3fkQ== X-Gm-Message-State: AFeK/H2518g0yt+dUwjLwDf/JkSBD09YiLic35iw2bbvpupdi7Lr4tlToi/2THvTS3Z50O77f/TMVt/fCRp3Nw== X-Received: by 10.84.216.81 with SMTP id f17mr11334332plj.170.1491081260413; Sat, 01 Apr 2017 14:14:20 -0700 (PDT) MIME-Version: 1.0 Received: by 10.100.170.143 with HTTP; Sat, 1 Apr 2017 14:14:19 -0700 (PDT) Received: by 10.100.170.143 with HTTP; Sat, 1 Apr 2017 14:14:19 -0700 (PDT) In-Reply-To: References: From: Denis Shirokov Date: Sun, 2 Apr 2017 00:14:19 +0300 Message-ID: To: bug-gawk@gnu.org Content-Type: multipart/mixed; boundary=94eb2c19a6a8dbddeb054c216805 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400e:c05::231 Subject: [bug-gawk] Fwd: errout: wrong source line reported X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2017 21:14:23 -0000 --94eb2c19a6a8dbddeb054c216805 Content-Type: multipart/alternative; boundary=94eb2c19a6a8dbdde6054c216803 --94eb2c19a6a8dbdde6054c216803 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable ---------- =D0=9F=D0=B5=D1=80=D0=B5=D0=B0=D0=B4=D1=80=D0=B5=D1=81=D0=BE=D0= =B2=D0=B0=D0=BD=D0=BD=D0=BE=D0=B5 =D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0= =BD=D0=B8=D0=B5 ---------- =D0=9E=D1=82: "Denis Shirokov" =D0=94=D0=B0=D1=82=D0=B0: 1 =D0=B0=D0=BF=D1=80. 2017 =D0=B3. 23:22 =D0=A2=D0=B5=D0=BC=D0=B0: errout: wrong source line reported =D0=9A=D0=BE=D0=BC=D1=83: =D0=9A=D0=BE=D0=BF=D0=B8=D1=8F: hello (please see screenshot attached) there is two examples of how we can reproduce the issue. at the left part of the screen you may see the gawk source, at the right part of the screen - it's error output. it's seems like the gawk reporting wrong source line error kind regards Denis Shirokov --94eb2c19a6a8dbdde6054c216803 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
---------- =D0=9F=D0=B5= =D1=80=D0=B5=D0=B0=D0=B4=D1=80=D0=B5=D1=81=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D0= =BE=D0=B5 =D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B5 ----------=
=D0=9E=D1=82: "Denis Shirokov" <cosmogen@gmail.com>
=D0=94=D0=B0=D1=82=D0=B0: 1 =D0= =B0=D0=BF=D1=80. 2017 =D0=B3. 23:22
=D0=A2=D0=B5=D0=BC=D0=B0: errout: wr= ong source line reported
=D0=9A=D0=BE=D0=BC=D1=83: <bug-gawk@gnu.org>
=D0=9A=D0=BE=D0=BF=D0=B8=D1= =8F:

hello

(please see screenshot attached)

there is two examples of how we can reproduce the issue.
at the left part of the screen you may see the gawk source, at the
right part of the screen - it's error output.

it's seems like the gawk reporting wrong source line error

kind regards
Denis Shirokov
--94eb2c19a6a8dbdde6054c216803-- --94eb2c19a6a8dbddeb054c216805 Content-Type: image/png; name="_bug.png" Content-Disposition: attachment; filename="_bug.png" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 iVBORw0KGgoAAAANSUhEUgAAB00AAANKCAIAAABpvUFBAAAAAXNSR0IArs4c6QAAAARnQU1BAACx jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhe7P3P7yXHYR9q6w+5q+Au5l2FBLSR IYCQr+GbeATCsBxTY8uJMbgDYRDCCAiEBCXQ41l4wwBEFCqMzZjgwhtFCQxrYxiGQIyMRHDyZvUm OwYgHWR7ISA7acP3nNN9+vTpH1XV1X369I9n8IVNzXRXVz1V3X36c+pb/aX/z8tf9kOAAAECBAgQ IECAAAECBAgQIECAAAEC6xX40nqrruYECBAgQIAAAQIECBAgQIAAAQIECBAgcBCQ85rOTIAAAQIE CBAgQIAAAQIECBAgQIAAgXULyHnX3X++rCBAgAABAgQIECBAgAABAgQIECBAgICcV85LgAABAgQI ECBAgAABAgQIECBAgACBdQvIedfdf76pIECAAAECBAgQIECAAAECBAgQIECAgJxXzkuAAAECBAgQ IECAAAECBAgQIECAAIF1C8h5191/vqkgQIAAAQIECBAgQIAAAQIECBAgQICAnFfOS4AAAQIECBAg QIAAAQIECBAgQIAAgXULyHnX3X++qSBAgAABAgQIECBAgAABAgQIECBAgICcV85LgAABAgQIECBA gAABAgQIECBAgACBdQvIedfdf76pIECAAAECBAgQIECAAAECBAgQIECAgJxXzkuAAAECBAgQIECA AAECBAgQIECAAIF1C8h5191/vqkgQIAAAQIECBAgQIAAAQIECBAgQICAnFfOS4AAAQIECBAgQIAA AQIECBAgQIAAgXULyHnX3X++qSBAgAABAgQIECBAgAABAgQIECBAgICcV85LgAABAgQIECBAgAAB AgQIECBAgACBdQvIedfdf76pIECAAAECBAgQIECAAAECBAgQIECAgJxXzkuAAAECBAgQIECAAAEC BAgQIECAAIF1C8h5191/vqkgQIAAAQIECBAgQIAAAQIECBAgQICAnFfOS4AAAQIECBAgQIAAAQIE CBAgQIAAgXULyHnX3X++qSBAgAABAgQIECBAgAABAgQIECBAgICcV85LgAABAgQIECBAgAABAgQI ECBAgACBdQvIedfdf76pIECAAAECBAgQIECAAAECBAgQIECAgJxXzkuAAAECBAgQIECAAAECBAgQ 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 38noq3z0q5SUVlfb3Poz/B7Kl/NuP+cNzBU6P0wWz5kfPn/2tP7g2l6ft1yctz+/q63eO1/OW5/S W8xsHR+epp/8xQoMgSOWr1xroVXvTAvXNrwMxRm8Wzs9Tc5uRR2qOlz1Rr45OyK9y2xJgACB8QLR nDf75jtPzpv42Nl+hfenH//jQR/W2xv/sz8/5LyRKb2HvaolFwNz7qLPWukZTWejwmFQNSswOvGn s/BEh5TwKNybic/q0QfjohVVlpq4fXS0tB0aaW+KQFm3ciZ4fOHavFakSJbjdnj8nTgeZsh5L2df Zwhynm4fWKi0HJA9KWogYaklsJHVYFP6ompI5zVkkivMVWQ5PGMNnB3p42FkHYrOGvNSypSleAMt PY+W7tP26iVUXes2RL8VqDo6vLTuOc/9o8Yiy9X1pwqCw9e0vpGZeM+NXjDn3CDxLJu2Spfbes9K HcerRPVazp7X3AUCyqsR1XOhHjkmm8l1ba3qYrZ7yueo6MCuOdxk3YaiFeHLdXnnjXVHxggZ/yld CXLe7ee8rzx6860ixj38vPtm49H0tWfnf/qg+b7vds57CfJaCw4UQeHxzw+fRSeHRucFlwdKXtag WqU3eujJz/kqrq0mFJezjB8++0GVd/YsxXvZt2uD+r8eVNs1L0PeoFJi1DumFVXFrl8Ed2q8Kb2n OeZ+CBDYnkA0582++d4657089CZEUbUpWuV6i7+Ya0rv4cHg/KzVMe0u+vA/NPjrew6p6tDIQQYx dofIaVM4wylnSjUSn9XTc9ti2s7np/97eNdQxiPcVTLV43BIe+vJcmKYftNWJErmrd6QPoVz5LcX 41tx9Rag65ylntEEvqEps4NWjlP9fbS7E1sRHg/jrzAjM9bAuZM+HsbUIXG+XmA+73c/meDW0Nfv 1d+/+LM/+rxvfd7qi4fWHe3Sv3/3R9HJhvV7SmP41cZJ/IoXGJkpyd3Iy+m0uyeeZdMetBpsl95/ fnWXqXdr36Ev16jaqKhfuD7/s2ag3yhqzJhs5rz1ybzFb0clTOmtfT/R/TVM34eTTpP0O2MrpD69 XvL0076kp4TyecNje08N87dIzruDnPfhcSmGx+9WeW7Xf7Ty38Mu7Zz3MEA7srxamlnM3yxnsJZ/ f5lq2r3vdUx5FW62SgicIdVB559Desm4axSX/wznsNdxcGcB7TV2u5SOCXvd57oXygz+8Ja2PsMx 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 cl45r5x32LP9Ji8EGkWAAAECgwTyottBe8l5B/WIjQkQIECAAAECBAgQkPPKeeW8cl4CBAgQIDBM YFBim7exnNfHdAIECBAgQIAAAQIEBgnIeeW8ct5hz/aDTjAbEyBAgMAmBfKi20F7yXk3OXI0igAB AgQIECBAgMDtBOS8cl45r5yXAAECBAgMExiU2OZtLOe93cdfJRMgQIAAAQIECBDYpICcV84r5x32 bL/JC4FGESBAgMAggbzodtBect5BPWJjAgQIECBAgAABAgTkvHJeOa+clwABAgQIDBMYlNjmbSzn 9TGdAAECBAgQIECAAIFBAnLebea8gwaBjQkQIECAAAECBAgQIECAAAECBAgQWLWAnFfOO2wG06qH u8oTIECAAAECBAgQIECAAAECBAgQ2KSAnFfOK+clQIAAAQIECBAgQIAAAQIECBAgQGDdAnJeOe+6 R/Amv37RKAIECBAgQIAAAQIECBAgQIAAAQKDBOS8cl45LwECBAgQIECAAAECBAgQIECAAAEC6xaQ 88p51z2CB32tYWMCBAgQIECAAAECBAgQIECAAAECmxSQ88p55bwECBAgQIAAAQIECBAgQIAAAQIE CKxbQM47IOftw/L3BAgQIECAAAECBAgQIECAAAECBAgQWKDA5JOXvzR5ibcrcIH9oUoECBAgQIAA AQIECBAgQIAAAQIECBAYKjB5iCrn/a9D+8D2BAgQIECAAAECBAgQIECAAAECBAgQGCMg5xXLEiBA gAABAgQIECBAgAABAgQIECBAYN0Cct5199+YjN++BAgQIECAAAECBAgQIECAAAECBAhsQ0DOK+cl QIAAAQIECBAgQIAAAQIECBAgQIDAugXkvOvuv21826AVBAgQIECAAAECBAgQIECAAAECBAiMEZDz ynkJECBAgAABAgQIECBAgAABAgQIECCwboFd57yTN16BBAgQIECAAAECBAgQIECAAAECBAgQ2IDA lzbQBk0gQIAAAQIECBAgQIAAAQIECBAgQIDAngXkvF/ec/drOwECBAgQIECAAAECBAgQIECAAAEC GxCQ88p5CRAgQIAAAQIECBAgQIAAAQIECBAgsG4BOe+6+28DXzVoAgECBAgQIECAAAECBAgQIECA AAECIwXkvHJeAgQIECBAgAABAgQIECBAgAABAgQIrFtAzrvu/hsZ89udAAECBAgQIECAAAECBAgQ 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 uwjIeeW8HTnvXcaigxIgQIAAgWUK5EW3g/aS8y6z69WKAAECBAgQIECAwIoE5LxyXjnv1RhY0dmr qgQIECAwj8CgxDZvYznvPF3pKAQIECBAgAABAgQ2LCDnlfPKeeW8BAgQIEAgJJAX3Q7aS8674U/b mkaAAAECBAgQIEBgHgE5r5xXzivdIECAAAECcl5jgAABAgQIECBAgACBdQvIeeW8ct51n8PzfCPk KAQIENizwKCZuXkbm8+75wGm7QQIECBAgAABAgQmEZDzrinnnaTLFUKAAAECBAgQIECAAAECBAgQ IECAwMYE5LxyXrNZCRAgQIAAAQIECBAgQIAAAQIECBBYt4CcV8677hG8sS9eNIcAAQIECBAgQIAA AQIECBAgQIBAhoCcV84r5yVAgAABAgQIECBAgAABAgQIECBAYN0Ccl4577pHcMaXG3YhQIAAAQIE CBAgQIAAAQIECBAgsDEBOa+cV85LgAABAgQIECBAgAABAgQIECBAgMC6BeS8ct51j+CNffGiOQQI ECBAgAABAgQIECBAgAABAgQyBOS8cl45LwECBAgQIECAAAECBAgQIECAAAEC6xaQ88p51z2CM77c sAsBAgQIECBAgAABAgQIECBAgACBjQnIeeW8cl4CBAgQIECAAAECBAgQIECAAAECBNYtIOeV8657 BG/sixfNIUCAAAECBAgQIECAAAECBAgQIJAhIOeV88p5CRAgQIAAAQIECBAgQIAAAQIECBBYt4Cc V8677hGc8eWGXQgQIECAAAECBAgQIECAAAECBAhsTEDOK+eV8xIgQIAAAQIECBAgQIAAAQIECBAg sG4BOa+cd90jeGNfvGgOAQIECBAgQIAAAQIECBAgQIAAgQwBOa+cV85LgAABAgQIECBAgAABAgQI ECBAgMC6BeS8ct51j+CMLzfsQoAAAQIECBAgQIAAAQIECBAgQGBjAnJeOa+clwABAgQIECBAgAAB AgQIECBAgACBdQvIeeW86x7BG/viRXMIECBAgAABAgQIECBAgAABAgQIZAjIeeW8cl4CBAgQIECA AAECBAgQIECAAAECBNYtIOeV8657BGd8uWEXAgQIECBAgAABAgQIECBAgAABAhsTkPPKeeW8BAgQ IECAAAECBAgQIECAAAECBAisW0DOK+dd9wje2BcvmkOAAAECBAgQIECAAAECBAgQIEAgQ0DOK+eV 8xIgQIAAAQIECBAgQIAAAQIECBAgsG4BOa+cd90jOOPLDbsQIECAAAECBAgQIECAAAECBAgQ2JiA nFfOK+clQIAAAQIECBAgQIAAAQIECBAgQGDdAnJeOe+6R/DGvnjRHAIECBAgQIAAAQIECBAgQIAA AQIZAnJeOa+clwABAgQIECBAgAABAgQIECBAgACBdQvIeeW86x7BGV9u2IUAAQIECBAgQIAAAQIE CBAgQIDAxgTkvHJeOS8BAgQIECBAgAABAgQIECBAgAABAusWkPPKedc9gjf2xYvmECBAgAABAgQI ECBAgAABAgQIEMgQkPPKeeW8BAgQIECAAAECBAgQIECAAAECBAisW0DOK+dd9wjO+HLDLgQIECBA gAABAgQIECBAgAABAgQ2JiDnlfPKeQkQIECAAAECBAgQIECAAAECBAgQWLeAnFfOu+4RvLEvXjSH AAECBAgQIECAAAECBAgQIECAQIaAnFfOK+clQIAAAQIECBAgQIAAAQIECBAgQGDdAnJeOe+6R3DG lxt2IUCAAAECBAgQIECAAAECBAgQILAxATmvnFfOS4AAAQIECBAgQIAAAQIECBAgQIDAugXkvHLe dY/gjX3xojkECBAgQIAAAQIECBAgQIAAAQIEMgTkvHJeOS8BAgQIECBAgAABAgQIECBAgAABAusW kPPKedc9gjO+3LALAQIECBAgQIAAAQIECBAgQIAAgY0JyHnlvHJeAgQIECBAgAABAgQIECBAgAAB AgTWLSDnlfOuewRv7IsXzSFAgAABAgQIECBAgAABAgQIECCQISDnlfPKeQkQIECAAAECBAgQIECA AAECBAgQWLeAnFfOu+4RnPHlhl0IECBAgAABAgQIECBAgAABAgQIbExAzivnlfMSIECAAAECBAgQ IECAAAECBAgQILBuATmvnHfdI3hjX7xoDgECBAgQIECAAAECBAgQIECAAIEMATmvnFfOS4AAAQIE CBAgQIAAAQIECBAgQIDAugXkvHLedY/gjC837EKAAAECBAgQIECAAAECBAgQIEBgYwJyXjmvnJcA AQIECBAgQIAAAQIECBAgQIAAgXULyHnlvOsewRv74kVzCBAgQIAAAQIECBAgQIAAAQIECGQIyHnl vHJeAgQIECBAgAABAgQIECBAgAABAgTWLSDnlfOuewRnfLlhFwIECBAgQIAAAQIECBAgQIAAAQIb E5DzynnlvAQIECBAgAABAgQIECBAgAABAgQIrFtAzivnXfcI3tgXL5pDgAABAgQIECBAgAABAgQI ECBAIENAzivnlfMSIECAAAECBAgQIECAAAECBAgQILBuATmvnHfdIzjjyw27ECBAgAABAgQIECBA gAABAgQIENiYgJxXzivnJUCAAAECBAgQIECAAAECBAgQIEBg3QJyXjnvukfwxr540RwCBAgQIECA AAECBAgQIECAAAECGQJyXjmvnJcAAQIECBAgQIAAAQIECBAgQIAAgXULyHnlvOsewRlfbtiFAAEC BAgQIECAAAECBAgQIECAwMYE5LxyXjkvAQIECBAgQIAAAQIECBAgQIAAAQLrFpDzynnXPYI39sWL 5hAgQIAAAQIECBAgQIAAAQIECBDIEJDzynnlvAQIECBAgAABAgQIECBAgAABAgQIrFtAzivnXfcI zvhywy4ECBAgQIAAAQIECBAgQIAAAQIENiYg55XzynkJECBAgAABAgQIECBAgAABAgQIEFi3gJxX zrvuEbyxL140hwABAgQIECBAgAABAgQIECBAgECGgJxXzivnJUCAAAECBAgQIECAAAECBAgQIEBg 3QJyXjnvukdwxpcbdiFAgAABAgQIECBAgAABAgQIECCwMQE5r5xXzkuAAAECBAgQIECAAAECBAgQ IECAwLoF5Lxy3nWP4I198aI5BAgQIECAAAECBAgQIECAAAECBDIE5LxyXjkvAQIECBAgQIAAAQIE CBAgQIAAAQLrFpDzynnXPYIzvtywCwECBAgQIECAAAECBAgQIECAAIGNCch55bxyXgIECBAgQIAA AQIECBAgQIAAAQIE1i0g55XzrnsEb+yLF80hQIAAAQIECBAgQIAAAQIECBAgkCEg55XzynkJECBA gAABAgQIECBAgAABAgQIEFi3gJxXzrvuEZzx5YZdCBAgQIAAAQIECBAgQIAAAQIECGxMQM4r55Xz EiBAgAABAgQIECBAgAABAgQIECCwbgE5r5x33SN4Y1+8aA4BAgQIECBAgAABAgQIECBAgACBDAE5 r5xXzkuAAAECBAgQIECAAAECBAgQIECAwLoF5Lxy3nWP4IwvN+xCgAABAgQIECBAgAABAgQIECBA YGMCcl45r5yXAAECBAgQIECAAAECBAgQIECAAIF1C8h55bzrHsEb++JFcwgQIECAAAECBAgQIECA AAECBAhkCMh55bxyXgIECBAgQIAAAQIECBAgQIAAAQIE1i0g55XzrnsEZ3y5YRcCBAgQIECAAAEC BAgQIECAAAECGxOQ88p55bwECBAgQIAAAQIECBAgQIAAAQIECKxbQM4r5133CN7YFy+aQ4AAAQIE CBAgQIAAAQIECBAgQCBDQM4r55XzEiBAgAABAgQIECBAgAABAgQIECCwbgE5r5x33SM448sNuxAg QIAAAQIECBAgQIAAAQIECBDYmICcNynn7WPy9wQIECBAgAABAgQIECBAgAABAgQIEFiswIRx9pcm LOvWRS22P1SMAAECBAgQIECAAAECBAgQIECAAAECQwUmDFTlvP91qL7tCRAgQIAAAQIECBAgQIAA AQIECBAgMF5AziucJUCAAAECBAgQIECAAAECBAgQIECAwLoF5Lzr7r/xSb8SCBAgQIAAAQIECBAg QIAAAQIECBBYu4CcV85LgAABAgQIECBAgAABAgQIECBAgACBdQvIedfdf2v/nkH9CRAgQIAAAQIE CBAgQIAAAQIECBAYLyDnlfMSIECAAAECBAgQIECAAAECBAgQIEBg3QI7zXknbLaiCBAgQIAAAQIE CBAgQIAAAQIECBAgsBmBL22mJRpCgAABAgQIECBAgAABAgQIECBAgACBfQrIeb+8z47XagIECBAg QIAAAQIECBAgQIAAAQIENiMg55XzEiBAgAABAgQIECBAgAABAgQIECBAYN0Cct51999mvnDQEAIE CBAgQIAAAQIECBAgQIAAAQIEsgXkvHJeAgQIECBAgAABAgQIECBAgAABAgQIrFtAzrvu/ssO+O1I gAABAgQIECBAgAABAgQIECBAgMBmBOS8cl4CBAgQIECAAAECBAgQIECAAAECBAisW0DOu+7+28wX DhpCgAABAgQIECBAgAABAgQIECBAgEC2gJxXzkuAAAECBAgQIECAAAECBAgQIECAAIF1C8h5191/ 2QG/HQkQIECAAAECBAgQIECAAAECBAgQ2IyAnFfOS4AAAQIECBAgQIAAAQIECBAgQIAAgXULyHnX 3X+b+cJBQwgQIECAAAECBAgQIECAAAECBAgQyBaQ88p5CRAgQIAAAQIECBAgQIAAAQIECBAgsG4B Oe+6+y874LcjAQIECBAgQIAAAQIECBAgQIAAAQKbEZDzynkJECBAgAABAgQIECBAgAABAgQIECCw bgE577r7bzNfOGgIAQIECBAgQIAAAQIECBAgQIAAAQLZAnJeOS8BAgQIECBAgAABAgQIECBAgAAB AgTWLSDnXXf/ZQf8diRAgAABAgQIECBAgAABAgQIECBAYDMCcl45LwECBAgQIECAAAECBAgQIECA AAECBNYtIOddd/9t5gsHDSFAgAABAgQIECBAgAABAgQIECBAIFtAzivnJUCAAAECBAgQIECAAAEC BAgQIECAwLoF5Lzr7r/sgN+OBAgQIECAAAECBAgQIECAAAECBAhsRkDOK+clQIAAAQIECBAgQIAA AQIECBAgQIDAugXkvOvuv8184aAhBAgQIECAAAECBAgQIECAAAECBAhkC8h55bwECBAgQIAAAQIE CBAgQIAAAQIECBBYt4Ccd939lx3w25EAAQIECBAgQIAAAQIECBAgQIAAgc0IyHnlvAQIECBAgAAB AgQIECBAgAABAgQIEFi3gJx33f23mS8cNIQAAQIECBAgQIAAAQIECBAgQIAAgWwBOa+clwABAgQI ECBAgAABAgQIECBAgAABAusWkPOuu/+yA347EiBAgAABAgQIECBAgAABAgQIECCwGQE5r5yXAAEC BAgQIECAAAECBAgQIECAAAEC6xaQ8667/zbzhYOGECBAgAABAgQIECBAgAABAgQIECCQLSDnlfMS IECAAAECBAgQIECAAAECBAgQIEBg3QJy3nX3X3bAb0cCBAgQIECAAAECBAgQIECAAAECBDYjIOeV 8xIgQIAAAQIECBAgQIAAAQIECBAgQGDdAnLedfffZr5w0JD/f3t2TAQADMNAjD/rcPD2OQHIUHn7 EiBAgAABAgQIECBAgAABAgQIECAwC+i8Oi8BAgQIECBAgAABAgQIECBAgAABAgTaAjpve7858Dsk QIAAAQIECBAgQIAAAQIECBAgQOCNgM6r8xIgQIAAAQIECBAgQIAAAQIECBAgQKAtoPO293vz4eAh BAgQIECAAAECBAgQIECAAAECBAjMAjqvzkuAAAECBAgQIECAAAECBAgQICg9CMUAAAEMSURBVECA AIG2gM7b3m8O/A4JECBAgAABAgQIECBAgAABAgQIEHgjoPPqvAQIECBAgAABAgQIECBAgAABAgQI EGgL6Lzt/d58OHgIAQIECBAgQIAAAQIECBAgQIAAAQKzgM6r8xIgQIAAAQIECBAgQIAAAQIECBAg QKAtoPO295sDv0MCBAgQIECAAAECBAgQIECAAAECBN4I6Lw6LwECBAgQIECAAAECBAgQIECAAAEC BNoCOm97vzcfDh5CgAABAgQIECBAgAABAgQIECBAgMAsoPPqvAQIECBAgAABAgQIECBAgAABAgQI EGgL6Lzt/ebA75AAAQIECBAgQIAAAQIECBAgQIAAgTcCB3QrCB91PU1NAAAAAElFTkSuQmCC --94eb2c19a6a8dbddeb054c216805-- From MAILER-DAEMON Sat Apr 01 17:14:53 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuQMH-0000MU-4c for mharc-bug-gawk@gnu.org; Sat, 01 Apr 2017 17:14:53 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53783) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuQMC-0000MM-Cm for bug-gawk@gnu.org; Sat, 01 Apr 2017 17:14:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cuQM9-0001jP-6L for bug-gawk@gnu.org; Sat, 01 Apr 2017 17:14:48 -0400 Received: from gw3a.telemetry-investments.com ([38.76.0.51]:37862 helo=sv3.telemetry-investments.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuQM9-0001jC-2H for bug-gawk@gnu.org; Sat, 01 Apr 2017 17:14:45 -0400 Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129]) by sv3.telemetry-investments.com (Postfix) with ESMTP id AB1281F2; Sat, 1 Apr 2017 17:14:44 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telemetry-investments.com; s=tele1409; t=1491081284; bh=GjFRpYOuUYWlFc7q6Xu6RNnJSgwl2rRsoudE9H6gcnE=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=fT1bC/Eb6NG0O7WS0WV5P8v56LP4mVTUH8HCFrIebHwyF+G5XrFKDCQWxc/M4gct1 gm3Jipr5Ji07XnIBfIu7aO1NeMgNYXVAT0LhIjRcVCGfDTiqlX20/Pwdx+dresRLQ+ ILfk7bPGDMiYG5iD0uBXu1KhJhkfOJFJ6cTRuNl0= Received: by ti129.telemetry-investments.com (Postfix, from userid 300) id A1D48338; Sat, 1 Apr 2017 17:14:44 -0400 (EDT) Date: Sat, 1 Apr 2017 17:14:44 -0400 From: "Andrew J. Schorr" To: Denis Shirokov Cc: bug-gawk@gnu.org Message-ID: <20170401211444.GA21611@ti129.telemetry-investments.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 38.76.0.51 Subject: Re: [bug-gawk] errout: wrong source line reported X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2017 21:14:49 -0000 Are you having trouble finding the bug? :-) Probably just some weirdness in the YACC parsing related to comments and/or white space. Does it actually matter? On Sat, Apr 01, 2017 at 11:22:48PM +0300, Denis Shirokov wrote: > hello > > (please see screenshot attached) > > there is two examples of how we can reproduce the issue. > at the left part of the screen you may see the gawk source, at the > right part of the screen - it's error output. > > it's seems like the gawk reporting wrong source line error > > kind regards > Denis Shirokov From MAILER-DAEMON Sat Apr 01 17:15:49 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuQNB-0000VO-KZ for mharc-bug-gawk@gnu.org; Sat, 01 Apr 2017 17:15:49 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53964) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuQN8-0000VI-V6 for bug-gawk@gnu.org; Sat, 01 Apr 2017 17:15:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cuQN7-0002Si-UY for bug-gawk@gnu.org; Sat, 01 Apr 2017 17:15:46 -0400 Received: from mail-pf0-x22a.google.com ([2607:f8b0:400e:c00::22a]:36485) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cuQN7-0002Ru-Oq for bug-gawk@gnu.org; Sat, 01 Apr 2017 17:15:45 -0400 Received: by mail-pf0-x22a.google.com with SMTP id o126so18355206pfb.3 for ; Sat, 01 Apr 2017 14:15:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=3m8XEr2BNAV6yvehvozYHJIIOGA2sKuWicaT13F69gg=; b=daC5Fv+NzwbCyuydcpLOmmSeOLaQRk298g8X2uMg/YvWmF0FAXxnpU4H+zSuSSzd1r 4zXl0dAm115P+d/vnWnV8JDaGagZjV0PqcNlFaHdcCdmBTiqBawTu/WXhvPkBrKP0IvL bx8DSknD0kPLtf29WCWpD9qIjPh/M6C7IWMhECtSmTkqZDqu6i5f60uF/Ls4oGr0BK2I 96xrHadAztawRwbfpt4BN+AmQLaQhaaGhu0uykjXHMx3rhMKcBzEmfdBNXiZvOjjcR+B i3M/syD/aobJ96bcaueX0MEJ5yh5Wws4C0r+yPHIJ9SAhvMhqdHtRqzCsWyCOMYbSsIp ISqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=3m8XEr2BNAV6yvehvozYHJIIOGA2sKuWicaT13F69gg=; b=Zlvu6Aa1ewfCrIVatZEt1qZ9Io6lYtB8lbYaieTQ+6rQpGp1G9WiZzzAGZQLYm62vO MMUO43tRxKQlePhq53Z04wE+53w5hNVcPYBWHvwl9itSDATp7ygunXNPPekuX5tivTnv wHPQlBpyHPXY+4FJuj07UqmFUqPgZSIXv+YjEP1ll4UGBY3L+pFXZUuSqfVycUTubqeC FGNG3U9+fHP47Wdz9IEI5Wv4LCLEqWuA64KWCuBWeemESf/dIalkgN1bUELmhEMUlnUq pFAD65rele0bj8fVqFY7ka9yog6+39qWJh+fW5o9tfGf264dq6pDCVMPzBPqN/BgLfex BqLg== X-Gm-Message-State: AFeK/H2OvNzZq9tnP6ZXJrJiTisj48iJwomE8Rjxsrh1EoQiQEnQ18ds7FWY/nbXbVn/1a2IGbCFEiOcPzoRrg== X-Received: by 10.99.175.66 with SMTP id s2mr9647369pgo.30.1491081344976; Sat, 01 Apr 2017 14:15:44 -0700 (PDT) MIME-Version: 1.0 Received: by 10.100.170.143 with HTTP; Sat, 1 Apr 2017 14:15:44 -0700 (PDT) Received: by 10.100.170.143 with HTTP; Sat, 1 Apr 2017 14:15:44 -0700 (PDT) In-Reply-To: <20170401211444.GA21611@ti129.telemetry-investments.com> References: <20170401211444.GA21611@ti129.telemetry-investments.com> From: Denis Shirokov Date: Sun, 2 Apr 2017 00:15:44 +0300 Message-ID: To: "Andrew J. Schorr" Cc: bug-gawk Content-Type: multipart/alternative; boundary=94eb2c1ba960e61186054c216d70 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400e:c00::22a Subject: Re: [bug-gawk] errout: wrong source line reported X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2017 21:15:47 -0000 --94eb2c1ba960e61186054c216d70 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable No. Actually no :) 2 =D0=B0=D0=BF=D1=80. 2017 =D0=B3. 0:14 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0= =BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C "Andrew J. Schorr" < aschorr@telemetry-investments.com> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0= =BB: > Are you having trouble finding the bug? :-) > Probably just some weirdness in the YACC parsing > related to comments and/or white space. Does it actually > matter? > > On Sat, Apr 01, 2017 at 11:22:48PM +0300, Denis Shirokov wrote: > > hello > > > > (please see screenshot attached) > > > > there is two examples of how we can reproduce the issue. > > at the left part of the screen you may see the gawk source, at the > > right part of the screen - it's error output. > > > > it's seems like the gawk reporting wrong source line error > > > > kind regards > > Denis Shirokov > --94eb2c1ba960e61186054c216d70 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
No. Actually no :)

2 =D0=B0=D0=BF=D1=80. 2017 =D0=B3. 0:14 =D0=BF=D0= =BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C "Andre= w J. Schorr" <= aschorr@telemetry-investments.com> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0= =B0=D0=BB:
Are you = having trouble finding the bug? :-)
Probably just some weirdness in the YACC parsing
related to comments and/or white space. Does it actually
matter?

On Sat, Apr 01, 2017 at 11:22:48PM +0300, Denis Shirokov wrote:
> hello
>
> (please see screenshot attached)
>
> there is two examples of how we can reproduce the issue.
> at the left part of the screen you may see the gawk source, at the
> right part of the screen - it's error output.
>
> it's seems like the gawk reporting wrong source line error
>
> kind regards
> Denis Shirokov
--94eb2c1ba960e61186054c216d70-- From MAILER-DAEMON Sat Apr 01 17:29:21 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuQaH-0001co-6q for mharc-bug-gawk@gnu.org; Sat, 01 Apr 2017 17:29:21 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58452) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuQaE-0001cI-TX for bug-gawk@gnu.org; Sat, 01 Apr 2017 17:29:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cuQaB-0007Ab-Pv for bug-gawk@gnu.org; Sat, 01 Apr 2017 17:29:18 -0400 Received: from resqmta-ch2-12v.sys.comcast.net ([69.252.207.44]:59692) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cuQaB-000792-KV for bug-gawk@gnu.org; Sat, 01 Apr 2017 17:29:15 -0400 Received: from resomta-ch2-01v.sys.comcast.net ([69.252.207.97]) by resqmta-ch2-12v.sys.comcast.net with SMTP id uQYmcZRtndlFQuQZDcC8X0; Sat, 01 Apr 2017 21:28:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20161114; t=1491082095; bh=fg79ddS97IE0VoBbEzIyxpFFvCHvFcM5t0G+4vBPTOs=; h=Received:Received:Subject:To:From:Message-ID:Date:MIME-Version: Content-Type; b=liGFVt+RNUban6SGDLe685XDPW+zVkJhBuXxk7sAmcp4RoWzYOr+3tqEBHB+af0mK 8gV6WMEQNNqXNRULLXTXLJNN9w/Ld4/hQMpXOmkyX8478ybtgfiVyJxMpB0RmJdacp okvOe23euCxhJZHTSPOmBPXDWYN6u30eLdhmRCiXJPWnMpEzEIpx8lqGiOxUCHQmSG 4eM2FHcUNjHvWdRTmXOzWGUGtNWdL62zOmcqnegznBvOCEgjUOqkXz8+30WiCZcROe d++r46F6bp88QPWh/jIdyfAOvm3G/9BEICBWp/8sQEQVWz0MIaFk4scNQLYcO/yLCf AgeKNUM6puXtg== Received: from [192.168.1.102] ([98.220.194.177]) by resomta-ch2-01v.sys.comcast.net with SMTP id uQZCcibfYY10NuQZCcrZbQ; Sat, 01 Apr 2017 21:28:15 +0000 To: "Andrew J. Schorr" References: <20170401135715.GA24807@ti129.telemetry-investments.com> <96d214a7-177c-392b-31a4-8da4dcc0b14a@comcast.net> <20170401170848.GA2560@ti129.telemetry-investments.com> Cc: bug-gawk@gnu.org From: Ed Morton Message-ID: <6dc68238-7674-7b09-959f-1d490d531ae3@comcast.net> Date: Sat, 1 Apr 2017 16:27:46 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170401170848.GA2560@ti129.telemetry-investments.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Antivirus: Avast (VPS 170401-0, 04/01/2017), Outbound message X-Antivirus-Status: Clean X-CMAE-Envelope: MS4wfIN23EFHQsk2BL1c5zTsI7mZUMidYB/OYMufv8h+KVQNSgVZ67hxExAjoAUZqACO2l6T4KHn407OHgZ9nO0YdHk7uyGRpzjDQ2aZwY5yPX6Nx8fnEW/i 08KkX2poI1wPFjGhZ0ewih+05g5bvn932UK47cCBwYA5un5q4P/d7PKoMfetO0xY6167iXxHk7s0xaaqeiwKvzzBzO3mSBxNMrmuLtyyCFRFUAtVnZWtJrSv X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 69.252.207.44 Subject: Re: [bug-gawk] FPAT bug? X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2017 21:29:19 -0000 FWIW it looks like users can work around it for now by re-setting FPAT for every record: $ cat tstFPAT.awk BEGIN { FPAT="[^,]*" } { oFPAT=FPAT; FPAT=""; FPAT=oFPAT print NF, $0 for (i=1;i<=NF;i++) print 1, "\t" i, "[" $i "]" print "" } $ awk -f tstFPAT.awk file1.csv 3 ,,3 1 1 [] 1 2 [] 1 3 [3] 3 ,,3 1 1 [] 1 2 [] 1 3 [3] Might be useful until a fix is available. Any better ideas for now? Regards, Ed. On 4/1/2017 12:08 PM, Andrew J. Schorr wrote: > On Sat, Apr 01, 2017 at 10:28:47AM -0500, Ed Morton wrote: >> OK, thanks for the update! > Just to confirm that this is a bug: I think the results must be > consistent with the patsplit function. In 4.1.4, it says: > > bash-4.2$ ./gawk 'BEGIN {nf = patsplit(",,3", f, "[^,]*"); for (i = 1; i <= nf; i++) printf "%d [%s]\n", i, f[i]}' > 1 [] > 2 [] > 3 [3] > > That is clearly inconsistent with: > > bash-4.2$ (echo ,,3; echo ,,3) | ./gawk -v "FPAT=[^,]*" '{for (i = 1; i <= NF; i++) printf "%d [%s]\n", i, $i}' > 1 [] > 2 [] > 3 [3] > 1 [] > 2 [3] > > So 4.1.4 is internally inconsistent; the first record was parsed correctly, but > the second was not. The only remaining question is how to fix this properly... > > Regards, > Andy > From MAILER-DAEMON Sun Apr 02 03:17:04 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuZl2-00027n-Cv for mharc-bug-gawk@gnu.org; Sun, 02 Apr 2017 03:17:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47789) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuZl0-00027a-JT for bug-gawk@gnu.org; Sun, 02 Apr 2017 03:17:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cuZkz-0005Fq-61 for bug-gawk@gnu.org; Sun, 02 Apr 2017 03:17:02 -0400 Received: from mail-oi0-x231.google.com ([2607:f8b0:4003:c06::231]:32879) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cuZkz-0005EM-0Z for bug-gawk@gnu.org; Sun, 02 Apr 2017 03:17:01 -0400 Received: by mail-oi0-x231.google.com with SMTP id b187so98117924oif.0 for ; Sun, 02 Apr 2017 00:16:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=r+vondtLWpM1+tmxy5B8ZoLcgwS1/pppe1Wqkk6RoSA=; b=Dhir9xuPz/E0vBDCiaYzFKOBevBOQK0+6Zbfl9PUUQ/ddI6XLDv+uEcuvNGvvWe0jM qIZVDukZ9diLdH0vC5DXwMua5qDL4XXJP4Ag/lRMhU7J+DY3Q00NUokNEVWuP/J92HQ6 +UlTgAEj1qlhYg7i6Q25kdX4uCShNF2bi1EeRLPASHeNYhTn57ZQ8G7Vk/Qr0TczvMC5 uFK3o7duXBRGXcqn/SXpzs+XuAjRgTpJzsguJhXn6D2X1S8qE8tMeqcX5eLbiaqLHfX4 +I9c+75lBxRhccd7aNQzbHhxqrcPlDSdKcFcn1ELnwYp9uHudsxsRtLeESE5w8ZFynhJ W43g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=r+vondtLWpM1+tmxy5B8ZoLcgwS1/pppe1Wqkk6RoSA=; b=J441UaNqPgy9f7ayTTuQ7y8aOIoJ/SlF2VzJOgDL1TkFkw8uggZUEEDgMEw853bc+s R2rhlxX4yWdJ4iz9i++8IZhmOqvmpt4jZfsT/m/IF3xCeR+Nrh9V+WrV/Sta75gdouGN yUNG3YhqQbHp2qupLTUv86DAcWzXF4kLG674R5BPSNI0RL7qMS4mu4stpKaKo5AbbhmP hBCJDL0XtXLmWV1HdZVtkapSsoJ9LXavFL/8KkWMYDlLbrbvwFqKrXxVS4QjtESmkdok gEZwEjDXEOWV+HVK041uwl3EC8svhbOTjVNp8EwFmjyr+rYU8wuy0r36rZmmXxbXEY9W ynoA== X-Gm-Message-State: AFeK/H3lnc/qnHJYkvC4vks2+RVFScCprwinUD5T1vHrM+QIPYssohQe0Fzsq4oMY+EhH6r+16wRbkEnpdjjUQ== X-Received: by 10.157.80.15 with SMTP id a15mr6075846oth.31.1491117418721; Sun, 02 Apr 2017 00:16:58 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.82.20 with HTTP; Sun, 2 Apr 2017 00:16:58 -0700 (PDT) In-Reply-To: References: <20170401211444.GA21611@ti129.telemetry-investments.com> From: Wolfgang Laun Date: Sun, 2 Apr 2017 09:16:58 +0200 Message-ID: To: bug-gawk Content-Type: multipart/alternative; boundary=f4030435abf80fba24054c29d4dd X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:4003:c06::231 Subject: Re: [bug-gawk] errout: wrong source line reported X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Apr 2017 07:17:03 -0000 --f4030435abf80fba24054c29d4dd Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable To the parser, the error isn't really manifest until "firm ground" is reached. A colon is a valid symbol, and so the expression cannot be processed until a delimiter (;) or EOF is seen. Note that the lines below are a valid if rather useless awk program: some text # comment # comment is fine (Remember Brian Kernighan's statement re awk's concatenation operator: "It seemed like a *good idea* at the time.") If you like puzzles, here is one: If you add a BEGIN { ... } to this program, what is the minimum you need to insert at the ellipsis to make the program produce some output? -W On 1 April 2017 at 23:15, Denis Shirokov wrote: > No. Actually no :) > > 2 =D0=B0=D0=BF=D1=80. 2017 =D0=B3. 0:14 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0= =BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C "Andrew J. Schorr" investments.com> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB: > > Are you having trouble finding the bug? :-) >> Probably just some weirdness in the YACC parsing >> related to comments and/or white space. Does it actually >> matter? >> >> On Sat, Apr 01, 2017 at 11:22:48PM +0300, Denis Shirokov wrote: >> > hello >> > >> > (please see screenshot attached) >> > >> > there is two examples of how we can reproduce the issue. >> > at the left part of the screen you may see the gawk source, at the >> > right part of the screen - it's error output. >> > >> > it's seems like the gawk reporting wrong source line error >> > >> > kind regards >> > Denis Shirokov >> > --f4030435abf80fba24054c29d4dd Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
To the parser, the error isn't really manifest un= til "firm ground" is reached. A colon is a valid symbol, and so t= he expression cannot be processed until a delimiter (;) or EOF is seen. Not= e that the lines below are a valid if rather useless awk program:

some text
# comment
# comment
is fine

(Remember Brian Kernighan'= ;s statement re awk's concatenation operator: "It seemed like a good idea at the time.")

If you like puzzles, here is one: If you add a BEGIN { ... } = to this program, what is the minimum you need to insert at the ellipsis to = make the program produce some output?

-W

On 1 April= 2017 at 23:15, Denis Shirokov <cosmogen@gmail.com> wrote:<= br>
No. Actually no :)

2 =D0=B0=D0=BF= =D1=80. 2017 =D0=B3. 0:14 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0= =D1=82=D0=B5=D0=BB=D1=8C "Andrew J. Schorr" <aschorr@telemetry-investments.com> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
<= div class=3D"h5">
Ar= e you having trouble finding the bug? :-)
Probably just some weirdness in the YACC parsing
related to comments and/or white space. Does it actually
matter?

On Sat, Apr 01, 2017 at 11:22:48PM +0300, Denis Shirokov wrote:
> hello
>
> (please see screenshot attached)
>
> there is two examples of how we can reproduce the issue.
> at the left part of the screen you may see the gawk source, at the
> right part of the screen - it's error output.
>
> it's seems like the gawk reporting wrong source line error
>
> kind regards
> Denis Shirokov

--f4030435abf80fba24054c29d4dd-- From MAILER-DAEMON Sun Apr 02 07:37:50 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cudpO-0003qZ-7r for mharc-bug-gawk@gnu.org; Sun, 02 Apr 2017 07:37:50 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52232) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cudpL-0003qG-Mk for bug-gawk@gnu.org; Sun, 02 Apr 2017 07:37:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cudpI-0005WV-Jr for bug-gawk@gnu.org; Sun, 02 Apr 2017 07:37:47 -0400 Received: from freefriends.org ([96.88.95.60]:40406) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cudpI-0005VI-CD for bug-gawk@gnu.org; Sun, 02 Apr 2017 07:37:44 -0400 X-Envelope-From: arnold@skeeve.com Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.14.9/8.14.9) with ESMTP id v32BbeCF010265; Sun, 2 Apr 2017 05:37:40 -0600 Received: (from arnold@localhost) by freefriends.org (8.14.9/8.14.9/submit) id v32BbeEY010264; Sun, 2 Apr 2017 11:37:40 GMT From: arnold@skeeve.com Message-Id: <201704021137.v32BbeEY010264@freefriends.org> X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to arnold@skeeve.com using -f Date: Sun, 02 Apr 2017 05:37:40 -0600 To: cosmogen@gmail.com, bug-gawk@gnu.org References: In-Reply-To: User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 96.88.95.60 Subject: Re: [bug-gawk] errout: wrong source line reported X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Apr 2017 11:37:48 -0000 Denis Shirokov wrote: > hello > > (please see screenshot attached) > > there is two examples of how we can reproduce the issue. > at the left part of the screen you may see the gawk source, at the > right part of the screen - it's error output. > > it's seems like the gawk reporting wrong source line error > > kind regards > Denis Shirokov As discussed, the parser doesn't see the error until it runs out of input. This can't be really be fixed, so I don't intend to do anything about it. Thanks, Arnold From MAILER-DAEMON Sun Apr 02 09:55:41 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cufyn-0002ze-NG for mharc-bug-gawk@gnu.org; Sun, 02 Apr 2017 09:55:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45304) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cufym-0002zY-Ac for bug-gawk@gnu.org; Sun, 02 Apr 2017 09:55:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cufyh-0002UT-Fe for bug-gawk@gnu.org; Sun, 02 Apr 2017 09:55:40 -0400 Received: from gw3a.telemetry-investments.com ([38.76.0.51]:39634 helo=sv3.telemetry-investments.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cufyh-0002UB-BC for bug-gawk@gnu.org; Sun, 02 Apr 2017 09:55:35 -0400 Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129]) by sv3.telemetry-investments.com (Postfix) with ESMTP id 17355251; Sun, 2 Apr 2017 09:55:33 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telemetry-investments.com; s=tele1409; t=1491141334; bh=rb4/vx+1zq5Rvg4qyhzG54n+d/3sOfjiyIzfL7xrCV0=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=XXZn+FLT6Z/2hHM6NWLFx/TqLt0uIcy86tUjfRWOmo1GJgskVYc7+oa5Y+H0zy34O NnUYvIddOfnennWvnjzK/n3sq7svD6kQkOkcMIWSlWIg1/mRipWJvrG9St8DpdOLPX UZSA01rC/7nKnQTtTYM/9kyWb84i911Exn8GkPKk= Received: by ti129.telemetry-investments.com (Postfix, from userid 300) id E8313338; Sun, 2 Apr 2017 09:55:33 -0400 (EDT) Date: Sun, 2 Apr 2017 09:55:33 -0400 From: "Andrew J. Schorr" To: Ed Morton Cc: bug-gawk@gnu.org Message-ID: <20170402135533.GA13784@ti129.telemetry-investments.com> References: <20170401135715.GA24807@ti129.telemetry-investments.com> <96d214a7-177c-392b-31a4-8da4dcc0b14a@comcast.net> <20170401170848.GA2560@ti129.telemetry-investments.com> <6dc68238-7674-7b09-959f-1d490d531ae3@comcast.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6dc68238-7674-7b09-959f-1d490d531ae3@comcast.net> User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 38.76.0.51 Subject: Re: [bug-gawk] FPAT bug? X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Apr 2017 13:55:41 -0000 On Sat, Apr 01, 2017 at 04:27:46PM -0500, Ed Morton wrote: > Might be useful until a fix is available. Any better ideas for now? I have no better ideas, although I can't imagine that such a solution would please anyone. Here's a crazy question: do you ever use FPAT for anything other than CSV parsing? If gawk had a proper CSV parser library, would we need FPAT at all? I don't think I have ever used FPAT (my personal CSV parsing library takes a brute force string scanning approach), and it seems from the observed bugginess that FPAT is not often used... Regards, Andy From MAILER-DAEMON Sun Apr 02 10:43:01 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cugib-0007JA-B5 for mharc-bug-gawk@gnu.org; Sun, 02 Apr 2017 10:43:01 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50747) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cugiZ-0007J4-9S for bug-gawk@gnu.org; Sun, 02 Apr 2017 10:43:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cugiY-0000SH-EE for bug-gawk@gnu.org; Sun, 02 Apr 2017 10:42:59 -0400 Received: from mail-oi0-x234.google.com ([2607:f8b0:4003:c06::234]:35023) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cugiY-0000Qx-9G for bug-gawk@gnu.org; Sun, 02 Apr 2017 10:42:58 -0400 Received: by mail-oi0-x234.google.com with SMTP id f193so102490412oib.2 for ; Sun, 02 Apr 2017 07:42:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=3OvZc+E95EO7fs63sBYJgeRe/5s5NG/uVJXRVBl+Yqo=; b=isEuU7wLVw3dUQkDEQ+/le3iuNMvjIQGeqnT9CLlSEsqeESJly4OTzDXinhOAuVs9b OhbM3lPg/VyuCZ6VKlOZ9Wjxrcw6f1X6dqv6pv7WRi9G3YOA13cKm8e3QNXUWwXhWILz Wvcw5hGrVWGLeVrmF1lNlwG5Nmh0ylatqg3FXP86PhZoCdMabxShBniOWqrQAFlztzA2 3zsv8DfiMHB0GUCQM3xnhHFoNXU77zvPhN9j4JQ1bpKuTXB+gH/oNTbCXUVtHlXgHfIh wRYjCK4DooGAcBGxOQiuKBM0PYzgPSsmJJAOmJRWI7P9Y4jc489y34AAeHU3aH+qOnrA t4LQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=3OvZc+E95EO7fs63sBYJgeRe/5s5NG/uVJXRVBl+Yqo=; b=rSgw7Xn5i/c6or/26aahOoNX7DoWiQZcdeuKd2skoXu4pFq6CgODgvY9Z8OsxVBsbB gUDrXsKGy6hhAX4x4CQJ8akepymrX7KncuyxyAwQFOJIViD0kOtIsx5RYQCo72osOH+8 ScrTV3gGVhoiQhOe0T3gTSwg8zFsWJlFVqoTwq7zWG++WuVcWFB3JITdfzZdWWGwLs6L QCgWT8IqvowrNeQpwsvLRxbfKLYUril2QQzdIVzESnNsUHCYmIdGBL1JxawqdiVGMWqI lOaQJFARnbx7+Cjz1EUW8+JIcEBsn0oK/HmAut5+2pUxEpS1WEMilR/9XvBajWDxXZUv oXlQ== X-Gm-Message-State: AFeK/H3shJCoZf254Kf9zZkuHljx6Djkq6YsMCUGxhUuCqvECXls0HeQfQg3E0UvZm/BhauD1/xVWTk8CUpCtw== X-Received: by 10.157.33.43 with SMTP id i40mr7650681otb.177.1491144176065; Sun, 02 Apr 2017 07:42:56 -0700 (PDT) MIME-Version: 1.0 Received: by 10.74.45.88 with HTTP; Sun, 2 Apr 2017 07:42:55 -0700 (PDT) In-Reply-To: <20170402135533.GA13784@ti129.telemetry-investments.com> References: <20170401135715.GA24807@ti129.telemetry-investments.com> <96d214a7-177c-392b-31a4-8da4dcc0b14a@comcast.net> <20170401170848.GA2560@ti129.telemetry-investments.com> <6dc68238-7674-7b09-959f-1d490d531ae3@comcast.net> <20170402135533.GA13784@ti129.telemetry-investments.com> From: david kerns Date: Sun, 2 Apr 2017 07:42:55 -0700 Message-ID: To: "Andrew J. Schorr" Cc: bug-gawk@gnu.org Content-Type: multipart/alternative; boundary=001a113e2d50ec63da054c300ea0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4003:c06::234 Subject: Re: [bug-gawk] FPAT bug? X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Apr 2017 14:43:00 -0000 --001a113e2d50ec63da054c300ea0 Content-Type: text/plain; charset=UTF-8 On Sun, Apr 2, 2017 at 6:55 AM, Andrew J. Schorr < aschorr@telemetry-investments.com> wrote: > On Sat, Apr 01, 2017 at 04:27:46PM -0500, Ed Morton wrote: > > Might be useful until a fix is available. Any better ideas for now? > > I have no better ideas, although I can't imagine that such a solution would > please anyone. Here's a crazy question: do you ever use FPAT for anything > other > than CSV parsing? If gawk had a proper CSV parser library, would we need > FPAT > at all? I don't think I have ever used FPAT (my personal CSV parsing > library > takes a brute force string scanning approach), and it seems from the > observed > bugginess that FPAT is not often used... > > Regards, > Andy > > I didn't know PFAT existed, so obviously never used it ohhh .. I'd like to see a CSV parser! ... and JSON, and XML ... all these text based formats that awk programs excel at //opinion on python could have made awk (and a several other languages) obsolete if Guido had used (), {}, and like C does //opinion off --001a113e2d50ec63da054c300ea0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
On S= un, Apr 2, 2017 at 6:55 AM, Andrew J. Schorr <aschorr@tel= emetry-investments.com> wrote:
On Sat, Apr 01, 2017 at 04:27:46PM -0500, Ed Morton wr= ote:
> Might be useful until a fix is available. Any better ideas for now?
I have no better ideas, although I can't imagine that such a sol= ution would
please anyone. Here's a crazy question: do you ever use FPAT for anythi= ng other
than CSV parsing? If gawk had a proper CSV parser library, would we need FP= AT
at all? I don't think I have ever used FPAT (my personal CSV parsing li= brary
takes a brute force string scanning approach), and it seems from the observ= ed
bugginess that FPAT is not often used...

Regards,
Andy

=C2=A0
I didn't know PFAT existed, so = obviously never used it

ohhh .. I'd like to see a CSV parser! ... and JSON, a= nd XML ... all these text based formats that awk programs excel at
//opinion on
python= could have made awk (and a several other languages) obsolete if Guido had = used (), {}, and <whitespace> like C does
//opinion off


--001a113e2d50ec63da054c300ea0-- From MAILER-DAEMON Sun Apr 02 10:46:16 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuglk-00081F-Qg for mharc-bug-gawk@gnu.org; Sun, 02 Apr 2017 10:46:16 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51521) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cugli-0007ze-Gs for bug-gawk@gnu.org; Sun, 02 Apr 2017 10:46:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cugld-0002mu-Lf for bug-gawk@gnu.org; Sun, 02 Apr 2017 10:46:14 -0400 Received: from gw3a.telemetry-investments.com ([38.76.0.51]:39844 helo=sv3.telemetry-investments.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cugld-0002mL-GC for bug-gawk@gnu.org; Sun, 02 Apr 2017 10:46:09 -0400 Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129]) by sv3.telemetry-investments.com (Postfix) with ESMTP id E0C6C1CA; Sun, 2 Apr 2017 10:46:07 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telemetry-investments.com; s=tele1409; t=1491144368; bh=SEpoy43ryK/nVULsjbYMnfwdoge99LAAOwAZpIUGelA=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=1FHmeyEoIdxPYnpBbKKB2HQFC6d7MRAj+d0e+tQlH2ArQHjKeL6pGp1K1lI3VpR3j M4ns/PyHmyHV3NE8LvFinoYel/eQsNeWshFK1MUDv2YJ8ofRRR+ZyphVrI8jnCVRxd fxkQIGRWHa4WU0p7QRcCcpsThJO2CuGPz+q4tJJI= Received: by ti129.telemetry-investments.com (Postfix, from userid 300) id CF97633D; Sun, 2 Apr 2017 10:46:07 -0400 (EDT) Date: Sun, 2 Apr 2017 10:46:07 -0400 From: "Andrew J. Schorr" To: david kerns Cc: bug-gawk@gnu.org Message-ID: <20170402144607.GA17204@ti129.telemetry-investments.com> References: <20170401135715.GA24807@ti129.telemetry-investments.com> <96d214a7-177c-392b-31a4-8da4dcc0b14a@comcast.net> <20170401170848.GA2560@ti129.telemetry-investments.com> <6dc68238-7674-7b09-959f-1d490d531ae3@comcast.net> <20170402135533.GA13784@ti129.telemetry-investments.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 38.76.0.51 Subject: Re: [bug-gawk] FPAT bug? X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Apr 2017 14:46:15 -0000 On Sun, Apr 02, 2017 at 07:42:55AM -0700, david kerns wrote: > I didn't know PFAT existed, so obviously never used it > > ohhh .. I'd like to see a CSV parser! ... and JSON, and XML ... all these > text based formats that awk programs excel at XML exists already in the gawkextlib project: https://sourceforge.net/projects/gawkextlib/ We are working on CSV. We need volunteers for JSON and YAML, but having the XML parser as a model should make those much easier... Regards, Andy From MAILER-DAEMON Sun Apr 02 12:09:06 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cui3u-0006s1-I7 for mharc-bug-gawk@gnu.org; Sun, 02 Apr 2017 12:09:06 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36951) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cui3s-0006rs-E8 for bug-gawk@gnu.org; Sun, 02 Apr 2017 12:09:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cui3n-00014N-9J for bug-gawk@gnu.org; Sun, 02 Apr 2017 12:09:04 -0400 Received: from mail-wr0-x234.google.com ([2a00:1450:400c:c0c::234]:36133) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cui3n-00013J-08 for bug-gawk@gnu.org; Sun, 02 Apr 2017 12:08:59 -0400 Received: by mail-wr0-x234.google.com with SMTP id w11so137002132wrc.3 for ; Sun, 02 Apr 2017 09:08:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:to:references:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding; bh=fCII/r1uwdw6m7N5Iq72dgQhdJVMrS0my6IoojQJVXQ=; b=jWLLocnsCw41qKDi12i4X/3stRP9AbFKYuBKdD4Qq+XQN5j4EZ0smqP5Kj2Kp0lb1F MvbbXfMYMFT1ucIfQ3SCb1ys50zn68iWzpndM9odjZVqBZgHWeLX5nkj6jy3aIZAwZUp b62Z3AdBqPF54X8MzqWiZkqR5S2/u4APA41EBSwWCdGuDip6ozP2UyxWjvmUeanDeabN 8ip5ZvusrwrceWR0XO376SNGZSGgi+Zkr1dm1qocl18UieV7d+sOLgMHlZKAvu4TVdno 0TWpONw3cvaJ2rTr35w2zK/Na9eg+F1KX+Aoaz1mZxhP1maSaAQoZiXKCVqbeQ5Q4zbL RRlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:references:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=fCII/r1uwdw6m7N5Iq72dgQhdJVMrS0my6IoojQJVXQ=; b=JvtKRZqEM3qEtdJdQM6e24xZgQI3sgLu591H/tKfKzHjVaaoaDsS5V6gsN1EbPTbH4 C5B+49oMRy9jaCmyYOz63Z/C8IdXtw99elTRT3yRkYgQRuVQiIHOnOQANA88b51ERY+t lIl2cnbL5TFgQfl6GkrsGAmosR6tiHTFtOI2YImtrEGuUoUH1jlN3RzJuT2ptlfvtzB8 10PKHMWFKAkC3d7cZcCqahodRM4DpFULrWcK+Id9ybByZrqXvadrEu74HpzsGTebC5G/ NcpO4VQLi/6LAE2AwL1f1EX168nNgZ/dtrmiFDlIV6zci/hkhrrMQ9TynOWyx4SsRpjS F0pg== X-Gm-Message-State: AFeK/H2KGQj2bBbwUwDDGXtGtKDS2VtySRJgVqbw8ERmJoFO2AsFd3/h 9UfTY3eC9fNUU6mD X-Received: by 10.28.62.139 with SMTP id l133mr5872698wma.130.1491149336218; Sun, 02 Apr 2017 09:08:56 -0700 (PDT) Received: from [192.168.5.193] (74.red-88-20-101.staticip.rima-tde.net. [88.20.101.74]) by smtp.gmail.com with ESMTPSA id a10sm14673664wra.17.2017.04.02.09.08.55 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 02 Apr 2017 09:08:55 -0700 (PDT) From: Manuel Collado To: bug-gawk@gnu.org References: <20170401135715.GA24807@ti129.telemetry-investments.com> <96d214a7-177c-392b-31a4-8da4dcc0b14a@comcast.net> <20170401170848.GA2560@ti129.telemetry-investments.com> <6dc68238-7674-7b09-959f-1d490d531ae3@comcast.net> <20170402135533.GA13784@ti129.telemetry-investments.com> Message-ID: <58E1221A.4010203@gmail.com> Date: Sun, 2 Apr 2017 18:08:58 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <20170402135533.GA13784@ti129.telemetry-investments.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::234 Subject: Re: [bug-gawk] FPAT bug? X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Apr 2017 16:09:05 -0000 El 02/04/2017 a las 15:55, Andrew J. Schorr escribió: > On Sat, Apr 01, 2017 at 04:27:46PM -0500, Ed Morton wrote: >> Might be useful until a fix is available. Any better ideas for now? > > I have no better ideas, although I can't imagine that such a solution would > please anyone. Here's a crazy question: do you ever use FPAT for anything other > than CSV parsing? If gawk had a proper CSV parser library, would we need FPAT > at all? I don't think I have ever used FPAT (my personal CSV parsing library > takes a brute force string scanning approach), and it seems from the observed > bugginess that FPAT is not often used... Any FPAT regex that matches null strings is inherently ambiguous. It could provide any number of null fields at any position. So FPAT must be extended with some implicit restrictions on field separators. I assume that the most intuitive approach if to allow null field separators only between contiguous non-null fields. I assume that FPAT and patsplit() implementations try to achieve this policy, but may fail in some cases. But even the above is not enough. What about a null record? Should it provide a single null field or no fields at all? So, what is the precise unambiguous specification of the FPAT split feature, if it allows null fields? Hope this helps. -- Manuel Collado - http://lml.ls.fi.upm.es/~mcollado From MAILER-DAEMON Sun Apr 02 17:06:39 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cumhq-0004vG-SE for mharc-bug-gawk@gnu.org; Sun, 02 Apr 2017 17:06:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51859) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cumho-0004tn-89 for bug-gawk@gnu.org; Sun, 02 Apr 2017 17:06:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cumhl-0000ip-1B for bug-gawk@gnu.org; Sun, 02 Apr 2017 17:06:36 -0400 Received: from resqmta-ch2-04v.sys.comcast.net ([69.252.207.36]:51248) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cumhk-0000fF-QB for bug-gawk@gnu.org; Sun, 02 Apr 2017 17:06:32 -0400 Received: from resomta-ch2-03v.sys.comcast.net ([69.252.207.99]) by resqmta-ch2-04v.sys.comcast.net with SMTP id umgEcKJTJscBPumgjccAeV; Sun, 02 Apr 2017 21:05:29 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20161114; t=1491167129; bh=DQGTiUrD+kcmcvBAN93W+dG3xxEhei1l92XlYsHatLg=; h=Received:Received:Subject:To:From:Message-ID:Date:MIME-Version: Content-Type; b=TO2yoCETvz4XGZbHzzccwdY5YARBhCgejijaPtvGYGqQYgk2isKXBj7h81glbbUiM lmEqev3RwUKwZfWlUiA7IFYVrFUI7h/T5QQJ6+J3QgG/+QXmao8CGEyggLiOaokR39 A7RGBO0PHkGqPmxGsxnNFYSBkMDRAy2q3677KpCTHe+oyBBLy43882L8gekQNoNsaB YgUOcz4ttdCFJmfzjn8B06VG7r6ZAMZ91F6/CTj2n5gG2YnlyfS+eVu3LrbvZKpqBL FeAIqFRVoFWwYhwKt07qmlXA9mV8hD8L4TTqQn13uN5QrUSMrqOYtkH878HozEKS0C 2P11fkGjmG9cQ== Received: from [192.168.1.102] ([98.220.194.177]) by resomta-ch2-03v.sys.comcast.net with SMTP id umgictPOzVzqSumgjcnQl6; Sun, 02 Apr 2017 21:05:29 +0000 To: "Andrew J. Schorr" References: <20170401135715.GA24807@ti129.telemetry-investments.com> <96d214a7-177c-392b-31a4-8da4dcc0b14a@comcast.net> <20170401170848.GA2560@ti129.telemetry-investments.com> <6dc68238-7674-7b09-959f-1d490d531ae3@comcast.net> <20170402135533.GA13784@ti129.telemetry-investments.com> Cc: bug-gawk@gnu.org From: Ed Morton Message-ID: <253a7580-73f2-a806-2475-053d6f513ec7@comcast.net> Date: Sun, 2 Apr 2017 16:05:01 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170402135533.GA13784@ti129.telemetry-investments.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Antivirus: Avast (VPS 170402-0, 04/02/2017), Outbound message X-Antivirus-Status: Clean X-CMAE-Envelope: MS4wfBooDXkZsW2bu6i/buWVNKuMWauxuvDrUY+ao1x0cn7bpG7U+BUaTVxpSrlmvG1oDytqq7xOT8iE6iZ7UKqwTdEXuJ+RSc178O1XrAVOEqkxOeCF8Izm DyaaUQ5dSiZORyZ4093e0Q4XjxkW1gosR4wMB96jjuE2bJB9t+taJPByR/Oz0dEkE6lGMbANenndgunr8t+iKmiBTsdOGVuWt6rXam1vfKvKnnVa4HARRgLv X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 69.252.207.36 Subject: Re: [bug-gawk] FPAT bug? X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Apr 2017 21:06:37 -0000 Andy - I THINK I have used FPAT for other things but I really don't remember and I can always write a while(match()) loop instead. So if gawk had a proper CSV parser built in then I probably wouldn't need FPAT but if it's a library that I might need to download and compile then I wouldn't use that library as I've no time/patience for dealing with that if/when I'm just jumping onto someone's computer to help them get a specific job done plus I often don't have permission to install anything myself on the machines I use so then I'd still need FPAT. Obviously what I suggested is just a temp workaround for us to get by until a fix is available, not a solution. Ed. On 4/2/2017 8:55 AM, Andrew J. Schorr wrote: > On Sat, Apr 01, 2017 at 04:27:46PM -0500, Ed Morton wrote: >> Might be useful until a fix is available. Any better ideas for now? > I have no better ideas, although I can't imagine that such a solution would > please anyone. Here's a crazy question: do you ever use FPAT for anything other > than CSV parsing? If gawk had a proper CSV parser library, would we need FPAT > at all? I don't think I have ever used FPAT (my personal CSV parsing library > takes a brute force string scanning approach), and it seems from the observed > bugginess that FPAT is not often used... > > Regards, > Andy > From MAILER-DAEMON Mon Apr 03 02:30:03 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuvV5-00010b-Sy for mharc-bug-gawk@gnu.org; Mon, 03 Apr 2017 02:30:03 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56381) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuvV4-00010V-29 for bug-gawk@gnu.org; Mon, 03 Apr 2017 02:30:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cuvV1-0005iT-0u for bug-gawk@gnu.org; Mon, 03 Apr 2017 02:30:02 -0400 Received: from freefriends.org ([96.88.95.60]:59484) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuvV0-0005iJ-PS for bug-gawk@gnu.org; Mon, 03 Apr 2017 02:29:58 -0400 X-Envelope-From: arnold@skeeve.com Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.14.9/8.14.9) with ESMTP id v336Ttfe016032; Mon, 3 Apr 2017 00:29:55 -0600 Received: (from arnold@localhost) by freefriends.org (8.14.9/8.14.9/submit) id v336TsBA016031; Mon, 3 Apr 2017 06:29:54 GMT From: arnold@skeeve.com Message-Id: <201704030629.v336TsBA016031@freefriends.org> X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to arnold@skeeve.com using -f Date: Mon, 03 Apr 2017 00:29:54 -0600 To: mortoneccc@comcast.net, aschorr@telemetry-investments.com Cc: bug-gawk@gnu.org References: <20170401135715.GA24807@ti129.telemetry-investments.com> <96d214a7-177c-392b-31a4-8da4dcc0b14a@comcast.net> <20170401170848.GA2560@ti129.telemetry-investments.com> <6dc68238-7674-7b09-959f-1d490d531ae3@comcast.net> <20170402135533.GA13784@ti129.telemetry-investments.com> <253a7580-73f2-a806-2475-053d6f513ec7@comcast.net> In-Reply-To: <253a7580-73f2-a806-2475-053d6f513ec7@comcast.net> User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 96.88.95.60 Subject: Re: [bug-gawk] FPAT bug? X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Apr 2017 06:30:03 -0000 As long as I am the maintainer, CSV parsing will not be built-in. Libraries / extensions are the right way(s) to do that. I will get around to investigating the issue with FPAT. Arnold Ed Morton wrote: > Andy - I THINK I have used FPAT for other things but I really don't remember and > I can always write a while(match()) loop instead. So if gawk had a proper CSV > parser built in then I probably wouldn't need FPAT but if it's a library that I > might need to download and compile then I wouldn't use that library as I've no > time/patience for dealing with that if/when I'm just jumping onto someone's > computer to help them get a specific job done plus I often don't have permission > to install anything myself on the machines I use so then I'd still need FPAT. > > Obviously what I suggested is just a temp workaround for us to get by until a > fix is available, not a solution. > > Ed. > > On 4/2/2017 8:55 AM, Andrew J. Schorr wrote: > > On Sat, Apr 01, 2017 at 04:27:46PM -0500, Ed Morton wrote: > >> Might be useful until a fix is available. Any better ideas for now? > > I have no better ideas, although I can't imagine that such a solution would > > please anyone. Here's a crazy question: do you ever use FPAT for anything other > > than CSV parsing? If gawk had a proper CSV parser library, would we need FPAT > > at all? I don't think I have ever used FPAT (my personal CSV parsing library > > takes a brute force string scanning approach), and it seems from the observed > > bugginess that FPAT is not often used... > > > > Regards, > > Andy > > > From MAILER-DAEMON Mon Apr 03 07:06:08 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cuzoF-0006hq-Og for mharc-bug-gawk@gnu.org; Mon, 03 Apr 2017 07:06:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57466) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cuzoD-0006fy-9N for bug-gawk@gnu.org; Mon, 03 Apr 2017 07:06:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cuzo7-0005k1-4S for bug-gawk@gnu.org; Mon, 03 Apr 2017 07:06:05 -0400 Received: from resqmta-po-09v.sys.comcast.net ([96.114.154.168]:55896) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cuzo6-0005jI-TT for bug-gawk@gnu.org; Mon, 03 Apr 2017 07:05:59 -0400 Received: from resomta-po-06v.sys.comcast.net ([96.114.154.230]) by resqmta-po-09v.sys.comcast.net with SMTP id uzn7cSg31DKCQuzn7c7u4n; Mon, 03 Apr 2017 11:04:57 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20161114; t=1491217497; bh=gma2mZ/0tk+u9nCh5VlWtWo9JcxdkRYOZEEF7nhrh0Y=; h=Received:Received:Content-Type:Mime-Version:Subject:From:Date: Message-Id:To; b=kMlYyYKGL/Yk9Dbc927RgUzldFnj2xD0YYyFwQN7ShG/yOfuYbPxm0RV3y8vIA6Pm cyoMvNC5ZP+4y05hxcVj59HDjSsFP5udTvKqEVWh4x2a2qYsXwOAkvjE6n3dp0WmU8 EZtKlUPZftp5lrRhUCW0UHORtOyH9lWeEBn3T7H/lV/OT10amsdEWwwUeUMfPsCssu UBdqXJW92MIy/HBhym6XcaYg2UbPl7lYsXS5FdFfpLHrBAm7Yw+PA37/0eQK8ImwLz 6RH66iJ3ij5LBH6cudo8ajaN2BSfQa9kRIWQmzZP63sd2PgPf9eSo9Pcj/3pMIZSo6 po6HHQyBXFrEA== Received: from [IPv6:2600:1008:b054:d042:c485:25:2636:3356] ([IPv6:2600:1008:b054:d042:c485:25:2636:3356]) by resomta-po-06v.sys.comcast.net with SMTP id uzmncAoUfufs1uzmtcJksG; Mon, 03 Apr 2017 11:04:54 +0000 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (1.0) From: Ed Morton In-Reply-To: <201704030629.v336TsBA016031@freefriends.org> Date: Mon, 3 Apr 2017 06:03:40 -0500 Cc: aschorr@telemetry-investments.com, bug-gawk@gnu.org Message-Id: <535EDFFD-15B7-490C-ABF2-AEF7A7FF270B@comcast.net> References: <20170401135715.GA24807@ti129.telemetry-investments.com> <96d214a7-177c-392b-31a4-8da4dcc0b14a@comcast.net> <20170401170848.GA2560@ti129.telemetry-investments.com> <6dc68238-7674-7b09-959f-1d490d531ae3@comcast.net> <20170402135533.GA13784@ti129.telemetry-investments.com> <253a7580-73f2-a806-2475-053d6f513ec7@comcast.net> <201704030629.v336TsBA016031@freefriends.org> To: arnold@skeeve.com X-Mailer: iPhone Mail (14D27) X-CMAE-Envelope: MS4wfNGKEmjR80NNFrxiEIwcGJtPnf26Xr4LNj0EH3GbRm8Kzml2yhkZfcknIE7MNAdFR759bvKKzYJqpYFfiwyfhBSvPHte+Hr/J0vrRxs7OS73hS6wsrGy l80aPg4X68TGb2YTpWVdQuHLWFVRrE+OPqoz7NNKfAOLTgd7QzzPYG0QOW5jjARjiAQ+Uu24/jWBltSEFQKNyBWUTSEZeigZ7GBsb7LpAjCR1TOlQbaIc6LQ ZdbOUZnMtPDCP/LjKKoD54mfBNy4e/1uaw/vpAunqbM0oTEsiW+IUwMNR/qWbkX9YP7f8is2k/kHV4WBvI1zgg== X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 96.114.154.168 Subject: Re: [bug-gawk] FPAT bug? X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Apr 2017 11:06:06 -0000 I completely understand, no problem, I just personally can't use a library i= f it's not simply available to use everywhere gawk is but I'm sure many peop= le can. Thanks for looking into the fpat issue. Ed Morton > On Apr 3, 2017, at 1:29 AM, arnold@skeeve.com wrote: >=20 > As long as I am the maintainer, CSV parsing will not be built-in. > Libraries / extensions are the right way(s) to do that. >=20 > I will get around to investigating the issue with FPAT. >=20 > Arnold >=20 > Ed Morton wrote: >=20 >> Andy - I THINK I have used FPAT for other things but I really don't remem= ber and=20 >> I can always write a while(match()) loop instead. So if gawk had a proper= CSV=20 >> parser built in then I probably wouldn't need FPAT but if it's a library t= hat I=20 >> might need to download and compile then I wouldn't use that library as I'= ve no=20 >> time/patience for dealing with that if/when I'm just jumping onto someone= 's=20 >> computer to help them get a specific job done plus I often don't have per= mission=20 >> to install anything myself on the machines I use so then I'd still need FP= AT. >>=20 >> Obviously what I suggested is just a temp workaround for us to get by unt= il a=20 >> fix is available, not a solution. >>=20 >> Ed. >>=20 >>>> On 4/2/2017 8:55 AM, Andrew J. Schorr wrote: >>>> On Sat, Apr 01, 2017 at 04:27:46PM -0500, Ed Morton wrote: >>>> Might be useful until a fix is available. Any better ideas for now? >>> I have no better ideas, although I can't imagine that such a solution wo= uld >>> please anyone. Here's a crazy question: do you ever use FPAT for anythin= g other >>> than CSV parsing? If gawk had a proper CSV parser library, would we need= FPAT >>> at all? I don't think I have ever used FPAT (my personal CSV parsing lib= rary >>> takes a brute force string scanning approach), and it seems from the obs= erved >>> bugginess that FPAT is not often used... >>>=20 >>> Regards, >>> Andy >>=20 From MAILER-DAEMON Wed Apr 05 17:04:55 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cvs6p-0002hg-5M for mharc-bug-gawk@gnu.org; Wed, 05 Apr 2017 17:04:55 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50461) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cvs6l-0002hO-W0 for bug-gawk@gnu.org; Wed, 05 Apr 2017 17:04:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cvs6i-0003Nu-Lg for bug-gawk@gnu.org; Wed, 05 Apr 2017 17:04:51 -0400 Received: from mail-wr0-x22e.google.com ([2a00:1450:400c:c0c::22e]:34873) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cvs6i-0003NS-FB for bug-gawk@gnu.org; Wed, 05 Apr 2017 17:04:48 -0400 Received: by mail-wr0-x22e.google.com with SMTP id o21so5295584wrb.2 for ; Wed, 05 Apr 2017 14:04:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to; bh=5OSFywz4Z0vLw9dltdZsWxJSYCNmOpMB5uoYrH3uNHE=; b=HS0UQRHR/5dRuOkMavmIvw1eOAs4V4ol04lEMH9z/kvRy+AtnRqyxbp7S3T2VeMeAX VP4kLJ/MRlBLxLwMlzlimWZWrspOUEY1facmEzQY4/ggbVqJ6+4kWP5OsIYMfZ4QlqML P9ydHnstjX6aR6toBFlHeVZQd0LYn1WgLXg6voVtdEVaamMU2/MOwr6Ala4kPcjF6NPy S42VCAN/MKReRZVpyeIiw6FkvcgQRRemLXH6eqSKKTyjwXs02Cb+WUDLJ/nwHw5dT9vD mot3wjW/Yn2sw2VcOxnCpomYdxFMXC8Z5d4MLUkzFQbYW0l5CJkrdX/WwtZuXachI061 irPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to; bh=5OSFywz4Z0vLw9dltdZsWxJSYCNmOpMB5uoYrH3uNHE=; b=CMC1sFwQb8Q2iT/skwFwdQ4ZTmvvtw7lRPSkjL1IwB0Nd7e/B2lsveymzcGg9HkCcu DXOlt9l0nHmxgMERUAh0H0e8J6Jae6SJ39akW2PCkkLhw4SJeGKoQSL3tvWrTsq9nXGV REcG32RPIR6qIiWnp159h7CEiUo33lVtxpM5hBOWprNk+3TyPM1XwlImzd8sL9sXprGJ woCcf923SwK7IdMB/bwVU70Y0qac3YoOzrMpp8iVPkGsXYKB9Sm49YakahRb9CUQQ/Tu 048JI7VotuT/R1EOkhUaJlKxBLl5N6Ez01zXtZJ8+GzldE9JG22EpGMqnnpAupK/cvAa vtgA== X-Gm-Message-State: AFeK/H3QGOzbkouxEZrR+xuYV57A8N8rOj6Stci4ehXFvPqPT6OtvVAa/gr/aWTR5fXAPw== X-Received: by 10.28.227.213 with SMTP id a204mr19781129wmh.120.1491426286824; Wed, 05 Apr 2017 14:04:46 -0700 (PDT) Received: from [192.168.1.33] (176.red-88-27-178.staticip.rima-tde.net. [88.27.178.176]) by smtp.gmail.com with ESMTPSA id w52sm596403wrc.14.2017.04.05.14.04.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 05 Apr 2017 14:04:45 -0700 (PDT) To: arnold@skeeve.com References: <20170401135715.GA24807@ti129.telemetry-investments.com> <96d214a7-177c-392b-31a4-8da4dcc0b14a@comcast.net> <20170401170848.GA2560@ti129.telemetry-investments.com> <6dc68238-7674-7b09-959f-1d490d531ae3@comcast.net> <20170402135533.GA13784@ti129.telemetry-investments.com> <253a7580-73f2-a806-2475-053d6f513ec7@comcast.net> <201704030629.v336TsBA016031@freefriends.org> Cc: bug-gawk@gnu.org From: Manuel Collado Message-ID: <58E55BEF.6040702@gmail.com> Date: Wed, 5 Apr 2017 23:04:47 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <201704030629.v336TsBA016031@freefriends.org> Content-Type: multipart/mixed; boundary="------------070601030207040901030907" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22e Subject: Re: [bug-gawk] FPAT bug? X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Apr 2017 21:04:53 -0000 This is a multi-part message in MIME format. --------------070601030207040901030907 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit El 03/04/2017 a las 8:29, arnold@skeeve.com escribió: >[...] > I will get around to investigating the issue with FPAT. Perhaps a problem with the FPAT feature is how the parsing algorithm is structured. Thinking about it, I feel there is a simpler way to structure the code. Attached is what can be an awk reference implementation of the FPAT parser. It differs from the current implementation in some ways: - Each iteration of the parsing loop identifies exactly one (separator[n-1],field[n]) pair. The last iteration may deliver just a final separator. - Each (separator/field) pair must consume some input characters. Except for the first (sep[0]/field[1]) that can be both nulls. - So a null field is only valid as a first field or after a non-null separator. This avoid the use of flags to remember some state from the previous loop iteration. The attached code has been tested with the (adapted) set of fpat*.awk tests, and some more. Please advice if it is worth the pain of trying to restructure the current code, or if there is a simpler way to fix the FPAT bug. Hope this helps. Regards. -- Manuel Collado - http://lml.ls.fi.upm.es/~mcollado --------------070601030207040901030907 Content-Type: text/plain; charset=UTF-8; name="refpatsplit.awk" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="refpatsplit.awk" # Reference implementation of the FPAT record parsing. # # Each loop iteration identifies a (separator[n-1],field[n]) pair. # Each loop iteration must consume some characters, except for the first field. # So a null field is only valid as a first field or after a non-null separator. # A null record has no fields (not a single null field). function refpatsplit(string, fields, pattern, seps, parse_start, sep_start, field_start, field_length, field_found, nf) # locals { # Local state variables: # - parse_start: pointer to the first not yet consumed character # - sep_start: pointer to the beginning of the parsed separator # - field start: pointer to the beginning of the parsed field # - field length: length of the parsed field # - field_found: flag for succesful field match # - nf: Number of fields found so far # Prepare for parsing parse_start = 1 # first not yet parsed char nf = 0 # fields found so far delete fields delete seps # Loop that consumes the whole record while (parse_start <= length(string)) { # still something to parse # first attempt to match a field sep_start = parse_start field_found = match(substr(string, parse_start), pattern) # check for an invalid null field and retry one character away if (nf > 0 && field_found && RSTART==1 && RLENGTH==0) { parse_start++ field_found = match(substr(string, parse_start), pattern) } # store the (sep[n-1],field[n]) pair if (field_found) { field_start = parse_start + RSTART - 1 field_length = RLENGTH seps[nf] = substr(string, sep_start, field_start-sep_start) fields[++nf] = substr(string, field_start, field_length) parse_start = field_start + field_length # store the final extra sep after the last field } else { seps[nf] = substr(string, sep_start) parse_start = length(string) + 1 } } return nf } --------------070601030207040901030907-- From MAILER-DAEMON Sat Apr 08 07:38:34 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cwohO-0000dB-1B for mharc-bug-gawk@gnu.org; Sat, 08 Apr 2017 07:38:34 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57479) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwohL-0000d4-0K for bug-gawk@gnu.org; Sat, 08 Apr 2017 07:38:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cwohH-0006Rr-TH for bug-gawk@gnu.org; Sat, 08 Apr 2017 07:38:31 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:39822) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwohH-0006Rn-QD; Sat, 08 Apr 2017 07:38:27 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2203 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cwohG-0000aD-Uw; Sat, 08 Apr 2017 07:38:27 -0400 Date: Sat, 08 Apr 2017 14:38:36 +0300 Message-Id: <83k26vm8n7.fsf@gnu.org> From: Eli Zaretskii To: arnold@skeeve.com CC: aschorr@telemetry-investments.com, bug-gawk@gnu.org In-reply-to: <201703291626.v2TGQSAp023517@freefriends.org> (arnold@skeeve.com) Reply-to: Eli Zaretskii References: <83h92g9i7z.fsf@gnu.org> <58D7DE67.8080306@orange.com> <83efxk9f87.fsf@gnu.org> <58D7ECF0.5000000@orange.com> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Apr 2017 11:38:32 -0000 > From: arnold@skeeve.com > Date: Wed, 29 Mar 2017 10:26:28 -0600 > Cc: bug-gawk@gnu.org, arnold@skeeve.com > > Eli Zaretskii wrote: > > > As to whether this result is horrible: I guess it depends on whether > > we want the behavior to be more consistent across platforms. I'd like > > at least to "fix" errno in this case to be EPIPE, then we can talk > > about what exit status to produce. Does that make sense? > > Sounds like a plan to me. Thanks! Now done on the master branch, including the proper exit status. From MAILER-DAEMON Sat Apr 08 11:59:39 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cwsm3-00006P-2w for mharc-bug-gawk@gnu.org; Sat, 08 Apr 2017 11:59:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37443) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwsm0-000066-4r for bug-gawk@gnu.org; Sat, 08 Apr 2017 11:59:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cwslx-0001fy-2W for bug-gawk@gnu.org; Sat, 08 Apr 2017 11:59:36 -0400 Received: from gw3a.telemetry-investments.com ([38.76.0.51]:51794 helo=sv3.telemetry-investments.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwslw-0001ew-Sp for bug-gawk@gnu.org; Sat, 08 Apr 2017 11:59:32 -0400 Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129]) by sv3.telemetry-investments.com (Postfix) with ESMTP id 535CD1F7; Sat, 8 Apr 2017 11:59:30 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telemetry-investments.com; s=tele1409; t=1491667170; bh=R/o84QZESvVRCuH1KCygWukmFQJq9AK5c+2zG1CVrrk=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=ZY/VKhl+UhD4uj5nseZrLB7OF+3KlICOzRT4cSQcwcizvZKrdExv/pw2DSH7mDYfE U/G/OGSbxu6kd5B88BC8fgVo1A6Yjc10/UZgao0wMAGhSg3oNj8xyGKHYR92SMaL5j hZkQOOSyUWuZ7R1g1PukoqZAcaHt7zXzDHGceCDc= Received: by ti129.telemetry-investments.com (Postfix, from userid 300) id 2E22833C; Sat, 8 Apr 2017 11:59:30 -0400 (EDT) Date: Sat, 8 Apr 2017 11:59:30 -0400 From: "Andrew J. Schorr" To: Stephane Delsert Cc: "arnold@skeeve.com" , "bug-gawk@gnu.org" Message-ID: <20170408155930.GA29624@ti129.telemetry-investments.com> References: <20170329184233.GB15917@ti129.telemetry-investments.com> <201703291956.v2TJuh4V013261@freefriends.org> <201703300704.v2U74MJr012897@freefriends.org> <20170330125618.GA10336@ti129.telemetry-investments.com> <20170330152010.GA27660@ti129.telemetry-investments.com> <20170330164828.GA22819@ti129.telemetry-investments.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="1yeeQ81UyVL57Vl7" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 38.76.0.51 Subject: Re: [bug-gawk] Memory leak X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Apr 2017 15:59:37 -0000 --1yeeQ81UyVL57Vl7 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Stephane, On Fri, Mar 31, 2017 at 04:04:01PM +0000, Stephane Delsert wrote: > I added your lines in the code and reran the tests with 1MM and 2MM. I've always a memory leak : 1.5 Gb for 84MM of records processed . If you apply the attached patch to pristine gawk-4.1.4 sources, does it fix your memory leak? Thanks, Andy --1yeeQ81UyVL57Vl7 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="mem.patch" diff -up ./array.c.orig ./array.c --- ./array.c.orig 2016-08-24 15:31:55.000000000 -0400 +++ ./array.c 2017-04-08 11:51:21.838405785 -0400 @@ -1348,12 +1348,22 @@ assoc_list(NODE *symbol, const char *sor list = symbol->alist(symbol, & akind); assoc_kind = (assoc_kind_t) akind.flags; /* symbol->alist can modify it */ - if (list == NULL || ! cmp_func || (assoc_kind & (AASC|ADESC)) != 0) - return list; /* empty list or unsorted, or list already sorted */ + /* check for empty list or unsorted, or list already sorted */ + if (list != NULL && cmp_func != NULL && (assoc_kind & (AASC|ADESC)) == 0) { + num_elems = assoc_length(symbol); - num_elems = assoc_length(symbol); + qsort(list, num_elems, elem_size * sizeof(NODE *), cmp_func); /* shazzam! */ - qsort(list, num_elems, elem_size * sizeof(NODE *), cmp_func); /* shazzam! */ + if (sort_ctxt == SORTED_IN && (assoc_kind & (AINDEX|AVALUE)) == (AINDEX|AVALUE)) { + /* relocate all index nodes to the first half of the list. */ + for (j = 1; j < num_elems; j++) + list[j] = list[2 * j]; + + /* give back extra memory */ + + erealloc(list, NODE **, num_elems * sizeof(NODE *), "assoc_list"); + } + } if (cmp_func == sort_user_func) { code = POP_CODE(); @@ -1362,15 +1372,5 @@ assoc_list(NODE *symbol, const char *sor bcfree(code); /* Op_func_call */ } - if (sort_ctxt == SORTED_IN && (assoc_kind & (AINDEX|AVALUE)) == (AINDEX|AVALUE)) { - /* relocate all index nodes to the first half of the list. */ - for (j = 1; j < num_elems; j++) - list[j] = list[2 * j]; - - /* give back extra memory */ - - erealloc(list, NODE **, num_elems * sizeof(NODE *), "assoc_list"); - } - return list; } diff -up ./awk.h.orig ./awk.h --- ./awk.h.orig 2016-08-24 15:31:55.000000000 -0400 +++ ./awk.h 2017-04-08 11:51:21.838405785 -0400 @@ -747,6 +747,7 @@ typedef struct exp_instruction { } x; short source_line; + short pool_size; // memory management in symbol.c OPCODE opcode; } INSTRUCTION; @@ -993,9 +994,19 @@ typedef struct srcfile { int lasttok; } SRCFILE; +// structure for INSTRUCTION pool, needed mainly for debugger +typedef struct instruction_pool { +#define MAX_INSTRUCTION_ALLOC 3 // we don't call bcalloc with more than this + struct instruction_mem_pool { + struct instruction_block *block_list; + INSTRUCTION *free_space; // free location in active block + INSTRUCTION *free_list; + } pool[MAX_INSTRUCTION_ALLOC]; +} INSTRUCTION_POOL; + /* structure for execution context */ typedef struct context { - INSTRUCTION pools; + INSTRUCTION_POOL pools; NODE symbols; INSTRUCTION rule_list; SRCFILE srcfiles; diff -up ./symbol.c.orig ./symbol.c --- ./symbol.c.orig 2016-08-24 15:31:55.000000000 -0400 +++ ./symbol.c 2017-04-08 11:56:10.799440016 -0400 @@ -37,7 +37,7 @@ static NODE *symbol_list; static void (*install_func)(NODE *) = NULL; static NODE *make_symbol(const char *name, NODETYPE type); static NODE *install(const char *name, NODE *parm, NODETYPE type); -static void free_bcpool(INSTRUCTION *pl); +static void free_bcpool(INSTRUCTION_POOL *pl); static AWK_CONTEXT *curr_ctxt = NULL; static int ctxt_level; @@ -693,22 +693,31 @@ check_param_names(void) return result; } -#define pool_size d.dl -#define freei x.xi -static INSTRUCTION *pool_list; +static INSTRUCTION_POOL *pools; -/* INSTR_CHUNK must be > largest code size (3) */ -#define INSTR_CHUNK 127 +/* + * For best performance, the INSTR_CHUNK value should be divisible by all + * possible sizes, i.e. 1 through MAX_INSTRUCTION_ALLOC. Otherwise, there + * will be wasted space at the end of the block. + */ +#define INSTR_CHUNK (2*3*21) + +struct instruction_block { + struct instruction_block *next; + INSTRUCTION i[INSTR_CHUNK]; +}; /* bcfree --- deallocate instruction */ void bcfree(INSTRUCTION *cp) { + assert(cp->pool_size >= 1 && cp->pool_size <= MAX_INSTRUCTION_ALLOC); + cp->opcode = 0; - cp->nexti = pool_list->freei; - pool_list->freei = cp; -} + cp->nexti = pools->pool[cp->pool_size - 1].free_list; + pools->pool[cp->pool_size - 1].free_list = cp; +} /* bcalloc --- allocate a new instruction */ @@ -716,38 +725,28 @@ INSTRUCTION * bcalloc(OPCODE op, int size, int srcline) { INSTRUCTION *cp; + struct instruction_mem_pool *pool; - if (size > 1) { - /* wide instructions Op_rule, Op_func_call .. */ - emalloc(cp, INSTRUCTION *, (size + 1) * sizeof(INSTRUCTION), "bcalloc"); - cp->pool_size = size; - cp->nexti = pool_list->nexti; - pool_list->nexti = cp++; - } else { - INSTRUCTION *pool; + assert(size >= 1 && size <= MAX_INSTRUCTION_ALLOC); + pool = &pools->pool[size - 1]; - pool = pool_list->freei; - if (pool == NULL) { - INSTRUCTION *last; - emalloc(cp, INSTRUCTION *, (INSTR_CHUNK + 1) * sizeof(INSTRUCTION), "bcalloc"); - - cp->pool_size = INSTR_CHUNK; - cp->nexti = pool_list->nexti; - pool_list->nexti = cp; - pool = ++cp; - last = &pool[INSTR_CHUNK - 1]; - for (; cp <= last; cp++) { - cp->opcode = 0; - cp->nexti = cp + 1; - } - --cp; - cp->nexti = NULL; - } - cp = pool; - pool_list->freei = cp->nexti; + if (pool->free_list != NULL) { + cp = pool->free_list; + pool->free_list = cp->nexti; + } else if (pool->free_space && pool->free_space + size <= & pool->block_list->i[INSTR_CHUNK]) { + cp = pool->free_space; + pool->free_space += size; + } else { + struct instruction_block *block; + emalloc(block, struct instruction_block *, sizeof(struct instruction_block), "bcalloc"); + block->next = pool->block_list; + pool->block_list = block; + cp = &block->i[0]; + pool->free_space = &block->i[size]; } memset(cp, 0, size * sizeof(INSTRUCTION)); + cp->pool_size = size; cp->opcode = op; cp->source_line = srcline; return cp; @@ -773,7 +772,7 @@ new_context() static void set_context(AWK_CONTEXT *ctxt) { - pool_list = & ctxt->pools; + pools = & ctxt->pools; symbol_list = & ctxt->symbols; srcfiles = & ctxt->srcfiles; rule_list = & ctxt->rule_list; @@ -910,27 +909,36 @@ free_bc_internal(INSTRUCTION *cp) } } -/* free_bcpool --- free list of instruction memory pools */ +/* free_bc_mempool --- free a single pool */ static void -free_bcpool(INSTRUCTION *pl) +free_bc_mempool(struct instruction_mem_pool *pool, int size) { - INSTRUCTION *pool, *tmp; + int first = 1; + struct instruction_block *block, *next; - for (pool = pl->nexti; pool != NULL; pool = tmp) { - INSTRUCTION *cp, *last; - long psiz; - psiz = pool->pool_size; - if (psiz == INSTR_CHUNK) - last = pool + psiz; - else - last = pool + 1; - for (cp = pool + 1; cp <= last ; cp++) { + for (block = pool->block_list; block; block = next) { + INSTRUCTION *cp, *end; + + end = (first ? pool->free_space : & block->i[INSTR_CHUNK]); + for (cp = & block->i[0]; cp + size <= end; cp += size) { if (cp->opcode != 0) free_bc_internal(cp); } - tmp = pool->nexti; - efree(pool); + next = block->next; + efree(block); + first = 0; } - memset(pl, 0, sizeof(INSTRUCTION)); +} + + +/* free_bcpool --- free list of instruction memory pools */ + +static void +free_bcpool(INSTRUCTION_POOL *pl) +{ + int i; + + for (i = 0; i < MAX_INSTRUCTION_ALLOC; i++) + free_bc_mempool(& pl->pool[i], i + 1); } --1yeeQ81UyVL57Vl7-- From MAILER-DAEMON Sat Apr 08 13:19:56 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cwu1k-00058t-QO for mharc-bug-gawk@gnu.org; Sat, 08 Apr 2017 13:19:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54680) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwu1i-00058H-98 for bug-gawk@gnu.org; Sat, 08 Apr 2017 13:19:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cwu1Z-0001OP-HR for bug-gawk@gnu.org; Sat, 08 Apr 2017 13:19:49 -0400 Received: from mta241.mail.business.static.orange.com ([80.12.66.41]:59385 helo=relais-inet.orange.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cwu1Z-0001NR-6f; Sat, 08 Apr 2017 13:19:45 -0400 Received: from opfedar02.francetelecom.fr (unknown [xx.xx.xx.4]) by opfedar20.francetelecom.fr (ESMTP service) with ESMTP id 0817812014B; Sat, 8 Apr 2017 19:19:41 +0200 (CEST) Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.27]) by opfedar02.francetelecom.fr (ESMTP service) with ESMTP id E13D3180061; Sat, 8 Apr 2017 19:19:40 +0200 (CEST) Received: from lat6466.rd.francetelecom.fr (10.168.234.3) by OPEXCLILM7C.corporate.adroot.infra.ftgroup (10.114.31.27) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sat, 8 Apr 2017 19:19:40 +0200 Message-ID: <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> Date: Sat, 8 Apr 2017 19:19:43 +0200 From: User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111113 Thunderbird/8.0 MIME-Version: 1.0 To: Eli Zaretskii CC: , References: <83h92g9i7z.fsf@gnu.org> <58D7DE67.8080306@orange.com> <83efxk9f87.fsf@gnu.org> <58D7ECF0.5000000@orange.com> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> In-Reply-To: <83k26vm8n7.fsf@gnu.org> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.168.234.3] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 80.12.66.41 Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Apr 2017 17:19:55 -0000 On 08/04/2017 13:38, Eli Zaretskii wrote: >> From: arnold@skeeve.com >> Date: Wed, 29 Mar 2017 10:26:28 -0600 >> Cc: bug-gawk@gnu.org, arnold@skeeve.com >> >> Eli Zaretskii wrote: >> >> > As to whether this result is horrible: I guess it depends on whether >> > we want the behavior to be more consistent across platforms. I'd like >> > at least to "fix" errno in this case to be EPIPE, then we can talk >> > about what exit status to produce. Does that make sense? >> >> Sounds like a plan to me. Thanks! > > Now done on the master branch, including the proper exit status. > You wrote: +/* 0xC0000008 is EXCEPTION_INVALID_HANDLE, somewhat appropriate for EPIPE */ but "invalid handle" does not give a meaningful clue to the startled developer. A better value would somehow point to what has actually happened, like ERROR_BROKEN_PIPE: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365747(v=vs.85).aspx " If an anonymous pipe is being used and the read handle has been closed, when WriteFile attempts to write using the pipe's corresponding write handle, the function returns FALSE and GetLastError returns ERROR_BROKEN_PIPE. " Of course that's a small number (error) not in the 0xC... range like your exception; by analogy with unix I'd just add an unused, large constant like 0xE0000000, but you're the Windows expert. _________________________________________________________________________________________________________________________ Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. This message and its attachments may contain confidential or privileged information that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and delete this message and its attachments. As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. Thank you. From MAILER-DAEMON Sat Apr 08 13:51:16 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cwuW4-0003yI-Ry for mharc-bug-gawk@gnu.org; Sat, 08 Apr 2017 13:51:16 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33092) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwuW2-0003y2-3B for bug-gawk@gnu.org; Sat, 08 Apr 2017 13:51:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cwuVz-0003vj-1M for bug-gawk@gnu.org; Sat, 08 Apr 2017 13:51:14 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:45182) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwuVy-0003vd-UR; Sat, 08 Apr 2017 13:51:10 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2784 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cwuVu-0006Sj-Do; Sat, 08 Apr 2017 13:51:10 -0400 Date: Sat, 08 Apr 2017 20:51:05 +0300 Message-Id: <83a87qn5yu.fsf@gnu.org> From: Eli Zaretskii To: CC: arnold@skeeve.com, bug-gawk@gnu.org In-reply-to: <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> (alexandre.ferrieux@orange.com) Reply-to: Eli Zaretskii References: <83h92g9i7z.fsf@gnu.org> <58D7DE67.8080306@orange.com> <83efxk9f87.fsf@gnu.org> <58D7ECF0.5000000@orange.com> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Apr 2017 17:51:15 -0000 > Date: Sat, 8 Apr 2017 19:19:43 +0200 > From: > CC: , > > You wrote: > > +/* 0xC0000008 is EXCEPTION_INVALID_HANDLE, somewhat appropriate for EPIPE */ > > but "invalid handle" does not give a meaningful clue to the startled developer. It's an exception value that is the closest in meaning to what happens here. The model I used is that of a program that crashes due to the Windows equivalent of SIGSEGV. Such a program exits with a status of 0xC0000005, which is the value of EXCEPTION_ACCESS_VIOLATION. So I looked for an exception that would be related to broken pipe, and this is the closest one I found. > A better value would somehow point to what has actually happened, like ERROR_BROKEN_PIPE: No, ERROR_BROKEN_PIPE is an error code, not an exception code. > Of course that's a small number (error) not in the 0xC... range like your exception; by analogy with unix I'd just add > an unused, large constant like 0xE0000000 I don't see how exiting with arbitrary status values could serve any useful purpose in this case. Some ported programs (like Guile, for example) need to see the 0xC000000n codes of the programs they invoke to produce reasonable diagnostics, and the exit status I've chosen plays well with those programs. From MAILER-DAEMON Sat Apr 08 14:03:07 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cwuhX-0006Ba-68 for mharc-bug-gawk@gnu.org; Sat, 08 Apr 2017 14:03:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35428) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwuhU-0006B3-KN for bug-gawk@gnu.org; Sat, 08 Apr 2017 14:03:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cwuhQ-0007VM-M2 for bug-gawk@gnu.org; Sat, 08 Apr 2017 14:03:04 -0400 Received: from mta240.mail.business.static.orange.com ([80.12.66.40]:60885 helo=relais-inet.orange.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cwuhQ-0007V1-BT; Sat, 08 Apr 2017 14:03:00 -0400 Received: from opfedar01.francetelecom.fr (unknown [xx.xx.xx.2]) by opfedar21.francetelecom.fr (ESMTP service) with ESMTP id AC6571001E6; Sat, 8 Apr 2017 20:02:57 +0200 (CEST) Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.27]) by opfedar01.francetelecom.fr (ESMTP service) with ESMTP id 87EC516005E; Sat, 8 Apr 2017 20:02:57 +0200 (CEST) Received: from lat6466.rd.francetelecom.fr (10.168.234.1) by OPEXCLILM7C.corporate.adroot.infra.ftgroup (10.114.31.27) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sat, 8 Apr 2017 20:02:57 +0200 Message-ID: <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> Date: Sat, 8 Apr 2017 20:03:00 +0200 From: User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111113 Thunderbird/8.0 MIME-Version: 1.0 To: Eli Zaretskii CC: , References: <83h92g9i7z.fsf@gnu.org> <58D7DE67.8080306@orange.com> <83efxk9f87.fsf@gnu.org> <58D7ECF0.5000000@orange.com> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> In-Reply-To: <83a87qn5yu.fsf@gnu.org> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.168.234.1] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 80.12.66.40 Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Apr 2017 18:03:05 -0000 On 08/04/2017 19:51, Eli Zaretskii wrote: >> Date: Sat, 8 Apr 2017 19:19:43 +0200 >> From: >> CC:, >> >> You wrote: >> >> +/* 0xC0000008 is EXCEPTION_INVALID_HANDLE, somewhat appropriate for EPIPE */ >> >> but "invalid handle" does not give a meaningful clue to the startled developer. > > It's an exception value that is the closest in meaning to what happens > here. > > The model I used is that of a program that crashes due to the Windows > equivalent of SIGSEGV. Such a program exits with a status of > 0xC0000005, which is the value of EXCEPTION_ACCESS_VIOLATION. So I > looked for an exception that would be related to broken pipe, and this > is the closest one I found. > >> A better value would somehow point to what has actually happened, like ERROR_BROKEN_PIPE: > > No, ERROR_BROKEN_PIPE is an error code, not an exception code. > >> Of course that's a small number (error) not in the 0xC... range like your exception; by analogy with unix I'd just add >> an unused, large constant like 0xE0000000 > > I don't see how exiting with arbitrary status values could serve any > useful purpose in this case. Some ported programs (like Guile, for > example) need to see the 0xC000000n codes of the programs they invoke > to produce reasonable diagnostics, and the exit status I've chosen > plays well with those programs. As I said, you're the Windows expert, but I still fail to see what reasoning can bring the developer, upon discovering that "invalid handle" exit status, to the proper thinking that it is a valid handle to a pipe, with the other side closed. That said, I've seen so many Windows programs report "Unknown Error" that I guess this lack of rigor in error reporting is part of the culture. I won't sweat for Windows. _________________________________________________________________________________________________________________________ Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. This message and its attachments may contain confidential or privileged information that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and delete this message and its attachments. As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. Thank you. From MAILER-DAEMON Sat Apr 08 14:17:46 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cwuvi-0007ir-3M for mharc-bug-gawk@gnu.org; Sat, 08 Apr 2017 14:17:46 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37140) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwuvf-0007ii-Qv for bug-gawk@gnu.org; Sat, 08 Apr 2017 14:17:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cwuvb-0002Le-SG for bug-gawk@gnu.org; Sat, 08 Apr 2017 14:17:43 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:45428) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwuvb-0002La-OV; Sat, 08 Apr 2017 14:17:39 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2790 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cwuvY-0002Re-U8; Sat, 08 Apr 2017 14:17:39 -0400 Date: Sat, 08 Apr 2017 21:17:32 +0300 Message-Id: <838tnan4qr.fsf@gnu.org> From: Eli Zaretskii To: CC: arnold@skeeve.com, bug-gawk@gnu.org In-reply-to: <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> (alexandre.ferrieux@orange.com) Reply-to: Eli Zaretskii References: <83h92g9i7z.fsf@gnu.org> <58D7DE67.8080306@orange.com> <83efxk9f87.fsf@gnu.org> <58D7ECF0.5000000@orange.com> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Apr 2017 18:17:44 -0000 > Date: Sat, 8 Apr 2017 20:03:00 +0200 > From: > CC: , > > As I said, you're the Windows expert, but I still fail to see what reasoning can bring the developer, upon discovering > that "invalid handle" exit status, to the proper thinking that it is a valid handle to a pipe, with the other side closed. They will not know that this was caused by a broken pipe, but they will know (a) that the program exited abnormally, and (b) that the abnormal exit was caused by some handle becoming invalid. That's close enough, and I just didn't find any better way. > That said, I've seen so many Windows programs report "Unknown Error" that I guess this lack of rigor in error reporting > is part of the culture. I won't sweat for Windows. It's not due to lack of rigor, it's due to the difficulty of mapping Posix-centric concepts (such as signals) into the equivalent Windows concepts. From MAILER-DAEMON Sat Apr 08 15:25:34 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cwvzK-0005GZ-H6 for mharc-bug-gawk@gnu.org; Sat, 08 Apr 2017 15:25:34 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45899) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwvzH-0005GS-VD for bug-gawk@gnu.org; Sat, 08 Apr 2017 15:25:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cwvzE-0004Ds-Q8 for bug-gawk@gnu.org; Sat, 08 Apr 2017 15:25:31 -0400 Received: from mta239.mail.business.static.orange.com ([80.12.66.39]:59239 helo=relais-inet.orange.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cwvzE-0004D2-J8; Sat, 08 Apr 2017 15:25:28 -0400 Received: from opfedar02.francetelecom.fr (unknown [xx.xx.xx.4]) by opfedar25.francetelecom.fr (ESMTP service) with ESMTP id 00B4012044F; Sat, 8 Apr 2017 21:25:27 +0200 (CEST) Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.27]) by opfedar02.francetelecom.fr (ESMTP service) with ESMTP id DB4D2180061; Sat, 8 Apr 2017 21:25:26 +0200 (CEST) Received: from lat6466.rd.francetelecom.fr (10.168.234.1) by OPEXCLILM7C.corporate.adroot.infra.ftgroup (10.114.31.27) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sat, 8 Apr 2017 21:25:26 +0200 Message-ID: <13201_1491679526_58E93926_13201_19001_1_58E9392A.1070003@orange.com> Date: Sat, 8 Apr 2017 21:25:30 +0200 From: User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111113 Thunderbird/8.0 MIME-Version: 1.0 To: Eli Zaretskii CC: , References: <83h92g9i7z.fsf@gnu.org> <58D7DE67.8080306@orange.com> <83efxk9f87.fsf@gnu.org> <58D7ECF0.5000000@orange.com> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> <838tnan4qr.fsf@gnu.org> In-Reply-To: <838tnan4qr.fsf@gnu.org> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.168.234.1] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 80.12.66.39 Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Apr 2017 19:25:33 -0000 On 08/04/2017 20:17, Eli Zaretskii wrote: >> Date: Sat, 8 Apr 2017 20:03:00 +0200 >> From: >> CC:, >> >> As I said, you're the Windows expert, but I still fail to see what reasoning can bring the developer, upon discovering >> that "invalid handle" exit status, to the proper thinking that it is a valid handle to a pipe, with the other side closed. > > They will not know that this was caused by a broken pipe, but they > will know (a) that the program exited abnormally, and (b) that the > abnormal exit was caused by some handle becoming invalid. That's > close enough, and I just didn't find any better way. In the meantime I've found this one: 0xC000014B STATUS_PIPE_BROKEN Do you really think "invalid handle" better conveys that meaning ? _________________________________________________________________________________________________________________________ Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. This message and its attachments may contain confidential or privileged information that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and delete this message and its attachments. As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. Thank you. From MAILER-DAEMON Sat Apr 08 17:15:37 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cwxhp-0006QT-6S for mharc-bug-gawk@gnu.org; Sat, 08 Apr 2017 17:15:37 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36144) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwxhj-0006Q7-G7 for bug-gawk@gnu.org; Sat, 08 Apr 2017 17:15:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cwxhf-0003cz-AI for bug-gawk@gnu.org; Sat, 08 Apr 2017 17:15:31 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:46955) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwxhf-0003cu-7W; Sat, 08 Apr 2017 17:15:27 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2998 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cwxhe-00076u-6p; Sat, 08 Apr 2017 17:15:26 -0400 Date: Sun, 09 Apr 2017 00:15:35 +0300 Message-Id: <837f2umwi0.fsf@gnu.org> From: Eli Zaretskii To: CC: arnold@skeeve.com, bug-gawk@gnu.org In-reply-to: <13201_1491679526_58E93926_13201_19001_1_58E9392A.1070003@orange.com> (alexandre.ferrieux@orange.com) Reply-to: Eli Zaretskii References: <83h92g9i7z.fsf@gnu.org> <58D7DE67.8080306@orange.com> <83efxk9f87.fsf@gnu.org> <58D7ECF0.5000000@orange.com> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> <838tnan4qr.fsf@gnu.org> <13201_1491679526_58E93926_13201_19001_1_58E9392A.1070003@orange.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Apr 2017 21:15:33 -0000 > Date: Sat, 8 Apr 2017 21:25:30 +0200 > From: > CC: , > > > They will not know that this was caused by a broken pipe, but they > > will know (a) that the program exited abnormally, and (b) that the > > abnormal exit was caused by some handle becoming invalid. That's > > close enough, and I just didn't find any better way. > > In the meantime I've found this one: > > 0xC000014B STATUS_PIPE_BROKEN > > Do you really think "invalid handle" better conveys that meaning ? Yes, because AFAIK STATUS_PIPE_BROKEN is a status returned by device drivers, not by programs. From MAILER-DAEMON Sat Apr 08 17:48:03 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cwyDD-0008SE-Cc for mharc-bug-gawk@gnu.org; Sat, 08 Apr 2017 17:48:03 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40621) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwyDA-0008Qs-Mg for bug-gawk@gnu.org; Sat, 08 Apr 2017 17:48:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cwyD7-0003ne-KJ for bug-gawk@gnu.org; Sat, 08 Apr 2017 17:48:00 -0400 Received: from mta239.mail.business.static.orange.com ([80.12.66.39]:47800 helo=relais-inet.orange.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cwyD7-0003nP-D5; Sat, 08 Apr 2017 17:47:57 -0400 Received: from opfedar00.francetelecom.fr (unknown [xx.xx.xx.11]) by opfedar23.francetelecom.fr (ESMTP service) with ESMTP id C17CE160222; Sat, 8 Apr 2017 23:47:54 +0200 (CEST) Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.27]) by opfedar00.francetelecom.fr (ESMTP service) with ESMTP id 9F2D718003F; Sat, 8 Apr 2017 23:47:54 +0200 (CEST) Received: from lat6466.rd.francetelecom.fr (10.168.234.5) by OPEXCLILM7C.corporate.adroot.infra.ftgroup (10.114.31.27) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sat, 8 Apr 2017 23:47:54 +0200 Message-ID: <28677_1491688074_58E95A8A_28677_1294_1_58E95A8E.6080707@orange.com> Date: Sat, 8 Apr 2017 23:47:58 +0200 From: User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111113 Thunderbird/8.0 MIME-Version: 1.0 To: Eli Zaretskii CC: , References: <83h92g9i7z.fsf@gnu.org> <58D7DE67.8080306@orange.com> <83efxk9f87.fsf@gnu.org> <58D7ECF0.5000000@orange.com> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> <838tnan4qr.fsf@gnu.org> <13201_1491679526_58E93926_13201_19001_1_58E9392A.1070003@orange.com> <837f2umwi0.fsf@gnu.org> In-Reply-To: <837f2umwi0.fsf@gnu.org> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.168.234.5] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 80.12.66.39 Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Apr 2017 21:48:01 -0000 On 08/04/2017 23:15, Eli Zaretskii wrote: >> Date: Sat, 8 Apr 2017 21:25:30 +0200 >> From: >> CC:, >> >> > They will not know that this was caused by a broken pipe, but they >> > will know (a) that the program exited abnormally, and (b) that the >> > abnormal exit was caused by some handle becoming invalid. That's >> > close enough, and I just didn't find any better way. >> >> In the meantime I've found this one: >> >> 0xC000014B STATUS_PIPE_BROKEN >> >> Do you really think "invalid handle" better conveys that meaning ? > > Yes, because AFAIK STATUS_PIPE_BROKEN is a status returned by device > drivers, not by programs. So, you'd draw a hard line between the two values 0xC0000008 and 0xC000014B ? Seriously, that looks like some ego-driven quest now. _________________________________________________________________________________________________________________________ Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. This message and its attachments may contain confidential or privileged information that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and delete this message and its attachments. As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. Thank you. From MAILER-DAEMON Sun Apr 09 01:40:08 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cx5a4-00005Z-Ea for mharc-bug-gawk@gnu.org; Sun, 09 Apr 2017 01:40:08 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56562) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cx5a2-0008Vv-8w for bug-gawk@gnu.org; Sun, 09 Apr 2017 01:40:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cx5Zy-0001K0-Ag for bug-gawk@gnu.org; Sun, 09 Apr 2017 01:40:06 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:50514) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cx5Zy-0001Jv-8H; Sun, 09 Apr 2017 01:40:02 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3252 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cx5Zx-0004B8-7C; Sun, 09 Apr 2017 01:40:01 -0400 Date: Sun, 09 Apr 2017 08:40:12 +0300 Message-Id: <8360iem94z.fsf@gnu.org> From: Eli Zaretskii To: CC: arnold@skeeve.com, bug-gawk@gnu.org In-reply-to: <28677_1491688074_58E95A8A_28677_1294_1_58E95A8E.6080707@orange.com> (alexandre.ferrieux@orange.com) Reply-to: Eli Zaretskii References: <83h92g9i7z.fsf@gnu.org> <58D7DE67.8080306@orange.com> <83efxk9f87.fsf@gnu.org> <58D7ECF0.5000000@orange.com> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> <838tnan4qr.fsf@gnu.org> <13201_1491679526_58E93926_13201_19001_1_58E9392A.1070003@orange.com> <837f2umwi0.fsf@gnu.org> <28677_1491688074_58E95A8A_28677_1294_1_58E95A8E.6080707@orange.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Apr 2017 05:40:07 -0000 > Date: Sat, 8 Apr 2017 23:47:58 +0200 > From: > CC: , > > >> 0xC000014B STATUS_PIPE_BROKEN > >> > >> Do you really think "invalid handle" better conveys that meaning ? > > > > Yes, because AFAIK STATUS_PIPE_BROKEN is a status returned by device > > drivers, not by programs. > > So, you'd draw a hard line between the two values 0xC0000008 and 0xC000014B ? I'm drawing a line where the EXCEPTION_* values defined in winbase.h header end. All the other values are AFAIK never triggered by fatal exceptions that cause abnormal program termination. > Seriously, that looks like some ego-driven quest now. Not on my side. I was just answering your questions. From MAILER-DAEMON Sun Apr 09 03:47:11 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cx7Z1-0002xc-7m for mharc-bug-gawk@gnu.org; Sun, 09 Apr 2017 03:47:11 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42536) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cx7Yy-0002wG-V5 for bug-gawk@gnu.org; Sun, 09 Apr 2017 03:47:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cx7Yv-0003HA-0W for bug-gawk@gnu.org; Sun, 09 Apr 2017 03:47:09 -0400 Received: from freefriends.org ([96.88.95.60]:40704) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cx7Yu-0003Gy-Me; Sun, 09 Apr 2017 03:47:04 -0400 X-Envelope-From: arnold@skeeve.com Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.14.9/8.14.9) with ESMTP id v397fwGl018010; Sun, 9 Apr 2017 01:41:59 -0600 Received: (from arnold@localhost) by freefriends.org (8.14.9/8.14.9/submit) id v397fw1a018007; Sun, 9 Apr 2017 07:41:58 GMT From: arnold@skeeve.com Message-Id: <201704090741.v397fw1a018007@freefriends.org> X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to arnold@skeeve.com using -f Date: Sun, 09 Apr 2017 01:41:58 -0600 To: eliz@gnu.org, alexandre.ferrieux@orange.com Cc: bug-gawk@gnu.org, arnold@skeeve.com References: <58D7DE67.8080306@orange.com> <83efxk9f87.fsf@gnu.org> <58D7ECF0.5000000@orange.com> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> <838tnan4qr.fsf@gnu.org> <13201_1491679526_58E93926_13201_19001_1_58E9392A.1070003@orange.com> <837f2umwi0.fsf@gnu.org> <28677_1491688074_58E95A8A_28677_1294_1_58E95A8E.6080707@orange.com> <8360iem94z.fsf@gnu.org> In-Reply-To: <8360iem94z.fsf@gnu.org> User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 96.88.95.60 Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Apr 2017 07:47:09 -0000 Eli Zaretskii wrote: > > Date: Sat, 8 Apr 2017 23:47:58 +0200 > > From: > > CC: , > > > > >> 0xC000014B STATUS_PIPE_BROKEN > > >> > > >> Do you really think "invalid handle" better conveys that meaning ? > > > > > > Yes, because AFAIK STATUS_PIPE_BROKEN is a status returned by device > > > drivers, not by programs. > > > > So, you'd draw a hard line between the two values 0xC0000008 and 0xC000014B ? > > I'm drawing a line where the EXCEPTION_* values defined in winbase.h > header end. All the other values are AFAIK never triggered by fatal > exceptions that cause abnormal program termination. > > > Seriously, that looks like some ego-driven quest now. > > Not on my side. I was just answering your questions. Hi All. Eli - thanks for fix. Alexandre, thanks for the discussion. It's clear there isn't a perfect mapping here. This looks like a reasonable compromise. Let's close off the discussion now, please. Thanks, Arnold From MAILER-DAEMON Sun Apr 09 05:32:10 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cx9Cc-0003FP-Bb for mharc-bug-gawk@gnu.org; Sun, 09 Apr 2017 05:32:10 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53703) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cx9CZ-0003Ez-5R for bug-gawk@gnu.org; Sun, 09 Apr 2017 05:32:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cx9CV-0002QS-4v for bug-gawk@gnu.org; Sun, 09 Apr 2017 05:32:07 -0400 Received: from mta241.mail.business.static.orange.com ([80.12.66.41]:48254 helo=relais-inet.orange.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cx9CU-0002Q3-Qd; Sun, 09 Apr 2017 05:32:03 -0400 Received: from opfedar00.francetelecom.fr (unknown [xx.xx.xx.11]) by opfedar26.francetelecom.fr (ESMTP service) with ESMTP id 258681C037F; Sun, 9 Apr 2017 11:32:00 +0200 (CEST) Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.27]) by opfedar00.francetelecom.fr (ESMTP service) with ESMTP id 026C718003F; Sun, 9 Apr 2017 11:32:00 +0200 (CEST) Received: from lat6466.rd.francetelecom.fr (10.168.234.1) by OPEXCLILM7C.corporate.adroot.infra.ftgroup (10.114.31.27) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 9 Apr 2017 11:31:59 +0200 Message-ID: <28677_1491730320_58E9FF90_28677_13640_1_58E9FF90.7030104@orange.com> Date: Sun, 9 Apr 2017 11:32:00 +0200 From: User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111113 Thunderbird/8.0 MIME-Version: 1.0 To: Eli Zaretskii CC: , References: <83h92g9i7z.fsf@gnu.org> <58D7DE67.8080306@orange.com> <83efxk9f87.fsf@gnu.org> <58D7ECF0.5000000@orange.com> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> <838tnan4qr.fsf@gnu.org> <13201_1491679526_58E93926_13201_19001_1_58E9392A.1070003@orange.com> <837f2umwi0.fsf@gnu.org> <28677_1491688074_58E95A8A_28677_1294_1_58E95A8E.6080707@orange.com> <8360iem94z.fsf@gnu.org> In-Reply-To: <8360iem94z.fsf@gnu.org> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.168.234.1] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 80.12.66.41 Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Apr 2017 09:32:08 -0000 On 09/04/2017 07:40, Eli Zaretskii wrote: >> Date: Sat, 8 Apr 2017 23:47:58 +0200 >> From: >> CC:, >> >> >> 0xC000014B STATUS_PIPE_BROKEN >> >> >> >> Do you really think "invalid handle" better conveys that meaning ? >> > >> > Yes, because AFAIK STATUS_PIPE_BROKEN is a status returned by device >> > drivers, not by programs. >> >> So, you'd draw a hard line between the two values 0xC0000008 and 0xC000014B ? > > I'm drawing a line where the EXCEPTION_* values defined in winbase.h > header end. All the other values are AFAIK never triggered by fatal > exceptions that cause abnormal program termination. Yet the values live in the same namespace (in ntstatus.h) so are guaranteed no to collide. Anybody looking 0xC000014B up with a header grep or a google search will land on "pipe broken". On the contrary, if we stick to "invalid handle", they will mistakenly think that there is a serious error in the gawk core. Indeed, an invalid handle is either a random value that's never been a handle in the first place, or a formerly valid handle that the current process has purposefully forsaken with CloseHandle. In the case of EPIPE, at the instant when the Write fails, the handle is still valid; and if we're still to live for some time instead of immediately exiting, we even must Close it to avoid a leak. So, "invalid handle" is simply not applicable at all. _________________________________________________________________________________________________________________________ Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. This message and its attachments may contain confidential or privileged information that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and delete this message and its attachments. As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. Thank you. From MAILER-DAEMON Sun Apr 09 05:40:14 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cx9KQ-00043v-Fj for mharc-bug-gawk@gnu.org; Sun, 09 Apr 2017 05:40:14 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54743) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cx9KN-00043l-OG for bug-gawk@gnu.org; Sun, 09 Apr 2017 05:40:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cx9KK-0004LY-KJ for bug-gawk@gnu.org; Sun, 09 Apr 2017 05:40:11 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52035) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cx9KK-0004LN-HB; Sun, 09 Apr 2017 05:40:08 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3547 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cx9KJ-0007VP-PY; Sun, 09 Apr 2017 05:40:08 -0400 Date: Sun, 09 Apr 2017 12:40:19 +0300 Message-Id: <83y3v9ly0s.fsf@gnu.org> From: Eli Zaretskii To: CC: arnold@skeeve.com, bug-gawk@gnu.org In-reply-to: <28677_1491730320_58E9FF90_28677_13640_1_58E9FF90.7030104@orange.com> (alexandre.ferrieux@orange.com) Reply-to: Eli Zaretskii References: <83h92g9i7z.fsf@gnu.org> <58D7DE67.8080306@orange.com> <83efxk9f87.fsf@gnu.org> <58D7ECF0.5000000@orange.com> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> <838tnan4qr.fsf@gnu.org> <13201_1491679526_58E93926_13201_19001_1_58E9392A.1070003@orange.com> <837f2umwi0.fsf@gnu.org> <28677_1491688074_58E95A8A_28677_1294_1_58E95A8E.6080707@orange.com> <8360iem94z.fsf@gnu.org> <28677_1491730320_58E9FF90_28677_13640_1_58E9FF90.7030104@orange.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Apr 2017 09:40:12 -0000 > Date: Sun, 9 Apr 2017 11:32:00 +0200 > From: > CC: , > > > I'm drawing a line where the EXCEPTION_* values defined in winbase.h > > header end. All the other values are AFAIK never triggered by fatal > > exceptions that cause abnormal program termination. > > Yet the values live in the same namespace (in ntstatus.h) so are guaranteed no to collide. Yes, the values of EXCEPTION_* are identical to the corresponding STATUS_* values in ntstatus.h. But that doesn't mean they are the same and will be seen in the same situations. The EXCEPTION_* values are a small subset of the NTSTATUS values, and AFAIK only that subset is generated by fatal exceptions that terminate programs. > Anybody looking 0xC000014B up with a header grep or a google search will land on "pipe broken". As I explained earlier, the issue is not with grepping Windows headers (which end-users likely won't have installed), the issue is with other programs that interpret these exit codes when invoking Gawk as a sub-process. None of them know about the value you propose, while the value I used _is_ known. > So, "invalid handle" is simply not applicable at all. I can only say that I disagree, and I explained why. From MAILER-DAEMON Sun Apr 09 06:50:00 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cxAPw-0001gW-Q1 for mharc-bug-gawk@gnu.org; Sun, 09 Apr 2017 06:50:00 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36127) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cxAPt-0001g3-QW for bug-gawk@gnu.org; Sun, 09 Apr 2017 06:49:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cxAPo-0000pS-V0 for bug-gawk@gnu.org; Sun, 09 Apr 2017 06:49:57 -0400 Received: from mta135.mail.business.static.orange.com ([80.12.70.35]:48736 helo=relais-inet.orange.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cxAPo-0000pH-Nt; Sun, 09 Apr 2017 06:49:52 -0400 Received: from opfednr06.francetelecom.fr (unknown [xx.xx.xx.70]) by opfednr24.francetelecom.fr (ESMTP service) with ESMTP id 2B7F740452; Sun, 9 Apr 2017 12:49:50 +0200 (CEST) Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.27]) by opfednr06.francetelecom.fr (ESMTP service) with ESMTP id F118F1A0051; Sun, 9 Apr 2017 12:49:49 +0200 (CEST) Received: from lat6466.rd.francetelecom.fr (10.168.234.5) by OPEXCLILM7C.corporate.adroot.infra.ftgroup (10.114.31.27) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 9 Apr 2017 12:49:49 +0200 Message-ID: <11275_1491734990_58EA11CE_11275_7651_1_58EA11CF.6070009@orange.com> Date: Sun, 9 Apr 2017 12:49:51 +0200 From: User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111113 Thunderbird/8.0 MIME-Version: 1.0 To: Eli Zaretskii CC: , References: <83h92g9i7z.fsf@gnu.org> <58D7DE67.8080306@orange.com> <83efxk9f87.fsf@gnu.org> <58D7ECF0.5000000@orange.com> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> <838tnan4qr.fsf@gnu.org> <13201_1491679526_58E93926_13201_19001_1_58E9392A.1070003@orange.com> <837f2umwi0.fsf@gnu.org> <28677_1491688074_58E95A8A_28677_1294_1_58E95A8E.6080707@orange.com> <8360iem94z.fsf@gnu.org> <28677_1491730320_58E9FF90_28677_13640_1_58E9FF90.7030104@orange.com> <83y3v9ly0s.fsf@gnu.org> In-Reply-To: <83y3v9ly0s.fsf@gnu.org> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.168.234.5] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 80.12.70.35 Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Apr 2017 10:49:58 -0000 On 09/04/2017 11:40, Eli Zaretskii wrote: >> > Anybody looking 0xC000014B up with a header grep or a google search will land on "pipe broken". > As I explained earlier, the issue is not with grepping Windows headers > (which end-users likely won't have installed), the issue is with other > programs that interpret these exit codes when invoking Gawk as a > sub-process. None of them know about the value you propose, while the > value I used_is_ known. How many of them will stop and not use Google ? Seriously ... >> > So, "invalid handle" is simply not applicable at all. > I can only say that I disagree, and I explained why. I can only say you purposefully lose important information, which is somehow funny in the light of your saying that the exit status in Windows has much more precision than a single bit. _________________________________________________________________________________________________________________________ Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. This message and its attachments may contain confidential or privileged information that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and delete this message and its attachments. As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. Thank you. From MAILER-DAEMON Sun Apr 09 07:04:35 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cxAe3-0002kf-CK for mharc-bug-gawk@gnu.org; Sun, 09 Apr 2017 07:04:35 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37738) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cxAe0-0002kP-R6 for bug-gawk@gnu.org; Sun, 09 Apr 2017 07:04:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cxAdx-00045A-Nb for bug-gawk@gnu.org; Sun, 09 Apr 2017 07:04:32 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52522) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cxAdx-000456-LY; Sun, 09 Apr 2017 07:04:29 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3760 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cxAdw-000717-Q1; Sun, 09 Apr 2017 07:04:29 -0400 Date: Sun, 09 Apr 2017 14:04:40 +0300 Message-Id: <83vaqdlu47.fsf@gnu.org> From: Eli Zaretskii To: CC: arnold@skeeve.com, bug-gawk@gnu.org In-reply-to: <11275_1491734990_58EA11CE_11275_7651_1_58EA11CF.6070009@orange.com> (alexandre.ferrieux@orange.com) Reply-to: Eli Zaretskii References: <83h92g9i7z.fsf@gnu.org> <58D7DE67.8080306@orange.com> <83efxk9f87.fsf@gnu.org> <58D7ECF0.5000000@orange.com> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> <838tnan4qr.fsf@gnu.org> <13201_1491679526_58E93926_13201_19001_1_58E9392A.1070003@orange.com> <837f2umwi0.fsf@gnu.org> <28677_1491688074_58E95A8A_28677_1294_1_58E95A8E.6080707@orange.com> <8360iem94z.fsf@gnu.org> <28677_1491730320_58E9FF90_28677_13640_1_58E9FF90.7030104@orange.com> <83y3v9ly0s.fsf@gnu.org> <11275_1491734990_58EA11CE_11275_7651_1_58EA11CF.6070009@orange.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Apr 2017 11:04:34 -0000 > Date: Sun, 9 Apr 2017 12:49:51 +0200 > From: > CC: , > > On 09/04/2017 11:40, Eli Zaretskii wrote: > >> > Anybody looking 0xC000014B up with a header grep or a google search will land on "pipe broken". > > As I explained earlier, the issue is not with grepping Windows headers > > (which end-users likely won't have installed), the issue is with other > > programs that interpret these exit codes when invoking Gawk as a > > sub-process. None of them know about the value you propose, while the > > value I used_is_ known. > > How many of them will stop and not use Google ? Seriously ... Programs don't use Google. They use values encoded in their source code. > >> > So, "invalid handle" is simply not applicable at all. > > I can only say that I disagree, and I explained why. > > I can only say you purposefully lose important information Once again, I disagree. From MAILER-DAEMON Sun Apr 09 07:35:18 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cxB7l-0007hd-U0 for mharc-bug-gawk@gnu.org; Sun, 09 Apr 2017 07:35:17 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41708) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cxB7j-0007er-LH for bug-gawk@gnu.org; Sun, 09 Apr 2017 07:35:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cxB7f-0007ON-Op for bug-gawk@gnu.org; Sun, 09 Apr 2017 07:35:15 -0400 Received: from mta239.mail.business.static.orange.com ([80.12.66.39]:42621 helo=relais-inet.orange.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cxB7f-0007Mz-E8; Sun, 09 Apr 2017 07:35:11 -0400 Received: from opfedar04.francetelecom.fr (unknown [xx.xx.xx.6]) by opfedar22.francetelecom.fr (ESMTP service) with ESMTP id B5D5C6031A; Sun, 9 Apr 2017 13:35:08 +0200 (CEST) Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.27]) by opfedar04.francetelecom.fr (ESMTP service) with ESMTP id 91F4740058; Sun, 9 Apr 2017 13:35:08 +0200 (CEST) Received: from lat6466.rd.francetelecom.fr (10.168.234.3) by OPEXCLILM7C.corporate.adroot.infra.ftgroup (10.114.31.27) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 9 Apr 2017 13:35:08 +0200 Message-ID: <7557_1491737708_58EA1C6C_7557_11544_1_58EA1C6E.7020309@orange.com> Date: Sun, 9 Apr 2017 13:35:10 +0200 From: User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111113 Thunderbird/8.0 MIME-Version: 1.0 To: Eli Zaretskii CC: , References: <83h92g9i7z.fsf@gnu.org> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> <838tnan4qr.fsf@gnu.org> <13201_1491679526_58E93926_13201_19001_1_58E9392A.1070003@orange.com> <837f2umwi0.fsf@gnu.org> <28677_1491688074_58E95A8A_28677_1294_1_58E95A8E.6080707@orange.com> <8360iem94z.fsf@gnu.org> <28677_1491730320_58E9FF90_28677_13640_1_58E9FF90.7030104@orange.com> <83y3v9ly0s.fsf@gnu.org> <11275_1491734990_58EA11CE_11275_7651 _1_58EA11CF.6070009@orange.com> <83vaqdlu47.fsf@gnu.org> In-Reply-To: <83vaqdlu47.fsf@gnu.org> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.168.234.3] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 80.12.66.39 Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Apr 2017 11:35:16 -0000 On 09/04/2017 13:04, Eli Zaretskii wrote: >> > How many of them will stop and not use Google ? Seriously ... > Programs don't use Google. They use values encoded in their source > code. Aha, here is the mental process of the human writing that source code: Proactive case: (1) I want to isolate the case where gawk exits due to a broken pipe (2) Hmm, what is the Windows way of saying that ? (3) ( googling / grepping headers ) (4) Found: 0xC000014B STATUS_PIPE_BROKEN => I'll use that one (5) Hmm, that doesn't work. I'll add some debug to see. (6) Oh, turns out exit status is 0xC0000008 . What does that mean ? (7) ( googling / grepping headers ) (8) Found: 0xC0000008 EXCEPTION_INVALID_HANDLE => wtf ? (9) Looks like gawk shoots its feet while handling broken pipes on Windows; I'll report that to them. Or maybe I'll use some other equivalent scripting language in between, since I assume such a deep bug takes ages to fix. Reactive case: (1) Hmm, my big application dies quickly in that situation. Why ? (2) I'll add some debug to see. Start with subprocess start/stop and exit statuses. (3) Aha ! The third gawk out of seven dies with 0xC0000008. What does that mean ? (4) ( googling / grepping headers ) (5) Found: 0xC0000008 EXCEPTION_INVALID_HANDLE => wtf ? (6) This looks like a deep internal error. I have no time to chase that one. I will post a bug report to gawk. Or maybe I'll use some other equivalent scripting language in between, since I assume such a deep bug takes ages to fix. Is that what you want ? _________________________________________________________________________________________________________________________ Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. This message and its attachments may contain confidential or privileged information that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and delete this message and its attachments. As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. Thank you. From MAILER-DAEMON Sun Apr 09 08:07:43 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cxBd9-0002Q6-6B for mharc-bug-gawk@gnu.org; Sun, 09 Apr 2017 08:07:43 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48915) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cxBd7-0002Px-1E for bug-gawk@gnu.org; Sun, 09 Apr 2017 08:07:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cxBd3-0006MN-S9 for bug-gawk@gnu.org; Sun, 09 Apr 2017 08:07:41 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52977) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cxBd3-0006MH-Oy; Sun, 09 Apr 2017 08:07:37 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3803 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cxBd3-00042Q-1Y; Sun, 09 Apr 2017 08:07:37 -0400 Date: Sun, 09 Apr 2017 15:07:49 +0300 Message-Id: <83shlhlr6y.fsf@gnu.org> From: Eli Zaretskii To: CC: arnold@skeeve.com, bug-gawk@gnu.org In-reply-to: <7557_1491737708_58EA1C6C_7557_11544_1_58EA1C6E.7020309@orange.com> (alexandre.ferrieux@orange.com) Reply-to: Eli Zaretskii References: <83h92g9i7z.fsf@gnu.org> <201703271850.v2RIo73h004569@freefriends.org> <8337dy8rok.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> <838tnan4qr.fsf@gnu.org> <13201_1491679526_58E93926_13201_19001_1_58E9392A.1070003@orange.com> <837f2umwi0.fsf@gnu.org> <28677_1491688074_58E95A8A_28677_1294_1_58E95A8E.6080707@orange.com> <8360iem94z.fsf@gnu.org> <28677_1491730320_58E9FF90_28677_13640_1_58E9FF90.7030104@orange.com> <83y3v9ly0s.fsf@gnu.org> <11275_1491734990_58EA11CE_11275_7651 _1_58EA11CF.6070009@orange.com> <83vaqdlu47.fsf@gnu.org> <7557_1491737708_58EA1C6C_7557_11544_1_58EA1C6E.7020309@orange.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Apr 2017 12:07:42 -0000 > Date: Sun, 9 Apr 2017 13:35:10 +0200 > From: > CC: , > > On 09/04/2017 13:04, Eli Zaretskii wrote: > >> > How many of them will stop and not use Google ? Seriously ... > > Programs don't use Google. They use values encoded in their source > > code. > > Aha, here is the mental process of the human writing that source code: That source code has already been written. It already runs in ported programs, such as Guile. It maps the exit code values returned by Windows programs which terminated due to a fatal exception, to the equivalent Posix signal, in order to present useful diagnostic to their users. For example, the diagnostic might say "Program gawk was terminated by a SIGSEGV." The mapping uses only the EXCEPTION_* exception codes which are defined in winbase.h. Those include EXCEPTION_INVALID_HANDLE, but do not include STATUS_PIPE_BROKEN. So if Gawk returns 0xC000014B, the programs in question will not be able to interpret it in any useful way. Once again, programs that die of fatal exceptions on Windows return as their exit status a very limited subset of the NTSTATUS values. Using any value outside that subset will confuse programs which try to interpret those exit codes. I've chosen the value of EXCEPTION_INVALID_HANDLE because it belongs to that subset. From MAILER-DAEMON Sun Apr 09 08:52:46 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cxCKk-0006Sr-A6 for mharc-bug-gawk@gnu.org; Sun, 09 Apr 2017 08:52:46 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54785) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cxCKh-0006Sk-Dm for bug-gawk@gnu.org; Sun, 09 Apr 2017 08:52:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cxCKd-0001Vu-FO for bug-gawk@gnu.org; Sun, 09 Apr 2017 08:52:43 -0400 Received: from mta136.mail.business.static.orange.com ([80.12.70.36]:49361 helo=relais-inet.orange.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cxCKd-0001TI-5B; Sun, 09 Apr 2017 08:52:39 -0400 Received: from opfednr07.francetelecom.fr (unknown [xx.xx.xx.71]) by opfednr20.francetelecom.fr (ESMTP service) with ESMTP id 4B7BF403A4; Sun, 9 Apr 2017 14:52:37 +0200 (CEST) Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.27]) by opfednr07.francetelecom.fr (ESMTP service) with ESMTP id 1CD9B1C005D; Sun, 9 Apr 2017 14:52:37 +0200 (CEST) Received: from lat6466.rd.francetelecom.fr (10.168.234.5) by OPEXCLILM7C.corporate.adroot.infra.ftgroup (10.114.31.27) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 9 Apr 2017 14:52:36 +0200 Message-ID: <29295_1491742357_58EA2E95_29295_9606_1_58EA2E96.8000307@orange.com> Date: Sun, 9 Apr 2017 14:52:38 +0200 From: User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111113 Thunderbird/8.0 MIME-Version: 1.0 To: Eli Zaretskii CC: , References: <83h92g9i7z.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> <838tnan4qr.fsf@gnu.org> <13201_1491679526_58E93926_13201_19001_1_58E9392A.1070003@orange.com> <837f2umwi0.fsf@gnu.org> <28677_1491688074_58E95A8A_28677_1294_1_58E95A8E.6080707@orange.com> <8360iem94z.fsf@gnu.org> <28677_1491730320_58E9FF90_28677_13640_1_58E9FF90.7030104@orange.com> <83y3v9ly0s.fsf@gnu.org> <11275_1491734990_58EA11CE_11275_7651 _1_58EA11CF.6070009@orange.com> <83vaqdlu47.fsf@gnu.org> <7557_1491737708_58EA1C6C_7 557_11544_1_58EA1C6E.7020309@orange.com> <83shlhlr6y.fsf@gnu.org> In-Reply-To: <83shlhlr6y.fsf@gnu.org> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.168.234.5] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 80.12.70.36 Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Apr 2017 12:52:45 -0000 On 09/04/2017 14:07, Eli Zaretskii wrote: >> Date: Sun, 9 Apr 2017 13:35:10 +0200 >> From: >> CC:, >> >> On 09/04/2017 13:04, Eli Zaretskii wrote: >> >> > How many of them will stop and not use Google ? Seriously ... >> > Programs don't use Google. They use values encoded in their source >> > code. >> >> Aha, here is the mental process of the human writing that source code: > > That source code has already been written. It already runs in ported > programs, such as Guile. It maps the exit code values returned by > Windows programs which terminated due to a fatal exception, to the > equivalent Posix signal, in order to present useful diagnostic to > their users. For example, the diagnostic might say "Program gawk > was terminated by a SIGSEGV." > > The mapping uses only the EXCEPTION_* exception codes which are > defined in winbase.h. Those include EXCEPTION_INVALID_HANDLE, but do > not include STATUS_PIPE_BROKEN. > > So if Gawk returns 0xC000014B, the programs in question will not be > able to interpret it in any useful way. So you know in advance that all such programs necessarily have a finite swi= tch..case based on known EXCEPTION_* values=20 in winbase.h, and don't even have the obvious fallback: default: fprintf(stderr,"# Inknown exit status 0x%x\n", status); I bet such precognition could be put to better use than software... In any case, here's a precedent that can be found in a few clicks after goo= gling for 0xC000014B. As you can see, developers and/or users of that specific piece of software = ( a flight simulator) were able to make sense=20 of just the hexadecimal value (which was brought to their attention by a ge= neric fallback as the above), and turn this=20 knowledge into useful advice. If, by contrast, you look at google results for 0xC0000008, you're in for a= disappointment. http://www.pilote-virtuel.com/img/members/81/AVSIM-CTD-Guide.pdf HRESULT: 0xc000014B error -- Mostly occurs in networked computers. Th= is is a Microsoft.net error. The 0xc000014B is a "broken pipe" exception. A= pipe is a communication channel between two applications (such as FSX/P3D and an add-= on program like ASN or OPUS, or network). SimConnect offers add-ons the possibility to= use pipes to communication with FSX. A "broken pipe" is a situation where one of the pip= es no longer exists, while the other tries to communicate using the pipe. A typical scen= ario would be fsx crashing and then ASN or OPUS tried to use the pipe (communications = channel) and the =C3=A2=C2=80=C2=9Cpipe=C3=A2=C2=80=C2=9D was broken. The 014B exception wo= uld then occur. Check your network setup or an application that uses SimConnect and troubleshoot. ___________________________________________________________________________= ______________________________________________ Ce message et ses pieces jointes peuvent contenir des informations confiden= tielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu= ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el= ectroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou = falsifie. Merci. This message and its attachments may contain confidential or privileged inf= ormation that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and dele= te this message and its attachments. As emails may be altered, Orange is not liable for messages that have been = modified, changed or falsified. Thank you. From MAILER-DAEMON Sun Apr 09 09:39:04 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cxD3Y-0001tP-Ep for mharc-bug-gawk@gnu.org; Sun, 09 Apr 2017 09:39:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59675) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cxD3V-0001su-Pm for bug-gawk@gnu.org; Sun, 09 Apr 2017 09:39:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cxD3S-0006zF-LT for bug-gawk@gnu.org; Sun, 09 Apr 2017 09:39:01 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:53705) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cxD3S-0006z7-IQ; Sun, 09 Apr 2017 09:38:58 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4009 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cxD3R-0001K9-LJ; Sun, 09 Apr 2017 09:38:58 -0400 Date: Sun, 09 Apr 2017 16:39:09 +0300 Message-Id: <83o9w5lmyq.fsf@gnu.org> From: Eli Zaretskii To: CC: arnold@skeeve.com, bug-gawk@gnu.org In-reply-to: <29295_1491742357_58EA2E95_29295_9606_1_58EA2E96.8000307@orange.com> (alexandre.ferrieux@orange.com) Reply-to: Eli Zaretskii References: <83h92g9i7z.fsf@gnu.org> <201703271926.v2RJQnp9008370@freefriends.org> <83zig66ssp.fsf@gnu.org> <201703280540.v2S5eKJm000631@freefriends.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> <838tnan4qr.fsf@gnu.org> <13201_1491679526_58E93926_13201_19001_1_58E9392A.1070003@orange.com> <837f2umwi0.fsf@gnu.org> <28677_1491688074_58E95A8A_28677_1294_1_58E95A8E.6080707@orange.com> <8360iem94z.fsf@gnu.org> <28677_1491730320_58E9FF90_28677_13640_1_58E9FF90.7030104@orange.com> <83y3v9ly0s.fsf@gnu.org> <11275_1491734990_58EA11CE_11275_7651 _1_58EA11CF.6070009@orange.com> <83vaqdlu47.fsf@gnu.org> <7557_1491737708_58EA1C6C_7 557_11544_1_58EA1C6E.7020309@orange.com> <83shlhlr6y.fsf@gnu.org> <29295_1491742357_58EA2E95_29295_9606_1_58EA2E96.8000307@orange.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Apr 2017 13:39:03 -0000 > Date: Sun, 9 Apr 2017 14:52:38 +0200 > From: > CC: , > > > So if Gawk returns 0xC000014B, the programs in question will not be > > able to interpret it in any useful way. > > So you know in advance that all such programs necessarily have a finite switch..case based on known EXCEPTION_* values > in winbase.h, and don't even have the obvious fallback: > > default: fprintf(stderr,"# Inknown exit status 0x%x\n", status); Who do you think has been porting those programs to Windows? And yes, there is fallback, but it is not what you think. Showing users a raw exit status is not a good idea, because most of them aren't developers. More importantly, the Windows equivalent of WTERMSIG will fail and/or show bogus signal numbers when it sees an unknown value. > In any case, here's a precedent that can be found in a few clicks after googling for 0xC000014B. > As you can see, developers and/or users of that specific piece of software ( a flight simulator) were able to make sense > of just the hexadecimal value (which was brought to their attention by a generic fallback as the above), and turn this > knowledge into useful advice. We are not talking about developers, we are talking about users. Asking users to interpret hex values and look them up in headers or in the Internet is not a sign of a user-friendly program. > http://www.pilote-virtuel.com/img/members/81/AVSIM-CTD-Guide.pdf > > HRESULT: 0xc000014B error -- Mostly occurs in networked > computers. HRESULT is exactly the statuses returned by device drivers. > This is a Microsoft.net error. The 0xc000014B is a "broken pipe" > exception. But Gawk is not a .NET application, so this is not relevant for us. Look, can we agree to disagree about this and stop this endless and useless thread? Please? At this point, it's a complete waste of time. From MAILER-DAEMON Sun Apr 09 10:44:06 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cxE4U-0001T8-Gv for mharc-bug-gawk@gnu.org; Sun, 09 Apr 2017 10:44:06 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38595) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cxE4S-0001Sy-43 for bug-gawk@gnu.org; Sun, 09 Apr 2017 10:44:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cxE4P-0004VL-1I for bug-gawk@gnu.org; Sun, 09 Apr 2017 10:44:04 -0400 Received: from mta136.mail.business.static.orange.com ([80.12.70.36]:47552 helo=relais-inet.orange.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cxE4O-0004V9-Ql; Sun, 09 Apr 2017 10:44:00 -0400 Received: from opfednr05.francetelecom.fr (unknown [xx.xx.xx.69]) by opfednr22.francetelecom.fr (ESMTP service) with ESMTP id 30B2C203E8; Sun, 9 Apr 2017 16:43:58 +0200 (CEST) Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.27]) by opfednr05.francetelecom.fr (ESMTP service) with ESMTP id E7FA520070; Sun, 9 Apr 2017 16:43:57 +0200 (CEST) Received: from lat6466.rd.francetelecom.fr (10.168.234.5) by OPEXCLILM7C.corporate.adroot.infra.ftgroup (10.114.31.27) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 9 Apr 2017 16:43:57 +0200 Message-ID: <6013_1491749038_58EA48AE_6013_19500_1_58EA48B0.5050209@orange.com> Date: Sun, 9 Apr 2017 16:44:00 +0200 From: User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111113 Thunderbird/8.0 MIME-Version: 1.0 To: Eli Zaretskii CC: , References: <83h92g9i7z.fsf@gnu.org> <83o9wl6wgb.fsf@gnu.org> <20170329123605.GA22175@ti129.telemetry-investments.com> <83d1d06t4y.fsf@gnu.org> <201703291626.v2TGQSAp023517@freefriends.org> <83k26vm8n7.fsf@gnu.org> <13201_1491671980_58E91BAC_13201_17088_1_58E91BAF.8020907@orange.com> <83a87qn5yu.fsf@gnu.org> <11766_1491674577_58E925D1_11766_9460_1_58E925D4.4020409@orange.com> <838tnan4qr.fsf@gnu.org> <13201_1491679526_58E93926_13201_19001_1_58E9392A.1070003@orange.com> <837f2umwi0.fsf@gnu.org> <28677_1491688074_58E95A8A_28677_1294_1_58E95A8E.6080707@orange.com> <8360iem94z.fsf@gnu.org> <28677_1491730320_58E9FF90_28677_13640_1_58E9FF90.7030104@orange.com> <83y3v9ly0s.fsf@gnu.org> <11275_1491734990_58EA11CE_11275_7651 _1_58EA11CF.6070009@orange.com> <83vaqdlu47.fsf@gnu.org> <7557_1491737708_58EA1C6C_7 557_11544_1_58EA1C6E.7020309@orange.com> <83shlhlr6y.fsf@gnu.org> <292 95_1491742357_58EA2E95_29295_9606_1_58EA2E96.8000307@orange.com> <83o9w5lmyq.fsf@gnu.org> In-Reply-To: <83o9w5lmyq.fsf@gnu.org> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.168.234.5] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 80.12.70.36 Subject: Re: [bug-gawk] Behavior of fflush with SIGPIPE on stdout [PATCH] X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Apr 2017 14:44:05 -0000 On 09/04/2017 15:39, Eli Zaretskii wrote: > Look, can we agree to disagree about this and stop this endless and > useless thread? Please? At this point, it's a complete waste of > time. Yep, sure. Let future developers waste theirs. _________________________________________________________________________________________________________________________ Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. This message and its attachments may contain confidential or privileged information that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and delete this message and its attachments. As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. Thank you. From MAILER-DAEMON Tue Apr 11 08:34:01 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cxuzh-0001pM-6L for mharc-bug-gawk@gnu.org; Tue, 11 Apr 2017 08:34:01 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41326) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cxuze-0001nW-Tt for bug-gawk@gnu.org; Tue, 11 Apr 2017 08:34:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cxuzb-0006if-QT for bug-gawk@gnu.org; Tue, 11 Apr 2017 08:33:58 -0400 Received: from mx1.acxiom.com ([198.160.100.225]:32170) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cxuzb-0006fx-94 for bug-gawk@gnu.org; Tue, 11 Apr 2017 08:33:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=acxiom.com; i=@acxiom.com; q=dns/txt; s=acxdkim; t=1491913803; x=1523449803; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version:content-transfer-encoding; bh=H7WRXUB3lj3lNzCbfxTI1c9O6p+l36nbvR1uQMKWEBU=; b=o9IF+sdj3SMAJv/0G1Btj2P2DhV147D+LEa/BCRaVHn49ZsR1D1CTm+6 cf7iinkdyI7zhi17HiVupqUcenMdtOPV2uhCM+2bhTxckDdvlbo2U+w0C OR1vOAdTrKiNKAQ9HjKm9x1opIN/XgUQOkwJbMfUf6Z+CT30nSsAXNfus w=; x-bypass-officex: False X-IronPort-AV: E=Sophos;i="5.37,185,1488866400"; d="scan'208";a="430562411" Received: from unknown (HELO LITIGHCCRP01.Corp.Acxiom.net) ([10.98.72.80]) by mx1out.acxiom.com with ESMTP/TLS/AES128-SHA; 11 Apr 2017 07:29:55 -0500 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (10.51.2.151) by owa.acxiom.com (10.98.72.80) with Microsoft SMTP Server (TLS) id 14.3.181.6; Tue, 11 Apr 2017 07:33:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Acxiom.onmicrosoft.com; s=selector1-acxiom-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=iZrWsl2c3oOe4pYu4YE0NXim9pYBhVz8Gq+Vjts6LB8=; b=X1m4m5u72db8hag3Ew+i5VJct98B/tSP1lLvG8U6aPkxilr025vFOid+BFGB56XBHSBwnfaGpbYBuIlDyASG/jwOuCxg0GKp2LdyCfYxLcAltcokSw1CURaB1YWFTe15UhoPOlMYR0YKECp8VGEh8p13W9vfIoDhsfVjYgYFfKs= Received: from CY4PR05MB3029.namprd05.prod.outlook.com (10.169.184.138) by CY4PR05MB3126.namprd05.prod.outlook.com (10.172.155.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.5; Tue, 11 Apr 2017 12:33:44 +0000 Received: from CY4PR05MB3029.namprd05.prod.outlook.com ([10.169.184.138]) by CY4PR05MB3029.namprd05.prod.outlook.com ([10.169.184.138]) with mapi id 15.01.1034.009; Tue, 11 Apr 2017 12:33:43 +0000 From: Stephane Delsert To: "Andrew J. Schorr" CC: "arnold@skeeve.com" , "bug-gawk@gnu.org" , Fatima Aliane , Vihan Sharma Thread-Topic: [bug-gawk] Memory leak Thread-Index: AdKnBffqqhEq2QZ0QtaVCrsgRXSRTwAB5D0AAAT1kCAAAS6pgAAb1prgAA5rC4AAAtZJgAAFaCsAAAHhKYAALEKfkAAE5DeAAAKXGoAAF1FCAAAMSocAAAIgVtAAAuXvAAACHYzwAAD36wAAKJrMEAGaTtYAAI9o9LA= Date: Tue, 11 Apr 2017 12:33:42 +0000 Message-ID: References: <20170329184233.GB15917@ti129.telemetry-investments.com> <201703291956.v2TJuh4V013261@freefriends.org> <201703300704.v2U74MJr012897@freefriends.org> <20170330125618.GA10336@ti129.telemetry-investments.com> <20170330152010.GA27660@ti129.telemetry-investments.com> <20170330164828.GA22819@ti129.telemetry-investments.com> <20170408155930.GA29624@ti129.telemetry-investments.com> In-Reply-To: <20170408155930.GA29624@ti129.telemetry-investments.com> Accept-Language: fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: telemetry-investments.com; dkim=none (message not signed) header.d=none; telemetry-investments.com; dmarc=none action=none header.from=acxiom.com; x-originating-ip: [193.203.192.15] x-microsoft-exchange-diagnostics: 1; CY4PR05MB3126; 7:K8sTj5qlyUEg4qc2qHwcYZSb20cH5qHQ9oCQi8dLnuMhxGq8QGBvepg5x/ED4azV4doM2uGaH9Z8dkAZxk5dPNIRziWPm1XkmMsOOUpuE3C1DjhvdgfmGnRUJ9qVOIwVcPV+laFU3E93dG0tOV7B/DP5LfwU8iCmTMBnGGCDN77XS1SkhErhau7FRx1MIS9TUphgRXsNA/5jJjfKV5xG+m8V8HJ2IqKEj7FHsQOMwlt2/IUj9vPFiJXj4yI3BC/Ta7NJWmcbvwBjzvyVUVLVDwhORb5gdZJUBQfA/9yQTPu6a/DBWhn/ZLO5DWuZ3VxQYEyHRK1w+QUFQmPOgvnOqQ== x-forefront-antispam-report: SFV:SKI; SCL:-1SFV:NSPM; SFS:(10009020)(6009001)(39400400002)(39850400002)(39450400003)(39410400002)(13464003)(24454002)(86362001)(25786009)(53546009)(3660700001)(3280700002)(5660300001)(6916009)(74316002)(33656002)(2950100002)(7696004)(5890100001)(7736002)(2906002)(122556002)(6436002)(229853002)(305945005)(77096006)(6506006)(4326008)(66066001)(81166006)(8676002)(38730400002)(54906002)(9686003)(110136004)(55016002)(107886003)(6116002)(3846002)(93886004)(99286003)(102836003)(6246003)(8936002)(76176999)(50986999)(54356999)(2900100001)(189998001)(53936002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR05MB3126; H:CY4PR05MB3029.namprd05.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; x-ms-office365-filtering-correlation-id: f079b7db-4fab-4ec5-1af5-08d480d6fda7 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081)(201702281549075); SRVR:CY4PR05MB3126; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(22074186197030); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(6041248)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(20161123564025)(20161123560025)(6072148); SRVR:CY4PR05MB3126; BCL:0; PCL:0; RULEID:; SRVR:CY4PR05MB3126; x-forefront-prvs: 0274272F87 spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Apr 2017 12:33:42.9683 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 2cd1112c-39d3-4a4b-b97d-4a49f614fcfa X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR05MB3126 X-OriginatorOrg: acxiom.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 198.160.100.225 Subject: Re: [bug-gawk] Memory leak X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Apr 2017 12:34:00 -0000 Hi Andy, That's great. I made a couple of test, the memory used by gawk doesn't exc= eed a couple of Kb even for huge file and results are perfect. = This bug was tricky and I'm impressed by your reactivity. = Thanks so much for your help, Best regards, St=E9phane. -----Original Message----- From: Andrew J. Schorr [mailto:aschorr@telemetry-investments.com] = Sent: samedi 8 avril 2017 18:00 To: Stephane Delsert Cc: arnold@skeeve.com; bug-gawk@gnu.org Subject: Re: [bug-gawk] Memory leak Hi Stephane, On Fri, Mar 31, 2017 at 04:04:01PM +0000, Stephane Delsert wrote: > I added your lines in the code and reran the tests with 1MM and 2MM. I've= always a memory leak : 1.5 Gb for 84MM of records processed . = If you apply the attached patch to pristine gawk-4.1.4 sources, does it fix= your memory leak? Thanks, Andy *************************************************************************** The information contained in this communication is confidential, is intended only for the use of the recipient named above, and may be legally privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please resend this communication to the sender and delete the original message or any copy of it from your computer system. Thank You. **************************************************************************** From MAILER-DAEMON Tue Apr 11 08:53:51 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cxvIt-00015k-JT for mharc-bug-gawk@gnu.org; Tue, 11 Apr 2017 08:53:51 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45597) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cxvIr-00014V-Hf for bug-gawk@gnu.org; Tue, 11 Apr 2017 08:53:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cxvIo-0006Bx-GL for bug-gawk@gnu.org; Tue, 11 Apr 2017 08:53:49 -0400 Received: from gw3a.telemetry-investments.com ([38.76.0.51]:52530 helo=sv3.telemetry-investments.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cxvIo-0006BR-AD for bug-gawk@gnu.org; Tue, 11 Apr 2017 08:53:46 -0400 Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129]) by sv3.telemetry-investments.com (Postfix) with ESMTP id 4B3E2BC; Tue, 11 Apr 2017 08:53:44 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telemetry-investments.com; s=tele1409; t=1491915224; bh=4hLWv2VEjN8lvS7ryIOfku0H752oCWuuqOCFASwh/Mk=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=buFIh0q31vKAmNe3Ttc/KjubRLt12w6XMzhfEEB4PcxC08IGcAgLSOKl6d5/IgfGX W9nHIHhnGhJ2RQR8M5Ex5G8+whcH9RxMKgEL6M0EyGZVOY1PamSwL+/0EWxm6IkJNc QqsUaUdl9vbZ0b1kF+BJ5xyWN0QAjKzqrCmCw55s= Received: by ti129.telemetry-investments.com (Postfix, from userid 300) id 3FF6132E; Tue, 11 Apr 2017 08:53:44 -0400 (EDT) Date: Tue, 11 Apr 2017 08:53:44 -0400 From: "Andrew J. Schorr" To: Stephane Delsert Cc: "arnold@skeeve.com" , "bug-gawk@gnu.org" , Fatima Aliane , Vihan Sharma Message-ID: <20170411125344.GA19326@ti129.telemetry-investments.com> References: <201703291956.v2TJuh4V013261@freefriends.org> <201703300704.v2U74MJr012897@freefriends.org> <20170330125618.GA10336@ti129.telemetry-investments.com> <20170330152010.GA27660@ti129.telemetry-investments.com> <20170330164828.GA22819@ti129.telemetry-investments.com> <20170408155930.GA29624@ti129.telemetry-investments.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 38.76.0.51 Subject: Re: [bug-gawk] Memory leak X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Apr 2017 12:53:50 -0000 Hi St=E9phane, You're welcome. To be fair, Arnold and I collaborated on the patch. Thank= you for finding the bug and reporting it; it was a tricky one. Best, Andy On Tue, Apr 11, 2017 at 12:33:42PM +0000, Stephane Delsert wrote: > Hi Andy, >=20 > That's great. I made a couple of test, the memory used by gawk doesn't= exceed a couple of Kb even for huge file and results are perfect.=20 > This bug was tricky and I'm impressed by your reactivity.=20 >=20 > Thanks so much for your help, >=20 > Best regards, >=20 > St=E9phane. >=20 > -----Original Message----- > From: Andrew J. Schorr [mailto:aschorr@telemetry-investments.com]=20 > Sent: samedi 8 avril 2017 18:00 > To: Stephane Delsert > Cc: arnold@skeeve.com; bug-gawk@gnu.org > Subject: Re: [bug-gawk] Memory leak >=20 > Hi Stephane, >=20 > On Fri, Mar 31, 2017 at 04:04:01PM +0000, Stephane Delsert wrote: > > I added your lines in the code and reran the tests with 1MM and 2MM. = I've always a memory leak : 1.5 Gb for 84MM of records processed .=20 >=20 > If you apply the attached patch to pristine gawk-4.1.4 sources, does it= fix your memory leak? >=20 > Thanks, > Andy > ***********************************************************************= **** > The information contained in this communication is confidential, is > intended only for the use of the recipient named above, and may be lega= lly > privileged. >=20 > If the reader of this message is not the intended recipient, you are > hereby notified that any dissemination, distribution or copying of this > communication is strictly prohibited. >=20 > If you have received this communication in error, please resend this > communication to the sender and delete the original message or any copy > of it from your computer system. >=20 > Thank You. > ***********************************************************************= ***** >=20 --=20 Andrew Schorr e-mail: aschorr@telemetry-investments.= com Telemetry Investments, L.L.C. phone: 917-305-1748 545 Fifth Ave, Suite 1108 fax: 212-425-5550 New York, NY 10017-3630 From MAILER-DAEMON Wed Apr 12 05:44:52 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cyEpY-00041A-0Y for mharc-bug-gawk@gnu.org; Wed, 12 Apr 2017 05:44:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50150) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyEpS-0003xy-PB for bug-gawk@gnu.org; Wed, 12 Apr 2017 05:44:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cyEpP-0002jg-6q for bug-gawk@gnu.org; Wed, 12 Apr 2017 05:44:46 -0400 Received: from mxout4.netvision.net.il ([194.90.9.27]:43576) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyEpO-0002jY-M0 for bug-gawk@gnu.org; Wed, 12 Apr 2017 05:44:43 -0400 MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII Received: from skeeve.com ([89.138.9.69]) by mxout4.netvision.net.il (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0OOA00JI8J2HN240@mxout4.netvision.net.il> for bug-gawk@gnu.org; Wed, 12 Apr 2017 12:44:41 +0300 (IDT) Received: from skeeve.com (skeeve.com [127.0.0.1]) by skeeve.com (8.15.2/8.15.2/Debian-3) with ESMTP id v3C9iems030353; Wed, 12 Apr 2017 12:44:41 +0300 Received: (from arnold@localhost) by skeeve.com (8.15.2/8.15.2/Submit) id v3C9idXZ030352; Wed, 12 Apr 2017 12:44:39 +0300 From: Arnold Robbins Message-id: <201704120944.v3C9idXZ030352@skeeve.com> Date: Wed, 12 Apr 2017 12:44:39 +0300 To: mcollado2011@gmail.com, arnold@skeeve.com Cc: bug-gawk@gnu.org References: <20170401135715.GA24807@ti129.telemetry-investments.com> <96d214a7-177c-392b-31a4-8da4dcc0b14a@comcast.net> <20170401170848.GA2560@ti129.telemetry-investments.com> <6dc68238-7674-7b09-959f-1d490d531ae3@comcast.net> <20170402135533.GA13784@ti129.telemetry-investments.com> <253a7580-73f2-a806-2475-053d6f513ec7@comcast.net> <201704030629.v336TsBA016031@freefriends.org> <58E55BEF.6040702@gmail.com> In-reply-to: <58E55BEF.6040702@gmail.com> User-Agent: Heirloom mailx 12.5 6/20/10 X-detected-operating-system: by eggs.gnu.org: Windows NT kernel [generic] [fuzzy] X-Received-From: 194.90.9.27 Subject: Re: [bug-gawk] FPAT bug? X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Apr 2017 09:44:50 -0000 Hi All. > Subject: Re: [bug-gawk] FPAT bug? > To: arnold@skeeve.com > Cc: bug-gawk@gnu.org > From: Manuel Collado > Date: Wed, 5 Apr 2017 23:04:47 +0200 > > El 03/04/2017 a las 8:29, arnold@skeeve.com escribi?: > >[...] > > I will get around to investigating the issue with FPAT. > > Perhaps a problem with the FPAT feature is how the parsing algorithm is > structured. Thinking about it, I feel there is a simpler way to > structure the code. > > Attached is what can be an awk reference implementation of the FPAT > parser. It differs from the current implementation in some ways: > > - Each iteration of the parsing loop identifies exactly one > (separator[n-1],field[n]) > pair. The last iteration may deliver just a final separator. > - Each (separator/field) pair must consume some input characters. > Except for the first (sep[0]/field[1]) that can be both nulls. > - So a null field is only valid as a first field or after > a non-null separator. > > This avoid the use of flags to remember some state from the previous > loop iteration. > > The attached code has been tested with the (adapted) set of fpat*.awk > tests, and some more. > > Please advice if it is worth the pain of trying to restructure the > current code, or if there is a simpler way to fix the FPAT bug. Thanks Manuel. For the bug-gawk list, Manuel contributed a code fix based on his awk reference implementation and I have integrated his changes into master. Below is the essence of his fix (without some additional tests) that might apply to gawk-4.1-stable without too much trouble. In any case, his code is now in master and will thus be part of the next major release. Thanks! Arnold ------------------------------- diff --git a/ChangeLog b/ChangeLog index 31c77de..fd75980 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2017-04-12 Manuel Collado + + Fix the FPAT bug reported by Ed Morton in the gawk-bug mailing list. + + * awk.h (Regexp): Remove the non_empty flag. + * field.c (fpat_parse_field): Restructure the code to reduce complexity + and document the new structure. + 2017-04-10 Andrew J. Schorr * awk.h (enum opcodeval): For the avoidance of doubt, specify that diff --git a/awk.h b/awk.h index 88a495a..127eb92 100644 --- a/awk.h +++ b/awk.h @@ -210,7 +210,6 @@ typedef struct Regexp { struct re_pattern_buffer pat; struct re_registers regs; struct dfa *dfareg; - bool non_empty; /* for use in fpat_parse_field */ bool has_meta; /* re has meta chars so (probably) isn't simple string */ bool maybe_long; /* re has meta chars that can match long text */ } Regexp; diff --git a/doc/ChangeLog b/doc/ChangeLog index 82ae2ce..61d09e2 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2017-04-12 Manuel Collado + + * gawktexi.in, gawk.1: Small clarification of the patsplit behavior. + 2017-04-11 Arnold D. Robbins * gawktexi.in: Minor style edits. diff --git a/doc/gawk.1 b/doc/gawk.1 index a4f691d..b04cb01 100644 --- a/doc/gawk.1 +++ b/doc/gawk.1 @@ -2977,9 +2977,11 @@ that matched .IR r . The value of .BI seps[ i ] -is the separator that appeared in -front of -.BI a[ i +1]\fR. +is the possibly null separator that appeared after +.BI a[ i ]\fR. +The value of +.B seps[0] +is the possibly null leading separator. \&\fRIf .I r is omitted, diff --git a/doc/gawktexi.in b/doc/gawktexi.in index f4fe259..f991432 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -17267,7 +17267,7 @@ using a third argument is a fatal error. @cindexgawkfunc{patsplit} @cindex split string into array Divide -@var{string} into pieces defined by @var{fieldpat} +@var{string} into pieces (or ``fields'') defined by @var{fieldpat} and store the pieces in @var{array} and the separator strings in the @var{seps} array. The first piece is stored in @code{@var{array}[1]}, the second piece in @code{@var{array}[2]}, and so @@ -17278,9 +17278,11 @@ It may be either a regexp constant or a string. If @var{fieldpat} is omitted, the value of @code{FPAT} is used. @code{patsplit()} returns the number of elements created. @code{@var{seps}[@var{i}]} is -the separator string -between @code{@var{array}[@var{i}]} and @code{@var{array}[@var{i}+1]}. -Any leading separator will be in @code{@var{seps}[0]}. +the possibly null separator string +after @code{@var{array}[@var{i}]}. +The possibly null leading separator will be in @code{@var{seps}[0]}. +So a non-null @var{string} with @var{n} fields will have @var{n+1} separators. +A null @var{string} will not have neither fields nor separators. The @code{patsplit()} function splits strings into pieces in a manner similar to the way input lines are split into fields using @code{FPAT} diff --git a/field.c b/field.c index a3be977..8145141 100644 --- a/field.c +++ b/field.c @@ -1502,101 +1502,65 @@ incr_scan(char **scanp, size_t len, mbstate_t *mbs) * via (*parse_field)(). This variation is for when FPAT is a regular * expression -- use the value to find field contents. * - * This was really hard to get right. It happens to bear many resemblances - * to issues I had with getting gsub right with null matches. When dealing - * with that I prototyped in awk and had the foresight to save the awk code - * over in the C file. Starting with that as a base, I finally got to this - * awk code to do what I needed, and then translated it into C. Fortunately - * the C code bears a closer correspondance to the awk code here than over - * by gsub. + * The FPAT parsing logic is a bit difficult to specify. In particular + * to allow null fields at certain locations. To make the code as robust + * as possible, an awk reference implementation was written and tested + * as a first step, and later recoded in C, preserving its structure as + * much as possible. * - * BEGIN { - * false = 0 - * true = 1 - * - * fpat[1] = "([^,]*)|(\"[^\"]+\")" - * fpat[2] = fpat[1] - * fpat[3] = fpat[1] - * fpat[4] = "aa+" - * fpat[5] = fpat[4] - * - * data[1] = "Robbins,,Arnold," - * data[2] = "Smith,,\"1234 A Pretty Place, NE\",Sometown,NY,12345-6789,USA" - * data[3] = "Robbins,Arnold,\"1234 A Pretty Place, NE\",Sometown,NY,12345-6789,USA" - * data[4] = "bbbaaacccdddaaaaaqqqq" - * data[5] = "bbbaaacccdddaaaaaqqqqa" # should get trailing qqqa - * - * for (i = 1; i in data; i++) { - * printf("Splitting: <%s>\n", data[i]) - * n = mypatsplit(data[i], fields, fpat[i], seps) - * print "n =", n - * for (j = 1; j <= n; j++) - * printf("fields[%d] = <%s>\n", j, fields[j]) - * for (j = 0; j in seps; j++) - * printf("seps[%s] = <%s>\n", j, seps[j]) - * } - * } - * - * function mypatsplit(string, array, pattern, seps, - * eosflag, non_empty, nf) # locals + * # Reference implementation of the FPAT record parsing. + * # + * # Each loop iteration identifies a (separator[n-1],field[n]) pair. + * # Each loop iteration must consume some characters, except for the first field. + * # So a null field is only valid as a first field or after a non-null separator. + * # A null record has no fields (not a single null field). + * + * function refpatsplit(string, fields, pattern, seps, + * parse_start, sep_start, field_start, field_length, field_found, nf) # locals * { - * delete array - * delete seps - * if (length(string) == 0) - * return 0 - * - * eosflag = non_empty = false - * nf = 0 - * while (match(string, pattern)) { - * if (RLENGTH > 0) { # easy case - * non_empty = true - * if (! (nf in seps)) { - * if (RSTART == 1) # match at front of string - * seps[nf] = "" - * else - * seps[nf] = substr(string, 1, RSTART - 1) - * } - * array[++nf] = substr(string, RSTART, RLENGTH) - * string = substr(string, RSTART+RLENGTH) - * if (length(string) == 0) - * break - * } else if (non_empty) { - * # last match was non-empty, and at the - * # current character we get a zero length match, - * # which we don't want, so skip over it - * non_empty = false - * seps[nf] = substr(string, 1, 1) - * string = substr(string, 2) - * } else { - * # 0 length match - * if (! (nf in seps)) { - * if (RSTART == 1) - * seps[nf] = "" - * else - * seps[nf] = substr(string, 1, RSTART - 1) - * } - * array[++nf] = "" - * if (! non_empty && ! eosflag) { # prev was empty - * seps[nf] = substr(string, 1, 1) - * } - * if (RSTART == 1) { - * string = substr(string, 2) - * } else { - * string = substr(string, RSTART + 1) - * } - * non_empty = false - * } - * if (length(string) == 0) { - * if (eosflag) - * break - * else - * eosflag = true - * } - * } - * if (length(string) > 0) - * seps[nf] = string - * - * return length(array) + * # Local state variables: + * # - parse_start: pointer to the first not yet consumed character + * # - sep_start: pointer to the beginning of the parsed separator + * # - field start: pointer to the beginning of the parsed field + * # - field length: length of the parsed field + * # - field_found: flag for succesful field match + * # - nf: Number of fields found so far + * + * # Prepare for parsing + * parse_start = 1 # first not yet parsed char + * nf = 0 # fields found so far + * delete fields + * delete seps + * + * # Loop that consumes the whole record + * while (parse_start <= length(string)) { # still something to parse + * + * # first attempt to match the next field + * sep_start = parse_start + * field_found = match(substr(string, parse_start), pattern) + * + * # check for an invalid null field and retry one character away + * if (nf > 0 && field_found && RSTART==1 && RLENGTH==0) { + * parse_start++ + * field_found = match(substr(string, parse_start), pattern) + * } + * + * # store the (sep[n-1],field[n]) pair + * if (field_found) { + * field_start = parse_start + RSTART - 1 + * field_length = RLENGTH + * seps[nf] = substr(string, sep_start, field_start-sep_start) + * fields[++nf] = substr(string, field_start, field_length) + * parse_start = field_start + field_length + * + * # store the final extra sep after the last field + * } else { + * seps[nf] = substr(string, sep_start) + * parse_start = length(string) + 1 + * } + * } + * + * return nf * } */ static long @@ -1615,10 +1579,9 @@ fpat_parse_field(long up_to, /* parse only up to this field number */ char *start; char *end = scan + len; int regex_flags = RE_NEED_START; - bool need_to_set_sep; - bool non_empty; - bool eosflag; mbstate_t mbs; + char* field_start; + bool field_found; memset(&mbs, 0, sizeof(mbstate_t)); @@ -1631,90 +1594,48 @@ fpat_parse_field(long up_to, /* parse only up to this field number */ if (rp == NULL) /* use FPAT */ rp = FPAT_regexp; - if (in_middle) { - regex_flags |= RE_NO_BOL; - } - non_empty = rp->non_empty; + while (scan <= end && nf < up_to) { /* still something to parse */ - eosflag = false; - need_to_set_sep = true; - start = scan; - while (research(rp, scan, 0, (end - scan), regex_flags) != -1 - && nf < up_to) { + /* first attempt to match the next field */ + start = scan; + field_found = research(rp, scan, 0, (end - scan), regex_flags) != -1; + + /* check for an invalid null field and retry one character away */ + if (nf > 0 && field_found && REEND(rp, scan) == 0) { /* invalid null field */ + increment_scan(& scan, end - scan); + field_found = research(rp, scan, 0, (end - scan), regex_flags) != -1; + } - if (REEND(rp, scan) > RESTART(rp, scan)) { /* if (RLENGTH > 0) */ - non_empty = true; - if (sep_arr != NULL && need_to_set_sep) { - if (RESTART(rp, scan) == 0) /* match at front */ - set_element(nf, start, 0L, sep_arr); + /* store the (sep[n-1],field[n]) pair */ + if (field_found) { + field_start = scan + RESTART(rp, scan); + if (sep_arr != NULL) { /* store the separator */ + if (field_start == start) /* match at front */ + set_element(nf, start, 0L, sep_arr); else - set_element(nf, + set_element(nf, start, - (long) RESTART(rp, scan), + (long) (field_start - start), sep_arr); } /* field is text that matched */ (*set)(++nf, - scan + RESTART(rp, scan), + field_start, (long)(REEND(rp, scan) - RESTART(rp, scan)), n); - scan += REEND(rp, scan); - if (scan >= end) - break; - need_to_set_sep = true; - } else if (non_empty) { /* else if non_empty */ + + } else { /* - * last match was non-empty, and at the - * current character we get a zero length match, - * which we don't want, so skip over it + * No match, store the final extra separator after + * the last field. */ - non_empty = false; - if (sep_arr != NULL) { - need_to_set_sep = false; - set_element(nf, start, 1L, sep_arr); - } - increment_scan(& scan, end - scan); - } else { - /* 0 length match */ - if (sep_arr != NULL && need_to_set_sep) { - if (RESTART(rp, scan) == 0) /* RSTART == 1 */ - set_element(nf, start, 0L, sep_arr); - else - set_element(nf, start, - (long) RESTART(rp, scan), - sep_arr); - } - need_to_set_sep = true; - (*set)(++nf, scan, 0L, n); - if (! non_empty && ! eosflag) { /* prev was empty */ - if (sep_arr != NULL) { - set_element(nf, start, 1L, sep_arr); - need_to_set_sep = false; - } - } - if (RESTART(rp, scan) == 0) - increment_scan(& scan, end - scan); - else { - scan += RESTART(rp, scan); - } - non_empty = false; - } - if (scan >= end) { /* length(string) == 0 */ - if (eosflag) - break; - else - eosflag = true; + if (sep_arr != NULL) + set_element(nf, start, (long) (end - start), sep_arr); + scan = end + 1; } - - start = scan; - } - if (scan < end) { - if (sep_arr != NULL) - set_element(nf, scan, (long) (end - scan), sep_arr); } *buf = scan; - rp->non_empty = non_empty; return nf; } diff --git a/test/patsplit.ok b/test/patsplit.ok index cda8319..02387d8 100644 --- a/test/patsplit.ok +++ b/test/patsplit.ok @@ -8,6 +8,7 @@ seps[0] = <> seps[1] = <,> seps[2] = <,> seps[3] = <,> +seps[4] = <> Splitting: n = 7 fields[1] = @@ -24,6 +25,7 @@ seps[3] = <,> seps[4] = <,> seps[5] = <,> seps[6] = <,> +seps[7] = <> Splitting: n = 7 fields[1] = @@ -40,6 +42,7 @@ seps[3] = <,> seps[4] = <,> seps[5] = <,> seps[6] = <,> +seps[7] = <> Splitting: n = 2 fields[1] = From MAILER-DAEMON Wed Apr 12 16:19:59 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cyOkB-00053D-Gv for mharc-bug-gawk@gnu.org; Wed, 12 Apr 2017 16:19:59 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58919) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyOk7-00052L-At for bug-gawk@gnu.org; Wed, 12 Apr 2017 16:19:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cyOk3-00005s-Aa for bug-gawk@gnu.org; Wed, 12 Apr 2017 16:19:55 -0400 Received: from mout.gmx.net ([212.227.17.21]:65527) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cyOk3-00004t-0r for bug-gawk@gnu.org; Wed, 12 Apr 2017 16:19:51 -0400 Received: from [192.168.1.191] ([201.159.52.124]) by mail.gmx.com (mrgmx103 [212.227.17.168]) with ESMTPSA (Nemesis) id 0MYwQh-1ccF162CHr-00VdfS for ; Wed, 12 Apr 2017 22:19:48 +0200 To: "bug-gawk@gnu.org" From: Hermann Peifer Message-ID: <44ad2de0-b9ec-1ca4-e8b3-bf2a16e2b747@gmx.eu> Date: Wed, 12 Apr 2017 17:19:42 -0300 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------4C3E24171C2FCE0AD968C05A" X-Provags-ID: V03:K0:Jef09cdbF+Crzfmn+82g/xeFasURTiDoNMsoFxzN4vx4zpZVgZG zsiJo+ja1ErqpcN24+eehJz9vPBibouN7v8mNeLiBJ2zjTJIVuT0JOQLMyTn/pONjHa4I9s f1cjYzonkmUeUqsWtAaj+mJaLuL1pxukEezH4HDka9axOCSlwmtIfUrtfdIH4X8uzY7Cbiu vwuQVKmXm9ugEKHiF1l+Q== X-UI-Out-Filterresults: notjunk:1;V01:K0:APlPStMVVaE=:B/8V2Xh0NXs3x4h0kEV6sU NIsmB4+MRNHo4i69/Lyfy+HqNYfZAV4trbxt8s8XAOOt8fEDn5TSNjRZ6plpAoy8MEbz7NU4r fJHgLHy+otRrlOD+0Z4CHlL7AIsj4xRNO63L/5zG3C9kvYUEST7tdpd4XYTq+HkKUi9Sj5KIR mGZHGFa9MV4jerd8vYY4Nk8MBnQOsKZqkSjD/gii/pQJljLendmGINqgnlWIRR0s8A6BjjiQH 8fufcEfz2uYEXSbb4A1Z6Q2we+RKlj/EPma3/XM8Xt5275Hv4HC4cjtUdQ1nO/XYxZful9GHZ GgVgtaZZ87SYD/LvX8IJyOV3DP7jzlhVoak8rBiGXmjNYyZoo35r/C3vmLTynbtAweLU7OHxu 04Afsm8HcfVcrcYyDGkaIdt6iDqalyINWpSCYwawt6RbuyGyo51JFt7yiBnaWXsvsAlwgoyhU 8ympbgaWNSubYJmjWQN9hPhHVN1Xq9IGn5HmU5qyyrj0Zq+wgh6BogCJydrrQtEyfJGPc0Ex1 tNOW0YB6dwphKi2N/FZpQmzSYfwioKZfSJ1uCrLsUti620y+9SxmKX209BXGVS1uJ0/mxjOMy d50vI3nHepvUDjavSv1NUVkJCos3WPF2B5/pN28vmKYEVN9icKzcTGMaVS/JeCP+mjC3Jg8XA 02B9tgdNgzSuUaaSQWweQ2c4nGEFudTbJi3sj5tv01k4sIr0vG6N+TAaSsb2ZoLSZOFd7qqOW MohWTwZOJs93hbWn6o/c6tiZ4Ir/86KAvFD8yk9A3/RtkVFoE1wzpAcDzCI= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.17.21 Subject: [bug-gawk] gawk/master fails to build X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Apr 2017 20:19:56 -0000 This is a multi-part message in MIME format. --------------4C3E24171C2FCE0AD968C05A Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi again, The current code in gawk/master fails to build on my MacBook, see attached error report. Hermann $ gcc --version Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 8.1.0 (clang-802.0.41) Target: x86_64-apple-darwin16.4.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin --------------4C3E24171C2FCE0AD968C05A Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="make.err" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="make.err" YnVpbHRpbi5jOjE5MjE6MzU6IHdhcm5pbmc6IHNoaWZ0aW5nIGEgbmVnYXRpdmUgc2lnbmVk IHZhbHVlIGlzIHVuZGVmaW5lZCBbLVdzaGlmdC1uZWdhdGl2ZS12YWx1ZV0KICAgICAgICBz dGF0aWMgY29uc3QgdGltZV90IHRpbWVfdF9taW4gPSBUWVBFX01JTklNVU0odGltZV90KTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fgpidWlsdGluLmM6NDg6MjA6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ1RZ UEVfTUlOSU1VTScKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB+ICh0KSAwIDw8 IChzaXplb2YgKHQpICogQ0hBUl9CSVQgLSAxKSA6ICh0KSAwKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB+fn5+fn5+IF4KYnVpbHRpbi5jOjE5MjI6MzU6IHdhcm5pbmc6 IHNoaWZ0aW5nIGEgbmVnYXRpdmUgc2lnbmVkIHZhbHVlIGlzIHVuZGVmaW5lZCBbLVdzaGlm dC1uZWdhdGl2ZS12YWx1ZV0KICAgICAgICBzdGF0aWMgY29uc3QgdGltZV90IHRpbWVfdF9t YXggPSBUWVBFX01BWElNVU0odGltZV90KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpidWlsdGluLmM6NDk6NDE6IG5v dGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ1RZUEVfTUFYSU1VTScKI2RlZmluZSBUWVBFX01B WElNVU0odCkgKCh0KSAofiAodCkgMCAtIFRZUEVfTUlOSU1VTSAodCkpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpidWlsdGlu LmM6NDg6MjA6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ1RZUEVfTUlOSU1VTScKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB+ICh0KSAwIDw8IChzaXplb2YgKHQpICog Q0hBUl9CSVQgLSAxKSA6ICh0KSAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB+fn5+fn5+IF4KYnVpbHRpbi5jOjM4MzY6MjogZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVk IGlkZW50aWZpZXIgJ3Jlc2xlbicKICAgICAgICByZXNsZW4gPSB0MS0+c3RsZW47CiAgICAg ICAgXgpidWlsdGluLmM6MzgzOTozMzogZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50 aWZpZXIgJ3Jlc2xlbic7IGRpZCB5b3UgbWVhbiAnd2NzbGVuJz8KICAgICAgICByZXR1cm4g bWFrZV9zdHJpbmcodGhlX3Jlc3VsdCwgcmVzbGVuKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fn5+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHdjc2xlbgouL2F3ay5oOjEzMzE6NDc6IG5vdGU6IGV4cGFuZGVkIGZyb20g bWFjcm8gJ21ha2Vfc3RyaW5nJwojZGVmaW5lIG1ha2Vfc3RyaW5nKHMsIGwpICAgICAgIG1h a2Vfc3RyX25vZGUoKHMpLCAobCksIDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi91c3IvaW5jbHVkZS93Y2hhci5oOjEzMjo4OiBu b3RlOiAnd2NzbGVuJyBkZWNsYXJlZCBoZXJlCnNpemVfdCAgd2NzbGVuKGNvbnN0IHdjaGFy X3QgKik7CiAgICAgICAgXgpidWlsdGluLmM6MzgzOTo5OiB3YXJuaW5nOiBpbmNvbXBhdGli bGUgcG9pbnRlciB0byBpbnRlZ2VyIGNvbnZlcnNpb24gcGFzc2luZyAnc2l6ZV90IChjb25z dCB3Y2hhcl90ICopJyAoYWthICd1bnNpZ25lZCBsb25nIChjb25zdCBpbnQgKiknKSB0byBw YXJhbWV0ZXIgb2YgdHlwZSAnc2l6ZV90JyAoYWthICd1bnNpZ25lZCBsb25nJykgWy1XaW50 LWNvbnZlcnNpb25dCiAgICAgICAgcmV0dXJuIG1ha2Vfc3RyaW5nKHRoZV9yZXN1bHQsIHJl c2xlbik7CiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K Li9hd2suaDoxMzMxOjQ2OiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdtYWtlX3N0cmlu ZycKI2RlZmluZSBtYWtlX3N0cmluZyhzLCBsKSAgICAgICBtYWtlX3N0cl9ub2RlKChzKSwg KGwpLCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn4KLi9hd2suaDoxNjcxOjUwOiBub3RlOiBwYXNzaW5nIGFyZ3VtZW50IHRvIHBh cmFtZXRlciAnbGVuJyBoZXJlCmV4dGVybiBOT0RFICptYWtlX3N0cl9ub2RlKGNvbnN0IGNo YXIgKnMsIHNpemVfdCBsZW4sIGludCBmbGFncyk7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCjMgd2FybmluZ3MgYW5kIDIgZXJyb3JzIGdl bmVyYXRlZC4KbWFrZVsyXTogKioqIFtidWlsdGluLm9dIEVycm9yIDEKbWFrZVsyXTogKioq IFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZVsxXTogKioqIFthbGwtcmVj dXJzaXZlXSBFcnJvciAxCm1ha2U6ICoqKiBbYWxsXSBFcnJvciAyCg== --------------4C3E24171C2FCE0AD968C05A-- From MAILER-DAEMON Wed Apr 12 16:44:10 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cyP7a-0004bH-LM for mharc-bug-gawk@gnu.org; Wed, 12 Apr 2017 16:44:10 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38201) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyP7Y-0004bB-Ix for bug-gawk@gnu.org; Wed, 12 Apr 2017 16:44:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cyP7V-0007ZT-H8 for bug-gawk@gnu.org; Wed, 12 Apr 2017 16:44:08 -0400 Received: from freefriends.org ([96.88.95.60]:44476) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyP7V-0007Z8-7t for bug-gawk@gnu.org; Wed, 12 Apr 2017 16:44:05 -0400 X-Envelope-From: arnold@skeeve.com Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.14.9/8.14.9) with ESMTP id v3CKi1LE029435; Wed, 12 Apr 2017 14:44:01 -0600 Received: (from arnold@localhost) by freefriends.org (8.14.9/8.14.9/submit) id v3CKi1ZW029434; Wed, 12 Apr 2017 20:44:01 GMT From: arnold@skeeve.com Message-Id: <201704122044.v3CKi1ZW029434@freefriends.org> X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to arnold@skeeve.com using -f Date: Wed, 12 Apr 2017 14:44:01 -0600 To: peifer@gmx.eu, bug-gawk@gnu.org References: <44ad2de0-b9ec-1ca4-e8b3-bf2a16e2b747@gmx.eu> In-Reply-To: <44ad2de0-b9ec-1ca4-e8b3-bf2a16e2b747@gmx.eu> User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 96.88.95.60 Subject: Re: [bug-gawk] gawk/master fails to build X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Apr 2017 20:44:09 -0000 Hi. Thanks for the report. I believe I've fixed the problem. Please do a 'make distclean', 'git pull' and then a clean build. Thanks, Arnold Hermann Peifer wrote: > Hi again, > > The current code in gawk/master fails to build on my MacBook, see > attached error report. > > Hermann > > $ gcc --version > Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr > --with-gxx-include-dir=/usr/include/c++/4.2.1 > > Apple LLVM version 8.1.0 (clang-802.0.41) > Target: x86_64-apple-darwin16.4.0 > Thread model: posix > InstalledDir: > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin From MAILER-DAEMON Wed Apr 12 16:47:55 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cyPBD-0005Qi-5i for mharc-bug-gawk@gnu.org; Wed, 12 Apr 2017 16:47:55 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39611) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyPBA-0005P0-ER for bug-gawk@gnu.org; Wed, 12 Apr 2017 16:47:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cyPB7-0002wB-DD for bug-gawk@gnu.org; Wed, 12 Apr 2017 16:47:52 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:50522) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyPB7-0002w2-9Z; Wed, 12 Apr 2017 16:47:49 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1380 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cyPB6-0008If-JS; Wed, 12 Apr 2017 16:47:49 -0400 Date: Wed, 12 Apr 2017 23:48:08 +0300 Message-Id: <83mvblic8n.fsf@gnu.org> From: Eli Zaretskii To: Hermann Peifer CC: bug-gawk@gnu.org In-reply-to: <44ad2de0-b9ec-1ca4-e8b3-bf2a16e2b747@gmx.eu> (message from Hermann Peifer on Wed, 12 Apr 2017 17:19:42 -0300) Reply-to: Eli Zaretskii References: <44ad2de0-b9ec-1ca4-e8b3-bf2a16e2b747@gmx.eu> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e Subject: Re: [bug-gawk] gawk/master fails to build X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Apr 2017 20:47:53 -0000 > From: Hermann Peifer > Date: Wed, 12 Apr 2017 17:19:42 -0300 > > The current code in gawk/master fails to build on my MacBook, see > attached error report. > > Hermann > > $ gcc --version > Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr > --with-gxx-include-dir=/usr/include/c++/4.2.1 > > Apple LLVM version 8.1.0 (clang-802.0.41) > Target: x86_64-apple-darwin16.4.0 > Thread model: posix > InstalledDir: > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin > > [...] > builtin.c:3836:2: error: use of undeclared identifier 'reslen' > reslen = t1->stlen; > ^ > builtin.c:3839:33: error: use of undeclared identifier 'reslen'; did you mean 'wcslen'? > return make_string(the_result, reslen); > ^~~~~~ > wcslen Does that mean clang doesn't know what is 'size_t'? Because reslen is declared on line 3792, like this: size_t reslen; From MAILER-DAEMON Wed Apr 12 19:35:44 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cyRnb-0000NF-Ua for mharc-bug-gawk@gnu.org; Wed, 12 Apr 2017 19:35:43 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40368) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyRnZ-0000My-N5 for bug-gawk@gnu.org; Wed, 12 Apr 2017 19:35:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cyRnU-0008KC-RI for bug-gawk@gnu.org; Wed, 12 Apr 2017 19:35:41 -0400 Received: from mout.gmx.net ([212.227.17.22]:50855) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cyRnU-0008K4-Au for bug-gawk@gnu.org; Wed, 12 Apr 2017 19:35:36 -0400 Received: from [192.168.0.101] ([177.38.146.187]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0LzoSt-1c2r9042Kp-0154tt; Thu, 13 Apr 2017 01:35:30 +0200 To: arnold@skeeve.com, bug-gawk@gnu.org References: <44ad2de0-b9ec-1ca4-e8b3-bf2a16e2b747@gmx.eu> <201704122044.v3CKi1ZW029434@freefriends.org> From: Hermann Peifer Message-ID: <245793ec-e00e-bad1-1cf0-8eb108f94600@gmx.eu> Date: Wed, 12 Apr 2017 20:35:24 -0300 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <201704122044.v3CKi1ZW029434@freefriends.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:6LwYSG5ZvX58ieGpJuGovHcDvpG5Zo89Sxt/uEUGDf3oWEor25t VyPzstDFsE3+AQhcwtg14CSKknUVSJWyny2Jn3dsOb/E2hbzTppxsVPMZzyv7F0xb090swc vbQ9yUPjwUY47Vgw9ikctcTBUVybM47PvQh36Xj62ky3120WhQuEhjQv/XFrunzC2aB+rWy bpxRkSM882KdOQopFEQNw== X-UI-Out-Filterresults: notjunk:1;V01:K0:WqLzquE9+Mw=:tCt64vvTCxnhWpd7a3NEX4 B5Ps1Hu6Fzwjo8yKpb94rESeKI1i5u9efu1gMgFsmOpzn/SMw8iYUGYhmy3fUbELa022o/IFU Ho0MN4eL8hihFDoPpHPRCIprnEnvnEvDgqLgqRoNzAJRh/L7gwEpe/m0HqtElEEecC52HO6WC lJY0PKM90hpudZYCwAg3xjPnZCNwLARQZ9vZIWN3xu771JGSDnSLgN0tNKAHid8zVkCUhWmkx c/xGvK203cUYDuM8hTdx7SlPTjQLozC8fcIlumV6AzKYhFWOBO4xIwT+k8dlc0JB3GvPa6EHR V+Ev1Zfq/OroWJsr9SWhSUTxyCMl9uguu4R6Be5n5ZX0687yojugGYT8O2tOgGg0Z3qm+5I5T QkUAUT5B/TDh/jNEq3Puje80rWa7IeMKjIoCmz+wy/y9vDO9E9SPjlwVcySjGMoebG/69/egn bbVnZ31Q6ih8u4a3JWrOq84mt3B305tVxhLOw3F/1lbn5nISGiH202OJzzNz/ap55wKsYD0+e /Vblcl3VXb9ksu/IBR6N4lDD/f9zoVZywxOBWHNLJCOP7zMcuJa6FvQ5nsf+SsfYWcTJRIoH3 wxZqQolKNu+wBC4eGxp0hVqBK3U9BDQU4i+/39TKuKRL471794M0wfXOJ7M2vfCIUB432Gvya U7DThW6PkkYApATmf54Y63p5K8fXl9LDhcK9ITDtCfssaAQdS3caD5Nd3gR6ZDOv22ypsBTMY AzusNJzNAdxePlukE1O1lENy+dtTx/QwUlcmiljEjUtqCAv/ulrjjVO6SVBrN7dboONajCLon rvmVVe6 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.17.22 Subject: Re: [bug-gawk] gawk/master fails to build X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Apr 2017 23:35:42 -0000 On 12/04/2017 17:44, arnold@skeeve.com wrote: > Hi. > > Thanks for the report. I believe I've fixed the problem. Please > do a 'make distclean', 'git pull' and then a clean build. Thanks for the fix. gawk/master builds fine again. Hermann From MAILER-DAEMON Thu Apr 13 04:27:47 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cya6U-0000rR-SY for mharc-bug-gawk@gnu.org; Thu, 13 Apr 2017 04:27:46 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51255) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cya6R-0000q9-97 for bug-gawk@gnu.org; Thu, 13 Apr 2017 04:27:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cya6N-0006lJ-1q for bug-gawk@gnu.org; Thu, 13 Apr 2017 04:27:43 -0400 Received: from freefriends.org ([96.88.95.60]:56802) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cya6M-0006kj-Pl; Thu, 13 Apr 2017 04:27:38 -0400 X-Envelope-From: arnold@skeeve.com Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.14.9/8.14.9) with ESMTP id v3D8RWaa003922; Thu, 13 Apr 2017 02:27:33 -0600 Received: (from arnold@localhost) by freefriends.org (8.14.9/8.14.9/submit) id v3D8RWvp003921; Thu, 13 Apr 2017 08:27:32 GMT From: arnold@skeeve.com Message-Id: <201704130827.v3D8RWvp003921@freefriends.org> X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to arnold@skeeve.com using -f Date: Thu, 13 Apr 2017 02:27:32 -0600 To: peifer@gmx.eu, eliz@gnu.org Cc: bug-gawk@gnu.org References: <44ad2de0-b9ec-1ca4-e8b3-bf2a16e2b747@gmx.eu> <83mvblic8n.fsf@gnu.org> In-Reply-To: <83mvblic8n.fsf@gnu.org> User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 96.88.95.60 Subject: Re: [bug-gawk] gawk/master fails to build X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Apr 2017 08:27:44 -0000 Eli Zaretskii wrote: > > From: Hermann Peifer > > Date: Wed, 12 Apr 2017 17:19:42 -0300 > > > > The current code in gawk/master fails to build on my MacBook, see > > attached error report. > > > > Hermann > > > > wcslen > > Does that mean clang doesn't know what is 'size_t'? Because reslen is > declared on line 3792, like this: > > size_t reslen; I had to move the decl outside an ifdef; I haven't heard back yet from Hermann but I believe that was the problem. Thanks, Arnold From MAILER-DAEMON Thu Apr 13 04:38:27 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cyaGp-00025G-7v for mharc-bug-gawk@gnu.org; Thu, 13 Apr 2017 04:38:27 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53357) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyaGl-000256-NA for bug-gawk@gnu.org; Thu, 13 Apr 2017 04:38:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cyaGh-0001gV-Qq for bug-gawk@gnu.org; Thu, 13 Apr 2017 04:38:23 -0400 Received: from freefriends.org ([96.88.95.60]:56986) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyaGh-0001g7-JI for bug-gawk@gnu.org; Thu, 13 Apr 2017 04:38:19 -0400 X-Envelope-From: arnold@skeeve.com Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.14.9/8.14.9) with ESMTP id v3D8SflV004009; Thu, 13 Apr 2017 02:28:41 -0600 Received: (from arnold@localhost) by freefriends.org (8.14.9/8.14.9/submit) id v3D8Sf1l004008; Thu, 13 Apr 2017 08:28:41 GMT From: arnold@skeeve.com Message-Id: <201704130828.v3D8Sf1l004008@freefriends.org> X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to arnold@skeeve.com using -f Date: Thu, 13 Apr 2017 02:28:41 -0600 To: peifer@gmx.eu, bug-gawk@gnu.org, arnold@skeeve.com References: <44ad2de0-b9ec-1ca4-e8b3-bf2a16e2b747@gmx.eu> <201704122044.v3CKi1ZW029434@freefriends.org> <245793ec-e00e-bad1-1cf0-8eb108f94600@gmx.eu> In-Reply-To: <245793ec-e00e-bad1-1cf0-8eb108f94600@gmx.eu> User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 96.88.95.60 Subject: Re: [bug-gawk] gawk/master fails to build X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Apr 2017 08:38:24 -0000 Hermann Peifer wrote: > On 12/04/2017 17:44, arnold@skeeve.com wrote: > > Hi. > > > > Thanks for the report. I believe I've fixed the problem. Please > > do a 'make distclean', 'git pull' and then a clean build. > > Thanks for the fix. gawk/master builds fine again. Hermann Great! Thanks. From MAILER-DAEMON Thu Apr 13 16:42:05 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cylZ7-0007Ip-PZ for mharc-bug-gawk@gnu.org; Thu, 13 Apr 2017 16:42:05 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33936) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cylKR-0001bh-G7 for bug-gawk@gnu.org; Thu, 13 Apr 2017 16:26:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cylKM-0004d3-O1 for bug-gawk@gnu.org; Thu, 13 Apr 2017 16:26:55 -0400 Received: from shell3.ripco.com ([66.251.253.170]:32927) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cylKM-0004bq-If for bug-gawk@gnu.org; Thu, 13 Apr 2017 16:26:50 -0400 Received: from shell3.ripco.com (localhost [127.0.0.1]) by shell3.ripco.com (8.14.2/8.14.2) with ESMTP id v3DJw3jO017810 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 13 Apr 2017 14:58:03 -0500 (CDT) Received: from localhost (ormos@localhost) by shell3.ripco.com (8.14.2/8.14.2/Submit) with ESMTP id v3DJw2cM017806; Thu, 13 Apr 2017 14:58:03 -0500 (CDT) X-Authentication-Warning: shell3.ripco.com: ormos owned process doing -bs Date: Thu, 13 Apr 2017 14:58:02 -0500 (CDT) From: "Neil R. Ormos" X-X-Sender: ormos@shell3.ripco.com To: Bug Gawk Mailing List Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-detected-operating-system: by eggs.gnu.org: Windows NT kernel [generic] [fuzzy] X-Received-From: 66.251.253.170 X-Mailman-Approved-At: Thu, 13 Apr 2017 16:42:05 -0400 Subject: [bug-gawk] Possible gawk Bug--Handling of --source Option X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Apr 2017 20:26:56 -0000 I have a question about a behavior of gawk 4.1.1 which differs from that in 3.1.7. I'm not sure if it's a bug. The possible bug relates how gawk handles program text provided on the command line in an argument to a --source= option. Older gawk (e.g. 3.1.7) appears to allow the statements of a single action to be distributed among several --source= arguments that appear on the command line invoking gawk. The gawk in Debian Stable (e.g. 4.1.1) appears to require that any action opened in a --source= argument be closed in the same argument, so that an action cannot span multple --source= arguments. As far as I can tell, the the GNU Awk User's Guide does not directly specify either the new or the old behavior. However, the manual's section directed to the igawk shell-wrapper script [*], that provides a mechanism for including files but otherwise appears to be intended to simulate invoking gawk the ordinary way, characterizes the wrapper script's handling of a --source argument as, "The source text is appended to program". [*] http://www.gnu.org/software/gawk/manual/gawk.html#Igawk-Program ############################################################ ### OLD ### > lsb_release -d Description: Debian GNU/Linux 6.0.10 (squeeze) > gawk --version GNU Awk 3.1.7 [...] > gawk --source='BEGIN{a=5};' --source='BEGIN{print a}' 5 > gawk --source='BEGIN{a=5; ' --source='print a}' 5 ############################################################ ### NEW ### > lsb_release -d Description: Debian GNU/Linux 8.7 (jessie) > gawk --version GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.2-p3, GNU MP 6.0.0) [...] > gawk --source='BEGIN{a=5};' --source='BEGIN{print a}' 5 > gawk --source='BEGIN{a=5; ' --source='print a}' gawk: cmd. line:1: BEGIN{a=5; gawk: cmd. line:1: ^ unexpected newline or end of string ############################################################ This seems like a bug to me, but I don't know if the completeness of a --source argument is specified more definitively somewhere other than in the User's Guide. Thanks for your help. Best regards, --Neil Ormos From MAILER-DAEMON Fri Apr 14 07:43:18 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cyzdG-0003FJ-78 for mharc-bug-gawk@gnu.org; Fri, 14 Apr 2017 07:43:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60535) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyzdD-0003FC-Mr for bug-gawk@gnu.org; Fri, 14 Apr 2017 07:43:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cyzd9-0000bd-Al for bug-gawk@gnu.org; Fri, 14 Apr 2017 07:43:15 -0400 Received: from freefriends.org ([96.88.95.60]:33152) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyzd9-0000av-3h for bug-gawk@gnu.org; Fri, 14 Apr 2017 07:43:11 -0400 X-Envelope-From: arnold@skeeve.com Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.14.9/8.14.9) with ESMTP id v3EBh8mV021400; Fri, 14 Apr 2017 05:43:08 -0600 Received: (from arnold@localhost) by freefriends.org (8.14.9/8.14.9/submit) id v3EBh8Ph021394; Fri, 14 Apr 2017 11:43:08 GMT From: arnold@skeeve.com Message-Id: <201704141143.v3EBh8Ph021394@freefriends.org> X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to arnold@skeeve.com using -f Date: Fri, 14 Apr 2017 05:43:08 -0600 To: ormos-gnulists17@ormos.org, bug-gawk@gnu.org References: In-Reply-To: User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 96.88.95.60 Subject: Re: [bug-gawk] Possible gawk Bug--Handling of --source Option X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Apr 2017 11:43:17 -0000 Hi. Thanks for the note. Gawk internals changed along the way and the manual wasn't updated. Igawk dates from ~ 20 years ago, so it's not a good guide. I will see if the old behavior can be restored, but I happen to want the new behavior for some new features being planned. In short, I need to review the code and think about this a bit. Thanks! Arnold "Neil R. Ormos" wrote: > I have a question about a behavior of gawk 4.1.1 which differs from that in 3.1.7. I'm not sure if it's a bug. > > The possible bug relates how gawk handles program text provided on the command line in an argument to a --source= option. > > Older gawk (e.g. 3.1.7) appears to allow the statements of a single action to be distributed among several --source= arguments that appear on the command line invoking gawk. > > The gawk in Debian Stable (e.g. 4.1.1) appears to require that any action opened in a --source= argument be closed in the same argument, so that an action cannot span multple --source= arguments. > > As far as I can tell, the the GNU Awk User's Guide does not directly specify either the new or the old behavior. However, the manual's section directed to the igawk shell-wrapper script [*], that provides a mechanism for including files but otherwise appears to be intended to simulate invoking gawk the ordinary way, characterizes the wrapper script's handling of a --source argument as, "The source text is appended to program". > > [*] http://www.gnu.org/software/gawk/manual/gawk.html#Igawk-Program > > ############################################################ > ### OLD ### > > > lsb_release -d > Description: Debian GNU/Linux 6.0.10 (squeeze) > > > gawk --version > GNU Awk 3.1.7 > [...] > > > gawk --source='BEGIN{a=5};' --source='BEGIN{print a}' > 5 > > > gawk --source='BEGIN{a=5; ' --source='print a}' > 5 > > ############################################################ > ### NEW ### > > > lsb_release -d > Description: Debian GNU/Linux 8.7 (jessie) > > > gawk --version > GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.2-p3, GNU MP 6.0.0) > [...] > > > gawk --source='BEGIN{a=5};' --source='BEGIN{print a}' > 5 > > > gawk --source='BEGIN{a=5; ' --source='print a}' > gawk: cmd. line:1: BEGIN{a=5; > gawk: cmd. line:1: ^ unexpected newline or end of string > > ############################################################ > > This seems like a bug to me, but I don't know if the completeness of a --source argument is specified more definitively somewhere other than in the User's Guide. > > Thanks for your help. > > Best regards, > > --Neil Ormos From MAILER-DAEMON Fri Apr 28 07:10:11 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1d43mt-0003pJ-4X for mharc-bug-gawk@gnu.org; Fri, 28 Apr 2017 07:10:11 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53095) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d43mr-0003nl-KM for bug-gawk@gnu.org; Fri, 28 Apr 2017 07:10:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d43mo-0004fn-FH for bug-gawk@gnu.org; Fri, 28 Apr 2017 07:10:09 -0400 Received: from mout.gmx.net ([212.227.15.19]:57652) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d43mo-0004dc-4l for bug-gawk@gnu.org; Fri, 28 Apr 2017 07:10:06 -0400 Received: from [212.130.111.114] by 3capp-gmx-bs48.server.lan (via HTTP); Fri, 28 Apr 2017 13:10:02 +0200 MIME-Version: 1.0 Message-ID: From: "Hermann Peifer" To: bug-gawk@gnu.org Content-Type: text/plain; charset=UTF-8 Date: Fri, 28 Apr 2017 13:10:02 +0200 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K1:IbW6B81Z4tN7BlBOHzw3Sa6az7CbrZhkBI/BaCNZEsX BrwT65GzMyzqBrc4eyJThJQj9HSEkaUv/IJ+mMzWVkfZwyNa5P 3CMCA5u2+ZD0dj9nk04LXnHUpqidSdolQeEiQBHnwquT2TKmcl ww6g+PfKxmssSBgAUFmeJ5icMmdejjRc+QzYiNlkf/ZRfxiU7t QWD6X01Z6G3NRRdHinLxZG9Rw4seBOwk2ADZQsEuh/D2cqvKTS 0KPqgq6Km5LfR7YTMb6/iNbD4bWQk41mRO3OQBKTAuzvf2BsrC 1LPmlE= X-UI-Out-Filterresults: notjunk:1;V01:K0:1B0TSUdb58g=:bZTA12KETEmEO5kOI5WogH qiNMkAeIQ6m2ft+EdSng+xt5wND8b2jj3i6m9pw/HMZU0p6hg2N7bhOmkBvr525ujRJVJR66o TOtXcDWvRe55VGIVmDYw/DyWj55jvgx8ETgwJDRQk4EQlIVSTb9W1f3OoKD3ASRamuW+kuREU uXG/OxW9zzxww34zID7jv+5EMqJESqAfvNYkMUoFVG5mTVLQxw63RfVC02cV31wFHrkxqqyUU KJd5mq4NrZAp8JRaaEQCX7gv9N1rfGz4EuILBMc6PBvKGnAqwNTqXlV5VYM7dCseOXZJTZVHz tXb6y08pbQZOMVJLXJW+pyiEnTMVVT5Xlq4TDBS6wJwvfYceusp2H3NoO7LYoSFejeJ+bdQZK KG+u68L9RGAiOdedxtjIkiJukc9RJftb7NYczCT+w5+cAOhZfcVwE1RxV3PdFlr6WMnK+7m4m Y1TuNGaIng== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.15.19 Subject: [bug-gawk] gawk/master exists after @include directive X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Apr 2017 11:10:10 -0000 See the below example. The bug appears in committ 09149c0.. Fix --source to be like 3.1.x and improve the doc. The sample code works fine with the previous committ (84f33c8... Really fix the 64 bit alignment issue.) Hermann $ cat test.awk @include "walkarray" BEGIN { print "Hello World!"} $ ./gawk.84f33c8 -f test.awk Hello World! # No output here :-( $ ./gawk.09149c0 -f test.awk # Pretty-print output for both cases $ ./gawk.84f33c8 -o- -f test.awk BEGIN { print "Hello World!" } function walk_array(arr, name, i) { for (i in arr) { if (isarray(arr[i])) { walk_array(arr[i], name "[" i "]") } else { printf "%s[%s] = %s\n", name, i, arr[i] } } } $ ./gawk.09149c0 -o- -f test.awk function walk_array(arr, name, i) { for (i in arr) { if (isarray(arr[i])) { walk_array(arr[i], name "[" i "]") } else { printf "%s[%s] = %s\n", name, i, arr[i] } } } From MAILER-DAEMON Fri Apr 28 07:43:23 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1d44J1-0002PT-GK for mharc-bug-gawk@gnu.org; Fri, 28 Apr 2017 07:43:23 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59227) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d44Iy-0002Ov-Kg for bug-gawk@gnu.org; Fri, 28 Apr 2017 07:43:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d44Iv-0001vW-JI for bug-gawk@gnu.org; Fri, 28 Apr 2017 07:43:20 -0400 Received: from freefriends.org ([96.88.95.60]:59242) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d44Iv-0001uV-Bo for bug-gawk@gnu.org; Fri, 28 Apr 2017 07:43:17 -0400 X-Envelope-From: arnold@skeeve.com Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.14.9/8.14.9) with ESMTP id v3SBhBBu003575; Fri, 28 Apr 2017 05:43:12 -0600 Received: (from arnold@localhost) by freefriends.org (8.14.9/8.14.9/submit) id v3SBhBDV003574; Fri, 28 Apr 2017 11:43:11 GMT From: arnold@skeeve.com Message-Id: <201704281143.v3SBhBDV003574@freefriends.org> X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to arnold@skeeve.com using -f Date: Fri, 28 Apr 2017 05:43:11 -0600 To: peifer@gmx.eu, bug-gawk@gnu.org References: In-Reply-To: User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 96.88.95.60 Subject: Re: [bug-gawk] gawk/master exists after @include directive X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Apr 2017 11:43:21 -0000 Well dang! Thanks for the report, I'll look into it. Arnold "Hermann Peifer" wrote: > See the below example. The bug appears in committ 09149c0.. Fix --source > to be like 3.1.x and improve the doc. The sample code works fine with > the previous committ (84f33c8... Really fix the 64 bit alignment issue.) > > Hermann > > > $ cat test.awk > @include "walkarray" > BEGIN { print "Hello World!"} > > $ ./gawk.84f33c8 -f test.awk > Hello World! > > # No output here :-( > $ ./gawk.09149c0 -f test.awk > > > # Pretty-print output for both cases > > $ ./gawk.84f33c8 -o- -f test.awk > BEGIN { > print "Hello World!" > } > > > function walk_array(arr, name, i) > { > for (i in arr) { > if (isarray(arr[i])) { > walk_array(arr[i], name "[" i "]") > } else { > printf "%s[%s] = %s\n", name, i, arr[i] > } > } > } > > $ ./gawk.09149c0 -o- -f test.awk > > function walk_array(arr, name, i) > { > for (i in arr) { > if (isarray(arr[i])) { > walk_array(arr[i], name "[" i "]") > } else { > printf "%s[%s] = %s\n", name, i, arr[i] > } > } > } From MAILER-DAEMON Fri Apr 28 08:56:02 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1d45RK-0005Ed-5V for mharc-bug-gawk@gnu.org; Fri, 28 Apr 2017 08:56:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47670) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d45RI-0005EW-OD for bug-gawk@gnu.org; Fri, 28 Apr 2017 08:56:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d45RF-0000mw-LV for bug-gawk@gnu.org; Fri, 28 Apr 2017 08:56:00 -0400 Received: from gw3a.telemetry-investments.com ([38.76.0.51]:35786 helo=sv3.telemetry-investments.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d45RF-0000m0-Cc for bug-gawk@gnu.org; Fri, 28 Apr 2017 08:55:57 -0400 Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129]) by sv3.telemetry-investments.com (Postfix) with ESMTP id 377EAE6; Fri, 28 Apr 2017 08:55:55 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telemetry-investments.com; s=tele1409; t=1493384155; bh=GSjqY/hq6qroJeAYNBPTns0v3KOVUTKd4ZfqeVIMMJ4=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=xrjZAJzeBtQ5tV0m1lweCwOo7MlaBwUpbTstm0bwtJDVRB9rtNZB7btLaexeJmF4P eLcORoEDuuziyvywASbFQaU3RMgbcxsxAFF5AWc/kZUkFm083fBy7s5TXuvx5y8Yr1 x4P5vrhYuN2G1cS/fAN/kgNwh1YMLg4TryszbYFE= Received: by ti129.telemetry-investments.com (Postfix, from userid 300) id 0540434A; Fri, 28 Apr 2017 08:55:54 -0400 (EDT) Date: Fri, 28 Apr 2017 08:55:54 -0400 From: "Andrew J. Schorr" To: Hermann Peifer Cc: bug-gawk@gnu.org Message-ID: <20170428125554.GA17254@ti129.telemetry-investments.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 38.76.0.51 Subject: Re: [bug-gawk] gawk/master exits(?) after @include directive X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Apr 2017 12:56:01 -0000 Do you mean "exits" rather than "exists"? :-) I don't see this problem in current master: bash-4.2$ ./gawk -f test.awk Hello World! But the pretty-print output is strange, in that the @include line is commented out: bash-4.2$ ./gawk -o- -f test.awk #@include "walkarray" BEGIN { print "Hello World!" } Regards, Andy On Fri, Apr 28, 2017 at 01:10:02PM +0200, Hermann Peifer wrote: > See the below example. The bug appears in committ 09149c0.. Fix --source to be like 3.1.x and improve the doc. The sample code works fine with the previous committ (84f33c8... Really fix the 64 bit alignment issue.) > > Hermann > > > $ cat test.awk > @include "walkarray" > BEGIN { print "Hello World!"} > > $ ./gawk.84f33c8 -f test.awk > Hello World! > > # No output here :-( > $ ./gawk.09149c0 -f test.awk > > > # Pretty-print output for both cases > > $ ./gawk.84f33c8 -o- -f test.awk > BEGIN { > print "Hello World!" > } > > > function walk_array(arr, name, i) > { > for (i in arr) { > if (isarray(arr[i])) { > walk_array(arr[i], name "[" i "]") > } else { > printf "%s[%s] = %s\n", name, i, arr[i] > } > } > } > > $ ./gawk.09149c0 -o- -f test.awk > > function walk_array(arr, name, i) > { > for (i in arr) { > if (isarray(arr[i])) { > walk_array(arr[i], name "[" i "]") > } else { > printf "%s[%s] = %s\n", name, i, arr[i] > } > } > } -- Andrew Schorr e-mail: aschorr@telemetry-investments.com Telemetry Investments, L.L.C. phone: 917-305-1748 545 Fifth Ave, Suite 1108 fax: 212-425-5550 New York, NY 10017-3630 From MAILER-DAEMON Fri Apr 28 11:55:56 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1d48FQ-0000zx-8l for mharc-bug-gawk@gnu.org; Fri, 28 Apr 2017 11:55:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40531) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d48FN-0000xx-Ga for bug-gawk@gnu.org; Fri, 28 Apr 2017 11:55:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d48FK-00041k-FO for bug-gawk@gnu.org; Fri, 28 Apr 2017 11:55:53 -0400 Received: from mout.gmx.net ([212.227.17.20]:64266) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d48FK-00040h-4f for bug-gawk@gnu.org; Fri, 28 Apr 2017 11:55:50 -0400 Received: from [192.168.0.4] ([83.89.9.172]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0MVrQS-1db3Hr06Ya-00X8Eq; Fri, 28 Apr 2017 17:55:43 +0200 To: "Andrew J. Schorr" References: <20170428125554.GA17254@ti129.telemetry-investments.com> Cc: bug-gawk@gnu.org From: Hermann Peifer Message-ID: <4a1b2f54-cce5-ea3f-ebfc-8ea89c2cbfab@gmx.eu> Date: Fri, 28 Apr 2017 17:55:41 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170428125554.GA17254@ti129.telemetry-investments.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K0:1Td42fXD7yEkod/Q1+QlusDfBG9CVvbSZ58gSWYxXTb7hpErBwK ydJk7sqfTbwjMdjw8YwvnEWCOwfasVQsnBHu3fQZgFmXqzuUufx3lt0B99NTkW3L4NpdsUd 89U2fGeT3uJy73CV3XovzPzVHOM3ZGBVKcLi6zCw1PTh4fLrGRpUbMr1HLneYAHY5qYtzG5 iIWbYwfxgtcVeacSmEsTg== X-UI-Out-Filterresults: notjunk:1;V01:K0:UM+xhh/xEQc=:efsz41HpQxUEgBx6YeLrSH gLMLjLFWsJHtX3HOfpg4RoSqOAZMSj6cL+TCvac24zi6/XqYMm8PxGIeYBubIkyCX3+8mdpnr FO38VzrteMXYX2LosQYF31ijiNK7q/oKx7Bjrjk10FivgcfpccaH1AyDsH49da6g4Vq6plEQQ SKQfsVJRhDlzRfVLvs6enORjwoVy3B2Rb/mRcLPBZ0gk0KyXAqm7MXzCjIw1l9i1N7xDOrRdC 8SEG8KjWsf7mKBPaDcfpHVcDNpUEpCVDFxw8NWjbINyJhQXiaaA/dIn/hxXsjEAaqZZHInB+K gYnSnEFmsrCiFmjWPUok+MY2mMEctJbPBPTjuYvHhVxSm8DHK2CcSP3vmDHp/LRL+zMXHNiQJ iz3RJ99tt+c6ggdqxPLSAdwoXUKdB6UcyP0J0iOjzhlYbvpVZtTP962FPHYHdaBCxKoC7OE6n KzUbslR3cgcqxcLPy6hlvLv6W+JtVLIKrJOnum9/8h3scyUv9L7mJNPHff9b4h0FAuWQGWsMs zPTr/BecdW72hM3PGk6+JeGQesc2GVAT0ELQgQ6Q2zp9NvZdInTIxKi+2GGCloi8qnhBHXMIZ /iRs18y+SfXa1RONabSn/uTm86/PcqSxeggAbNjFCT0p7izEING8wN42lYaAQX9FbPhu2ct/J T/ekzvf3NBcyRGZU31inemXMAhJ0insAx5fnaD0NXapE24xIkEMQoU72qX3vHG4WX0EK9zolj k4W1RnMiGXf/2rZMPwO3ifuBeRn9uEEv8/ZOT57KJ3Pq5UYRY7rOAGF5nbqTmsgfxYR+hpEAY Csr64eM X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.17.20 Subject: Re: [bug-gawk] gawk/master exits(?) after @include directive X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Apr 2017 15:55:54 -0000 On 28.04.17 14:55, Andrew J. Schorr wrote: > Do you mean "exits" rather than "exists"? :-) Indeed: it should have been "exits", and commit, rather than committ. > I don't see this problem in current master: > > bash-4.2$ ./gawk -f test.awk > Hello World! > > But the pretty-print output is strange, in that the @include line is > commented out: > > bash-4.2$ ./gawk -o- -f test.awk > #@include "walkarray" > BEGIN { > print "Hello World!" > } Hmm. From my side, I can only confirm the issue as reported earlier, both on Linux and macOS. I also never saw an include directive being commented out through pretty-printing. Hermann From MAILER-DAEMON Fri Apr 28 13:29:56 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1d49iO-0001TH-Rg for mharc-bug-gawk@gnu.org; Fri, 28 Apr 2017 13:29:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42684) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d49iM-0001TB-PV for bug-gawk@gnu.org; Fri, 28 Apr 2017 13:29:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d49iJ-00059K-Lz for bug-gawk@gnu.org; Fri, 28 Apr 2017 13:29:54 -0400 Received: from gw3a.telemetry-investments.com ([38.76.0.51]:41618 helo=sv3.telemetry-investments.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d49iJ-00058l-HV for bug-gawk@gnu.org; Fri, 28 Apr 2017 13:29:51 -0400 Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129]) by sv3.telemetry-investments.com (Postfix) with ESMTP id 0225296; Fri, 28 Apr 2017 13:29:50 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telemetry-investments.com; s=tele1409; t=1493400591; bh=KxxREkA6czkkXG/AU/gQR/f8XRWyfNuISssjlYIJgRo=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=D44Tov5vNgAVOj04v1oHkN3W6aub3mjDGG5eE6eDht7Q+da4XcVA/DSO8Dk0XSIhq aOmRFQI2rA4MwYX3XRB1P+oEZ1rjI4Z5DETDkCk5eWuedLkr5wFk5t+D1PEkafzCb1 +h0AuUt8jx3gTu3Qs0SK3daO0oFdNv5yzi5OjDj8= Received: by ti129.telemetry-investments.com (Postfix, from userid 300) id DF28734A; Fri, 28 Apr 2017 13:29:50 -0400 (EDT) Date: Fri, 28 Apr 2017 13:29:50 -0400 From: "Andrew J. Schorr" To: Hermann Peifer Cc: bug-gawk@gnu.org Message-ID: <20170428172950.GC5813@ti129.telemetry-investments.com> References: <20170428125554.GA17254@ti129.telemetry-investments.com> <4a1b2f54-cce5-ea3f-ebfc-8ea89c2cbfab@gmx.eu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4a1b2f54-cce5-ea3f-ebfc-8ea89c2cbfab@gmx.eu> User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 38.76.0.51 Subject: Re: [bug-gawk] gawk/master exits(?) after @include directive X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Apr 2017 17:29:55 -0000 On Fri, Apr 28, 2017 at 05:55:41PM +0200, Hermann Peifer wrote: > > I don't see this problem in current master: > > > > bash-4.2$ ./gawk -f test.awk > > Hello World! > > > > But the pretty-print output is strange, in that the @include line is > > commented out: > > > > bash-4.2$ ./gawk -o- -f test.awk > > #@include "walkarray" > > BEGIN { > > print "Hello World!" > > } > Hmm. From my side, I can only confirm the issue as reported earlier, > both on Linux and macOS. I also never saw an include directive being > commented out through pretty-printing. It is extremely surprising that you get different results than I do. Are you using the latest version of the master branch? This is the last commit: commit a3be85eec86d00c12e7f4b41a9e27794fbb479a6 Author: Andrew J. Schorr Date: Wed Apr 26 11:32:18 2017 -0400 Fix bug where Node_regex was setting valref, and restore valref to Node_val part of NODE union where it belongs. I am testing on Linux. I do not see any valgrind errors. I cannot understand why your results could be different. Regards, Andy From MAILER-DAEMON Fri Apr 28 15:03:44 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1d4BB9-0005QS-VW for mharc-bug-gawk@gnu.org; Fri, 28 Apr 2017 15:03:44 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36986) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4BB7-0005Px-8k for bug-gawk@gnu.org; Fri, 28 Apr 2017 15:03:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d4BB4-0000fA-1J for bug-gawk@gnu.org; Fri, 28 Apr 2017 15:03:41 -0400 Received: from mout.gmx.net ([212.227.15.18]:61518) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d4BB3-0000f4-My for bug-gawk@gnu.org; Fri, 28 Apr 2017 15:03:37 -0400 Received: from [192.168.0.4] ([83.89.9.172]) by mail.gmx.com (mrgmx003 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MQQzk-1dXzg01bvI-00TnL4; Fri, 28 Apr 2017 21:03:32 +0200 To: "Andrew J. Schorr" References: <20170428125554.GA17254@ti129.telemetry-investments.com> <4a1b2f54-cce5-ea3f-ebfc-8ea89c2cbfab@gmx.eu> <20170428172950.GC5813@ti129.telemetry-investments.com> Cc: bug-gawk@gnu.org From: Hermann Peifer Message-ID: <93916a8e-b288-9145-295f-c3dc9a87f7d3@gmx.eu> Date: Fri, 28 Apr 2017 21:03:28 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170428172950.GC5813@ti129.telemetry-investments.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K0:TzkkQJ2zDCVpc6aCVgNtBRhNSK7HeiBr8m1ZgssW+E9hky83ezj VwsBWQkUXeHynYyKMK2U63uEZKWnvFC6hH72+BFqlWg9JgYsJvMDoNFpQxVFnXCzxQt0H5R 5ABGCAixkyQkNiRdzjp++F1yRR+0TanJ+HbP3O+tB99J7UqpwVdz2u980RilPyLaYFhQ0qS N74GIe/0EM2FUewhukDaw== X-UI-Out-Filterresults: notjunk:1;V01:K0:OXYFQ/VBIDA=:v0IiKAeeMonMfFWASNYBlF PVYLJCthyZl9Wdg9ITd9fvAsqjlSjN5bRS8juavO3bIhcpKInNMZL32MqjvzZB+WT/BQVd+a1 SLEagJELuIB9NBjGFo+Rx9D9w7N2REOs3OgJMumjgUk5yjpq27f/XaPAhpnW9xqfGW2/8FCp6 T5NXtLXSbqZY4cDP5r3SfvORV6ZM/bxhQ99iIiitOhqiFZqa+V2rYuXpynD67K3s8G+H+9ItM pNu4ih47waXULZjnkhYH8+hYtEUEzGBL2MneBwpbzsUgSZDefewy9DsPQIRvZccaaqOsG2Apa EF/bnwuWrR383KS1DUBKbNfWSEXh5WhMf1WCmPDkWVMbX98Ytv58ncb3iJC6Df089avDwKDzO W0pqgY+A/m37j++bGAjKVRgZCLDtNbs8c8GECwtu8XaWlkejabhrbfAmYy9lF0foMmgLhPWsy R7hse5AE/Z/pHyczHmLXpvudlXfA3sAhSZAv2rCAtch6qg0W78VNwKfaimvfbZHTi0uZ12YFk z3SgwaZR8aTMcUVG4vH3K2gKbBR72msiFkM0knSjVSZgJiBUuNTQa8xzlIMfFxMPVKdTd+H8h Ui2ohk+mm+MtIa8Upepi+dA2oUMzz2xR9IO26P6aQE2s9VTIMhuktRApY4bkHXtVosCqz/lkm G72dn6D6Kb2XphMy+ybJniXfIYmI4J0XgdRJHP3eTdpTw8VtJvwi7ToAdNFKkpyMwcRqr8zMM ANg5A68mHewOYMogi2AfLu4gsT1//y5UdxE3CKpaQWDa3j5MjhCDKtXRrOLVVfqaBV1RvwoVY Z1VlWuL X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.15.18 Subject: Re: [bug-gawk] gawk/master exits(?) after @include directive X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Apr 2017 19:03:42 -0000 On 28.04.17 19:29, Andrew J. Schorr wrote: > It is extremely surprising that you get different results than I do. > Are you using the latest version of the master branch? This is the > last commit: > > commit a3be85eec86d00c12e7f4b41a9e27794fbb479a6 > Author: Andrew J. Schorr > Date: Wed Apr 26 11:32:18 2017 -0400 > > Fix bug where Node_regex was setting valref, and restore valref to = Node_val part of NODE union where it belongs. > Yes. To be on the safe side: I made a fresh clone which did not make any difference: $ git clone git://git.savannah.gnu.org/gawk.git I can only repeat what I wrote earlier: the sample code works fine for gawk/master up to: commit "84f33c8b... Really fix the 64 bit alignment issue." The reported bug appears since the following commit: "09149c0... Fix --source to be like 3.1.x and improve the doc." More observations: a) things work fine when running similar code on the command line $ ./gawk -i walkarray 'BEGIN { print "Hello World!"}' Hello World! b) according to pretty-print: gawk/master exits after the first include directive, as the ctime.awk code does not appear in the output, see below= =3D=3D> test2.awk <=3D=3D @include "walkarray" @include "ctime" BEGIN { print "Hello World!"} $ ./gawk -o- -f test2.awk function walk_array(arr, name, i) { for (i in arr) { if (isarray(arr[i])) { walk_array(arr[i], name "[" i "]") } else { printf "%s[%s] =3D %s\n", name, i, arr[i] } } } From MAILER-DAEMON Fri Apr 28 15:14:18 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1d4BLO-0000Uo-Jn for mharc-bug-gawk@gnu.org; Fri, 28 Apr 2017 15:14:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39217) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4BLM-0000TZ-Fu for bug-gawk@gnu.org; Fri, 28 Apr 2017 15:14:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d4BLJ-0004ta-R0 for bug-gawk@gnu.org; Fri, 28 Apr 2017 15:14:16 -0400 Received: from gw3a.telemetry-investments.com ([38.76.0.51]:43640 helo=sv3.telemetry-investments.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4BLJ-0004tN-N9 for bug-gawk@gnu.org; Fri, 28 Apr 2017 15:14:13 -0400 Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129]) by sv3.telemetry-investments.com (Postfix) with ESMTP id 3E3B01CA; Fri, 28 Apr 2017 15:14:13 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telemetry-investments.com; s=tele1409; t=1493406853; bh=VdO/cXEhgWlgKXdHbbCpBTqAVU1cYUFbvw+pSn7rbyg=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=DRVXCALTtIwzkYRrAAYxT8Sm3axb9FQgEQYLHvrSNwu42oHeMdoy8KKvJUgXhVV75 GWUhqOEV8MFywfY09vwiNd8YBXPun7FPiVY8lndM94kl/eHi6a8RLM8nLf8zJGynTW 3aeO2qkYFCNORhWkGsjLfhNkly7Ues4IZTyihd7k= Received: by ti129.telemetry-investments.com (Postfix, from userid 300) id 319F134A; Fri, 28 Apr 2017 15:14:13 -0400 (EDT) Date: Fri, 28 Apr 2017 15:14:13 -0400 From: "Andrew J. Schorr" To: Hermann Peifer Cc: bug-gawk@gnu.org Message-ID: <20170428191413.GA23700@ti129.telemetry-investments.com> References: <20170428125554.GA17254@ti129.telemetry-investments.com> <4a1b2f54-cce5-ea3f-ebfc-8ea89c2cbfab@gmx.eu> <20170428172950.GC5813@ti129.telemetry-investments.com> <93916a8e-b288-9145-295f-c3dc9a87f7d3@gmx.eu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <93916a8e-b288-9145-295f-c3dc9a87f7d3@gmx.eu> User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 38.76.0.51 Subject: Re: [bug-gawk] gawk/master exits(?) after @include directive X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Apr 2017 19:14:17 -0000 On Fri, Apr 28, 2017 at 09:03:28PM +0200, Hermann Peifer wrote: > Yes. To be on the safe side: I made a fresh clone which did not make any > difference: > $ git clone git://git.savannah.gnu.org/gawk.git Oops, my apologies, I had a typo in my test file -- I mistakenly put a comment sign in front of the @include statement. I now see the same problem. Sorry for wasting your time. Regards, Andy From MAILER-DAEMON Fri Apr 28 15:50:45 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1d4Buf-0002Ld-DJ for mharc-bug-gawk@gnu.org; Fri, 28 Apr 2017 15:50:45 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47067) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4Bud-0002LX-Gt for bug-gawk@gnu.org; Fri, 28 Apr 2017 15:50:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d4Bua-0000Z2-Ez for bug-gawk@gnu.org; Fri, 28 Apr 2017 15:50:43 -0400 Received: from gw3a.telemetry-investments.com ([38.76.0.51]:44198 helo=sv3.telemetry-investments.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4Bua-0000Yv-BL for bug-gawk@gnu.org; Fri, 28 Apr 2017 15:50:40 -0400 Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129]) by sv3.telemetry-investments.com (Postfix) with ESMTP id 2B5E61CA; Fri, 28 Apr 2017 15:50:38 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telemetry-investments.com; s=tele1409; t=1493409039; bh=CfcqkFCZmbYnL2g5bO3IjEw5W2hQOzH9M84IQAXDCio=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=fgRgZplJsxCPesqvkGApfjiVRn1Fu9q4SjdWUtfkw+NomEFZpjK3MpMDrKuOUKbwm VaZa2jtNUT0f7CCZ0T0EDdxzmaJ0Vog/atS4GCLrsJrVCoUp3FbHin7manwym7YL2S KhgJNhtzD86iV8ihl9zk1ubt5Jv1mX22FBURhu/k= Received: by ti129.telemetry-investments.com (Postfix, from userid 300) id 21BA734A; Fri, 28 Apr 2017 15:50:38 -0400 (EDT) Date: Fri, 28 Apr 2017 15:50:38 -0400 From: "Andrew J. Schorr" To: Hermann Peifer Cc: bug-gawk@gnu.org Message-ID: <20170428195038.GA26513@ti129.telemetry-investments.com> References: <20170428125554.GA17254@ti129.telemetry-investments.com> <4a1b2f54-cce5-ea3f-ebfc-8ea89c2cbfab@gmx.eu> <20170428172950.GC5813@ti129.telemetry-investments.com> <93916a8e-b288-9145-295f-c3dc9a87f7d3@gmx.eu> <20170428191413.GA23700@ti129.telemetry-investments.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="9jxsPFA5p3P2qPhR" Content-Disposition: inline In-Reply-To: <20170428191413.GA23700@ti129.telemetry-investments.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 38.76.0.51 Subject: Re: [bug-gawk] gawk/master exits(?) after @include directive X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Apr 2017 19:50:44 -0000 --9jxsPFA5p3P2qPhR Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, Apr 28, 2017 at 03:14:13PM -0400, Andrew J. Schorr wrote: > On Fri, Apr 28, 2017 at 09:03:28PM +0200, Hermann Peifer wrote: > > Yes. To be on the safe side: I made a fresh clone which did not make any > > difference: > > $ git clone git://git.savannah.gnu.org/gawk.git > > Oops, my apologies, I had a typo in my test file -- I mistakenly put > a comment sign in front of the @include statement. I now see the same > problem. Sorry for wasting your time. Obviously, the attached patch should fix this, but it's not a good solution. Regards, Andy --9jxsPFA5p3P2qPhR Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="source.patch" diff --git a/awkgram.y b/awkgram.y index 2c1555b..30bc52c 100644 --- a/awkgram.y +++ b/awkgram.y @@ -3097,6 +3097,7 @@ check_bad_char(int c) static int nextc(bool check_for_bad) { +#define NO_CONTINUE_SOURCE_STRINGS if (gawk_mb_cur_max > 1) { again: #ifdef NO_CONTINUE_SOURCE_STRINGS --9jxsPFA5p3P2qPhR-- From MAILER-DAEMON Sat Apr 29 07:27:07 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1d4QWp-0001rz-Cm for mharc-bug-gawk@gnu.org; Sat, 29 Apr 2017 07:27:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56164) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4QWn-0001rU-0o for bug-gawk@gnu.org; Sat, 29 Apr 2017 07:27:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d4QWi-0008Ca-10 for bug-gawk@gnu.org; Sat, 29 Apr 2017 07:27:05 -0400 Received: from mail-wr0-x22e.google.com ([2a00:1450:400c:c0c::22e]:35610) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d4QWh-0008CP-RC for bug-gawk@gnu.org; Sat, 29 Apr 2017 07:26:59 -0400 Received: by mail-wr0-x22e.google.com with SMTP id z52so44896384wrc.2 for ; Sat, 29 Apr 2017 04:26:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=sinnfT5tXneJWfZjXbt+/nYTwbUtbEnDYcRXxXybc3w=; b=LSnDtXL6sIButsaS9OyYAQgEe6cEyWkfxAlZtwJdyOt/YHMlqU8wEZJ06pan0pxi8Y s8iEp6ky0iHB4C60baeHjhqtsScWHF0AfeBsStvzFJCmGHcwnPwKhBc6jaZkL2dwSXkM TMmTmlfseiOHNM3LNCtf8ywsY+HBlobVyh6zFFSj4PrsuW0upsaVxEdCORok8JOmlsmG 0cK6jPd1V9NV12S4CENsUA+YTFn9+MxyygFeAfwlC9cWM2KWBbkMmNlTxV6ZRHE0DoNC HjNM0nuGRlvxpajMhKIef/W9V+vgNF2dQKcnbxNB2RCuscqjRRmuPG2u45ftVlnXKAiA z68Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=sinnfT5tXneJWfZjXbt+/nYTwbUtbEnDYcRXxXybc3w=; b=EvORGWzcjDafv4oUhGWDMjTyDRlEIdzHTLcIoPnE4UcbY+hRRKldTcvfSCTI2SYSoh TSHHkk4Ln5MZ5p8Kl+lxgviF9H/1xQDn2TaxLxnBaZKkV6cma698Dp7Hd3mcxNNs8WF6 NilE18ANI7owZiEm/rhFMcJ0i6rowcy/q2dm6ZyQ44PQ4IQGsmkrP3oGx3m50MD2uRAT 78S/zYAo6zyoqtqOQPWwo8cJ+nx5U0l99c5esaWN6mzIojKa5eHhxbbzaJ5Ew+ppUgKN r6b+BNeYiFZ5lDWswLXWDl8+6wLtM1kJKYwQ9IQL0g9O46+I3aMWp6RszU08vDlKqqoj dkTg== X-Gm-Message-State: AN3rC/5x2XYj27t7B392ZKQrmJL/kuh+r3teFkPCaApMppS1FVRJhL7W bc9FRxu0WZ2MRYzP X-Received: by 10.223.142.35 with SMTP id n32mr12288242wrb.131.1493465218384; Sat, 29 Apr 2017 04:26:58 -0700 (PDT) Received: from [192.168.1.33] (140.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.140]) by smtp.gmail.com with ESMTPSA id x20sm1850554wme.0.2017.04.29.04.26.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 29 Apr 2017 04:26:57 -0700 (PDT) To: "Andrew J. Schorr" , Hermann Peifer References: <20170428125554.GA17254@ti129.telemetry-investments.com> <4a1b2f54-cce5-ea3f-ebfc-8ea89c2cbfab@gmx.eu> <20170428172950.GC5813@ti129.telemetry-investments.com> <93916a8e-b288-9145-295f-c3dc9a87f7d3@gmx.eu> <20170428191413.GA23700@ti129.telemetry-investments.com> <20170428195038.GA26513@ti129.telemetry-investments.com> Cc: bug-gawk@gnu.org From: Manuel Collado Message-ID: <59047886.30504@gmail.com> Date: Sat, 29 Apr 2017 13:27:02 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <20170428195038.GA26513@ti129.telemetry-investments.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22e Subject: Re: [bug-gawk] gawk/master exits(?) after @include directive X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Apr 2017 11:27:06 -0000 El 28/04/2017 a las 21:50, Andrew J. Schorr escribió: > > Obviously, the attached patch should fix this, but it's not a good solution. > +#define NO_CONTINUE_SOURCE_STRINGS Well, IMHO the possibility of spreading a syntactic unit over several separate source strings is error-prone, and should be avoided. I thing is a lot safer to force each separate source file or --source string to contain complete syntactic unis. Just my 2c. Regards. -- Manuel Collado - http://lml.ls.fi.upm.es/~mcollado From MAILER-DAEMON Sat Apr 29 09:15:46 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1d4SDy-0006aa-OM for mharc-bug-gawk@gnu.org; Sat, 29 Apr 2017 09:15:46 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42920) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4SDw-0006aN-3e for bug-gawk@gnu.org; Sat, 29 Apr 2017 09:15:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d4SDs-0002sc-Un for bug-gawk@gnu.org; Sat, 29 Apr 2017 09:15:44 -0400 Received: from gw3a.telemetry-investments.com ([38.76.0.51]:50890 helo=sv3.telemetry-investments.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4SDs-0002rq-Q8 for bug-gawk@gnu.org; Sat, 29 Apr 2017 09:15:40 -0400 Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129]) by sv3.telemetry-investments.com (Postfix) with ESMTP id 19425E6; Sat, 29 Apr 2017 09:15:38 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telemetry-investments.com; s=tele1409; t=1493471739; bh=krKgK+zHuNYIF721CP+j6disjUi3wOIUYyXLdevlU7s=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=V+TcPi/nEisbt6ml/0qDfwsIKJWjlIiQk9Za/9fmZ3bYKC0EG4xVj5z7juDBMxTT1 HAa4C3UuT4RLNDIGaM2VniSByvANp0mJKIici19TEEVFwsLlIsbtzQIXNvjOlm8mjA Wze5fGgIMrKKstrgRJzhKNOYFycCSYnHOgBoJ1EM= Received: by ti129.telemetry-investments.com (Postfix, from userid 300) id EDF5933C; Sat, 29 Apr 2017 09:15:37 -0400 (EDT) Date: Sat, 29 Apr 2017 09:15:37 -0400 From: "Andrew J. Schorr" To: Manuel Collado Cc: Hermann Peifer , bug-gawk@gnu.org Message-ID: <20170429131537.GA17108@ti129.telemetry-investments.com> References: <20170428125554.GA17254@ti129.telemetry-investments.com> <4a1b2f54-cce5-ea3f-ebfc-8ea89c2cbfab@gmx.eu> <20170428172950.GC5813@ti129.telemetry-investments.com> <93916a8e-b288-9145-295f-c3dc9a87f7d3@gmx.eu> <20170428191413.GA23700@ti129.telemetry-investments.com> <20170428195038.GA26513@ti129.telemetry-investments.com> <59047886.30504@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <59047886.30504@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 38.76.0.51 Subject: Re: [bug-gawk] gawk/master exits(?) after @include directive X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Apr 2017 13:15:45 -0000 On Sat, Apr 29, 2017 at 01:27:02PM +0200, Manuel Collado wrote: > El 28/04/2017 a las 21:50, Andrew J. Schorr escribi=F3: > > > >Obviously, the attached patch should fix this, but it's not a good sol= ution. >=20 > >+#define NO_CONTINUE_SOURCE_STRINGS >=20 > Well, IMHO the possibility of spreading a syntactic unit over > several separate source strings is error-prone, and should be > avoided. >=20 > I thing is a lot safer to force each separate source file or > --source string to contain complete syntactic unis. >=20 > Just my 2c. I agree with you, but Arnold seemed to want to reenable this "feature". Regards, Andy From MAILER-DAEMON Sat Apr 29 16:15:34 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1d4YmE-0005lS-PI for mharc-bug-gawk@gnu.org; Sat, 29 Apr 2017 16:15:34 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42865) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4YmC-0005lJ-JA for bug-gawk@gnu.org; Sat, 29 Apr 2017 16:15:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d4Ym7-0004J4-Qj for bug-gawk@gnu.org; Sat, 29 Apr 2017 16:15:32 -0400 Received: from freefriends.org ([96.88.95.60]:59754) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4Ym7-0004Ix-Jv for bug-gawk@gnu.org; Sat, 29 Apr 2017 16:15:27 -0400 X-Envelope-From: arnold@skeeve.com Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.14.9/8.14.9) with ESMTP id v3TKFLFG006770; Sat, 29 Apr 2017 14:15:21 -0600 Received: (from arnold@localhost) by freefriends.org (8.14.9/8.14.9/submit) id v3TKFL8T006768; Sat, 29 Apr 2017 20:15:21 GMT From: arnold@skeeve.com Message-Id: <201704292015.v3TKFL8T006768@freefriends.org> X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to arnold@skeeve.com using -f Date: Sat, 29 Apr 2017 14:15:21 -0600 To: peifer@gmx.eu, bug-gawk@gnu.org References: In-Reply-To: User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 96.88.95.60 Subject: Re: [bug-gawk] gawk/master exists after @include directive X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Apr 2017 20:15:33 -0000 Hi. On my Ubuntu 12.04 system with gawk master, there is no problem. I will check later on my Ubuntu 16.04. Thanks, Arnold "Hermann Peifer" wrote: > See the below example. The bug appears in committ 09149c0.. > Fix --source to be like 3.1.x and improve the doc. The sample code > works fine with the previous committ (84f33c8... Really fix the 64 bit > alignment issue.) > > Hermann > > > $ cat test.awk > @include "walkarray" > BEGIN { print "Hello World!"} > > $ ./gawk.84f33c8 -f test.awk > Hello World! > > # No output here :-( > $ ./gawk.09149c0 -f test.awk > > > # Pretty-print output for both cases > > $ ./gawk.84f33c8 -o- -f test.awk > BEGIN { > print "Hello World!" > } > > > function walk_array(arr, name, i) > { > for (i in arr) { > if (isarray(arr[i])) { > walk_array(arr[i], name "[" i "]") > } else { > printf "%s[%s] = %s\n", name, i, arr[i] > } > } > } > > $ ./gawk.09149c0 -o- -f test.awk > > function walk_array(arr, name, i) > { > for (i in arr) { > if (isarray(arr[i])) { > walk_array(arr[i], name "[" i "]") > } else { > printf "%s[%s] = %s\n", name, i, arr[i] > } > } > } From MAILER-DAEMON Sun Apr 30 04:12:04 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1d4jxc-0005j3-6V for mharc-bug-gawk@gnu.org; Sun, 30 Apr 2017 04:12:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58631) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4jxa-0005g9-5Q for bug-gawk@gnu.org; Sun, 30 Apr 2017 04:12:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d4jxW-0001b8-6M for bug-gawk@gnu.org; Sun, 30 Apr 2017 04:12:02 -0400 Received: from freefriends.org ([96.88.95.60]:40238) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4jxV-0001az-UA for bug-gawk@gnu.org; Sun, 30 Apr 2017 04:11:58 -0400 X-Envelope-From: arnold@skeeve.com Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.14.9/8.14.9) with ESMTP id v3U86okI011353; Sun, 30 Apr 2017 02:06:51 -0600 Received: (from arnold@localhost) by freefriends.org (8.14.9/8.14.9/submit) id v3U86oLu011351; Sun, 30 Apr 2017 08:06:50 GMT From: arnold@skeeve.com Message-Id: <201704300806.v3U86oLu011351@freefriends.org> X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to arnold@skeeve.com using -f Date: Sun, 30 Apr 2017 02:06:50 -0600 To: peifer@gmx.eu, bug-gawk@gnu.org, arnold@skeeve.com References: <201704292015.v3TKFL8T006768@freefriends.org> In-Reply-To: <201704292015.v3TKFL8T006768@freefriends.org> User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 96.88.95.60 Subject: Re: [bug-gawk] gawk/master exists after @include directive X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Apr 2017 08:12:03 -0000 And on Ubuntu 16.04, CentOS 6.9 and Cygwin, I do see the problem. Gag! I'll work on it when I get a chance. Andy, if you want to push your temporary fix so that master isn't broken, that's OK. Thanks, Arnold arnold@skeeve.com wrote: > Hi. > > On my Ubuntu 12.04 system with gawk master, there is no problem. > > I will check later on my Ubuntu 16.04. > > Thanks, > > Arnold > > "Hermann Peifer" wrote: > > > See the below example. The bug appears in committ 09149c0.. > > Fix --source to be like 3.1.x and improve the doc. The sample code > > works fine with the previous committ (84f33c8... Really fix the 64 bit > > alignment issue.) > > > > Hermann > > > > > > $ cat test.awk > > @include "walkarray" > > BEGIN { print "Hello World!"} > > > > $ ./gawk.84f33c8 -f test.awk > > Hello World! > > > > # No output here :-( > > $ ./gawk.09149c0 -f test.awk > > > > > > # Pretty-print output for both cases > > > > $ ./gawk.84f33c8 -o- -f test.awk > > BEGIN { > > print "Hello World!" > > } > > > > > > function walk_array(arr, name, i) > > { > > for (i in arr) { > > if (isarray(arr[i])) { > > walk_array(arr[i], name "[" i "]") > > } else { > > printf "%s[%s] = %s\n", name, i, arr[i] > > } > > } > > } > > > > $ ./gawk.09149c0 -o- -f test.awk > > > > function walk_array(arr, name, i) > > { > > for (i in arr) { > > if (isarray(arr[i])) { > > walk_array(arr[i], name "[" i "]") > > } else { > > printf "%s[%s] = %s\n", name, i, arr[i] > > } > > } > > } From MAILER-DAEMON Sun Apr 30 07:12:52 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1d4mma-0002oz-Hv for mharc-bug-gawk@gnu.org; Sun, 30 Apr 2017 07:12:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50381) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4mmY-0002os-Mq for bug-gawk@gnu.org; Sun, 30 Apr 2017 07:12:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d4mmT-00044a-Ux for bug-gawk@gnu.org; Sun, 30 Apr 2017 07:12:50 -0400 Received: from freefriends.org ([96.88.95.60]:42168) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4mmT-00044U-OC for bug-gawk@gnu.org; Sun, 30 Apr 2017 07:12:45 -0400 X-Envelope-From: arnold@skeeve.com Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.14.9/8.14.9) with ESMTP id v3UBCeTH028255; Sun, 30 Apr 2017 05:12:41 -0600 Received: (from arnold@localhost) by freefriends.org (8.14.9/8.14.9/submit) id v3UBCdS6028254; Sun, 30 Apr 2017 11:12:39 GMT From: arnold@skeeve.com Message-Id: <201704301112.v3UBCdS6028254@freefriends.org> X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to arnold@skeeve.com using -f Date: Sun, 30 Apr 2017 05:12:39 -0600 To: peifer@gmx.eu, bug-gawk@gnu.org References: In-Reply-To: User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 96.88.95.60 Subject: Re: [bug-gawk] gawk/master exists after @include directive X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Apr 2017 11:12:52 -0000 Hi. Thanks for the report. Please see the diff below. It fixes the issue for me. Thanks, Arnold "Hermann Peifer" wrote: > See the below example. The bug appears in committ 09149c0.. Fix --source > to be like 3.1.x and improve the doc. The sample code works fine with > the previous committ (84f33c8... Really fix the 64 bit alignment issue.) > > Hermann ------------------------------------------- diff --git a/awkgram.y b/awkgram.y index 2c1555b8..b72d1c82 100644 --- a/awkgram.y +++ b/awkgram.y @@ -3106,12 +3106,8 @@ again: if (lexeof) { if (sourcefile->next == srcfiles) return END_FILE; - else { + else next_sourcefile(); - if (get_src_buf()) - goto again; - return END_SRC; - } } #endif if (lexptr == NULL || lexptr >= lexend) { From MAILER-DAEMON Sun Apr 30 07:42:26 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1d4nFC-0005GZ-No for mharc-bug-gawk@gnu.org; Sun, 30 Apr 2017 07:42:26 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52947) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4nFA-0005GQ-Tc for bug-gawk@gnu.org; Sun, 30 Apr 2017 07:42:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d4nF7-0001uD-Rz for bug-gawk@gnu.org; Sun, 30 Apr 2017 07:42:24 -0400 Received: from mout.gmx.net ([212.227.17.22]:59051) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d4nF7-0001rE-Gj for bug-gawk@gnu.org; Sun, 30 Apr 2017 07:42:21 -0400 Received: from [192.168.0.4] ([83.89.9.172]) by mail.gmx.com (mrgmx103 [212.227.17.168]) with ESMTPSA (Nemesis) id 0MF5C3-1dKVlV3P3r-00GHmK; Sun, 30 Apr 2017 13:42:15 +0200 To: arnold@skeeve.com, bug-gawk@gnu.org References: <201704301112.v3UBCdS6028254@freefriends.org> From: Hermann Peifer Message-ID: Date: Sun, 30 Apr 2017 13:42:13 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <201704301112.v3UBCdS6028254@freefriends.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:J0W6h+Iowt1JF+uaycpTWmIYwlnrBY5zuDG6oEb5bxJyhCylGax 7eLr8K8/JeM3n6XP4LqMxYJXWs/58EBUOsjOPHkOKD9vOfGlzSXtymbVDGvOh+0qM9kmHme 0txO4Gwj5hFDqNOwfn73lSyTOs1fWE3BwXnzr2p+FUwkdlHl7+wt0xU9/Bgx+JJJbJImeAX AD4CDIelvxGRgwJeuDdzw== X-UI-Out-Filterresults: notjunk:1;V01:K0:GoWJjRaOb54=:SRx25MYapVDkbtlMLMv+dJ 7tl9e688hcxt+4Uk1lAu+kFAUbc573TLNfJD2pG5OqlMGlkBFGHArp7ppNy4fVePTkC2e2xc5 czS2IQG8qQoCX7DH5GHu+uIPxrIlma1VZaAwiVvgwpM8lmz0QGVSY0ffFB7rVYk2x5f4202ay BKa6Wb8AFIs2RsyLzGrWkQsjNGKTpgCwMXv0kWrW5SCOqVg+PJhXv8ZsdWgddZ4ZAgjiVK6nW q2WXlu1qVvfV6p8aPnEqpBZtfdHJauDKMXAcVGD1umBULtCIjI0SXjGnOi/0Wp5SvBIJUquvM VtzqNKQPiFDMbSLb8XTVJ3h1H1kLz7PzTwPV8tn9ChdM3FEjehgSr98MrvNCc92RYNwjeeCRP ru7Cf8ZYGs1Bwf6ERy/Tea7gX1UeuMxH7pUZOJkPvopDRD94D2X7JP1cvEM+tlEnEs+QTyjRB +aU491YlDR/L042k8QBjKDUgYrIx90fKMUG7k1VpdOHJJwi/yCDwcGYiIOjlzH/WQ1HS4sa48 ONXLez5rnwvq0UzWAHy2epkCntlDzlz8w2/vaL8lTLA0gjxlcVMSHb4PMKq2Fu9UjqDTETSll 5Se4d+tTllBP11nmjCX8gFHIvGudxioa2Cb2SuRDyvGxbROJIMnHt6OVavzudbgfCmO6jjJFG Ga1nx0hT92725WkEfZlqTjgp8sccrk2FV/OFx343Qp8u1jS0mZihU5iUeWUupPwWJ0IuZgVz8 5AmwrvLzv82T5uISlWZPyuhXh/mUUi2/gQYR3A9r6GVj02R8ezcwN9UwHlcRFnAdYnDjjsonI 9wtecXQ X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.17.22 Subject: Re: [bug-gawk] gawk/master exists after @include directive X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Apr 2017 11:42:25 -0000 On 30.04.17 13:12, arnold@skeeve.com wrote: > Please see the diff below. It fixes the issue for me. Same here. Thanks for the fix, Hermann From MAILER-DAEMON Sun Apr 30 12:22:57 2017 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1d4rcf-00063N-4R for mharc-bug-gawk@gnu.org; Sun, 30 Apr 2017 12:22:57 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57415) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4rcd-00063G-J0 for bug-gawk@gnu.org; Sun, 30 Apr 2017 12:22:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d4rcZ-00073M-HW for bug-gawk@gnu.org; Sun, 30 Apr 2017 12:22:55 -0400 Received: from gw3a.telemetry-investments.com ([38.76.0.51]:54942 helo=sv3.telemetry-investments.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4rcZ-00073C-EF for bug-gawk@gnu.org; Sun, 30 Apr 2017 12:22:51 -0400 Received: from ti129.telemetry-investments.com (ti129 [192.168.53.129]) by sv3.telemetry-investments.com (Postfix) with ESMTP id 12DD096; Sun, 30 Apr 2017 12:22:48 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telemetry-investments.com; s=tele1409; t=1493569370; bh=j4h93oEvGVw2jmLP5/dybFNY8LLBg2Yn3ApLCfftBME=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=QZevgxLESZpy09aq2Mrob7jS4f1kEJGIF6OBpNmOEqJdrTFNu5Ra5q4xygiQVix5z 32mgFHaWlJRh3O2c2Whus6Tvc99UTjvR03if2k2Tl4hhye+WHhw1HRXTyt9Tzl7J0n IhXRo2Y6wT4lxqLGWAd4P7O57KnQO6WyXpNMVqUU= Received: by ti129.telemetry-investments.com (Postfix, from userid 300) id D78F6348; Sun, 30 Apr 2017 12:22:48 -0400 (EDT) Date: Sun, 30 Apr 2017 12:22:48 -0400 From: "Andrew J. Schorr" To: arnold@skeeve.com Cc: peifer@gmx.eu, bug-gawk@gnu.org Message-ID: <20170430162248.GA3808@ti129.telemetry-investments.com> References: <201704292015.v3TKFL8T006768@freefriends.org> <201704300806.v3U86oLu011351@freefriends.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201704300806.v3U86oLu011351@freefriends.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 38.76.0.51 Subject: Re: [bug-gawk] gawk/master exists after @include directive X-BeenThere: bug-gawk@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Bug reports and all discussion about gawk." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Apr 2017 16:22:56 -0000 On Sun, Apr 30, 2017 at 02:06:50AM -0600, arnold@skeeve.com wrote: > Andy, if you want to push your temporary fix so that master isn't broken, > that's OK. I'm not going to bother, since you seem to have found the correct fix. Thanks, Andy