¿Cómo recargo un módulo en una sesión activa de Julia después de una edición?

Actualización 2018: Asegúrese de verificar todas las respuestas, ya que la respuesta a esta pregunta ha cambiado varias veces a lo largo de los años. En el momento de esta actualización, elRevise.jl La respuesta es probablemente la mejor solución.

Tengo un archivo "/SomeAbsolutePath/ctbTestModule.jl", cuyo contenido es:

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

Enciendo a Julia en una terminal, que ejecuta "~ / .juliarc.jl". El código de inicio incluye la línea:

push!(LOAD_PATH, "/SomeAbsolutePath/")

Por lo tanto, puedo escribir inmediatamente en la consola de Julia:

using ctbTestModule

para cargar mi módulo Como se esperabaf1(1) devoluciones2. Ahora de repente decido que quiero editarf1. Abro "/SomeAbsolutePath/ctbTestModule.jl" en un editor y cambio el contenido a:

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

Ahora trato de volver a cargar el módulo en mi sesión activa de Julia. lo intento

using ctbTestModule

perof1(1) todavía regresa2. Lo siguiente que intento:

reload("ctbTestModule")

como se sugiereaquí, perof1(1) todavía regresa2. Finalmente intento:

include("/SomeAbsolutePath/ctbTestModule.jl")

como se sugiereaquí, cual esno ideal ya que tengo que escribir la ruta absoluta completa ya que el directorio actual podría no ser "/ SomeAbsolutePath". Recibo el mensaje de advertenciaWarning: replacing module ctbTestModule que suena prometedor, perof1(1) todavía regresa2.

Si cierro la sesión actual de Julia, empiezo una nueva y escribousing ctbTestModule, Ahora obtengo el comportamiento deseado, es decirf1(1) devoluciones3. Pero obviamente quiero hacer estosin reiniciando a Julia.

Entonces, ¿qué estoy haciendo mal?

Otros detalles: Julia v0.2 en Ubuntu 14.04.