www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - DConf 2017 Hackathon report

reply =?UTF-8?Q?Ali_=c3=87ehreli?= <acehreli yahoo.com> writes:
Please list what we've achieved during the hackathon, including what is 
started but is likely to be finished in the coming days or months.

For me:

- Finished updating "Programming in D" to 2.074.0 (the HTML is now up to 
date but I could not get to the still manual work of preparing the ebooks)

- Contributed to the logo and branding discussions

- Opened two bugs

- Ate German cookies :)

Ali
May 08
next sibling parent reply Steven Schveighoffer <schveiguy yahoo.com> writes:
On 5/9/17 12:35 AM, Ali Çehreli wrote:
 Please list what we've achieved during the hackathon, including what is
 started but is likely to be finished in the coming days or months.

 For me:

 - Finished updating "Programming in D" to 2.074.0 (the HTML is now up to
 date but I could not get to the still manual work of preparing the ebooks)
Nice! For me: - Don't want to exactly steal Jonathan's thunder, but during the conference (before the hackathon actually) he split (and I helped get approval for splitting) std.datetime into a package. That still needs some severe TLC on making the docs read better, but it should be viable. And now github can show diffs for the smaller files :) - Merged a simple PR I had from April. - Provided a bit of guidance to people on druntime internals. - Created my first DMD PR (to make it so unittest imports are not counted for cycle detection). And that's about it. That last one took a lot of effort, as I was dealing with an apparent bug in the BitArray type, thought I was losing my mind :) Aaaand, I'm not questioning whether the PR I made is sound, due to the way template-instantiated static ctors work. I'll have to rethink how it works. But it was very awesome to be able to go around and find the people to discuss a PR/idea without going through a forum thread. I think there's a psychological barrier that happens when you post a complete argument, and then your counterpart forms an interpretation in their mind of what the argument means, forms their complete counter argument, and neither side really understands what the other is saying or willing to do. Doing it in person allows so much more interaction -- you can cut off early any misinterpretations. It's also harder to be nasty in person :) -Steve
May 09
next sibling parent Steven Schveighoffer <schveiguy yahoo.com> writes:
On 5/9/17 9:19 AM, Steven Schveighoffer wrote:
 Aaaand, I'm not questioning whether the PR I made is sound, due to the
 way template-instantiated static ctors work. I'll have to rethink how it
 works.
*now* questioning... -Steve
May 09
prev sibling parent Adrian Matoga <dlang.spam matoga.info> writes:
On Tuesday, 9 May 2017 at 13:19:12 UTC, Steven Schveighoffer 
wrote:

 But it was very awesome to be able to go around and find the 
 people to discuss a PR/idea without going through a forum 
 thread. I think there's a psychological barrier that happens 
 when you post a complete argument, and then your counterpart 
 forms an interpretation in their mind of what the argument 
 means, forms their complete counter argument, and neither side 
 really understands what the other is saying or willing to do. 
 Doing it in person allows so much more interaction -- you can 
 cut off early any misinterpretations. It's also harder to be 
 nasty in person :)
+1! For the same reasons, it's also a lot easier for people who don't use English as their 1st language to express their ideas as one doesn't need to spend time carefully looking up the meaning of words to make sure the "complete argument" will be understood as intended. :)
May 10
prev sibling next sibling parent reply Nemanja Boric <4burgos gmail.com> writes:
On Tuesday, 9 May 2017 at 04:35:40 UTC, Ali Çehreli wrote:
 Please list what we've achieved during the hackathon, including 
 what is started but is likely to be finished in the coming days 
 or months.

 For me:

 - Finished updating "Programming in D" to 2.074.0 (the HTML is 
 now up to date but I could not get to the still manual work of 
 preparing the ebooks)

 - Contributed to the logo and branding discussions

 - Opened two bugs

 - Ate German cookies :)

 Ali
I've fixed the FreeBSD-Current exception handling issue, so that exception handling is now working there as well (I also suspect that it was broken pretty much on all libundwind 64bit systems, just worked by accident, since the optimizer didn't try too hard. It's something I wanted to do for a long time, but there's never time, so having a day dedicated to it was pretty helpful! https://issues.dlang.org/show_bug.cgi?id=16856 It was pretty cool finding Jonathan who filed the bug in the same room, then chasing Walter to talk about it, after hearing all war stories, including, but not limited to, blue meteors.
May 09
parent Nemanja Boric <4burgos gmail.com> writes:
On Tuesday, 9 May 2017 at 16:14:57 UTC, Nemanja Boric wrote:
 On Tuesday, 9 May 2017 at 04:35:40 UTC, Ali Çehreli wrote:
 Please list what we've achieved during the hackathon, 
 including what is started but is likely to be finished in the 
 coming days or months.

 For me:

 - Finished updating "Programming in D" to 2.074.0 (the HTML is 
 now up to date but I could not get to the still manual work of 
 preparing the ebooks)

 - Contributed to the logo and branding discussions

 - Opened two bugs

 - Ate German cookies :)

 Ali
