Brent Dax wrote:

I have issues with this patch.

Leopold Toetsch:
# PIO_eprintf can fallback to vfprintf(3), when no
# interpreter is supplied, which means that we should have compatible
# format chars for basic data types.

First of all, spf_render.c:18-20:
        /* Per Dan's orders, we will not use sprintf if snprintf isn't
         * around for us.
         */

So we can't use vfprintf, unless Dan thinks otherwise.

Sorry, I don't get that. I see/know the point WRT sprintf, but all what we need is early on interpreter startup to be able to utter some (error) messages. These go straightly to stdout/stderr, that's it. No buffer involved. For this part of code - and for nothing else, its desirable, that you also can format INTVALs and much less FLOATVALs.



The problem here is that Windows uses a different flag for long
ints--IIRC, they want you to use %I64d (no, I am not kidding).  They
don't seem to support long floats at all.

That's a oonfigure issue.



I chose the 'H' size for long floats *because* it would not overlap with
any system types, and I believe the correct solution is to somehow make
sure that Parrot_sprintf can be called with a NULL interpreter.

I don't think, that we need this. There is always an interpreter except during constructiing or destroying the first/last. For these 2 steps, we want a message stating a possible problem, thats it - IMHO.
Checking in several places for a valid interpreter - the whole call sequence up to memory allocation is something what I really don't like.



[2] Or not compile. I'm not sure which Parrot currently does for
systems with no snprintf.

I don't see a problem with vfprintf.



--Brent Dax <[EMAIL PROTECTED]>

leo




Reply via email to