Skip to content

Add synthetic modules-with-macros graph benchmarks #7466

New issue

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

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

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Apr 18, 2024

Conversation

MaxDesiatov
Copy link
Contributor

@MaxDesiatov MaxDesiatov commented Apr 17, 2024

Benchmarking modules graph is now generalized with syntheticModulesGraph function. It also uncovered a bug in the previous SyntheticModulesGraph, which didn't pass generated TargetDescriptions array to loadModulesGraph, which is fixed now.

New SyntheticModulesGraphWithMacros calls syntheticModulesGraph with includeMacros: true argument, which splits all modules in three parts: library modules, macros modules that library modules depend on, and macro dependencies that macros depend on. This allows us to track potential performance regressions in #7353.

Benchmarking modules graph is now generalized with `syntheticModulesGraph` function. It also uncovered a bug in the previous `SyntheticModulesGraph`, which didn't pass generated `TargetDescription`s array to `loadModulesGraph`, which is fixed now.

New `SyntheticModulesGraphWithMacros` calls `syntheticModulesGraph` with `includeMacros: true` argument, which splits all modules in three parts: library modules, macros modules that library modules depend on, and macro dependencies that macros depend on. This allows us to track potential performance regressions in #7353.
@MaxDesiatov MaxDesiatov requested a review from xedin April 17, 2024 17:37
@MaxDesiatov MaxDesiatov added no functional change No user-visible functional changes included performance Performance optimizations and improvements modules graph Modules dependency resolution labels Apr 17, 2024
@MaxDesiatov MaxDesiatov self-assigned this Apr 17, 2024
@MaxDesiatov MaxDesiatov changed the title Add synthetic modules graph benchmarks with macros Add synthetic modules graph with macros benchmarks Apr 17, 2024
@MaxDesiatov MaxDesiatov changed the title Add synthetic modules graph with macros benchmarks Add synthetic modules with macros graph benchmarks Apr 17, 2024
@MaxDesiatov MaxDesiatov changed the title Add synthetic modules with macros graph benchmarks Add synthetic modules-with-macros graph benchmarks Apr 17, 2024
The platform component name inference code for macOS was copied from `apple/swift` and is incorrect. We have to keep using `macosx` in `apple/swift` for backward compatibility, but we have no such restriction in SwiftPM benchmarks.
Base automatically changed from maxd/synthetic-modules-benchmark to main April 18, 2024 02:44
@bnbarham
Copy link
Contributor

Same comment re. SPI as in the other PR

…xd/macros-graph-benchmarks

# Conflicts:
#	Benchmarks/Benchmarks/PackageGraphBenchmarks/PackageGraphBenchmarks.swift
#	Benchmarks/README.md
@MaxDesiatov MaxDesiatov enabled auto-merge (squash) April 18, 2024 08:04
@MaxDesiatov
Copy link
Contributor Author

@swift-ci test

@MaxDesiatov
Copy link
Contributor Author

@swift-ci test windows

@MaxDesiatov MaxDesiatov disabled auto-merge April 18, 2024 08:14
@MaxDesiatov MaxDesiatov merged commit b556563 into main Apr 18, 2024
5 checks passed
@MaxDesiatov MaxDesiatov deleted the maxd/macros-graph-benchmarks branch April 18, 2024 10:54
furby-tm pushed a commit to wabiverse/swift-package-manager that referenced this pull request May 15, 2024
Benchmarking modules graph is now generalized with
`syntheticModulesGraph` function. It also uncovered a bug in the
previous `SyntheticModulesGraph`, which didn't pass generated
`TargetDescription`s array to `loadModulesGraph`, which is fixed now.

New `SyntheticModulesGraphWithMacros` calls `syntheticModulesGraph` with
`includeMacros: true` argument, which splits all modules in three parts:
library modules, macros modules that library modules depend on, and
macro dependencies that macros depend on. This allows us to track
potential performance regressions in
swiftlang#7353.
furby-tm pushed a commit to wabiverse/swift-package-manager that referenced this pull request May 15, 2024
Benchmarking modules graph is now generalized with
`syntheticModulesGraph` function. It also uncovered a bug in the
previous `SyntheticModulesGraph`, which didn't pass generated
`TargetDescription`s array to `loadModulesGraph`, which is fixed now.

New `SyntheticModulesGraphWithMacros` calls `syntheticModulesGraph` with
`includeMacros: true` argument, which splits all modules in three parts:
library modules, macros modules that library modules depend on, and
macro dependencies that macros depend on. This allows us to track
potential performance regressions in
swiftlang#7353.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
modules graph Modules dependency resolution no functional change No user-visible functional changes included performance Performance optimizations and improvements
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants