Como recarregar um módulo em uma sessão Julia ativa após uma edição?

Atualização de 2018: Verifique todas as respostas, pois a resposta a esta pergunta mudou várias vezes ao longo dos anos. No momento desta atualização, oRevise.jl a resposta é provavelmente a melhor solução.

Eu tenho um arquivo "/SomeAbsolutePath/ctbTestModule.jl", cujo conteúdo é:

module ctbTestModule
export f1
f1(x) = x + 1
end

Eu inicio Julia em um terminal, que executa "~ / .juliarc.jl". O código de inicialização inclui a linha:

push!(LOAD_PATH, "/SomeAbsolutePath/")

Portanto, eu posso digitar imediatamente no console Julia:

using ctbTestModule

carregar meu módulo. Como esperadof1(1) retorna2. Agora, de repente, decido que quero editarf1. Eu abro "/SomeAbsolutePath/ctbTestModule.jl" em um editor e altero o conteúdo para:

module ctbTestModule
export f1
f1(x) = x + 2
end

Agora tento recarregar o módulo na minha sessão Julia ativa. eu tento

using ctbTestModule

masf1(1) ainda retorna2. Em seguida, tento:

reload("ctbTestModule")

como sugeridoaqui, masf1(1) ainda retorna2. Por fim, tento:

include("/SomeAbsolutePath/ctbTestModule.jl")

como sugeridoaqui, qual énão ideal, pois tenho que digitar o caminho absoluto completo, pois o diretório atual pode não ser "/ SomeAbsolutePath". Recebo a mensagem de avisoWarning: replacing module ctbTestModule o que parece promissor, masf1(1) ainda retorna2.

Se eu fechar a sessão atual da Julia, inicie uma nova e digiteusing ctbTestModule, Agora obtenho o comportamento desejado, ou seja,f1(1) retorna3. Mas, obviamente, eu quero fazer issosem reiniciando Julia.

Então, o que estou fazendo de errado?

Outros detalhes: Julia v0.2 no Ubuntu 14.04.

questionAnswers(4)

yourAnswerToTheQuestion