Skip to content

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
@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