[{"id":14792,"web_url":"https://patchwork.libcamera.org/comment/14792/","msgid":"<YBCHQVmv15q2vki5@pendragon.ideasonboard.com>","date":"2021-01-26T21:18:57","subject":"Re: [libcamera-devel] [PATCH v2 0/2] libcamera: revert C++17\n\tspecific code for public API","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jean-Michel,\n\nThank you for the patch.\n\nOn Tue, Jan 26, 2021 at 02:04:13PM +0100, Jean-Michel Hautbois wrote:\n> Some applications may not be compliant with C++17 (Chromium, as an\n> example). Keep the C++17 features for libcamera internals, and C++14\n> compliance for public API.\n\nThis should be captured in the commit message of the two patches, as the\ncover letter won't end up in the git history.\n\nThe series make sense, the more lightweight our requirements will be in\nterms of modern features in the public API, the more applications will\nbe able to use libcamera. libcamera itself stays C++17, but at this\npoint of time, sticking to C++14 in the public API isn't a huge hassle.\n\nThis is of course a matter of finding a proper balance, I'm sure we will\neventually want to move the public API to C++17 too. Chromium is the\nonly application I'm aware of that is affected by the lack of C++17\nsupport, and it will eventually get migrated, solving this particular\nissue. We will then be able to revert the reverts, if desired.\n\nI've also been wondering if the libcamera integration in Chromium could\nbe compiled with -std=c++17, with the rest of the browser still compiled\nin C++14 mode. It could be useful to get a confirmation from Google on\nwhether this is possible or not. I've asked and am waiting for feedback,\nbut this isn't blocking and we can move ahead with this series.\n\nWith the commit message updated (which can be done when applying),\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nI'll give others a few days to shime in if desired before pushing this.\n\n> ---\n> Changes in v2:\n> - keep each revert separate\n> \n> Jean-Michel Hautbois (2):\n>   Revert \"libcamera: span: Provide and use helper variable templates for\n>     type traits\"\n>   Revert \"libcamera: Use helper variable template for type traits\"\n> \n>  include/libcamera/bound_method.h |  2 +-\n>  include/libcamera/controls.h     | 24 +++++------\n>  include/libcamera/object.h       |  2 +-\n>  include/libcamera/signal.h       |  4 +-\n>  include/libcamera/span.h         | 70 +++++++++++++++-----------------\n>  5 files changed, 48 insertions(+), 54 deletions(-)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id EFB7DBD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 26 Jan 2021 21:19:25 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 420986831F;\n\tTue, 26 Jan 2021 22:19:25 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0FB146831A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Jan 2021 22:19:24 +0100 (CET)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id EFD882C1;\n\tTue, 26 Jan 2021 22:19:21 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"INITY8EC\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1611695963;\n\tbh=Pvgz59jVHYDd6Ztz/du6k90PkzlXXvF0wFZL9S7IdCU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=INITY8ECo/0ltrfaLBL9bL2315RMiAKhP6fFes7JVoEkNbo6sczfGkiLX4CMw5GW4\n\ttaQ16wLuRQx7bjEf1Ty1yxZPiXioEuhpEFHGW8RrJ+5FTO0wHyQBcFiW2z7G0CfrwL\n\txG4lwlOsm0RqPeyd4osNX+HKaAJ195NVsvJ5MwBM=","Date":"Tue, 26 Jan 2021 23:18:57 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","Message-ID":"<YBCHQVmv15q2vki5@pendragon.ideasonboard.com>","References":"<20210126130415.26849-1-jeanmichel.hautbois@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210126130415.26849-1-jeanmichel.hautbois@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v2 0/2] libcamera: revert C++17\n\tspecific code for public API","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":14794,"web_url":"https://patchwork.libcamera.org/comment/14794/","msgid":"<YBCI3XluQrmO0NEU@pendragon.ideasonboard.com>","date":"2021-01-26T21:25:49","subject":"Re: [libcamera-devel] [PATCH v2 0/2] libcamera: revert C++17\n\tspecific code for public API","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Tue, Jan 26, 2021 at 11:19:06PM +0200, Laurent Pinchart wrote:\n> Hi Jean-Michel,\n> \n> Thank you for the patch.\n> \n> On Tue, Jan 26, 2021 at 02:04:13PM +0100, Jean-Michel Hautbois wrote:\n> > Some applications may not be compliant with C++17 (Chromium, as an\n> > example). Keep the C++17 features for libcamera internals, and C++14\n> > compliance for public API.\n> \n> This should be captured in the commit message of the two patches, as the\n> cover letter won't end up in the git history.\n> \n> The series make sense, the more lightweight our requirements will be in\n> terms of modern features in the public API, the more applications will\n> be able to use libcamera. libcamera itself stays C++17, but at this\n> point of time, sticking to C++14 in the public API isn't a huge hassle.\n> \n> This is of course a matter of finding a proper balance, I'm sure we will\n> eventually want to move the public API to C++17 too. Chromium is the\n> only application I'm aware of that is affected by the lack of C++17\n> support, and it will eventually get migrated, solving this particular\n> issue. We will then be able to revert the reverts, if desired.\n> \n> I've also been wondering if the libcamera integration in Chromium could\n> be compiled with -std=c++17, with the rest of the browser still compiled\n> in C++14 mode. It could be useful to get a confirmation from Google on\n> whether this is possible or not. I've asked and am waiting for feedback,\n> but this isn't blocking and we can move ahead with this series.\n\nhttps://github.com/jhautbois/chromium/blob/master/skia/BUILD.gn#L205\n\nCould something similar be done for libcamera ?\n\n> With the commit message updated (which can be done when applying),\n> \n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> \n> I'll give others a few days to shime in if desired before pushing this.\n> \n> > ---\n> > Changes in v2:\n> > - keep each revert separate\n> > \n> > Jean-Michel Hautbois (2):\n> >   Revert \"libcamera: span: Provide and use helper variable templates for\n> >     type traits\"\n> >   Revert \"libcamera: Use helper variable template for type traits\"\n> > \n> >  include/libcamera/bound_method.h |  2 +-\n> >  include/libcamera/controls.h     | 24 +++++------\n> >  include/libcamera/object.h       |  2 +-\n> >  include/libcamera/signal.h       |  4 +-\n> >  include/libcamera/span.h         | 70 +++++++++++++++-----------------\n> >  5 files changed, 48 insertions(+), 54 deletions(-)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 24F22C0F2B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 26 Jan 2021 21:26:12 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A5C5868325;\n\tTue, 26 Jan 2021 22:26:11 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DCFC76831A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Jan 2021 22:26:09 +0100 (CET)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 2F6152C1;\n\tTue, 26 Jan 2021 22:26:09 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"TTnhMR8U\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1611696369;\n\tbh=0HLiC9TtvUbZ+6xsKhvC42r8Ojto8yxVEhjb5c4oGvg=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=TTnhMR8Umqho6JefOGdNyniyuWIcgnixoINxjs8ckt9AoVxz/XjU8kBgSMGvz90dE\n\tpgUYaIpBlpILANHMtiwrJRu/GeY1uBro2YVlAFLNhcPwpEY1axSVi3B4s7gqAd4L99\n\tyrCWtvrXnuNgrM0mVHVhCREw68U8JTjxyvSXQQ7U=","Date":"Tue, 26 Jan 2021 23:25:49 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","Message-ID":"<YBCI3XluQrmO0NEU@pendragon.ideasonboard.com>","References":"<20210126130415.26849-1-jeanmichel.hautbois@ideasonboard.com>\n\t<YBCHQVmv15q2vki5@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<YBCHQVmv15q2vki5@pendragon.ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v2 0/2] libcamera: revert C++17\n\tspecific code for public API","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":14811,"web_url":"https://patchwork.libcamera.org/comment/14811/","msgid":"<8d737940-ed14-eebf-edc9-8eeb1f2252f2@gmail.com>","date":"2021-01-27T06:46:00","subject":"Re: [libcamera-devel] [PATCH v2 0/2] libcamera: revert C++17\n\tspecific code for public API","submitter":{"id":74,"url":"https://patchwork.libcamera.org/api/people/74/","name":"Jean-Michel Hautbois","email":"jeanmichel.hautbois@gmail.com"},"content":"Hi Laurent,\n\nOn 26/01/2021 22:25, Laurent Pinchart wrote:\n> On Tue, Jan 26, 2021 at 11:19:06PM +0200, Laurent Pinchart wrote:\n>> Hi Jean-Michel,\n>>\n>> Thank you for the patch.\n>>\n>> On Tue, Jan 26, 2021 at 02:04:13PM +0100, Jean-Michel Hautbois wrote:\n>>> Some applications may not be compliant with C++17 (Chromium, as an\n>>> example). Keep the C++17 features for libcamera internals, and C++14\n>>> compliance for public API.\n>>\n>> This should be captured in the commit message of the two patches, as the\n>> cover letter won't end up in the git history.\n>>\n>> The series make sense, the more lightweight our requirements will be in\n>> terms of modern features in the public API, the more applications will\n>> be able to use libcamera. libcamera itself stays C++17, but at this\n>> point of time, sticking to C++14 in the public API isn't a huge hassle.\n>>\n>> This is of course a matter of finding a proper balance, I'm sure we will\n>> eventually want to move the public API to C++17 too. Chromium is the\n>> only application I'm aware of that is affected by the lack of C++17\n>> support, and it will eventually get migrated, solving this particular\n>> issue. We will then be able to revert the reverts, if desired.\n>>\n>> I've also been wondering if the libcamera integration in Chromium could\n>> be compiled with -std=c++17, with the rest of the browser still compiled\n>> in C++14 mode. It could be useful to get a confirmation from Google on\n>> whether this is possible or not. I've asked and am waiting for feedback,\n>> but this isn't blocking and we can move ahead with this series.\n> \n> https://github.com/jhautbois/chromium/blob/master/skia/BUILD.gn#L205\n> \n> Could something similar be done for libcamera ?\n\nOh, nice catch, this is why I hate BUILD.gn it is not clear where the\noptions should lie to be correctly applied :-p.\nI will try and get back to you !\n\n>> With the commit message updated (which can be done when applying),\n>>\n>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>>\n>> I'll give others a few days to shime in if desired before pushing this.\n>>\n>>> ---\n>>> Changes in v2:\n>>> - keep each revert separate\n>>>\n>>> Jean-Michel Hautbois (2):\n>>>   Revert \"libcamera: span: Provide and use helper variable templates for\n>>>     type traits\"\n>>>   Revert \"libcamera: Use helper variable template for type traits\"\n>>>\n>>>  include/libcamera/bound_method.h |  2 +-\n>>>  include/libcamera/controls.h     | 24 +++++------\n>>>  include/libcamera/object.h       |  2 +-\n>>>  include/libcamera/signal.h       |  4 +-\n>>>  include/libcamera/span.h         | 70 +++++++++++++++-----------------\n>>>  5 files changed, 48 insertions(+), 54 deletions(-)\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id E4DFEBD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 27 Jan 2021 06:46:04 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 41A6D6833F;\n\tWed, 27 Jan 2021 07:46:04 +0100 (CET)","from mail-wr1-x432.google.com (mail-wr1-x432.google.com\n\t[IPv6:2a00:1450:4864:20::432])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1E4C560309\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Jan 2021 07:46:03 +0100 (CET)","by mail-wr1-x432.google.com with SMTP id h9so714944wrr.9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Jan 2021 22:46:03 -0800 (PST)","from ?IPv6:2a01:e0a:169:7140:576c:739c:3306:537?\n\t([2a01:e0a:169:7140:576c:739c:3306:537])\n\tby smtp.gmail.com with ESMTPSA id\n\th15sm1635531wrt.10.2021.01.26.22.46.01\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tTue, 26 Jan 2021 22:46:01 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"pPN1p4OY\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=subject:to:cc:references:from:message-id:date:user-agent\n\t:mime-version:in-reply-to:content-language:content-transfer-encoding; \n\tbh=UsExvp8PqmNLTCXGre6eA9iVYeiXPHFVs6OLvDQjsh8=;\n\tb=pPN1p4OYsRsUUWKgX0BI00xoxKot2T5eBtuhE0Uxt+gjuIqKp240aLb8nF1ihMgLQI\n\tz8BZhhOix/L2Om9e0fNsyE87I1KizZPcowEHCKpmtnImeaez/AGZm3SXLhloxcibKO1Q\n\tiCmki2q4QnZAGLH5uC1yuA2WqwDUZrG8HC1o8UCJWmLJ6w4wF3D5aPhS82O01WM5YedA\n\tKnv0cvH5o3FXZHTa2CRK9XFWbtpLvX1Y1zYZQ/j6kxd2g3c6zertxqhAkGMxIEEZxv/l\n\tBvaA1Mlv8OqAcFtbVE4P5HQS/fXIaxUm4IqQKTGLRyKWmvOcfMDDFCih+z4mP8Hjz9g+\n\tGq4Q==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:subject:to:cc:references:from:message-id:date\n\t:user-agent:mime-version:in-reply-to:content-language\n\t:content-transfer-encoding;\n\tbh=UsExvp8PqmNLTCXGre6eA9iVYeiXPHFVs6OLvDQjsh8=;\n\tb=GFsNDMMQpIvfMMSuDFkztgzIeiDl5lglS027HPujlkaLEmPVqPGX2I1KLluCmtTDE7\n\ttEujWzkwgZOqYY3NaGS8P/dAmrH01Q/9E3F92tS9nSrUAq45wRdYwYvaF7dpMKpmATsr\n\t7wvxqE6aEUzwA1ucxlVXrTEf8ESOkieMTSa8Rv0d0fPSgizP+TxKv+yxdCgjPXHfm2+b\n\t14Iv0QV6iTt2V8NXcwwVLHBK7AoEkFWQdFTEkoUO4MBfDhU23xejH+ACqN0Rxnwh8ryo\n\ttlK7CZPK69LtojD2S8fIM+rLp4xaLrwnlh8H2g8NiA7ju7HLzksScc4ZSIozeVfmOBeM\n\tB6jw==","X-Gm-Message-State":"AOAM530R4Wy3SWKpav49WMnXNwUeiw+LgH/mh9iHu8YndrAfAi1XBUyI\n\tCF4Cu6HIxitGOixG/yUe2K7aZVcvs7Go7A==","X-Google-Smtp-Source":"ABdhPJxC2+GQvp5AFhM6Xs9FBbcUHC7zWwz4zAEsBAcl4DAtzy6h/UXmUyoNW47hYxyg4PTHz/OZ2g==","X-Received":"by 2002:adf:ef03:: with SMTP id e3mr9885118wro.98.1611729962304; \n\tTue, 26 Jan 2021 22:46:02 -0800 (PST)","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tJean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","References":"<20210126130415.26849-1-jeanmichel.hautbois@ideasonboard.com>\n\t<YBCHQVmv15q2vki5@pendragon.ideasonboard.com>\n\t<YBCI3XluQrmO0NEU@pendragon.ideasonboard.com>","From":"Jean-Michel Hautbois <jeanmichel.hautbois@gmail.com>","Message-ID":"<8d737940-ed14-eebf-edc9-8eeb1f2252f2@gmail.com>","Date":"Wed, 27 Jan 2021 07:46:00 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.6.1","MIME-Version":"1.0","In-Reply-To":"<YBCI3XluQrmO0NEU@pendragon.ideasonboard.com>","Content-Language":"en-US","Subject":"Re: [libcamera-devel] [PATCH v2 0/2] libcamera: revert C++17\n\tspecific code for public API","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":14812,"web_url":"https://patchwork.libcamera.org/comment/14812/","msgid":"<e3d1f887-8f64-7f83-15f7-d5c88c61b86c@ideasonboard.com>","date":"2021-01-27T06:58:40","subject":"Re: [libcamera-devel] [PATCH v2 0/2] libcamera: revert C++17\n\tspecific code for public API","submitter":{"id":75,"url":"https://patchwork.libcamera.org/api/people/75/","name":"Jean-Michel Hautbois","email":"jeanmichel.hautbois@ideasonboard.com"},"content":"On 27/01/2021 07:46, Jean-Michel Hautbois wrote:\n> Hi Laurent,\n> \n> On 26/01/2021 22:25, Laurent Pinchart wrote:\n>> On Tue, Jan 26, 2021 at 11:19:06PM +0200, Laurent Pinchart wrote:\n>>> Hi Jean-Michel,\n>>>\n>>> Thank you for the patch.\n>>>\n>>> On Tue, Jan 26, 2021 at 02:04:13PM +0100, Jean-Michel Hautbois wrote:\n>>>> Some applications may not be compliant with C++17 (Chromium, as an\n>>>> example). Keep the C++17 features for libcamera internals, and C++14\n>>>> compliance for public API.\n>>>\n>>> This should be captured in the commit message of the two patches, as the\n>>> cover letter won't end up in the git history.\n>>>\n>>> The series make sense, the more lightweight our requirements will be in\n>>> terms of modern features in the public API, the more applications will\n>>> be able to use libcamera. libcamera itself stays C++17, but at this\n>>> point of time, sticking to C++14 in the public API isn't a huge hassle.\n>>>\n>>> This is of course a matter of finding a proper balance, I'm sure we will\n>>> eventually want to move the public API to C++17 too. Chromium is the\n>>> only application I'm aware of that is affected by the lack of C++17\n>>> support, and it will eventually get migrated, solving this particular\n>>> issue. We will then be able to revert the reverts, if desired.\n>>>\n>>> I've also been wondering if the libcamera integration in Chromium could\n>>> be compiled with -std=c++17, with the rest of the browser still compiled\n>>> in C++14 mode. It could be useful to get a confirmation from Google on\n>>> whether this is possible or not. I've asked and am waiting for feedback,\n>>> but this isn't blocking and we can move ahead with this series.\n>>\n>> https://github.com/jhautbois/chromium/blob/master/skia/BUILD.gn#L205\n>>\n>> Could something similar be done for libcamera ?\n> \n> Oh, nice catch, this is why I hate BUILD.gn it is not clear where the\n> options should lie to be correctly applied :-p.\n> I will try and get back to you !\n\nI can't make it work, so, if Google replies it can help, as I tried it\nin several places in the BUILD.gn file and it has no effect... :-(.\n\n>>> With the commit message updated (which can be done when applying),\n>>>\n>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>>>\n>>> I'll give others a few days to shime in if desired before pushing this.\n>>>\n>>>> ---\n>>>> Changes in v2:\n>>>> - keep each revert separate\n>>>>\n>>>> Jean-Michel Hautbois (2):\n>>>>   Revert \"libcamera: span: Provide and use helper variable templates for\n>>>>     type traits\"\n>>>>   Revert \"libcamera: Use helper variable template for type traits\"\n>>>>\n>>>>  include/libcamera/bound_method.h |  2 +-\n>>>>  include/libcamera/controls.h     | 24 +++++------\n>>>>  include/libcamera/object.h       |  2 +-\n>>>>  include/libcamera/signal.h       |  4 +-\n>>>>  include/libcamera/span.h         | 70 +++++++++++++++-----------------\n>>>>  5 files changed, 48 insertions(+), 54 deletions(-)\n>>\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 57F85C0F2B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 27 Jan 2021 06:58:43 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DEA0B68340;\n\tWed, 27 Jan 2021 07:58:42 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 03E5360309\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Jan 2021 07:58:41 +0100 (CET)","from [IPv6:2a01:e0a:169:7140:576c:739c:3306:537] (unknown\n\t[IPv6:2a01:e0a:169:7140:576c:739c:3306:537])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7D50C240;\n\tWed, 27 Jan 2021 07:58:40 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"bBGweIdK\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1611730720;\n\tbh=kL/orhuZwJWsC8jP+2gFsvYc0UuZps35yUDK4RLkhXM=;\n\th=Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=bBGweIdKXWn/vrStcg1mP9DbtUEmR4tpmOFh9oPjpeG7q3ra98+wqJCUezPFkqj7F\n\tMqnVr5uqHksiNF8mxfy6DuTFX5mnsZqrgaLH11fSi5sRr9xicbdq0v8XWGQpFoRq7A\n\tb7OaSLp4G5xSWd+DFZ4idEVzNpvWugwtnuAUnK5k=","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tJean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","References":"<20210126130415.26849-1-jeanmichel.hautbois@ideasonboard.com>\n\t<YBCHQVmv15q2vki5@pendragon.ideasonboard.com>\n\t<YBCI3XluQrmO0NEU@pendragon.ideasonboard.com>\n\t<8d737940-ed14-eebf-edc9-8eeb1f2252f2@gmail.com>","From":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","Message-ID":"<e3d1f887-8f64-7f83-15f7-d5c88c61b86c@ideasonboard.com>","Date":"Wed, 27 Jan 2021 07:58:40 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.6.1","MIME-Version":"1.0","In-Reply-To":"<8d737940-ed14-eebf-edc9-8eeb1f2252f2@gmail.com>","Content-Language":"en-US","Subject":"Re: [libcamera-devel] [PATCH v2 0/2] libcamera: revert C++17\n\tspecific code for public API","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]