[riot-notifications] [RIOT-OS/RIOT] Define requirements for configuration in the build system (#14027)

Kaspar Schleiser notifications at github.com
Wed May 6 10:40:49 CEST 2020


> I disagree here. IMO it is not hard to avoid circular dependencies. Nowadays, the typical programming 101 class teaches design patterns that avoid a strong coupling of modules .. Dependency hell is something that we ~want to~ **must** avoid, especially if we have a very nuanced dependency tree with a multitude of branches. Enforcing an acyclic dependency graph with a tool is IMO the correct way to go.

Spoken like coming out of programming 101. Good luck modeling RIOT's current dependencies with that.

There are quite some circular dependencies in RIOT atm. Out of my head, core depends on auto_init. auto_init depends on everything, everything depends on core. Or gnrc depends on gnrc_pktbuf, which depends on gnrc_pkt, which depends on gnrc.
There are different "kinds" of dependencies (A also selects B, A uses header of B, A uses symbols from B, ...). Some are naturally circular. I don't buy "programming 101 dictates that we have to do without".

And believe me, in practice, disallowing seemingly valid circular dependencies is a huge aspect of dependency hell.


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/RIOT-OS/RIOT/issues/14027#issuecomment-624517607
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20200506/8d447a17/attachment.htm>


More information about the notifications mailing list