develooper Front page | perl.perl5.porters | Postings from December 2017

Re: [perl #132577] BBC Module::Install broken by0301e899536a22752f40481d8a1d141b7a7dda82

Thread Previous | Thread Next
Sawyer X
December 19, 2017 15:34
Re: [perl #132577] BBC Module::Install broken by0301e899536a22752f40481d8a1d141b7a7dda82
Message ID:

On 12/18/2017 07:39 PM, Father Chrysostomos via RT wrote:
> On Mon, 18 Dec 2017 07:39:32 -0800, wrote:
>> On 12/17/2017 09:17 PM, Father Chrysostomos via RT wrote:
>>> On Sun, 17 Dec 2017 03:06:01 -0800, wrote:
>>>> On 12/13/2017 12:04 AM, Leon Timmermans wrote:
>>>>> On Tue, Dec 12, 2017 at 11:03 PM, Leon Timmermans <
>>>>> <>> wrote:
>>>>> On Tue, Dec 12, 2017 at 8:13 PM, Zefram <
>>>>> <>> wrote:
>>>>> However, as far as I can see there's no need at all for the
>>>>> module to
>>>>> delay execution of the code it generates by putting it in an
>>>>> INIT block.
>>>>> If that code is instead executed immediately, by deleting the
>>>>> word "INIT"
>>>>> to turn it into a bare block, everything works.  With that
>>>>> alteration
>>>>> to the module, the Module-Install distro passes its test suite.
>>>>> Given Module::Install's rather unfortunate bundling nature, that
>>>>> would require rereleasing all 119 distributions using it to be
>>>>> rereleased with such a new Module::Install.
>>>>> Well, all 119 modules using Module::Install::DSL, Module::Install
>>>>> in
>>>>> general has quite a few more users.
>>>> That is indeed a pain.
>>> I seem to remember an old blog or list post by Michael Schwern
>>> predicting this very problem with Module::Install.
>>>> What is the cost of reverting this commit instead?
>>> Buggy, unpredictable behaviour, unless you can memorise the list of
>>> complex rules for when exit does and does not prevent other blocks
>>> from running.
>> Are you referring to long-term or immediate effect?
> I’m referring to the bugs that Zefram fixed, which went even deeper than Zefram realized when he was fixing them.  So at present nobody but he can predict which blocks will trigger at what time if ‘exit’ is used in them.
>> I'm wondering about temporary revert.
> That might be a good approach: revert and then reinstate after 5.28.  In the mean time, a bunch of modules need to be released.

Exactly. A better phrasing for my question is "How problematic would it
be to postpone this fix to after 5.28 so we could fix the modules and

Zefram, can you please weigh in here?

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About