February 12, 2005
Now that we have the new "writef",
how long is it until D 1.0 is here -
is it time to start deprecating "printf"
and "Object.print()" in object.d just yet ?

Like Kris asked, last year:
http://www.digitalmars.com/d/archives/digitalmars/D/bugs/255.html


That is:

> extern (C)
> {   int printf(char *, ...);
> }

and

> class Object
> {
>     void print()
>     {
> 	printf("%.*s\n", toString());
>     }


I know they are just "while debugging",
but isn't D getting stable real soon ? :-)

("print" is totally not needed, and
"printf" really lives in std.c.stdio)


Couldn't they at least be wrapped in
a debug( ) { } statement, or something ?
So that they'll both be stripped out of
the release builds, when done debugging

deprecated could probably work meanwhile
for printf, for the non-debug version ?
(object.printf that is, not the final
std.c.stdio.printf location of course)

> extern(C)
> {
>   debug
>   {
>     int printf(char *, ...);
>   }
>   else
>   {
>     deprecated int printf(char *, ...);
>   }
> }

printf can be a good help while debugging/unittesting,
but it shouldn't be included in the release builds...


It has to go eventually, so better start preparing for it already ?
(will be a huge effort to clean all code up later, if it remains...)

Thomas started to clean up Phobos:
http://www.digitalmars.com/drn-bin/wwwnews?digitalmars.D.bugs/2026



What else is holding off 1.0, besides shared libraries
and debugging information (-g) on Linux ? Phobos, still ?

(I posted patches to a few of the shortcomings of it,
such as for std.format:unittest and std.stdio:writeln)

--anders