profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/DougGregor/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

apple/swift 57353

The Swift Programming Language

DougGregor/swift-evolution 35

This maintains proposals for changes and user-visible enhancements to the Swift Programming Language.

DougGregor/swift-concurrency-objc 22

Swift Concurrency Translation of Objective-C APIs for iOS, macOS, tvOS, and watchOS

DougGregor/swift 7

The Swift Programming Language

airspeedswift/swift 3

The Swift Programming Language

DougGregor/clang 0

Mirror of official clang git repository located at http://llvm.org/git/clang. Updated every five minutes.

DougGregor/swift-corelibs-libdispatch 0

The libdispatch Project, (a.k.a. Grand Central Dispatch), for concurrency on multicore hardware

delete branch DougGregor/swift

delete branch : remove-debugging-hack-5.5

delete time in 13 hours

push eventapple/swift

Doug Gregor

commit sha ef63b877cc8ef7688962c342acd4dacdf6014c67

Remove debugging hack

view details

Doug Gregor

commit sha c7c7578ae107d178c4a4989465d2d783a86a5050

Merge pull request #39457 from DougGregor/remove-debugging-hack-5.5

view details

push time in 13 hours

PR merged apple/swift

Remove debugging hack

This slipped into the large merge of concurrency back-deployment

+0 -2

1 comment

1 changed file

DougGregor

pr closed time in 13 hours

pull request commentapple/swift

Remove debugging hack

@swift-ci please test

DougGregor

comment created time in a day

PR opened apple/swift

Remove debugging hack

This slipped into the large merge of concurrency back-deployment

+0 -2

0 comment

1 changed file

pr created time in a day

create barnchDougGregor/swift

branch : remove-debugging-hack-5.5

created branch time in a day

create barnchDougGregor/swift

branch : existential-marker-protocol-assert

created branch time in a day

pull request commentapple/swift

Fix an incorrect assertion involving existential formation.

@swift-ci please smoke test and merge

DougGregor

comment created time in a day

PR opened apple/swift

Fix an incorrect assertion involving existential formation.

This assertion was tripping when the existential involved a marker protocol, because it was checking for the number of protocols rather than the number of protocols that require witness tables. Correct the assertion and add a test.

Fixes rdar://83020734.

+24 -1

0 comment

2 changed files

pr created time in a day

delete branch DougGregor/swift

delete branch : back-deploy-concurrency-cleanups-5.5

delete time in a day

push eventapple/swift

Doug Gregor

commit sha 16676fd07a759fe054b0cdfb54988e66267cd644

Fix availability inference for unownedExecutor. Rather that copying availability directly from `UnownedExecutorRef`, we need to properly infer availability from both it and the enclosing context. Otherwise, the synthesized `unownedExecutor` will have an availability that could conflict with our enclosing declaration. Fixes rdar://83246377.

view details

Kuba Mracek

commit sha 5cc1ac078909bfdb1bba3c4694969eee1cca9c8c

64-bit watchOS should imply a 5.3 minimum version of the Swift runtime (cherry picked from commit b073df2c6d06903d55c2662508ece2a690bd5779)

view details

Doug Gregor

commit sha ee0402d220f8eff78aff26d455f8fab83c559f37

Merge pull request #39446 from DougGregor/back-deploy-concurrency-cleanups-5.5 Back-deploymed concurrency availability fixes

view details

push time in a day

PR merged apple/swift

Back-deploymed concurrency availability fixes

Cherry-pick some fixes from main for availability-related problems with concurrency back-deployement.

Fixes rdar://83246377

+29 -9

1 comment

4 changed files

DougGregor

pr closed time in a day

pull request commentapple/swift-package-manager

`swift build` shouldn't pass `-fmodules` when compiling C++ files

I don't have the context re: C++ modules in Clang on other platforms to know which is right.

C++ modules are enabled by -fmodules everywhere except Apple-built Clangs, which are only used on Darwin. So, I would prefer to disable -fmodules based on buildParameters.triple.isDarwin() && clangTarget.isCXX

abertelrud

comment created time in a day

PullRequestReviewEvent

pull request commentapple/swift

Check if the C++ compiler used to build the Concurrency library has the -fswift-async-fp flag

Hmm, didn't work:

11:26:00 -- Performing Test CXX_COMPILER_HAS_SWIFT_ASYNC_FP_FLAG
11:26:00 -- Performing Test CXX_COMPILER_HAS_SWIFT_ASYNC_FP_FLAG - Failed
11:26:00 ERRORThe -fswift-async-fp clang flag is not available. This is most likely because you are using the Xcode toolchain, which may not have the latest flags yet.
buttaface

comment created time in a day

Pull request review commentapple/swift

