# Changing source code file has no effect?

**URL:** <https://discourse.julialang.org/t/changing-source-code-file-has-no-effect/14184>\
**Category:** New to Julia\
**Created:** [August 28, 2018, 11:58am UTC](https://discourse.julialang.org/t/changing-source-code-file-has-no-effect/14184 "2018-08-28T11:58:56Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![tomtom](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tomtom/32/5106_2.png) [@tomtom](https://discourse.julialang.org/u/tomtom)\
**Post date:** [August 28, 2018, 11:58am UTC](https://discourse.julialang.org/t/changing-source-code-file-has-no-effect/14184/1 "2018-08-28T11:58:56Z")

</div>

Hello, maybe a dump question here.

I wanna experiment something that requires some changes in source code. Here I’m using Mac and the files are located in:

> /Applications/Julia-0.7.app/Contents/Resources/julia/share/julia/stdlib/v0.7/InteractiveUtils/src

Somehow after modifying the files (after backup). This is nothing changed in a restarted Julia? My concept is that everything in Julia are defined in these `.jl` files.

Any suggestions? Thanks.

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [August 28, 2018, 12:00pm UTC](https://discourse.julialang.org/t/changing-source-code-file-has-no-effect/14184/2 "2018-08-28T12:00:33Z")

</div>

> [@tomtom](#):
>
> Somehow after modifying the files (after backup). This is nothing changed in a restarted Julia? My concept is that everything in Julia are defined in these `.jl` files.

Code in the `stdlib` is compiled into the Julia system image, so modifying the source code will not have any affect unless you rebuild Julia.

---

<div class="post-metadata">

**Author:** ![tomtom](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tomtom/32/5106_2.png) [@tomtom](https://discourse.julialang.org/u/tomtom)\
**Post date:** [August 28, 2018, 12:08pm UTC](https://discourse.julialang.org/t/changing-source-code-file-has-no-effect/14184/3 "2018-08-28T12:08:50Z")

</div>

oh my god 😢

---

<div class="post-metadata">

**Author:** ![mauro3](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mauro3/32/292_2.png) [@mauro3](https://discourse.julialang.org/u/mauro3)\
**Post date:** [August 28, 2018, 12:11pm UTC](https://discourse.julialang.org/t/changing-source-code-file-has-no-effect/14184/4 "2018-08-28T12:11:42Z")

</div>

There is `Revise.track(Base)` of the package [https://github.com/timholy/Revise.jl](https://github.com/timholy/Revise.jl). It think in your case you can do `Revise.track(InteractiveUtils)`.

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [August 29, 2018, 9:46pm UTC](https://discourse.julialang.org/t/changing-source-code-file-has-no-effect/14184/5 "2018-08-29T21:46:02Z")

</div>

speaking of which, we need to run `make -j ..` () every time we change anything?

---

<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:** [August 30, 2018, 4:38pm UTC](https://discourse.julialang.org/t/changing-source-code-file-has-no-effect/14184/6 "2018-08-30T16:38:41Z")

</div>

I’m basically repeating @mauro3’s post here, but since it must not be entirely clear:

If you’re **not** using Revise (or Juno’s re-evaluation capability, or manual cut-and-paste redefinition):

- If you change packages or personal code, you have to restart Julia but you don’t have to rebuild anything
- If you change Julia’s Base module, compiler, or stdlibs: yes you have to rebuild Julia

If you **are** running Revise:

- For changes to packages, it should generally happen automatically. For scripts you have to use `includet`
- For changes to Base, use `Revise.track(Base)`. Likewise use `Revise.track(Statistics)` if you’ve made changes to the `Statistics` stdlib. And so on.
