I’m probably missing something extremely obvious, but is there a speedier way of hacking on the contents of base/ in the source tree? Each time I change something, running make again seems to rebuild the sysimage and a load of other assets. I tried make julia-base but that doesn’t seem to update and restarting the interpreter doesn’t pick up simple changes in base/strings/string.jl
I wonder whether it should be possible / is standard to be able to hack on the standard library without re-making the package, which is time consuming.
A couple of additional questions:
Have I missed a piece of documentation about the ideal developer workflow? Reading the contribution guidelines and other docs hasn’t revealed the answer to me. Could perhaps contribute this?
Is there docs that explains the make targets? Even if (1) isn’t required, this could be a useful resource for newbies hacking on julia
using Revise; Revise.track(Base) will go a long way
on occasion you will still have to rebuild (if you change something in src, or something very early in Base bootstrapping and revise gets confused), but for the most part this should do what you want
Thanks @adienes. The issue is that changes aren’t being picked up on REPL restart. Revise, as I understand it, is not going to fix the fact that the REPL isn’t picking up changes (I suspect because it’s looking at the sysimage, I can’t say I’ve got my head around that yet!?)
I use revise often, but am intentionally avoiding doing so at the moment to ensure that I don’t confuse myself.
Is there a way to detect / understand what the REPL is picking up in terms of code for base/? I see no real indication it’s evaluating it from the source tree.
Thanks @adienes, I was being a bit of a dimwit assuming between REPL sessions the local changes would be picked up. Revise has sorted it. What are your thoughts on the make targets explainer, good idea?