July 17
It's great that the community steps up to ensure we get good benchmark results!

Lots of times benchmarks are done informally and internally by companies, and we never know about them and never have a chance.
July 17
On 7/17/2024 10:52 AM, Jonathan M Davis wrote:
> Maybe if it included -O,

It used to, along with -inline, but as I mentioned earlier at some point that was removed. It should be put back.

July 18
On Saturday, 13 July 2024 at 05:35:53 UTC, Walter Bright wrote:
> Why -release is the way it is:
>
> I got sick of journalists running benchmarks using compilers they weren't familiar with. They never spent any effort learning what the switches were.
>
> The big vendors would wine and dine them and show them exactly how to run their compilers. With mine, they never talked to me. I wouldn't even know they did a review until it hit the news stand.
>
> They'd use the wrong switches, the code would run slow, and I'd get a bad review.
>
> The -release switch means "make the fastest code". Make it easy for the journalists to do the right thing.
>
> Nobody new to D will know to use -O -boundscheck-safeonly -inline. They'll just get a "D is slow" result and move on.

I'm not sure what are you talking about honestly.
First of all 'D benchmarker' here. So which impressions/observations I have based on my experience:
1) No journalists are interested in D... at all.
And 'D is slow' usually not because of the compiler or flags, but because Phobos/runtime/library implementation.
2) People sometimes adding D to their benchmarks, but most usually it is somebody from the community.
3) Community pretty aware of 'not using dmd in any benchmarks', but the problem not in this.
4) As many people already said the problem is in 'misleading' name. Because benchmarkers also sometime want to use 'the flags that will be used in production'. And many other languages have 'release' flags exactly for these purposes:

Zig: "Standard optimization options allow the person running zig build to select between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. By default none of the release options are considered the preferable choice by the build script, and the user must make a decision in order to create a release build."

Rust: "
$ cargo build
    Finished dev [unoptimized + debuginfo] target(s) in 0.0s
$ cargo build --release
    Finished release [optimized] target(s) in 0.0s
The dev and release are these different profiles used by the compiler."

So Dub is doing fine with 'release' build option (having 'release-nobounds' in case it is what developer wants) and also it is possible to configure the release build flags.

July 18

On Sunday, 14 July 2024 at 20:44:18 UTC, Steven Schveighoffer wrote:

>

On Saturday, 13 July 2024 at 15:28:36 UTC, Vladimir Panteleev The biggest problem I have, I guess, is that it's called "release". It fools people into thinking you should use it for released code.

-Steve

But it seems it is not fooling, but it is exactly what dmd devs expects from release..
So I think this is what should be alligned

July 18

On Thursday, 18 July 2024 at 06:32:20 UTC, Sergey wrote:

>

So Dub is doing fine with 'release' build option (having 'release-nobounds' in case it is what developer wants) and also it is possible to configure the release build flags.

No, dub uses -release. You have to override the release options to keep assert/bounds checks. As we did in the related posts benchmark: https://github.com/jinyus/related_post_gen/blob/7e189c8892e26e3b78e83112ef8910655e87b193/d_v2/dub.json#L11

To reiterate, -release disables bounds checks in everything but @safe code. The 'release-nobounds' build type also disables bounds checks in @safe code.

-Steve

July 18
On Monday, 15 July 2024 at 18:14:39 UTC, Walter Bright wrote:
> On 7/14/2024 1:44 PM, Steven Schveighoffer wrote:
>> The biggest problem I have, I guess, is that it's called "release". It fools people into thinking you should use it for released code.
>
> It's an issue I've run into repeatedly. Reviewers not familiar with a compiler look for a "release" switch for benchmarking.

So…
How about calling it -benchmark?
1 2 3 4 5
Next ›   Last »