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=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 23287 invoked from network); 18 Nov 2021 19:13:20 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 18 Nov 2021 19:13:20 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 467D79CA5C; Fri, 19 Nov 2021 05:13:17 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id DD3699CA36; Fri, 19 Nov 2021 05:10:21 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=yaccman.com header.i=@yaccman.com header.b="hatp7Hl1"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 1394A9CA36; Fri, 19 Nov 2021 05:10:20 +1000 (AEST) X-Greylist: delayed 550 seconds by postgrey-1.36 at minnie.tuhs.org; Fri, 19 Nov 2021 05:10:19 AEST Received: from donkey.elm.relay.mailchannels.net (donkey.elm.relay.mailchannels.net [23.83.212.49]) by minnie.tuhs.org (Postfix) with ESMTPS id 612F39C2A1 for ; Fri, 19 Nov 2021 05:10:19 +1000 (AEST) X-Sender-Id: dreamhost|x-authsender|scj@yaccman.com Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id F166392204C; Thu, 18 Nov 2021 19:01:06 +0000 (UTC) Received: from pdx1-sub0-mail-a220.dreamhost.com (100-96-18-151.trex.outbound.svc.cluster.local [100.96.18.151]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 5BD5F921D67; Thu, 18 Nov 2021 19:01:06 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|scj@yaccman.com Received: from pdx1-sub0-mail-a220.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.96.18.151 (trex/6.4.3); Thu, 18 Nov 2021 19:01:06 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|scj@yaccman.com X-MailChannels-Auth-Id: dreamhost X-Stupid-Illustrious: 5b69cbfb09656134_1637262066685_456630172 X-MC-Loop-Signature: 1637262066685:409152128 X-MC-Ingress-Time: 1637262066685 Received: from webmail.dreamhost.com (ip-66-33-200-4.dreamhost.com [66.33.200.4]) (Authenticated sender: scj@yaccman.com) by pdx1-sub0-mail-a220.dreamhost.com (Postfix) with ESMTPA id 4Hw8Jy011sz22; Thu, 18 Nov 2021 11:01:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=yaccman.com; s=yaccman.com; t=1637262066; bh=ziOdmi8DewAhb4x2f4kSiIegM/Q=; h=Date:From:To:Cc:Subject:Content-Type:Content-Transfer-Encoding; b=hatp7Hl1ZXDbm7d0e7bfOz5WdLYr0IO+IQZlOgU8cNOgqJ01h6FaT0Yl9ilTZ445H kU2xDWPxACejc6b43ZJXll0jRUZXddLI2XHsxITHdlPuzokjNEakq1pvvdJu4oNTF5 IPg/Z5yJJNN6A6Gv+gc1j8WMmY2dck/ZHGf5k2VU= MIME-Version: 1.0 Date: Thu, 18 Nov 2021 11:01:05 -0800 From: scj@yaccman.com To: Douglas McIlroy In-Reply-To: References: <202110132053.19DKr7pF030263@ultimate.com> <7wy26vpqeq.fsf@junk.nocrew.org> User-Agent: DreamHost Webmail/1.4.1 Message-ID: <4e700acfcc03155ba918602cc2e7569b@yaccman.com> X-Sender: scj@yaccman.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [TUHS] Recreation of the PDP-7 UNIX TMG compiler compiler 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 main list Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" I was deeply motivated by TMG. The good news is that you could say what you wanted and it just did it. The bad news was the error handling. Because it was recursive if you made a syntax error the program backtracked and tried again. And again. And again. And eventually was back at the first character of the input with nowhere to go. So it issued one of its two messages -- "Syntax Error". No hint as to where it was. The other message was something like "Internal Error: call X1234". It very much encouraged a "write one line and compile" approach. It was my moaning about this in Aho's presence that got us started on LR parsing and led to Yacc. There was actually a similar problem with Yacc. I made an attempt to recover from syntax errors so I could give more than one useful message from Yacc. But there was a lot of cross-checking in the various modules, and the result was usually an internal error that I detected and reported. I naively assumed that if there was a syntax error the user would fix that and rerun. But instead, there was a steady stream of people coming in to tell me about these fatal internal errors in Yacc. When I realized that 95% of those internal errors were triggered by syntax errors, I set a flag when there was a syntax error and if the flag was on I changed the internal error message to "Cannot recover from earlier errors." About a week later, I gave a talk on Yacc and several people mentioned that Yacc used to "crash" all the time, but in the last week it had become much more stable... --- On 2021-10-14 09:53, Douglas McIlroy wrote: > Impressive indeed. And I imagine the feat will impress its brilliant > grandparent, Bob McClure (cc'd), too. > > Even though I wrote that TMG way back when, I'd never have dared to > try resuscitating it. Thank you, Phil. > > Doug > > On Thu, Oct 14, 2021 at 11:56 AM Lars Brinkhoff > wrote: >> >> Phil Budne wrote: >> > In what is perhaps best described as a crazed act, over the past two >> > months I've worked to recreate a working TMG environment on PDP-7 >> > UNIX, including a B compiler in TMGL, currently available at: >> >> Very impressive!