profile
viewpoint
Artem Chikin artemcm Apple Canada

uasys/ACF-Coalescing-LLVM 1

This repository contains the implementation of the ACF Static Analysis Framework.

artemcm/CASTLE-Poster 0

Memory-Access-Aware Loop Transformations for Accelerator-Bound OpenMP Loops

artemcm/llvm-project 0

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. This fork is used to manage Apple’s stable releases of Clang as well as support the Swift project.

artemcm/swift 0

The Swift Programming Language

artemcm/swift-driver 0

Swift compiler driver reimplementation in Swift

artemcm/swift-llbuild 0

A low-level build system, used by Xcode and the Swift Package Manager

artemcm/swift-package-manager 0

The Package Manager for the Swift Programming Language

pull request commentapple/swift

[Clang Importer] Do not rely on being able to always import Foundation on-demand

@swift-ci Please Test Source Compatibility Debug

artemcm

comment created time in 7 hours

PullRequestReviewEvent

push eventartemcm/swift

Artem Chikin

commit sha a76f7edd5dd4f9561a9072dd999f70e9649fa862

Add support for emitting parseable-output "finished" message and per-primary messages for batched jobs Inside swift-frontend

view details

push time in 10 hours

push eventartemcm/swift

Artem Chikin

commit sha 9e9de1045577e250600bbaa4f89b54d2386da968

Add support for emitting parseable-output "finished" message and per-primary messages for batched jobs Inside swift-frontend

view details

push time in 10 hours

push eventartemcm/swift

Artem Chikin

commit sha 46a0e6e4af37da7bf330f9569b5dfa07a3495116

Add support for emitting "finished" message and per-primary messages for batched jobs

view details

push time in 10 hours

pull request commentapple/swift

[Clang Importer] Do not rely on being able to always import Foundation on-demand

@swift-ci Please Test Source Compatibility

artemcm

comment created time in 10 hours

push eventartemcm/swift

Artem Chikin

commit sha a1b2868e65357243e29e5985badc9f9f19e39398

Add support for emitting Finished message and per-primary messages for batched jobs

view details

push time in 10 hours

PullRequestReviewEvent
PullRequestReviewEvent

create barnchartemcm/swift

branch : FrontendParseableOutput

created branch time in 15 hours

pull request commentapple/swift

[Clang Importer] Do not rely on being able to always import Foundation on-demand

@swift-ci Please Test Source Compatibility

artemcm

comment created time in 15 hours

pull request commentapple/swift

[Clang Importer] Do not rely on being able to always import Foundation on-demand

@swift-ci Please Test Source Compatibility

artemcm

comment created time in 2 days

PullRequestReviewEvent

push eventapple/swift

Artem Chikin

commit sha d7a6ded7aa73611b3b9c2ec02b408f5c1651754c

[Dependency Scanner] Do not escape strings in the scanner output When outputting strings for things like filenames, using `write_escaped` will result in Unicode characters being outputted with a full 3-character-octal or hex escape. Clients which expect a UTF-8 JSON output will not be able to parse such escape sequences.

view details

Artem Chikin

commit sha 792c4b7a496df0d5776a0ed3d8f2d2182ba41490

Merge pull request #34360 from artemcm/DoNotEscapeScannerOutputStrings [Dependency Scanner] Do not escape strings in the scanner output

view details

push time in 3 days

PR merged apple/swift

[Dependency Scanner] Do not escape strings in the scanner output

When outputting strings for things like filenames, using write_escaped will result in Unicode characters being outputted with a full 3-character-octal or hex escape. Clients which expect a UTF-8 JSON output will not be able to parse such escape sequences.

+20 -4

6 comments

3 changed files

artemcm

pr closed time in 3 days

pull request commentapple/swift

[Clang Importer] Do not rely on being able to always import Foundation on-demand

@swift-ci Please Test Source Compatibility

artemcm

comment created time in 3 days

pull request commentapple/swift

[Dependency Scanner] Do not escape strings in the scanner output

@swift-ci please test Windows platform

artemcm

comment created time in 3 days

pull request commentapple/swift

[Dependency Scanner] Do not escape strings in the scanner output

@swift-ci please smoke test Windows platform

artemcm

comment created time in 3 days

Pull request review commentapple/swift

[Dependency Scanner] Do not escape strings in the scanner output

