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

536 Коммитов

Автор SHA1 Сообщение Дата
Jon Wiswall 912aa47ff4
Update GitHub action LLVM version to 17.0.5 (#1373)
* Maybe update tools version

* LLVM & Clang v17.0.5 now support source_location properly
2023-11-25 21:48:38 -08:00
Raymond Chen bf4459b25a
Allow resume_agile to be stored in a variable (#1358)
`resume_agile` exposes the ability to save the `await_adapter`
in a variable. This was not possible without `resume_agile` because
the `await_adapter` had previously been available only via
`operator co_await`, which means that it is created only in
response to an immediate attempt to `co_await` it, so we knew
that it would be consumed before its argument (possibly a temporary)
was destructed.

`resume_agile` returns the `await_adapter`, and we expect people
to await it immediately, but it's possible that they decide to
save it in a variable and await it later. In that case, we have
to record the `Async` as a value instead of a reference. We forward
the `resume_agile` argument into the `Async` so that it moves
if given an rvalue reference, or copies if given an lvalue reference.
This ensure that the common case where somebody does
`co_await resume_agile(DoSomething())`, we do not incur any additional
AddRefs or Releases.

Now that it's possible to `co_await` the `await_adapter` twice,
we have to worry about `await_suspend` being called twice. It had
previously assumed that `suspending` was true (since that's how it
was constructed), but that is no longer valid in the `resume_agile`
case if somebody tries to await the `resume_agile` twice. So we have
to force it to `true`. (Now, the second await will fail with
"illegal delegate assignment", but our failure to set `suspending`
to `true` led to double-resumption, which is super-bad.)
2023-09-14 16:19:23 -07:00
Raymond Chen fac72c82b0
Add `resume_agile` to allow coroutine to resume in any apartment (#1356) 2023-09-12 13:25:16 -05:00
David Lechner 23c4ced66a
Improve GCC compatibility (#1352) 2023-09-02 12:14:52 -05:00
Jon Wiswall 691f6f8c9d
Support for std::span for winrt::array_view and winrt::com_array (#1343)
* Implicit conversion between std::span and winrt::array_view

* Add testing and additional ctad for spans

* PR FB - yes, yes it does!

* PR FB

---------

Co-authored-by: Jaiganésh Kumaran <jaiganesh.kumaran@outlook.com>
Co-authored-by: Jon Wiswall <jonwis@ntdev.microsoft.com>
Co-authored-by: Kenny Kerr <kenny@kennykerr.ca>
2023-08-28 10:24:04 -07:00
Kenny Kerr de6ca88bd6
Remove old Windows 7 support code (#1348) 2023-08-28 08:35:09 -05:00
Jon Wiswall 9b453cfc51
Enable faster dev cycle in Visual Studio (#1340)
* Enable faster dev cycle in Visual Studio

* Oops, remove one more run

* Fix linux build temporarily - see also #1341

---------

Co-authored-by: Jon Wiswall <jonwis@ntdev.microsoft.com>
2023-08-17 15:51:08 -07:00
Jon Wiswall 4196e08bd2
Increase foldability of various templates (#1338)
* Add SDKReference-sourced WinMDs when building

* Add solution items so they're more easily edited

* Update development guidance slightly

* First attempt at template folding

* Make packages easier to build, remove warning about unreferenced static

* Lift delegate creation out for better folding

* More folding of events

* Another delegate folded

* PR feedback

* Speculative improvement for QueryInterface

* PR feedback

---------

Co-authored-by: Jon Wiswall <jdwiswall@hotmail.com>
Co-authored-by: Kenny Kerr <kekerr@microsoft.com>
Co-authored-by: Jon Wiswall <jonwis@ntdev.microsoft.com>
2023-08-09 23:40:40 -07:00
Charles Milette 0958cf3a4d
Hide protected and overridable members from public projections (#1319) 2023-07-11 21:38:42 -05:00
Charles Milette 953d65cc85
Register event handlers with `shared_ptr` and `weak_ptr` (#1330) 2023-07-10 17:16:10 -05:00
Charles Milette 297454ee28
Allow classic COM interfaces with get_self (#1314)
* Allow classic COM interfaces with get_self

Fixes #1312

* Fix mingw builds

---------

Co-authored-by: Kenny Kerr <kenny@kennykerr.ca>
2023-06-27 09:40:35 -07:00
David Machaj d3bb275464
Fix source location test failure resulting from newer compiler (#1326) 2023-06-22 12:39:33 -05:00
Kenny Kerr ec54c40215
Clarify contributing guide (#1324) 2023-06-21 15:16:35 -05:00
Kenny Kerr c24bc391ed
Fix workflow trigger (#1321) 2023-06-08 12:18:38 -05:00
Kenny Kerr ed6a1e37a2
Update open source docs (#1315) 2023-05-30 08:42:50 -05:00
Kenny Kerr e2dc21469b
Update readme 2023-05-27 14:38:18 -05:00
Charles Milette 0e740b1bae
Update issue template to use `cpp` instead of `rust` (#1313) 2023-05-24 08:16:44 -05:00
Kenny Kerr 780e09599b
Add UTF-8 path support (#1307) 2023-05-17 12:26:26 -05:00
alvinhochun 858d50369a
Disable MSYS2 mingw32 CI due to running out of memory (#1305) 2023-05-16 08:23:36 -05:00
Scott Jones 4587264757
Remove explicitly setting PreferredToolArchitecture, since VS 2022 handles this more comprehensively (#1304) 2023-05-15 11:19:04 -07:00
Ryan Shepherd 49b2cab4ce
Remove ARM OneBranch build workaround (#1303) 2023-05-11 03:55:38 -07:00
Kenny Kerr 65581a379f
Add `capture` support for unconventional result types (#1301) 2023-04-29 14:53:13 -05:00
Ryan Shepherd c3b7fcfc99
Move official build pipelines to OneBranch (#1295)
* Add OneBranch pipelines
2023-04-03 10:52:40 -07:00
Raymond Chen 6162c9d05d
Fix flakey clock and line-number tests (#1294) 2023-03-31 22:17:20 -05:00
Raymond Chen a1b9593323
Use safe DLL loading (avoid current directory) (#1293) 2023-03-30 08:48:23 -05:00
Ryan Shepherd 737adea24a
Compliance and test cleanup (#1291)
* Compliance and test cleanup

* Leave CFG off for debug builds
2023-03-27 18:34:35 -07:00
Johan Laanstra f3c730994e
Expose configuring /nomidl. (#1290)
* Expose configuring /nomidl.

* Add test project and fix comments.
2023-03-24 11:32:14 -07:00
Ryan Shepherd 9e89b5c9fe
Create pipeline to sync mirror repo (#1286) 2023-03-13 12:26:53 -07:00
Kenny Kerr 629f9e7659
Update README.md 2023-03-03 10:48:16 -06:00
Dustin L. Howett 72b30cc0f1
Add a clang-specific impl->projection conversion operator (#1274) 2023-02-23 15:38:07 -06:00
Jaiganésh Kumaran abcdc75e00
Add `to_hstring` overload for `IStringable` (#1271) 2023-02-20 09:38:23 -06:00
Raymond Chen 4e674c7ebf
Fix unreliable clock epoch tests (#1277) 2023-02-17 16:19:54 -06:00
Raymond Chen 419c33a903
Reduce stack consumption if unable to switch to `apartment_context` (#1276) 2023-02-16 12:53:02 -06:00
Raymond Chen 4363e5c37a
Stack usage reduction in apartment switching, and lifetime fixes (#1272) 2023-02-08 12:04:42 -06:00
Kenny Kerr 3bbee2cf2c
Workaround for false positive code analysis warning (#1269) 2023-02-06 10:36:11 -06:00
Charles Milette 047c179f15
Make the formatter for IStringable const (#1270) 2023-02-05 15:21:16 -06:00
Ryan Shepherd ed69c4b4d6 Fix typo in build.yml 2023-01-31 23:26:03 -08:00
Ryan Shepherd d68a8c7bd9
Move build pipeline into YAML (#1268)
Among other things, this will allow the C++/WinRT build pipeline to stay synchronized with the product code.
2023-01-31 16:19:28 -08:00
alvinhochun e38b0801a8
Enable cpp20/custom_error for incoming LLVM 16 (#1265)
Tested with a recent llvm-mingw build very close to LLVM 16 rc1.
2023-01-30 07:42:59 -06:00
Kenny Kerr b5503ee594 issue template 2023-01-17 13:03:24 -06:00
David Machaj 6ff78e4974
Add a mechanism to suppress `std::source_location` (#1260) 2023-01-09 16:52:54 -06:00
alvinhochun a2131900b9
Add option for using custom license text (#1262) 2023-01-09 11:20:07 -06:00
alvinhochun 983f659840
Cleaning up some warnings for Clang and GCC (#1255) 2023-01-09 08:57:33 -06:00
alvinhochun fe304096fa
Make headers partially usable with LLVM/libc++ 13 (#1257) 2023-01-03 11:33:53 -06:00
alvinhochun 0214f2f7a2
cmake: Allow using external winmd headers to bypass download (#1256) 2023-01-03 11:33:25 -06:00
alvinhochun 0a6cb062e2
mingw: Stop using .weak symbols aliases (#1250) 2022-12-20 18:13:41 -06:00
yuvaln-s1 31ad5bcd01
Fix object usage after move in make_delegate_with_shared_state (#1253) 2022-12-20 15:11:33 -06:00
alvinhochun 44572ed0f1
Try to fix random failure of the clock test (#1251) 2022-12-19 19:59:35 -06:00
Charles Milette 8ac2b798c7
Fix cancellation propagation by moving responsability to awaiter (#1246) 2022-12-19 08:45:09 -06:00
Kenny Kerr 69f9d8ca18
Improve error reporting for clock test (#1248) 2022-12-15 19:31:38 -06:00