Jump to page: 1 229  
Page
Thread overview
DIP69 - Implement scope for escape proof references
Dec 04, 2014
Walter Bright
Dec 04, 2014
eles
Dec 04, 2014
Walter Bright
Dec 04, 2014
eles
Dec 04, 2014
ketmar
Dec 04, 2014
eles
Dec 11, 2014
Shammah Chancellor
Dec 11, 2014
ketmar
Dec 11, 2014
zeljkog
Dec 04, 2014
ketmar
Dec 04, 2014
Walter Bright
Dec 04, 2014
H. S. Teoh
Dec 04, 2014
H. S. Teoh
Dec 04, 2014
Walter Bright
Dec 04, 2014
John Colvin
Dec 04, 2014
Marc Schütz
Dec 04, 2014
Martin Nowak
Dec 04, 2014
Walter Bright
Dec 04, 2014
Martin Nowak
Dec 04, 2014
Walter Bright
Dec 05, 2014
Walter Bright
Dec 05, 2014
bearophile
Dec 04, 2014
H. S. Teoh
Dec 06, 2014
Nick Treleaven
Dec 04, 2014
Martin Nowak
Dec 04, 2014
Martin Nowak
Dec 05, 2014
Walter Bright
Dec 04, 2014
bearophile
Dec 04, 2014
bearophile
Dec 04, 2014
Walter Bright
Dec 04, 2014
bearophile
Dec 05, 2014
Walter Bright
Dec 08, 2014
bearophile
Dec 10, 2014
Walter Bright
Dec 05, 2014
ketmar
Dec 05, 2014
H. S. Teoh
Dec 05, 2014
Daniel Murphy
Dec 05, 2014
Tobias Pankrath
Dec 05, 2014
ketmar
Dec 05, 2014
ixid
Dec 05, 2014
bearophile
Dec 05, 2014
ixid
Dec 07, 2014
Nick Treleaven
Dec 07, 2014
bearophile
Dec 04, 2014
Kagamin
Dec 04, 2014
Walter Bright
Dec 04, 2014
Daniel N
Dec 04, 2014
Tobias Pankrath
Dec 04, 2014
H. S. Teoh
Dec 04, 2014
Walter Bright
Dec 06, 2014
Manu
Dec 04, 2014
Daniel Murphy
Dec 04, 2014
Tobias Pankrath
Dec 04, 2014
Walter Bright
Dec 04, 2014
deadalnix
Dec 04, 2014
Walter Bright
Dec 04, 2014
Walter Bright
Dec 04, 2014
H. S. Teoh
Dec 05, 2014
Walter Bright
Dec 08, 2014
Marc Schütz
Dec 08, 2014
Marc Schütz
Dec 04, 2014
H. S. Teoh
Dec 04, 2014
Walter Bright
Dec 04, 2014
H. S. Teoh
Dec 04, 2014
Walter Bright
Dec 04, 2014
H. S. Teoh
Dec 05, 2014
Walter Bright
Dec 05, 2014
H. S. Teoh
Dec 04, 2014
H. S. Teoh
Dec 05, 2014
Walter Bright
Dec 04, 2014
Walter Bright
Dec 04, 2014
Basile Burg
Dec 05, 2014
Walter Bright
Dec 04, 2014
deadalnix
Dec 05, 2014
Walter Bright
Dec 05, 2014
H. S. Teoh
Dec 05, 2014
Walter Bright
Dec 05, 2014
deadalnix
Dec 05, 2014
Walter Bright
Dec 05, 2014
deadalnix
Dec 06, 2014
Walter Bright
Dec 08, 2014
deadalnix
Dec 05, 2014
Walter Bright
Dec 06, 2014
Sebastiaan Koppe
Dec 07, 2014
Sebastiaan Koppe
Dec 07, 2014
eles
Dec 08, 2014
deadalnix
Dec 09, 2014
deadalnix
Dec 10, 2014
eles
Dec 10, 2014
deadalnix
Dec 11, 2014
deadalnix
Dec 11, 2014
bearophile
Dec 11, 2014
deadalnix
Dec 11, 2014
Nick Treleaven
Dec 11, 2014
bearophile
Dec 12, 2014
deadalnix
Dec 11, 2014
deadalnix
Dec 14, 2014
Walter Bright
Dec 08, 2014
zeljkog
Dec 11, 2014
Shammah Chancellor
Dec 11, 2014
zeljkog
Dec 05, 2014
Marc Schütz
Dec 05, 2014
Walter Bright
Dec 06, 2014
bearophile
Dec 06, 2014
Manu
Dec 06, 2014
Jacob Carlborg
Dec 06, 2014
Piotrek
Dec 08, 2014
deadalnix
Dec 06, 2014
Marc Schütz
Dec 06, 2014
bearophile
Dec 06, 2014
Walter Bright
Dec 07, 2014
Manu
Dec 07, 2014
Walter Bright
Dec 07, 2014
Daniel Murphy
Dec 08, 2014
deadalnix
Dec 07, 2014
Jacob Carlborg
Dec 07, 2014
Iain Buclaw
Dec 07, 2014
Jacob Carlborg
Dec 06, 2014
Marc Schütz
Dec 06, 2014
Walter Bright
Dec 07, 2014
Sebastiaan Koppe
Dec 08, 2014
Walter Bright
Dec 08, 2014
deadalnix
Dec 10, 2014
Walter Bright
Dec 10, 2014
deadalnix
Dec 11, 2014
Walter Bright
Dec 11, 2014
deadalnix
Dec 11, 2014
Walter Bright
Dec 11, 2014
deadalnix
Dec 11, 2014
Walter Bright
Dec 07, 2014
Nick Treleaven
Dec 06, 2014
Daniel N
Dec 06, 2014
Marc Schütz
Dec 07, 2014
Dicebot
Dec 07, 2014
Walter Bright
Dec 07, 2014
bearophile
Dec 07, 2014
Walter Bright
Dec 09, 2014
Nick Treleaven
Dec 09, 2014
Nick Treleaven
Dec 11, 2014
Nick Treleaven
Dec 12, 2014
deadalnix
Dec 08, 2014
Dicebot
Dec 08, 2014
Marc Schütz
Dec 08, 2014
Dicebot
Dec 08, 2014
Walter Bright
Dec 08, 2014
Dicebot
Dec 08, 2014
Walter Bright
Dec 08, 2014
Tobias Müller
Dec 08, 2014
Walter Bright
Dec 08, 2014
Dicebot
Dec 08, 2014
Walter Bright
Dec 08, 2014
Dicebot
Dec 09, 2014
Walter Bright
Dec 10, 2014
Dicebot
Dec 11, 2014
Walter Bright
Dec 11, 2014
Dicebot
Dec 11, 2014
Walter Bright
Dec 12, 2014
Dicebot
Dec 12, 2014
Walter Bright
Dec 08, 2014
deadalnix
Dec 08, 2014
Dicebot
Dec 08, 2014
deadalnix
Dec 08, 2014
deadalnix
Dec 08, 2014
Dicebot
Dec 11, 2014
Manu
Dec 11, 2014
ixid
Dec 12, 2014
Manu
Dec 11, 2014
Marc Schütz
Dec 11, 2014
John Colvin
Dec 11, 2014
Walter Bright
Dec 12, 2014
deadalnix
Dec 12, 2014
Dicebot
Dec 13, 2014
Walter Bright
Dec 13, 2014
Jacob Carlborg
Dec 13, 2014
Walter Bright
Dec 15, 2014
Dicebot
Dec 15, 2014
Walter Bright
Dec 15, 2014
Dicebot
Dec 15, 2014
Walter Bright
Dec 15, 2014
Dicebot
Dec 16, 2014
Walter Bright
Dec 15, 2014
Marc Schütz
Dec 16, 2014
Walter Bright
Dec 15, 2014
Marc Schütz
Dec 15, 2014
Dicebot
Dec 15, 2014
Marc Schütz
Dec 15, 2014
deadalnix
Dec 16, 2014
Walter Bright
Dec 16, 2014
deadalnix
Dec 17, 2014
Walter Bright
Dec 17, 2014
bearophile
Dec 17, 2014
Marc Schütz
Dec 17, 2014
Marc Schütz
Dec 17, 2014
deadalnix
Dec 20, 2014
Dicebot
Dec 20, 2014
Walter Bright
Dec 21, 2014
Dicebot
Dec 22, 2014
Walter Bright
Dec 22, 2014
Dicebot
Dec 22, 2014
Walter Bright
Dec 29, 2014
Dicebot
Dec 12, 2014
Marc Schütz
Dec 13, 2014
Walter Bright
Dec 12, 2014
Manu
Dec 12, 2014
Marc Schütz
Dec 12, 2014
Manu
Dec 12, 2014
Marc Schütz
Dec 12, 2014
deadalnix
Dec 12, 2014
deadalnix
Dec 11, 2014
Walter Bright
Dec 11, 2014
Dmitry Olshansky
Dec 11, 2014
John Colvin
Dec 12, 2014
Manu
Dec 12, 2014
Walter Bright
Dec 12, 2014
Dicebot
Dec 12, 2014
deadalnix
Dec 12, 2014
Dicebot
Dec 12, 2014
Walter Bright
Dec 12, 2014
Dicebot
Dec 12, 2014
Walter Bright
Dec 12, 2014
deadalnix
Dec 12, 2014
Walter Bright
Dec 12, 2014
deadalnix
Dec 12, 2014
Walter Bright
Dec 12, 2014
deadalnix
Dec 12, 2014
Walter Bright
Dec 12, 2014
deadalnix
Dec 13, 2014
Walter Bright
Dec 13, 2014
deadalnix
Dec 13, 2014
Walter Bright
Dec 13, 2014
Walter Bright
Dec 13, 2014
deadalnix
Dec 13, 2014
Walter Bright
Dec 12, 2014
Manu
Dec 12, 2014
Walter Bright
Dec 13, 2014
Manu
Dec 13, 2014
Walter Bright
Dec 13, 2014
bearophile
Dec 13, 2014
Walter Bright
Dec 15, 2014
deadalnix
Dec 13, 2014
Jacob Carlborg
Dec 13, 2014
Walter Bright
Dec 14, 2014
Manu
Dec 14, 2014
Paolo Invernizzi
Dec 14, 2014
ketmar
Dec 14, 2014
Marc Schütz
Dec 14, 2014
Walter Bright
Dec 15, 2014
John Colvin
Dec 13, 2014
Max Samukha
Dec 13, 2014
Walter Bright
Dec 11, 2014
Shammah Chancellor
Dec 11, 2014
Shammah Chancellor
December 04, 2014
http://wiki.dlang.org/DIP69

Despite its length, this is a fairly simple proposal. It adds the missing semantics for the 'scope' storage class in order to make it possible to pass a reference to a function without it being possible for it to escape.

This, among other things, makes a ref counting type practical. It also makes it more practical to use other storage allocation schemes than garbage collection.

It does not make scope into a type constructor, nor a general type-annotation system.

It does not provide an ownership system, though it would complement one.
December 04, 2014
On Thursday, 4 December 2014 at 09:25:11 UTC, Walter Bright wrote:
> http://wiki.dlang.org/DIP69
>
> Despite its length, this is a fairly simple proposal. It adds the missing semantics for the 'scope' storage class in order to make it possible to pass a reference to a function without it being possible for it to escape.

Making it implicit and requiring an explicit "escape" for un-scoped variables?

December 04, 2014
On Thu, 04 Dec 2014 01:24:13 -0800
Walter Bright via Digitalmars-d <digitalmars-d@puremagic.com> wrote:

> http://wiki.dlang.org/DIP69
> 
> Despite its length, this is a fairly simple proposal. It adds the missing semantics for the 'scope' storage class in order to make it possible to pass a reference to a function without it being possible for it to escape.
> 
> This, among other things, makes a ref counting type practical. It also makes it more practical to use other storage allocation schemes than garbage collection.
> 
> It does not make scope into a type constructor, nor a general type-annotation system.
> 
> It does not provide an ownership system, though it would complement one.
cosmetic issue: some comments are referring to rules by number ("Error, rule 5"), yet the rules aren't explicitly numbered. not a big deal, but still somewhat hard to follow.


