From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NOR01-OL1-obe.outbound.protection.outlook.com (mail-ol1nor01on2085.outbound.protection.outlook.com [40.107.224.85]) by sourceware.org (Postfix) with ESMTPS id A44D83858D35 for ; Tue, 4 Jul 2023 15:13:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A44D83858D35 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=westcontrol.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=westcontrol.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UL9Ri8Pvl7v1+/hGEdKeGsYSHhWEdQp6VQM3LCnTbpZwnqdGK4NqINX7yqn9T3MdMIWhOwNTxoJOAl6EqNJoECLsYnDijA30ATEx78bkgMGKDEg6/MRCCUCXZs2f1t4F/EVFiFTelwK1l4WQ0lAhexdV0NEtQvXLPV+KaFfepk/o6iEdwXvlEsqCJ921Y4iibF3ZqJDk5S1KAO8pVp+WodxeC4Mg3IuGb1gkQQPNO9fLzb1zc8Bh72jc2CMu6wevuU/N0RpQUNf6zfw0ao0Otb/G/OJ+MRzRNGYYm5FEbpRZ6QzqPQHzDwBc7OI6bhj74Yl2uXgxiQVEuceFIO8vxQ== 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=DTdslXLF+oS2XAaFC4KoBSdDQlniBflgVclNzLPq90s=; b=N9X/Gm2QtaGkiw4j+huro5EGPGWTK98hxCf9nbmurZiJLqkE2/xy5sqqVah2M1XwfWhSweRfqS/7qvOXIDzOMTg5LYsQOM1o35Pv6KCkTi+bb9rjDlGlqqLJmuEepnRPxM30TtVoM26uxP013YR3GBkYnw1lEv1ytVXlY+dAdNLkXzAcKrIB7VKRW7rNIFGhhGGTVxGKrknp/B/Pevqvos6vWdrcIsuLlUGGSWTdDi6LmZ/ag4uVq+AZQjSG/e8DcjmPqpjqXFsCKJ0Ha4zfwO0d3V7s+4wJyJPOS/1FrjhnLU85//K782PNiNyfwD1SdQYpfFBOfFJBZ0ThhTXtvA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=westcontrol.com; dmarc=pass action=none header.from=westcontrol.com; dkim=pass header.d=westcontrol.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=westcontrol.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DTdslXLF+oS2XAaFC4KoBSdDQlniBflgVclNzLPq90s=; b=dWWB77Xmyh3tq/rmXBel88/MA4gu3DpAoyFMNwv7qqHHLYUmYZ7GpgVeZIUnqhlMqTT3W40x+VVduuWrsMi3YvXCjPoFo2XLzQ1wveAaPg4kSnUtsbWGtRayyZQ9Dg9subpGg6BUsGMaYHQjZ3axFzvuDD0MtUOGYXphAHVsBhz179hKxE6nNUBtBir7F/QBLj5QNEKqSSOwJPwYX+hScThwgaKkhV0lPf6q4TEkn1bjICTM/yT8Ge6CSrQreo9Jhl/+D592IKn3gbS7QoohOu+BVtgsDaYyH9Y9Km4Z5iDqrrRlTmzrSCoqahNuQW63LebNm2XskEwPcATu2qPkmw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=westcontrol.com; Received: from SV0P279MB0233.NORP279.PROD.OUTLOOK.COM (2603:10a6:f10:b::13) by OLAP279MB0040.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:9::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Tue, 4 Jul 2023 15:13:43 +0000 Received: from SV0P279MB0233.NORP279.PROD.OUTLOOK.COM ([fe80::b999:1d1d:3eb1:b8f1]) by SV0P279MB0233.NORP279.PROD.OUTLOOK.COM ([fe80::b999:1d1d:3eb1:b8f1%7]) with mapi id 15.20.6544.024; Tue, 4 Jul 2023 15:13:43 +0000 Message-ID: <007e332d-99a2-516d-bdf6-ab929a6352de@westcontrol.com> Date: Tue, 4 Jul 2023 17:13:42 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: wishlist: support for shorter pointers Content-Language: en-GB To: =?UTF-8?Q?Rafa=c5=82_Pietrak?= , Jonathan Wakely Cc: waffl3x , "gcc@gcc.gnu.org" References: <439affd4-11fe-de80-94c8-6fc64cbf76ec@ztk-rp.eu> <21650b1b-1d2e-7929-3105-b8aaca629272@ztk-rp.eu> From: David Brown In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SV0P279CA0026.NORP279.PROD.OUTLOOK.COM (2603:10a6:f10:12::13) To SV0P279MB0233.NORP279.PROD.OUTLOOK.COM (2603:10a6:f10:b::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SV0P279MB0233:EE_|OLAP279MB0040:EE_ X-MS-Office365-Filtering-Correlation-Id: 5dfd3ebc-2f9a-4ae9-8a57-08db7ca14180 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3t0kQz3uho/Ii6AVAOKle7YXn6q1RjUOyADlVnJnMTDnU0LnLzXa7yFCSKA4r/5qB43w1KBLzX41harmtIHbQkr8CKAQ8Fz2Br2DZ4LMeUyX0kwt8dRtCCQzlvTV+r+Yd/O6MTnMia9hrHlA+pAKJz7Vq0cxXEc8V4/8ChdzmHYJ0m/Mu/Gt/GQjtgP/+ThvGXSkP8ZVqYcqHyZK0O6b0BUJHOdRkSRXi2rt4W4ND8Voldxu8yJ1TfX3PzOrkLx/Qc/9B157HNw8gywwTJQa8BHgt7oFaoqCZuVqfp2Iv17crzPtkVQD8QWsstWTUQNOA7ZBOVIEVnu7+boTCrSpoXBliuA0FPxt1TQUdLtbMQZQorrvY4Xww0SuxJMIgAh+rKDdoL4CYq9SkAC6l22iaA/wpICuUXYzvWPFDUCq2ao3gTkAobaK7AJxFAN71XlX4thHeqQD6nEJ8VQYiWbyYvjg7rJQPyMneUuY29CwSMcCgBogjOqr3wGQnA142jWuVtUMlH3iNHAKmamIiQlxdelo/pDsptE6xC/6Kae5IRk8Ub9WzK7Zd6X4b3/FL7rRaUPvUlVA2YasZVR8ZvlKf4yFHO04wJaqlY8A5sQYfcLn9g4u2GLoRAibS4I2GqxpU8hXQddVY6tgfk8mNm44sg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SV0P279MB0233.NORP279.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230028)(4636009)(366004)(396003)(376002)(39840400004)(136003)(346002)(451199021)(2906002)(41300700001)(8676002)(5660300002)(8936002)(36756003)(31696002)(86362001)(186003)(2616005)(26005)(478600001)(6512007)(6506007)(31686004)(6486002)(53546011)(316002)(66476007)(4326008)(66556008)(66946007)(54906003)(38100700002)(110136005)(83380400001)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dWh0Z3hyc01YcTh1bXNYSXRwZmtYdUtBbDR0UHdOUDRwTGo4VS83MjhxcEU3?= =?utf-8?B?a2U5U0ttalZrOXJTRXh3T1ZkYi9MZ1lQdWphZTVTY1JKUnRQeW9uVm9NWjFM?= =?utf-8?B?QUtUNUdmemIwckZ5cXpOQjlUOEFFTDdNcEkrLytMd3dmajFtWnE2RG9JZEZa?= =?utf-8?B?Wm9ZZXFVTlA1MUcrTkZER0xPcGtJL05UTTVEZ2IzMEZUOXdFVDBubCtTeitS?= =?utf-8?B?ZXl3K0taQyt5UDIyMDcxS25tZnlvTjFlRFlQL0tScXo3OTJjazQxTFpxOGly?= =?utf-8?B?Qzl1YmViblBKRStrZ0E0S2hNb01VS1cwTUUwMHNZbDNKOWFWUHdWMmwzN2RP?= =?utf-8?B?Zmp1TDk5UEExbVBaQWVGUlZRWXJPOXpWZmVRTUVyYWZYR091UTNGVUtUdWxp?= =?utf-8?B?aldOM016ekw4T1ZWUHcvTDhRdXI5enlVNkYzMWh4UllWN0VrUlNkNEZyRCs0?= =?utf-8?B?S0dWWG9WdmFQVGtGV0xOdkt1MmlGQlNGTlVLcnZydWltRVNxeDZkS0dvbnRu?= =?utf-8?B?ZGdHT1FJWlFncXVWckJCMmw5T25hTlBLL21yRlRzYkNVR2VxTXVCNHdZYmJz?= =?utf-8?B?UXprYUhhRTJxMlBSQmJ6MDArMnppaHFSNjc4YjZSUVFxUzRlZlhUVXIySDhq?= =?utf-8?B?MmdFSjg2SlBwbUVGVzRrbW4wNk5DTUtCV2FMU2xDL3phNjgwRDgwMlE0b1Ru?= =?utf-8?B?cGZ0aWprODd6VU5NeE1PNm5ZOXQ3R2lTT3dteDFQTFdEQlNvWFE2cko5WHpO?= =?utf-8?B?NFJ4Q25KZnV5MGZ4ZFVCNXZYTGQ5NWRjK0cvb2dVd3I0QjhmMlNIMkhCblpV?= =?utf-8?B?djR3Nng4T09GSWN3OG04NWRVNzFSbWxVTTBXOXJEYVJINXl1Qy83ZGZ4TkZi?= =?utf-8?B?a1lPMWZvL0NpT245NWE3M0J1enkvTFlmR0ZYK3daZnU0TkpHcXh6Ykl4U0Zi?= =?utf-8?B?bWliMTZWQjJ3aDhiamx3NVNXQkllNmtLU1R6ZmV2M0dERllkcTZEN0FDSHRM?= =?utf-8?B?dEw2UDVRU3JiZVJXaEtybjN2d2wyS3B5dHZJTmJBOTFaMjYxR2wzb2pTQ1lz?= =?utf-8?B?cWFLYXI0SVYxK1Zma0drNE4rZVB5dWcrNjIvT2gvTkQ5anNkVE5aMXpwWFFQ?= =?utf-8?B?MmJWczJQSDg3cEZzUVJwQWpaVm5sMkxjenh6bGtyTGdCU1QrRm9MS0prS0Vy?= =?utf-8?B?V0UwOHJYdDV6SHV6b3RWN2FIVkU5TldxeW9HNUZYbzNRTGFaeSswdCtvRDVz?= =?utf-8?B?WmsyYjB3Znd4K1hRSXV5U1ZYWWNoTDJ3aFVqZFhacHplZUMyTSs1cUxWSEJr?= =?utf-8?B?WllSek1NSWdqR2d0Rmk0YlBCekZYdDJ0S2pndnFCd1IvM1B4K1E2RTlrd09I?= =?utf-8?B?eWs2dkhCUTQ4SjZLMmYyUjY3QWdBWFgzSk9QYnVlU3hRbUMrWTVtdmU2TXJW?= =?utf-8?B?R2NuaXdBU2YxRUttMnkranlva25Bc1BSVnhHN2lYcUlxWkdENm1SUUFZazQy?= =?utf-8?B?SFYvRytPc1JvaFBKNFZDeHhYT1lhWVdsZ0Z1eDVXWDFqeG5RSHcyemQ5dnFZ?= =?utf-8?B?R0hXd0tIdEdtTDU4TW9jRk5KZlRlWDZzc0gxZk1yU1VsamduaWpxN1ZTT3kz?= =?utf-8?B?M1loOWVESldya2dSV1VVSGY0K0s3RG04azlZZ1BXVVN6dFZUS1VORjRkVSto?= =?utf-8?B?Q0Zmb3k4akVyTmxyRjRaQTFoRlVrMnBNVmtwOG8vTzArck5ERk9vVklrZU01?= =?utf-8?B?cnRCK3hPS201VHd5djFKdmVNTG5kZHdDWlJzK2pDeHFUdHFEZmhqL0FMSStB?= =?utf-8?B?TVBmRlpYWTBZSEduaC9VNjAwR2JBa3d5S2dHOUNObFFIcW9yN1RQbFNhUTZU?= =?utf-8?B?SnBPb0hoU0twMUdITHJ1eEExT0pVTVlHblZ4ME1CTzF4c3hrYm8vQzBpeUVn?= =?utf-8?B?NGRqNnhTWkhZZDUrSnhxaWJFY1pMNE1hazhsc0RPNkgxWnNoc25Zck8rUzVR?= =?utf-8?B?Si9sd3d1MU5FWVNIQ2l5UmxBWEZhZ0d0RC9rUkRocGovc2xUM1ErWWsvSnlE?= =?utf-8?B?OTJBRjVRRzlpcW1KeWd4OUJYL3BUOGhQa1ZCK3BGczFaQ2NMWTFtc251Nm42?= =?utf-8?Q?eMOHvhaYdg6KgAyPh7Lxr5ljR?= X-OriginatorOrg: westcontrol.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5dfd3ebc-2f9a-4ae9-8a57-08db7ca14180 X-MS-Exchange-CrossTenant-AuthSource: SV0P279MB0233.NORP279.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2023 15:13:43.4538 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: c75fbd3c-42ad-4db0-9cff-972faf83ae45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8rdseaWN4dXazggUT8OgaoYGIIdQ+zoqjriATROYDxMoPbnAB3mdoIxNVzk0Kn+yJdau0jxX6DcTs7NMKCMFmQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OLAP279MB0040 X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 04/07/2023 16:20, Rafał Pietrak wrote: > > > W dniu 3.07.2023 o 18:29, Rafał Pietrak pisze: >> Hi David, >> > [--------------] >>> 4. It is worth taking a step back, and thinking about how you would >>> like to use these pointers.  It is likely that you would be better >>> thinking in terms of an array, rather than pointers - after all, you >>> don't want to be using dynamically allocated memory here if you can >>> avoid it, and certainly not generic malloc().  If you can use an >>> array, then your index type can be as small as you like - maybe >>> uint8_t is enough. >> >> I did that trip ... some time ago. May be I discarded the idea >> prematurely, but I dropped it because I was afraid of cost of > > I remember now what was my main problem with indexes implementation: > inability to express/write chain "references" with them. Table/index > semantic of: >     t[a][b][c][d]. > is a "multidimentional table" which is completely different from > "pointer semantic" of: >     *t->a->b->c->d > > It is quite legit to do a full circle around a circular list this way, > while table semantics doesn't allow that. > > Indexes are off the table. > > -R If you have a circular buffer, it is vastly more efficient to have an array with no pointers or indices, and use head and tail indices to track the current position. But I'm not sure if that is what you are looking for. And you can use indices in fields for chaining, but the syntax will be different. (For some microcontrollers, the multiplications involved in array index calculations can be an issue, but not for ARM devices.)