Skip to content

Commit

Permalink
Merge branch 'main' into improve-resolve-build-products-performance
Browse files Browse the repository at this point in the history
  • Loading branch information
Ryu0118 committed Jul 11, 2024
2 parents 1bb3d13 + 61c5bab commit 6219b25
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions Sources/ScipioKit/DescriptionPackage.swift
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ struct DescriptionPackage {
}

extension DescriptionPackage {
func resolveBuildProducts() throws -> [BuildProduct] {
func resolveBuildProducts() throws -> OrderedSet<BuildProduct> {
let resolver = BuildProductsResolver(descriptionPackage: self)
return try resolver.resolveBuildProducts()
}
Expand All @@ -167,6 +167,11 @@ struct BuildProduct: Hashable, Sendable {
target.underlying as? ScipioBinaryModule
}

static func == (lhs: Self, rhs: Self) -> Bool {
lhs.target.name == rhs.target.name &&
lhs.package.identity == rhs.package.identity
}

func hash(into hasher: inout Hasher) {
// Important: Relevant for swift-6.0+ toolchain versions. For the versions below
// this change has no effect as SwiftPM provides its own proper `Hashable`
Expand All @@ -185,8 +190,6 @@ struct BuildProduct: Hashable, Sendable {
hasher.combine(package.identity)
}
}


private final class BuildProductsResolver {
private var buildProductsCache: [BuildProduct: Set<BuildProduct>] = [:]
let descriptionPackage: DescriptionPackage
Expand All @@ -195,7 +198,7 @@ private final class BuildProductsResolver {
self.descriptionPackage = descriptionPackage
}

func resolveBuildProducts() throws -> [BuildProduct] {
func resolveBuildProducts() throws -> OrderedSet<BuildProduct> {
let targetsToBuild = try targetsToBuild()
var products = try targetsToBuild.flatMap(resolveBuildProduct(from:))

Expand Down Expand Up @@ -232,7 +235,7 @@ private final class BuildProductsResolver {
}
}

return products.reversed()
return OrderedSet(products.reversed())
}

private func targetsToBuild() throws -> [ScipioResolvedModule] {
Expand Down

0 comments on commit 6219b25

Please sign in to comment.