I've fixed the FreeBSD-Current exception handling issue, so that exception handling is now working there as well (I also suspect that it was broken pretty much on all libundwind 64bit systems, just worked by accident, since the optimizer didn't try too hard. It's something I wanted to do for a long time, but there's never time, so having a day dedicated to it was pretty helpful! https://issues.dlang.org/show_bug.cgi?id=16856 It was pretty cool finding Jonathan who filed the bug in the same room, then chasing Walter to talk about it, after hearing all war stories, including, but not limited to, blue meteors.
Oh, also working with Martin and chasing him around the rooms to get my druntime PR for fiber stack overflow protection (https://github.com/dlang/druntime/pull/1698) merged after months and months is also worth mentioning, although it didn't happen during the hackaton :-)
May 09
prev sibling next sibling parent reply ANtlord <antlord92 gmail.com> writes:
On Tuesday, 9 May 2017 at 04:35:40 UTC, Ali Çehreli wrote:
 Please list what we've achieved during the hackathon, including 
 what is started but is likely to be finished in the coming days 
 or months.

 For me:

 - Finished updating "Programming in D" to 2.074.0 (the HTML is 
 now up to date but I could not get to the still manual work of 
 preparing the ebooks)

 - Contributed to the logo and branding discussions

 - Opened two bugs

 - Ate German cookies :)

 Ali
Is there some news about compiling dmd as library?
May 09
parent Joakim <dlang joakim.fea.st> writes:
On Tuesday, 9 May 2017 at 17:50:06 UTC, ANtlord wrote:
 On Tuesday, 9 May 2017 at 04:35:40 UTC, Ali Çehreli wrote:
 Please list what we've achieved during the hackathon, 
 including what is started but is likely to be finished in the 
 coming days or months.

 For me:

 - Finished updating "Programming in D" to 2.074.0 (the HTML is 
 now up to date but I could not get to the still manual work of 
 preparing the ebooks)

 - Contributed to the logo and branding discussions

 - Opened two bugs

 - Ate German cookies :)

 Ali
Is there some news about compiling dmd as library?
There was a talk about this, one of the interns is working on it: http://dconf.org/2017/talks/nitu.html No idea when it'll be done.
May 10
prev sibling next sibling parent reply Atila Neves <atila.neves gmail.com> writes:
On Tuesday, 9 May 2017 at 04:35:40 UTC, Ali Çehreli wrote:
 Please list what we've achieved during the hackathon, including 
 what is started but is likely to be finished in the coming days 
 or months.

 For me:

 - Finished updating "Programming in D" to 2.074.0 (the HTML is 
 now up to date but I could not get to the still manual work of 
 preparing the ebooks)

 - Contributed to the logo and branding discussions

 - Opened two bugs

 - Ate German cookies :)

 Ali
I submitted a PR for Phobos and 2 for dmd, the latter of which were my first. I felt like a wizard afterwards for modifying the compiler, which is a nice bonus. Now if only I could get the autotester to be green... Atila
May 10
parent reply Stefan Koch <uplink.coder googlemail.com> writes:
On Wednesday, 10 May 2017 at 10:55:09 UTC, Atila Neves wrote:
  I felt like a wizard afterwards for modifying the compiler, 
 which is a nice bonus.
Nice, I usually feel confused after modifying the compiler.
 Now if only I could get the autotester to be green...
Just think about how much more wizardly you will feel after it is green.
May 10
parent Atila Neves <atila.neves gmail.com> writes:
On Wednesday, 10 May 2017 at 11:02:50 UTC, Stefan Koch wrote:
 On Wednesday, 10 May 2017 at 10:55:09 UTC, Atila Neves wrote:
  I felt like a wizard afterwards for modifying the compiler, 
 which is a nice bonus.
Nice, I usually feel confused after modifying the compiler.
 Now if only I could get the autotester to be green...
