|
|
Choosing A Webhost: |
Re: [patch] shutting down 'constant sub redefined' in Apache::Reload: msg#00277apache.mod-perl.devel
On Mon, 2003-05-26 at 15:46, Stas Bekman wrote: > Currently if you have used a constant sub in your code, Apache::Reload will > complain every time the code is reloaded. And for a good reason: > http://groups.google.com/groups?threadm=20020519214851.3981.qmail%40airtrout.tregar.com > http://archive.develooper.com/perl5-changes%40perl.org/msg04919.html > > However it's a bad thing not being able to shut those warning, if you know > that you didn't modify the constant subs. The approach suggested by Rafael is > to use $SIG{__WARN__} override, only for those who know what they are doing: > > PerlSetVar ReloadNoWarningsConstantRedefine on > > here is the patch. Not sure if that variable is not too long... may be > shouldn't use reverse logic but: > > PerlSetVar ReloadWarningsConstantRedefine off > > with 'on' being the default. Sure prefers non-reverse logic myself ;-) > better name suggestions are welcome as well. PerlSetVar ReloadAllowConstantRedefine on/off ??? > Index: lib/Apache/Reload.pm > =================================================================== > RCS file: /home/cvs/modperl-2.0/lib/Apache/Reload.pm,v > retrieving revision 1.10 > diff -u -r1.10 Reload.pm > --- lib/Apache/Reload.pm 8 May 2003 00:31:27 -0000 1.10 > +++ lib/Apache/Reload.pm 26 May 2003 07:38:31 -0000 > @@ -63,6 +63,9 @@ > > my $TouchFile = ref($o) && $o->dir_config("ReloadTouchFile"); > > + my $NoWarningsConstantRedefine = ref($o) && > + (lc($o->dir_config("ReloadNoWarningsConstantRedefine") || '') eq > 'on');; > + > my $TouchModules; > > if ($TouchFile) { > @@ -141,6 +144,8 @@ > undef %{$symref}; > } > no warnings FATAL => 'all'; > + local $SIG{__WARN__} = \&skip_redefine_const_sub_warn > + if $NoWarningsConstantRedefine; > require $key; > warn("Apache::Reload: process $$ reloading $key\n") > if $DEBUG; > @@ -149,6 +154,11 @@ > } > > return Apache::OK; > +} > + > +sub skip_redefine_const_sub_warn { > + return if $_[0] =~ /^Constant subroutine [\w:]+ redefined at/; > + CORE::warn(@_); > } > > 1; > I am not sure about this one, but I would say that this will cut the grass from under the feet of a module that installed his/her own SIG{__WARN__} handler, won't it ? Wouldn't it be possible for Apache::Reload to somehow turn off the CONST flag on that CV before attempting to re-define it? (didn't check if that's even remotly possibly) > __________________________________________________________________ > Stas Bekman JAm_pH ------> Just Another mod_perl Hacker > http://stason.org/ mod_perl Guide ---> http://perl.apache.org > mailto:stas@xxxxxxxxxx http://use.perl.org http://apacheweek.com > http://modperlbook.org http://apache.org http://ticketmaster.com > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@xxxxxxxxxxxxxxx > For additional commands, e-mail: dev-help@xxxxxxxxxxxxxxx -- -- ----------------------------------------------------------------------------- Philippe M. Chiasson /gozer\@(cpan|ectoplasm)\.org/ 88C3A5A5 (122FF51B/C634E37B) http://gozer.ectoplasm.org/ F9BF E0C2 480E 7680 1AE5 3631 CB32 A107 88C3 A5A5 Q: It is impossible to make anything foolproof because fools are so ingenious. perl -e'$$=\${gozer};{$_=unpack(P7,pack(L,$$));/^JAm_pH\n$/&&print||$$++&&redo}'
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: [mp2.0] make test fails; mod_perl also does not work, Stas Bekman |
|---|---|
| Next by Date: | Re: [mp2.0] make test fails; mod_perl also does not work, Olaf Bohlen |
| Previous by Thread: | [patch] shutting down 'constant sub redefined' in Apache::Reload, Stas Bekman |
| Next by Thread: | Re: [patch] shutting down 'constant sub redefined' in Apache::Reload, Stas Bekman |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
Free MagazinesCisco NewsReceive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business. subscribe Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field. subscribe The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business. subscribe Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company. subscribe Total Telecom Total Telecom is "The Economist of the communications industry". subscribe |