Parallel Rogue-like benchmark

Dmitry Olshansky dmitry.olsh at gmail.com
Thu Nov 7 07:04:22 PST 2013


07-Nov-2013 18:27, Daniel Davidson пишет:
> On Thursday, 7 November 2013 at 13:12:56 UTC, bearophile wrote:
>> Marco Leise:
>>
>>> I made it idiomatic, D is on place 1 now by a big margin. See the
>>> 'ldc2' entry:
>>> http://togototo.wordpress.com/2013/08/23/benchmarks-round-two-parallel-go-rust-d-scala-and-nimrod/
>>>
>>
>> Very nice. I have made a more idiomatic version (in D global constants
>> don't need to be IN_UPPERCASE), I have added few missing immutable
>> annotations, and given the benchmark also counts line numbers, I have
>> made the code a little more compact (particularly the struct
>> definitions, but I have moves the then branch of some if on a new
>> line, increasing the line count to make the code a little more
>> readable, so it's not a unnaturally compact D code):
>>
>> http://dpaste.dzfl.pl/d37ba995
>>
>> Bye,
>> bearophile
>
>
> Regarding what is idiomatic D, isn't `immutable x = rnd.next %
> levelSize;` pedantic.
> Why not just go with `const x = rnd.next % levelSize;`

IMHO yes, it's pedantic.

> Any time the type is a fundamental type with no aliasing there is no
> sharing so the differentiation of immutable vs const is unnecessary.
> Might as well go with const. immutable says I or no-one else will change
> the value. But since no-one else can change the value it seems overkill,
> no?

immutable is useful for non-value types. Say strings, then wherever 
function/module it's passed later on can safely avoid copying it since 
it's immutable.


-- 
Dmitry Olshansky


More information about the Digitalmars-d mailing list