+func foo() {+    print(1)

Having an actual test itself have a Unicode character in its filename seems to trip up lit test infra.

artemcm

comment created time in 3 days

PullRequestReviewEvent

pull request commentapple/swift

[Dependency Scanner] Do not escape strings in the scanner output

@swift-ci please smoke test

artemcm

comment created time in 3 days

push eventartemcm/swift

Artem Chikin

commit sha d7a6ded7aa73611b3b9c2ec02b408f5c1651754c

[Dependency Scanner] Do not escape strings in the scanner output When outputting strings for things like filenames, using `write_escaped` will result in Unicode characters being outputted with a full 3-character-octal or hex escape. Clients which expect a UTF-8 JSON output will not be able to parse such escape sequences.

view details

push time in 3 days

pull request commentapple/swift

[Dependency Scanner] Do not escape strings in the scanner output

@swift-ci please test

artemcm

comment created time in 3 days

PR opened apple/swift

Reviewers
[Dependency Scanner] Do not escape strings in the scanner output

When outputting strings for things like filenames, using write_escaped will result in Unicode characters being outputted with a full 3-character-octal or hex escape. Clients which expect a UTF-8 JSON output will not be able to parse such escape sequences.

+26 -4

0 comment

3 changed files

pr created time in 3 days

create barnchartemcm/swift

branch : DoNotEscapeScannerOutputStrings

created branch time in 3 days

PullRequestReviewEvent

push eventapple/swift-driver

Artem Chikin

commit sha e820ca99156d5088eb04b6d827aafeb5fc982837

[Build Script Helper] Install libSwiftDriverExecution into the toolchain While not required for `libSwiftDriver`, this is necessary in order to use the toolchain-installed `swift-driver` executable.

view details

Artem Chikin

commit sha 086c1543a5831bc8703b41276b469f4ccbdc054f

Merge pull request #320 from artemcm/ExecuteInstall [Build Script Helper] Install libSwiftDriverExecution into the toolchain

view details

push time in 3 days

pull request commentapple/swift-driver

[Build Script Helper] Install libSwiftDriverExecution into the toolchain

@swift-ci please test

artemcm

comment created time in 3 days

PR opened apple/swift-driver

Reviewers
[Build Script Helper] Install libSwiftDriverExecution into the toolchain

While not required for libSwiftDriver clients, this is necessary in order to use the toolchain-installed swift-driver executable, since we separated the driver's targets in https://github.com/apple/swift-driver/pull/263.

+15 -13

0 comment

1 changed file

pr created time in 3 days

create barnchartemcm/swift-driver

branch : ExecuteInstall

created branch time in 3 days

PullRequestReviewEvent

pull request commentapple/swift

[Clang Importer] Do not rely on being able to always import Foundation on-demand

@swift-ci Please Test Source Compatibility

artemcm

comment created time in 4 days

push eventapple/swift-driver

Artem Chikin

commit sha 654216a773a2246ee0205919dd8919d86c3e2e5e

Make print-output-map and print-bindings behaviour match the C++ driver. - Move printing of the output map to the `run()` stage and exit after. - Adjust the kind of input printed in `printBindings` to print `displayInputs`. - Add `displayInputs` to the link job. This change makes `test/Driver/basic_output_file_map.swift` pass.

view details

Artem Chikin

commit sha c57cd5cd5e3c5e8067d9549cfcd1e3181142b4d0

Merge pull request #312 from artemcm/PrintMapAndBindings Make print-output-map and print-bindings behaviour match the C++ driver.

view details

push time in 4 days

PR merged apple/swift-driver

Make print-output-map and print-bindings behaviour match the C++ driver.
  • Move printing of the output map to the run() stage and exit after.
  • Adjust the kind of inputs printed in printBindings to print displayInputs.
  • Add displayInputs to the link job.

This change makes test/Driver/basic_output_file_map.swift pass.

+15 -13

1 comment

4 changed files

artemcm

pr closed time in 4 days

pull request commentapple/swift-driver

Make print-output-map and print-bindings behaviour match the C++ driver.

@swift-ci please test

artemcm

comment created time in 4 days

pull request commentapple/swift

[Clang Importer] Do not rely on being able to always import Foundation on-demand

@swift-ci please test

artemcm

comment created time in 6 days

PR opened apple/swift-driver

Reviewers
Make print-output-map and print-bindings behaviour match the C++ driver.
  • Move printing of the output map to the run() stage and exit after.
  • Adjust the kind of inputs printed in printBindings to print displayInputs.
  • Add displayInputs to the link job.

This change makes test/Driver/basic_output_file_map.swift pass.

+15 -13

0 comment

4 changed files

pr created time in 6 days

push eventartemcm/swift-driver

Artem Chikin

commit sha 654216a773a2246ee0205919dd8919d86c3e2e5e

Make print-output-map and print-bindings behaviour match the C++ driver. - Move printing of the output map to the `run()` stage and exit after. - Adjust the kind of input printed in `printBindings` to print `displayInputs`. - Add `displayInputs` to the link job. This change makes `test/Driver/basic_output_file_map.swift` pass.

view details

push time in 6 days

create barnchartemcm/swift-driver

branch : PrintMapAndBindings

created branch time in 6 days

push eventartemcm/swift-driver

Xi Ge

commit sha 0a57a5e355123f5878e7ccfc3292831c89feedbc

Teach swift-driver to find tools in -tools-directory dir rdar://70381299

view details

Xi Ge

commit sha d4b91be51688e7ad369d90483006b0333070ca3e

Merge pull request #310 from nkcsgexi/70381299 Teach swift-driver to find tools in -tools-directory dir

view details

push time in 6 days

pull request commentapple/swift

[Clang Importer] Do not rely on being able to always import Foundation on-demand

@brentdax, @slavapestov, I don't have as deep of an understanding to know what I may be breaking here, really curious to hear what you think.

artemcm

comment created time in 7 days

pull request commentapple/swift

[Clang Importer] Do not rely on being able to always import Foundation on-demand

@swift-ci please smoke test

artemcm

comment created time in 7 days

pull request commentapple/swift

[Clang Importer] Do not rely on being able to always import Foundation on-demand

@swift-ci please test

artemcm

comment created time in 7 days

PR opened apple/swift

[Clang Importer] Do not rely on being able to always import Foundation on-demand

When importing Clang types. This is not an option with Explicit Module Builds. If the module being built does not (directly or transitively) depend on Foundation, then attempting to load Foundation will produce an error because implicit module loading is no longer allowed.

This change addresses a small number of cases where ClangImporter relies on being able to load Foundation on-demand:

  • When importing a single Decl from a clang module, we check whether it has certain conformances by checking all extensions of the NominalTypeDecl of the Decl in question, to see if any of the extensions contain the conformance we are looking for, but we only check extensions whose parent module is either the original module of the NominalTypeDecl or the overlay module of the NominalTypeDecl or Foundation. It seems that we do not need to actually import Foundation here, just checking the module Identifier should be sufficient.
  • In maybeImportNSErrorOutParameter, change the behavior to have an exit condition based on whether Foundation can be imported, before attempting to load it.
  • When checking whether or not we are allowed to bridge an Objective-C type, it also looks sufficient to query whether or not Foundation can be imported, without loading it.

Resolves rdar://70381338

+21 -11

0 comment

5 changed files

pr created time in 7 days

create barnchartemcm/swift

branch : NoFoundationOnExplicitImportSoil

created branch time in 7 days

push eventartemcm/swift-driver

Owen Voorhees

commit sha 7e5a68b9b51bcde5b59bdf8e7134bc3a548b1ef8

Remove the fileSystem in ExplicitModuleBuildHandler Instead, this commit introduces a new VirtualPath case, temporaryFileWithKnownContents. This allows the ExplicitModuleBuildHandler to indirectly delegate writing artifact info temporary files to the ArgsResolver.

view details

Artem Chikin

commit sha 714b492c444842c4fc0e735c75a49950eb5d0ce0

[Build Script Helper] Avoid outputting install_name_tool failures In incremental builds, these commands will fail, which is okay. Failing to remove specified Rpaths means they are already missing, and failure to add specified Rpaths means they are already present. So we should ignore these failures and proceed with the installation, which we already do. Always outputting these errors pollutes build logs and leads people to mistakenly blame these errors for unrelated failures.

view details

Artem Chikin

commit sha 3fee08806ad3b93919fb1ce874b7e9cf38c77ac2

Merge pull request #306 from artemcm/CarefulAboutRpathFailures [Build Script Helper] Avoid outputting install_name_tool failures

view details

Xi Ge

commit sha 8654b0f533daebffa0f9a356c014b73e4cea79d9

Regenerate Options.swift after fixing the option group of -L= rdar://70300892

view details

Xi Ge

commit sha e5d4c4e4707bc17e20431712a2aa361b414e78fc

Merge pull request #307 from nkcsgexi/70300892 Regenerate Options.swift after fixing the option group of -L=

view details

Xi Ge

commit sha 5759f22c9d204f0b0fa96cd6ad75f3edbf03ea02

Honor working directory setting for implicit output paths rdar://70311690

view details

Xi Ge

commit sha bd86b019be512a8b7f422a557c0f823d10784612

Merge pull request #308 from nkcsgexi/70311690 Honor working directory setting for implicit output paths

view details

Xi Ge

commit sha 711278c8d0498de38722a6817dd0e22deb81e68a

Use working directory for top-level implicit module outputs

view details

Xi Ge

commit sha 24c11e5940e9eaec4cc9166ff4f0fcb928190774

Merge pull request #309 from nkcsgexi/working-dir-module Use working directory for top-level implicit module outputs

view details

Owen Voorhees

commit sha 15364302e071ce08bb38f26b9d32ccf504aa8d16

Merge pull request #288 from owenv/remove-fs-2 Remove the fileSystem in ExplicitModuleBuildHandler

view details

push time in 7 days

push eventartemcm/swift

Dave Lee

commit sha 27330f169df5d2dcb018ab2c6615d66be91d04e2

[build] Remove unused lldb cmake

view details

Keith Smiley

commit sha ae0c380f1b0f37e11b111a06634dd4c64e67b96c

Improve -*prefix-map help text Before: ``` -coverage-prefix-map <value> -debug-prefix-map <value> ``` After: ``` -coverage-prefix-map <prefix=replacement> -debug-prefix-map <prefix=replacement> ```

view details

Dave Lee

commit sha b02dc2b25bc2c9c258370265c54d744c178a101c

LLDB_PATH_TO_SWIFT_SOURCE too

view details

Dave Lee

commit sha 52bbe11161f908d4c58cbdd2a423c68b9688b191

[build] Remove dash-dash from build-presets.ini (NFC)

view details

Arnold Schwaighofer

commit sha 96a0d0e5840045e25d2c05f02999972f804201df

Rename various IncludeUsableFromInlineAndInlineable to IncludeUsableFromInline `@inlinable` implies `@usableFromInline`. NFC intended.

view details

Doug Gregor

commit sha 21a0696e165747248ac5f4532feeb942e13e326b

[Concurrency] Clean up inference logic for @asyncHandler.

view details

Doug Gregor

commit sha dee5356021f49ea31954e3ecc2170d285d47804c

[Concurrency] Add inferred actor-isolation attributes. When we infer an actor-isolation attribute on a declaration, add an implicit attribute that will show up in the printed interface and get serialized. ... and clean up the type resolution logic for global actor attributes to make it use CustomAttrTypeRequest, so the result gets appropriately cached in CustomAttr for serialization.

view details

Doug Gregor

commit sha 4032cd8e7d4857dad9e07782212e30848580ca56

Rename CustomAttrTypeKind::PropertyDelegate to PropertyWrapper.

view details

Alexis Laferrière

commit sha e509d6883a068334df96f34ade141d8c38dfd1f0

Revert "[Sema] Fix availability checking in inlinable code"

view details

Dave Lee

commit sha 804459df815793cc3781addd3f14b0ee1a983abf

Merge pull request #34212 from apple/build-Remove-unused-lldb-cmake [build] Remove unused lldb cmake

view details

Xi Ge

commit sha 29093b15df24e98dda65cd51e26a7bd618a2d709

Driver: -L= belongs to the linker option group rdar://70300892

view details

Arnold Schwaighofer

commit sha a7259558238eadd1c69a234baef1b67ab45f8492

More renaming

view details

Arnold Schwaighofer

commit sha d6d921d7fafcfa67e500e6013f93ac30f6248b79

IRGen: Fix fixLifetime emission of enums rdar://70270724

view details

Robert Widmann

commit sha 6125d25cb4f5059f455b3c6f4bde70f6aa79f59e

[NFC] Silence Non-Exhaustive Switch Warnings on Windows

view details

Robert Widmann

commit sha 9c879c008e642278b2bce557db19b78ca391caad

Resolve Virtual Inheritance By Dominance By Being Explicit Since the alternative is name lookup selecting members from a pure virtual base, it's probably best to be explicit here.

view details

Alexis Laferrière

commit sha 0d8f689d1c50121c13980eadf7ee58917a930aef

Merge pull request #34306 from apple/revert-33855-availability-inlinable Revert "[Sema] Fix availability checking in inlinable code"

view details

Robert Widmann

commit sha ba737b563154e2e5261c57c482699d6ee8f4abf3

[NFC] Use an Explicit 64-Bit Shift

view details

Robert Widmann

commit sha 0d6a16258a1519b59644618be1ae2280476878ba

Silence a Deprecation Warning with FixedVectorType

view details

Saleem Abdulrasool

commit sha 78bc6aae363ff8e82d28aa7725c562ecf7e66ab2

Platform: link against Pathcch.lib when using pathcch.h The MSDN documentation indicates that you should link against the `Pathcch.lib` import library when using functions from `pathcch.h` which can also be verified by use functions failing to link due to unresolved symbols. Add the missing linking to enable autolinking for `WinSDK`.

view details

Arnold Schwaighofer

commit sha 1c85d201921abcedbd3a693229f597a6d015f81d

Try to appease 32bit tests

view details

push time in 7 days

PullRequestReviewEvent

push eventapple/swift

Artem Chikin

commit sha 7ce04dccf5b05f4fe64ecd50a1c6c40535a8a9eb

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module This bit is important when we are pre-building system modules to be loaded later in Explicit Module Builds.

view details

Artem Chikin

commit sha faa6289d6bc0f9f613f206719fb29efec7497374

Merge pull request #34297 from artemcm/PreCompileSystemPCMs [Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module

view details

push time in 7 days

PR merged apple/swift

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module

This flag is important when we are pre-building system modules to be loaded later in Explicit Module Builds. Resolves rdar://70212660

+12 -3

15 comments

2 changed files

artemcm

pr closed time in 7 days

issue openedbannzai/Teapot

TeapotCore is missing a dependency on Commander in the package manifest

For example, in Sources/TeapotCore/Runner.swift, there is an import Commander statement. Package.swift must capture all such cross-target dependencies.

As-is, it may currently build using some versions of SwiftPM, but is generally not guaranteed to.

created time in 7 days

pull request commentapple/swift

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module

@swift-ci please smoke test Windows Platform

artemcm

comment created time in 8 days

pull request commentapple/swift

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module

@swift-ci please smoke test

artemcm

comment created time in 8 days

push eventartemcm/swift

Artem Chikin

commit sha 7ce04dccf5b05f4fe64ecd50a1c6c40535a8a9eb

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module This bit is important when we are pre-building system modules to be loaded later in Explicit Module Builds.

view details

push time in 8 days

pull request commentapple/swift

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module

@swift-ci please smoke test Windows Platform

artemcm

comment created time in 8 days

PullRequestReviewEvent

pull request commentapple/swift

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module

@swift-ci please smoke test macOS Platform

artemcm

comment created time in 8 days

pull request commentapple/swift

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module

@swift-ci please smoke test Windows Platform

artemcm

comment created time in 8 days

pull request commentapple/swift

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module

@swift-ci please smoke test macOS Platform

artemcm

comment created time in 8 days

pull request commentapple/swift

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module

@swift-ci please smoke test Windows Platform

artemcm

comment created time in 8 days

pull request commentapple/swift

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module

@swift-ci please smoke test macOS Platform

artemcm

comment created time in 8 days

PullRequestReviewEvent

pull request commentapple/swift

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module

@swift-ci please smoke test macOS Platform

artemcm

comment created time in 8 days

pull request commentapple/swift

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module

@swift-ci please smoke test Windows Platform

artemcm

comment created time in 8 days

pull request commentapple/swift

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module

@swift-ci please smoke test macOS Platform

artemcm

comment created time in 8 days

pull request commentapple/swift

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module

@swift-ci please smoke test

artemcm

comment created time in 9 days

push eventartemcm/swift

Artem Chikin

commit sha e0d3cfae9d1d9a053f718bdb05b777d97d7dd8d5

[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module This bit is important when we are pre-building system modules to be loaded later in Explicit Module Builds.

view details

push time in 9 days

PullRequestReviewEvent

push eventapple/swift-driver

Artem Chikin

commit sha 714b492c444842c4fc0e735c75a49950eb5d0ce0

[Build Script Helper] Avoid outputting install_name_tool failures In incremental builds, these commands will fail, which is okay. Failing to remove specified Rpaths means they are already missing, and failure to add specified Rpaths means they are already present. So we should ignore these failures and proceed with the installation, which we already do. Always outputting these errors pollutes build logs and leads people to mistakenly blame these errors for unrelated failures.

view details

Artem Chikin

commit sha 3fee08806ad3b93919fb1ce874b7e9cf38c77ac2

Merge pull request #306 from artemcm/CarefulAboutRpathFailures [Build Script Helper] Avoid outputting install_name_tool failures

view details

push time in 9 days

PR merged apple/swift-driver

[Build Script Helper] Avoid outputting install_name_tool failures

In incremental builds of the driver, these commands will fail, which is okay.

Failing to remove specified Rpaths means they are already missing, and failure to add specified Rpaths means they are already present. So we should ignore these failures and proceed with the installation, which we already do. Always outputting these errors pollutes build logs and leads people to mistakenly blame these errors for unrelated failures.

+2 -4

1 comment

1 changed file

artemcm

pr closed time in 9 days

pull request commentapple/swift-driver

[Build Script Helper] Avoid outputting install_name_tool failures

@swift-ci please test

artemcm

comment created time in 9 days

PR opened apple/swift-driver

Reviewers
[Build Script Helper] Avoid outputting install_name_tool failures

In incremental builds of the driver, these commands will fail, which is okay.

Failing to remove specified Rpaths means they are already missing, and failure to add specified Rpaths means they are already present. So we should ignore these failures and proceed with the installation, which we already do. Always outputting these errors pollutes build logs and leads people to mistakenly blame these errors for unrelated failures.

+2 -4

0 comment

1 changed file

pr created time in 9 days

create barnchartemcm/swift-driver

branch : CarefulAboutRpathFailures

created branch time in 9 days

push eventartemcm/swift

Michael Gottesman

commit sha d3e6ffdbad9ed2af857508891a4530b7f11d4c6e

[lldb-toolbox] Add the ability to disassemble-to-file a specific function from a target without running the target. The routine already supports dumping the assembly to file if we are at a breakpoint using the current frame. This adds a -n option so one can without running just dump the assembly to a file of a specific function in a binary.

view details

Mike Ash

commit sha 630aff7b19b80f29445b645424e20fd1bb6bd551

[Runtime] Change SimpleGlobalCache to use ConcurrentReadableHashMap instead of ConcurrentMap. This gives us faster lookups and a small advantage in memory usage. Most of these maps need stable addresses for their entries, so we add a level of indirection to ConcurrentReadableHashMap for these cases to accommodate that. This costs some extra memory, but it's still a net win. A new StableAddressConcurrentReadableHashMap type handles this indirection and adds a convenience getOrInsert to take advantage of it. ConcurrentReadableHashMap is tweaked to avoid any global constructors or destructors when using it as a global variable. ForeignWitnessTables does not need stable addresses and it now uses ConcurrentReadableHashMap directly. rdar://problem/70056398

view details

Alexis Laferrière

commit sha e61ffea42c943044fe4fc8c35d5040bc8815e420

[Sema] Check availability in inlinable code using the explicit version Inlinable functions can be inlined in clients with a lower OS target version than the framework defining the function. For this reason, the availability in inlinable functions should always be checked using the explicit introduction OS version as lower bound and not the minimum deployment version. rdar://problem/67975153

view details

Alexis Laferrière

commit sha 53e04cb39db86d890ff674b775a5dbda47e9d599

[Sema] Test explicit versions in TypeRefinementContext

view details

Alexis Laferrière

commit sha 2f182c2b785f5f7b68ee756d1474f21f3050ba67

[Sema] Consider unavailable functions as being unreachable This has the effect of rejecting unavailable overrides to available methods in a similar way as overrides that are less available than the introduction are rejected.

view details

Alexis Laferrière

commit sha 39ee5916bd656cf56c75ddf45a47e628d0ff1db1

[SIL] Don't print availability for unreachable/unavailable functions

view details

Alexis Laferrière

commit sha c79d5cfbd6952c5dc141a24db10a87d548bc5f4f

[Sema] Still use the current minimum deployment target as fallback

view details

Alexis Laferrière

commit sha 25c9ddd7c817d4dee5a1643cc0fc32f3cf833af2

[Sema] Prioritize unavailability check for protocol witnesses The errors on explicit unavailability are more precise than those on availablity version. Make sure we prioritize the unavailability ones first.

view details

Alexis Laferrière

commit sha f536a581082633e33ea8849b7f1d2f9b0d816c6c

[Sema] Silence an inconsistent availability error for the stdlib Don't raise the error availability_decl_more_than_enclosing in the context is unavailable and if read in a swiftinterface file. This error was present in the stdlib in 5.3 without side effects so we still want to accept it.

view details

Alexis Laferrière

commit sha 429017fc7acc303d70c6251eec7c59c97255fa96

[ClangImporter] Import unavailable decls as unavailable

view details

Alexis Laferrière

commit sha d2343f23a4d14b37f1f603ae13e3421fb5455df4

[Sema] Create a new TypeRefinementContext only for explicit inlinables

view details

Alexis Laferrière

commit sha 1ca852e77a00bf8323494d7445d054ea28466b99

[Sema] Accept unavailable constructors override in unavailable types Preserve the old behavior of accepted unavailable override of constructors as this change would be source breaking.

view details

Alexis Laferrière

commit sha fca7d36cb42b044b1179254d6e38f2b8a263eeed

[Sema] Use the deployment target as minimum OS version in swiftinterfaces Preserve the previous behavior when parsing swiftinterfaces as the Swift stdlib for Swift 5.3 and a few other swiftinterfaces in Xcode 12.0 had issues that would now be reported as errors.

view details

Anthony Latsis

commit sha 826f17e53422d284edeeaf7ed6f13a122cd10f27

Decouple detection of «Self ==» constraints from SelfReferenceKind

view details

Anthony Latsis

commit sha 4ee517f65cded3bcfc707ed277113165db486167

AST: Refactor SelfReferenceKind in preparation for #33767 This will enable us to allow members containing references to Self or associated types only in covariant position to be used on an existential

view details

Erik Eckstein

commit sha 77f16471951fbcdf0bba9929b8e6d5d9228e32f6

RCIdentityAnalysis: some refactoring to improve clarity. NFC.

view details

Arnold Schwaighofer

commit sha b994bf319177ed07ab84402ec6e89590cbfdd5cd

Add support for `_specialize(exported: true, ...)` This attribute allows to define a pre-specialized entry point of a generic function in a library. The following definition provides a pre-specialized entry point for `genericFunc(_:)` for the parameter type `Int` that clients of the library can call. ``` @_specialize(exported: true, where T == Int) public func genericFunc<T>(_ t: T) { ... } ``` Pre-specializations of internal `@inlinable` functions are allowed. ``` @usableFromInline internal struct GenericThing<T> { @_specialize(exported: true, where T == Int) @inlinable internal func genericMethod(_ t: T) { } } ``` There is syntax to pre-specialize a method from a different module. ``` import ModuleDefiningGenericFunc @_specialize(exported: true, target: genericFunc(_:), where T == Double) func prespecialize_genericFunc(_ t: T) { fatalError("dont call") } ``` Specially marked extensions allow for pre-specialization of internal methods accross module boundries (respecting `@inlinable` and `@usableFromInline`). ``` import ModuleDefiningGenericThing public struct Something {} @_specializeExtension extension GenericThing { @_specialize(exported: true, target: genericMethod(_:), where T == Something) func prespecialize_genericMethod(_ t: T) { fatalError("dont call") } } ``` rdar://64993425

view details

Arnold Schwaighofer

commit sha 2a2cf91dcdf3fd5e50624eebfd3a0dc57b50ae0a

Add support for marking a _specialize attribute as SPI ``` @_specialize(exported: true, spi: SPIGroupName, where T == Int) public func myFunc() { } ``` The specialized entry point is only visible for modules that import using `_spi(SPIGroupName) import ModuleDefiningMyFunc `. rdar://64993425

view details

Arnold Schwaighofer

commit sha d6d79c66aa9bfa484547fa3be568d09bf21054bf

Merge two fields into a PointerUnion in SILDeclRef to save space

view details

Slava Pestov

commit sha ac116cf56a512981939654babc80914ff63b82cf

Parse: Remove AlreadyHandledDecls set

view details

push time in 9 days

push eventartemcm/swift

Michael Gottesman

commit sha d3e6ffdbad9ed2af857508891a4530b7f11d4c6e

[lldb-toolbox] Add the ability to disassemble-to-file a specific function from a target without running the target. The routine already supports dumping the assembly to file if we are at a breakpoint using the current frame. This adds a -n option so one can without running just dump the assembly to a file of a specific function in a binary.

view details

Mike Ash

commit sha 630aff7b19b80f29445b645424e20fd1bb6bd551

[Runtime] Change SimpleGlobalCache to use ConcurrentReadableHashMap instead of ConcurrentMap. This gives us faster lookups and a small advantage in memory usage. Most of these maps need stable addresses for their entries, so we add a level of indirection to ConcurrentReadableHashMap for these cases to accommodate that. This costs some extra memory, but it's still a net win. A new StableAddressConcurrentReadableHashMap type handles this indirection and adds a convenience getOrInsert to take advantage of it. ConcurrentReadableHashMap is tweaked to avoid any global constructors or destructors when using it as a global variable. ForeignWitnessTables does not need stable addresses and it now uses ConcurrentReadableHashMap directly. rdar://problem/70056398

view details

Alexis Laferrière

commit sha e61ffea42c943044fe4fc8c35d5040bc8815e420

[Sema] Check availability in inlinable code using the explicit version Inlinable functions can be inlined in clients with a lower OS target version than the framework defining the function. For this reason, the availability in inlinable functions should always be checked using the explicit introduction OS version as lower bound and not the minimum deployment version. rdar://problem/67975153

view details

Alexis Laferrière

commit sha 53e04cb39db86d890ff674b775a5dbda47e9d599

[Sema] Test explicit versions in TypeRefinementContext

view details

Alexis Laferrière

commit sha 2f182c2b785f5f7b68ee756d1474f21f3050ba67

[Sema] Consider unavailable functions as being unreachable This has the effect of rejecting unavailable overrides to available methods in a similar way as overrides that are less available than the introduction are rejected.

view details

Alexis Laferrière

commit sha 39ee5916bd656cf56c75ddf45a47e628d0ff1db1

[SIL] Don't print availability for unreachable/unavailable functions

view details

Alexis Laferrière

commit sha c79d5cfbd6952c5dc141a24db10a87d548bc5f4f

[Sema] Still use the current minimum deployment target as fallback

view details

Alexis Laferrière

commit sha 25c9ddd7c817d4dee5a1643cc0fc32f3cf833af2

[Sema] Prioritize unavailability check for protocol witnesses The errors on explicit unavailability are more precise than those on availablity version. Make sure we prioritize the unavailability ones first.

view details

Alexis Laferrière

commit sha f536a581082633e33ea8849b7f1d2f9b0d816c6c

[Sema] Silence an inconsistent availability error for the stdlib Don't raise the error availability_decl_more_than_enclosing in the context is unavailable and if read in a swiftinterface file. This error was present in the stdlib in 5.3 without side effects so we still want to accept it.

view details

Alexis Laferrière

commit sha 429017fc7acc303d70c6251eec7c59c97255fa96

[ClangImporter] Import unavailable decls as unavailable

view details

Alexis Laferrière

commit sha d2343f23a4d14b37f1f603ae13e3421fb5455df4

[Sema] Create a new TypeRefinementContext only for explicit inlinables

view details

Alexis Laferrière

commit sha 1ca852e77a00bf8323494d7445d054ea28466b99

[Sema] Accept unavailable constructors override in unavailable types Preserve the old behavior of accepted unavailable override of constructors as this change would be source breaking.

view details

Alexis Laferrière

commit sha fca7d36cb42b044b1179254d6e38f2b8a263eeed

[Sema] Use the deployment target as minimum OS version in swiftinterfaces Preserve the previous behavior when parsing swiftinterfaces as the Swift stdlib for Swift 5.3 and a few other swiftinterfaces in Xcode 12.0 had issues that would now be reported as errors.

view details

Anthony Latsis

commit sha 826f17e53422d284edeeaf7ed6f13a122cd10f27

Decouple detection of «Self ==» constraints from SelfReferenceKind

view details

Anthony Latsis

commit sha 4ee517f65cded3bcfc707ed277113165db486167

AST: Refactor SelfReferenceKind in preparation for #33767 This will enable us to allow members containing references to Self or associated types only in covariant position to be used on an existential

view details

Erik Eckstein

commit sha 77f16471951fbcdf0bba9929b8e6d5d9228e32f6

RCIdentityAnalysis: some refactoring to improve clarity. NFC.

view details

Arnold Schwaighofer

commit sha b994bf319177ed07ab84402ec6e89590cbfdd5cd

Add support for `_specialize(exported: true, ...)` This attribute allows to define a pre-specialized entry point of a generic function in a library. The following definition provides a pre-specialized entry point for `genericFunc(_:)` for the parameter type `Int` that clients of the library can call. ``` @_specialize(exported: true, where T == Int) public func genericFunc<T>(_ t: T) { ... } ``` Pre-specializations of internal `@inlinable` functions are allowed. ``` @usableFromInline internal struct GenericThing<T> { @_specialize(exported: true, where T == Int) @inlinable internal func genericMethod(_ t: T) { } } ``` There is syntax to pre-specialize a method from a different module. ``` import ModuleDefiningGenericFunc @_specialize(exported: true, target: genericFunc(_:), where T == Double) func prespecialize_genericFunc(_ t: T) { fatalError("dont call") } ``` Specially marked extensions allow for pre-specialization of internal methods accross module boundries (respecting `@inlinable` and `@usableFromInline`). ``` import ModuleDefiningGenericThing public struct Something {} @_specializeExtension extension GenericThing { @_specialize(exported: true, target: genericMethod(_:), where T == Something) func prespecialize_genericMethod(_ t: T) { fatalError("dont call") } } ``` rdar://64993425

view details

Arnold Schwaighofer

commit sha 2a2cf91dcdf3fd5e50624eebfd3a0dc57b50ae0a

Add support for marking a _specialize attribute as SPI ``` @_specialize(exported: true, spi: SPIGroupName, where T == Int) public func myFunc() { } ``` The specialized entry point is only visible for modules that import using `_spi(SPIGroupName) import ModuleDefiningMyFunc `. rdar://64993425

view details

Arnold Schwaighofer

commit sha d6d79c66aa9bfa484547fa3be568d09bf21054bf

Merge two fields into a PointerUnion in SILDeclRef to save space

view details

Slava Pestov

commit sha ac116cf56a512981939654babc80914ff63b82cf

Parse: Remove AlreadyHandledDecls set

view details

push time in 9 days

push eventartemcm/swift-package-manager

Saleem Abdulrasool

commit sha c48ac378926323d30028d1d3d93327a5769ef354

Workspace: remove unnecessary flags on Windows This cleans up the unnecessary flags now that they are not absolutely required. This will break compatibility with older releases, however, because there is no current stable release on Windows with swift-package-manager support, this is acceptable.

view details

Owen Voorhees

commit sha 6482e5c338ea480f4ecef727f8828c3cb437210f

Avoid switching over SwiftDriver.VirtualPath

view details

Max Desiatov

commit sha 1a75dc088967adae424f342c552d4b378341b5bf

NFC: clarify Target.publicHeadersPath comment (#2979) The doc comment doesn't specify that the value of `publicHeadersPath` should be relative to the value specified in `path`.

view details

Max Desiatov

commit sha 4c4476f189ee9abcfe3c3ffed737a48f9a7641ef

NFC: Fix typos in PackageLoading (#2977) The sentence in the second paragraph of `README.md` is unfinished. I'm not sure how it was supposed to look originally, so just cleaning it up as is.

view details

Saleem Abdulrasool

commit sha 73bc647d3ef3e2454d50014be1ff3ef17ccd7ee6

Merge pull request #2953 from compnerd/cleanup Workspace: remove unnecessary flags on Windows

view details

Doug Gregor

commit sha 49cfc46bc5defd3ce8e0c0261e3e2cb475bcdb91

Merge pull request #2962 from owenv/avoid-switch Avoid switching over SwiftDriver.VirtualPath

view details

push time in 9 days

push eventartemcm/swift-driver

Artem Chikin

commit sha adc732c4558766bcb9988dc8606a13c6cb2066a6

Remove extra option to print explicit dependency build jobs. Just using `-driver-print-jobs` is fine.

view details

David Ungar

commit sha 55ed2e7712bdbe99c8630e40a66d970fb0350cd2

Move JobTracker.swift to FileTracker.swift

view details

Artem Chikin

commit sha b9866b7410effe062ebc6a556ad7f52ae3044c78

Merge pull request #294 from artemcm/RemoveExtraPrinter Remove extra option to print explicit dependency build jobs.

view details

Xi Ge

commit sha c37e79db75ef5693e0806dff833d46cd79d05e03

Consider all inputs when deciding whether supplementary output file map will be used rdar://70221742

view details

Xi Ge

commit sha 06e389e548c307f162b5699f1b606c3709bdad00

Merge pull request #303 from nkcsgexi/70221742 Consider all inputs when deciding whether supplementary output file map will be used

view details

David Ungar

commit sha aa4f9a838cc7bf9dc0836fc3244d707415c25305

Rename jobTracker to fileTracker, redo ModuleDependencyGraph

view details

David Ungar

commit sha 6b338155e602ccc8d110b7b23157297f5cd71d0c

Fix two blemishes

view details

Xi Ge

commit sha 79d4306d2394c7e550daed5a95c740fbb831d7d4

Properly handle input file names after DashDash rdar://70260637

view details

Xi Ge

commit sha d33dfcc0ced17601d230d65a0769f7b3056a27c8

Merge pull request #305 from nkcsgexi/testDashDashPassingDownInput Properly handle input file names after DashDash

view details

David Ungar

commit sha 85e9701f092b83bc657827357f42e64f81f9aea0

Replayce FileTracker.swift with BidirectionalMap.swift

view details

David Ungar

commit sha 16829d1d399b429508dce09c7e8890448dee600c

Merge pull request #304 from davidungar/incremental-10-11b Prepare for scheduling first wave.

view details

push time in 9 days

push eventapple/swift

Artem Chikin

commit sha a09ae489994d1d3f9e7879fc1493d97e28e3de5d

[Dependency Scanner] Always add NonPathCommandLine arguments from Clang scan-deps result When building a set of command-line options required to build a Clang module, also add `NonPathCommandLine` from Clang's `ModuleDeps`. These flags are mandatory in order to build modules discovered by the scanner. Resolves rdar://70212660

view details

Artem Chikin

commit sha 55c39c13e58a624f253ff703fe27091d9bae5fb2

Merge pull request #34291 from artemcm/NeverForgetAnArgument [Dependency Scanner] Always add NonPathCommandLine arguments from Clang scan-deps result

view details

push time in 9 days

PR merged apple/swift

[Dependency Scanner] Always add NonPathCommandLine arguments from Clang scan-deps result

When building a set of command-line options required to build a Clang module, also add NonPathCommandLine from Clang's ModuleDeps. These flags are mandatory in order to build modules discovered by the scanner. For example, they will include -fsystem-module for system modules, which will then alter ClangImporter's behaviour for such modules.

This is a part of the solution for: rdar://70212660

+14 -1

4 comments

3 changed files

artemcm

pr closed time in 9 days

PR opened apple/swift

Reviewers
[Clang Importer] Set IsSystem module flag for Clang input files when precompiling a clang module

This flag is important when we are pre-building system modules to be loaded later in Explicit Module Builds.

+3 -3

0 comment

1 changed file

pr created time in 9 days

create barnchartemcm/swift

branch : PreCompileSystemPCMs

created branch time in 9 days

pull request commentapple/swift

[Dependency Scanner] Always add NonPathCommandLine arguments from Clang scan-deps result

@swift-ci please test Linux Platform

artemcm

comment created time in 9 days

PullRequestReviewEvent

pull request commentapple/swift

[Dependency Scanner] Always add NonPathCommandLine arguments from Clang scan-deps result

@swift-ci please smoke test

artemcm

comment created time in 10 days

pull request commentapple/swift

[Dependency Scanner] Always add NonPathCommandLine arguments from Clang scan-deps result

@swift-ci please test

artemcm

comment created time in 10 days

PR opened apple/swift

Reviewers
[Dependency Scanner] Always add NonPathCommandLine arguments from Clang scan-deps result

When building a set of command-line options required to build a Clang module, also add NonPathCommandLine from Clang's ModuleDeps. These flags are mandatory in order to build modules discovered by the scanner. For example, they will include -fsystem-module for system modules, which will then alter ClangImporter's behaviour for such modules.

This is a part of the solution for: rdar://70212660

+14 -1

0 comment

3 changed files

pr created time in 10 days

push eventartemcm/swift

Alexey Komnin

commit sha 4fa17bf59774ae6543a33b1a29f01320705f4dfe

SR-12022: refactor LiteralExpr to combine common initializer code

view details

Mishal Shah

commit sha 2324aceec85904e20c5a5fd6ca097c87b854673e

Update the Apple Watch Simulator to Series 5

view details

Daniel Rodríguez Troitiño

commit sha b047f9e25277f3180b3d844b975b10023556bc45

[windows] Provide %long-tmp in Windows for extended length temp paths. In Windows %t might end up very close to the maximum path length of 260 characters. It is possible to use extended lenght paths with a \\?\ prefix. The changes introduce %long-tmp for cases that the test suite is going over those limits and need a hint in Windows that the path might be long. It expands to the same as %t in other platforms. This should fix the test/Misc/stats_dir_profiler.swift in the Windows VS 2017 CI machines and hopefully not affect anything else.

view details

Simon Evans

commit sha 8c3081c750f2b22075e9bb2efc8ab3647996b7b8

test: Remove duplicate test for -static-executable - test/Driver/static-executable-linux.swift is duplicated by test/Driver/static-executable.swift so remove it. - Additionally, test/Driver/static-executable-linux.swift uses 'file' instead of 'lvm-readelf' to detect if the executable is statically linked and this breaks on Centos7.

view details

Artem Chikin

commit sha f9d6c6a6196751b36e8efed736ba4d4ebae3a526

[Dependency Scanner] Refactor ModuleDependencies to represent binary-only Swift modules explicitly This matches the behavior of the current client (`swift-driver`) and reduces ambiguity in how the nodes in the graph are to be treated. Swift dependencies with a textual interface, for example, must be built into a binary module by clients. Swift dependencies without a textual interface, with only a binary module, are to be used directly, without any up-to-date checks. Note, this is distinct from Swift dependencies that have a textual interface, for which we also detect potential pre-build binary module candidates. Those are still reported in the `details` field of textual Swift dependencies as `prebuiltModuleCandidates`.

view details

Nate Chandler

commit sha 6fce6d9363dee7c3675f94635453a46507e26821

[Async CC] Pull poly params from entry point emission. Previously, EmitPolymorphicParameters dealt directly with an Explosion from which it pulled values. In one place, there was a conditional check for async which handled some cases. There was however another place where the polymorphic parameter was pulled directly from the explosion. That missed case resulted in attempting to pull a polymorphic parameter directly from an Explosion which contains only a %swift.context* per the async calling convention. Here, those parameters are now pulled from an EntryPointArgumentEmission subclasses of which are able to provide the relevant definition of what pulling a parameter means. rdar://problem/70144083

view details

Brent Royal-Gordon

commit sha 04606d5424e01b0e29d1450bb851e99a9ae6ca4e

Merge pull request #34275 from spevans/pr_remove_duplicate_test test: Remove duplicate test for -static-executable

view details

Pavel Yaskevich

commit sha 64d446582b7b49ef8180bb292d324eef74bbb16d

Merge pull request #34132 from Interfere/SR-12022-LiteralExpr-refactoring SR-12022: refactor LiteralExpr to combine common initializer code

view details

Slava Pestov

commit sha ac116cf56a512981939654babc80914ff63b82cf

Parse: Remove AlreadyHandledDecls set

view details

Mishal Shah

commit sha 39ef28adc2c613e7d22ea14cff79418d687de28b

Merge pull request #34263 from apple/shahmishal/update-watch-to-series-5 Update the Apple Watch Simulator to Series 5

view details

Rintaro Ishizaki

commit sha d9963596eafeceb7d4c8ddae68e64af1797e03bd

[Parse] Parse opaque result types in closure signature position 'canParseType()' didn't use to handle 'some'. Also, use 'isContexttualKeyword("some")' for checking 'some' keyword. https://bugs.swift.org/browse/SR-10769

view details

nate-chandler

commit sha c9115dc7c51ccd9bfbed1dc8742c0d863cee5c19

Merge pull request #34277 from nate-chandler/concurrency/irgen/thread-emission-through-emit-polymorphic [Async CC] Pull polymorphic parameters from entry point emission.

view details

Saleem Abdulrasool

commit sha edef3d6ab7edc243060cbda7c78b7976e7f1708f

Merge pull request #34271 from drodriguez/windows-long-tmp-path [windows] Provide %long-tmp in Windows for extended length temp paths.

view details

Rintaro Ishizaki

commit sha 54fc26f6bda136b7ecf0cdc11dfd62ac088efdba

Merge pull request #34282 from rintaro/parse-opaque-closure [Parse] Parse opaque result types in closure signature position

view details

Artem Chikin

commit sha 3221734e7b8ddc043d0314b7e9b13b272ba7248a

Merge pull request #34244 from artemcm/RefactorScannerBinaryDependencies [Dependency Scanner] Refactor ModuleDependencies to represent binary-only Swift modules explicitly

view details

Slava Pestov

commit sha 0b456ba795f6e9aa25e1910a8bcad901567943c6

Merge pull request #34283 from slavapestov/small-parser-cleanup Parse: Remove AlreadyHandledDecls set

view details

Artem Chikin

commit sha a09ae489994d1d3f9e7879fc1493d97e28e3de5d

[Dependency Scanner] Always add NonPathCommandLine arguments from Clang scan-deps result When building a set of command-line options required to build a Clang module, also add `NonPathCommandLine` from Clang's `ModuleDeps`. These flags are mandatory in order to build modules discovered by the scanner. Resolves rdar://70212660

view details

push time in 10 days

PullRequestReviewEvent

Pull request review commentapple/swift-driver

Prepare for scheduling first wave.

+//===------------------ FileTracker.swift ---------------------------------===//+//+// This source file is part of the Swift.org open source project+//+// Copyright (c) 2020 Apple Inc. and the Swift project authors+// Licensed under Apache License v2.0 with Runtime Library Exception+//+// See https://swift.org/LICENSE.txt for license information+// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors+//+//===----------------------------------------------------------------------===//++extension ModuleDependencyGraph {+  // TODO: Incremental, check the relationship between batching and incremental compilation+  // Must delay batching until *after* incremental decisions++  ///Since the rest of the driver trucks in jobs, the correspondence must be tracked+  @_spi(Testing) public struct FileTracker {++    /// Keyed by swiftdeps filename, so we can get back to source files.+    private(set) var sourceFilesBySwiftDeps: [SwiftDeps: TypedVirtualPath] = [:]+    private(set) var swiftDepsBySourceFile: [TypedVirtualPath: SwiftDeps] = [:]+++    @_spi(Testing) public mutating func register(source: TypedVirtualPath,+                                                 swiftDeps: SwiftDeps) {+      sourceFilesBySwiftDeps[swiftDeps] = source+      swiftDepsBySourceFile[source] = swiftDeps+    }++    @_spi(Testing) public func swiftDeps(for sourceFile: TypedVirtualPath+    ) -> SwiftDeps {+      guard let swiftDeps = swiftDepsBySourceFile[sourceFile]+      else {+      fatalError("\(sourceFile) was not registered")

Indentation slightly off.

        fatalError("\(sourceFile) was not registered")
davidungar

comment created time in 10 days

Pull request review commentapple/swift-driver

Prepare for scheduling first wave.

 extension Diagnostic.Message {     )   }   static func remark_incremental_compilation_disabled(because why: String) -> Diagnostic.Message {-    .remark("incremental compilation has been disabled, because \(why).\n")+    .remark("Incremental compilation has been disabled, because \(why)")+  }+  static func remark_incremental_decision(because why: String) -> Diagnostic.Message {+    .remark("Incremental compilation decision: \(why)")+  }+}+++// MARK: - Scheduling the first wave++/// It is convenient to record the inputs to be compiled immediately by returning the inputs to be skipped until+/// further notice.+extension IncrementalCompilationState {+  private static func calculateScheduledAndSkippedInputs(+    buildRecordInfo: BuildRecordInfo,+    moduleDependencyGraph: ModuleDependencyGraph,+    outOfDateBuildRecord: BuildRecord,+    reportIncrementalDecision: (String) -> Void,+    reportIncrementalQueuing: (String, VirtualPath) -> Void+  ) -> (scheduled: Set<TypedVirtualPath>, skipped: Set<TypedVirtualPath>) {++    let changedInputs: [(TypedVirtualPath, InputInfo.Status)] = computeChangedInputs(+      buildRecordInfo: buildRecordInfo,+      moduleDependencyGraph: moduleDependencyGraph,+      outOfDateBuildRecord: outOfDateBuildRecord,+      reportIncrementalDecision: reportIncrementalDecision+    )+    let externalDependents = computeExternallyDependentInputs(+      buildTime: outOfDateBuildRecord.buildTime,+      fileSystem: buildRecordInfo.fileSystem,+      moduleDependencyGraph: moduleDependencyGraph,+      reportIncrementalDecision: reportIncrementalDecision)+    // Combine the first to obtain the inputs that definitely must be recompiled.+    let inputsRequiringCompilation = Set(changedInputs.map {$0.0} + externalDependents)+    for scheduledInput in inputsRequiringCompilation.sorted(by: {$0.file.name < $1.file.name}) {+      reportIncrementalQueuing("Queuing (initial):", scheduledInput.file)+    }++    // Sometimes, schedule inputs that depend on the changed inputs for the+    // first wave, even though they may not require compilation.+    // Any such inputs missed, will be found by the rereading of swiftDeps+    // as each first wave job finished.+    let speculativelyScheduledInputs = computeDependentsToSpeculativelySchedule(+      changedInputs: changedInputs,+      moduleDependencyGraph: moduleDependencyGraph,+      reportIncrementalDecision: reportIncrementalDecision)+    let additions = inputsRequiringCompilation.subtracting(speculativelyScheduledInputs)+    for addition in additions.sorted(by: {$0.file.name < $1.file.name}) {+      reportIncrementalQueuing("Queueing (dependent):", addition.file)+    }+    let scheduledInputs = inputsRequiringCompilation.union(additions)++    let skippedInputs = Set(buildRecordInfo.compilationInputModificationDates.keys)+      .subtracting(scheduledInputs)+    for skippedInput in skippedInputs.sorted(by: {$0.file.name < $1.file.name})  {+      reportIncrementalQueuing("Skipping:", skippedInput.file)+    }+    return (scheduled: scheduledInputs, skipped: skippedInputs)+  }++  /// Find the inputs that have changed since last compilation, or were marked as needed a builid

Typo:

  /// Find the inputs that have changed since last compilation, or were marked as needed a build
davidungar

comment created time in 10 days

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentapple/swift

[unittests] Add a fixture for Sema unit tests

+//===--- SemaFixture.h - Helper for setting up Sema context -----*- C++ -*-===//+//+// This source file is part of the Swift.org open source project+//+// Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors+// Licensed under Apache License v2.0 with Runtime Library Exception+//+// See https://swift.org/LICENSE.txt for license information+// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors+//+//===----------------------------------------------------------------------===//++#include "swift/AST/ASTContext.h"+#include "swift/AST/DiagnosticEngine.h"+#include "swift/AST/Module.h"+#include "swift/AST/SourceFile.h"+#include "swift/AST/Type.h"+#include "swift/Basic/LangOptions.h"+#include "swift/Basic/Platform.h"+#include "swift/Basic/SourceManager.h"+#include "llvm/ADT/StringRef.h"+#include "llvm/ADT/SmallString.h"+#include "llvm/Support/Host.h"+#include "llvm/Support/Path.h"+#include "gtest/gtest.h"+#include <string>++namespace swift {+namespace unittest {++class SemaTestBase : public ::testing::Test {+public:+  LangOptions LangOpts;+  TypeCheckerOptions TypeCheckerOpts;+  SearchPathOptions SearchPathOpts;+  ClangImporterOptions ClangImporterOpts;+  SourceManager SourceMgr;+  DiagnosticEngine Diags;++  SemaTestBase() : Diags(SourceMgr) {+    LangOpts.Target = llvm::Triple(llvm::sys::getProcessTriple());++    llvm::SmallString<128> libDir(SWIFTLIB_DIR);+    llvm::sys::path::append(libDir, getPlatformNameForTriple(LangOpts.Target));

There is a piece of code in lit.cfg that computes the stdlib path (including on Windows) that seem to work: https://github.com/apple/swift/blob/main/test/lit.cfg#L1495

xedin

comment created time in 10 days

PullRequestReviewEvent

Pull request review commentapple/swift

[unittests] Add a fixture for Sema unit tests

+//===--- SemaFixture.h - Helper for setting up Sema context -----*- C++ -*-===//+//+// This source file is part of the Swift.org open source project+//+// Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors+// Licensed under Apache License v2.0 with Runtime Library Exception+//+// See https://swift.org/LICENSE.txt for license information+// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors+//+//===----------------------------------------------------------------------===//++#include "swift/AST/ASTContext.h"+#include "swift/AST/DiagnosticEngine.h"+#include "swift/AST/Module.h"+#include "swift/AST/SourceFile.h"+#include "swift/AST/Type.h"+#include "swift/Basic/LangOptions.h"+#include "swift/Basic/Platform.h"+#include "swift/Basic/SourceManager.h"+#include "llvm/ADT/StringRef.h"+#include "llvm/Support/Host.h"+#include "gtest/gtest.h"+#include <string>++namespace swift {+namespace unittest {++class SemaTestBase : public ::testing::Test {+public:+  LangOptions LangOpts;+  TypeCheckerOptions TypeCheckerOpts;+  SearchPathOptions SearchPathOpts;+  ClangImporterOptions ClangImporterOpts;+  SourceManager SourceMgr;+  DiagnosticEngine Diags;++  SemaTestBase() : Diags(SourceMgr) {+    LangOpts.Target = llvm::Triple(llvm::sys::getProcessTriple());++    std::string libDir = SWIFTLIB_DIR;+    std::string platform = getPlatformNameForTriple(LangOpts.Target).str();++    SearchPathOpts.RuntimeResourcePath = libDir;+    SearchPathOpts.RuntimeLibraryPaths.push_back(libDir + "/" + platform);

This path separator will cause you trouble on Windows. LLVM must have a library for this somewhere, I am sure...

xedin

comment created time in 10 days

PullRequestReviewEvent
PullRequestReviewEvent

push eventartemcm/swift

Alexey Komnin

commit sha 4fa17bf59774ae6543a33b1a29f01320705f4dfe

SR-12022: refactor LiteralExpr to combine common initializer code

view details

Mishal Shah

commit sha 2324aceec85904e20c5a5fd6ca097c87b854673e

Update the Apple Watch Simulator to Series 5

view details

Daniel Rodríguez Troitiño

commit sha b047f9e25277f3180b3d844b975b10023556bc45

[windows] Provide %long-tmp in Windows for extended length temp paths. In Windows %t might end up very close to the maximum path length of 260 characters. It is possible to use extended lenght paths with a \\?\ prefix. The changes introduce %long-tmp for cases that the test suite is going over those limits and need a hint in Windows that the path might be long. It expands to the same as %t in other platforms. This should fix the test/Misc/stats_dir_profiler.swift in the Windows VS 2017 CI machines and hopefully not affect anything else.

view details

Simon Evans

commit sha 8c3081c750f2b22075e9bb2efc8ab3647996b7b8

test: Remove duplicate test for -static-executable - test/Driver/static-executable-linux.swift is duplicated by test/Driver/static-executable.swift so remove it. - Additionally, test/Driver/static-executable-linux.swift uses 'file' instead of 'lvm-readelf' to detect if the executable is statically linked and this breaks on Centos7.

view details

Artem Chikin

commit sha f9d6c6a6196751b36e8efed736ba4d4ebae3a526

[Dependency Scanner] Refactor ModuleDependencies to represent binary-only Swift modules explicitly This matches the behavior of the current client (`swift-driver`) and reduces ambiguity in how the nodes in the graph are to be treated. Swift dependencies with a textual interface, for example, must be built into a binary module by clients. Swift dependencies without a textual interface, with only a binary module, are to be used directly, without any up-to-date checks. Note, this is distinct from Swift dependencies that have a textual interface, for which we also detect potential pre-build binary module candidates. Those are still reported in the `details` field of textual Swift dependencies as `prebuiltModuleCandidates`.

view details

Nate Chandler

commit sha 6fce6d9363dee7c3675f94635453a46507e26821

[Async CC] Pull poly params from entry point emission. Previously, EmitPolymorphicParameters dealt directly with an Explosion from which it pulled values. In one place, there was a conditional check for async which handled some cases. There was however another place where the polymorphic parameter was pulled directly from the explosion. That missed case resulted in attempting to pull a polymorphic parameter directly from an Explosion which contains only a %swift.context* per the async calling convention. Here, those parameters are now pulled from an EntryPointArgumentEmission subclasses of which are able to provide the relevant definition of what pulling a parameter means. rdar://problem/70144083

view details

Brent Royal-Gordon

commit sha 04606d5424e01b0e29d1450bb851e99a9ae6ca4e

Merge pull request #34275 from spevans/pr_remove_duplicate_test test: Remove duplicate test for -static-executable

view details

Pavel Yaskevich

commit sha 64d446582b7b49ef8180bb292d324eef74bbb16d

Merge pull request #34132 from Interfere/SR-12022-LiteralExpr-refactoring SR-12022: refactor LiteralExpr to combine common initializer code

view details

Mishal Shah

commit sha 39ef28adc2c613e7d22ea14cff79418d687de28b

Merge pull request #34263 from apple/shahmishal/update-watch-to-series-5 Update the Apple Watch Simulator to Series 5

view details

Rintaro Ishizaki

commit sha d9963596eafeceb7d4c8ddae68e64af1797e03bd

[Parse] Parse opaque result types in closure signature position 'canParseType()' didn't use to handle 'some'. Also, use 'isContexttualKeyword("some")' for checking 'some' keyword. https://bugs.swift.org/browse/SR-10769

view details

nate-chandler

commit sha c9115dc7c51ccd9bfbed1dc8742c0d863cee5c19

Merge pull request #34277 from nate-chandler/concurrency/irgen/thread-emission-through-emit-polymorphic [Async CC] Pull polymorphic parameters from entry point emission.

view details

Saleem Abdulrasool

commit sha edef3d6ab7edc243060cbda7c78b7976e7f1708f

Merge pull request #34271 from drodriguez/windows-long-tmp-path [windows] Provide %long-tmp in Windows for extended length temp paths.

view details

Rintaro Ishizaki

commit sha 54fc26f6bda136b7ecf0cdc11dfd62ac088efdba

Merge pull request #34282 from rintaro/parse-opaque-closure [Parse] Parse opaque result types in closure signature position

view details

Artem Chikin

commit sha 3221734e7b8ddc043d0314b7e9b13b272ba7248a

Merge pull request #34244 from artemcm/RefactorScannerBinaryDependencies [Dependency Scanner] Refactor ModuleDependencies to represent binary-only Swift modules explicitly

view details

push time in 10 days

more