From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 9FDA2470EE for ; Sat, 26 Aug 2023 18:35:20 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1AF1268C5A2; Sat, 26 Aug 2023 21:35:17 +0300 (EEST) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2048.outbound.protection.outlook.com [40.92.74.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BF3B268C279 for ; Sat, 26 Aug 2023 21:35:10 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AkMl9v3MN5M94eIMKFV+zNJPiV4LbEwbb6k4t015muvXPKDkspSonZsVxk+76BjppSVuuDxBQPWesREgTUCbeRwvcUqx11o8FT0QzvOQIZlAbD2iJhlc1dfqF5iYME8NHwdIhT/nIk7SRAqXP58t50v+uT5vS0WQykyeQQCkUA1Y3Gc7COYlNVOH5ljMQa6fegmlU6EDVe75nFoD+9TQVbbtOds2QvTB1WQZ/UgWN47o+Kcir88aRH341RX1/WvLXbvbfwGrHGMlUjc08fqZjCkUFu2j1iHkSZE9/PePh48Kn9Klf5Rl8hlEUjyN+Gukq0K/81X/zJvg9ak7uQCybw== 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=iO/pFiIcsjytCJRSasGg5nV6e6ILfyKo+yuukHO6EuU=; b=gZBehFsiHFnpxLt0fcGlZaGhGwKFEar+Lw1H4oyyypVVuxDqM2hrFlhlE9KO2HETbzZm7csFqzzypREK+JhGxOyuvn/oG9idWq7S88HTYOxiRpMAuPRUzD4c5yHRMSKgLIrdpIBZCu33ETkzJSmza7T1DlaOP6ZN1H0enk7qAnsYul+Z6r3sGh6MnHBx/dCGmhLcjuN6uOk1WzmqC2KsLVeSBiM+2EGK+IyladWF6ujZJ1rhiMpRSaAXdF7782iDDb7SDbjvI16x8E+LUsKOha5QyVjBTS3qADUrINCQN2ODI3sKqoKVmA/DUrONP9huk7c0A8J0bohbkWoMKkmigw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iO/pFiIcsjytCJRSasGg5nV6e6ILfyKo+yuukHO6EuU=; b=EBUrjYdqyq2E2O8IM6fuxHWB4tlE2aF4qOYn9Uwhiag5Reup94pQENlmq3SVgbk1e3kh2oYjFInUX70uvSOv8hR0YhMr2jkbYmZSOFF3NVcQBc2NUao0uZUxCXhZSkH43b+vKfghyzzzMhrAffN8i04JlfxHElTMwNvAoHHX6ry31g7U/SFq0O36y/wpqjQBoLprfX73S0ubQ608deB2NAYAq7WjAZJGT+5ADhv30kWWlpMNe+yBIsakIfdYy6Mc+4CoXEyLhJRuPKisyIH638KoGDy1nlS+dsHcA6O5xxvo3FFK8YRn8bOCTT8xKCH1Rb+ZyhPy7HhkITY2T1LsvQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0277.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:328::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34; Sat, 26 Aug 2023 18:35:09 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6699.027; Sat, 26 Aug 2023 18:35:09 +0000 Message-ID: Date: Sat, 26 Aug 2023 20:36:25 +0200 To: ffmpeg-devel@ffmpeg.org References: <20230826180748.15977-1-anton@khirnov.net> <20230826180748.15977-4-anton@khirnov.net> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20230826180748.15977-4-anton@khirnov.net> X-TMN: [WyixZIiHXUaSmpO09FTPCHwjhd2NMWyFOE+u/LujrpE=] X-ClientProxiedBy: ZR2P278CA0008.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:50::11) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <28a7f557-934f-5053-24cb-bcd835ebece3@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0277:EE_ X-MS-Office365-Filtering-Correlation-Id: c6161f50-0e7c-4ee9-7dbc-08dba6632cd9 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rr7dZOKvOciFBQWIJ6AMpYrrJ+yglxfaNGsXahhMS8BYA2fQ/4d8phC5Ca4kuAjIm2OuQn//gzOSP62uashg0157FtihshaLpIRudZ33zhQ8yZfcRs5ZIX0XNPRllmkVSIW885Ix0iZYqJdaUiJ5HPU2jwTJjG8f/a99yuBcq6dqdHjIE+7EVCrBb/T74T4Zy33D5zlnb5T3Ee6NDW+6mLlmpZnGReXrvkrIXNtWcrlDNyexY0f0PkJhs2Mva2+Qakk0SxX1u1P720lgjdpEdHfo5Zxa1y30Ue4qofc4eB6zgAcuZAk3JeFwCdwcmf1CTVWUXT3wRCoDFcir+g8OhA2OWTo4TEcewjB38+fhj/2IQJld/daT+ph5r9BUI/gGTkIJWdDqJnTlMYHwlHoKqtI7HdiNW3SpEvYdU+Dxw9sUnyY0YE0AepOwtWPJa3EarMiTTSjZX7A5SNBMtaXrdKiK/AGiYadKiycObllWPZPdtgTttsv2Hg/lwyanEaW92+NA8oPGLdllIOsw+pANC6vrjeQnnTYqrCIifVS1qiGY7hYaFA31XECTjiWNydsS X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?c1l2cTJGZzhyZmIySkVoQmN4ZzBodUFIaW9JNmF4NHNJelFUNHFkb3pvelZ3?= =?utf-8?B?d2kzNUo5eDRWMGJQN29Ic1B1MVFWTElFZFVPWk5sdHJCT2dKWGJ5RkJWUzU4?= =?utf-8?B?N0JpZHJiY0c3Y3FEV2lXTnoxZk90enViUXFoUGs2N1BKaHJRQVB3bmtjRlU1?= =?utf-8?B?KzZmY0p3c2lPZ0liVTRiaEtwb2lkTys3ZjVlNEMyVGhLMkMyNWlsRzVuWkt0?= =?utf-8?B?Z054bkdLY2tlWGdON1YyNW5zNmw0NmMrMllOdmtIeEJIb0RHeVpnTk9aNnQ2?= =?utf-8?B?NmJydEpjbkpqSkwyTnlzTWVrYm9zOWszVlNVZUhwK2dtbUo1Z1FSNzRuZHpj?= =?utf-8?B?VEt5QzBzelk1VUkxYzVzSG1OeGlSUkIvSjVKOENLcGpwenBESWN4dkdiTDln?= =?utf-8?B?MEdVdnNibGJzbHV2ckE5UmxmeFRpOFVQMGNFVjdGYUlobE45dnc5dUlsUm1B?= =?utf-8?B?YnN4Tm45SThrK09nNzRyajZsNzVTVjBIMWcvNVg3Rmd4b01XVnB2YUVCSTRV?= =?utf-8?B?bHdvVmVCZEd5cWo5enBhQ1hjSGYwWTNxdDdvQW5xTWxveFVpZFdTY1BiNk5n?= =?utf-8?B?a3lJUG9ZZjhRdlRTQisvY1hTeVpDQzJVTlFUUndUdC9xb29yVi9QWXVMa0Ew?= =?utf-8?B?TWNweFBFUXYzNGo5b3V1N3BIQXZGN29BcUF2OUVpWEtoTm44V29aZjRwNkJT?= =?utf-8?B?YzBtSkYxZkNseDBYWVJQalpnNnBnQ0lPc2E5SWd4Mkh5MjdHN2ZGTGtNZWly?= =?utf-8?B?SHNSVDAwVXQ3RUVjM3NYTXNvaWFUdlNKQmcyby8xa0NrNTR2dnoyLzlQa2tJ?= =?utf-8?B?T2tURVNBcWdYVGl2dnZMdjU3NHRLUGVidFY2QUc5VENGVVFoYUc3dS9CUkpl?= =?utf-8?B?S0NYMWZtcEVUMHhjeXdJVjNwWEgvLzJnemxFZFV2VElkaExNM2VBcDZpVFlP?= =?utf-8?B?dXpTWkFjS1RXQWpMeUdQanp4SHduSXpkaU5kR3lSblB6WUl2S0x1dWZQazlG?= =?utf-8?B?UXEzakNBSlhZZkF2cWJKY0dzYm9nc3MxZW1OQmNNL1JFUGZ4T1ZKMGVlLzdX?= =?utf-8?B?dVVaQmJsaVBZNXg2UnhzcG1jakdBUFRHbDJseFRhaXc4REkyTDBQY2FnbGJX?= =?utf-8?B?cStiWCtIQWQrUVYvQ2RYRjZwOHBvM1grLzY5SldqTFNrQ0xncE1NamtVRC9l?= =?utf-8?B?bU5vVTRKQ2ZVZjArankveE5VZWlLOWRIYjVTMTFhWVBxc1FFL0lEaCs1REN6?= =?utf-8?B?UmNuSFQ4YlA1eXdwR2tVTlQxUGJZZ3l0Z3J2SEVKRm16MlUxeDEvT2pOU3J1?= =?utf-8?B?YklybDl4Nll2T2NuL2JWb3YyT0wrdWxnb0VGOXhGd2VDb2dxc05aamJhRW8x?= =?utf-8?B?Umd6WXZSWnBzaThCMjhDZ2J4c1pWdnNiNmViN0lvTm40L3BQdk1wSU5FTm94?= =?utf-8?B?aS9yMEN4M3BScnlxbVhMSnZSeVdJRmwrMFJrRHd0QUh2ODdtUEhBTGJGZWVB?= =?utf-8?B?OUxIMjdlaEpiWVloSXQ4aXZvTGtKVnk4NUtaM3ZtdWJXOSt6YXNKMHJZZG1H?= =?utf-8?B?WnVTSWlYbU5hVXBYbjJaR2hqK1BSbUZ3NGVGbTVzcFV2emhTMDVXWlRibVk5?= =?utf-8?B?bUlXV2NmQTNqUDZKYVAwaHlvdjg3TFBJWmxuL1F6bE5GbE80K2U5K1FrRkNs?= =?utf-8?Q?Mfh7zxzd0zslR/BqnMB8?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c6161f50-0e7c-4ee9-7dbc-08dba6632cd9 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2023 18:35:09.0037 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8P250MB0277 Subject: Re: [FFmpeg-devel] [PATCH 4/6] doc/developer: add a code behaviour section to development policy X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Anton Khirnov: > Document our longstanding de facto policies on things like correctness, > thread-safety, UB, etc. > --- > doc/developer.texi | 50 +++++++++++++++++++++++++++++++++------------- > 1 file changed, 36 insertions(+), 14 deletions(-) > > diff --git a/doc/developer.texi b/doc/developer.texi > index df43119f98..afa0148137 100644 > --- a/doc/developer.texi > +++ b/doc/developer.texi > @@ -274,10 +274,6 @@ symbols. If in doubt, just avoid names starting with @code{_} altogether. > @section Miscellaneous conventions > > @itemize @bullet > -@item > -fprintf and printf are forbidden in libavformat and libavcodec, > -please use av_log() instead. > - > @item > Casts should be used only when necessary. Unneeded parentheses > should also be avoided if they don't make the code easier to understand. > @@ -286,6 +282,42 @@ should also be avoided if they don't make the code easier to understand. > @anchor{Development Policy} > @chapter Development Policy > > +@section Code behaviour > + > +@subheading Correctness > +The code must be valid. It must not crash, abort, access invalid pointers, leak > +memory, cause data races or signed integer overflow, or otherwise invoke > +undefined behaviour. Error codes should be checked and, when applicable, > +forwarded to the caller. > + > +@subheading Thread- and library-safety > +Our libraries may be called by multiple independent callers in the same process. > +These calls may happen from any number of threads and the different call sites > +may not be aware of each other - e.g. a user program may be calling us directly, > +and use one or more libraries that also call us. The code must behave correctly > +under such conditions. Some of this can no longer be guaranteed when FFmpeg is built without threading support, but called from multiple threads concurrently. Should this be mentioned or would it just confuse readers? (I'm leaning to the latter.) - Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".