From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Newsgroups: gmane.emacs.devel Subject: Re: [External] : Re: Shrinking the C core Date: Mon, 11 Sep 2023 16:10:26 +0100 Message-ID: References: <87ledwx7sh.fsf@yahoo.com> <877cpfybhf.fsf@yahoo.com> <873503y66i.fsf@yahoo.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="23652"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Drew Adams , arthur.miller@live.com, acm@muc.de, luangruo@yahoo.com, emacs-devel@gnu.org To: rms@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Sep 11 17:11:43 2023 Return-path: Envelope-to: ged-emacs-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 1qfiZj-0005x2-Kn for ged-emacs-devel@m.gmane-mx.org; Mon, 11 Sep 2023 17:11:43 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qfiYz-0004yI-60; Mon, 11 Sep 2023 11:10:57 -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 1qfiYt-0004xn-3E for emacs-devel@gnu.org; Mon, 11 Sep 2023 11:10:51 -0400 Original-Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qfiYj-0005Kh-DV; Mon, 11 Sep 2023 11:10:50 -0400 Original-Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-50078e52537so7685009e87.1; Mon, 11 Sep 2023 08:10:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694445038; x=1695049838; 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=mo9/mvUqx1VQe1xBDCG4/QCokARrGMB1Yh3MIZV8f8I=; b=mQzgeCqLRICuKMmopWbANziYcy4jZHxSImkDGruDzfBM5jA91UsSfXtEbVKIAxlurE cofSD5yDUUVFEcuVn/uu2T8yBr13VgxZ3Ri2mvn+J5ihzk6e0lcKELSoW3i4szt+36dX Lssy8nSVsqiptaH/8emtWmfNcRKYmgTT9dPHToCY9mAGHs8Ts4erBCK0U5r32XmKo2zT +i8/WOW5lrnqC6mMXtXl6s0K+aLGGA/41eQqXMsYwrpOdIntnAILJbJ13ML9rrwq+Cnb 8Xysn0ri5AmyaOF45Qi+RVuX1XE2ERyEh+Wn7mTHM3HhtnCt6qnbYLhYE2FeNH6VEVV6 VhZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445038; x=1695049838; 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=mo9/mvUqx1VQe1xBDCG4/QCokARrGMB1Yh3MIZV8f8I=; b=q37qmNJVjZ7ab25dOz29LAZdST8kPLtH0pdgSTvyatr15Jm1Pl84mVdw02aLAr1USP UFqsGxu4an8Mls4VGJ7ML8jl2ZC7fCQ+OXfxLb14+byP2tCSH4mCqdOa53yvSkyNk7yp 4qBePa68MX386K2yPdcTbhL0WMJZWY0yNZdSi3HYT1PX6lWvFMQ0ncVV2Q0V/g77RTsk 9Ibfcmm8GXjfxW2p/kzt4cQZ22Y92ffbuHqVLzXUJMiSrb/mk5uetv36Wpmfax4maUni 5W8MoObUfU97fL9ee0Er4rsu7b5sroyX7UdeH05c5TtHwCN9bQvDKEICLTXeEWQCHg2d Cf9A== X-Gm-Message-State: AOJu0YxijRsxUz8boOjDZA+3N0omLSsWQcBTne2DK+rh1M7nuh4oX1Fb D4UA7DmJ+DRVqJb2HDJESGSkRCgbj68Y5q2cjVuAcOG4A8/OJQ== X-Google-Smtp-Source: AGHT+IGTzjoDWa0bxwAEngdl+ympfqtElLh604bzy/G6GAoNHalSMUBkx145UV04TqXN7JSGkhU/rcJgrf7Mo39Gm2c= X-Received: by 2002:a05:6512:4007:b0:500:ac10:1641 with SMTP id br7-20020a056512400700b00500ac101641mr9654778lfb.46.1694445037891; Mon, 11 Sep 2023 08:10:37 -0700 (PDT) In-Reply-To: Received-SPF: pass client-ip=2a00:1450:4864:20::131; envelope-from=joaotavora@gmail.com; helo=mail-lf1-x131.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:310470 Archived-At: On Mon, Sep 11, 2023 at 1:40=E2=80=AFAM Richard Stallman wrot= e: > Keyword arguments are fine for an unusual, heavyweight operation such > as creating a frame. The sort of function whose doc you need to look > up again each time you use it. When something is as cumbersome as > that, the question of how to pass the arguments is a pile of minor > details that you'll see when you look it up. It's possible that in 1984 there weren't any good at-point-documentation systems that immediately show the available keyword arguments of a given call being typed. I was very young at the time, so I can't attest to it. But nowadays such systems exist, including built-in, in Emacs. But even in the absence of those conveniences, each family of functions in CL, (say, the sequence manipulating functions) take standard sets of keyword arguments (like :START, :END, :FROM-END, :KEY, :TEST). This makes them very easy to remember and makes using e.g. CL's SORT much more practical than Emacs Lisp 'sort'. > But it's a pain in the neck to make simple everyday functions such as > `append' and `length' that cumbersome just for the sake of following a > general system. APPEND and LENGTH in Common Lisp do not take keyword arguments, (nor have they ever?) so I believe your argument is weakened by criticizing a suggestion that no-one is offering. Let's look at a traditional Elisp macro define-minor-mode. According to the CVS history, you created this function in 1997, with three positional optional arguments. Then more and more arguments came along. Possibly due to the realization by Emacs developers around 2000, already more than 20 years ago, that positional arguments are maintenance hazards, the macro now accepts keyword arguments (and the positional arguments are actively discouraged). Unfortunately, because cl-lib.el wasn't used for this particular change, the aforementioned at-point documentation facilities aren't available, which, to some of us, would appear just another manifestation of Greenspun's 10th rule (which I assume everyone in this niche topic is familar with). Many other functions with a large amount of optional arguments (completing-read comes to mind) would be much, much easier to use with keyword arguments. Without them, we find ourselves wondering about how many nils to sprinkle before the argument we want to pass. Jo=C3=A3o