From owner-freebsd-hackers@freebsd.org Mon Dec 31 13:52:07 2018 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CDCA5143518D for ; Mon, 31 Dec 2018 13:52:06 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from phk.freebsd.dk (phk.freebsd.dk [130.225.244.222]) by mx1.freebsd.org (Postfix) with ESMTP id C1A686D212 for ; Mon, 31 Dec 2018 13:52:05 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (unknown [192.168.55.3]) by phk.freebsd.dk (Postfix) with ESMTP id AAD6A14838; Mon, 31 Dec 2018 13:52:03 +0000 (UTC) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.15.2/8.15.2) with ESMTPS id wBVDq3mG040476 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Mon, 31 Dec 2018 13:52:03 GMT (envelope-from phk@critter.freebsd.dk) Received: (from phk@localhost) by critter.freebsd.dk (8.15.2/8.15.2/Submit) id wBVDq2TN040475; Mon, 31 Dec 2018 13:52:02 GMT (envelope-from phk) To: "Bjoern A. Zeeb" cc: freebsd-hackers@freebsd.org Subject: Re: Speculative: Rust for base system components In-reply-to: <07050B49-18E6-498A-91C0-3A0125EF5CA2@lists.zabbadoz.net> From: "Poul-Henning Kamp" References: <39272.1546241776@critter.freebsd.dk> <07050B49-18E6-498A-91C0-3A0125EF5CA2@lists.zabbadoz.net> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-ID: <40473.1546264322.1@critter.freebsd.dk> Content-Transfer-Encoding: quoted-printable Date: Mon, 31 Dec 2018 13:52:02 +0000 Message-ID: <40474.1546264322@critter.freebsd.dk> X-Rspamd-Queue-Id: C1A686D212 X-Spamd-Bar: ++ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [2.47 / 15.00]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_SPAM_SHORT(0.50)[0.498,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.dk]; AUTH_NA(1.00)[]; NEURAL_SPAM_MEDIUM(0.10)[0.097,0]; RCVD_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: phk.freebsd.dk]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_SPAM_LONG(0.48)[0.480,0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[phk@phk.freebsd.dk,phk@critter.freebsd.dk]; RCVD_NO_TLS_LAST(0.10)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:1835, ipnet:130.225.0.0/16, country:EU]; FROM_NEQ_ENVFROM(0.00)[phk@phk.freebsd.dk,phk@critter.freebsd.dk]; IP_SCORE(0.11)[asn: 1835(0.55), country: EU(-0.00)] X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 Dec 2018 13:52:07 -0000 -------- In message <07050B49-18E6-498A-91C0-3A0125EF5CA2@lists.zabbadoz.net>, "Bjo= ern A . Zeeb" writes: >On 31 Dec 2018, at 7:36, Poul-Henning Kamp wrote: > >> Tl;Dr: Forget all about it. >> >> >> The historical precedent is cvssup(1) which was written in Modula-3. > >While we are on the topic, what was the history on how FreeBSD ended up = >with perl in the base system? We wanted a scripting language stronger than /bin/sh, but preferably without the kitchen-sink, guest-bathroom, sewer pipelines and wastewater treatment plant, One very desired use-case was to write the installer in a better language than C, but other interesting ideas were floating around too. For instance inetd(8) or syslogd(8) could be given a $script-program as "action" etc. I can't remember if we had Forth in the boot code back then, but it was certainly ruled out for this purpose by people who had grown up on an inferior brand of pocket calculator :-) We tried to import Tcl first, but that didn't work out, for N-1 values of "work out". The one thing that worked was the one which made us pick Tcl: It was very small language designed for exactly that kind of embedding, so the actual integration into the source tree wasn't too horrible. Of course the version churn caused by John Ousterhout & Scriptics trying to become DotCom millionaires gave some heartburn, but it was mostly manageable. However, everybody hated Tcl for all sorts of reasons, and since this was the DotCom years, they hated it most of all because it was not the "Endl=C3=B6sung for all programming requirements: Perl". So we ripped out Tcl again and imported Perl, despite significant misgivings, all if which came to fruition sooner or later. Interesting, as soon as we had imported perl, all the much talked about use-cases evaporated, and it never saw much actual use in the tree. Lua was brand new back then, and I dont remember if it was even mentioned, it certainly was not in the running. Rexx had no FOSS implementation, so that was not a candidate. Importing bash(1) or ksh(1) was also proposed as a "half-way pregnant" solution, but licenses were in the way. -- = Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe = Never attribute to malice what can adequately be explained by incompetence= .