From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id KS2cDBBmrmD/rgAAgWs5BA (envelope-from ) for ; Wed, 26 May 2021 17:15:28 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id 6Oa/BxBmrmBQSAAA1q6Kng (envelope-from ) for ; Wed, 26 May 2021 15:15:28 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 6D595A2C9 for ; Wed, 26 May 2021 17:15:27 +0200 (CEST) Received: from localhost ([::1]:36440 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1llvFm-0006Cj-81 for larch@yhetil.org; Wed, 26 May 2021 11:15:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50950) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1llvEt-0006BF-0I for guix-devel@gnu.org; Wed, 26 May 2021 11:14:32 -0400 Received: from mail.thebird.nl ([94.142.245.5]:33256) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1llvEj-0001cr-79; Wed, 26 May 2021 11:14:29 -0400 Received: by mail.thebird.nl (Postfix, from userid 1000) id 6A794FFC; Wed, 26 May 2021 17:14:15 +0200 (CEST) Date: Wed, 26 May 2021 17:14:15 +0200 From: Pjotr Prins To: Ludovic =?iso-8859-1?Q?Court=E8s?= Subject: Re: Rust freedom issue claim Message-ID: <20210526151415.yer3zduopggr6ds6@thebird.nl> References: <87bl90byqf.fsf@disroot.org> <87k0nlsh0c.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <87k0nlsh0c.fsf@gnu.org> User-Agent: NeoMutt/20170113 (1.7.2) Received-SPF: pass client-ip=94.142.245.5; envelope-from=pjotr2021@thebird.nl; helo=mail.thebird.nl X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1622042127; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=NnaZgzrAKIIPy6ifGOabYlQ0uFyTIEL6UJsIbkiwovs=; b=BCAJErjF2V9HRkGPTj3P44zA4LaJQ+paZUlWat/5z2cJ/REyp6ta+fyyOhzaALQellcE+2 DuMWRKuqZ21SoN0S2dslSGOCnExympUgSgQRTDOhWZVdZYhK+Rlq3wdhdOwmjj/sl0g2Ll GDlmnLb+NQt0guC1LdLd56qM80LIE6kp6LxVpq3BTj+TzarwbzkF1y+MD0EgHhxJajY/N2 ZR2zK91KNAVUZPadkG+amSwvo5skxTYK5QqGWWRALmDegzzVJ9Y6N1zHobnTvd4dVHPvfm BVpUNiYpUpvRlNsQEljUw7oFxSOqEMlNUhIghjLZA7Rf0uhiq2oVFMh8OpM9Sw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1622042127; a=rsa-sha256; cv=none; b=MdB8mBQCRbc23r1uYjzZq7gv7FOums4tGq4hndPVmCWckAElXExXdpS31YYonCBYmBpNLW N2HLFEdFuh5HkJhHOyzOs51kSmT4/1mjwpBMlp7svYylC+iP3AW33nYvC0nN62exRq87fJ FWtjXgxPL55o1tvX9Im7Bgddfmwv/KvXvojSjOAulnlJDEKESjTvgzqBoXNBn7CqU14/Fx l9O2JXxlaBc81Ko3sYfCsbrFsaDI4JCjtudF32sny3qZiSXRiXan5LujQVOeuc1GDQDeor wh+J/GVXpKp54Gzy+OT3HyUmT+KLdwF7wGn8RzFmG+LdXaOujUltYpvXUlzOnw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: -2.43 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: 6D595A2C9 X-Spam-Score: -2.43 X-Migadu-Scanner: scn0.migadu.com X-TUID: MX3rkmgkabVC On Wed, May 26, 2021 at 04:32:03PM +0200, Ludovic Courtès wrote: > That’s a somewhat different topic. FWIW, I’m both excited at the idea > of having a memory-safe replacement for C gaining momentum, and > frightened by the prospects of Rust being this replacement, for many > reasons including: Rust does not have a good bootstrapping story, as we > know all too well, Cargo encourages sloppy package distribution à la > npm, Rust in the kernel would give a false sense of safety (it’s still > that big monolithic blob!), and the Rust community is very much > anti-copyleft. Having adopted Rust for some of our bioinformatics work, I can fully agree. It is actually hard to use Rust without Cargo and it is an implosion npm-style waiting to happen if the most trivial program already imports 100+ external packages - some of doubtful quality. Another thing I have against Rust is its syntax - but that is (arguably) taste. I can't believe references are written with an ampersand - and they are so common it is in your face all the time. That is just noise. And sometimes the borrow checker really gets in the way (and I pine for GC). We are sticking with Rust though because the compiler works hard and is a sucker for detail, so it helps both less and more experienced programmers to avoid C/C++ traps. Also Rust has no OOP that people can use - I am very happy about that. In short it is a fairly pragmatic FP language with some nice compile time features. I don't love it but it is an OK compromise. For kernels I completely agree with you. Memory safety is a red herring because we face much deeper problems. Open hardware and message passing is the way forward. Oh, did you know Rust expands all sources into one 'blob' for compilation? At the crate level. It led to the meme: "The Rust programming language compiles fast software slowly." I have not hit real issues yet with compilation speed, but it feels like we regressed to huge C++ template expansion... > Guix, related projects such as Mes, Gash, and the Shepherd, together > with the Hurd, offer a very different and (to me) more appealing vision > for a user-empowering, safer, more robust, and yet POSIX-compliant OS. Good architecture is far more important than a borrow checker. Pj.