Just think about how much more wizardly you will feel after it is green.
It turns out I'd stupidly pushed branched off of my other branch instead of master. It's green. :) Atila, official wizard
May 10
prev sibling next sibling parent Adrian Matoga <dlang.spam matoga.info> writes:
On Tuesday, 9 May 2017 at 04:35:40 UTC, Ali Çehreli wrote:
 Please list what we've achieved during the hackathon, including 
 what is started but is likely to be finished in the coming days 
 or months.

 For me:

 - Finished updating "Programming in D" to 2.074.0 (the HTML is 
 now up to date but I could not get to the still manual work of 
 preparing the ebooks)

 - Contributed to the logo and branding discussions

 - Opened two bugs

 - Ate German cookies :)

 Ali
I: 1. Started a PR adding -Xcc switch to LDC [1]. 2. Discussed a solution to [2] and [3] with Sönke, implementation is in progress. 3. Briefly went through sources of Stefan's CTFE implementation. To me it was also a good quick lesson about part of DMD internals I didn't know yet, and I hope I'll be able to review his code from time to time and motivate him. 4. Got a ton of inspiration and motivation. [1] https://github.com/ldc-developers/ldc/pull/2104 [2] https://github.com/dlang/dub/issues/628 [3] https://github.com/dlang/dub/issues/228
May 10
prev sibling next sibling parent reply Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On Tuesday, 9 May 2017 at 04:35:40 UTC, Ali Çehreli wrote:
 Please list what we've achieved during the hackathon, including 
 what is started but is likely to be finished in the coming days 
 or months.
Created a working snap package definition for GDC. I'm coordinating with Iain on how to get this into the snap store most effectively (having spent a fair bit of the hackathon pestering him with questions about the GDC build procedure:-). Ironically, given that I'd always been worried this would be the most finnicky compiler snap to create, it's actually the simplest package definition out of all the Big 3 ;-) I also had a play with using the new `scope return` etc. functionality to prototype a safe design for random algorithms that wrap a pointer to an RNG. That's probably going to take a while longer to put together, as I've run into some issues that I really need to reduce to a very simple test case.
May 10
parent reply David Nadlinger <code klickverbot.at> writes:
On Wednesday, 10 May 2017 at 19:46:01 UTC, Joseph Rushton 
Wakeling wrote:
 Ironically, given that I'd always been worried this would be 
 the most finnicky compiler snap to create, it's actually the 
 simplest package definition out of all the Big 3 ;-)
Without even having seen your snap file, I can confidently say that this is just due to the idiosyncrasies of the snap environment, though. Oh wait, no, GDC is still stuck on an ancient C++-based frontend. Not too surprising, then. ;P — David
May 10
parent reply Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 10 May 2017 at 22:04, David Nadlinger via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On Wednesday, 10 May 2017 at 19:46:01 UTC, Joseph Rushton Wakeling wrote:
 Ironically, given that I'd always been worried this would be the most
 finnicky compiler snap to create, it's actually the simplest package
 definition out of all the Big 3 ;-)
Without even having seen your snap file, I can confidently say that this is just due to the idiosyncrasies of the snap environment, though. Oh wait, no, GDC is still stuck on an ancient C++-based frontend. Not too surprising, then. ;P — David
I can only infer that you are saying that using a D project means it's more difficult to get working with snap. To which I will insert an obligatory "Woah!", and "I expect you to know better" rebuttal. ... Woah, I expect you to know better. Iain.
May 11
parent reply David Nadlinger <code klickverbot.at> writes:
On Thursday, 11 May 2017 at 17:56:00 UTC, Iain Buclaw wrote:
 I can only infer that you are saying that using a D project 
 means it's more difficult to get working with snap.  To which I 
 will insert an obligatory "Woah!", and "I expect you to know 
 better" rebuttal.

 ...

 Woah, I expect you to know better.
Incorrect. My (implied) statement was that a dependency on D makes the build process more complex *if that project is a D compiler, and you don't want to depend on another one in build-packages*. — David
May 11
parent reply Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 11 May 2017 at 22:24, David Nadlinger via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On Thursday, 11 May 2017 at 17:56:00 UTC, Iain Buclaw wrote:
 I can only infer that you are saying that using a D project means it's
 more difficult to get working with snap.  To which I will insert an
 obligatory "Woah!", and "I expect you to know better" rebuttal.

 ...

 Woah, I expect you to know better.
Incorrect. My (implied) statement was that a dependency on D makes the build process more complex *if that project is a D compiler, and you don't want to depend on another one in build-packages*. — David
My rebuttal still stands. Switching build from C++ to D should be a one line change, if it isn't then you have a problems with your build process.
May 11
parent reply David Nadlinger <code klickverbot.at> writes:
On Thursday, 11 May 2017 at 20:54:45 UTC, Iain Buclaw wrote:
 My rebuttal still stands.  Switching build from C++ to D should 
 be a one line change, if it isn't then you have a problems with 
 your build process.
