From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 1669 invoked from network); 1 Dec 2020 16:40:11 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 1 Dec 2020 16:40:11 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id EA26A9C209; Wed, 2 Dec 2020 02:40:09 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 45CA49C204; Wed, 2 Dec 2020 02:39:54 +1000 (AEST) Received: by minnie.tuhs.org (Postfix, from userid 112) id D8CD59C204; Wed, 2 Dec 2020 02:39:51 +1000 (AEST) Received: from freefriends.org (freefriends.org [96.88.95.60]) by minnie.tuhs.org (Postfix) with ESMTPS id 673109C203 for ; Wed, 2 Dec 2020 02:39:51 +1000 (AEST) X-Envelope-From: arnold@skeeve.com Received: from freefriends.org (freefriends.org [96.88.95.60]) by freefriends.org (8.14.7/8.14.7) with ESMTP id 0B1Gdj9f031723 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 1 Dec 2020 09:39:46 -0700 Received: (from arnold@localhost) by freefriends.org (8.14.7/8.14.7/Submit) id 0B1GdjcD031722; Tue, 1 Dec 2020 09:39:45 -0700 From: arnold@skeeve.com Message-Id: <202012011639.0B1GdjcD031722@freefriends.org> X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to arnold@skeeve.com using -f Date: Tue, 01 Dec 2020 09:39:45 -0700 To: imp@bsdimp.com, arnold@skeeve.com References: <15511090.6330.1606835354160.JavaMail.root@zimbraanteil> <202012011538.0B1FcLi5023858@freefriends.org> In-Reply-To: User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: Re: [TUHS] The UNIX Command Language (1976) X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: tuhs@minnie.tuhs.org Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" > On Tue, Dec 1, 2020 at 8:39 AM wrote: > > It was recognized that goto was not necessary if one had proper control > > structures in a language (if/else, while), and that code with no (or > > minimal) gotos was easier to read and understand. Warner Losh wrote: > This is true for simple flow control. However, when you had to break out of > multiple levels, or continue not the inner loop, but the middle loop, the > use of extra booleans sure made the code less understandable than a 'goto' > a label that stood in for that purpose... This was something that wasn't > well understood by language designers, and even today C and C++ neither > have good flow control beyond the basics. Even though both break and > continue could take an optional count without breaking old code.... Quite true. Modern Bourne shells let you supply a number to break and continue to specify how many loops to break. Ada, or maybe it was one of the Modula-X languages, let you put a label on a loop so that you could say `continue outer' or `break outer' and not need the booleans. This is something that newer languages (C#, Java, Go, ...) could have picked up but didn't, which I think is too bad. Arnold