I use a trick that makes use of the fast Julia's start time. So I create a
small "do_it.jl" file with only, let's say
using MyModule
exec_this_fun()
than on the shell (Windows cmd in my case), I just do
julia do_it.jl
This has the advantage of working when the "reload("MyModule") doesn't
work, and I have found many cases where it doesn't (for instances when
writing ccal wrappers to some C library)
Sábado, 5 de Julho de 2014 11:42:26 UTC+1, Johan Sigfrids escreveu:
>
> There is a Autoreload.jl <https://github.com/malmaud/Autoreload.jl>
> package modeled after IPython's autoreload extension.
>
> On Saturday, July 5, 2014 2:47:24 AM UTC+3, Andrei Zh wrote:
>>
>> I'm trying to find my way developing Julia code interactively. In other
>> languages (e.g. Python, R, Octave, etc.) when working on some piece of code
>> I open a file with it and a console. Each time I change something in the
>> file, I send that part to console and thus get new state. When I change a
>> lot of things, I just send the whole file, replacing all definitions. It's
>> quite convenient, and I'm pretty sure many of you are familiar with this
>> practise.
>>
>> In Julia, however, I faced several challenges.
>>
>> 1. When developing modules (and I really like modular systems) I have to
>> either run "using MyMod" after each change, or use qualified names (e.g.
>> "MyMod.somefunc()"), which is really annoying. In Python, for example, all
>> definitions sent to console go right to a global namespace, which is pretty
>> convenient within single module. And for several modules there's IPython's
>> "%autoreload 2".
>>
>> 2. If I abandon modules, on other hand, I can't redefine constants. So
>> if, for example, I define type Point in global namespace, then change it
>> and want to load new definition, I just get "invalid redefinition of
>> constant Point" error.
>>
>> So I want to know how YOU cope with these issues. Are there any best
>> practises for interactive development? Are there any workarounds for cases
>> I mentioned?
>>
>> Thanks you,
>> Andrei
>>
>