How about this macro:
macro run(file, args...)
return esc(:(ARGS = $args; include($file)))
end
For example:
---------------------------------------------
$ cat ./test.jl
#!/usr/bin/julia
for a in ARGS
println(a)
end
$ julia
...
julia> macro run(file, args...)
return esc(:(ARGS = $args; include($file)))
end
julia> @run "test.jl" 1 2 3 4
1
2
3
4
---------------------------------------------
Does that do what you want?
Cheers,
Daniel.
On Thursday, 30 October 2014 10:22:59 UTC+1, Martin Klein wrote:
>
> Hi,
>
> when using Python I usually execute my programs within IPython by using
> the %run command, which executes a given script with the given arguments,
> but keeps all of the defined variables in the namespace after execution.
> Unfortunately, I couldn't find any fully equivalent command for the Julia
> REPL. I know about include(), but I couldn't figure out how to give command
> line arguments to the script, which I want to run (i.e. the stuff which is
> saved in the ARGS array).
>
> Additionally, IPython provides the handy %pdb command, which automatically
> opens the ipython debugger when an exception is thrown (i.e. it's an
> exception breakpoint). This is also a very nice feature to quickly
> investigate errors. I know that Julia doesn't have a full-blown debugger
> yet (besides debug.jl), but nevertheless this would be a nice future
> feature for the REPL once there is a Julia debugger.
>
> Alternatively, I would be interested in your current first-run-and-debug
> workflow. I like to write my code in vim but ifter execution I want to
> directly investigate the state of my program using the REPL.
>
> Best,
> Martin
>