From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Po Lu Newsgroups: gmane.emacs.devel Subject: Re: Thoughts on replacing macros with static inline functions Date: Tue, 15 Nov 2022 21:49:14 +0800 Message-ID: <87tu30fhut.fsf@yahoo.com> References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16543"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: "emacs-devel@gnu.org" To: Brent Pappas Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Nov 15 14:49:56 2022 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 1ouwK3-00047X-M6 for ged-emacs-devel@m.gmane-mx.org; Tue, 15 Nov 2022 14:49:55 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ouwJl-0003oh-41; Tue, 15 Nov 2022 08:49:37 -0500 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 1ouwJc-0003iL-5P for emacs-devel@gnu.org; Tue, 15 Nov 2022 08:49:33 -0500 Original-Received: from sonic304-21.consmr.mail.ne1.yahoo.com ([66.163.191.147]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ouwJa-00072I-1F for emacs-devel@gnu.org; Tue, 15 Nov 2022 08:49:27 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1668520162; bh=CDu/wIvbuzbXbglp/3tT1NqEVwssq0c03ndHi974TAc=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=K+jCRXOWbaDFAUD+AWH91bVpCVtfHIJQzwczLcau5F/C1jx7znuJDX5T+HoJuBaH6yYwkgo4+h59pjG04pUqlCpZw7Aw3anktnF5AG9lwQeutYABAoa5MqN9Vc0/uxw1HAX1Q9eCpYxX98uijjN1598NdP/zvIfNTeUWt5sw4fNK2lOr0zRY/Nf6NGvMYIrPr8cbA7QY4hEnmyvoAyu+NIAtleQDegk0Rcjaw6NGhfc0D+VhDGrROPj39ToIUam6PHM6vi3piIWfp+SxAv+F6iMyKb9G5cgboZBNnIyRF1I2hMLI1ac2dHG/ioMOo04KysHk3sMyLmNdkR+XfCaAAg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1668520162; bh=hJvc+3Bg6CR8xRg3E51FzvakqavTHGLQ90CVJVVAK3w=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=rOjva0iEzpnaSj7whCD1z92A+gURdDC+TXqHHiQQEkmNPB08yig2niHOP5WM9sVg3VzWA5omtnfYB3JVPCZXO30MryC0nifbucDrK1EMrDI9aL3pGq5hPQtB7Rx/zQG9rrNo7aX5piIxtcWFNsGGLfJGhjdxKXJDtztLXv4SbJCqL7yQopVfCS9vYA9tCKkW9+uQIP5uNdIdGYcG5UR0fcFceL+HCV2XQ2NxApvZDJqM/kCXmpsr1Vv6K7bmSGKDR8czm5eXaxXy/+Pm6CtBRFFY4xJEpd4LD0omWPX7F4sY4jtHkFuUXInrvN+nYHaz5eNMsuzccADSU/ZEshlPNg== X-YMail-OSG: m3oOaucVM1lYf8StAXrmWSu2MvAVgwG2yED4hNHXehIysR._g42WyGUkkgEBBOS d6K9w.tlJ6eJWWyh0w7.1JPrhx_WIkMFwJfUPy3Lr3LqFo_CbNY3PNci0.ztm4YVhNGkatS6I3Ir wJtASIRbnGK.706TvHVCnwtwwa0C80c78fKWhRKqe21Ls9vnnIiPPhM0ai7XX.hUGRtSJzD6TfwI JEMCF_ev2KY32Y0t3SFBhosYWGu0ASDV4CSNfgZJZoMaUjkPoCFVfd..NhwIImyprjSF0J2S19eP NFoILDRQt19OLrGWkeLlfhd6HLfyKSk_BOO3yyfegmxAEKHiOIVASAgayIheahvRN7ZRtUPaydLK 4eef5T_m7ldUhSvjr7ZaRqlkBiW7.ZymU7cw9U3EHPHC4Qa13OudNBCxQy0f2Ph5aH_jphDbfRRG zc4p3OHF2JSTQf6AzwqD6_S1aY4zjCk03_irnh28OTA011pLMFq2aXRwbO42l5AdZueCaEkbX1wv wa09za7xfhHh7BEv1uH3GplSwbH9unPXIJpcwhabuNV9QDLLLYDTw47ssSsJx4YjGL020Yy49Kb6 ZfLJGCnT3nqpNpAcSO6n9td_Yr_Ro2wywnduZ2oT6LZ._Hm7OfWOlThwWYug.V4_F.bbmoNvNG3i h0SoBShwXMjrPshcxchWi6rFE9twQ7syMV4ULQ4wLt8.sjInrUH1vtffZulksfLFlF6vTcHv0f9R o7xwF13ho24Fkd2RCPdFLzKLib44qjUHALY_gTHBE.wK2zPEzFWaVo88bXRdqcvCco1hYGbgOv5U Mu.A4Xuv78uWmk9iT7Ucu3iw77atTy6m5wr.Ndh2KW X-Sonic-MF: Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic304.consmr.mail.ne1.yahoo.com with HTTP; Tue, 15 Nov 2022 13:49:22 +0000 Original-Received: by hermes--production-sg3-6c8895b545-25cjq (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID b5e0c055cd10baebb8d96b6df052ab8c; Tue, 15 Nov 2022 13:49:19 +0000 (UTC) In-Reply-To: (Brent Pappas's message of "Mon, 14 Nov 2022 18:05:15 +0000") X-Mailer: WebService/1.1.20863 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Received-SPF: pass client-ip=66.163.191.147; envelope-from=luangruo@yahoo.com; helo=sonic304-21.consmr.mail.ne1.yahoo.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, 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: 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:299848 Archived-At: Brent Pappas writes: > Title: Thoughts on replacing macros with static inline functions > > Hi, > > I noticed that Emacs code sometimes uses macros where a static inline function > would appear to work equally as well. > For instance, consider the macro PAD defined in src/xsettings.c > > #define PAD(nr) (((nr) + 3) & ~3) > > I imagine this could be turned into a function like so: > > static inline int PAD(int nr) { return (((nr) + 3) & ~3); } I find that rather ugly. PAD is an example of an extremely trivial expression that should really be a macro. > How interested would the Emacs community be in porting macros to functions? Not very, in this case. That exact PAD macro is not only an idiom used throughout the Emacs X11 code, it is more-or-less an idiom of the entire X Window System, copied around and used extensively throughout the X sample server, Xlib, and C-language clients. In addition, we try to avoid undue changes to working code, so giving carte blanche to change macros to static functions is not something we really want to do. But if you want to do that to a few big, ugly, macros around an area in which you are making actual changes, please go ahead.