Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-10 Thread Jonathan Field
Thanks, all, for the prompt attention. I will update my coding habits accordingly :) Cheers On Wed, 10 Dec 2003, Stas Bekman wrote: > I've pinged Doug and the final verdict is this: > >The print-a-scalar-reference feature is now deprecated. There are >known bugs when using it and it's n

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-10 Thread Stas Bekman
I've pinged Doug and the final verdict is this: The print-a-scalar-reference feature is now deprecated. There are known bugs when using it and it's not supported by mod_perl 2.0. If you have a scalar reference containing a string to be printed, dereference it before sending it to print. It

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-03 Thread Rafael Garcia-Suarez
Stas Bekman wrote: > Actually I think the current code has another bug. If you do: > >my $x = 1; >print(\$x); > > I'd expect it to print 1 and it won't, because $x is IV and not PV. So I'd > completely drop any checks for PV, and coerce any reference into PV, like so: > > SV *s

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-03 Thread Stas Bekman
Rafael Garcia-Suarez wrote: Stas Bekman wrote: But you forget that nobody is going pass SVt_PVBM scalar to print(). Why would they? Do you have a concrete example of someone trying to send a scalar of type > PV to print? Rafael, can you think of such an example? Reference to magic scalars ? (\

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-03 Thread Rafael Garcia-Suarez
Stas Bekman wrote: > > But you forget that nobody is going pass SVt_PVBM scalar to print(). Why would > they? Do you have a concrete example of someone trying to send a scalar of > type > PV to print? Rafael, can you think of such an example? Reference to magic scalars ? (\$1) to arrays ? to ha

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-03 Thread Stas Bekman
Frank Maas wrote: Let's do this: try to fix it in the next version. If someone discovers that we broke their code we will revert it. How does it sound? Gee... not on a technical, but more on a philosophical side: is this a wise thing to do? It means that you have to be damm sure that someone (a)

RE: [BUG] Inconsistent $r->print() behavior with references

2003-12-03 Thread Frank Maas
> Let's do this: try to fix it in the next version. If someone > discovers that we broke their code we will revert it. How does it > sound? Gee... not on a technical, but more on a philosophical side: is this a wise thing to do? It means that you have to be damm sure that someone (a) can find out

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Stas Bekman
Geoffrey Young wrote: Let's do this: try to fix it in the next version. If someone discovers that we broke their code we will revert it. How does it sound? well, of course - we wouldn't leave broken code laying around just for fun. the issue really is how important you think it is to be stable,

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Geoffrey Young
> Let's do this: try to fix it in the next version. If someone discovers > that we broke their code we will revert it. How does it sound? well, of course - we wouldn't leave broken code laying around just for fun. the issue really is how important you think it is to be stable, and exactly what t

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Jonathan Field
> Rafael Garcia-Suarez suggested to: > > - SV *sv = SvROK(ST(i)) && (SvTYPE(SvRV(ST(i))) == SVt_PV); > + SV *sv = SvROK(ST(i)) && (SvTYPE(SvRV(ST(i))) >= SVt_PV); > > Jonathan, have you verified that it fixes your problem? Yes. I just tried this change with Apache/1.3.27 (Unix) mod_perl/1.27 m

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Stas Bekman
Geoffrey Young wrote: [..] - SV *sv = SvROK(ST(i)) && (SvTYPE(SvRV(ST(i))) == SVt_PV); + SV *sv = SvROK(ST(i)) && (SvTYPE(SvRV(ST(i))) >= SVt_PV); +1 to fix this bug. [...] but do you really want to derefernce a SVt_PVFM? the implications here are far beyond my reach. formats don't work with mod_

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Geoffrey Young
Stas Bekman wrote: > Rafael Garcia-Suarez suggested to: > > - SV *sv = SvROK(ST(i)) && (SvTYPE(SvRV(ST(i))) == SVt_PV); > + SV *sv = SvROK(ST(i)) && (SvTYPE(SvRV(ST(i))) >= SVt_PV); > > +1 to fix this bug. > > Jonathan, have you verified that it fixes your problem? > > Geoffrey Young then s

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Stas Bekman
Rafael Garcia-Suarez suggested to: - SV *sv = SvROK(ST(i)) && (SvTYPE(SvRV(ST(i))) == SVt_PV); + SV *sv = SvROK(ST(i)) && (SvTYPE(SvRV(ST(i))) >= SVt_PV); +1 to fix this bug. Jonathan, have you verified that it fixes your problem? Geoffrey Young then said: > but do you really want to derefern

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Stas Bekman
Ged Haywood wrote: Ged, please don't do that again. Imagine others starting to post this kind of requests here. We ask people not to post general perl questions here and you post a hardware sales request... That's just plain impolite to people. --

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Jonathan Field
> But anyway, just thought I'd comment that the reason I think most mod_perl > developers would think to use that functionality would be memory, rather > than speed. Pretty much all of our mod_perl servers are memory bound > rather than CPU bound, and are "fast enough" without much optimization. T

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Andrew Ho
Hello, JF>Measurable, but also negligable (code below): JF> JF>Benchmark: timing 5 iterations of ref, val... JF> ref: 3 wallclock secs ( 2.72 usr + 0.12 sys = 2.84 CPU) @ 17605.63/s (n=5) JF> val: 7 wallclock secs ( 6.05 usr + 0.18 sys = 6.23 CPU) @ 8025.68/s (n=5) So, we use

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Jonathan Field
Thanks for the info. It all makes some sort of sense :) Jonathan Field On Tue, 2 Dec 2003, Rafael Garcia-Suarez wrote: > Jonathan Field wrote: > > I was surprised that the "SCALAR(0x8ca70e4)" output was identical on > > subsequent requests to a child -- indicating to me that the ref (and what >

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Jonathan Field
> My intuition tells me that the performance gain is not mesureable anyway. Measurable, but also negligable (code below): Benchmark: timing 5 iterations of ref, val... ref: 3 wallclock secs ( 2.72 usr + 0.12 sys = 2.84 CPU) @ 17605.63/s (n=5) val: 7 wallclock secs ( 6.05 usr + 0.

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Rafael Garcia-Suarez
Jonathan Field wrote: > I was surprised that the "SCALAR(0x8ca70e4)" output was identical on > subsequent requests to a child -- indicating to me that the ref (and what > it was refering to) may have survived the request cycle? I guess would > have expected a different ref, especially after runnin

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Ged Haywood
Hi there, On Tue, 2 Dec 2003, Jonathan Field wrote: > I was surprised that the "SCALAR(0x8ca70e4)" output was identical on > subsequent requests to a child -- indicating to me that the ref (and what > it was refering to) may have survived the request cycle? > [snip] > Just my thoughts as a curiou

[OT] RE: [mod_perl] Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Jonathan M. Hollin
> When I first started working with computers they used to say > that the cost of the software was roughly equal to the cost > of the hardware. Now they say that the cost of the hardware > is roughly zero. Aw gee - can I have some of that hardware that costs zero please. Specifically a couple o

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Jonathan Field
> I'm not sure what you mean here. > Note that *variables* are lexically scoped, but not values. I was surprised that the "SCALAR(0x8ca70e4)" output was identical on subsequent requests to a child -- indicating to me that the ref (and what it was refering to) may have survived the request cycle?

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Rafael Garcia-Suarez
Jonathan Field wrote: > > I am curious why the feature is to be disabled in 2.x? Not questioning > the judgement, but wondering if it was determined to not be a worthwhile > performance gain? Or is it just too complex internally despite the gain? My intuition tells me that the performance gain

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Ged Haywood
Hi there, On Tue, 2 Dec 2003, Jonathan Field wrote: > I am curious why the feature is to be disabled in 2.x? Not questioning > the judgement, but wondering if it was determined to not be a worthwhile > performance gain? I'm sure the performance impact is negligible. If you're looking for perfo

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Jonathan Field
If I may follow up -- I am curious why the feature is to be disabled in 2.x? Not questioning the judgement, but wondering if it was determined to not be a worthwhile performance gain? Or is it just too complex internally despite the gain? I am always looking to squeeze the last bit of performace

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Rafael Garcia-Suarez
Ged Haywood wrote: > I was talking about fixing a fault which is partly the result of a > daft and deprecated feature which has caused confusion in the past. Is it documented to be deprecated ? does it issue a deprecation warning ? (ideally when warnings 'deprecated' is on with perl 5.6 or higher)

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Ruslan U. Zakirov
Geoffrey Young wrote: Ged Haywood wrote: Shouldn't we in fact be changing something? My view would be that the dereferencing facility should be removed from the standard build but left as a non-default compilation option for those that need it to support old code. A message to STDERR to the e

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Ged Haywood
Hi Geoff, On Tue, 2 Dec 2003, Geoffrey Young wrote: > the danger here is changing the stable tree willy nilly. I was talking about fixing a fault which is partly the result of a daft and deprecated feature which has caused confusion in the past. Of course I thoroughly agree that changes to the s

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Geoffrey Young
Ged Haywood wrote: > Hi all, > > On Tue, 2 Dec 2003, Geoffrey Young wrote: > > >>it's fun to track this kind of stuff down, even >>if we end up not changing anything :) > > > Shouldn't we in fact be changing something? > > My view would be that the dereferencing facility should be removed >

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Rafael Garcia-Suarez
Geoffrey Young wrote: > >>I think the issue is that after your manipulations $dataref is no longer a > >>plain PV. I used Devel::Peek to look at $dataref before and after and it > >>changes from a PV to PVMG. where this trips up mod_perl is in > >>Apache::write_client: > >> > >>SV *sv = S

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Geoffrey Young
Rafael Garcia-Suarez wrote: > Geoffrey Young wrote: > >>I think the issue is that after your manipulations $dataref is no longer a >>plain PV. I used Devel::Peek to look at $dataref before and after and it >>changes from a PV to PVMG. where this trips up mod_perl is in >>Apache::write_client:

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Ged Haywood
Hi all, On Tue, 2 Dec 2003, Geoffrey Young wrote: > it's fun to track this kind of stuff down, even > if we end up not changing anything :) Shouldn't we in fact be changing something? My view would be that the dereferencing facility should be removed from the standard build but left as a non-de

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Rafael Garcia-Suarez
Geoffrey Young wrote: > I think the issue is that after your manipulations $dataref is no longer a > plain PV. I used Devel::Peek to look at $dataref before and after and it > changes from a PV to PVMG. where this trips up mod_perl is in > Apache::write_client: > > SV *sv = SvROK(ST(i))

Re: [BUG] Inconsistent $r->print() behavior with references

2003-12-02 Thread Geoffrey Young
Jonathan Field wrote: > Hi all, > > This is my first mod_perl bug report, so I'd like to start by thanking you > all for your great work over the years. > > The problem I am experiencing involves passing a scalar reference (instead > of a scalar) to $r->print(). It usually works as documented.

[BUG] Inconsistent $r->print() behavior with references

2003-12-01 Thread Jonathan Field
Hi all, This is my first mod_perl bug report, so I'd like to start by thanking you all for your great work over the years. The problem I am experiencing involves passing a scalar reference (instead of a scalar) to $r->print(). It usually works as documented. However I have come across a situati