From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#19371: 25.0.50; doc of functions and macros defined in macroexp.el Date: Sat, 03 Aug 2019 13:50:27 +0200 Message-ID: <871ry2lb7g.fsf@mouse.gnus.org> References: <1b8c129f-19cb-4088-ad8a-4eb0f9df6a54@default> <87v9vfl1d8.fsf@mouse.gnus.org> <87blx7jiz9.fsf@web.de> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="36311"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: 19371@debbugs.gnu.org To: Michael Heerdegen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Aug 03 13:51:17 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1htsZ8-0009Gl-I7 for geb-bug-gnu-emacs@m.gmane.org; Sat, 03 Aug 2019 13:51:14 +0200 Original-Received: from localhost ([::1]:39490 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1htsZ7-0007l1-Kt for geb-bug-gnu-emacs@m.gmane.org; Sat, 03 Aug 2019 07:51:13 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50143) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1htsYz-0007kt-Ef for bug-gnu-emacs@gnu.org; Sat, 03 Aug 2019 07:51:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1htsYy-0005Bm-7j for bug-gnu-emacs@gnu.org; Sat, 03 Aug 2019 07:51:05 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:49568) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1htsYw-0005AS-Kz for bug-gnu-emacs@gnu.org; Sat, 03 Aug 2019 07:51:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1htsYw-0001nh-Ha for bug-gnu-emacs@gnu.org; Sat, 03 Aug 2019 07:51:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 03 Aug 2019 11:51:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19371 X-GNU-PR-Package: emacs Original-Received: via spool by 19371-submit@debbugs.gnu.org id=B19371.15648330386891 (code B ref 19371); Sat, 03 Aug 2019 11:51:01 +0000 Original-Received: (at 19371) by debbugs.gnu.org; 3 Aug 2019 11:50:38 +0000 Original-Received: from localhost ([127.0.0.1]:58389 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1htsYY-0001n5-FM for submit@debbugs.gnu.org; Sat, 03 Aug 2019 07:50:38 -0400 Original-Received: from quimby.gnus.org ([80.91.231.51]:46028) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1htsYW-0001mw-AR for 19371@debbugs.gnu.org; Sat, 03 Aug 2019 07:50:36 -0400 Original-Received: from 77.18.62.220.tmi.telenormobil.no ([77.18.62.220] helo=sandy) by quimby.gnus.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1htsYO-0003zX-Tv; Sat, 03 Aug 2019 13:50:32 +0200 In-Reply-To: <87blx7jiz9.fsf@web.de> (Michael Heerdegen's message of "Sat, 03 Aug 2019 00:33:14 +0200") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:164436 Archived-At: Michael Heerdegen writes: > Lars Ingebrigtsen writes: > >> (defun macroexp-progn (exps) >> - "Return an expression equivalent to \\=`(progn ,@EXPS)." >> + "Return EXPS with `progn' prepended. >> +If EXPS is a single expression, `progn' is not prepended." >> (if (cdr exps) `(progn ,@exps) (car exps))) > > That's described a bit confusingly: AFAIU EXPS should always be a list > of expressions, and when it's _a_list_ of only one expression, `progn' > is not prepended and the expression is returned (and not EXPS as your > text suggests). BTW, compared to that description I find the original > version much better (simpler). Yeah, the doc string is now misleading. I've rewritten it now as: --- Return EXPS (a list of expressions) with `progn' prepended. If EXPS is a list with a single expression, `progn' is not prepended, but that expression is returned instead. --- >> Uhm... I have no idea what it does: >> >> (defmacro macroexp-let2* (test bindings &rest body) >> "Bind each binding in BINDINGS as `macroexp-let2' does." >> (declare (indent 2) (debug (sexp (&rest (sexp form)) body))) >> (pcase-exhaustive bindings >> ('nil (macroexp-progn body)) >> (`((,var ,exp) . ,tl) >> `(macroexp-let2 ,test ,var ,exp >> (macroexp-let2* ,test ,tl ,@body))))) > > You understand what macroexp-let2 does? No, not really. > It supports one binding (a var plus an expression, specified as > separate arguments). macroexp-let2* supports a list of such pairs > specified as BINDINGS, similar to let*. > > The naming scheme `macroexp-let2' vs. `macroexp-let2*' is not ideal: > first, because `macroexp-let2' doesn't support multiple bindings like > `let', and secondly because, if I look at the use cases in the sources, > most of them just want to establish multiple bindings, but parallel > binding would suffice, so they actually want to non-stared version of > macroexp-let2*, which is not macroexp-let2 - AFAICT it doesn't exist. Yes, it's confusing. But perhaps you could propose a doc string for `macroexp-let2*'? :-) -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no