From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: tuhs-bounces@minnie.tuhs.org X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.1 Received: from minnie.tuhs.org (minnie.tuhs.org [45.79.103.53]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 2be404e1 for ; Mon, 9 Jul 2018 17:13:41 +0000 (UTC) Received: by minnie.tuhs.org (Postfix, from userid 112) id EDFC394014; Tue, 10 Jul 2018 03:13:40 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 3051E93D07; Tue, 10 Jul 2018 03:13:24 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=pass (1024-bit key; unprotected) header.d=ccc.com header.i=@ccc.com header.b=e9+nSou+; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 7412F93D07; Tue, 10 Jul 2018 03:13:22 +1000 (AEST) Received: from mail-io0-f181.google.com (mail-io0-f181.google.com [209.85.223.181]) by minnie.tuhs.org (Postfix) with ESMTPS id D619993D06 for ; Tue, 10 Jul 2018 03:13:21 +1000 (AEST) Received: by mail-io0-f181.google.com with SMTP id v26-v6so17727919iog.5 for ; Mon, 09 Jul 2018 10:13:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ccc.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=aFB6261kbiUtC3wBAhCmMcNR9BqkTKpnNpyL+JQyoGM=; b=e9+nSou+FsS2zTD3Z8R8B2VXs9t/mK820Mv3YFHsKIHP7wCAd4kEFqO2E4lfJDkMhc 8t2j45DtwWgVvT/OJDh+U5xfvSfTAnxzeOYwdvQx11mWOu60v4I9LDuOGcrsEnAztJVe V5HGPbO9tXU4+Ths1pm9WmIOUYcVAJNoeBIYA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=aFB6261kbiUtC3wBAhCmMcNR9BqkTKpnNpyL+JQyoGM=; b=rFsTka7fk4J0UgOsIvcdoS5ER7zzXabKuo1YLIQBFDR1FDRDuUXzxHG7s+jDZ8Y0q8 PN76tPGPQc40bd4Nb+DQ9U2OGHeRyoSpXfnO3smv8uL+tFHwlRiz0e5uJ6YhGJryLHkR mDj3JnQsm2C269UhkVApz4G2CZavvVNcVTohm7g5C8l03wwoJT3Yb5RuP3yw0vWejXc2 D4exLLjkfxCEHOmRHIllmUc5+7tTMFN6R+qIN/mV15Uai0u6PosBZD1YLzKDpjMj3kc+ YNPYdeC1w+UxFb+AF0/LhFskysUIADKJHUh0nyclcvsDAuM9CrSJBureXe6CPMka+8/V GYeA== X-Gm-Message-State: APt69E3Pk26RYXsxZxhRRb3cg5CgO0rUml6NJtsqU6OHSDjsfGi54RUd FoqSrmOfyBTlxo6ivjwJOleMMn+4NxLzzrWTE2Yu/g== X-Google-Smtp-Source: AAOMgpcIpU97LKtp/GifeMkRpi4606LqqgKczeI4ay+fK+cXN+/7VDLEecOMbDTvOG+XJWoWhX0bjVe+feIOuDBeN9E= X-Received: by 2002:a6b:b8c5:: with SMTP id i188-v6mr17595893iof.284.1531156401195; Mon, 09 Jul 2018 10:13:21 -0700 (PDT) MIME-Version: 1.0 References: <3386fb80b5282f7bca0ccf34252182c2398232c1@webmail.yaccman.com> <5D272962-0063-4D28-B551-F381D3D10239@alchemistowl.org> <009101d4112f$8bb30f50$a3192df0$@ronnatalie.com> <1531153839.3991054.1434840984.210C4B3F@webmail.messagingengine.com> In-Reply-To: <1531153839.3991054.1434840984.210C4B3F@webmail.messagingengine.com> From: Clem Cole Date: Mon, 9 Jul 2018 13:13:09 -0400 Message-ID: To: Random832 Content-Type: multipart/alternative; boundary="000000000000639bfa0570942112" Subject: Re: [TUHS] Any Good dmr Anecdotes? X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.20 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" --000000000000639bfa0570942112 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable With V5/V6 C I/O was a lot like what Larry was describing for getopts(3) it was all over over the map. There was the portable I/O library which I sort of think of as the prequel to studio but I don=E2=80=99t remember uSing it = much. I must have run into most of the different ways people did I/O in some program(s) but I don=E2=80=99t remember any one off hand. I think the thing to remember is that at the time system programming languages such as C and Bliss were noted for not having I/O built into the language- it was supported externally. DEC (CMU) with Bliss had rich set of libraries (often in assembler already available) and force/matched by them with their users. Unix and C grew up independently which I think is part of why it was a tad more random. BY the time dmr adds stdio, it was still early enough in the life to displace the randomness for something as important as I/O, whereas lack of use of something.like getopt would not become clearly deficient until after widespread success. On Mon, Jul 9, 2018 at 12:37 PM Random832 wrote: > On Sun, Jul 1, 2018, at 07:34, ron@ronnatalie.com wrote: > > The bigger issue with the early printf is it just called putchar and > > putchar only output to stdout or what ever the global fout variable was > > set to. > > There was a comment in the manual that the fout concept was kludgy. > > V6 'iolib' printf has an interesting approach to fixing this: > > If the first argument was 0 through 9, it was taken to be a file > descriptor, and the second argument was the format string. If it was -1, > the second argument was the output string (as for later sprintf), and the > third was the format string. Otherwise, the first argument was the format > string. > > (I'm curious as to how much "iolib" was actually used, since it doesn't > appear to have been included by default - there was a different printf > routine in libc) > --=20 Sent from a handheld expect more typos than usual --000000000000639bfa0570942112 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
With V5/V6 C I/O was a lot like what Larry was descr= ibing for getopts(3) it was all over over the map.=C2=A0 There was the port= able I/O library which I sort of think of as the prequel to studio but I do= n=E2=80=99t remember uSing it much.=C2=A0 I must have run into most of the = different ways people did I/O in some program(s) but I don=E2=80=99t rememb= er any one off hand.

I think the thing to remember is that at the time system programming lan= guages such as C and Bliss were noted for not having I/O built into the lan= guage- it was supported externally.=C2=A0 DEC (CMU) with Bliss had rich set= of libraries (often in assembler already available) and force/matched by t= hem with their users.=C2=A0 Unix and C grew up independently which I think = is part of why it was a tad more random. =C2=A0 BY the time dmr adds stdio,= it was still early enough in the life to displace the randomness for somet= hing as important as I/O, whereas lack of use of something.like getopt woul= d not become clearly deficient until after widespread success.=C2=A0
<= div>
On Mon, Jul 9, 2018 at = 12:37 PM Random832 <random832@= fastmail.com> wrote:
On Sun,= Jul 1, 2018, at 07:34, ron@ronnatalie.com wrote:
> The bigger issue with the early printf is it just called putchar and <= br> > putchar only output to stdout or what ever the global fout variable wa= s
> set to.
> There was a comment in the manual that the fout concept was kludgy.
V6 'iolib' printf has an interesting approach to fixing this:

If the first argument was 0 through 9, it was taken to be a file descriptor= , and the second argument was the format string. If it was -1, the second a= rgument was the output string (as for later sprintf), and the third was the= format string. Otherwise, the first argument was the format string.

(I'm curious as to how much "iolib" was actually used, since = it doesn't appear to have been included by default - there was a differ= ent printf routine in libc)
--
Sent from a handheld expect more typos t= han usual
--000000000000639bfa0570942112--