Re: Release Candidate 2.074.0-rc1

2017-04-12 Thread Martin Nowak via Digitalmars-d-announce
On Monday, 10 April 2017 at 20:53:00 UTC, Joseph Rushton Wakeling 
wrote:
You didn't get my messages on slack about the backend license, 
then :-(


I'd assumed that was the fastest way to reach you -- I should 
have filed an issue sooner.


Usually works, but had too much to do to handle another chat 
client in the past few days. The most reliable contact remains 
Mail, and in case of urgency phone.


Re: Release vibe.d 0.7.31

2017-04-12 Thread Martin Nowak via Digitalmars-d-announce

Thanks

On Monday, 10 April 2017 at 20:48:34 UTC, Sönke Ludwig wrote:

  - Compiles on the latest DMD version (2.068.x-2.072.0)


2.068.x-2.074.0, that is



DIP 1006 - Preliminary Review Round 1 Begins

2017-04-12 Thread Mike Parker via Digitalmars-d-announce
DIP 1006 is titled "Providing more selective control over 
contracts". This announcement kicks off the first round of 
preliminary reviews. The review thread can be found in the 
General forum at:


http://forum.dlang.org/post/rsafosvkhxddkxpta...@forum.dlang.org


Re: The New CTFE Engine on the Blog

2017-04-12 Thread Stefan Koch via Digitalmars-d-announce

On Wednesday, 12 April 2017 at 05:51:20 UTC, Ali Çehreli wrote:

On 04/10/2017 06:07 AM, Mike Parker wrote:
Stefan has been diligently keeping us all updated on NewCTFE 
here in the
forums. Now, he's gone to the blog to say something to tell 
the world

about it.

The blog:
https://dlang.org/blog/2017/04/10/the-new-ctfe-engine/

Reddit:
https://www.reddit.com/r/programming/comments/64jfes/an_introduction_to_ds_new_engine_for_compiletime/



The first code sample is

private immutable ubyte[128] uri_flags = // indexed by character
({
// ...
})();

and the text says "The ({ starts a function-literal, the }) 
closes it.". Why the extra parentheses? Just the curly brackets 
works, no?


private immutable ubyte[128] uri_flags = // indexed by character
{
// ...
}();

Ali


Yes it would work.
But I like to distinguish function-literals from blocks :)



Re: automem v0.0.7 - C++ style smart pointers using std.experimental.allocator

2017-04-12 Thread Stanislav Blinov via Digitalmars-d-announce

On Monday, 10 April 2017 at 08:11:37 UTC, Atila Neves wrote:
On Sunday, 9 April 2017 at 13:59:14 UTC, Andrei Alexandrescu 
wrote:


Great. Can RefCounted itself be shared? I learned this is 
important for composition, i.e. you want to make a RefCounted 
a field in another object that is itself shared, immutable etc.


Since it has a destructor, no:

http://forum.dlang.org/post/sqazguejrcdtjimtj...@forum.dlang.org

The only way to do that would be to split it into two. Which I 
guess I could with a template mixin implementing the guts.


Syntax is not the core of the issue, it's not about just marking 
a destructor as shared. Making RefCounted itself shared would 
require implementing some form of synchronization of all the 
'dereference' operations, including assignments. I.e. if we have 
some shared(RefCounted!T) ptr, what should happen when two 
threads simultaneously attempt to do ptr = 
shared(RefCounted!T)(someNewValue) ? Should a library 
implementation even consider this? Or should such synchronization 
be left to client's care? It seems like in this regard 
shared(RefCounted!T) would be no different from shared(T*), which 
brings me to the next point.


On Andrei's comment regarding composition: if we're thinking 
about the design of shared data, IMHO, copying and shared are (or 
at least, should be) mutually exclusive. The only exception being 
references (pointers), and even for those care should be taken 
(which is one of the reasons of even having something like a 
RefCounted). If you can make a copy, there is no reason to share, 
or, conversely, if you intend to share, why would you copy?
From that follows that a shared object should not ever have a 
RefCounted field. A Unique field, perhaps, but not a RefCounted. 
RefCounted's purpose is to be copied, not shared between threads. 
Unless I'm missing something.


Re: Release vibe.d 0.7.31

2017-04-12 Thread Nick Sabalausky (Abscissa) via Digitalmars-d-announce

On 04/10/2017 04:48 PM, Sönke Ludwig wrote:

The 0.7.x branch will continue to be maintained for a short
while, but only bug fixes will be included from now on. Applications
should switch to the 0.8.x branch as soon as possible.



If a library depends on vibe, but wants to allow its users to use either 
0.7.x or 0.8.x, is there a recommended way to do that?


Ie: https://github.com/mysql-d/mysql-native/issues/99