From patchwork Tue Nov 17 15:29:49 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mauro Carvalho Chehab X-Patchwork-Id: 7638161 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 5FCF3BF90C for ; Tue, 17 Nov 2015 15:30:03 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 66C6B20503 for ; Tue, 17 Nov 2015 15:30:01 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 23BA0200E7 for ; Tue, 17 Nov 2015 15:30:00 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 95DCB6E40B; Tue, 17 Nov 2015 07:29:59 -0800 (PST) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from lists.s-osg.org (lists.s-osg.org [54.187.51.154]) by gabe.freedesktop.org (Postfix) with ESMTP id 06B6C6E40B; Tue, 17 Nov 2015 07:29:58 -0800 (PST) Received: from recife.lan (unknown [179.182.160.150]) by lists.s-osg.org (Postfix) with ESMTPSA id E790A462A3; Tue, 17 Nov 2015 07:29:52 -0800 (PST) Date: Tue, 17 Nov 2015 13:29:49 -0200 From: Mauro Carvalho Chehab To: Jonathan Corbet Message-ID: <20151117132949.2c70d92f@recife.lan> In-Reply-To: <20151117074431.01338392@lwn.net> References: <1438112718-12168-1-git-send-email-danilo.cesar@collabora.co.uk> <1438112718-12168-3-git-send-email-danilo.cesar@collabora.co.uk> <20151117084046.5c911c6a@recife.lan> <20151117074431.01338392@lwn.net> Organization: Samsung X-Mailer: Claws Mail 3.12.0 (GTK+ 2.24.28; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Cc: Michal Marek , Herbert Xu , Danilo Cesar Lemes de Paula , linux-doc@vger.kernel.org, Stephan Mueller , Daniel Vetter , intel-gfx , Randy Dunlap , linux-kernel@vger.kernel.org, dri-devel , Laurent Pinchart , LMML Subject: Re: [Intel-gfx] [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by an array X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Em Tue, 17 Nov 2015 07:44:31 -0700 Jonathan Corbet escreveu: > On Tue, 17 Nov 2015 08:40:46 -0200 > Mauro Carvalho Chehab wrote: > > > The above causes some versions of perl to fail, as keys expect a > > hash argument: > > > > Execution of .//scripts/kernel-doc aborted due to compilation errors. > > Type of arg 1 to keys must be hash (not private array) at .//scripts/kernel-doc line 2714, near "@highlights) " > > > > This is happening at linuxtv.org server, with runs perl version 5.10.1. > > OK, that's not good. But I'm not quite sure what to do about it. > > Perl 5.10.1 is a little over six years old. Nobody else has complained > (yet) about this problem. So it might be best to "fix" this with a > minimum version added to the Changes file. > > Or maybe we need to revert the patch. > > So I'm far from a Perl expert, so I have no clue what the minimum version > would be if we were to say "5.10.1 is too old." I don't suppose anybody > out there knows? I'm also not a Perl expert, and never saw before the usage of "keys" on an array. Yet, according with: http://perldoc.perl.org/functions/keys.html "in Perl 5.12 or later only, the indices of an array" If so, then maybe we could replace: foreach my $k (keys @highlights) by a more C style variant, with all versions of perl 5: for (my $k = 0; $k < @highlights; $k++) { The enclosed patch should do the trick. I tested it with perl 5.10 and perl 5.22 it worked fine with both versions. Regards, Mauro - kernel-doc: Make it compatible with Perl versions below 5.12 again Changeset 4d73270192ec('scripts/kernel-doc: Replacing highlights hash by an array') broke compatibility of the kernel-doc script with older versions of perl by using "keys ARRAY" syntax with is available only on Perl 5.12 or newer, according with: http://perldoc.perl.org/functions/keys.html Restore backward compatibility by replacing "foreach my $k (keys ARRAY)" by a C-like variant: "for (my $k = 0; $k < !ARRAY; $k++)" Signed-off-by: Mauro Carvalho Chehab diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 125b906..1f61def 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -2711,7 +2711,7 @@ $kernelversion = get_kernel_version(); # generate a sequence of code that will splice in highlighting information # using the s// operator. -foreach my $k (keys @highlights) { +for (my $k = 0; $k < @highlights; $k++) { my $pattern = $highlights[$k][0]; my $result = $highlights[$k][1]; # print STDERR "scanning pattern:$pattern, highlight:($result)\n";