digitalmars.D - Voting For std.experimental.ndslice
- Jack Stouffer (27/27) Dec 12 2015 This is the voting thread to decide if the proposed addition to
- Jack Stouffer (2/8) Dec 12 2015 I vote yes. I am a contributor to Phobos.
- Ilya Yaroshenko (5/8) Dec 12 2015 Docs fixed link:
- Meta (2/5) Dec 12 2015 Is std.experimental also on the table, or directly to phobos?
- Jack Stouffer (4/5) Dec 13 2015 Not quite sure what you're asking here, but if you're asking if
- Meta (7/12) Dec 13 2015 Ok, your wording about the API freezing seemed to imply that it
- lobo (2/5) Dec 13 2015 Yes
- drug (2/8) Dec 13 2015 Yes
- =?UTF-8?B?Tm9yZGzDtnc=?= (2/5) Dec 13 2015 Yes
- =?UTF-8?B?Tm9yZGzDtnc=?= (2/4) Dec 16 2015 I've contributed to both DMD and Phobos.
- ZombineDev (2/5) Dec 13 2015 Yes.
- John Colvin (4/7) Dec 13 2015 I've played some large part in the various iterations of
- jmh530 (2/5) Dec 13 2015 Yes
- Tanel =?UTF-8?B?VGFnYXbDpGxp?= (3/3) Dec 13 2015 Yes
- Ilya Yaroshenko (3/6) Dec 13 2015 What matrix features are missing in ndslice except matrix
- Andrea Fontana (8/14) Dec 14 2015 Yes! Image example is a good idea but I think it should not use
- Ilya Yaroshenko (11/29) Dec 22 2015 imageformats consists of a single file, so user can compile it
- Laeeth Isharc (1/1) Dec 14 2015 Yes
- Robert burner Schadek (28/28) Dec 16 2015 Yes with many conditions:
- Ilya Yaroshenko (24/52) Dec 16 2015 I will add description of what this module dose and how it works
- Ilya Yaroshenko (3/11) Dec 16 2015 EDIT: assumeSameStructure
- Robert burner Schadek (6/14) Dec 17 2015 template sliced(Names...)
- Robert burner Schadek (6/10) Dec 17 2015 Please no, put all the doc at one place.
- Ilya Yaroshenko (13/25) Dec 22 2015 0. Package header was added
- John Colvin (2/5) Dec 16 2015 Docs are hitting a server error.
- Dennis Ritchie (3/14) Dec 16 2015 On Sunday, 13 December 2015 at 05:21:49 UTC, Ilya Yaroshenko
- John Colvin (3/20) Dec 16 2015 Totally forgot reading that, thanks.
- Yazan D (1/1) Dec 21 2015 Yes
- Jack Stouffer (3/5) Dec 24 2015 Voting ends in three days.
- Jack Stouffer (6/12) Dec 27 2015 Voting has ended! Thanks to everyone who voted and reviewed.
- Martin Nowak (4/8) Dec 28 2015 Anything left to review/do on the PR? We're branching for 2.070
- Ilya Yaroshenko (16/27) Dec 28 2015 Very minor DDOC style hack can be fixed. I will fix it during
- Jack Stouffer (6/12) Dec 29 2015 I'm writing a blog post giving an overview of std.ndslice and
- Ilya Yaroshenko (11/27) Dec 29 2015 Thank you for doing this!
- Jack Stouffer (4/24) Dec 29 2015 First draft: http://jackstouffer.com/hidden/nd_slice.html
- MrSmith (2/9) Dec 29 2015 Looks solid. Good work!
- Ilya Yaroshenko (74/99) Dec 29 2015 Awesome!
- Ilya Yaroshenko (4/26) Dec 29 2015 ldmd2/ldc2 flag -mcpu=native will optimise code for your CPU. --
- Ilya (10/38) Dec 29 2015 The paragraph
- Jack Stouffer (4/6) Dec 30 2015 Hmm, ldc seems to segfault when passing that flag. I will make a
- Jack Stouffer (34/36) Dec 29 2015 Thanks for the feedback. Good thing I posted this here before
- Ilya Yaroshenko (6/12) Dec 29 2015 means in your code is lazy variable :)
- Jack Stouffer (2/13) Dec 28 2015 I believe, with Ilya's recent doc fix, it's ready to go.
- Andrei Alexandrescu (2/14) Dec 28 2015 Let's do it. Many thanks to Ilya and all reviewers! -- Andrei
- Robert burner Schadek (7/10) Dec 28 2015 This is not true, my yes was conditional and the documentation is
- Jack Stouffer (5/7) Dec 28 2015 Could you elaborate what issues you have with the docs? All of
- Ilya Yaroshenko (14/27) Dec 28 2015 Have you read the latest changes?
- Robert burner Schadek (23/25) Dec 28 2015 I have.
- Andrei Alexandrescu (3/26) Dec 28 2015 FWIW I noticed that too. It took me a while to figure what the thing
- Ilya Yaroshenko (10/36) Dec 28 2015 Agreed
- Ilya Yaroshenko (4/15) Dec 28 2015 Fix English:
- =?UTF-8?B?TcOhcmNpbw==?= Martins (5/25) Dec 29 2015 If I am reading the code right, the number of dimensions must
- Jack Stouffer (7/9) Dec 29 2015 Not necessarily. The dimensions for this slice are computed at
- =?UTF-8?B?TcOhcmNpbw==?= Martins (8/17) Dec 29 2015 ```
- Ilya Yaroshenko (3/23) Dec 29 2015 Yes. -- Ilya
- Ilya Yaroshenko (9/36) Dec 29 2015 This package is performance oriented. In the same time it is more
- Robert burner Schadek (6/10) Dec 29 2015 That is just patchwork ...
- Ilya Yaroshenko (17/28) Dec 29 2015 OK, lets discuss every function.
- Robert burner Schadek (6/7) Dec 29 2015 That is acceptably the problem. It is not about the documentation
- Ilya Yaroshenko (87/96) Dec 29 2015 OK, looks like I understand you.
- Andrei Alexandrescu (3/10) Dec 29 2015 Hopefully this is something that you or someone else could help by
- Ilya Yaroshenko (8/22) Dec 29 2015 Collection of posts like Jack Stouffer is writing will bring an
- Ilya Yaroshenko (3/17) Dec 30 2015 Does it means that the PR can be merged? --Ilya
- John Colvin (5/23) Dec 30 2015 If there's a time constraint, perhaps we could merge it for 2.070
- Ilya (2/16) Dec 30 2015 2.070 would be merged into stable soon.
- Robert burner Schadek (3/8) Dec 28 2015 On Monday, 28 December 2015 at 15:52:09 UTC, Robert burner
This is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted. To vote, please respond to this post. You have three options: * Yes * Yes with a single condition * No If you vote "yes" you can still mention something you'd like improved, but please be explicit if that problem is a non starter for you and you are choosing option two. If you vote no, please state why, though you aren't required to. Everyone can vote, but the contributors to the language will have more sway. If you are a contributor, please identify yourself as such. Some things to consider when making a vote: * Is this functionality needed in Phobos? * The API is practically permanent once the module is accepted. Some minor changes can be made, but a full redesign is no longer an option. The voting will end December 27th. Github: https://github.com/D-Programming-Language/phobos/pull/3397 dub: http://code.dlang.org/packages/dip80-ndslice docs: http://dtest.thecybershadow.net/artifact/website-13cbdcf17d84fc31328c3f517a56bea783c418d6-dd2292a424959b594956eeeba64d391f/web/phobos-prerelease/std_experimental_ndslice.html/ original discussion: http://forum.dlang.org/thread/rilfmeaqkailgpxoziuo forum.dlang.org review thread: http://forum.dlang.org/post/uesnmkgniumswfclwbgt forum.dlang.org
Dec 12 2015
On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:This is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted. To vote, please respond to this post. You have three options: * Yes * Yes with a single condition * NoI vote yes. I am a contributor to Phobos.
Dec 12 2015
On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:This is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted. [...]Docs fixed link: http://dtest.thecybershadow.net/artifact/website-13cbdcf17d84fc31328c3f517a56bea783c418d6-dd2292a424959b594956eeeba64d391f/web/phobos-prerelease/std_experimental_ndslice.html The latest docs always can be found at PullRequest's CyberShadow/DAutoTest
Dec 12 2015
On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:* The API is practically permanent once the module is accepted. Some minor changes can be made, but a full redesign is no longer an option.Is std.experimental also on the table, or directly to phobos?
Dec 12 2015
On Sunday, 13 December 2015 at 06:07:15 UTC, Meta wrote:Is std.experimental also on the table, or directly to phobos?Not quite sure what you're asking here, but if you're asking if this is going into stdx first, then the answer is yes. Things that go into stdx aren't supposed to change that much.
Dec 13 2015
On Sunday, 13 December 2015 at 17:07:06 UTC, Jack Stouffer wrote:On Sunday, 13 December 2015 at 06:07:15 UTC, Meta wrote:Ok, your wording about the API freezing seemed to imply that it would go directly into Phobos without spending some time in std.experimental. Anyway, I'm not familiar with the subject domain, so I'll abstain from voting. I will say however that the documentation could use some work.Is std.experimental also on the table, or directly to phobos?Not quite sure what you're asking here, but if you're asking if this is going into stdx first, then the answer is yes. Things that go into stdx aren't supposed to change that much.
Dec 13 2015
On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:This is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted. [...]Yes
Dec 13 2015
13.12.2015 12:01, lobo пишет:On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:YesThis is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted. [...]Yes
Dec 13 2015
On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:This is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted. To vote, please respond to this post.Yes
Dec 13 2015
On Sunday, 13 December 2015 at 12:57:00 UTC, Nordlöw wrote:I've contributed to both DMD and Phobos.To vote, please respond to this post.Yes
Dec 16 2015
On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:This is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted. [...]Yes.
Dec 13 2015
On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:This is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted. [...]I've played some large part in the various iterations of reviewing this, so I'm biased, but of course: yes
Dec 13 2015
On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:This is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted. To vote, please respond to this post. You have three options:Yes
Dec 13 2015
Yes Hope to see a Matrix (multidimensional, if possible) class with this.
Dec 13 2015
On Sunday, 13 December 2015 at 22:16:35 UTC, Tanel Tagaväli wrote:Yes Hope to see a Matrix (multidimensional, if possible) class with this.What matrix features are missing in ndslice except matrix multiplication?
Dec 13 2015
On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:This is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted. To vote, please respond to this post. You have three options: * Yes * Yes with a single condition * NoYes! Image example is a good idea but I think it should not use external libraries. If someone starts with d/phobos probably won't download/configure another library to do some tests. I suggest you to fix the example using ppm format. https://en.wikipedia.org/wiki/Netpbm_format#PPM_example It's just a couple of "map!()" away. :) Or bmp, it's not that complex to read in its common form.
Dec 14 2015
On Monday, 14 December 2015 at 08:29:13 UTC, Andrea Fontana wrote:On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:Thanks!This is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted. To vote, please respond to this post. You have three options: * Yes * Yes with a single condition * NoYes!Image example is a good idea but I think it should not use external libraries. If someone starts with d/phobos probably won't download/configure another library to do some tests. I suggest you to fix the example using ppm format. https://en.wikipedia.org/wiki/Netpbm_format#PPM_example It's just a couple of "map!()" away. :) Or bmp, it's not that complex to read in its common form.imageformats consists of a single file, so user can compile it without dub. It would be faster for user to find and use imageformats than to find a converter from jpeg/png to PPM. Furthermore complete dub example is available at DlangScience/examples. If you have an idea about additional example I'll be happy to discuss it. Best, Ilya
Dec 22 2015
Yes with many conditions: * Documentation ** The documentation needs a complete rewrite. If I hadn't had any prior knowledge, I would have needed to read the numpy documentation to figure what this package does. That is not acceptable. It is also not clear how the functionally in the package is supposed to work together, and how it interacts with the rest of phobos. ** Params, Returns ... * Style ** the source code does not look like phobos ** s/assert (/assert(/g ** s/unittest {/unittest\n{/g ** unittest properties should be on the same line as the unittest keyword ** spaces between operators ** dfmt and some manuel work is your friend * Testing ** most tests only use itoa, what about arrays what about arrays with user defined types. That's properly trivial but should be tested. ** interaction with rest of phobos. Can I call map on a Slice? If I can, it should be tested so that it still works after the next release. * Miscellaneous ** string mixins. I think some of the string mixins can be removed for something more readable/debuggable **
Dec 16 2015
On Wednesday, 16 December 2015 at 11:01:25 UTC, Robert burner Schadek wrote:Yes with many conditions: * Documentation ** The documentation needs a complete rewrite. If I hadn't had any prior knowledge, I would have needed to read the numpy documentation to figure what this package does. That is not acceptable. It is also not clear how the functionally in the package is supposed to work together, and how it interacts with the rest of phobos.I will add description of what this module dose and how it works under the hood. In the same time I expect few articles from another engineers about ndslice like this http://dlang.org/intro-to-datetime.html . It is much better to have explanation from different engineers.** Params, Returns ...Agreed.* Style ** the source code does not look like phobos ** s/assert (/assert(/g ** s/unittest {/unittest\n{/g ** unittest properties should be on the same line as the unittest keyword ** spaces between operators ** dfmt and some manuel work is your friendAgreed all except spaces between operators. I would like to do not use them in someY examples exactly for readability reasons.* Testing ** most tests only use itoa, what about arrays what about arrays with user defined types. That's properly trivial but should be tested.Didn't agree. Corresponding features for arrays and std.container.array are tested. 98% of ndslice do not do anything with data. Its change strides and lengths _only_.** interaction with rest of phobos. Can I call map on a Slice? If I can, it should be tested so that it still works after the next release.OK, I will add test for `map`. For other Phobos Slice is just an Random Access Range and it is already tested for iota, arrays, std.container.array, dummyranges . Please note this DMD bug (see reduced example by John): https://issues.dlang.org/show_bug.cgi?id=15441* Miscellaneous ** string mixins. I think some of the string mixins can be removed for something more readable/debuggable **I have not found examples where string mixins can be removed. Please refer to particular example. The code for `sliced` and `assumeSorted` looks ugly. But I don't know how is can be done another way. Remove this functionality is an option. Thank you and regards, Ilya
Dec 16 2015
On Wednesday, 16 December 2015 at 17:49:03 UTC, Ilya Yaroshenko wrote:On Wednesday, 16 December 2015 at 11:01:25 UTC, Robert burner Schadek wrote:I have not found examples where string mixins can be removed. Please refer to particular example. The code for `sliced` and `assumeSorted` looks ugly. But I don't know how is can be done another way. Remove this functionality is an option. Thank you and regards, IlyaEDIT: assumeSameStructure
Dec 16 2015
On Wednesday, 16 December 2015 at 17:49:03 UTC, Ilya Yaroshenko wrote:template sliced(Names...) you can simple compute the strings and than pass them as template parameter or as alias to another function. If that becomes unpractical at least use q{ } strings* Miscellaneous ** string mixins. I think some of the string mixins can be removed for something more readable/debuggable **I have not found examples where string mixins can be removed. Please refer to particular example. The code for `sliced` and `assumeSorted` looks ugly. But I don't know how is can be done another way. Remove this functionality is an option.
Dec 17 2015
On Wednesday, 16 December 2015 at 17:49:03 UTC, Ilya Yaroshenko wrote:In the same time I expect few articles from another engineers about ndslice like this http://dlang.org/intro-to-datetime.html . It is much better to have explanation from different engineers.Please no, put all the doc at one place. Actually, that article was written by the author of the library. People are lazy, if the doc is not in the phobos docs they will not search for it. Make it very hard for people to complain.
Dec 17 2015
On Thursday, 17 December 2015 at 13:33:28 UTC, Robert burner Schadek wrote:On Wednesday, 16 December 2015 at 17:49:03 UTC, Ilya Yaroshenko wrote:0. Package header was added 1. Annotations for `Category` column was added. 2. Internal Binary Representation section was added to std_experimental_ndslice.html 3. `Slice` type contains classification of slicing and indexing, so user can study it along with examples of Slice's overloaded operators. $(CCODE code) does not work if code contains `ALineLikeThat:`. So I use $(D ), but words `is` and `default` are highlighted =\ Update link: http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-904569dd4c4451a4514dc4b456c7b395/web/phobos-prerelease/std_experimental_ndslice.htmlIn the same time I expect few articles from another engineers about ndslice like this http://dlang.org/intro-to-datetime.html . It is much better to have explanation from different engineers.Please no, put all the doc at one place. Actually, that article was written by the author of the library. People are lazy, if the doc is not in the phobos docs they will not search for it. Make it very hard for people to complain.
Dec 22 2015
On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:This is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted. [...]Docs are hitting a server error.
Dec 16 2015
On Wednesday, 16 December 2015 at 11:21:13 UTC, John Colvin wrote:On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:On Sunday, 13 December 2015 at 05:21:49 UTC, Ilya Yaroshenko wrote:This is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted. [...]Docs are hitting a server error.Docs fixed link: http://dtest.thecybershadow.net/artifact/website-13cbdcf17d84fc31328c3f517a56bea783c418d6-dd2292a424959b594956eeeba64d391f/web/phobos-prerelease/std_experimental_ndslice.html The latest docs always can be found at PullRequest's CyberShadow/DAutoTest
Dec 16 2015
On Wednesday, 16 December 2015 at 11:31:00 UTC, Dennis Ritchie wrote:On Wednesday, 16 December 2015 at 11:21:13 UTC, John Colvin wrote:Totally forgot reading that, thanks.On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:On Sunday, 13 December 2015 at 05:21:49 UTC, Ilya Yaroshenko wrote:This is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted. [...]Docs are hitting a server error.Docs fixed link: http://dtest.thecybershadow.net/artifact/website-13cbdcf17d84fc31328c3f517a56bea783c418d6-dd2292a424959b594956eeeba64d391f/web/phobos-prerelease/std_experimental_ndslice.html The latest docs always can be found at PullRequest's CyberShadow/DAutoTest
Dec 16 2015
On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:This is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted.Voting ends in three days. Have a merry Christmas everyone!
Dec 24 2015
On Thursday, 24 December 2015 at 17:10:25 UTC, Jack Stouffer wrote:On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:Voting has ended! Thanks to everyone who voted and reviewed. The final tally: Yes: 12 No: 0This is the voting thread to decide if the proposed addition to Phobos, std.experimental.ndslice, should be accepted.Voting ends in three days. Have a merry Christmas everyone!
Dec 27 2015
On Monday, 28 December 2015 at 07:11:00 UTC, Jack Stouffer wrote:Voting has ended! Thanks to everyone who voted and reviewed. The final tally: Yes: 12 No: 0Anything left to review/do on the PR? We're branching for 2.070 soon, would be nice if this can make it, but only if it's really ready.
Dec 28 2015
On Monday, 28 December 2015 at 11:13:57 UTC, Martin Nowak wrote:On Monday, 28 December 2015 at 07:11:00 UTC, Jack Stouffer wrote:Very minor DDOC style hack can be fixed. I will fix it during first alpha version. The following console code can not be placed with CCODE macros because looks like `Usage:` word breaks it. So it is D CODE with `default` and `is` keywords highlighted for now. ---- $ median-filter --help Usage: median-filter [<options...>] [<file_names...>] options: --nr number of rows in window, default value is 3 --nc number of columns in window default value equals to nr -h --help This help information. ----Voting has ended! Thanks to everyone who voted and reviewed. The final tally: Yes: 12 No: 0Anything left to review/do on the PR?We're branching for 2.070 soon, would be nice if this can make it, but only if it's really ready.Whooohooo! Thanks! Ilya
Dec 28 2015
On Monday, 28 December 2015 at 14:42:43 UTC, Ilya Yaroshenko wrote:On Monday, 28 December 2015 at 11:13:57 UTC, Martin Nowak wrote:I'm writing a blog post giving an overview of std.ndslice and comparing and contrasting to Numpy, to be released when this is merged, and I was wondering if I can have your permission to include your great image processing example in the post?We're branching for 2.070 soon, would be nice if this can make it, but only if it's really ready.Whooohooo! Thanks! Ilya
Dec 29 2015
On Tuesday, 29 December 2015 at 17:17:05 UTC, Jack Stouffer wrote:On Monday, 28 December 2015 at 14:42:43 UTC, Ilya Yaroshenko wrote:Thank you for doing this! Yes, you can get any examples! `movingWindowByChannel` is a good function, however small function `median` can be improved, but it is not easy to do it for small filter sizes. You may want to use convolution matrices such as the Sobel operator or Gaussian blur instead of `median`. They will work faster comparing with `median`. Another option is a note that `median` can be significantly optimised. ^____^ Many thanks! IlyaOn Monday, 28 December 2015 at 11:13:57 UTC, Martin Nowak wrote:I'm writing a blog post giving an overview of std.ndslice and comparing and contrasting to Numpy, to be released when this is merged, and I was wondering if I can have your permission to include your great image processing example in the post?We're branching for 2.070 soon, would be nice if this can make it, but only if it's really ready.Whooohooo! Thanks! Ilya
Dec 29 2015
On Tuesday, 29 December 2015 at 17:38:06 UTC, Ilya Yaroshenko wrote:On Tuesday, 29 December 2015 at 17:17:05 UTC, Jack Stouffer wrote:First draft: http://jackstouffer.com/hidden/nd_slice.html Please critique.On Monday, 28 December 2015 at 14:42:43 UTC, Ilya Yaroshenko wrote:Thank you for doing this!On Monday, 28 December 2015 at 11:13:57 UTC, Martin Nowak wrote:I'm writing a blog post giving an overview of std.ndslice and comparing and contrasting to Numpy, to be released when this is merged, and I was wondering if I can have your permission to include your great image processing example in the post?We're branching for 2.070 soon, would be nice if this can make it, but only if it's really ready.Whooohooo! Thanks! Ilya
Dec 29 2015
On Tuesday, 29 December 2015 at 21:19:19 UTC, Jack Stouffer wrote:On Tuesday, 29 December 2015 at 17:38:06 UTC, Ilya Yaroshenko wrote:Looks solid. Good work!On Tuesday, 29 December 2015 at 17:17:05 UTC, Jack Stouffer wrote:... First draft: http://jackstouffer.com/hidden/nd_slice.html Please critique.
Dec 29 2015
On Tuesday, 29 December 2015 at 21:19:19 UTC, Jack Stouffer wrote:On Tuesday, 29 December 2015 at 17:38:06 UTC, Ilya Yaroshenko wrote:Awesome! Please find my notes below. The Basics ====== About `iota.front -> slice.font -> user accessing the data`: 1. From the `sliced` documentation for `range` parameter: "only index operator auto `opIndex(size_t index)` is required for ranges". See also recently added the last two examples for sliced The first one is for Input Range primitives, the second one is for Random Access Range primitives. 2. Consequently `Slice` never invokes `front`, `popFront`, `empty`, and others range primitives. `Slice` invokes only `opIndex(size_t)`, and if `save` is defined, `slice.save` invokes `range.save`. In addition, `sliced` can be used like Finite Random Access Range Constructor: user may define only `opIndex(size_t)` and `save` to make a Finite Random Access Range by calling `sliced`. 3. If type of slice is `Slice!(3, Range)`, then `slice.front` do not invokes `range[indexToFront]`, it returns a slice type of `Slice!(2, Range)`. In addition, `indexToFront` may not be zero, because primitives like `popFront` or operators like `reversed` may be called before. For slices over arrays `indexToFront` is not defined because the pointer always refers to the first position: the pointer is moved when the slice changes. For more details see also examples for Internal Binary Representation Getting Hands On ====== - Please use "~>0.8.7" instead of "~>0.8.0". "~>0.8.7" has LDC 0.17.0 alpha1 support. Examples ====== - A Basic Example With A Benchmark is not honest (difference 76 is very large). To make it honest: 1. Larger 100x1000 matrix can be used instead of 10x10, because numpy have a significant initialization overhead. 2. Both `100_000.iota.sliced(100, 1000)` and `100_000.iota.array.sliced(100, 1000)` can be tested. The last one is with `std.array.array`. Memory access is expensive. 3. Only iteration should be tested. Allocation and initilization should be separated from iteration both in D and Python. I expect smaller differnce in perfomance than 76 times. - You may want to test both DMD and LDC 0.17.0 alpha1 for bechmarks https://github.com/ldc-developers/ldc/releases/tag/v0.17.0-alpha1 LDC 0.17.0 alpha1 works well with dip80-ndslice v0.8.7. - Python users love small code and they can be afraid to see large (template constraints) `mean` funciton. An example with lambda function can be added: --- auto means = 100_000.iota.sliced(100, 10000).rotated(3).map!(r => sum(r) / r.length); --- One line! - Nitpick: `transposed` (without params for 2D slice) is more clear than `rotated(3)`, IMO - `dub --build=release`can be added where you have noted dmd optimisation flags. Numpy's Main Problem, and How D Avoids It ===== - D version with allocation using `std.array.array` can be added (or just `new int[1000]`). The slice over `repeat` is not mutable (users from numpy world may expect that it is an array). IlyaOn Tuesday, 29 December 2015 at 17:17:05 UTC, Jack Stouffer wrote:First draft: http://jackstouffer.com/hidden/nd_slice.html Please critique.On Monday, 28 December 2015 at 14:42:43 UTC, Ilya Yaroshenko wrote:Thank you for doing this!On Monday, 28 December 2015 at 11:13:57 UTC, Martin Nowak wrote:I'm writing a blog post giving an overview of std.ndslice and comparing and contrasting to Numpy, to be released when this is merged, and I was wondering if I can have your permission to include your great image processing example in the post?We're branching for 2.070 soon, would be nice if this can make it, but only if it's really ready.Whooohooo! Thanks! Ilya
Dec 29 2015
On Wednesday, 30 December 2015 at 00:24:38 UTC, Ilya Yaroshenko wrote:On Tuesday, 29 December 2015 at 21:19:19 UTC, Jack Stouffer wrote:ldmd2/ldc2 flag -mcpu=native will optimise code for your CPU. -- IlyaOn Tuesday, 29 December 2015 at 17:38:06 UTC, Ilya Yaroshenko wrote:Awesome! Please find my notes below. [...] - You may want to test both DMD and LDC 0.17.0 alpha1 for bechmarks https://github.com/ldc-developers/ldc/releases/tag/v0.17.0-alpha1 LDC 0.17.0 alpha1 works well with dip80-ndslice v0.8.7. [...] IlyaOn Tuesday, 29 December 2015 at 17:17:05 UTC, Jack Stouffer wrote:First draft: http://jackstouffer.com/hidden/nd_slice.html Please critique.[...]Thank you for doing this!
Dec 29 2015
On Wednesday, 30 December 2015 at 01:03:39 UTC, Ilya Yaroshenko wrote:On Wednesday, 30 December 2015 at 00:24:38 UTC, Ilya Yaroshenko wrote:The paragraph "This function does not calculate border cases in which a window overlaps the image partially. However, the function can still be used to carry out such calculations. That can be done by creating an amplified image, with the edges reflected from the original image, and then applying the given function to the new file. Note:" ends with "Note:". --IlyaOn Tuesday, 29 December 2015 at 21:19:19 UTC, Jack Stouffer wrote:ldmd2/ldc2 flag -mcpu=native will optimise code for your CPU. -- IlyaOn Tuesday, 29 December 2015 at 17:38:06 UTC, Ilya Yaroshenko wrote:Awesome! Please find my notes below. [...] - You may want to test both DMD and LDC 0.17.0 alpha1 for bechmarks https://github.com/ldc-developers/ldc/releases/tag/v0.17.0-alpha1 LDC 0.17.0 alpha1 works well with dip80-ndslice v0.8.7. [...] IlyaOn Tuesday, 29 December 2015 at 17:17:05 UTC, Jack Stouffer wrote:First draft: http://jackstouffer.com/hidden/nd_slice.html Please critique.[...]Thank you for doing this!
Dec 29 2015
On Wednesday, 30 December 2015 at 01:03:39 UTC, Ilya Yaroshenko wrote:ldmd2/ldc2 flag -mcpu=native will optimise code for your CPU. -- IlyaHmm, ldc seems to segfault when passing that flag. I will make a bug report for this.
Dec 30 2015
On Wednesday, 30 December 2015 at 00:24:38 UTC, Ilya Yaroshenko wrote:Awesome! Please find my notes below.Thanks for the feedback. Good thing I posted this here before releasing it. Funny thing, when I made the D example use the mean lambda function, it got way faster. Even with the larger array size, the D code went from 138 ns with the small array and the function to 58 ns with the large array and the lambda. And, the Python code expectantly got slower, even when I made sure to only test the np.mean function, the time taking the mean of the large array was 145 µs up from 10.5 µs with allocation and taking the mean with the smaller array. So now the D version is 2474x faster. Also, I was unable to get LDC numbers, as when I compiled my test program with all of the optimization flags, LDC returns 0 hnsecs the code: =============== import std.range; import std.algorithm.iteration; import std.experimental.ndslice; import std.stdio; import std.datetime; import std.conv : to; void f0() { auto means = 100_000.iota.sliced(100, 1000).transposed.map!(r => sum(r) / r.length); } void main() { auto r = benchmark!(f0)(10_000); auto f0Result = to!Duration(r[0]); f0Result.writeln; } I'm assuming that LLVM realizes that the variable means is never used, so it removes it from the final version.
Dec 29 2015
On Wednesday, 30 December 2015 at 06:16:23 UTC, Jack Stouffer wrote:On Wednesday, 30 December 2015 at 00:24:38 UTC, Ilya Yaroshenko wrote:means in your code is lazy variable :) You may want to made means a global array. And copy mapped result to it. Please made PR to DlangSciencse/examples with your Python and D benchmarks. --Ilya[...]Thanks for the feedback. Good thing I posted this here before releasing it. [...]
Dec 29 2015
On Monday, 28 December 2015 at 11:13:57 UTC, Martin Nowak wrote:On Monday, 28 December 2015 at 07:11:00 UTC, Jack Stouffer wrote:I believe, with Ilya's recent doc fix, it's ready to go.Voting has ended! Thanks to everyone who voted and reviewed. The final tally: Yes: 12 No: 0Anything left to review/do on the PR? We're branching for 2.070 soon, would be nice if this can make it, but only if it's really ready.
Dec 28 2015
On 12/28/2015 09:57 AM, Jack Stouffer wrote:On Monday, 28 December 2015 at 11:13:57 UTC, Martin Nowak wrote:Let's do it. Many thanks to Ilya and all reviewers! -- AndreiOn Monday, 28 December 2015 at 07:11:00 UTC, Jack Stouffer wrote:I believe, with Ilya's recent doc fix, it's ready to go.Voting has ended! Thanks to everyone who voted and reviewed. The final tally: Yes: 12 No: 0Anything left to review/do on the PR? We're branching for 2.070 soon, would be nice if this can make it, but only if it's really ready.
Dec 28 2015
On Monday, 28 December 2015 at 07:11:00 UTC, Jack Stouffer wrote:The final tally: Yes: 12 No: 0This is not true, my yes was conditional and the documentation is still weak. So it is Yes: 11 Yes: Conditional No: 0 Please do not merge this with the current state of documentation.
Dec 28 2015
On Monday, 28 December 2015 at 15:52:09 UTC, Robert burner Schadek wrote:Please do not merge this with the current state of documentation.Could you elaborate what issues you have with the docs? All of the functions have Params and Returns sections and the examples show what each function does.
Dec 28 2015
On Monday, 28 December 2015 at 15:52:09 UTC, Robert burner Schadek wrote:On Monday, 28 December 2015 at 07:11:00 UTC, Jack Stouffer wrote:Have you read the latest changes? http://forum.dlang.org/post/djgkkrdufycyjhpmafse forum.dlang.org I have write documentation as I understand problem. I don't know what would be not weak for you. This module has three levels. User should study them one by one if he is new be (slice, iteration, selection). I am not a book author, I can describe something to my colleagues, but I have not any understanding of what would be _not weak_. If you _really_ have read all documentation one by one with attention and you have some question, please write them. Then I can improve documentsion. IlyaThe final tally: Yes: 12 No: 0This is not true, my yes was conditional and the documentation is still weak. So it is Yes: 11 Yes: Conditional No: 0 Please do not merge this with the current state of documentation.
Dec 28 2015
On Monday, 28 December 2015 at 18:39:47 UTC, Ilya Yaroshenko wrote:Have you read the latest changes? http://forum.dlang.org/post/djgkkrdufycyjhpmafse forum.dlang.orgI have. The problem with the doc is that is describes what it can be used for, but it does not describe what it is. It is like saying: "It brings you from point A to point B." Instead you should say it is a car. And a car is self moving object .... The first few sentences: """ The package is designed for applications such as linear algebra, physics and statistics. It would be well suited to creating machine learning and image processing algorithms, but should also be general enough for use anywhere with homogeneously-typed multidimensional data. """ does not say what it is. Should be something, as far as I understand the package, like: """ This package provides a multidimensional array implementation, suited for scientific computing. Additionally, many functions for iteration, accessing and manipulation are given. .... """
Dec 28 2015
On 12/28/2015 04:43 PM, Robert burner Schadek wrote:On Monday, 28 December 2015 at 18:39:47 UTC, Ilya Yaroshenko wrote:FWIW I noticed that too. It took me a while to figure what the thing really is. -- AndreiHave you read the latest changes? http://forum.dlang.org/post/djgkkrdufycyjhpmafse forum.dlang.orgI have. The problem with the doc is that is describes what it can be used for, but it does not describe what it is. It is like saying: "It brings you from point A to point B." Instead you should say it is a car. And a car is self moving object .... The first few sentences: """ The package is designed for applications such as linear algebra, physics and statistics. It would be well suited to creating machine learning and image processing algorithms, but should also be general enough for use anywhere with homogeneously-typed multidimensional data. """ does not say what it is. Should be something, as far as I understand the package, like: """ This package provides a multidimensional array implementation, suited for scientific computing. Additionally, many functions for iteration, accessing and manipulation are given. .... """
Dec 28 2015
On Monday, 28 December 2015 at 21:43:35 UTC, Robert burner Schadek wrote:On Monday, 28 December 2015 at 18:39:47 UTC, Ilya Yaroshenko wrote:Agreed 1. First paragraph was replaced by your variant. 2. Binary representation was moved to Slice type documentation. 3. Small "Quick Start" was added, so new user will start from `sliced` and `Slice`. http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-081dd6e9e8b3810a143d0a5fcba8d60b/web/phobos-prerelease/std_experimental_ndslice.html Thanks! IlyaHave you read the latest changes? http://forum.dlang.org/post/djgkkrdufycyjhpmafse forum.dlang.orgI have. The problem with the doc is that is describes what it can be used for, but it does not describe what it is. It is like saying: "It brings you from point A to point B." Instead you should say it is a car. And a car is self moving object .... The first few sentences: """ The package is designed for applications such as linear algebra, physics and statistics. It would be well suited to creating machine learning and image processing algorithms, but should also be general enough for use anywhere with homogeneously-typed multidimensional data. """ does not say what it is. Should be something, as far as I understand the package, like: """ This package provides a multidimensional array implementation, suited for scientific computing. Additionally, many functions for iteration, accessing and manipulation are given. .... """
Dec 28 2015
On Monday, 28 December 2015 at 22:39:45 UTC, Ilya Yaroshenko wrote:On Monday, 28 December 2015 at 21:43:35 UTC, Robert burner Schadek wrote:Fix English: http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-bfed2500425eb407bf2c97fc72e8a0c5/web/phobos-prerelease/std_experimental_ndslice.html[...]Agreed 1. First paragraph was replaced by your variant. 2. Binary representation was moved to Slice type documentation. 3. Small "Quick Start" was added, so new user will start from `sliced` and `Slice`. http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-081dd6e9e8b3810a143d0a5fcba8d60b/web/phobos-prerelease/std_experimental_ndslice.html Thanks! Ilya
Dec 28 2015
On Tuesday, 29 December 2015 at 07:45:14 UTC, Ilya Yaroshenko wrote:On Monday, 28 December 2015 at 22:39:45 UTC, Ilya Yaroshenko wrote:If I am reading the code right, the number of dimensions must always be known at compile time, right? Is so, I suppose it was a performance-oriented decision and not an oversight, correct?On Monday, 28 December 2015 at 21:43:35 UTC, Robert burner Schadek wrote:Fix English: http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-bfed2500425eb407bf2c97fc72e8a0c5/web/phobos-prerelease/std_experimental_ndslice.html[...]Agreed 1. First paragraph was replaced by your variant. 2. Binary representation was moved to Slice type documentation. 3. Small "Quick Start" was added, so new user will start from `sliced` and `Slice`. http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-081dd6e9e8b3810a143d0a5fcba8d60b/web/phobos-prerelease/std_experimental_ndslice.html Thanks! Ilya
Dec 29 2015
On Tuesday, 29 December 2015 at 13:30:47 UTC, Márcio Martins wrote:If I am reading the code right, the number of dimensions must always be known at compile time, right?Not necessarily. The dimensions for this slice are computed at runtime. ``` auto slice = 1000.iota.sliced(5, 6, 7); ```
Dec 29 2015
On Tuesday, 29 December 2015 at 13:54:56 UTC, Jack Stouffer wrote:On Tuesday, 29 December 2015 at 13:30:47 UTC, Márcio Martins wrote:``` With this declaration: ``` struct Slice(size_t _N, _Range) ``` _N, the number of dimensions, must necessarily be known at compile-time, right?If I am reading the code right, the number of dimensions must always be known at compile time, right?Not necessarily. The dimensions for this slice are computed at runtime. ``` auto slice = 1000.iota.sliced(5, 6, 7); ```
Dec 29 2015
On Tuesday, 29 December 2015 at 14:51:37 UTC, Márcio Martins wrote:On Tuesday, 29 December 2015 at 13:54:56 UTC, Jack Stouffer wrote:Yes. -- IlyaOn Tuesday, 29 December 2015 at 13:30:47 UTC, Márcio Martins wrote:``` With this declaration: ``` struct Slice(size_t _N, _Range) ``` _N, the number of dimensions, must necessarily be known at compile-time, right?If I am reading the code right, the number of dimensions must always be known at compile time, right?Not necessarily. The dimensions for this slice are computed at runtime. ``` auto slice = 1000.iota.sliced(5, 6, 7); ```
Dec 29 2015
On Tuesday, 29 December 2015 at 13:30:47 UTC, Márcio Martins wrote:On Tuesday, 29 December 2015 at 07:45:14 UTC, Ilya Yaroshenko wrote:This package is performance oriented. In the same time it is more flexible comparing with numpy. Simple optimisation check: Source: https://gist.github.com/9il/bc7966823d96557c566c LDC disassembled: https://gist.github.com/9il/47aea1621a9fba609869 (all functions are inlined)On Monday, 28 December 2015 at 22:39:45 UTC, Ilya Yaroshenko wrote:If I am reading the code right, the number of dimensions must always be known at compile time, right? Is so, I suppose it was a performance-oriented decision and not an oversight, correct?On Monday, 28 December 2015 at 21:43:35 UTC, Robert burner Schadek wrote:Fix English: http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-bfed2500425eb407bf2c97fc72e8a0c5/web/phobos-prerelease/std_experimental_ndslice.html[...]Agreed 1. First paragraph was replaced by your variant. 2. Binary representation was moved to Slice type documentation. 3. Small "Quick Start" was added, so new user will start from `sliced` and `Slice`. http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-081dd6e9e8b3810a143d0a5fcba8d60b/web/phobos-prerelease/std_experimental_ndslice.html Thanks! Ilya
Dec 29 2015
On Monday, 28 December 2015 at 22:39:45 UTC, Ilya Yaroshenko wrote:1. First paragraph was replaced by your variant. 2. Binary representation was moved to Slice type documentation. 3. Small "Quick Start" was added, so new user will start from `sliced` and `Slice`.That is just patchwork ... The style of writing I presented should be used throughout the documentation so people know what everything is and how it works together.
Dec 29 2015
On Tuesday, 29 December 2015 at 15:42:32 UTC, Robert burner Schadek wrote:On Monday, 28 December 2015 at 22:39:45 UTC, Ilya Yaroshenko wrote:OK, lets discuss every function. Fist is `transposed`: ------- N-dimensional transpose operator. Brings selected dimensions to the first position. Parameters: Slice!(N, Range) slice input slice Dimensions indexes of dimensions to be brought to the first position Returns: n-dimensional slice of the same type See Also: swapped, everted ------------ What is wrong with this documentation?1. First paragraph was replaced by your variant. 2. Binary representation was moved to Slice type documentation. 3. Small "Quick Start" was added, so new user will start from `sliced` and `Slice`.That is just patchwork ... The style of writing I presented should be used throughout the documentation so people know what everything is and how it works together.
Dec 29 2015
On Tuesday, 29 December 2015 at 16:11:00 UTC, Ilya Yaroshenko wrote:OK, lets discuss every function.That is acceptably the problem. It is not about the documentation of the functions it is about the documentation binding the functions together and the documentation giving the idea of the library.
Dec 29 2015
On Tuesday, 29 December 2015 at 16:28:52 UTC, Robert burner Schadek wrote:On Tuesday, 29 December 2015 at 16:11:00 UTC, Ilya Yaroshenko wrote:OK, looks like I understand you. My style of exploration is set of examples. For some people it is much better. But I agree that it may be bad for others. About `iteration` module: ==================== 1. from documentation: ------ Operators only change strides and lengths of a slice. The range of a slice remains unmodified. All operators return slice of the same type as the type of the argument. ------ 2. They are very simple functions, and their combination is simple too. A user will understand how to use them. Furthermore `Binary representation` section in `Slice` docs has examples with `transposed` and `reversed`. So user can understand what exactly going on with iteration functions. About selection module: ==================== 1. from documentation: ------ Selectors create new views and iteration patterns over the same data, without copying. Subspace selectors - - - Subspace selectors serve to generalize and combine other selectors easily. For a slice of Slice!(N, Range) type slice.pack!K creates a slice of slices of Slice!(N-K, Slice!(K+1, Range)) type by packing the last K dimensions of the top dimension pack, and the type of element of slice.byElement is Slice!(K, Range). Another way to use pack is transposition of dimension packs using evertPack. Examples of use of subspace selectors are available for selectors, Slice.shape , and Slice.elementsCount . ------ 2. Selectors look simple, but their combinations can be _very_ crazy. Combination of this functions is art of imagination. I am not so talented writer to create good documentation. The problem here is that I have never discuss this module with significant amount of people. And I don't think that I will have such opportunity. So what I have done with documentation for selectors? I created cross examples: `unpack` has examples with - `pack` `evertPack` has examples with - `pack` - `unpack` `diagonal` has examples with - `dropOne` - `dropToHypercube` - `reversed` - `pack` - `evertPack` - Note about additional examples with `blocks` and `windows` `blocks` has examples with - `byElement` - `diagonal` - `pack` - `evertPack` - `unpack` `windows` has examples with - `byElement` - `diagonal` - `pack` - `evertPack` - `unpack` `byElement` has examples with - `pack` - `drop` - `std.range.retro` - `allReversed` `byElementInStandardSimplex` has examples with - `allReversed ` - `transposed` `indexSlice` has examples with - `byElement` In addition, example `Image Processing` in `package` description is a real world combination of `sliced`, `pack`, `windows`, `unpack`, `byElement`, `std.algorithm.iteration.map`, `std.array.array`, `Slice.shape`. This is a way how I can write documentation. I don't think that I can write using style you want or find someone who can do it instead of me. I am already spend a lot of time with English translator to improve docs. And every new sentence is a real pain, because I need to ask my translator to check it. IlyaOK, lets discuss every function.That is acceptably the problem. It is not about the documentation of the functions it is about the documentation binding the functions together and the documentation giving the idea of the library.
Dec 29 2015
On 12/29/2015 11:28 AM, Robert burner Schadek wrote:On Tuesday, 29 December 2015 at 16:11:00 UTC, Ilya Yaroshenko wrote:Hopefully this is something that you or someone else could help by creating pull requests. Any volunteers? -- AndreiOK, lets discuss every function.That is acceptably the problem. It is not about the documentation of the functions it is about the documentation binding the functions together and the documentation giving the idea of the library.
Dec 29 2015
On Tuesday, 29 December 2015 at 18:08:52 UTC, Andrei Alexandrescu wrote:On 12/29/2015 11:28 AM, Robert burner Schadek wrote:Collection of posts like Jack Stouffer is writing will bring an understanding of how to improve docs. Currently we can collect links of such posts for a while and store them on package description page, thought. YouTube has 7.5K videos for "numpy" query. IlyaOn Tuesday, 29 December 2015 at 16:11:00 UTC, Ilya Yaroshenko wrote:Hopefully this is something that you or someone else could help by creating pull requests. Any volunteers? -- AndreiOK, lets discuss every function.That is acceptably the problem. It is not about the documentation of the functions it is about the documentation binding the functions together and the documentation giving the idea of the library.
Dec 29 2015
On Tuesday, 29 December 2015 at 18:08:52 UTC, Andrei Alexandrescu wrote:On 12/29/2015 11:28 AM, Robert burner Schadek wrote:Does it means that the PR can be merged? --IlyaOn Tuesday, 29 December 2015 at 16:11:00 UTC, Ilya Yaroshenko wrote:Hopefully this is something that you or someone else could help by creating pull requests. Any volunteers? -- AndreiOK, lets discuss every function.That is acceptably the problem. It is not about the documentation of the functions it is about the documentation binding the functions together and the documentation giving the idea of the library.
Dec 30 2015
On Wednesday, 30 December 2015 at 21:39:54 UTC, Ilya Yaroshenko wrote:On Tuesday, 29 December 2015 at 18:08:52 UTC, Andrei Alexandrescu wrote:If there's a time constraint, perhaps we could merge it for 2.070 but keep adding documentation updates to both master and release branches?On 12/29/2015 11:28 AM, Robert burner Schadek wrote:Does it means that the PR can be merged? --IlyaOn Tuesday, 29 December 2015 at 16:11:00 UTC, Ilya Yaroshenko wrote:Hopefully this is something that you or someone else could help by creating pull requests. Any volunteers? -- AndreiOK, lets discuss every function.That is acceptably the problem. It is not about the documentation of the functions it is about the documentation binding the functions together and the documentation giving the idea of the library.
Dec 30 2015
On Wednesday, 30 December 2015 at 22:46:28 UTC, John Colvin wrote:On Wednesday, 30 December 2015 at 21:39:54 UTC, Ilya Yaroshenko wrote:2.070 would be merged into stable soon.On Tuesday, 29 December 2015 at 18:08:52 UTC, Andrei Alexandrescu wrote:If there's a time constraint, perhaps we could merge it for 2.070 but keep adding documentation updates to both master and release branches?On 12/29/2015 11:28 AM, Robert burner Schadek wrote:Does it means that the PR can be merged? --Ilya[...]Hopefully this is something that you or someone else could help by creating pull requests. Any volunteers? -- Andrei
Dec 30 2015
On Monday, 28 December 2015 at 15:52:09 UTC, Robert burner Schadek wrote: fixYes: 11 Yes: Conditional: 1 <<-- fix here No: 0Please do not merge this with the current state of documentation.
Dec 28 2015