<div dir="ltr">That params struct sure looks a lot like a json dict.  How about `params = readJSON("debug.json");`?<br></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Jun 18, 2015 at 3:26 PM Mihael Hategan <<a href="mailto:hategan@mcs.anl.gov">hategan@mcs.anl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Thu, 2015-06-18 at 19:48 +0000, Max Hutchinson wrote:<br>
> I agree that it is a no interface function call.  Maybe this is also<br>
> helpful with not needing to explicitly collect outputs to get staged out?<br>
<br>
Good point. We, more or less, require that the app, perhaps through a<br>
wrapper script, fully define its interface through the command line. On<br>
the other hand, magical matching is allowed. If you have an output<br>
carefully mapped to what the application produces, it will work even<br>
without a wrapper, but it's impossible to make that work if two<br>
invocations produce two files with the same name.<br>
<br>
That should change. The reason it didn't is that we didn't have a good<br>
idea about how to make the collect specification nice in the case of<br>
non-trivial file lists.<br>
<br>
> My understanding is that If run.swift contains a bunch of nested loops, one<br>
> would have declare a bunch of [auto] outputs and remember to append<br>
> everything to them (or they could be considered tmps and not staged out).<br>
> There's value to being forced to be thoughtful, but it might also be nice<br>
> to start with the trailing import while prototyping/debugging a script and<br>
> then switch to a wrapper after the dust has settled.<br>
<br>
I'd rather add code to allow mapping in struct expressions, so that you<br>
could write something like this:<br>
<br>
params = {<br>
        prefix: "debug",<br>
        json: <"debug.json">,<br>
        ...<br>
}<br>
<br>
test = sweep(params);<br>
<br>
and perhaps:<br>
<br>
with (params) {<br>
        ...<br>
}<br>
<br>
><br>
> I'm focusing on direct staging, so the wrapper was straightforward.  For<br>
> reference:<br>
> <a href="https://github.com/maxhutch/nek-swift/blob/alcf/debug.swift" rel="noreferrer" target="_blank">https://github.com/maxhutch/nek-swift/blob/alcf/debug.swift</a><br>
> <a href="https://github.com/maxhutch/nek-swift/blob/alcf/nek.swift" rel="noreferrer" target="_blank">https://github.com/maxhutch/nek-swift/blob/alcf/nek.swift</a><br>
><br>
> If imports are only going to be supported in the preamble, could that be<br>
> added to the docs?<br>
> <a href="http://swift-lang.org/guides/trunk/userguide/userguide.html#_imports" rel="noreferrer" target="_blank">http://swift-lang.org/guides/trunk/userguide/userguide.html#_imports</a><br>
<br>
We're in the process of revamping the docs. It will be in there.<br>
<br>
Mihael<br>
<br>
<br>
</blockquote></div>