Paolo Bonzini <pbonz...@redhat.com> writes:

> On 24/08/2017 12:09, Markus Armbruster wrote:
>> Cut-and-paste cuts both ways (pardon the pun):
>> 
>>     initialize with QTestState A
>>     frobnicate with QTestState A
>>     glomnify with QTestState A
>>     frobnicate with QTestState A
>>     initialize with QTestState B
>>     boingboing with QTestState B
>>     finalize with QTestState A
>>     finalize with QTestState A
>> 
>> Uh, forgot to frobnicate after boingboing, let me fix that real quick!
>> 
>>     initialize with QTestState A
>>     frobnicate with QTestState A
>>     glomnify with QTestState A
>>     frobnicate with QTestState A
>>     initialize with QTestState B
>>     boingboing with QTestState B
>>     frobnicate with QTestState A
>>     finalize with QTestState A
>>     finalize with QTestState A
>> 
>> Spot the pasto.
>>
>> This hasty paste would simply work with global_qtest.  I'm not claiming
>> there are cases that are just the opposite.  I'm just challenging your
>> apparent claim that the long forms help with avoiding or catching
>> pastos.  Can you explain how they help more than they hurt?
>
> A pasto without global_qtest is local.
>
> But cut-and-paste that involves _assigning_ global_qtest, even if it
> doesn't have cut-and-paste mistakes, may create a mess of functions
> knowing^Wbelieving they know what global_qtest is.
>
> Assigning global_qtest means the short-form functions have effectively
> dynamic binding.  In a perfect world, global_qtest would be static and
> the create-and-assign-global would assert(!global_qtest).  Then >1 VM ->
> don't use the short forms.

No consensus, status quo wins by default.

Since I find work of maintaining that status quo quite aggravating, I'll
do my best to dump it one someone with different sensibilities.

Reply via email to