Граф коммитов

286 Коммитов

Автор SHA1 Сообщение Дата
Jean Philippe 11150ca667
Use _Next_iter(it) and _Prev_iter(it) instead of it + 1 and it - 1 (#803) 2020-05-07 17:09:08 -07:00
Casey Carter 07627b63ea
C++20 move_iterator changes and move_sentinel (#787)
* C++20 move_iterator changes and move_sentinel

Changes primarily come from P0896R4 "<ranges>", but the `operator<=>` from P1614R2 "Adding Spaceship <=> To The Library" is here as well.

I've also speculatively implemented the proposed resolutions of LWG-3293, LWG-3391, and LWG-3435.

I had to [patch a pair of libc++ tests](https://reviews.llvm.org/D79343) that fail with these changes; the LLVM reference is updated here to pull in those tests.

Drive-by:
* s/explicit constexpr/constexpr explicit/g (I somehow managed to sneak two occurrences into `subrange`)

* Skip flaky libc++ test (detached threads)
2020-05-07 16:02:40 -07:00
Billy O'Neal 88f8f443bb
Apply cleanups suggested when bringing this ADO VMSS support to vcpkg (#790) 2020-05-06 19:50:22 -07:00
Alex Guteniev 5c520e4f2d
Update README.md Build example (#783)
Fixes #779.
2020-05-06 18:54:14 -07:00
Jean Philippe bb9e6d48ab
Use *_Prev_iter(it) instead of *(it - 1) (#771)
Fixes #465.
2020-05-06 18:18:25 -07:00
Stephan T. Lavavej 5e3f23d3aa
Fix filesystem's handling of nonexistent network paths emitting ERROR_INVALID_NAME (#800)
* Map ERROR_INVALID_NAME to errc::no_such_file_or_directory.

* Update test to accept ERROR_INVALID_NAME.
2020-05-06 18:11:13 -07:00
Stephan T. Lavavej 93fedcde01
Skip /clr tests (#796)
Fixes #788.
2020-05-06 18:07:59 -07:00
Casey Carter 1c918ecfcc
C6294 is suppressed STL-wide; remove local suppressions (#794) 2020-05-06 18:03:54 -07:00
Curtis J Bezault 6eaf25d960
Make several improvements to the way the CI runs the tests. (#769) 2020-05-06 17:50:40 -07:00
Stephan T. Lavavej 65d98ffaba
Fix complex's Sufficient Additional Overloads (#791)
* Fixes GH-785, which reported that `arg(real)` was implemented as `return 0;`
but `arg(complex)` does actual work for complex numbers with
zero imaginary parts.

* `norm` should upgrade to `double` before squaring. The difference
is observable because `double`'s range is vast.

* `conj` and `proj` should return `complex`.

* `conj(real)` should behave exactly like `conj(complex)`, returning
an imaginary part of negative zero. The difference is technically
observable.

* `proj(real)` should behave exactly like `proj(complex)`, mapping
negative infinity to positive infinity.

* Test that float/double/long double aren't "upgraded".

* Tests pass for Clang, emit warnings for MSVC.
2020-05-05 13:36:07 -07:00
Koki Nishihara 430b569d0a
Update _MSVC_STL_UPDATE in yvals_core.h (#793) 2020-05-05 12:39:46 -07:00
Casey Carter c6c430be08
Implement LWG-3420 (#786) 2020-05-05 12:34:56 -07:00
Casey Carter 8742c8959d
Change most libc++ SKIPs to FAILs (#776)
* Change most libc++ SKIPs to FAILs

... to more closely reflect expectations. This ensures that we'll find out immediately when a bug that was causing a test to fail is fixed, or when a bad test is fixed.

Other changes:
* We implement `bit_cast`; unskip the test.
* The P0556R3 tests fail not because we haven't implemented it, but because we've also implemented P1956R1 which libc++ has not.
* `aligned_storage.pass.cpp` is failing because (1) our implementation is bogus per (#784), and (2) the test is bogus - not because of VSO-120957.
* We do have `tgmath.h` now; the tgmath test now fails only with Clang because Clang provides its own broken `tgmath.h`.
* Update LLVM from upstream
* libc++ implemented P1115R3, unskip all the related tests that have now been fixed.
* `utilities\utility\pairs\pairs.pair\assign_pair.pass.cpp` passes now that I've fixed a narrowing warning upstream.
* Skip `re\re.const\re.matchflag\match_prev_avail.pass.cpp` which is now failing for unanalyzed reasons after an upstream change.
2020-05-05 12:33:39 -07:00
Stephan T. Lavavej 2f4c5792b2
Fix CUDA warnings/errors, _Noinit shadowing, other cleanups (#772) 2020-05-01 14:53:40 -07:00
Casey Carter f0f0b55d57
Silence clang warning in <variant> (#768)
Clang complains about an "unnecessary" lambda capture despite that the capture is used in a discarded statement (LLVM-45398).
2020-04-30 12:12:55 -07:00
Sumit Bhardwaj d7f855891b
Remove _For_each_tuple_element in scoped_lock (#760)
Fixes #738.
2020-04-30 03:51:20 -07:00
Casey Carter 045f3dd0e1
C++20 reverse_iterator changes (#759)
Co-authored-by: Stephan T. Lavavej <stl@microsoft.com>
2020-04-30 03:15:16 -07:00
Casey Carter d346a6a4be
__cpp_consteval indicates support for consteval (#765) 2020-04-30 03:06:00 -07:00
Alex Guteniev a5a9e49fc6
Optimize `atomic_thread_fence` (#740)
Fixes #739.
2020-04-30 03:00:25 -07:00
Stephan T. Lavavej 2c441c7e03
Improve build instructions and cleanup code (#764)
Fixes #518.
2020-04-30 02:49:14 -07:00
Curtis J Bezault 84221fbe95
Clang warnings cleanup (#755)
Fix Clang warnings in STL headers (when they aren't being suppressed for "system headers").

Change the test infrastructure to no longer treat STL headers as "system headers", so we'll remain clean with respect to Clang warnings in the future.

Fix Microsoft-internal VSO-609129 "`<cvt/sjis_0208>` appears to have impossible condition" which was also emitting a Clang warning.
2020-04-30 02:37:48 -07:00
Stephan T. Lavavej e783504204
N4861 is the post-Prague Working Paper. (#746)
Drop "C++2a" explanation; the Standard will definitely be C++20.
2020-04-30 02:31:38 -07:00
Josh Soref 79dd533569
Fix spelling (#743) 2020-04-30 02:27:56 -07:00
Stephan T. Lavavej e4bc00e70c
Remove and update compiler bug workarounds (#742) 2020-04-30 02:23:37 -07:00
Daniil Goncharov 2bc5f9bc71
P0415R1 constexpr For <complex> (Again) (#367)
Fixes #16 and fixes #190.

Co-authored-by: Curtis.Bezault <curtbezault@gmail.com>
Co-authored-by: Stephan T. Lavavej <stl@microsoft.com>
2020-04-30 02:13:55 -07:00
Jonathan Caves 852a308590
Remove compiler specific feature test macro tests (#752)
Compilers should test their own feature-test macros so the STL need not do so.
2020-04-27 07:43:21 -07:00
Casey Carter 343e625427
Implement ranges::subrange and ranges::view_interface (#734)
* Implement ranges::subrange and ranges::view_interface

Product changes:
`<utility>`: declare `tuple`'s overloads of `std::get` so they are visible to the definition of `subrange`'s `_Pair_like` concept in `<xutility>`.
`<xutility>`: Implementations of `subrange`, `view_interface`, and `borrowed_subrange_t`.

Test changes:
`std/include/range_algorithm_support.hpp`: Remove `iter_move` overload landmine for non-`indirectly_readable` `test_iterator`s that hampers detection.
`std/tests/P0896R4_ranges_algorithm_machinery`: Enable `borrowed_subrange_t` smoke test.
`std/tests/P0896R4_ranges_range_machinery`: Validate that `subrange` is a `borrowed_range`.
`std/tests/P0896R4_ranges_subrange`: New test to cover `subrange` and `view_interface`.
2020-04-24 18:59:20 -07:00
Stephan T. Lavavej b64eeed4ef
Silence Clang -Wc++20-extensions. (#737) 2020-04-24 18:45:04 -07:00
Michael Schellenberger Costa ca032aebb0
Remove _ITERATOR_DEBUG_ARRAY_OVERLOADS (#735)
Fixes #660.

Also move `_Array_(const_)?iterator` from `<xutility>` to `<array>`, since it's no longer needed by the IDAO.
2020-04-24 18:44:01 -07:00
Charlie Barto 0cbd1b2470
Remove EDG-related workaround for bit_cast (#733)
This was Microsoft-internal VSO-1041044.
2020-04-22 01:53:51 -07:00
Stefan Stipanovic b1c18611b9
<atomic>: Remove _ENABLE_ATOMIC_ALIGNMENT_FIX (#723)
Fixes #717.
2020-04-22 01:42:24 -07:00
Abhishek Bhattacharya b76647085e
Refactored some `for` loops to the normal pattern. (#709)
Fixes #678.
2020-04-22 01:38:41 -07:00
Alex Guteniev 97f9a2ce25
<functional>: std::function doesn't handle over-aligned types (#698)
Fixes #690.
2020-04-22 01:34:49 -07:00
Michael Schellenberger Costa 72c724007c
P1831R1 Deprecating volatile In The Standard Library (#634)
Fixes #558.
2020-04-22 01:30:11 -07:00
Casey Carter 53137aa4c0
Suppress C5219 in the STL (#730)
C1XX now emits C5219 `implicit conversion from '%s' to '%s', possible loss of data` to warn about potentially lossy implicit conversions, e.g., from integer types to floating-point types. These changes avoid emission of the new warning from the internals and tests of the STL.
2020-04-21 09:23:09 -07:00
Stephan T. Lavavej 51446475c1
Fix boyer_moore_searcher with the Rytter correction (#724)
Fixes #713.
2020-04-20 14:37:13 -07:00
Curtis J Bezault 31419650d4
Point TMP to the D drive (#712) 2020-04-14 11:02:36 -07:00
Curtis J Bezault 28024b4a86
Remove dependency on LLVM-Lit and fixup libcxx's lit.site.cfg to deal with upstream changes. (#710) 2020-04-14 08:10:37 -07:00
Curtis J Bezault 2f69a318b7
Use the temp disk (#701) 2020-04-14 08:10:23 -07:00
Casey Carter ae34ee631f
Require MSVC 19.26 and Clang 10 in the STL (#708)
* `<yvals_core.h>` changes:
  * Clang 10 `_HAS_CONDITIONAL_EXPLICIT` in C++14 mode (Only CUDA now requires the `_HAS_CONDITIONAL_EXPLICIT == 0` code paths)
  * reject Clang < 10
  * reject MSVC < 1926

* Unskip libc++ tests that need Concepts and/or `<=>`

* `std/tests/P0595R2_is_constant_evaluated`: We no longer need  suppress the warning Clang 9 emits when it sees the suppression for the warning Clang 10 emits in this test ;)

* `std/tests/VSO_0157762_feature_test_macros`: Remove Clang 9 support

* `std/tests/concepts_matrix.lst`: This is now simply a copy of `usual_latest_matrix.lst` with the `/BE` lines (EDG configs) commented out. (i.e., we now run the Concepts tests with Clang as well as MSVC.)

* Remove workarounds for LLVM-38491 "clang-cl should accept __declspec(allocator)": Replace uses of `_DECLSPEC_ALLOCATOR` with `__declspec(allocator)`, and suppress Clang's warning when the return type isn't a pointer or reference.

* Remove workarounds for LLVM-43531 "clang-format damages 'alternative representations' for operators": Re-enable clang-format in the test which triggered the bug.

* Remove workarounds for LLVM-38478 "clang -fno-ms-compatibility rejects Windows.h": Add -fno-ms-compatibility to the XXX_winsdk_XXX.lst files. (Yes, we still need these because the Windows SDK breaks `/Za`.)

* Drive-by: unskip libc++ new.version now that we implement destroying delete
2020-04-13 13:09:34 -07:00
Stephan T. Lavavej a0fffa1076
Add a Question issue template (#687) 2020-04-10 19:10:32 -07:00
Michael Schellenberger Costa bda4230d58
<numeric> Optimize gcd to use builtins (#665)
* [numerics] Optimize gcd to use builtins

* Fix template argument deduction for _countl_zero

* Use the same casts as the other bit operations

* Update stl/inc/numeric

Fix tpyo

* Remove whitespace

Co-Authored-By: Stephan T. Lavavej <stl@nuwen.net>

* _BitScanForward is countr_zero(x), not countl_zero(~x)

Co-authored-by: Casey Carter <cartec69@gmail.com>
Co-authored-by: Stephan T. Lavavej <stl@nuwen.net>
Co-authored-by: Casey Carter <Casey@Carter.net>
2020-04-10 19:09:41 -07:00
Alex Guteniev 764f7cbd6f
<chrono>: Explain steady_clock::now frequency scaling (#658) 2020-04-10 19:08:31 -07:00
Casey Carter d0d059716e
Update FixNamespaceComments to true in various clang-format files (#681)
Now that LLVM-39247 has been fixed in Clang 10, we can enable this setting again. This PR does so in several Libs clang-format files which had a LLVM-39247 comment.

I've changed the end comments on unnamed namespaces from `// namespace`, which clang-format adds automatically, to `// unnamed namespace` which more clearly indicates that someone didn't simply forget to finish typing the comment.
2020-04-10 16:21:06 -07:00
Casey Carter 2a1a375b88
More Clang 10 support (#657)
* Minor test matrix cleanup:
  * Factor "/EHsc /std:c++latest" out of each config in `usual_latest_matrix.lst` and `usual_latest_winsdk_matrix.lst`
  * Remove unused `native_latest_matrix.lst`

* Avoid LLVM-45213 in `range_algorithm_support.hpp` and `std/tests/P0896R4_ranges_alg_all_of`

* <concepts> remove workaround for LLVM-44689 which is fixed in Clang 10
2020-04-10 15:58:11 -07:00
Stephan T. Lavavej 7a2ae687bc
validate.cpp: Validate paths for length and spaces (#699) 2020-04-09 22:54:59 -07:00
Adam Bucior 433b8a16b6
Implement P0718R2 atomic<shared_ptr<T>>, atomic<weak_ptr<T>> (#601) 2020-04-09 19:56:00 -07:00
Casey Carter 0055b5bf80
<yvals_core.h>: Fix <bit> feature-test macros (#695)
* Don't define `__cpp_lib_bitops` when `__EDG__`, so IntelliSense is consistent with MSVC
* Don't define `__cpp_lib_int_pow2` when `__cpp_lib_bitops` isn't defined since the facilities that correspond with `__cpp_lib_int_pow2` are only provided when `__cpp_lib_bitops` is defined.
* Update feature-test macro test accordingly

(See discussion starting at https://github.com/microsoft/STL/issues/313#issuecomment-585127653.)
2020-04-09 19:27:35 -07:00
Curtis J Bezault 2597e24586
Run format validation as its own stage and enable /BE (#682) 2020-04-09 18:46:00 -07:00
Adam Bucior a099e85ce3
P0674R1 make_shared() For Arrays (#309)
Fixes #33.

Co-authored-by: Gianni Weinand <t-giwein@microsoft.com>
Co-authored-by: Stephan T. Lavavej <stl@microsoft.com>
2020-04-08 12:23:05 -07:00