[ExM Users] multiple returns allowed in Swift/T
Ketan Maheshwari
ketancmaheshwari at gmail.com
Wed Aug 7 20:31:45 CDT 2013
Hi Tim,
I made the change as you suggested but now I am getting java NPE:
$ stc mimo.swift > mimo.tcl
STC INTERNAL ERROR
Please report this
java.lang.NullPointerException
at exm.stc.frontend.ASTWalker.evalAppCmdArgs(ASTWalker.java:2431)
at exm.stc.frontend.ASTWalker.genAppFunctionBody(ASTWalker.java:2188)
at exm.stc.frontend.ASTWalker.compileAppFunction(ASTWalker.java:2155)
at exm.stc.frontend.ASTWalker.walkTopLevelCompile(ASTWalker.java:327)
at exm.stc.frontend.ASTWalker.walkTopLevel(ASTWalker.java:237)
at exm.stc.frontend.ASTWalker.walkFile(ASTWalker.java:199)
at exm.stc.frontend.ASTWalker.loadModule(ASTWalker.java:385)
at exm.stc.frontend.ASTWalker.walk(ASTWalker.java:168)
at exm.stc.ui.STCompiler.compile(STCompiler.java:76)
at exm.stc.ui.Main.main(Main.java:93)
The script is as below:
import files;
import io;
import string;
import sys;
app (file _outB1, file _outB2, file _outB3) A (file _inA1, file _inA2, file
_inA3){
"mimo.sh" @_inA1 @_inA2 @_inA3 @_outB1 @_outB2 @_outB3 @_outB4;
}
main{
file in_a1=input_file("sample.txt");
file in_a2=input_file("sample.txt");
file in_a3=input_file("sample.txt");
file in_a4=input_file("sample.txt");
foreach i in [0:1]{
string outb1=sprintf("/tmp/swift.work/outb1-%i.dat", i);
string outb2=sprintf("/tmp/swift.work/outb2-%i.dat", i);
string outb3=sprintf("/tmp/swift.work/outb3-%i.dat", i);
string outb4=sprintf("/tmp/swift.work/outb4-%i.dat", i);
file o1 <outb1>;
file o2 <outb2>;
file o3 <outb3>;
file o4 <outb4>;
(o1, o2, o3, o4) = A (in_a1, in_a2, in_a3, in_a4);
}
}
Thanks,
Ketan
On Wed, Aug 7, 2013 at 8:06 PM, Tim Armstrong <tim.g.armstrong at gmail.com>wrote:
> You can't declare variables inside a multiple return, you'll have to
> declare them first, then assign them in a separate statement.
>
> - Tim
>
>
> On Wed, Aug 7, 2013 at 8:03 PM, Ketan Maheshwari <
> ketancmaheshwari at gmail.com> wrote:
>
>> Hi,
>>
>> I am writing some benchmark scripts. One of them is SIMO for single input
>> multiple output for which an app looks as follows:
>>
>> app (file _outB1, file _outB2, file _outB3, file _outB4) A (file _inA1){
>> "simo.sh" @_inA1 @_outB1 @_outB2 @_outB3 @_outB4;
>> }
>>
>> Wondering if this is the right way to define multiple outputs to an app?
>>
>> I am getting error message when I call the app in main{} as follows:
>>
>> (file outb1 <outb1>, file outb2 <outb2>, file outb3 <outb3>, file outb4
>> <outb4>) = A (in_a);
>>
>> The error is:
>>
>> simo.swift l.22:9 mismatched input 'outb1' expecting RPAREN
>> simo.swift l.22:49 no viable alternative at input 'outb3'
>> simo.swift l.22:82 no viable alternative at input ')'
>> simo.swift l.22:86 mismatched input 'A' expecting GT
>> simo.swift l.24:0 mismatched input '}' expecting EOF
>> Error occurred during parsing.
>>
>> Thanks for suggestions to fix this.
>>
>> --
>> Ketan
>>
>>
>> _______________________________________________
>> ExM-user mailing list
>> ExM-user at lists.mcs.anl.gov
>> https://lists.mcs.anl.gov/mailman/listinfo/exm-user
>>
>>
>
--
Ketan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/exm-user/attachments/20130807/5b3ffb41/attachment.html>
More information about the ExM-user
mailing list