Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature/format: Merge VS 2019 16.8 Preview 1 toolset update #1177

Merged
merged 50 commits into from
Aug 10, 2020

Conversation

StephanTLavavej
Copy link
Member

Merge #1153 into feature/format so we can delete the old VMSS pool.

⚠️ Note to self: Commit this as a merge, not a squash!

miscco and others added 30 commits July 16, 2020 21:54
Co-authored-by: Stephan T. Lavavej <[email protected]>
* Implement ranges::copy_backward

Co-authored-by: Stephan T. Lavavej <[email protected]>
Co-authored-by: Ahana Mukhopadhyay <[email protected]>
* Break <compare> ABI again, and fix #1050.

* Remove obsolete conditional compilation from <compare>.

Co-authored-by: statementreply <[email protected]>
Co-authored-by: Stephan T. Lavavej <[email protected]>
…sion 16.8. (#1016)

Co-authored-by: Casey Carter <[email protected]>
Co-authored-by: Stephan T. Lavavej <[email protected]>
Co-authored-by: Stephan T. Lavavej <[email protected]>
Co-authored-by: Billy Robert O'Neal III <[email protected]>
Co-authored-by: Casey Carter <[email protected]>
Co-authored-by: Billy Robert O'Neal III <[email protected]>
Co-authored-by: Stephan T. Lavavej <[email protected]>
Mathematically, `_Par0._Pcdf.back()` should be one. However, when it is
actually slightly smaller than one due to rounding error, there is a
small probability that `_Px > _Par0._Pcdf.back()` and the original code
returns the invalid value of `_Par0._Pcdf.size()`.
Co-authored-by: Stephan T. Lavavej <[email protected]>
Co-authored-by: Casey Carter <[email protected]>
Co-authored-by: Casey Carter <[email protected]>
Co-authored-by: Stephan T. Lavavej <[email protected]>
* Remove unnecessary comments in ranges tests.

We taught clang-format how to sort like this automatically.

* Fix x86 compiler error in stljobs.h.

This never compiled for x86 where size_t and SIZE_T are different types.

* Update .clang-format for Clang 10.

AllowShortBlocksOnASingleLine changed from false/true to
Never/Empty/Always. We still want the default of Never, as Empty
appears to misbehave.

DeriveLineEnding was added, defaulting to true. We want to disable line
ending auto-detection.

SortPriority was added. Its documentation is difficult to understand,
but it can be used to group includes together while modifying their
otherwise-lexicographic ordering. Here, I'm using it to group WinSDK
includes together, while still sorting WinIoCtl.h last.

IncludeIsMainSourceRegex was added. This doesn't appear to be relevant
to us.

IndentGotoLabels was added. We've avoided goto.

SpaceInEmptyBlock was added. We prefer the default of no space.

SpacesInConditionalStatement was added. We definitely prefer the
default of no space.

SpaceBeforeSquareBrackets was added. Again, we definitely prefer the
default of no space.

The Standard option was overhauled. Previously, Cpp11 meant "use the
latest supported standard". That was confusing, so it has been
deprecated in favor of Latest.

UseCRLF was added. We currently use CRLF for all files. (Previously,
validate.cpp would detect LF files, but clang-format wouldn't fix
them.)

* In .clang-format, delete empty lines and move comment.

The empty lines were intended to make it easier to see customized
options, but they were actually making it harder to diff the default
config against our config.

Move the StatementMacros comment next to our customized settings,
and rewrap it.

* Reformat filesystem.cpp.
Includes the `mergeable` concept and algorithms `ranges::includes`, `ranges::set_union`, `ranges::set_intersection`, `ranges::set_difference`, and `ranges::set_symmetric_difference`.
* Implement ranges::move_backward

Co-authored-by: Stephan T. Lavavej <[email protected]>
Co-authored-by: mnatsuhara <[email protected]>
`_Pass_fn` returns a copy of arguments no larger than `void*`, and a call-forwarding reference-wrapper-alike `_Ref_fn` for larger function objects. This became a problem when Ranges started throwing pointers-to-member at `_Pass_fn` with the expectation that they would eventually be `invoke`d: pointers-to-member can be larger than `void*`, but `_Ref_fn` doesn't speak the `invoke` protocol.

There are two relatively obvious possible fixes:
1. Teach `_Pass_fn` to always return copies of pointers-to-member regardless of size
2. Teach `_Ref_fn` to obey the `invoke` protocol

(1) results in "large" pointers-to-member that can't be enregistered being copied and passed by hidden reference resulting in larger codesize than (2), but with no corresponding performance benefits. We therefore implement (2) by teaching `_Ref_fn` to call-forward through `invoke` when it wraps a pointer-to-member.

Fixes GH-1089.
…y, and indirect_array (#988)

Co-authored-by: S. B. Tam <[email protected]>
Co-authored-by: Casey Carter <[email protected]>
Co-authored-by: Stephan T. Lavavej <[email protected]>
* Removes workaround for missing `bit_cast` and mark `lerp` constexpr.

* Changes how `lerp` handles infinite inputs according to
  #65 (comment) and
  #65 (comment).

* Adds constexpr tests.

Co-authored-by: Stephan T. Lavavej <[email protected]>
...by transposing arguments to `_Iter_exchange_move`.

Fixes #1067
... for enregistration, to improve performance. Per a suggestion from Statementreply in the discussion at #1049 (comment).
Fixes #198.

Co-authored-by: Casey Carter <[email protected]>
Co-authored-by: Stephan T. Lavavej <[email protected]>
Co-authored-by: Billy Robert O'Neal III <[email protected]>
Co-authored-by: Stephan T. Lavavej <[email protected]>
Co-authored-by: Casey Carter <[email protected]>
Co-authored-by: Stephan T. Lavavej <[email protected]>
StephanTLavavej and others added 20 commits August 1, 2020 16:36
Co-authored-by: Curtis J Bezault <[email protected]>
Co-authored-by: Stephan T. Lavavej <[email protected]>
Co-authored-by: Billy Robert O'Neal III <[email protected]>
Co-authored-by: Casey Carter <[email protected]>
Disable some tests due to impact of P0960R3: allow initializing aggregates from a parenthesized list of values
Co-authored-by: Stephan T. Lavavej <[email protected]>
Co-authored-by: Casey Carter <[email protected]>
Fixes #1134.

Co-authored-by: Casey Carter <[email protected]>
Co-authored-by: Billy O'Neal <[email protected]>
@StephanTLavavej StephanTLavavej added the infrastructure Related to repository automation label Aug 10, 2020
@StephanTLavavej StephanTLavavej requested a review from a team as a code owner August 10, 2020 00:00
@StephanTLavavej StephanTLavavej merged commit 7f4bbce into feature/format Aug 10, 2020
@StephanTLavavej StephanTLavavej added the uncharted Excluded from the Status Chart label Aug 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
infrastructure Related to repository automation uncharted Excluded from the Status Chart
Projects
None yet
Development

Successfully merging this pull request may close these issues.