Jump to page: 1 2
Thread overview
15th Planning (national congress edition)
Nov 10, 2016
Martin Nowak
Nov 10, 2016
Walter Bright
Nov 10, 2016
Martin Nowak
Nov 10, 2016
Walter Bright
Nov 10, 2016
Dicebot
Nov 10, 2016
Martin Nowak
Nov 17, 2016
Dicebot
Nov 10, 2016
Seb
Nov 11, 2016
Martin Nowak
Nov 11, 2016
Martin Nowak
November 10, 2016
Let's just have a short planning for the upcoming 3 weeks.

Agenda:
- fix remaining 2.072 regressions
- finish scope story
- schedule for 2.073
- more CI testing
- public calendar
- <plese add your own>

Personal note, I don't have much time left over until 17th of Nov. Currently working fairly intensively in China (hence the reference in the title ;)).

====================

# fix remaining 2.072 regressions

2.072.0 was quite bumpy and we need to fixup a few more regressions that showed up. One reason for this is still the long 2.071 release period, but there have been some discussions about fixing some underlying causes and improving on testing (see CI testing below).
We should get this done within the next 3 weeks, so we can polish 2.072.

# schedule for 2.073

Obviously I want to get back to sane release cycles and smaller releases.
We can discuss whether 2 months are too frequent, but let's get back to that for now.
So let's target 2.073 to be released for mid december (2 month after the targeted 2.072 release). If we miss that we'd have to delay the beta until beg of Jan after the holiday season.

# finish scope story

We (shortly) reviewed and merged the major part of the scope story into the feature branch (https://github.com/dlang/dmd/pull/5972) after a clearing discussion about the scope of that feature and it's implementation.
The major 3 parts of scope are fairly straightforward:
- fix any escaping of scoped symbols
- add return scope to allow returning of scoped parameters
- add lots of scope inference to make it palatable

The biggest difficulty was that you can get named aliases (pointers or references) to scoped variables. Hence we needed all this (relatively simple) lifetime algebra to handle derived expressions.

  scope ubyte[3] buf;
  ubyte[] a = buf[]; // pointer to scoped data

In any case we should make the scope feature releasable within the next 4-5 weeks.
Including documentation, changelog, an introductionary article, and at best an RC/Unique/WeakRef prototype library on dub.

# mangling abbreviation

I hardly have time for this myself, and we don't necessarily have to target 2.073, but we seem to have a good proposal to fix the long manglings thanks to Rainer Schütze.
https://github.com/dlang/dmd/pull/5855
I'd would still require some tool support for demangling I guess (what about gdb?).

# more CI testing

The last release showed that we're still not testing enough, b/c we're still breaking too many projects.
That might be partly b/c of missing test coverage, and negligent when changing phobos before adding a breaking change to dmd.
To throttle the amount of introducing issues we got another server to test all dlang PRs with a couple of D projects.

  https://ci.dawg.eu/

All projects in their do pass their test suite with 2.071.2.

# public calendar

I created a public google calendar for anything dlang.
https://calendar.google.com/calendar/embed?src=ut29n9vq9vu3ad4kbaabeed1d8%40group.calendar.google.com
Let's please get a few more admins on this, despite me and Mihail, and have all D dates in their.
For now it contains the planning meetings and my proposed next beta/release date.

We should prolly sync all the local D meetups into this, could even be automated https://zapier.com/app/editor/template/4701.

====================

That's about it from my side

November 09, 2016
On 11/9/2016 4:01 PM, Martin Nowak wrote:
> - finish scope story

The only thing left on that is allowing this to work:

  @safe void foo() {
    int i;
    int* pi = &i;
  }

With the other improvements to scope, this no longer needs to be disallowed.
November 10, 2016
On Thursday, 10 November 2016 at 00:26:59 UTC, Walter Bright wrote:
> On 11/9/2016 4:01 PM, Martin Nowak wrote:
>> - finish scope story
>
> The only thing left on that is allowing this to work:

+bugfixes, docs, changelog, and article

>   @safe void foo() {
>     int i;
>     int* pi = &i;
>   }
>
> With the other improvements to scope, this no longer needs to be disallowed.

Which is great and make @safe much more useful, but only one aspect of DIP1000.
I think being able to tie the lifetime of a return value to the arguments of a function is the more fundamental and important change.
November 09, 2016
On 11/9/2016 8:13 PM, Martin Nowak wrote:
> On Thursday, 10 November 2016 at 00:26:59 UTC, Walter Bright wrote:
>> On 11/9/2016 4:01 PM, Martin Nowak wrote:
>>> - finish scope story
>>
>> The only thing left on that is allowing this to work:
>
> +bugfixes, docs, changelog, and article

No unfixed bugs reported on it. I agree with the latter 3. Also, I am going to deliver a presentation on it next Wednesday at nwcpp.org.


>>   @safe void foo() {
>>     int i;
>>     int* pi = &i;
>>   }
>>
>> With the other improvements to scope, this no longer needs to be disallowed.
>
> Which is great and make @safe much more useful, but only one aspect of DIP1000.
> I think being able to tie the lifetime of a return value to the arguments of a
> function is the more fundamental and important change.

I agree. This is just fixing a loose end.

November 10, 2016
On 11/10/2016 02:01 AM, Martin Nowak wrote:
> # fix remaining 2.072 regressions
> 
> 2.072.0 was quite bumpy and we need to fixup a few more regressions that
> showed up. One reason for this is still the long 2.071 release period,
> but there have been some discussions about fixing some underlying causes
> and improving on testing (see CI testing below).
> We should get this done within the next 3 weeks, so we can polish 2.072.

This is my current main priority and I am aiming for 2.072.1 beta in 1 week, unless you have any objections. Currently reducing and making bugzilla issues for all found regressions, will give a go at fixing them after.

> # finish scope story

> In any case we should make the scope feature releasable within the next
> 4-5 weeks.
> Including documentation, changelog, an introductionary article, and at
> best an RC/Unique/WeakRef prototype library on dub.

On my own TODO list for scope:

- enhance exiting test cases to include more real-world examples based
on our discussions
- rewrite DIP1000 to reflect actual implementation
- enable DIP25 by default in master (aiming 2.073)

I'd also like to discuss enhancement for the proposal which would remove the different between ref and pointer handling in lifetime analysis and would allow to merge `return ref` and `return scope` into one entity (at cost of loosing some features that I consider of no practical use). This is not necessary but would be nice to consider before design get set in stone.

As I have already mentioned before, would be really useful to get a dedicated trello board (or at least a column in existing one) to track all small todo points regarding scope implementation. Ongoing problem in new D features is that last 20% of any implementation gets forgotten in process of development and when it released, it heavily lacks polish required to make good impression.

(I don't have admin access to trello board btw, don't know if it is
intentional or accidental)

---------------------------------------------------

On a DIP status - final judgement for DIP1001 and DIP1002 will be published as soon as Andrei finds time to write a formal response. There were no new changes in their respective documents since last mention.

There are two new unmerged proposal PRs that are in pretty close to getting into queue. I will only merge them after response to previous ones is published to ensure no new requirements appear.



November 10, 2016
On Thursday, 10 November 2016 at 00:01:54 UTC, Martin Nowak wrote:
> # public calendar
>
> I created a public google calendar for anything dlang.
> https://calendar.google.com/calendar/embed?src=ut29n9vq9vu3ad4kbaabeed1d8%40group.calendar.google.com
> Let's please get a few more admins on this, despite me and Mihail, and have all D dates in their.
> For now it contains the planning meetings and my proposed next beta/release date.
>
> We should prolly sync all the local D meetups into this, could even be automated https://zapier.com/app/editor/template/4701.

Done :)
November 10, 2016
On Thursday, 10 November 2016 at 13:17:35 UTC, Dicebot wrote:
> This is my current main priority and I am aiming for 2.072.1 beta in 1 week, unless you have any objections. Currently reducing and making bugzilla issues for all found regressions, will give a go at fixing them after.

