digitalmars.D.internals - 15th Planning (national congress edition)
- Martin Nowak (75/75) Nov 09 2016 Let's just have a short planning for the upcoming 3 weeks.
- Walter Bright (7/8) Nov 09 2016 The only thing left on that is allowing this to work:
- Martin Nowak (8/17) Nov 09 2016 +bugfixes, docs, changelog, and article
- Walter Bright (4/19) Nov 09 2016 No unfixed bugs reported on it. I agree with the latter 3. Also, I am go...
- Dicebot (44/56) Nov 10 2016 protected-headers="v1"
- Martin Nowak (13/31) Nov 10 2016 Yes, one week (let's say Nov 19-20th) sounds good for me as well.
- Dicebot (18/36) Nov 17 2016 protected-headers="v1"
- Seb (2/11) Nov 10 2016 Done :)
- Andrei Alexandrescu (13/21) Nov 10 2016 Sorry to be late to the party, I'm on the road. Things I want to
- Martin Nowak (22/30) Nov 11 2016 No hurries, this is an async meeting and can go on for a few
- Martin Nowak (3/3) Nov 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> 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 ;)). ==================== 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. 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. 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. 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?). 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. 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
Nov 09 2016
On 11/9/2016 4:01 PM, Martin Nowak wrote:- finish scope storyThe 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.
Nov 09 2016
On Thursday, 10 November 2016 at 00:26:59 UTC, Walter Bright wrote:On 11/9/2016 4:01 PM, Martin Nowak wrote:+bugfixes, docs, changelog, and article- finish scope storyThe 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.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.
Nov 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: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.On 11/9/2016 4:01 PM, Martin Nowak wrote:+bugfixes, docs, changelog, and article- finish scope storyThe only thing left on that is allowing this to work:I agree. This is just fixing a loose end.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.
Nov 09 2016
protected-headers="v1" From: Dicebot <public dicebot.lv> Newsgroups: d,i,g,i,t,a,l,m,a,r,s,.,D,.,i,n,t,e,r,n,a,l,s Subject: Re: 15th Planning (national congress edition) References: <rsxfyebqlrryoblhylml forum.dlang.org> In-Reply-To: <rsxfyebqlrryoblhylml forum.dlang.org> --RefJvR3IFt3AQAc1oncFfTKhFJAKWlLcV Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 11/10/2016 02:01 AM, Martin Nowak wrote:=20 2.072.0 was quite bumpy and we need to fixup a few more regressions tha=tshowed up. One reason for this is still the long 2.071 release period, but there have been some discussions about fixing some underlying cause=sand improving on testing (see CI testing below). We should get this done within the next 3 weeks, so we can polish 2.072==2E 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.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. --RefJvR3IFt3AQAc1oncFfTKhFJAKWlLcV--
Nov 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-tha -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
Nov 10 2016
protected-headers="v1" From: Dicebot <public dicebot.lv> Newsgroups: d,i,g,i,t,a,l,m,a,r,s,.,D,.,i,n,t,e,r,n,a,l,s Subject: Re: 15th Planning (national congress edition) References: <rsxfyebqlrryoblhylml forum.dlang.org> <o01s1g$2g54$1 digitalmars.com> <vztsybforwehsflurezp forum.dlang.org> In-Reply-To: <vztsybforwehsflurezp forum.dlang.org> --xnPUXAPPhx4uOmOdi5dXUq85g3vWucLNn Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printableI'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.=20 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.I will look into it after updating existing DIP1000 document to match implementation.Sure: https://trello.com/c/JOxCazeF/263-dip1000-scope-implementation I don't think such approach (packing everything into one board) scales well but it is not important now so let's use whatever you are comfortable with. --xnPUXAPPhx4uOmOdi5dXUq85g3vWucLNn--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.=20 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.
Nov 17 2016
On Thursday, 10 November 2016 at 00:01:54 UTC, Martin Nowak wrote: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 :)
Nov 10 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
Nov 10 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 isMissed 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.
Nov 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.
Nov 11 2016