On Thursday, 11 July 2019 at 13:51:03 UTC, Adam D. Ruppe wrote:
foundation modules (0 imports):

oh, I forgot terminal.d in here.

It is fun to combine the event loops of some of these, since I refuse to put a common interface in since that means another module. It tends to be implemented with template functions that talk to each other.

Similarly, the @scriptable annotation's canonical definition is in jsvar.d - it indicates compatibility with that (though it is mostly used through script.d, jsvar is the foundational data type for the script language, so a lot of the script's runtime logic is actually in there), but it is privately redefined as a string in a few different modules, so they work together without needing to import each other.

color.d and database.d are the two where I actually put in a new module to get a common interface. color.d because images and windows needed it, and database.d of course for those drivers.

I sometimes regret it... simpledisplay.d was so cool when it worked by itself, and now I have better techniques to decouple, but eh, it has used color.d since like 2011 now so oh well.

I also sometimes want to put in a foundational exception module. But again, it breaks my one import rule soooo yeah.

Reply via email to