vibe.d 0.8.0 and 0.7.31 beta releases

yazd via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Fri Feb 3 04:43:24 PST 2017


On Friday, 3 February 2017 at 12:25:42 UTC, Dominikus Dittes 
Scherkl wrote:
> On Friday, 3 February 2017 at 09:28:26 UTC, yazd wrote:
>> Is it possible to have non- at safe callbacks be part of the 
>> non-deprecated API?
> Why?
> A @safe API allows you to use it within @safe code, but it 
> doesn't require you to also write @safe code.
> Especially if you don't like to annotate your code to be @safe, 
> even if you think it is safe, this doesn't hinders you to use 
> other peoples @safe code.
> Only the reverse is a problem (other people, who like to 
> annotate their code @safe, can't use your code if it is not 
> annotated - so they start to ignore your code even if it would 
> be @safe only because you don't bother).

What you are saying is true when you are the caller, but in this 
case, the callbacks provided to the API are what is required to 
be @safe and accordingly my code is required to be @safe.

For example, this is the signature for `setTimer`:
     Timer setTimer(Duration timeout, void delegate() nothrow 
@safe callback, bool periodic = false) @safe nothrow;

I can't even use `logInfo("%s", ex)` where `ex` is an `Exception` 
in @safe code, because `Exception.toString()` isn't @safe and it 
can't be @safe because it is a virtual function, and there are 
many cases of such problems.


More information about the Digitalmars-d-announce mailing list