Как перезагрузить модуль в активном сеансе Джулии после редактирования?

2018 Обновление: Не забудьте проверить все ответы, так как ответ на этот вопрос менялся несколько раз за эти годы. На момент этого обновленияRevise.jl Ответ, вероятно, лучшее решение.

У меня есть файл "/SomeAbsolutePath/ctbTestModule.jl", содержимое которого:

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

Я запускаю Джулию в терминале, который запускает "~ / .juliarc.jl". Код запуска включает в себя строку:

push!(LOAD_PATH, "/SomeAbsolutePath/")

Следовательно, я могу сразу набрать в консоли Юлия:

using ctbTestModule

загрузить мой модуль. Как и ожидалосьf1(1) возвращается2, Теперь я вдруг решил, что хочу отредактироватьf1, Я открываю "/SomeAbsolutePath/ctbTestModule.jl" в редакторе и изменяю содержимое на:

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

Сейчас я пытаюсь перезагрузить модуль в моей активной сессии Джулии. я попробую

using ctbTestModule

ноf1(1) все еще возвращается2, Далее я пытаюсь:

reload("ctbTestModule")

как предложеноВот, ноf1(1) все еще возвращается2, Наконец, я пытаюсь:

include("/SomeAbsolutePath/ctbTestModule.jl")

как предложеноВот, которыйне идеально, так как мне приходится вводить полный абсолютный путь, поскольку текущим каталогом может быть не "/ SomeAbsolutePath". Я получаю предупреждениеWarning: replacing module ctbTestModule звучит многообещающе, ноf1(1) все еще возвращается2.

Если я закрою текущий сеанс Julia, начну новый и введитеusing ctbTestModuleЯ теперь получаю желаемое поведение, т.е.f1(1) возвращается3, Но, очевидно, я хочу сделать этобез перезапуская Юлию.

Итак, что я делаю не так?

Другие детали: Julia v0.2 на Ubuntu 14.04.

Ответы на вопрос(4)

Ваш ответ на вопрос