编辑源代码(并重新编译?)julia程序包

jjj*_*jjj 2 open-source julia

我想将源代码编辑为特定的Julia包。为了具体起见,假设我要向Distributions.jl程序包添加新的发行版。但是,我很难找到Julia源代码的位置(想像一下,一旦找到它,我可能必须重建/重新编译Julia?)。我已经添加了软件包,Pkg.add("Distributions.jl")但在我的计算机(MacOS)上找不到它。

例如,如果要编辑Python numpy程序包中的函数(使用Anaconda),请导航至该位置/Users/MYUSER/anaconda/lib/python2.7/site-packages/numpy并在其中编辑源代码。如何在Julia中做到这一点,尤其是对于Distributions.jl包裹?您能为新手指出任何参考吗?

Chr*_*kas 5

Pkg.dir("Distributions")
#Returns "C:\\Users\\Chris\\.julia\\v0.6\\Distributions"
Run Code Online (Sandbox Code Playgroud)

您可以直接编辑文件并使用Juno的内联评估执行该文件,这将在模块内对其进行更新,因此无需像这样重新启动。这是一段我回顾过的有关Julia软件包开发的视频


Lis*_*iso 5

如果要编辑特定方法,则也可以使用@edit宏:

julia> @edit Distributions.Levy()
Run Code Online (Sandbox Code Playgroud)

如果使用受支持的编辑器,则将在定义方法的地方。我可以在vim的状态栏中看到"~/.julia/v0.6/Distributions/src/univariate/continuous/levy.jl" 102L, 2751C(所以我的版本中的定义从levy.jl文件的第102行开始)

您可以设置受支持的编辑器(例如,atom,sublime,kate,gedit,emacs,notepad,...):

julia> ENV["JULIA_EDITOR"] = "vim";
Run Code Online (Sandbox Code Playgroud)

您可以在〜/ .juliarc.jl(或export JULIA_EDITOR=vim.bashrc或您的shell允许的范围内)中执行此操作。

您可能会看到使用哪些编辑器受支持(警告:您必须分析源代码!):

julia> @edit edit("")
Run Code Online (Sandbox Code Playgroud)

或者可能会在https://github.com/JuliaLang/julia/blob/master/base/interactiveutil.jl中提供支持

编辑:

广告重新编译:我没有测试它,但是Revise.jl似乎非常有用!