From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam07on2040.outbound.protection.outlook.com [40.107.95.40]) by sourceware.org (Postfix) with ESMTPS id 796E83858C2C for ; Fri, 15 Apr 2022 18:10:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 796E83858C2C ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UXnP4QJPK60V1vXFg8ievqibkoNbiV8m85E/QOpljgcyuS1CdQZ4yI6spXfE3bR/yAjuJIGTa6ysNlRbSOG4SQI3DspqwbjGmcZ3Ip2QMds8WdWrVtsNgxjl+zSi39Ce4NsV96sw7Wfgc496M+QKxD3fpfhzsmRxxzp/5h4t9g0nOymxcIExmWkIE4EKKqqlEdemt0deMKWj09X03G6cvSpu9W1NmpaSf+ekmiSQNC1r1rEORnYzHeU/dV10lNtFrsMzU7wocq/UlxhvEcNTGiJnIRMbPnRNcIezBQxtqrJcnEAANEWyTmJ9Rj3DIINYzB78L9U1tjz50dHCEn6ydQ== 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=cANM5oP3PisWDym2tHEVhaWswS/AaJDkpI9UskMvNmI=; b=n+KVI2ejq77DG7O1dGFIL7GWZu4ZOufZmyomU0dIi3/NXKA+FKX8Abtti9cCQwaVp0Qjd+mLF54tTEF4jhHxAVv+FAOXNyniegssi5IHHpXV7TYfRxgIL9bpU8akP5JNMXRHA003MK3ufJlWwpt/lElP7yy0imaW1//F0hVXnaBhAf9pvcTs4mM+Jn1iWOwIWySY/+utGU/bEJ9CWeQekaO0nhuc/0yLTS15z4SrbwnUFjE86uNdIBWTcOKtz7jJhLeW2a+8dCmB8Cf9Z8H3HfBFsPxOXaBNuILOC4djXRclYgOkrkBSDFRz5xAmcb8KsB+bFVzjPptU9Btq0YfmKA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none Received: from PH0PR12MB5452.namprd12.prod.outlook.com (2603:10b6:510:d7::16) by CH0PR12MB5268.namprd12.prod.outlook.com (2603:10b6:610:d3::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Fri, 15 Apr 2022 18:10:53 +0000 Received: from PH0PR12MB5452.namprd12.prod.outlook.com ([fe80::91ae:2b15:fc7b:23b1]) by PH0PR12MB5452.namprd12.prod.outlook.com ([fe80::91ae:2b15:fc7b:23b1%6]) with mapi id 15.20.5164.020; Fri, 15 Apr 2022 18:10:53 +0000 Message-ID: <1aa04e74-7fef-0032-5960-a3ab46b45288@amd.com> Date: Fri, 15 Apr 2022 19:10:46 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [PATCH 3/3] gdb/selftest-arch: Make register_test_foreach_arch generate arch tests lazily Content-Language: en-US To: Tom Tromey , Lancelot SIX via Gdb-patches Cc: lsix@lancelotsix.com References: <20220401130015.513187-1-lancelot.six@amd.com> <20220401130015.513187-4-lancelot.six@amd.com> <87o812z11i.fsf@tromey.com> From: Lancelot SIX In-Reply-To: <87o812z11i.fsf@tromey.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P123CA0496.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1ab::15) To PH0PR12MB5452.namprd12.prod.outlook.com (2603:10b6:510:d7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a9742775-db09-4f82-e9e7-08da1f0b4766 X-MS-TrafficTypeDiagnostic: CH0PR12MB5268:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: m/tbIy1DdNdEIYCs+zm82fUnZ56jwa+79WwzgXhKHmtsoLp29qB0uu9c5bVwtLVomzdro/oeeAjrHds9IA2EiMolusB726pskR9r0FG60uAqaFfgIrVPIy4ssSCyh/pZz4Qp/HZvlzvmns85iOZBd8wivZEE4+QSqBG00+yBBSX2bEZRkLlACD4TFauKohqmW/OX8HlOXKV4nzZm+/CRz+/rL+zERo285OJfH4o2r/3yQPZLlCZccYrxpKlVOlPMA9eYwKtdGrol61ncBMzeCxM0z+okZZ729AjGI+Bdt1IrpVoOnQFOUtlNM5XXjDjgtnKIMcWlC1wmf06JzRqe12sJzZ5mTQAHLGmVUmT8G5q/Ah+RsQbk3zzObrBq5HS+L/1ORzLt2od8WwXBS5PYyvGRI60b77Puzk3o9wAdVotz7q987695mqexmuC+e477X/PkHUdI6jNpb6zg9HyoJW96nhQzSXK+5gRujDagxPhKdDDWmWH86Sc85QeSVEYldg6oYpSWxuJpUMNVo7zEdgS3CKDYFeNeidyZ3sQ4mF01gjE9L+sR7F7UKoD2Qyp0Vw2D+j76xF//o60d8cGc5tZuMmiPEb+mBlcwkJS5CQdBUSOGpkYEFJioYgE11wKp3H6XcD3aKZsAbbwQJYiUOmbQRf/pQERKZHbTrI5NxBke6udP7nsw60pafBqMmgpPccrsbcUMK9PNSK1T88iFtjZRusYvgOG7WfTtU5eTEvA= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR12MB5452.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(66946007)(66476007)(66556008)(110136005)(83380400001)(8676002)(186003)(5660300002)(86362001)(316002)(2616005)(8936002)(4326008)(31696002)(2906002)(31686004)(53546011)(6506007)(6666004)(6512007)(6486002)(36756003)(38100700002)(508600001)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?KzRIVDlkQW1pdTRqVHBlbUZnL2U3OXpJSWk1VnR5QklXTGp3S2RsM0Y1ODRm?= =?utf-8?B?N3NsR0s5K0FZWDRMRkozbnQ0cm9hL0s3VTJsYk9TTEIrNEU2VWFsclZiNVgw?= =?utf-8?B?dlZsVnFhN1NpUmJteHdjcFBkSDd2dktmK2o3SFBnMUo5cVlKOVU3L1ZCd0c3?= =?utf-8?B?bXRPZldvSkQyRjZhSUZmaktZQW1Lb2FjSnZTaFFOTG9jQk9YOEt2a3dMdElz?= =?utf-8?B?WmJwNFNKY05WbzRIUTAxcGRqNFRKcWtJanhVQXlJdDl6Y1FJTWtmRlVwWnFR?= =?utf-8?B?aktSMWtTM3V6dHNPaTM0TFFKdjJLbjZKeXF3WFdJMUp4b0NJdnRmM1lpYTh4?= =?utf-8?B?VlB5aXFnWExVMVVOZTNYYys5b1Z5bEQ3UjQ0S0UrcG1MMHZrTHRhY0hhYncx?= =?utf-8?B?Z0hEUGptdmdrR1NGamdTNnkwWW02WURadUQ1QTBWOGNPWlR2Q0xrakVjdStj?= =?utf-8?B?NXpKcGo2RzNRVU5MVC80Um9GSTJJcjUvRzlCQjlINCtXczUyOUhSVFpiYVBx?= =?utf-8?B?SFh4WTJiK3VVTXRKZDU2SGEzWUp6TC93UVVxZUkxZEJjdUlHbWQ2V1BERDMv?= =?utf-8?B?ZjhkbkJJbDU3clVWRVVXVE04NXlDTlcrc0ZhdmJTNjFLRjZwNlJxYk9BVXpR?= =?utf-8?B?M3VjYkkxcUlvTERHSENBd1Y0dGpMV0lXdURaTGJ6ZGRRYlVVQlBGWFZBUGdZ?= =?utf-8?B?NEZ0bTAzc1BaV0doOEtvVEdiaVdTTktXb1VXL3VnMHZzN3pxMWxZYTh1bWdG?= =?utf-8?B?S3B0Q3FPMXhSbU9HYTdTMUVGdTZyL29SK2wxWkVsU2Zycmt0K3YvSFhIeklN?= =?utf-8?B?L1lpOGp3N1h0NGVBbEJZVmxIVElWdXZQT1pRL0xQbmRCamJDc0JJZk1aNWw0?= =?utf-8?B?ZEdqVnMwNkh3VkN1ZDEvWk9FK1Q3bzByczM0NGUrQnNqeHMvZmVTN0FpYVN0?= =?utf-8?B?UHZUdFlJYTdKRGV5SDR3MjdhV1lwL0p5WGV6bU5McnEwSER5R1ZtR091a2tG?= =?utf-8?B?c1JjSFVLQzVNbWd1V0ZtYWVUcnlXeSsxNVRpYTlxYWVyWU1HMlRqeFlmVnlV?= =?utf-8?B?N1hFUUtGVTcxM2ViT0ppZ0VuMHowYjdqMW9WYWJmR0pVUGgvOXJGNFArRi9R?= =?utf-8?B?YVNwM0MyVUlndGJpMjZpdGFsM0VxZHFORVFoMjdpc1hLSzI5aXdBQnV6eWVL?= =?utf-8?B?bVdpNVlsdjJQZ2dGVitoeFkwUFJJQVJ0VjRuMFN0UnJQWHBsc0xMOFNJVzVW?= =?utf-8?B?OGxmai9TUjhDWnFPRFVBa09EaG1RclhGdlg2RzZJbGVweGxTZmIxNVdGMUVI?= =?utf-8?B?TXVPMnJIbFZWRm14RDF5K1VlaGtQZmxWRDR4TnlzMFlDQk9DQ1R0MU9QcmR4?= =?utf-8?B?QmpzdGJBaTlWam5PT2NyNk1XUmNmaDFzUUVxcTlqMHFYMlVSQllZY2NYOGxB?= =?utf-8?B?VEdwUmV3bFU0MFhPVDQ1aWwyYU9PbUR5eEhTK1lpMFpPa1V5eTNLSWwydWVF?= =?utf-8?B?NnZMRjllMWhDemNGWXlVc1JhajV2L0pLWHlKOGZmdmxJT0R1TjM5VXNDa2Rl?= =?utf-8?B?M2lkTzBwYmlROFFhdk41VGxHNjEzdnE2M0lkOURaTFBseGVZbkc0NnVncldP?= =?utf-8?B?TEJDaWtZdTk5d0p1VnhvOGhDSGE1NnlJa3RBeFhRWG04T2xxSnFvdzBLVVZl?= =?utf-8?B?Z28yMmFjSm11RlkrYXk2UzJVZTlFa2tNQXduUDZkTHFNOSt4SkdteS9KOVlz?= =?utf-8?B?TzhTbkRSZjliVjNjKzNGaFMzU0lKSlc0TDlCdjVEcEY4S2U1SUVPY2ljNWJs?= =?utf-8?B?QmpIYy80K1cySVNwVVAzaXpNYmkxNzRlb1U0Ny9pRGI0MnB3c1EyQ1l0ajJJ?= =?utf-8?B?VHBOL1ZQaWNPM1Bla1BOZmwrV2ZGTk11V2VrSjNBQktqdDBVMHNCTnU1Ykhx?= =?utf-8?B?WjRGUmVZLy9JQUg5cDltZjZ3L04xYmM3VURQQ0x0Nmc2dkpKQ0R5L0VEMnVq?= =?utf-8?B?L1lFaTBoNXZLbXNOamJTRUszZHlNY0xiL1NDOWdjZ2ZXMkFmT2taNkwxK0pK?= =?utf-8?B?RFRYeXRPWSthdTk3L3d4b04vQVk4MUhLWHc2MFhSclFsUmRhbDFhS2U0M0pQ?= =?utf-8?B?TFNwYTZoVzJmMG4rVkNCNk1wVlJiTjFYZ0FINGRoMmxPWVU3UFFneEo0WTlS?= =?utf-8?B?MUR6dFJBZmR0THNVM2V3Qnh6WFFySDJrdnZnQk83V3l4Y0dycDI0QUM1WUhs?= =?utf-8?B?d2JJSUN5aU9seE9KSGpPK3doR09LTm5TUnJoeVdFLzRpazBLTEFpRlNuRFZw?= =?utf-8?B?ajFRUWFoQmpCR01YUE56K3ZiRWNPN05KQnhkMFlMaXNYY3VpUkFBT1NtNnZa?= =?utf-8?Q?vfTW6EHUC60YtmVuO7nLt5y/u89Uijaao6a2n0YZXAEbE?= X-MS-Exchange-AntiSpam-MessageData-1: KvMhpWpusWtBUA== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: a9742775-db09-4f82-e9e7-08da1f0b4766 X-MS-Exchange-CrossTenant-AuthSource: PH0PR12MB5452.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2022 18:10:53.2030 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: v78yQMQnCfIreioT1pm1aT3J3kv9xhAH4GLTWMy9s50zhxTUgLZQb4rYFIOpDyP3v2UAHzt1wQUAWR+Op0c59A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5268 X-Spam-Status: No, score=-6.5 required=5.0 tests=BAYES_00, 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.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Apr 2022 18:10:58 -0000 On 15/04/2022 18:52, Tom Tromey wrote: > [CAUTION: External Email] > >>>>>> "Lancelot" == Lancelot SIX via Gdb-patches writes: > > Lancelot> To fix this, make register_test_foreach_arch register a lazy selftest > Lancelot> generator. This way when the test generator is eventually executed, all > Lancelot> architectures are registered and we do not have a dependency on the > Lancelot> order the initialize functions are executed in. > > Lancelot> -void > Lancelot> -register_test_foreach_arch (const std::string &name, > Lancelot> - self_test_foreach_arch_function *function) > Lancelot> +static std::vector > Lancelot> +foreach_arch_test_generator (const std::string &name, > Lancelot> + self_test_foreach_arch_function *function) > Lancelot> { > > Is there some deep reason this has to return a vector? > It seems like the old code, just calling register_test directly here, > would also have been fine. > > Tom Hi, The reason I went for this is to make the interface clearer about what it does. In the current implementation, I have (in selftest.h): ``` using selftests_generator = std::function (void)>; extern void add_lazy_generator (selftests_generator generator); ``` My initial implementation did call `register_test` directly in the callback, but then selftest_generator is "just": ``` using selftest_generator = std::function ``` which in my opinion does not communicate much about its intent or use. Sure the vector is an overhead, but this machinery is really not on hot code path so I did not consider this an issue. That being said, I am OK with calls `register_test` directly in the callback, depending on what the feedbacks are. Best, Lancelot.