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_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 11932 invoked from network); 12 Jun 2023 23:50:06 -0000 Received: from minnie.tuhs.org (2600:3c01:e000:146::1) by inbox.vuxu.org with ESMTPUTF8; 12 Jun 2023 23:50:06 -0000 Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 53257424C3; Tue, 13 Jun 2023 09:50:04 +1000 (AEST) Received: from mail-ot1-x332.google.com (mail-ot1-x332.google.com [IPv6:2607:f8b0:4864:20::332]) by minnie.tuhs.org (Postfix) with ESMTPS id 654E940C61 for ; Tue, 13 Jun 2023 09:49:59 +1000 (AEST) Received: by mail-ot1-x332.google.com with SMTP id 46e09a7af769-6b3a0ae7c29so42545a34.3 for ; Mon, 12 Jun 2023 16:49:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686613798; x=1689205798; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=qxYwPH9Aky+nmuQ+HYrBa83aLapWwL4sh5HzHHgaHR0=; b=nYWLOnneWAfwjT4qPQTHb2bFwbk7IHph9TvZ4MddtcPC1yYvt1cZ1ekCt4iKgoNg5x 5I4Ujs/db9Pfajkdi6NBkv+HKIBP4AM/bVRXMBRSayNaMDUTDnNhfvwyLD6n3uoCObJb 8KKn5RhlKJ2ndTovqavupP09pmbmmJbBUprVqJHt1sAfDMmKXhrMM2SHQbx8gs2XMkUe IEKn/0e+ObYufOZgkvgxLyzIBn88fbnT7fgx0UPqUZ/OSKFbRliNYKbsqu5ZFHA+4bA7 P3uxdZS6tvrSJj51dRstI0ZgWSFpt0x4IBGjKo61UF0jGAsIFT2Qk6HF819cp0QCvy+0 bGKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686613798; x=1689205798; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=qxYwPH9Aky+nmuQ+HYrBa83aLapWwL4sh5HzHHgaHR0=; b=ByH0V0pc8ZrWGBaUMhftwirygsnyEjP3J1fnabZI+DfN4YCGyNymm7OSzbx52MCb7H a1aeeNz3H17fPUAw+HuNlsAXIvw7dejlTwqq28Nrsh+nCwf/eOv9WJEd8hUyozv9No0/ NcvKl23EFa2HWYX4dDIlUpMnQfIGjpga3clwnLCKkmmktXn6JJ7WUSi28QC76Kep4fFI y8l4gdQRQbmv67anIlRtOOX9U5rDw4bD61z10Rr9h4vMifD6N3PjS9ev0Dyxzdw+fkVG cBCX0JplO9PXJhvP8bHMww1tsVj+GEPXcbbldzi5ZG7/kfapvru+Y6RZ4XG6LXys+IQX qF+Q== X-Gm-Message-State: AC+VfDw4EONT/htZk4JbI7UIUpzZ76fO8PSVnJSirVbG7+xJ9mP+DvD1 1fnuJPOc/GMhKeXZmfbDCE03HmCKg4c= X-Google-Smtp-Source: ACHHUZ6T2enjWOqYKFcQ278H/znC+mGyghuWYHCmeFnxGITv9ikK1BTTdFZOuomjDZ9eWIf+KI95aQ== X-Received: by 2002:a05:6830:1d5a:b0:6b2:8d5f:ad47 with SMTP id p26-20020a0568301d5a00b006b28d5fad47mr7425765oth.3.1686613798398; Mon, 12 Jun 2023 16:49:58 -0700 (PDT) Received: from illithid (ip68-12-97-90.ok.ok.cox.net. [68.12.97.90]) by smtp.gmail.com with ESMTPSA id s6-20020a056830148600b006af886703f2sm4358110otq.37.2023.06.12.16.49.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Jun 2023 16:49:57 -0700 (PDT) Date: Mon, 12 Jun 2023 18:49:53 -0500 From: "G. Branden Robinson" To: Paul Winalski Message-ID: <20230612234953.pwu7oi6hyglsaqzs@illithid> References: <20230612213912.mywv5znz66pk3n5q@illithid> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="x2pjbmx3od7ik7x2" Content-Disposition: inline In-Reply-To: Message-ID-Hash: DPKL35CO7HRUYV6OAS2VPUKMAMH4FYIW X-Message-ID-Hash: DPKL35CO7HRUYV6OAS2VPUKMAMH4FYIW X-MailFrom: g.branden.robinson@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Computer Old Farts Followers X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [COFF] Re: [TUHS] Re: crt0 -- what's in that name? List-Id: Computer Old Farts Forum Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --x2pjbmx3od7ik7x2 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline [Clem and TUHS dropped from CC] Hi Paul, At 2023-06-12T19:04:31-0400, Paul Winalski wrote: > I don't think this remark was intended to denigrate Fortran in any > way. I took it as a wryly humorous way to make the observation that C > and Fortran have different program startup semantics, and that there > is other stuff that has to be done when firing up a program written > wholly or partially in Fortran beyond what is needed to start up a C > application. It was really just a fart joke--you know, "breaking wind" and all that. libcrt0.s -> libfrt0.s ... But you're getting at an actual problem I had when trying to learn linking and loading on Unix beyond the level of recipes keyed in by rote. (My upbringing was on systems with the most minimal conceivable object file formats, and your runtime support was in either in ROM or you provided it yourself.) Being of a certain age, 'crt0' (a name preserved by the GNU C compiler) looked to me for all the world like it must have had to do with driving a CRT. This made little sense to me, especially when the darn thing got shoved into computation-only programs that performed no I/O at all. I could find no documentation, nor at that time any local experts who could tell me what the heck "crt" was _for_. (The BSD advocates I knew back in the day suggested that this was my fault for not locating and apprenticing myself to such a master; the guild mentality was, and in some ways still is, powerful there.) I am probably not the only person who was sent down an incorrect chain of deductions by this "economical" naming convention; furthermore, one employed for the sake of a file name that almost no one ever typed anyway. To bang an old drum of mine, while Unix culture pats itself on the back for economizing keystrokes with an ad hoc compression scheme for every name in sight, it too often overlooks what discarded in pursuit of this form of minimality: clarity, lack of ambiguity, and ease of acquisition by newcomers. I get that Teletypes were hard to type on and baud rates were punitively low. But when Bell Labs got the Blit, the limitations that motivated the original terseness were not only not discarded, but retained and doubled down on. "We're going multi-architecture for Plan 9, so let's allocate every machine architecture we'll ever be presented with an identifier from a single-character alphanumeric namespace." Madness.[1] Decades after tcsh brought tab-completion to the shell-using masses, and just as many decades after this feature was cloned by every Unix shell that wasn't moribund, the defenders of keystroke minimality aren't content to cultivate their own private name space of single-letter shell functions, scripts, or aliases--instead they rebut the above by complaining that GNU-style architecture triples are way too long. Way too long for what? To type out in full? Sure. Too long to tell you what ABI the objects produced are going to use? No. At least APL chose sigils that were tough to confuse with other things. > Most operating system ABIs, Unix included, don't have a formalized > mechanism for dealing with the differences between startup semantics > of various programming languages. They deal with the problem in an > ad-hack fashion. The one exception that I know of is VMS (now > OpenVMS). Tom Hastings was the architect who designed the original > VAX/VMS ABI. He was aware from the get-go that several programming > languages had to be supported and he made sure that his design was > general enough to allow programmers to write routines in the most > suitable language for them, to mix and match modules written in > different languages in the same program, and to easily make calls from > one language to another. It was a stroke of genius and I haven't seen > its like in any other OS (several times I've wished it was there, > though). Thanks for mentioning this. I think you had pointed this out some months ago, but I had difficulty remembering the details of "who had solved the ABI problem the right way a long time ago", but could not remember enough of it to dredge it up even with repeated searches. Unfortunately Google remains stymied even by the quite explicit terms "tom hastings" vax vms abi ...do you have a link to a white paper I could read? I have an ecosystem in mind that might be receptive to the concept. Regards, Branden [1] NAME 0c, 1c, 2c, 5c, 6c, 7c, 8c, kc, qc, vc - C compilers [...] DESCRIPTION These commands compile the named C files into object files for the corresponding architecture. If there are multiple C files, the compilers will attempt to keep $NPROC compilations running con currently. Associated with each compiler is a string objtype, for example 0c spim little-endian MIPS 3000 family 1c 68000 Motorola MC68000 2c 68020 Motorola MC68020 5c arm little-endian ARM 6c amd64 AMD64 and compatibles (e.g., Intel EM64T) 7c alpha Digital Alpha APX 8c 386 Intel i386, i486, Pentium, etc. kc sparc Sun SPARC qc power Power PC vc mips big-endian MIPS 3000 family --x2pjbmx3od7ik7x2 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEh3PWHWjjDgcrENwa0Z6cfXEmbc4FAmSHrxoACgkQ0Z6cfXEm bc40wA/+OBwQhcBtrdzOe3zXt+D0saVqhIs+lBEhxbBTjUfSJcA8PrQ3gTEr+KOL m7FhTc8VrR3EeGzjCdBjMZJwPp36oPzxchrSgW9MuNoHsD8iJIv/+qlHjkXyZv5X WB8nQ2+oTCwUecvbYsdwoke69yZtszsGmPFv3qGy6xDUWxj5Mlgcg5mSu2smh69n Yg1MUmh3I1sQ6nSS9nI0EQxle9whg5vWy7x6wOaV0FeKxjsiPoqAp9r2T8R4nOjO M35XLbDlPd1MvoVWO1IF2Q0HehqC8O7NBycv21BQqbNcO3Fiz9L//rnqmimr/oVb FnTdE6Xns6W+CQYCeSxQ/HkYsD0XVbJ5BN9J3J5FDwSsQlgoZQsXm1kTE3MmVKTJ 1LHktGC/L8W7JwoJJrpK81A+ItOoohiXBFR6jW9eQgfFbt/It9khtv3I/7gW0CYx P79uMSTvXQAnpBYd1iAlbpyGC/ckcrDHGgdzn9VEoW8Dm/8PEmCDntBt4mC/MyVQ oASmriZQrBf16+R14wgXUdj+PLpWMslFm+4szUGeUMTV8PERCTSUIlsTWsRyzlWQ C2iVbvY9DMXiz2KS6Q1GR3avX/czy4MeVEeH12sUFLgL1FP8qmk59+hAuMq8YT67 4NUhZjNJac4N0gwX2WcF5abX0zRjhmQ0pGuxYTNKlm3a9CWy8ro= =b0DT -----END PGP SIGNATURE----- --x2pjbmx3od7ik7x2--