From bbf4d75525f54a41ebf38608c193f5787128c590 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Tue, 8 Aug 2023 15:28:25 +0300 Subject: Fix configuration negotiation in pkg-build to re-evaluate being reconfigured existing dependents --- bpkg/package.cxx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'bpkg/package.cxx') diff --git a/bpkg/package.cxx b/bpkg/package.cxx index 56f4221..aca3550 100644 --- a/bpkg/package.cxx +++ b/bpkg/package.cxx @@ -296,12 +296,18 @@ namespace bpkg // The package is in at least fetched state, which means we should // be able to get its manifest. // - const optional& a (sp->archive); - + // @@ PERF We should probably implement the available package caching not + // to parse the same manifests multiple times during all that build + // plan refinement iterations. What should be the cache key? Feels like + // it should be the archive/directory path. Note that the package + // manifests can potentially differ in different external package + // directories for the same version iteration. Testing showed 6% + // speedup on tests (debug/sanitized). + // package_manifest m ( sp->state == package_state::fetched ? pkg_verify (options, - a->absolute () ? *a : db.config_orig / *a, + sp->effective_archive (db.config_orig), true /* ignore_unknown */, false /* ignore_toolchain */, false /* expand_values */, -- cgit v1.1