digitalmars.D.bugs - printf. Must. Die.
- =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= (20/20) Dec 14 2005 OK, not really perish - just move back to std.c.stdio ?
- Don Clugston (18/32) Dec 14 2005 It seems to be mostly used in unit tests.
- clayasaurus (2/7) Dec 17 2005 Also used here http://www.digitalmars.com/d/code_coverage.html
OK, not really perish - just move back to std.c.stdio ?
Having it "implicitly" defined in object.d only:
1) Promotes old bad D coding behaviour
("forgetting" to import std.c.stdio)
2) Makes moving to writef seem harder
(since you have to import std.stdio)
3) Adds bloat to the std/Phobos library
(by linking in the floating-point stuff)
Might as well remove the print() methods, as well...
Perhaps even move all of Phobos over to using writef ?
It should *definitely* be out before any "D 1.0" release.
--anders
PS. It's used all over the place:
http://www.digitalmars.com/d/overview.html
http://www.digitalmars.com/d/wc.html
http://www.digitalmars.com/d/sdwest/index.html
object.printf: "Die! Die! Die!"
http://www.digitalmars.com/drn-bin/wwwnews?digitalmars.D.bugs/255
http://www.digitalmars.com/drn-bin/wwwnews?digitalmars.D.bugs/3170
http://www.digitalmars.com/drn-bin/wwwnews?digitalmars.D.bugs/3438
Dec 14 2005
Anders F Björklund wrote:
OK, not really perish - just move back to std.c.stdio ?
Having it "implicitly" defined in object.d only:
1) Promotes old bad D coding behaviour
("forgetting" to import std.c.stdio)
2) Makes moving to writef seem harder
(since you have to import std.stdio)
3) Adds bloat to the std/Phobos library
(by linking in the floating-point stuff)
Might as well remove the print() methods, as well...
Perhaps even move all of Phobos over to using writef ?
It seems to be mostly used in unit tests.
I think we really need some way of importing stdio only during unit
tests. Since you can do
debug import std.stdio;
how about something like:
unittest import std.stdio;
or allow:
unittest {
import std.stdio;
}
or at the very least, define version UnitTest so that you can write:
version(UnitTest) {
import std.stdio;
}
It is common for unit tests to have dependencies which are different
from the rest of the module.
In any case, I agree that this should be a 1.0 feature removal.
Dec 14 2005
Anders F Björklund wrote:
PS. It's used all over the place:
http://www.digitalmars.com/d/overview.html
http://www.digitalmars.com/d/wc.html
http://www.digitalmars.com/d/sdwest/index.html
Also used here http://www.digitalmars.com/d/code_coverage.html
Dec 17 2005









Don Clugston <dac nospam.com.au> 