digitalmars.D - DConf 2017 Hackathon report
- =?UTF-8?Q?Ali_=c3=87ehreli?= (9/9) May 08 2017 Please list what we've achieved during the hackathon, including what is
- Steven Schveighoffer (27/32) May 09 2017 Nice!
- Steven Schveighoffer (3/6) May 09 2017 *now* questioning...
- Adrian Matoga (8/18) May 10 2017 +1!
- Nemanja Boric (15/26) May 09 2017 I've fixed the FreeBSD-Current exception handling issue, so
- Nemanja Boric (7/40) May 09 2017 Oh, also working with Martin and chasing him around the rooms to
- ANtlord (2/13) May 09 2017 Is there some news about compiling dmd as library?
- Joakim (4/23) May 10 2017 There was a talk about this, one of the interns is working on it:
- Atila Neves (6/17) May 10 2017 I submitted a PR for Phobos and 2 for dmd, the latter of which
- Stefan Koch (4/7) May 10 2017 Just think about how much more wizardly you will feel after it is
- Atila Neves (4/13) May 10 2017 It turns out I'd stupidly pushed branched off of my other branch
- Adrian Matoga (13/24) May 10 2017 I:
- Joseph Rushton Wakeling (13/16) May 10 2017 Created a working snap package definition for GDC. I'm
- David Nadlinger (8/11) May 10 2017 Without even having seen your snap file, I can confidently say
- Iain Buclaw via Digitalmars-d (8/18) May 11 2017 I can only infer that you are saying that using a D project means it's
- David Nadlinger (6/12) May 11 2017 Incorrect. My (implied) statement was that a dependency on D
- Iain Buclaw via Digitalmars-d (5/18) May 11 2017 My rebuttal still stands. Switching build from C++ to D should be a
- David Nadlinger (4/7) May 11 2017 How does snap requiring more than a one-line change for a
- Iain Buclaw via Digitalmars-d (4/10) May 11 2017 Oh, do you have to do the multi-stage build yourself? I don't. :-)
- David Nadlinger (5/6) May 11 2017 So you intend to keep a copy of the (old) bootstrap compiler
- Iain Buclaw via Digitalmars-d (9/15) May 11 2017 I do not intend to. Which is why switching to D-based GDC will be a
- David Nadlinger (9/10) May 12 2017 It's not a problem that needs to be solved *in* GDC, but it has
- Iain Buclaw via Digitalmars-d (6/15) May 12 2017 I've spoken to the author. I'm of the opinion that this is a design
- Iain Buclaw via Digitalmars-d (8/10) May 11 2017 I was frankly a zombie all Sunday, apart from helping Joe setting up
- Bastiaan Veelo (10/11) May 11 2017 Me too. And:
- Jacob Carlborg (9/18) May 12 2017 A bit late to the party but I created a Dub file for DMD to be able to
- rikki cattermole (5/29) May 12 2017 Another way:
- Jacob Carlborg (4/8) May 12 2017 Hmm, so idgen should be a subpackage?
- rikki cattermole (2/10) May 12 2017 May as well, it is a separate artifact from the build process.
- Jacob Carlborg (7/8) May 12 2017 I get:
- rikki cattermole (5/11) May 12 2017 I've never used the variable support in dub, its fairly recent.
- Jacob Carlborg (5/9) May 12 2017 I think I have it working now. $PACKAGE_DIR seems to work and do what I
- Nicholas Wilson (5/11) May 12 2017 Yes. No, idgen just runs in the cwd any writes to files in the
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 2017
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 2017
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 2017
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 2017
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 :) AliI'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 2017
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: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 :-)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 :) AliI'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 2017
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 :) AliIs there some news about compiling dmd as library?
May 09 2017
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: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.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 :) AliIs there some news about compiling dmd as library?
May 10 2017
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 :) AliI 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 2017
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 2017
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:It turns out I'd stupidly pushed branched off of my other branch instead of master. It's green. :) Atila, official wizardI 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 2017
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 :) AliI: 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 2017
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 2017
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 2017
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: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.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 11 2017
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 2017
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: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.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 2017
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 2017
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:Oh, do you have to do the multi-stage build yourself? I don't. :-) Iain.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 2017
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 2017
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: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.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 2017
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 2017
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: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.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.
May 12 2017
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 2017
On Tuesday, 9 May 2017 at 04:35:40 UTC, Ali Çehreli wrote:- Contributed to the logo and branding discussionsMe 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 2017
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 :) AliA 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 2017
On 12/05/2017 9:51 AM, Jacob Carlborg wrote:On 2017-05-09 06:35, Ali Çehreli 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 ;)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 :) AliA 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/
May 12 2017
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 2017
On 12/05/2017 12:27 PM, Jacob Carlborg wrote:On 2017-05-12 10:59, rikki cattermole wrote:May as well, it is a separate artifact from the build process.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 12 2017
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 2017
On 12/05/2017 12:45 PM, Jacob Carlborg wrote:On 2017-05-12 13:29, 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.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?
May 12 2017
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 2017
On Friday, 12 May 2017 at 11:45:45 UTC, Jacob Carlborg wrote:On 2017-05-12 13:29, rikki cattermole wrote: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 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?
May 12 2017