On Mon Jun 02 13:08:27 2008, [EMAIL PROTECTED] wrote:
> On Monday 02 June 2008 12:27:17 Bernhard Schmalhofer wrote:
> 
> > The behavior of
> >
> > .sub main
> >
> >   $N0 = 3.14159
> >   say $N0
> >   print $N0
> >   print "\n"
> > .end
> >
> > surprised me, as I got:
> >
> >
> > [EMAIL PROTECTED]:~/devel/Parrot/trunk$ uname -a
> > Linux heist 2.6.24-17-generic #1 SMP Thu May 1 14:31:33 UTC 2008
> i686
> > GNU/Linux
> > [EMAIL PROTECTED]:~/devel/Parrot/trunk$ ./parrot t.pir
> > 3.14159
> > 3.141590
> >
> > Why should 'print' print trailing a '0' and 'say' not?
> 
> The print opcode calls PIO_printf with a format of %f, while the say
> pseudo-opcode calls the say method on a ParrotIO PMC and Parrot
> converts the
> N-register argument into a string by some other means.  This happens
> in
> src/inter_call.c, in convert_arg_from_num(), which calls
> string_from_num() in
> src_string.c with a format of %vg.
> 
> They should probably be consistent, but changing either of them to
> match the
> other causes test failures (though they all look superficial).
> 
> -- c
> 

I'll sign up to do the grunt work to fix the failing tests if someone
makes a decision on what the consistent behavior should be.

Christoph

Reply via email to