On Sat, 09 Oct 2010 14:44:41 +0400, Jonathan M Davis <jmdavisp...@gmx.com>
wrote:
On Saturday 09 October 2010 03:25:48 Denis Koroskin wrote:
Well, I meant they are conceptually pure.
Yes, they are conceptually pure, just not actually pure.
But do believe you shouldn't be able to use writeln in code like that.
Why
would you do it anyway? It's more or less like using assert just for a
console output:
try {
assert(false, "message");
} catch {
}
Put your logging stuff into the body, not into the contracts.
It's for debugging, not logging. It's highly useful for stuff like
figuring out
which a contract is failing. That's the main reason why contracts are
only
conceptually pure rather than actually pure.
- Jonathan M Davis
Why not just throw an exception and get a nice stack trace?