You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Issue #8930 describes in detail problems associated with cabal's current behaviour of querying pkg-config for versions of every installed package.
In short, this is a significant performance issue on systems which install a lot of .pc files.
These systems include Arch Linux and all source-based Unix/Linux distributions.
Various resolution strategies have been discussed in issue #8930.
One of the suggestions is that cabal could cache the information returned by pkg-config.
This solution has a problem though: because Arch and source-based distributions are rolling-release, packages are generally updated often.
Upgrading any library or application package is likely to cause changes to pkg-config database, and thus will invalidate any caches.
Depending on the user's habits, system upgrades can happen daily or even more often.
This will effectively defeat the purpose of caching.
Regardless of which strategy is chosen by cabal to optimize its package information lookup, it would be a good idea to allow the user to disable pkg-config version checks.
This feature would be a workaround while a long-term solution is being discussed and implemented.
After the long-term solution has been found, this feature can be used in exceptional situations like when a system has been misconfigured or simply if the user wants to avoid version checks.
I am asking for an option which can be specified both on command line and in a configuration file.
It would prevent cabal from querying pkg-config for any package's existence.
The user could specify whether they want cabal to assume that every possible package is present, or that every possible package is absent.
If the user chooses to "lie" that all possible packages are installed, this might lead to build failures.
This option would not prevent cabal from calling pkg-config in order to get link flags for libraries, or other such information.
The point of this option is just to prevent cabal from doing mass queries to pkg-config, which is inefficient.
The text was updated successfully, but these errors were encountered:
Upgrading any library or application package is likely to cause changes to pkg-config database, and thus will invalidate any caches.
Yeah, this is a shortcoming of #9422, and is the reason why in #9360 I chose to cache per-package rather than invalidating everything for a single change.
Issue #8930 describes in detail problems associated with cabal's current behaviour of querying pkg-config for versions of every installed package.
In short, this is a significant performance issue on systems which install a lot of .pc files.
These systems include Arch Linux and all source-based Unix/Linux distributions.
Various resolution strategies have been discussed in issue #8930.
One of the suggestions is that cabal could cache the information returned by pkg-config.
This solution has a problem though: because Arch and source-based distributions are rolling-release, packages are generally updated often.
Upgrading any library or application package is likely to cause changes to pkg-config database, and thus will invalidate any caches.
Depending on the user's habits, system upgrades can happen daily or even more often.
This will effectively defeat the purpose of caching.
Regardless of which strategy is chosen by cabal to optimize its package information lookup, it would be a good idea to allow the user to disable pkg-config version checks.
This feature would be a workaround while a long-term solution is being discussed and implemented.
After the long-term solution has been found, this feature can be used in exceptional situations like when a system has been misconfigured or simply if the user wants to avoid version checks.
I am asking for an option which can be specified both on command line and in a configuration file.
It would prevent cabal from querying pkg-config for any package's existence.
The user could specify whether they want cabal to assume that every possible package is present, or that every possible package is absent.
If the user chooses to "lie" that all possible packages are installed, this might lead to build failures.
This option would not prevent cabal from calling pkg-config in order to get link flags for libraries, or other such information.
The point of this option is just to prevent cabal from doing mass queries to pkg-config, which is inefficient.
The text was updated successfully, but these errors were encountered: