I often use @load as a way to conveniently load a bunch of variables 
obtained from a simulation run.
For example, the simulation script might look like this

using JLD
run   = 1 # <--- simulation parameter
a,b,c = 1,2,3
@save "data_run$(run).jld" a b c

Then, to view these simulations later, I would use the load macro. In v0.4 
my REPL session would look something like this:

julia> using JLD

julia> run = 1  # <--- specify which simulation run to load
1

julia> @load "data_run$(run).jld"
3-element Array{Symbol,1}:
 :a
 :b
 :c

julia> a
1

julia> b
2

julia> c
3

However, in v0.5.0-rc3+0 , I get the following warning.

julia> using JLD

julia> run = 1  # <--- specify which simulation run to load
1

julia> @load "data_run$(run).jld"
WARNING: @load-ing a file without specifying the variables to be loaded may 
produce
unexpected behavior unless the file is specified as a string literal. Future
versions of JLD will require that the file is specified as a string literal
in this case.
3-element Array{Symbol,1}:
 :a
 :b
 :c

julia> a
1

julia> b
2

julia> c
3

julia> Pkg.status("JLD")
 - JLD                           0.6.3+             master

I was going to file an issue with JLD but I figured I would post here first 
to see if I’m using an ill-advised workflow or missing some simple work 
around.

Note: there are a few features of my situation which makes @load 
particularly convenient.

- Each simulation produces a bunch of variables and some older runs have a 
smaller subset of variables than newer ones. This makes it clumsy to use the 
load function (rather than the macro) where one needs to specify the variable 
names ahead of time.
- I need to load in multiple `.jld` files, sometimes in a large plotting 
script, so printing out each file string in the REPL and pasting it into the 
REPL after `@load` is also unwieldy.

​

Reply via email to