develooper Front page | perl.perl5.porters | Postings from November 2003

Re: 5.8.2-RC1 and mp2

Thread Previous | Thread Next
From:
Jan Dubois
Date:
November 2, 2003 11:31
Subject:
Re: 5.8.2-RC1 and mp2
Message ID:
69maqvgs0alg36vkfsvoblc6snppg77p4b@4ax.com
On Sun, 02 Nov 2003 10:56:07 -0800, Stas Bekman <stas@stason.org> wrote:

>Jan Dubois wrote:
>> On Sun, 02 Nov 2003 01:00:03 -0800, Stas Bekman <stas@stason.org> wrote:
>> 
>> 
>>>Why do we need two variables? If PL_hash_seed is there only for binary 
>>>compatibility, why not have the two point to the same thing? I've 
>>>s/PL_hash_seed/PL_new_hash_seed/ in hv.[ch] and I've got everything working as 
>>>well.
>> 
>> 
>> The reason for keeping PL_hash_seed permanently set to 0 is to maintain
>> binary compatibility with 5.8.1.  Modules compiled with the 5.8.1. version
>> of hv.h are using it in their PERL_HASH expansion *before* the new
>> rehashing scheme kicks in.
>
>It wasn't 0, but 0 or PL_hash_seed in 5.8.1, dependinig on the compilation 
>flags. mod_perl 2.0 sets PL_hash_seed for 5.8.1. At the moment (21616) 
>PL_hash_seed ignores env var PERL_HASH_SEED.

Which is exactly how it should be: PL_hash_seed is 0, so modules compiled
with 5.8.0, 5.8.1 and 5.8.2 will *all* use the same hashing function in XS
code _when_ running under 5.8.2.  Which is what binary compatibility is
about.

I understand that those modules compiled with 5.8.1 or 5.8.2 will use a
different hashing function than modules compiled under 5.8.0 _when_
running under 5.8.1.  This is why 5.8.1 is not binary compatible.

Cheers,
-Jan

PS: Of course, if Perl 5.8.1 has been explicitly configured with
-DPERL_HASH_SEED=123456, then there still won't be binary compatibility.
But I doubt anybody actually did that (using a fixed, built-in
PERL_HASH_SEED).

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About