Re: pgsql: Work around for perl 5.10 bug - fix due to perl hacker Simon
От | Andrew Dunstan |
---|---|
Тема | Re: pgsql: Work around for perl 5.10 bug - fix due to perl hacker Simon |
Дата | |
Msg-id | 479F8151.40401@dunslane.net обсуждение исходный текст |
Ответ на | Re: pgsql: Work around for perl 5.10 bug - fix due to perl hacker Simon (Bruce Momjian <bruce@momjian.us>) |
Список | pgsql-committers |
Bruce Momjian wrote: > Andrew Dunstan wrote: > >> I don't actually have a lot of information. Simon told me that, due to a >> change in behaviour which he described as a bug, we need to enable the >> caller opcode during the load of the strict module, and that we could >> turn it off again once the module was imported. That's what I did (after >> testing). It's a tiny and quite safe change. If you like I will add a >> note to the code saying why it's there. >> > > If 'require' is the typical way of doing this, and 'requier caller' is a > rare method, then the big problem is not the commit message but the lack > of description in the code as to why we are doing this. It is unlikely > anyone will remember why we made this change, and what version of Perl > it is supposed to fix so we can revert it later perhaps. > > > We are not doing "require caller". "require" and "caller" are the names of two separate sets of opcodes. We always needed "require" here, as that is what we need enabled to execute the "use strict" instruction (or indeed any "use" instruction). We added the "caller" opcode to the list of allowed directives, because the Safe module now apparently uses it when loading a module (e.g. when doing "use Foo;"). Anyway, as you saw later, I have added a comment to the code. Don't be surprised if this never gets fixed in Perl - it's more likely that they will document the behaviour, I think. cheers andrew
В списке pgsql-committers по дате отправления: