* 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