Voting For std.experimental.ndslice

Ilya Yaroshenko via Digitalmars-d digitalmars-d at puremagic.com
Wed Dec 16 09:49:03 PST 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 friend

Agreed 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


More information about the Digitalmars-d mailing list