From owner-freebsd-hackers@freebsd.org Mon Dec 31 07:36:19 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 E51271429D54 for ; Mon, 31 Dec 2018 07:36:18 +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 72E838DCC7 for ; Mon, 31 Dec 2018 07:36:18 +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 2FE5214838; Mon, 31 Dec 2018 07:36:17 +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 wBV7aGw3039274 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Mon, 31 Dec 2018 07:36:16 GMT (envelope-from phk@critter.freebsd.dk) Received: (from phk@localhost) by critter.freebsd.dk (8.15.2/8.15.2/Submit) id wBV7aGHI039273; Mon, 31 Dec 2018 07:36:16 GMT (envelope-from phk) To: Eric McCorkle cc: "freebsd-hackers@freebsd.org" Subject: Re: Speculative: Rust for base system components In-reply-to: From: "Poul-Henning Kamp" References: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <39271.1546241776.1@critter.freebsd.dk> Content-Transfer-Encoding: quoted-printable Date: Mon, 31 Dec 2018 07:36:16 +0000 Message-ID: <39272.1546241776@critter.freebsd.dk> X-Rspamd-Queue-Id: 72E838DCC7 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.98)[-0.982,0] 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 07:36:19 -0000 -------- In message , Eric Mc= Corkl e writes: >Before I begin, I want to be clear that everything here is in the realm >of speculative, long-term discussion. My goal is to start a >conversation, not to propose anything concrete right now. Tl;Dr: Forget all about it. The historical precedent is cvssup(1) which was written in Modula-3. Cvsup was a very complex piece of machinery, and it was indisputably incredibly important to the projects productivity, and we talked again and again about including it in the tree. The arguments were roughly (from memory:) 1. It would make porting to new platforms much harder. (M3 had its own threading implementation.) 2. Nobody but jdp@ knew or used M3, and he only used it for cvsup, because he wanted to try out the language in the first place. 3. It would increas buildworld time significantly. 4. Maintaining the M3 compiler in the tree would be a bother. 5. The only advantage over having it as a port were "It would be (more) convenient" We never imported cvsup and it was not even a close call. I think we can generalize and say that unless we are talking about very big, complex and inescapable body of code, any potential benefits will not outweigh the very concrete disadvantages. So exactly which "base system components" are we talking about ? The largest non-contrib program we maintain in the tree, is ppp(8) and that is only 43KLOC. That is not enough code to warrant a refactoring into a different programming language, in particular not when usage is so low that nobody has even bothered to merge the multi-link support from net/mpd5 in the last 10 years. So the only piece of code I can imagine which would ever come close to qualifying, would be if somebody starts writing BSystemD(8) from scratch. And I'm 100% convinced that people will want that optional and firmly segregated in a port for at least the first a decade. And as far as I know, we *are* trying to make base more modular, and migrate it to pkgbase to make the attachment of/to ports more seamless, right? Poul-Henning -- = 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= .