How does snap requiring more than a one-line change for a multi-stage build imply that anybody's build process is problematic? — David
May 11
parent reply Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 11 May 2017 at 23:06, David Nadlinger via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On Thursday, 11 May 2017 at 20:54:45 UTC, Iain Buclaw wrote:
 My rebuttal still stands.  Switching build from C++ to D should be a one
 line change, if it isn't then you have a problems with your build process.
How does snap requiring more than a one-line change for a multi-stage build imply that anybody's build process is problematic? — David
Oh, do you have to do the multi-stage build yourself? I don't. :-) Iain.
May 11
parent reply David Nadlinger <code klickverbot.at> writes:
On Thursday, 11 May 2017 at 21:14:16 UTC, Iain Buclaw wrote:
 Oh, do you have to do the multi-stage build yourself?  I don't.
So you intend to keep a copy of the (old) bootstrap compiler sources in-tree for all future D-based GDC versions (if/when you start requiring D)? We could do that just as well, but it seems a bit pointless. — David
May 11
parent reply Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 11 May 2017 at 23:19, David Nadlinger via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On Thursday, 11 May 2017 at 21:14:16 UTC, Iain Buclaw wrote:
 Oh, do you have to do the multi-stage build yourself?  I don't.
So you intend to keep a copy of the (old) bootstrap compiler sources in-tree for all future D-based GDC versions (if/when you start requiring D)? We could do that just as well, but it seems a bit pointless. — David
I do not intend to. Which is why switching to D-based GDC will be a no-op. It is at this point that you've lost me, there is no added complexity building a self-hosted compiler within GCC's build system. C++ is self-hosted, Ada is self-hosted, an acquaintance of mine even wrote a self-hosted ALGOL60 frontend to GCC. This is not a problem that needs to be solved for GDC. Iain.
May 11
parent reply David Nadlinger <code klickverbot.at> writes:
On Thursday, 11 May 2017 at 21:37:45 UTC, Iain Buclaw wrote:
 This is not a problem that needs to be solved for GDC.
It's not a problem that needs to be solved *in* GDC, but it has to be tackled *for* (packaging) GDC, as you need to have a bootstrap compiler available. Hence, building a C++-based compiler is less complex than a D-based compiler – that is, if you don't want to depend on a pre-existing D compiler, but are fine with using a pre-existing C++ compiler, which is what the LDC snap packages currently does. — David
May 12
parent Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 12 May 2017 at 14:45, David Nadlinger via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On Thursday, 11 May 2017 at 21:37:45 UTC, Iain Buclaw wrote:
 This is not a problem that needs to be solved for GDC.
It's not a problem that needs to be solved *in* GDC, but it has to be tackled *for* (packaging) GDC, as you need to have a bootstrap compiler available. Hence, building a C++-based compiler is less complex than a D-based compiler – that is, if you don't want to depend on a pre-existing D compiler, but are fine with using a pre-existing C++ compiler, which is what the LDC snap packages currently does.
I've spoken to the author. I'm of the opinion that this is a design choice, not something that should be considered an inherent complexity. Iain.
May 12
prev sibling next sibling parent Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 9 May 2017 at 06:35, Ali Çehreli via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 Please list what we've achieved during the hackathon, including what is
 started but is likely to be finished in the coming days or months.
I was frankly a zombie all Sunday, apart from helping Joe setting up the best snap package in the world, I spent the morning rebuilding my toolchain for GCC/GDC-8. After spending some time away from my laptop, then came back to discover it had died on battery. At least I managed to remove D compiler support for SH-5. That was a notable productive task. :-)
May 11
prev sibling next sibling parent Bastiaan Veelo <Bastiaan Veelo.net> writes:
On Tuesday, 9 May 2017 at 04:35:40 UTC, Ali Çehreli wrote:
 - Contributed to the logo and branding discussions
Me too. And: - Discussed ways to move forward with Laeeth and Andrei, and Daniel and Stefan. - Discussed an issue in std.experimental.logger with Robert. - Worked on translation of Extended Pascal snippets to D. It took rather long retrieving them from my workstation at home, but after that I got valuable help from 3-4 seniors in my direct vicinity, finding ways to emulate EP constructs. Nice! Bastiaan.
May 11
prev sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2017-05-09 06:35, Ali Çehreli wrote:
 Please list what we've achieved during the hackathon, including what is
 started but is likely to be finished in the coming days or months.

 For me:

 - Finished updating "Programming in D" to 2.074.0 (the HTML is now up to
 date but I could not get to the still manual work of preparing the ebooks)

 - Contributed to the logo and branding discussions

 - Opened two bugs

 - Ate German cookies :)

 Ali
