# Can I (disable or) know somehow that precompilation will not happen at runtime?

**URL:** https://discourse.julialang.org/t/can-i-disable-or-know-somehow-that-precompilation-will-not-happen-at-runtime/97515
**Category:** General Usage
**Created:** [April 15, 2023, 4:22pm UTC](https://discourse.julialang.org/t/can-i-disable-or-know-somehow-that-precompilation-will-not-happen-at-runtime/97515 "2023-04-15T16:22:55Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)
#### Post date: [April 15, 2023, 4:22pm UTC](https://discourse.julialang.org/t/can-i-disable-or-know-somehow-that-precompilation-will-not-happen-at-runtime/97515/1 "2023-04-15T16:22:55Z")

</div>

I was running:

```julia
pkg> test Plots

```

ad somehow my machine got unstable, with OOM, as sometimes hapens with the (parallel) precompilation. I wasn’t expecting at that point.

What I had done before was I installed Plots, and Julia started precompiling a lot of packages and I stopped it after I saw Plots had been precompiled with CTRL-C.

What would be ideal is that precompilation of a package precompiles all its dependencies first, i.e. recursively. I’m not sure if that happens, likely not seemingly.

I’m not sure if this is a problem specific to running tests, but I’m thinking, could precompile happen at any time? It would be really bad and I want to know if there’s a way to know if all (relevant) code has been precompiled already.

---

<div class="post-metadata">

### Author: ![tim.holy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tim.holy/32/52_2.png) [@tim.holy](https://discourse.julialang.org/u/tim.holy)
#### Post date: [April 15, 2023, 6:03pm UTC](https://discourse.julialang.org/t/can-i-disable-or-know-somehow-that-precompilation-will-not-happen-at-runtime/97515/2 "2023-04-15T18:03:45Z")

</div>

> What would be ideal is that precompilation of a package precompiles all its dependencies first, i.e. recursively.

That’s exactly what happens. The issue is that tests run with `--check-bounds=yes`, and that requires all the packages to be (re)compiled (it’s different generated code, not something you can flip on at runtime).

---

<div class="post-metadata">

### Author: ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)
#### Post date: [April 16, 2023, 9:16pm UTC](https://discourse.julialang.org/t/can-i-disable-or-know-somehow-that-precompilation-will-not-happen-at-runtime/97515/3 "2023-04-16T21:16:14Z")

</div>

Ok, good to know, then since code is only precompiled for one scenario (and you don’t want “fat binaries”, for two or more), is there still a way to a) disable precompilation (at least just for test, or do it one package at a time, lazily)? At least the parallel part, that is problematic.

And for the common case, non-tests, you can make sure everything is precompiled, but is there a good way to know for sure everything is? I’m a bit worried that anything can at any point trigger it. Can you somehow get a list of the packages that aren’t? Do invalidations or something make already precompield package outdated?

Is there an opt-in way to run tests with the default for bound checks? [I know why it’s not done by default, since safer…]
