Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1271063 > unrolled thread

Re: [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by an array

Started byMauro Carvalho Chehab <mchehab@osg.samsung.com>
First post2015-11-17 11:50 +0100
Last post2015-11-18 10:20 +0100
Articles 6 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by  an array Mauro Carvalho Chehab <mchehab@osg.samsung.com> - 2015-11-17 11:50 +0100
    Re: [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by  an array Jonathan Corbet <corbet@lwn.net> - 2015-11-17 15:50 +0100
      Re: [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by  an array Mauro Carvalho Chehab <mchehab@osg.samsung.com> - 2015-11-17 16:40 +0100
        Re: [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by  an array Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk> - 2015-11-17 17:00 +0100
        Re: [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by  an array Jonathan Corbet <corbet@lwn.net> - 2015-11-18 01:30 +0100
          Re: [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by  an array Mauro Carvalho Chehab <mchehab@osg.samsung.com> - 2015-11-18 10:20 +0100

#1271063 — Re: [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by an array

FromMauro Carvalho Chehab <mchehab@osg.samsung.com>
Date2015-11-17 11:50 +0100
SubjectRe: [PATCH v2 2/4] scripts/kernel-doc: Replacing highlights hash by an array
Message-ID<qvLZL-3Ro-9@gated-at.bofh.it>
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1271288

FromJonathan Corbet <corbet@lwn.net>
Date2015-11-17 15:50 +0100
Message-ID<qvPK2-6hQ-19@gated-at.bofh.it>
In reply to#1271063
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1271345

FromMauro Carvalho Chehab <mchehab@osg.samsung.com>
Date2015-11-17 16:40 +0100
Message-ID<qvQwr-6RR-63@gated-at.bofh.it>
In reply to#1271288
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";
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1271361

FromDanilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
Date2015-11-17 17:00 +0100
Message-ID<qvQPM-6YM-27@gated-at.bofh.it>
In reply to#1271345
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1271764

FromJonathan Corbet <corbet@lwn.net>
Date2015-11-18 01:30 +0100
Message-ID<qvYNk-3Of-7@gated-at.bofh.it>
In reply to#1271345
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1272021

FromMauro Carvalho Chehab <mchehab@osg.samsung.com>
Date2015-11-18 10:20 +0100
Message-ID<qw74f-WO-43@gated-at.bofh.it>
In reply to#1271764
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web