Check if the C++ compiler used to build the Concurrency library has the -fswift-async-fp flag

 endif() set(SWIFT_RUNTIME_CONCURRENCY_C_FLAGS) set(SWIFT_RUNTIME_CONCURRENCY_SWIFT_FLAGS) +check_cxx_compiler_flag(-fswift-async-fp=always CXX_COMPILER_HAS_SWIFT_ASYNC_FP_FLAG)+ if(NOT swift_concurrency_async_fp_mode)   set(swift_concurrency_async_fp_mode "always") endif() -# Don't emit extended frame info on platforms other than darwin, system-# backtracer and system debugger are unlikely to support it.+# Don't emit extended frame info on platforms other than darwin, if the compiler+# has that flag, as the system backtracer and system debugger are unlikely to+# support it. if(CMAKE_SYSTEM_NAME STREQUAL Darwin)-  list(APPEND SWIFT_RUNTIME_CONCURRENCY_C_FLAGS-    "-fswift-async-fp=${swift_concurrency_async_fp_mode}")-  list(APPEND SWIFT_RUNTIME_CONCURRENCY_SWIFT_FLAGS-    "-Xfrontend"-    "-swift-async-frame-pointer=${swift_concurrency_async_fp_mode}")-else()+  if(CXX_COMPILER_HAS_SWIFT_ASYNC_FP_FLAG)+    list(APPEND SWIFT_RUNTIME_CONCURRENCY_C_FLAGS+      "-fswift-async-fp=${swift_concurrency_async_fp_mode}")+    list(APPEND SWIFT_RUNTIME_CONCURRENCY_SWIFT_FLAGS+      "-Xfrontend"+      "-swift-async-frame-pointer=${swift_concurrency_async_fp_mode}")+  else()+    message(ERROR
    message(WARNING
buttaface

comment created time in a day

PullRequestReviewEvent

delete branch DougGregor/swift

delete branch : availability-inference-unowned-executor

delete time in a day

create barnchDougGregor/swift

branch : back-deploy-concurrency-cleanups-5.5

created branch time in a day

pull request commentapple/swift

Back-deploymed concurrency availability fixes

@swift-ci please test

DougGregor

comment created time in a day

PR opened apple/swift

Back-deploymed concurrency availability fixes

Cherry-pick some fixes from main for availability-related problems with concurrency back-deployement.

Fixes rdar://83246377

+29 -9

0 comment

4 changed files

pr created time in a day

push eventapple/swift

Kuba Mracek

commit sha b073df2c6d06903d55c2662508ece2a690bd5779

64-bit watchOS should imply a 5.3 minimum version of the Swift runtime

view details

Doug Gregor

commit sha 212773e61bb1a1523f3a16c6312574d5ec5fde93

Merge pull request #39418 from kubamracek/watchos-64bit-version-floor 64-bit watchOS should imply a 5.3 minimum version of the Swift runtime

view details

push time in a day

Pull request review commentapple/swift

Check if the C++ compiler used to build the Concurrency library has the -fswift-async-fp flag

 endif() set(SWIFT_RUNTIME_CONCURRENCY_C_FLAGS) set(SWIFT_RUNTIME_CONCURRENCY_SWIFT_FLAGS) +check_cxx_compiler_flag(-fswift-async-fp=always CXX_COMPILER_HAS_SWIFT_ASYNC_FP_FLAG)+ if(NOT swift_concurrency_async_fp_mode)   set(swift_concurrency_async_fp_mode "always") endif() -# Don't emit extended frame info on platforms other than darwin, system-# backtracer and system debugger are unlikely to support it.+# Don't emit extended frame info on platforms other than darwin, if the compiler+# has that flag, as the system backtracer and system debugger are unlikely to+# support it. if(CMAKE_SYSTEM_NAME STREQUAL Darwin)-  list(APPEND SWIFT_RUNTIME_CONCURRENCY_C_FLAGS-    "-fswift-async-fp=${swift_concurrency_async_fp_mode}")-  list(APPEND SWIFT_RUNTIME_CONCURRENCY_SWIFT_FLAGS-    "-Xfrontend"-    "-swift-async-frame-pointer=${swift_concurrency_async_fp_mode}")-else()+  if(CXX_COMPILER_HAS_SWIFT_ASYNC_FP_FLAG)+    list(APPEND SWIFT_RUNTIME_CONCURRENCY_C_FLAGS+      "-fswift-async-fp=${swift_concurrency_async_fp_mode}")+    list(APPEND SWIFT_RUNTIME_CONCURRENCY_SWIFT_FLAGS+      "-Xfrontend"+      "-swift-async-frame-pointer=${swift_concurrency_async_fp_mode}")+  else()+    message(ERROR+      "The -fswift-async-fp clang flag is not available. This is most likely "+      "because you are using the Xcode toolchain, which may not have the "+      "latest flags yet.")

You know, we don't even need to error here. Let's say we end up building the C++ parts of the concurrency library with an older Clang. It only affects the back-deployment library, and it only breaks async stack traces through the C++ parts of that library. It's probably more valuable to make this configuration not fail outright than to have it perfect.

buttaface

comment created time in a day

PullRequestReviewEvent

create barnchDougGregor/swift

branch : availability-inference-unowned-executor

created branch time in a day

pull request commentapple/swift

Fix availability inference for unownedExecutor.

@swift-ci please smoke test and merge

DougGregor

comment created time in a day

PR opened apple/swift

Fix availability inference for unownedExecutor.

Rather that copying availability directly from UnownedExecutorRef, we need to properly infer availability from both it and the enclosing context. Otherwise, the synthesized unownedExecutor will have an availability that could conflict with our enclosing declaration.

Fixes rdar://83246377.

+16 -5

0 comment

2 changed files

pr created time in a day

push eventapple/swift

Doug Gregor

commit sha d04f9517c445b7eb63f707f5af2bfb36656bde29

[Serialization] Remove an assertion that fires spuriously. This assertion does not account for the fact that a particular requirement can be imported both as async and with a completion handler, and therefore one of those two views won't have a witness. The assertion is no longer catching anything useful, so remove it. Addresses rdar://77684000.

view details

Michael Gottesman

commit sha 40e4263558b177673d03e2f702c5bac23d7a617a

[build-script] Refactor out BuildScriptInvocation into its own file and out of the top level build-script file. This shrinks the number of lines in build-script by 50% and just makes it easier to read. It will also enable me to refactor parts of it into pieces without touching the main build-script file. This is really library code... build-script itself doesn't care about how BuildScriptInvocation is actually implemented under the hood. (cherry picked from commit c86e3af4546d3376d8b79c3eb709c8386d040f09)

view details

Dario Rexin

commit sha a61d116da77a2ae20a9b1c0f77077604a005fcfb

Revert "Revert "[Build] Make cmark build a build-script product (#37102)"" This reverts commit 3150086b0fd7c59d9079084288c7565978604d4f. (cherry picked from commit 7cfabf51f13486baf65898e93ce320f94ff57712)

view details

Dario Rexin

commit sha 8591c5a7c6110985a438b634528e3dbde5ac4455

[Build] Fix Python 2 incompatibility in cmake_product.py (#37659) (cherry picked from commit 672d5aa9c692a7350b7ce060aa6134307cf8cf85)

view details

Varun Gandhi

commit sha f87af92fb0acabb54d9017c0971ca0889e4d703c

Add missing --config flag when building with --xcode. Fixes SR-14701. (cherry picked from commit 526b0ef54643672283c8fa254615975f64fade0f)

view details

Michael Gottesman

commit sha 2e409bacd629527c71309880982e1bb3b50ec381

[build-script] Provide infrastructure for CMakeProduct subclasses to opt into using the just built swift toolchain. (cherry picked from commit c7001f91d8fa816a79226f90abf4e2720761ff54)

view details

Michael Gottesman

commit sha 675d785217391847a70504fc44db3a83da390aa4

[concurrency] Implement a compatibility .a library for Concurrency. In a back deployment scenario, this will provide a place where one could provide function implementations that are not available in the relevant stdlib. This is just setting up for future work and isn't doing anything interesting beyond wiring it up/making sure that it is wired up correctly with tests. (cherry picked from commit 1bc94bfa6ad0d4c1a7a1af60d5dc47c0fed78958)

view details

Hamish Knight

commit sha 075cc07738f99e260de88457e4e9a19738460fa9

[test] Skip some Concurrency tests during back deployment testing rdar://82123254 (cherry picked from commit 4c66ff01a1ea79384c25dedac9acbea576eeddee)

view details

Doug Gregor

commit sha be533d65dc7c4efd6ab3c9b61f33f83d70a70e48

Add a temporary flag to stage in back-deployment of concurrency. Add a frontend-only flag `-enable-experimental-back-deploy-concurrency` to be used to stage in the back deployment of concurrency. At present, all it does is lower the availability minimums for use of concurrency features. (cherry picked from commit 76c4ac8263f5a5e4ba1158c7329f6ed073b8db00)

view details

Doug Gregor

commit sha 655cb0f80aabf1bbdfc093054611002ee4234b05

Add an option to build the concurrency library for back deployment. Introduce an additional build product to build-script to build back-deployable concurrency libraries. These libraries would need to be embedded in apps deployed prior to macOS 12/iOS 15 to support concurrency. The built-script option `--back-deploy-concurrency` can be provided to build these back-deployment libraries. They are built in addition to the normal concurrency libraries, as a separate product that installs into `lib/swift-5.5/<platform>` within the toolchain. The macro `SWIFT_CONCURRENCY_BACK_DEPLOYMENT` is set when building the concurrency library, so that we can adapt the implementation to older OS's. (cherry picked from commit 3f749dc13bb8366b71a8494a778528a5dc2010d1)

view details

Doug Gregor

commit sha dc3e1f0ea833f3fb6144efcac042f636d2f1d36b

Optionally build the compiler and _Concurrency library for back deployment. When enabling the build of the back-deployable concurrency library via the build-script option `--back-deploy-concurrency`, also build the compiler and (main) concurrency library to support older deployment targets. Building the compiler for older deployment targets is effectively the same as implicitly passing `-Xfrontend -enable-experimental-back-deploy-concurrency`. That option should probably go away. Building the primary _Concurrency library for back-deployment means setting the "SwiftStdlib 5.5" availability back to the earlier deployment targets. This should have no effect on how the _Concurrency library binary is built, but it does ensure that the right availability annotations are in the _Concurrency module. (cherry picked from commit f2995a3755dcf372e8dc705191219ceccee8edd4)

view details

Doug Gregor

commit sha 5787b42c83db367dba4dcee8a810d8fb38348f34

Clean up build-script test failures and linter errors (cherry picked from commit 602937d06caeca16127583b7e131e5e28c41d163)

view details

Doug Gregor

commit sha 12e868cb3f0a2a42793c7a6de705600de089ed73

Build compiler, other libraries, and tests for back-deployed concurrency. When build-script is given `--back-deploy-concurrency`, also use that to build other parts of Swift with the back-deployed versions: * The compiler allows async and actors to be defined with the back-deployed availability, e.g., the same as `-Xfrontend -enable-experimental-back-deploy-concurrency`. (The latter will go away soon) * The standard library unit testing framework and distributed actors library are build with the older OS versions. * The tests use the older OS versions, with some adjustments to make them agnostic to the back-deployment setting. (cherry picked from commit ebd7b4975558ae00e7f42ea0597ad91ab05ca4ca)

view details

Doug Gregor

commit sha 5d7b2b23be0a1a9b22b32fe1594d65e46e23aef3

Enable concurrency back deployment in CI configurations. (cherry picked from commit 61c8f8676897334e5b799cacac03de38f1d78bff)

view details

Doug Gregor

commit sha 04c6874913e420df2a8bc53e02e13798327683c6

[build-script] Add `--install-back-deploy-concurrency`. Allow the installation of the back-deployment shared libraries for concurrency via build-script. (cherry picked from commit 6d6c2e69bfbc6a5779b819958bb68901c738322b)

view details

Doug Gregor

commit sha 89c6794389297cdd66f773e3af98c5335bde495d

Install the back-deployment concurrency libraries in most configurations. (cherry picked from commit 497751b8b95247a1aa767bb5a10b6c02afb30f0f)

view details

Varun Gandhi

commit sha 0583d5e973799c94806d59d7c45a92b443af1ada

[IRGen] Support back-deployment of concurrency-related function types. Fixes rdar://76473697. (cherry picked from commit b519489dd0637992ac80bdd193cd9c2780adcd48)

view details

Doug Gregor

commit sha e733b490da363b95e244731638b70e94b9b5d82b

Build the back-deployed _Concurrency library with an `@rpath` install name When linking against the back-deployed _Concurrency library, ensure that clients record an `@rpath`-relative dependency. (cherry picked from commit 75a58312ea8d688d06473058f8eeceadb8b33cbd)

view details

Doug Gregor

commit sha 1e95290fce137f67e06de2b30a2d008df08e4acf

[Test] Add back-deployed concurrency library path for runtime OS testing When testing the runtime in the OS (via the lit parameter `use_os_stdlib`), add the path to the back-deployed concurrency libraries into `DYLD_LIBRARY_PATH` for the test run. This should allow us to run our regression tests on older OS's. (cherry picked from commit 0573f1e1b0ffc182a51143b150956907734449bd)

view details

Doug Gregor

commit sha a6ec08f13cbbe6ac69f4a9338a10e7c7c4ba4e25

Enable concurrency back-deployment in the compiler by default. Remove the option that explicitly enables concurrency back-deployment, and instead always enable its support in the compiler. Remove the use of the extraneous CMake option as well. (cherry picked from commit 599974367e926fe9c040938f5a5e61d1ff411a8d)

view details

push time in a day

delete branch DougGregor/swift

delete branch : back-deploy-concurrency-5.5

delete time in a day