From owner-freebsd-hackers@freebsd.org Mon Dec 31 15:02:36 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 3020A1437318 for ; Mon, 31 Dec 2018 15:02:36 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x82e.google.com (mail-qt1-x82e.google.com [IPv6:2607:f8b0:4864:20::82e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C9F386F97B for ; Mon, 31 Dec 2018 15:02:35 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x82e.google.com with SMTP id n32so29395283qte.11 for ; Mon, 31 Dec 2018 07:02:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1hFnpHobnECcJMF391pPqiViICsHnjf4ajAV9tSLu8Y=; b=xfIfUju9L18eM8Y0fiuH9NHFN+H8yWCE7LOZ/tWMLor8zKX/BFs8ZBNvXCsc48kQab DsfW/lGipYGruGkgzrCKG3iqfO2CNkqvPBkSs5SphNAN2GpGWVe14LfFQx/QF71xyQDp nXgg9x95KGLha0+Ym+t412fbzuV3tnshzvvtt4Movg85CNCWfdnf3xvjkDd/rp2kJoTE oMGhFN5iklGiBXYlo/b1e2/etjARqgJhu2ZQ4dP3X/VhouCVFWWEhGc6U4UOUMRDPPvQ qpx9+pHbvJyNV0wWkYwkBn+Cwv8wrTTchM/aEUZnhYpSRaEdzvyJAb/r4xxkFF4wa8Gx Kbmw== 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=1hFnpHobnECcJMF391pPqiViICsHnjf4ajAV9tSLu8Y=; b=hHhupak5LtgBAwPsYIolXSuYopx1HOC8Tq45Tvx0mPfJSsZNpQnw56kBUzawtS3Piy 5Y4paGMTEtm4X8m5xARG/cr4bU/gR3+YUht9jnDHLXFfSp4KweqIxGjkupJp04Wrywnl LHskqj28A5ADJvNwwnm2fYEq+1skydEgwug1x58Af9uQGoEmjU0v5JYlb0eCJwj89j4f 8RgonVzmJnDsQEpsd9yh6aTZqtSnZ0oQuz1hukPcZdPmrc3Fc+Jmg+Vp8EY0xJM4qXVw Kk9hKEmcM2IThVAemGtt/Oc/s7lIdkbzSHXjhvcMqi2PZTW4aLtr2rWsBDzZOfhzwaD2 dnQQ== X-Gm-Message-State: AJcUukdm/OIkF573TUHEitoju5sfSVTEbKYt1JLTTiu5GIrCd+UfgZCO ck4q7rqDmOWhRNMWSBNSUKOTLCktmNjvlsVhBMzmkw== X-Google-Smtp-Source: ALg8bN4CRfvaPnBKCoRewDKCdSiVo46/gwVYWTYlJbhLHzF2mSQx8Ne4lB4MHJ3XFvgb6tLrpidWiQrclmp8MIriobM= X-Received: by 2002:ac8:548a:: with SMTP id h10mr36805615qtq.15.1546268554936; Mon, 31 Dec 2018 07:02:34 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Warner Losh Date: Mon, 31 Dec 2018 08:02:23 -0700 Message-ID: Subject: Re: Speculative: Rust for base system components To: Eric McCorkle Cc: "freebsd-hackers@freebsd.org" X-Rspamd-Queue-Id: C9F386F97B X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.99)[-0.989,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 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 15:02:36 -0000 On Sun, Dec 30, 2018 at 10:41 PM Eric McCorkle wrote: > 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. > Today, this is a losing bid. The cost for rust is high (both in terms of people and added compile time), it's not well supported on all our architectures (and its robustness on the ones it does support has only been tested in limited scenarios), and there's 0 software it enables from day one. Plus, since it's a fast evolving language, we'll still need the ports to support those things that use it today since the likelihood of a version mismatch is high (and supporting 1 version would be a big stretch, multiple version is right out). So any sane cost / benefit analysis says: way more cost than benefit, forget about it. We simply don't have the man-power to maintain a high-cost, zero-benefit component in the tree. Lord knows we have a lot of non-zero-cost-with-almost-zero-benefit things in the tree today that we need to get rid of. In the future, when there are actual replacement things written, or there are new features written, that will shift the cost / benefit equation. And the circumstances about what makes up base will also have shifted, if we're lucky, and we'll be able to have a conversation. We imported perl and tcl on the speculative notion that people would build great things. That never really panned out, and they became a high-cost burden to keep modern for only minor benefit. And version skew in Perl was terrible by the end. Forth and Lua live in the tree because they have benefit (though Forth will be departing, most likely by 13, and definitely by 14). They are also small and easy to update to new versions. And we can't say, with certainty, that if a bunch of rust things show up we'll use them in base. We'll have to see what they provide to benefit the system. TBH, there's a stronger case for python than rust: there's actual python scripts in the tree today that we have to install a port to use. And there the benefit, while not zero, is small and the effort is large compared to just dragging it in as a port, so it hasn't been done. It's another fast evolving language that requires multiple versions as well... So write something that everybody wants, that must be in base, and that requires rust, and then we can have the conversation... Warner