* Re: [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by an array [not found] ` <1438112718-12168-3-git-send-email-danilo.cesar@collabora.co.uk> @ 2015-11-17 10:40 ` Mauro Carvalho Chehab 2015-11-17 14:44 ` Jonathan Corbet 0 siblings, 1 reply; 6+ messages in thread From: Mauro Carvalho Chehab @ 2015-11-17 10:40 UTC (permalink / raw) To: Danilo Cesar Lemes de Paula, LMML Cc: linux-doc, Randy Dunlap, Daniel Vetter, Laurent Pinchart, Jonathan Corbet, Herbert Xu, Stephan Mueller, Michal Marek, linux-kernel, intel-gfx, dri-devel Hi Danilo, Em Tue, 28 Jul 2015 16:45:16 -0300 Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk> escreveu: > The "highlight" code is very sensible to the order of the hash keys, > but the order of the keys cannot be predicted on Perl. It generates > faulty DocBook entries like: > - @<function>device_for_each_child</function> > > We should use an array for that job, so we can guarantee that the order > of the regex execution on dohighlight won't change. ... > @@ -2587,9 +2601,11 @@ $kernelversion = get_kernel_version(); > > # generate a sequence of code that will splice in highlighting information > # using the s// operator. > -foreach my $pattern (keys %highlights) { > -# print STDERR "scanning pattern:$pattern, highlight:($highlights{$pattern})\n"; > - $dohighlight .= "\$contents =~ s:$pattern:$highlights{$pattern}:gs;\n"; > +foreach my $k (keys @highlights) { 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. I had to revert this patch in order to be able to keep building the documentation of the media kABI on our server. Regards, Mauro ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by an array 2015-11-17 10:40 ` [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by an array Mauro Carvalho Chehab @ 2015-11-17 14:44 ` Jonathan Corbet 2015-11-17 15:29 ` Mauro Carvalho Chehab 0 siblings, 1 reply; 6+ messages in thread From: Jonathan Corbet @ 2015-11-17 14:44 UTC (permalink / raw) To: Mauro Carvalho Chehab Cc: Danilo Cesar Lemes de Paula, LMML, linux-doc, Randy Dunlap, Daniel Vetter, Laurent Pinchart, Herbert Xu, Stephan Mueller, Michal Marek, linux-kernel, intel-gfx, dri-devel On Tue, 17 Nov 2015 08:40:46 -0200 Mauro Carvalho Chehab <mchehab@osg.samsung.com> 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? Thanks, jon ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by an array 2015-11-17 14:44 ` Jonathan Corbet @ 2015-11-17 15:29 ` Mauro Carvalho Chehab 2015-11-17 15:48 ` Danilo Cesar Lemes de Paula 2015-11-18 0:21 ` Jonathan Corbet 0 siblings, 2 replies; 6+ messages in thread From: Mauro Carvalho Chehab @ 2015-11-17 15:29 UTC (permalink / raw) To: Jonathan Corbet Cc: Danilo Cesar Lemes de Paula, LMML, linux-doc, Randy Dunlap, Daniel Vetter, Laurent Pinchart, Herbert Xu, Stephan Mueller, Michal Marek, linux-kernel, intel-gfx, dri-devel Em Tue, 17 Nov 2015 07:44:31 -0700 Jonathan Corbet <corbet@lwn.net> escreveu: > On Tue, 17 Nov 2015 08:40:46 -0200 > Mauro Carvalho Chehab <mchehab@osg.samsung.com> 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 <mchehab@osg.samsung.com> 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"; ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by an array 2015-11-17 15:29 ` Mauro Carvalho Chehab @ 2015-11-17 15:48 ` Danilo Cesar Lemes de Paula 2015-11-18 0:21 ` Jonathan Corbet 1 sibling, 0 replies; 6+ messages in thread From: Danilo Cesar Lemes de Paula @ 2015-11-17 15:48 UTC (permalink / raw) To: Mauro Carvalho Chehab, Jonathan Corbet Cc: LMML, linux-doc, Randy Dunlap, Daniel Vetter, Laurent Pinchart, Herbert Xu, Stephan Mueller, Michal Marek, linux-kernel, intel-gfx, dri-devel On 17-11-2015 13:29, Mauro Carvalho Chehab wrote: > Em Tue, 17 Nov 2015 07:44:31 -0700 > Jonathan Corbet <corbet@lwn.net> escreveu: > >> On Tue, 17 Nov 2015 08:40:46 -0200 >> Mauro Carvalho Chehab <mchehab@osg.samsung.com> 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. I'm Not a perl guru myself either =/. But thanks for fixing it Mauro! Danilo ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by an array 2015-11-17 15:29 ` Mauro Carvalho Chehab 2015-11-17 15:48 ` Danilo Cesar Lemes de Paula @ 2015-11-18 0:21 ` Jonathan Corbet 2015-11-18 9:14 ` Mauro Carvalho Chehab 1 sibling, 1 reply; 6+ messages in thread From: Jonathan Corbet @ 2015-11-18 0:21 UTC (permalink / raw) To: Mauro Carvalho Chehab Cc: Danilo Cesar Lemes de Paula, LMML, linux-doc, Randy Dunlap, Daniel Vetter, Laurent Pinchart, Herbert Xu, Stephan Mueller, Michal Marek, linux-kernel, intel-gfx, dri-devel On Tue, 17 Nov 2015 13:29:49 -0200 Mauro Carvalho Chehab <mchehab@osg.samsung.com> wrote: > The enclosed patch should do the trick. I tested it with perl 5.10 and > perl 5.22 it worked fine with both versions. Indeed it seems to work - thanks! Applied to the docs tree, I'll get it upstream before too long. jon ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by an array 2015-11-18 0:21 ` Jonathan Corbet @ 2015-11-18 9:14 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 6+ messages in thread From: Mauro Carvalho Chehab @ 2015-11-18 9:14 UTC (permalink / raw) To: Jonathan Corbet Cc: Danilo Cesar Lemes de Paula, LMML, linux-doc, Randy Dunlap, Daniel Vetter, Laurent Pinchart, Herbert Xu, Stephan Mueller, Michal Marek, linux-kernel, intel-gfx, dri-devel Em Tue, 17 Nov 2015 17:21:32 -0700 Jonathan Corbet <corbet@lwn.net> escreveu: > On Tue, 17 Nov 2015 13:29:49 -0200 > Mauro Carvalho Chehab <mchehab@osg.samsung.com> wrote: > > > The enclosed patch should do the trick. I tested it with perl 5.10 and > > perl 5.22 it worked fine with both versions. > > Indeed it seems to work - thanks! Applied to the docs tree, I'll get it > upstream before too long. Thanks, Jon! Regards, Mauro ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-11-18 9:14 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1438112718-12168-1-git-send-email-danilo.cesar@collabora.co.uk>
[not found] ` <1438112718-12168-3-git-send-email-danilo.cesar@collabora.co.uk>
2015-11-17 10:40 ` [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by an array Mauro Carvalho Chehab
2015-11-17 14:44 ` Jonathan Corbet
2015-11-17 15:29 ` Mauro Carvalho Chehab
2015-11-17 15:48 ` Danilo Cesar Lemes de Paula
2015-11-18 0:21 ` Jonathan Corbet
2015-11-18 9:14 ` Mauro Carvalho Chehab
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox