Open enikao opened 8 months ago
I fear we'd open a whole can of hideous worms if we forbid circular dependencies, especially during language evolution.
At the same time: forbidding that edge case seems pretty healthy, certainly as a direct dependency. We might want to be more lenient with indirect ones.
I tend to not limit dependencies at all for now. Once we have enough experience, we might learn about useful limitations.
If language
A
dependsOn languageB
, canB
dependOnA
? Includes indirect dependencies:A
dependsOnB
dependsOnC
dependsOnA
.We know it's bad practice to have such circular dependencies, but do we want to forbid them? Some systems (e.g. MPS) can handle them to some degree.
Edge case: can
A@x
(LanguageA
versionx
) dependOnA@y
?