Yes, one week (let's say Nov 19-20th) sounds good for me as well.
I hope I can do the regression fix for https://trello.com/c/rWhNcvLt/246-issue-16574-reg-2-072-0-b1-unexplained-errors-about-functions-that-overridde-anything until then. Not sure about the others on the Trello heap.

> I'd also like to discuss enhancement for the proposal which would remove the different between ref and pointer handling in lifetime analysis and would allow to merge `return ref` and `return scope` into one entity (at cost of loosing some features that I consider of no practical use). This is not necessary but would be nice to consider before design get set in stone.

Yes it also seems to me we only need "return scope", "return scope ref", and "scope ref". Because "return ref" seems useless if you can escape the reference inside of the function.
Would like to have more than a gut feeling for that argument/decision.

> Ongoing problem in new D features is that last 20% of any implementation gets forgotten in process of development and when it released, it heavily lacks polish required to make good impression.

You might want to try adding a scope card to the backlog that has a checklist for all the small stuff, though you'd need to have the examples as an attachment, gist, or so.

> (I don't have admin access to trello board btw, don't know if it is
> intentional or accidental)

Done
November 11, 2016
On Thursday, 10 November 2016 at 00:01:54 UTC, Martin Nowak wrote:
> Let's just have a short planning for the upcoming 3 weeks.
>
> Agenda:
> - fix remaining 2.072 regressions
> - finish scope story
> - schedule for 2.073
> - more CI testing
> - public calendar
> - <plese add your own>

Sorry to be late to the party, I'm on the road. Things I want to get to:

* Push checkedint into Phobos
* Push RCBuffer into Phobos, which is the first safe refcounted buffer that works with qualifiers. That should open the road for the next item, which is
* Get going on a DIP on creating safe reference counted types. The loose end that needs attention is making sure that methods that return "ref" to reference-counted stuff don't leave said references dangling upon assignment.
* Connect students to the project


Andrei
November 11, 2016
On Friday, 11 November 2016 at 07:47:02 UTC, Andrei Alexandrescu wrote:
> Sorry to be late to the party, I'm on the road.

No hurries, this is an async meeting and can go on for a few days. We'd hardly ever find synchronous time for all of us.
You can subscribe to the dlang calendar linked in the OP for the dates.

> * Push RCBuffer into Phobos, which is the first safe refcounted buffer that works with qualifiers. That should open the road for the next item, which is

Missed that discussion, what's the difference between an RCBuffer and RC!(ubyte[16])?

> * Get going on a DIP on creating safe reference counted types.

Why we need a full DIP for that? It's the main goal for DIP1000 and almost fully reached by that, except for that small hole mentioned below.

> The loose end that needs attention is making sure that methods that return "ref" to reference-counted stuff don't leave said references dangling upon assignment.

One idea for that is to disallow passing 2 arguments (call side) by ref, if their lifetime isn't the same. We could do more fancy stuff, e.g. check whether one argument could actually be an alias to the other, but that would require some exceptions, e.g. for `void[16] buf`.
I'm not a fan of the auto-increment approach, b/c it fails for Unique.
Anyhow this is not the right place to discuss, but the use-case seems rather rare to me, so we might move on with RC/Unique/WeakRef in a dub library, before fixing that and moving it to phobos.

November 11, 2016
On Thursday, 10 November 2016 at 00:01:54 UTC, Martin Nowak wrote:
>

Forgot to mention that, I'll be offline from now until about 18th of Nov.
« First   ‹ Prev
1 2