diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2023-08-08 15:28:25 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2023-09-25 11:35:25 +0300 |
commit | bbf4d75525f54a41ebf38608c193f5787128c590 (patch) | |
tree | f66707abaaf18d15b339615fcfd24a56278b079a /bpkg/package.cxx | |
parent | 6f40a051db7ef6c42c4856f0608ce1dad4fcf609 (diff) |
Fix configuration negotiation in pkg-build to re-evaluate being reconfigured existing dependents
Diffstat (limited to 'bpkg/package.cxx')
-rw-r--r-- | bpkg/package.cxx | 12 |
1 files changed, 9 insertions, 3 deletions
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<path>& 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 */, |