Meaning of "caching throughout the compilation flow"?
In Mojo documentation "integrated caching" is mentioned as a new compiler technology. For example, in Why Mojo, there is:
"This meant a programming language [...] caching throughout the compilation flow, and other features that are not supported by existing languages."
It's not clear to me what it means and I didn't find answers on the web. What does it mean? Is it "just" something like Ccache but integrated to Mojo compiler?
2 Replies
I think "caching" in that context alludes to not just incremental compilation like ccache would provide, but a whole bundle of engineering feats, this is the most technical info that's been shared so far: https://www.modular.com/blog/mojo-llvm-2023, and https://www.youtube.com/watch?v=SEwTjZvy8vw
LLVM
YouTube
2023 LLVM Dev Mtg - Mojo 🔥: A system programming language for heter...
2023 LLVM Developers' Meeting
https://llvm.org/devmtg/2023-10
------
Mojo 🔥: A system programming language for heterogenous computing
Speaker: Abdul Dakkak, Chris Lattner, Jeff Niu
------
Slides: https://llvm.org/devmtg/2023-10/slides/keynote/Mojo.pdf
-----
This talk will give an overview of Mojo 🔥, a new programming language in the Python fami...
I presume they are caching the IR transformations (MLIR and maybe LLVM IR transformations). The comment at the end of this video about CAS + MLIR ByteCode being hashable provides the basics. At least for MLIR IRs, you can serialize the IR into byte code and hash that byte code into a key you lookup in the CAS.