A bit late to the party but I created a Dub file for DMD to be able to use the lexer and parser as a library [1]. Although I did run into some problems with Dub [2], which I'm not sure how to solve. [1] https://github.com/dlang/dmd/pull/6771 [2] http://forum.rejectedsoftware.com/groups/rejectedsoftware.dub/thread/15871/ -- /Jacob Carlborg
May 12
parent reply rikki cattermole <rikki cattermole.co.nz> writes:
On 12/05/2017 9:51 AM, Jacob Carlborg wrote:
 On 2017-05-09 06:35, Ali Çehreli wrote:
 Please list what we've achieved during the hackathon, including what is
 started but is likely to be finished in the coming days or months.

 For me:

 - Finished updating "Programming in D" to 2.074.0 (the HTML is now up to
 date but I could not get to the still manual work of preparing the
 ebooks)

 - Contributed to the logo and branding discussions

 - Opened two bugs

 - Ate German cookies :)

 Ali
A bit late to the party but I created a Dub file for DMD to be able to use the lexer and parser as a library [1]. Although I did run into some problems with Dub [2], which I'm not sure how to solve. [1] https://github.com/dlang/dmd/pull/6771 [2] http://forum.rejectedsoftware.com/groups/rejectedsoftware.dub/thread/15871/
Another way: preBuildCommands: dub run ddmd:idgen - $ddmd_PACKAGE_DIR With idgen taking in the location to the root. Most importantly it is not platform specific ;)
May 12
parent reply Jacob Carlborg <doob me.com> writes:
On 2017-05-12 10:59, rikki cattermole wrote:

 Another way:

 preBuildCommands: dub run ddmd:idgen - $ddmd_PACKAGE_DIR

 With idgen taking in the location to the root.
 Most importantly it is not platform specific ;)
Hmm, so idgen should be a subpackage? -- /Jacob Carlborg
May 12
parent reply rikki cattermole <rikki cattermole.co.nz> writes:
On 12/05/2017 12:27 PM, Jacob Carlborg wrote:
 On 2017-05-12 10:59, rikki cattermole wrote:

 Another way:

 preBuildCommands: dub run ddmd:idgen - $ddmd_PACKAGE_DIR

 With idgen taking in the location to the root.
 Most importantly it is not platform specific ;)
Hmm, so idgen should be a subpackage?
May as well, it is a separate artifact from the build process.
May 12
parent reply Jacob Carlborg <doob me.com> writes:
On 2017-05-12 13:29, rikki cattermole wrote:

 May as well, it is a separate artifact from the build process.
I get: Invalid variable: dmd_PACKAGE_DIR And I'm not sure about the syntax. Is that supposed to be two dashes? And I should add an argument to idgen? -- /Jacob Carlborg
May 12
next sibling parent reply rikki cattermole <rikki cattermole.co.nz> writes:
On 12/05/2017 12:45 PM, Jacob Carlborg wrote:
 On 2017-05-12 13:29, rikki cattermole wrote:

 May as well, it is a separate artifact from the build process.
I get: Invalid variable: dmd_PACKAGE_DIR And I'm not sure about the syntax. Is that supposed to be two dashes? And I should add an argument to idgen?
I've never used the variable support in dub, its fairly recent. Yeah two dashes, my bad. idgen I don't think right now is setup for the argument, but its either that or find another solution cross platform to change directories.
May 12
parent Jacob Carlborg <doob me.com> writes:
On 2017-05-12 13:57, rikki cattermole wrote:

 I've never used the variable support in dub, its fairly recent.
 Yeah two dashes, my bad.

 idgen I don't think right now is setup for the argument, but its either
 that or find another solution cross platform to change directories.
I think I have it working now. $PACKAGE_DIR seems to work and do what I want it to do. Thanks for the help. -- /Jacob Carlborg
May 12
prev sibling parent Nicholas Wilson <iamthewilsonator hotmail.com> writes:
On Friday, 12 May 2017 at 11:45:45 UTC, Jacob Carlborg wrote:
 On 2017-05-12 13:29, rikki cattermole wrote:

 May as well, it is a separate artifact from the build process.
I get: Invalid variable: dmd_PACKAGE_DIR And I'm not sure about the syntax. Is that supposed to be two dashes? And I should add an argument to idgen?
Yes. No, idgen just runs in the cwd any writes to files in the cwd. If you're having it as a sub package you may want to change idgen to specify a path.
May 12