From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stephen Gildea Newsgroups: gmane.emacs.devel Subject: Re: (declare (debug 0)) Date: Wed, 20 Oct 2021 18:46:34 -0700 Message-ID: <108015.1634780794@pental> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="14464"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Oct 21 03:47:52 2021 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 1mdNBP-0003fE-L5 for ged-emacs-devel@m.gmane-mx.org; Thu, 21 Oct 2021 03:47:51 +0200 Original-Received: from localhost ([::1]:53650 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mdNBO-0007YH-Ij for ged-emacs-devel@m.gmane-mx.org; Wed, 20 Oct 2021 21:47:50 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:47492) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mdNAF-0006oV-Bx for emacs-devel@gnu.org; Wed, 20 Oct 2021 21:46:39 -0400 Original-Received: from tigger.sg.gildea.net ([99.65.78.170]:52874 helo=pental.sg.gildea.net) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mdNAD-00043g-8h for emacs-devel@gnu.org; Wed, 20 Oct 2021 21:46:38 -0400 Original-Received: from pental (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by pental.sg.gildea.net (Postfix) with ESMTPS id 317DA267B2D; Wed, 20 Oct 2021 18:46:34 -0700 (PDT) In-Reply-To: Message from monnier@iro.umontreal.ca of 20 Oct 2021 08:33:34 -0400 X-Mailer: MH-E 8.6+git; nmh 1.7.1; Emacs 29.0.50 Content-ID: <108014.1634780794.1@pental> Received-SPF: pass client-ip=99.65.78.170; envelope-from=stepheng+emacs@gildea.com; helo=pental.sg.gildea.net 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=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.23 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" Xref: news.gmane.io gmane.emacs.devel:277485 Archived-At: Stefan Monnier wrote: > In my experience, macros whose args should not be instrumented are not > the most common, by far, and (&rest sexp) is sufficiently short and > clear for them. I don't see any need to have something shorter. Then how about the following update to the documentation. This removes "0" as a recommended shortcut and instead adds a "not instrumented" example. diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi index 323130f237..7d67cc3af1 100644 --- a/doc/lispref/edebug.texi +++ b/doc/lispref/edebug.texi @@ -1216,9 +1216,7 @@ Instrumenting Macro Calls @table @asis @item @code{t} All arguments are instrumented for evaluation. - -@item @code{0} -None of the arguments is instrumented. +This is short for @code{(body)}. @item a symbol The symbol must have an Edebug specification, which is used instead. @@ -1528,6 +1526,16 @@ Specification Examples It may be easier to understand Edebug specifications by studying the examples provided here. +Consider a hypothetical macro @code{my-test-generator} that runs +tests on supplied lists of data. Although it is Edebug's default +behavior to not instrument arguments as code, as controlled by +@code{edebug-eval-macro-args} (@pxref{Instrumenting Macro Calls}), +it can be useful to explicitly document that the arguments are data: + +@example +(def-edebug-spec my-test-generator (&rest sexp)) +@end example + A @code{let} special form has a sequence of bindings and a body. Each of the bindings is either a symbol or a sublist with a symbol and optional expression. In the specification below, notice the @code{gate}