assume, assert, enforce, @safe

Dicebot via Digitalmars-d digitalmars-d at puremagic.com
Wed Jul 30 18:15:03 PDT 2014


On Wednesday, 30 July 2014 at 22:01:23 UTC, Walter Bright wrote:
> I am not terribly good at writing formal legalese 
> specifications for this. I welcome PR's to improve the 
> specification along these lines, if you find any Aha! Gotcha! 
> issues in it. Of course, implementation errors for this in DMD 
> should be reported on bugzilla.

What is missing is not formal specification but clear guidelines 
"how to use this system in production". Right now it is pretty 
clear that you have implemented something that non-zero amount of 
experienced D developers have no clue how to use without botching 
the application completely. This does indicate that something is 
wrong with the feature even you are perfectly right theoretically.

Currently there is http://dlang.org/contracts.html but neither it 
nor any of referenced materials does explain to me:

- how to distribute binary library packages in presence of 
contracts
- how to organize your application to ensure that contracts can 
be removed in release builds
- are those even applicable to majority of applications

I am less concerned with just assert behavior because there are 
many ways to workaround it to get different semantics. But 
contract system... no clues.


More information about the Digitalmars-d mailing list