Skip to content

Conversation

@gottesmm
Copy link
Contributor

This is a WIP to update the README to the current state of the repository.

@gottesmm gottesmm force-pushed the benchmark-readme-fixup branch 3 times, most recently from 2b88ee0 to 5857266 Compare June 11, 2018 19:33
@gottesmm gottesmm requested a review from natecook1000 June 11, 2018 19:36
@gottesmm
Copy link
Contributor Author

@natecook1000 Can I get your opinion on this... have I made it clearer?

@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

@Jceciliani
Copy link
Contributor

I cannot edit this file due to permissions. When trying to push to Github Desktop, there is a JS error not allowing it, any suggestions? Based on what I know, the content looks good, I just want to make some texts fixes here and there before a merge.

@gottesmm
Copy link
Contributor Author

@Jceciliani I would just comment on the PR itself using github's review UI.

Copy link
Contributor

@Jceciliani Jceciliani left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are a few of the text changes I would recommend for this file.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recommended change to "of regression, micro, small, and medium sized benchmarks that are used"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"There are 3 ways to build the benchmark suite:"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"NOTE: There are various levels of support here. Specifically:"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Non-macOS Darwin platforms today do not support the swiftpm build."

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"This is not due to intention, but rather, more engineering time would be necessary to produce these builds."

I am not entirely sure what is trying to be said here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"productization" maybe is something that we need to add to the lexicon. Basically the idea is that there are certain things that are "possible" to do with this software today that may either be fragile, unsupported, or not tested. Productization is changing the software so that it is easily usable by others.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"to be built" or "to build"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"SwiftBench will be a listed built product in Xcode. To find the path of"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"in the" at the end

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sample, the test runs are significantly longer than system jitter. Due to this, we can"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"This is done by the low level benchmark driver. It will measure the time taken for"

@gottesmm
Copy link
Contributor Author

Thanks! Let me take a look at this.

Copy link
Contributor

@palimondo palimondo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I got these suggested changes. (I hope I’m using this review interface right…)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why leave out this option from description?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is on purpose. Iterations is an expert level feature. It confuses people as a concept and should only be progressively disclosed if necessary. This README is the right place to do that.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’m confused, did you mean “This README isn’t the right place…”?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct.

Copy link
Contributor

@palimondo palimondo Jun 11, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don’t know what exactly is meant by “system jitter” here, but this description doesn’t match my experience with Swift Benchmark Suite. This whole business with measuring average time over N iterations is the root cause of unstable results. Maybe leave out the detailed reasons for the existence of this for now as it’s subject to change?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is the intention behind why we do this, so it is appropriate. If/when we make any of the proposed changes, we can change this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Xcode should be spelled with capital X, there are several instances of this typo.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’d write all script and command names with backticks (build-script, cmake, swiftpm) consistently in the whole document. There are multiple places where this should be fixed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

swiftpm isn't a command. But I am fine with changing the rest.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does one control the optimization level when building with swiftpm? Maybe an example here would help?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thats reasonable.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non-unstable? As in stable? Or maybe “Run all benchmarks (except those tagged .unstable) for 3 samples…”

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am also fine with this.

@gottesmm gottesmm force-pushed the benchmark-readme-fixup branch 7 times, most recently from 93041e1 to 148dc28 Compare June 14, 2018 18:34
@gottesmm
Copy link
Contributor Author

Pavol, I am not going to add the rest of that stuff. If you think it is important create a PR and it can be talked about there. I only have a limited amount of time to spend on this.

@gottesmm
Copy link
Contributor Author

*and I need to move on. I am just waiting on some feedback from @natecook1000. But I don't want to add more content to this PR.

…ces.

I added sections on running/building/removed cruft/using swiftpm to build the
benchmarks standalone.
@gottesmm gottesmm force-pushed the benchmark-readme-fixup branch from 148dc28 to 8f93f73 Compare June 14, 2018 22:59
This directory contains the Swift Benchmark Suite. This is meant to be a suite
of regression, micro, small, and medium sized benchmarks that are used to
validate the performance of the Swift compiler and standard library.
validate the performance of the Swift compiler and standard library. There aretwo main steps to using
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: "aretwo" is missing a space

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks.

$ cmake -G Ninja \
-DSWIFT_EXEC=$SWIFT_BUILD_DIR/bin/swiftc \
-DSWIFT_LIBRARY_PATH=$SWIFT_BUILD_DIR/lib/macosx \
-DCLANG_EXEC=$LLVM_BUILD_DIR/bin/clang \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one didn't work for me. I've set the both variables to point to the corresponding build directory, but the LLVM_BUILD_DIR isn't being picked up correctly:

CMake Error at cmake/modules/SwiftBenchmarkUtils.cmake:61 (message):
  Unable to find Clang driver
Call Stack (most recent call first):
  cmake/modules/AddSwiftBenchmarkSuite.cmake:27 (runcmd)
  CMakeLists.txt:254 (configure_build)

which seem's to try to infer the CLANG_EXEC again from SWIFT_DARWIN_XCRUN_TOOLCHAIN. I think there's bug in AddSwiftBenchmarkSuite.cmake. Line 24 should IMO include if(NOT CLANG_EXEC) check similar the the if(NOT SWIFT_EXEC) on line 14.

@gottesmm
Copy link
Contributor Author

I need to finish some stuff up today, but I am going to try and swing back around to this later today.

@gottesmm
Copy link
Contributor Author

@palimondo realistically I am not going to have time to do this. If you want to do something like this go ahead. = ).

@gottesmm gottesmm closed this Mar 12, 2019
@gottesmm gottesmm deleted the benchmark-readme-fixup branch March 12, 2019 09:20
@palimondo
Copy link
Contributor

palimondo commented Mar 12, 2019

@gottesmm Can you restore this branch and let me make a fork of it first, please?

@gottesmm gottesmm restored the benchmark-readme-fixup branch March 12, 2019 09:50
@palimondo
Copy link
Contributor

@gottesmm Nevermind. I have grabbed the raw of the modified README.md. I’m good. I’ll have a look at updating and simplifying it based on this excellent rewite of yours, eventually. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants