things
-
what we do mainly is… aggregate all the init code of all the init steps…
- there should be such aggregators in a general way (that can do caching in some way… and are just insanely FAST… for fast startups…)
- this is what obsidian does a lot (and it has quite the startup time) and i would assume other applications as well
- obsidian example: Pasted image 20250312161809.png
- you aggregate all the settings pages in the settings view
- you aggregate all the everything about plugins
- you load plugins
- mize also has this module load… where acutally it should just be an aggregation of all init code… of every module…
- but also… would just calling all the init code of modules in order… be as fast, because all init code needs to run on the same thread anyway????
-
“init system which works mostly like a build system”
- realized after this llm convo (https://www.perplexity.ai/search/i-have-an-application-framewor-_i2TqtaaQ2uqZ4l3C2V6Kw) … where Simon Peyton Jones’ Build Systems a la Carte was mentioned from which i remembered (his talk about it)[https://www.youtube.com/watch?v=BQVT6wiwCxM]… I realized that the inti system is basically a build system… and we should look at the properties of buildsystems and design accordingly (I know dynamic dependencies are important!!!)… and then all pure tasks of the init system can be cached based on the initial values (configuration provided by user (which src code to use is part of that as we know)) can be computed at compile time and the final state simply loaded (the tasks for those values decide to use the already cached thing)
- btw: TODO look if there is newer research based on this paper now…