Thread overview
17th Planning (Christmas Edition), Dec 22 - Jan 12
Dec 25, 2016
Martin Nowak
Dec 26, 2016
Dicebot
Dec 27, 2016
Martin Nowak
Jan 04, 2017
Dicebot
December 25, 2016
Shortest planning ever!

Agenda:
- 2.072.2
- 2.073.0-b1
- scope/DIP1000
- CTFE
- feature branches
- CI & auto-merge
- <your topic here>

========

# 2.072.2, the PIE release, ETA 2016-12-31

Will come with a couple of regression fixes, see https://trello.com/b/XoFjxiqG/active?filter=label:2.072.

Most notably, we enabled PIC on linux amd64 by default to make dmd
work out-of-the-box on distributions with PIE-by-default.
It was already possible to build PIE executables when linking against
the shared phobos library (using -fPIC -defaultlib=phobos2.so), now it
will also possible to build PIE when linking against the static phobos
library (using -fPIC).

-fPIC was added to the default DFLAGS in dmd.conf, please update the dmd.conf files and corresponding packages for other distributions

https://trello.com/c/E1LU0SAe/269-issue-16794-deb-not-working-on-ubuntu-16-10-because-of-default-pie-linking

# 2.073.0-b1, ETA 2017-01-04

Merge window is closing, so we have somewhat of a feature freeze for
master until 2.073.0-b1.
Please finish (or revert) open/unfinished work and make use of the
2.073.0-b1 milestones on Github, e.g.
https://github.com/dlang/phobos/milestone/11.

# scope/DIP1000

DIP1000 is getting ready, for a preview build of the scope feature branch see http://forum.dlang.org/post/o39t7h$t4l$1@digitalmars.com.

A preview of the feature (-dip1000) is supposed to be included with
2.073.0/master.
We're currently fixing the few remaining bugs w/o that switch and do
some final acceptance tests of the design, so it can get merged in time.

# CTFE

We've been reviewing and merging chunks of the new CTFE interpreter
into the newCTFE feature branch.
The next review session will follow suit, and I hope we might soon get
a preview build of the feature.

# What the hack are feature branches?

A tool to continuously review and integrate bigger feature during development. Please help to find a better name :). https://wiki.dlang.org/Story_Branches

# CI & auto-merge

Quite some improvements on getting the project tester working
(ci.dawg.eu). We plan for a major overhaul during Jan (18th planning),
using Jenkins pipelines and a faster server.
Still interested in any help from CI, devops, admin pros.

We've also integrated a still experimental auto-merge feature in dlang-bot (https://github.com/dlang-bots/dlang-bot/pull/17).

========

As always, look at the Done 16 list on https://trello.com/b/XoFjxiqG/active for review.

Still interested in getting more admins for the dlang calendar, please
integrate your local Meetups.
https://calendar.google.com/calendar/embed?src=ut29n9vq9vu3ad4kbaabeed1d8%40group.calendar.google.com

-Martin
December 26, 2016
On 12/25/2016 03:15 PM, Martin Nowak wrote:
> -fPIC was added to the default DFLAGS in dmd.conf, please update the dmd.conf files and corresponding packages for other distributions

Is that recommended to do on distros that don't use PIE by default yet?



December 27, 2016
On 12/26/2016 12:03 PM, Dicebot wrote:
> On 12/25/2016 03:15 PM, Martin Nowak wrote:
>> -fPIC was added to the default DFLAGS in dmd.conf, please update the dmd.conf files and corresponding packages for other distributions
> 
> Is that recommended to do on distros that don't use PIE by default yet?

I'm indeed a bit unsure whether that's a good idea if PIE support hasn't
been tested much on those distributions. OTOH it's in widespread use to
harden at least some security relevant programs, and gcc has PIE support
since quite a while.
Also PIE isn't much magic other than PIC plus changing the ELF file type
(to DYN instead of EXEC).

Supporting different variations also comes at a cost (e.g. asking back
in bug reports).
And as we've switched the generic linux.tar release to support PIE, it
might make sense for most distributions.

Enabling -fPIC for executables is not equivalent to enabling PIE for D, the ELF file format still remains a gcc -pie/-no-pie option and distribution default.

January 04, 2017
On 12/25/2016 03:15 PM, Martin Nowak wrote:

> - scope/DIP1000

My opinion is unchanged and I will pretend it does not exist. Though this make it rather hard:

$ grep -R -n "vsafe" ./src/
./src/expression.d:1699:                if (global.params.vsafe)
./src/expression.d:9978:                    if (global.params.vsafe &&
checkParamArgumentEscape(sc, f, Id.This, ethis, false))
./src/expression.d:10610:                    if (global.params.vsafe)
./src/expression.d:10655:            if (dve.e1.op == TOKvar &&
global.params.vsafe)
./src/expression.d:10665:            else if ((dve.e1.op == TOKthis ||
dve.e1.op == TOKsuper) && global.params.vsafe)
./src/expression.d:10735:        else if ((e1.op == TOKthis || e1.op ==
TOKsuper) && global.params.vsafe)
./src/mtype.d:6613:        if (!global.params.vsafe)
./src/globals.d:134:    bool vsafe;             // use enhanced @safe
checking
./src/statementsem.d:1455:                    if (global.params.vsafe)
./src/statementsem.d:1468:                    if (global.params.vsafe)
./src/globals.h:116:    bool vsafe;         // use enhanced @safe checking
./src/func.d:3151:        if (global.params.vsafe)
./src/escape.d:65:        if (global.params.vsafe && sc.func.setUnsafe())
./src/escape.d:474:                if (global.params.vsafe) //
https://issues.dlang.org/show_bug.cgi?id=17029
./src/escape.d:875:                if (global.params.vsafe &&
tf.isreturn && fd && (ad = fd.isThis()) !is null)
./src/mars.d:789:                global.params.vsafe = true;

(on master)

> - CI & auto-merge

Going to put some focus here. Right now plan is to move to Jenkins with its new pipeline system so that both main build and testing of derived projects can be integrated in one simple overview. Will start with local scripting and contact Martin when it is more or less ready for deployment experiments.

> - <your topic here>

It is going to be a hot month for DIPs:

- Either https://github.com/dlang/DIPs/blob/master/DIPs/DIP1003.md or
https://github.com/dlang/DIPs/blob/master/DIPs/DIP1004.md will get
formal review
- https://github.com/dlang/DIPs/pull/51 needs finalization (currently
blocked on me mostly)
- There will be few more DIPs coming from Sociomantic to resolve
remaining differences between our compiler/runtime and upstream one