[MLton] %zu printf formatter does not port

Ville Laurikari ville at laurikari.net
Wed Aug 15 03:23:29 PDT 2007


Hi,

On HP-UX, printf does not implement the "z" length specifier (for
printing size_t values).  GCC is not aware that %z does not work, and
gives no warning.

I suppose it's OK to change the occurrences of %zu to a macro.  This
would be defined by the appropriate platform/<os>.h to something which
works on the current platform.

How does PRIusz (accompanied with FMTusz) sound?  It appears that for
size_t there are no predefined macros in the spirit of PRIu32 and
friends.  We would then also need a typedef to cast printf arguments
to match the printf formatter.  This could be called "priusz".

Alternatively, we could cast size_t to uintmax_t and use PRIuMAX for
printing.  The advantage with this would be that the printf macros are
already defined so there would be less changes overall.

Opinions?

--
http://www.iki.fi/vl/



More information about the MLton mailing list