I’m using julia 1.5.3. This question is based on my curiosity of how julia works and not something that’s affecting my work.
I have several modules that I’ve written myself, and they in turn use some modules from the public registry. After I call precompile on my modules, I notice that there are multiple files in each module’s compile directory, but they all start with the same prefix. eg:
ubuntu@8b38e699432d:~/.julia/compiled/v1.5$ ls -l DataFrames/
-r--r--r-- 1 ubuntu ubuntu 5678341 Mar 16 03:46 AR9oZ_LwnbX.ji
-r--r--r-- 1 ubuntu ubuntu 5693325 Mar 16 03:37 AR9oZ_op3w6.ji
-r--r--r-- 1 ubuntu ubuntu 5655448 Mar 16 03:52 AR9oZ_sVtHX.ji
My guess is that these are incremental compiles. For each module I’ve precompiled, if it uses different features of DataFrames, then those additional features are compiled into the new .ji file.
It means that something has changed with the package or its dependencies or julia etc. It shouldn’t need to recompile otherwise. To test, I created an environment with DataFrames and it precompiled. Then I copied that to another folder, and then it used the existing precompile file.