This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Circular dependency with mingw64-x86_64-runtime


On 2018-05-01 16:33, Steven Penny wrote:
On Tue, 1 May 2018 13:44:45, JonY wrote:
What is the actual problem you are facing?

i already described it: when 2 things depend on each other in this way, that is
an error:

http://wikipedia.org/wiki/Circular_dependency

Nowhere does this page substantiate what you're saying; it doesn't say that the existence of a circular dependency is /ipso facto/ a form of error.

If A cannot be used unless B is also installed, and if B cannot be used unless A is also installed, then there is a cycle in the dependency graph. The packaging system must express the cycle (and handle it). This means that if a user selects A for installation, it must be automatically accompanied by an installation of B, and vice versa.

If you say that the dependency which is stated in the package system is incorrect, then you have to prove that either A or B can be usefully installed by itself. (Or even both, in which case they are independent.)

If the circular dependency is right, but unwanted, it can only be broken by making some code changes in A or B, or both (and only then changing the dependency expressions at the package level). You can't simply say, "I don't like circular dependencies; I will break any cycles in the package system dependency definitions, whether or not they reflect the underlying packages".

The only situation in which that would be justified would be that the package system is too weak to deal with circular dependencies; it gets into an infinite loop or whatever, so cycles must be avoided.

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]