From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Thompson, David" Newsgroups: gmane.lisp.guile.devel Subject: Re: The Guile junk drawer and a C plea Date: Sat, 29 Jun 2024 19:51:48 -0400 Message-ID: References: <20240629002027.13853-1-richard@freakingpenguin.com> <87cynzr2r8.fsf@freakingpenguin.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23053"; mail-complaints-to="usenet@ciao.gmane.io" Cc: guile-devel To: Richard Sent Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Sun Jun 30 01:52:27 2024 Return-path: Envelope-to: guile-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sNhrm-0005pW-Qg for guile-devel@m.gmane-mx.org; Sun, 30 Jun 2024 01:52:26 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sNhrV-0003hU-Uq; Sat, 29 Jun 2024 19:52:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sNhrP-0003h2-QI for guile-devel@gnu.org; Sat, 29 Jun 2024 19:52:05 -0400 Original-Received: from mail-qt1-x832.google.com ([2607:f8b0:4864:20::832]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sNhrN-0003Ih-N6 for guile-devel@gnu.org; Sat, 29 Jun 2024 19:52:03 -0400 Original-Received: by mail-qt1-x832.google.com with SMTP id d75a77b69052e-44634afb2e7so16350221cf.1 for ; Sat, 29 Jun 2024 16:52:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=worcester-edu.20230601.gappssmtp.com; s=20230601; t=1719705119; x=1720309919; darn=gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Ei97UMKe4VZXVM2ra1FcuuvTuMOE7NcTw8cA+peIRfI=; b=VJFT+ecZ065xsZKAKK3WYAvj/Z7wV17jIPAiVFrkkzg+HDTiZVNcHkTvuxhqPPxaAB BrVCKbE6TRS6l63NKgdWXQtOYCzNE5LjL7M5Ue/nBK31uKJaaCVT+Qu89BNc+H2hZM+G eT1ZXyM0ic8j6iof4zRcKwggctsk96yO6sxQ+aI4BzHmS6X8+LABoIhoZVBYhc1vfrwZ osFxI3Gx+hVMCYrMdrIU0685kmDXtaJFPpbpnLxeg7XqvxaXd9VYxvP2XwjdKVhE4z+D oQiKzbUKDNkLPOdmdBF975LoVBSptezaSVwY+J6lOb2YDN/ezL+umk7Ss3CXvKvfU4yp PrCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719705119; x=1720309919; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ei97UMKe4VZXVM2ra1FcuuvTuMOE7NcTw8cA+peIRfI=; b=SjSNldpBYHkCeeyXpIJ2kkUOe8zNeODPPdKl3UsjWP+wcgY7QObzHqxUJ+z6j76Ae4 M6qqZCyjbUnbU7/aCTKY6+LYRn7kFomri66PPqK8gNc3NwDgSvvtHH8f1XnaOtPaTDpw EWUbDYzTwHD7HS0j08rzNjFY10+o04pvS7GI6OqR9fdWI606VpldQ0UnA8TuzU8nwmaQ MYUBNzbBVwMYwxN/IwGvh8HfsnkMR3WWUKGacg8rZlT3ZVqIzh8OQGM+UEQa5FAyBaVI rSqpGH9KjFqzmrmYJdbLRJMd8Cx8Lqq48o2bXp1TijqaTLnfxD2fSBejzsRKqUG/Ucg4 uQgA== X-Gm-Message-State: AOJu0Yw54S/7UOiQDRBdtdgjrm5sC8Jr+FB34uppL6lZ0F4A7gVs9HyA afbLsRD18jYZnFncMemRNEDxTVEZ1+dsLnhu41PnlmUYhk/e02okb9zKiNAOFTenjItf3txQg3a JPYeIRVzJn8Ndh8NxIXKf1leg+pP/Dam+BX2jtr0cFeSHaOTRJ5o= X-Google-Smtp-Source: AGHT+IFCba8DxDZMm+Nyz855fWtWCHlx9n6SuWc8HDBkqJq6bOEmhM2lDQxv21AsHM7CbvZTJosI8OPoaH7UFJxZwJo= X-Received: by 2002:a05:622a:2c3:b0:446:5d7f:fb8c with SMTP id d75a77b69052e-44662d9388dmr25878181cf.8.1719705119263; Sat, 29 Jun 2024 16:51:59 -0700 (PDT) In-Reply-To: <87cynzr2r8.fsf@freakingpenguin.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::832; envelope-from=dthompson2@worcester.edu; helo=mail-qt1-x832.google.com 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.devel:22515 Archived-At: Hi Richard, On Sat, Jun 29, 2024 at 3:02=E2=80=AFPM Richard Sent wrote: > > I see my little patch has ignited a comparatively oversized firestorm. > Oops. ;) I wasn't sure if my email would get 0 replies or a lot of replies... but the latter happened. I just want to be clear that this is *not* a judgement of your patch or saying that you made a mistake! A big reason why I changed the subject line is because I wanted to separate this discussion from the review of your patch. Thank you for sending a patch to improve Guile!! And thank you for bringing some important issues back to the front of my mind. :) > The current discussion is above my paygrade so I'll largely stay out of > it. (Although it's quite fascinating!) > > In the specific context of this patch I feel like the risks of namespace > pollution and C maintenance burden are low since both are near identical > to what already exists. But of course, someone else may argue that this > is a death by a thousand cuts situation. I agree that the risks are low in this case. It doesn't make sense to have destructive list operations without nondestructive equivalents, especially since mutation of pairs is strongly discouraged amongst seasoned Schemers. If it were my call (and it's not, to be clear), I'd say that they should just be implemented in Scheme, at least. There really is no good reason to implement Scheme procedures in C anymore. > I will suggest that if a consensus is reached on what new code must > adhere to (e.g. no (guile) namespace pollution, no new procedures > written in C), it should be documented in the reference manual. There > are traces of this but nothing concrete [1]. What little documentation > exists is secreted away into the darkest corners of Texinfo. I believe a > top-level "Contributing" section in a similar vein to GNU Guix would be > a valuable addition. Right, there is no consensus about this right now. It's been talked about vaguely on IRC and in person over the years (maybe the mailing list, too, but I don't feel like checking). I'm just prodding the issue again (uh oh, did I prod a hornet's nest?) to see if it creates some positive momentum. > It's quite possible as a first-time contributor I am missing something > that already exists. If so, oops again! Nope! Not missing a thing. There's literally no way for you to know that there's a desire amongst some Guilers to discourage implementing new standard library procedures in C and expanding the default namespace. I really hope I haven't discouraged you from future contributions by using your patch as a case study. Thank you again for hacking on Guile! - Dave