From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Brent Pappas Newsgroups: gmane.emacs.devel Subject: Thoughts on replacing macros with static inline functions Date: Mon, 14 Nov 2022 18:05:15 +0000 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27218"; mail-complaints-to="usenet@ciao.gmane.io" To: "emacs-devel@gnu.org" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Nov 15 00:59:04 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 1oujM0-0006r2-Cf for ged-emacs-devel@m.gmane-mx.org; Tue, 15 Nov 2022 00:59:04 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ouiiw-0002YN-AY; Mon, 14 Nov 2022 18:18:42 -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 1ouieX-0001yn-VL for emacs-devel@gnu.org; Mon, 14 Nov 2022 18:14:10 -0500 Original-Received: from mail-mw2nam10on2041.outbound.protection.outlook.com ([40.107.94.41] helo=NAM10-MW2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oudpi-0005jQ-2z for emacs-devel@gnu.org; Mon, 14 Nov 2022 13:05:23 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fk8M467aHMhT10xrj4eC+hkkAJaEztPj+9i06oHcmv3rONtfcCrQWSxevJUUKkArdEX+wRXhBK8knVKaJzrSuEsiiHXnL4DtC4EHhSjF7nZMDYgeovCTrS8s6bsW9mHuphjlF+xbo11lZUVME0x8qGIP9pg2G94+iGqYLULCqr65W2m5cWYYGqsTAFm/hCNSlCmBmmklm65ggmG9nYTVZBOxCkJLrCHEs0vqhi5AfKIe7MuSeJO1rUGG4KQl/G6Gok1CeTZf7iVAnaFmEXBYIJOW4DKkZ8zRKfVf//6IancW1RTaXudVhgod0qMdi9lxoV6mu9oT2qnLiziGNW1a4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gZ9aYzxIitHsVZCzP/9PouDt2DtdEL/DfgATeMrvMZM=; b=loZa39vCOlImeN0svpENepWSjcr1lGEPXZM8zSBmPSOseYhuWPKfrAuZixJUKthrpcYk2y56nKxAOdNDvBY6D3gBfFdz1eOI+VN+EQ6SKyovasRp++DHBo5/j28FoF7yc6M+2BrWU7jcClZPEau3piaAmX1IKbTvVxZgmyyfwYIgxP8S/I9zwAfTSeQc4pMWmEDU/A5LkdqMMeMs0WQjOWP0EGxs+Sd2YrjS2cncvaNeD1ZJiKGdha2eAVf8oVMFeKkxsyLsjmw/0lPWral3DCPpu30/zbFHHaKPY+qsJoAa5me+qEnrIqm0wkOBwzZjaByrEfzCKt4B3GknTGg8EA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=knights.ucf.edu; dmarc=pass action=none header.from=knights.ucf.edu; dkim=pass header.d=knights.ucf.edu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=knightsucfedu39751.onmicrosoft.com; s=selector2-knightsucfedu39751-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gZ9aYzxIitHsVZCzP/9PouDt2DtdEL/DfgATeMrvMZM=; b=Hr2i3ARRGbI423Vzp4vJxTpPYHZJ+ncF7jZVzF7AUtWOlryTfmBSmcRjl8LlfMMWF+RPqV/YbJHo3rdRLtSlgKsaAUVo/cPpYbH+guE71c5g8UIxh/SaZhSog0KiNSs425dsKADuUvi+BbV1kA6nQ3t8kdngXu/rXQM5Xqah0uE= Original-Received: from BN7PR07MB4195.namprd07.prod.outlook.com (2603:10b6:406:b1::33) by BN7PR07MB4883.namprd07.prod.outlook.com (2603:10b6:406:ef::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.26; Mon, 14 Nov 2022 18:05:15 +0000 Original-Received: from BN7PR07MB4195.namprd07.prod.outlook.com ([fe80::4f58:10e9:ad95:6f54]) by BN7PR07MB4195.namprd07.prod.outlook.com ([fe80::4f58:10e9:ad95:6f54%4]) with mapi id 15.20.5813.017; Mon, 14 Nov 2022 18:05:15 +0000 Thread-Topic: Thoughts on replacing macros with static inline functions Thread-Index: AQHY+FJhv/N3KSIUt0mI0EeEG7RD0g== Accept-Language: en-US Content-Language: en-US authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=Knights.ucf.edu; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN7PR07MB4195:EE_|BN7PR07MB4883:EE_ x-ms-office365-filtering-correlation-id: adb65a32-1d2f-4f40-2d57-08dac66ac871 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: b+uuA5VTjjyUt31jPQGPoIrwvqYmhmB1TVP2L2ZJ+0W21Q0Wj7OoY7z7EqvG6EwobKeutLo9/z4p0UIXw4ZIdfKh0zvSrs3CCmdntji0gbovsQ7Rv+GRqbjEOEHPQdfQL8uLKoCKv2OCnmsrZCKdr+pCYOS5aVIHOH4NQBx2FacxUi477hd/RnD3iRC5o5oCSveZgH9Unjrqk5MWsoWsQ9MJH4eur8dS6Dn4yVruHsnuGx952sSdi4urQ4hDJfF/Id/SeKPAsnJWYhE844p3Ud+ks03MtT4NUWLqwpa1zuS4sKIJOM4vvGtkqZnYPFEy/hbKOL0D4Q8xKaBfs/cMCbb3btXtDk2jtdAzW/95ZsJXqKXCgu/BEg2vpWEcimrEBViEkpxUhQAOPJsU58P+XLF2tiuHJtn8h35nBuSsOnemEbfj0KRUW9PMCRk2twSLqwI7aLR082SVRzgXM/ql7e8ALNl4ayW/WqXw1V360eWCSrcyLhkUQ98UoamOXEn0GkLzqSex08NRXVdP/DxLJtEvuHopBBRHEWkPbi2Z5NZ4x1PfcDqP4dyIn1AKc01r+dKSqMP4hzBcnnlMMicZVt8R5SAUB9pw377IbgZId3sumbXyDhp4/QVpgiF0dW8DV2L6UU9peUDAfHN3W2UFvfNub0SqOSKUm3biOIIJOVVbjqdMHV5EEoMsJWALrq7Qc3avgt39h+pjPL98wSwC59UMHBaBUaoW4aCT2fF5cu0Nza3MnoQExgkX8hX1A BE4 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN7PR07MB4195.namprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(346002)(366004)(136003)(396003)(376002)(39860400002)(451199015)(786003)(38100700002)(38070700005)(64756008)(41320700001)(91956017)(66446008)(66946007)(76116006)(316002)(8676002)(66556008)(66476007)(41300700001)(122000001)(6916009)(26005)(9686003)(6506007)(7696005)(33656002)(83380400001)(52536014)(55016003)(186003)(8936002)(4744005)(86362001)(2906002)(71200400001)(75432002)(5660300002)(478600001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?t2bFl3B2KDTJwBn/k3amkMWE7SnyWAts61Lc0P1NZLBo1CUP9riUbC7m34?= =?iso-8859-1?Q?LKLElpzipYJyI5EVRL6HwQlpAZzl5/ML+jIlh8ApP26eTBAh+tNN39wi7x?= =?iso-8859-1?Q?HD75yMvPw+5ctTk8mdNu89suzf7LK+LgihClgnOHfW/tBXJXUl3HzoqjpP?= =?iso-8859-1?Q?9+lqF5Uc0XM4nwvPs5l6dDWV39EsXifOXwVCyxapbVLRln68NYolVIHdo9?= =?iso-8859-1?Q?MKueQqv+d32KmD2NjBOV3u8JVBU1X1L6F5v93yOfAbycJ1zTg4NhfWbzEV?= =?iso-8859-1?Q?7uWg4jE4XcZ1z+EIbvZE7FCMA+kUfP+UzjBIsj0bInimvfdhUfG32yZVV7?= =?iso-8859-1?Q?0RuQYCqp8uuMZOtAPpzaRZKkVuIorzt+Q3Xj05gXxNr6mTbHpZ3JNoseGi?= =?iso-8859-1?Q?FH1XrMp+6rHSkcq1pwSvzKa+nw4WOIC9H9QRixc8S4NwvMqH0J+4eAMLTk?= =?iso-8859-1?Q?vKs4Lp30xDAEj0XcXsT3yLDwRYLlttP+PcDDA7ag2vDDWyK5zxWzx3RzHL?= =?iso-8859-1?Q?6dbihF4/9mkuOV+BAsmfbTl/l4qoW+2xNIkhbmR/FJ77JfMxUDAuCE9EEH?= =?iso-8859-1?Q?aw2kk2woqukyZk+vOseZ2RKfvvuHy5wO4C3PdupoPED9K2hZaXsaYjvrG8?= =?iso-8859-1?Q? X-OriginatorOrg: knights.ucf.edu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN7PR07MB4195.namprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: adb65a32-1d2f-4f40-2d57-08dac66ac871 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Nov 2022 18:05:15.7571 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 5b16e182-78b3-412c-9196-68342689eeb7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: f10QWUekDIUR2ymUnEB58E/l/wpchNQTT/3Z1uHpTVTBPz31eWZSpGE1tdunBQmG61VHoymVh7GVbQCkoJ8YhqlJIB7Aymo76k4QFxyDdFs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR07MB4883 Received-SPF: pass client-ip=40.107.94.41; envelope-from=pappasbrent@Knights.ucf.edu; helo=NAM10-MW2-obe.outbound.protection.outlook.com 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-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:299783 Archived-At: Title: Thoughts on replacing macros with static inline functions=0A= =0A= Hi,=0A= =0A= I noticed that Emacs code sometimes uses macros where a static inline funct= ion=0A= would appear to work equally as well.=0A= For instance, consider the macro PAD defined in src/xsettings.c=0A= =0A= #define PAD(nr) (((nr) + 3) & ~3)=0A= =0A= I imagine this could be turned into a function like so:=0A= =0A= static inline int PAD(int nr) { return (((nr) + 3) & ~3); }=0A= =0A= The reason why one would want to replace macros with functions is because= =0A= functions are often easier to reason about than macros.=0A= The GNU C Preprocessor manual even has a list of pitfalls one can fall into= =0A= when programming with macros.=0A= So it may be worthwhile to turn such macros into functions to prevent=0A= developers from accidentally falling into one of these pitfalls.=0A= =0A= How interested would the Emacs community be in porting macros to functions?=