From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.devel Subject: Re: how to speed up Lisp devel time Date: Fri, 09 Aug 2024 18:03:48 +0200 Message-ID: <871q2x4ra3.fsf@dataswamp.org> References: <87y156413v.fsf@dataswamp.org> <86sevekvjy.fsf@gnu.org> <87v80a402y.fsf@dataswamp.org> <86ikwakmdg.fsf@gnu.org> <87frre3pxa.fsf@dataswamp.org> <86ed6xlx9r.fsf@gnu.org> <87a5hl4x9b.fsf@dataswamp.org> <86bk21lp53.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9265"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: emacs-devel@gnu.org Cancel-Lock: sha1:dHOUGzp+PbTNB5zt40MZeCFB09I= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Aug 09 18:09:56 2024 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 1scSBf-0002CS-Vh for ged-emacs-devel@m.gmane-mx.org; Fri, 09 Aug 2024 18:09:55 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1scSAz-0002tS-2p; Fri, 09 Aug 2024 12:09:13 -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 1scS69-0004ET-28 for emacs-devel@gnu.org; Fri, 09 Aug 2024 12:04:13 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1scS67-0005sy-0F for emacs-devel@gnu.org; Fri, 09 Aug 2024 12:04:12 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1scS64-0006l7-WA for emacs-devel@gnu.org; Fri, 09 Aug 2024 18:04:09 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io 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, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Fri, 09 Aug 2024 12:09:11 -0400 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:322578 Archived-At: Eli Zaretskii wrote: > These all are handled by the 'p' interactive code. So all > you need is this: > > (interactive "p") Okay, that is some improvement at last. But actually it should be like this for interactive use: - With M-x: Prompt string for all three variables using their default values as suggestions. It should prompt again for each variable if it fails its validation until it is OK. Whenever failing it should say for example "end must be: (<= 0 end)" so the user knows what went wrong. - With C-u M-x or C-u n M-x OTOH: one should set this value to 'end', and if it validates, then set 'step' and 'i' to their default values. The reason is the user shouldn't be asked to input data in more than one form. For non-interactive use, or generally in the function for any interface: 1. Set all to their defaults if unset 2. Validate all three. Code rules: Default values, and functions to verify etc, should be stated once each, not once in here and then the same value somewhere else. >> One can make it shorter here and there, but to write that >> in 83 chars of Elisp - well, let's see it. > > https://lists.gnu.org/archive/html/emacs-devel/2024-08/msg00314.html It only sets the default values. I do that in 120 chars, I don't like multiple-binding `setq' and `unless' (not `or') is prefered at ELPA, I know from submitting, so I'll go for that. Writing compact Elisp is hardly going to be more standardized, less error-prone and more relaxing to write, but sure, it is shorter. Now, see the complete description above! As you see, there is nothing controversial there. It is arguably a very sound approach. Let's see it in - how many chars? Actually, if anyone can do it _at all_ I'll be impressed. -- underground experts united https://dataswamp.org/~incal