December 04, 2014
On 12/4/2014 1:53 AM, ketmar via Digitalmars-d wrote:
> cosmetic issue: some comments are referring to rules by number ("Error,
> rule 5"), yet the rules aren't explicitly numbered. not a big deal, but
> still somewhat hard to follow.

Yeah, still learning wiki markup!

December 04, 2014
On 12/4/2014 1:51 AM, eles wrote:
> On Thursday, 4 December 2014 at 09:25:11 UTC, Walter Bright wrote:
>> http://wiki.dlang.org/DIP69
>>
>> Despite its length, this is a fairly simple proposal. It adds the missing
>> semantics for the 'scope' storage class in order to make it possible to pass a
>> reference to a function without it being possible for it to escape.
>
> Making it implicit and requiring an explicit "escape" for un-scoped variables?
>

Was afraid that would break too much code.
December 04, 2014
On Thursday, 4 December 2014 at 10:00:37 UTC, Walter Bright wrote:
> On 12/4/2014 1:51 AM, eles wrote:
>> On Thursday, 4 December 2014 at 09:25:11 UTC, Walter Bright wrote:
>>> http://wiki.dlang.org/DIP69

> Was afraid that would break too much code.

An annotation for functions could make all variables "scope"?

Similar to:

int foo(int x) @scopedvars {
 //all declarations are implicit "scope"; use "escape" for the others

}
December 04, 2014
On Thu, 04 Dec 2014 10:04:07 +0000
eles via Digitalmars-d <digitalmars-d@puremagic.com> wrote:

> On Thursday, 4 December 2014 at 10:00:37 UTC, Walter Bright wrote:
> > On 12/4/2014 1:51 AM, eles wrote:
> >> On Thursday, 4 December 2014 at 09:25:11 UTC, Walter Bright wrote:
> >>> http://wiki.dlang.org/DIP69
> 
> > Was afraid that would break too much code.
> 
> An annotation for functions could make all variables "scope"?
> 
> Similar to:
> 
> int foo(int x) @scopedvars {
>   //all declarations are implicit "scope"; use "escape" for the
> others
> 
> }
please, don't steal this nice identifier! i love variables with name "escape"! stolen "body" still hurts me.


December 04, 2014
thank you for pushing on this.

Lifetime last bullet point: ", but lower than any variables in higher scopes."
isn't that redundant to the first bullet point? Or am I missing something?

Scope affects variables according to these rules:
Could you enumerate the list instead of bullet points, I can't count.

Base operation:
That one I don't get. I would assume this is legal as the function is not @safe.
e = &c; // Error, lifetime(e's view) is &infin; and is greater than lifetime(c)
December 04, 2014
On Thursday, 4 December 2014 at 10:11:25 UTC, ketmar via Digitalmars-d wrote:
> On Thu, 04 Dec 2014 10:04:07 +0000
> eles via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
>
>> On Thursday, 4 December 2014 at 10:00:37 UTC, Walter Bright wrote:
>> > On 12/4/2014 1:51 AM, eles wrote:
>> >> On Thursday, 4 December 2014 at 09:25:11 UTC, Walter Bright wrote:

> please, don't steal this nice identifier! i love variables with name
> "escape"! stolen "body" still hurts me.

It was just an idea, I do not push for it.
December 04, 2014
On Thursday, 4 December 2014 at 09:25:11 UTC, Walter Bright wrote:
> http://wiki.dlang.org/DIP69
>
> Despite its length, this is a fairly simple proposal. It adds the missing semantics for the 'scope' storage class in order to make it possible to pass a reference to a function without it being possible for it to escape.
>
> This, among other things, makes a ref counting type practical. It also makes it more practical to use other storage allocation schemes than garbage collection.
>
> It does not make scope into a type constructor, nor a general type-annotation system.
>
> It does not provide an ownership system, though it would complement one.

Haven't got the time to look at this in detail right now, but if it's as good as it looks on the surface, I'm very excited to use it. Thanks for all the hard work, all involved.
« First   ‹ Prev
1 2 3 4 5 6 7 8 9 10 11