Is it possible to request a code review?

IM 3di at gm.com
Fri Dec 15 08:11:50 UTC 2017


On Thursday, 14 December 2017 at 12:51:07 UTC, rjframe wrote:
> On Wed, 13 Dec 2017 03:15:11 +0000, IM wrote:
>
>> [...]
>
> I like this API design.
>
>
> I would separate each unit test to its own `unittest` block 
> (you have three tests in a single block in 
> `SingleThreadTaskRunner.d`); it doesn't really matter with the 
> integrated runner, but if you later use a runner like 
> unit-threaded[1] or tested[2] each unit test block becomes its 
> own independent test, and they will all be run, even if one or 
> more fails.
>

Interesting. I haven't decided which tester runner to use yet, 
because the built in one is minimal and is getting me going. But 
thanks for the pointers. `tested` seems interesting because it's 
minimal and I like minimal things, however it seems it hasn't 
been touched for 2 years.

>
> If `TaskQueue.Pop` returned the Task rather than used an out 
> parameter,
> this (in SingleThreadTaskRunner.RunnerLoop):
> ```
> while (true) {
>       Task front;
>       mQueue.Pop(front);
>       if (!front)
>         return;
>
>       front();
>     }
> ```
> could become:
> ```
> while (true) {
>     auto front = mQueue.Pop();
>     front ? front() : return;
> }
>
> ```
> Though that's probably debatable as to which is more readable. 
> I would
> avoid `out` parameters on void functions; I would at least 
> return a `bool`
> and test that instead (which is what `TryPop` does):
> ```
> while (true) {
>     Task front;
>     if (!mQueue.Pop(front)) {
>         return;
>     }
>     front();
> ```
>
> I would probably switch the if block to the affirmative case, 
> but that's personal preference.
>

I like that. I wouldn't switch it to affirmative because I like 
the early return and not having to add an `else`.

> `Pop` could call `TryPop` to eliminate code duplication. The 
> same is true for other Try functions.
>
>
> I'll ignore the style since others have discussed it and it's 
> not what you're looking for, but this does look like C#. Style 
> actually is somewhat- important; if I use your library in a 
> project, it would be nice if API calls look like they belong in 
> my code. That's why everybody recommends at least following the 
> Phobos naming guidelines for published libraries.
>

That's a fair point, and I agree. I will consider switching to 
the Phobos
guidelines at some point.

> I only skimmed other reviews, so this may have been mentioned; 
> in `TaskQueue.d`, a private function is misspelled: 
> "AppednTaskThreadUnsafe" -> "AppendTaskThreadUnsafe".
>

Oops, thanks!

> --Ryan
>
>
> [1]: http://code.dlang.org/packages/unit-threaded
> [2]: http://code.dlang.org/packages/tested



More information about the Digitalmars-d mailing list