Changing source code file has no effect?

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.

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.

2 Likes

oh my god :cry:

1 Like

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

5 Likes

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

1 Like

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.
11 Likes