[Swift-devel] Is the use of args within functions legal?

Mihael Hategan hategan at mcs.anl.gov
Wed Sep 18 16:03:39 CDT 2013


On Wed, 2013-09-18 at 15:17 -0500, Yadu Nand wrote:
> Sorry Mihael, I've pasted the error below.
> Why does the error go away, when the string assignment statements are
> reversed in order?

I assume because there is a string value on the stack frame from the
previous invocation that the second invocation interprets as being the
second argument. Or something like that. 

> 
> swift args_trunk.swift -foo="helloFOO"
> Swift trunk swift-r7073 (swift modified locally) cog-r3787 (cog modified
> locally)
> RunID: 20130918-2014-t0fyb8m1
> [Error] sites.xml, line 1, col 9: cvc-elt.1: Cannot find the declaration of
> element 'config'.
> Progress:  time: Wed, 18 Sep 2013 20:14:29 +0000
> 
> Execution failed:
> java.lang.ClassCastException: Invalid type: expected a
> org.griphyn.vdl.mapping.AbstractDataNode but got a
> org.globus.cog.karajan.analyzer.InvalidArgChannel
>     swiftscript:arg @ args_trunk, line: 22
> Caused by: java.lang.ClassCastException: Invalid type: expected a
> org.griphyn.vdl.mapping.AbstractDataNode but got a
> org.globus.cog.karajan.analyzer.InvalidArgChannel
>     at org.griphyn.vdl.karajan.lib.swiftscript.FnArg.function(FnArg.java:63)
>     at
> org.griphyn.vdl.karajan.lib.SwiftFunction.runBody(SwiftFunction.java:108)
>     at
> org.globus.cog.karajan.compiled.nodes.InternalFunction.run(InternalFunction.java:154)
>     at
> org.globus.cog.karajan.compiled.nodes.CompoundNode.runChild(CompoundNode.java:87)
>     at
> org.globus.cog.karajan.compiled.nodes.InternalFunction.run(InternalFunction.java:147)
>     at
> org.globus.cog.karajan.compiled.nodes.CompoundNode.runChild(CompoundNode.java:87)
>     at
> org.globus.cog.karajan.compiled.nodes.Sequential.run(Sequential.java:22)
>     at
> org.globus.cog.karajan.compiled.nodes.CompoundNode.runChild(CompoundNode.java:87)
>     at
> org.globus.cog.karajan.compiled.nodes.UParallel$1.run(UParallel.java:68)
>     at k.thr.LWThread.run(LWThread.java:228)
>     at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>     at java.lang.Thread.run(Thread.java:722)
> 
> -Yadu
> 
> 
> 
> On Wed, Sep 18, 2013 at 3:11 PM, Mihael Hategan <hategan at mcs.anl.gov> wrote:
> 
> > Ok, the error is due to the optional value missing. There's shouldn't be
> > an error to begin with, but a temporary workaround is:
> >
> > string FOO = arg("foo", "defaultValue")
> >
> > On Wed, 2013-09-18 at 14:44 -0500, Yadu Nand wrote:
> > > Ketan reported a script failing for him on trunk alone and this is the
> > > condensed
> > > form of his script that fails consistently on trunk:
> > >
> > > func() {
> > >     string FOO=arg("foo");
> > >     string BAR="hello";
> > >     tracef("FOO : %s  | BAR : %s\n", FOO, BAR);
> > > }
> > > func();
> > >
> > > This script does pass on 0.94RC3, but not on Trunk. Could someone confirm
> > > if this
> > > is valid syntax ?
> > >
> > > Reversing the order of the assignments to the following, gets the test to
> > > pass:
> > >
> > > func() {
> > >     string BAR="hello";
> > >     string FOO=arg("foo");
> > >     tracef("FOO : %s  | BAR : %s\n", FOO, BAR);
> > > }
> > > func();
> > >
> > >
> > > ​Thanks,​
> > >
> > > Yadu
> > > Ketan reported a script failing for him on trunk alone and this is the
> > > condensed
> > >
> > > form of his script that fails consistently on trunk:
> > >
> > > func() {
> > >     string FOO=arg("foo");
> > >     string BAR="hello";
> > >     tracef("FOO : %s  | BAR : %s\n", FOO, BAR);
> > > }
> > > func();
> > >
> > >
> > > This script does pass on 0.94RC3, but not on Trunk. Could someone
> > > confirm if this
> > >
> > > is valid syntax ?
> > >
> > >
> > > Reversing the order of the assignments to the following, gets the test
> > > to pass:
> > >
> > > func() {
> > >     string BAR="hello";
> > >     string FOO=arg("foo");
> > >     tracef("FOO : %s  | BAR : %s\n", FOO, BAR);
> > > }
> > > func();
> > >
> > >
> > >
> > >
> > > ​Thanks,​
> > >
> > > Yadu
> > > _______________________________________________
> > > Swift-devel mailing list
> > > Swift-devel at ci.uchicago.edu
> > > https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel
> >
> >
> >
> 
> 
> Sorry Mihael, I've pasted the error below. 
> 
> Why does the error go away, when the string assignment statements are
> reversed in order?
> 
> 
> swift args_trunk.swift -foo="helloFOO"
> Swift trunk swift-r7073 (swift modified locally) cog-r3787 (cog
> modified locally)
> RunID: 20130918-2014-t0fyb8m1
> [Error] sites.xml, line 1, col 9: cvc-elt.1: Cannot find the
> declaration of element 'config'.
> Progress:  time: Wed, 18 Sep 2013 20:14:29 +0000
> 
> Execution failed:
> java.lang.ClassCastException: Invalid type: expected a
> org.griphyn.vdl.mapping.AbstractDataNode but got a
> org.globus.cog.karajan.analyzer.InvalidArgChannel
>     swiftscript:arg @ args_trunk, line: 22
> Caused by: java.lang.ClassCastException: Invalid type: expected a
> org.griphyn.vdl.mapping.AbstractDataNode but got a
> org.globus.cog.karajan.analyzer.InvalidArgChannel
>     at
> org.griphyn.vdl.karajan.lib.swiftscript.FnArg.function(FnArg.java:63)
>     at
> org.griphyn.vdl.karajan.lib.SwiftFunction.runBody(SwiftFunction.java:108)
>     at
> org.globus.cog.karajan.compiled.nodes.InternalFunction.run(InternalFunction.java:154)
>     at
> org.globus.cog.karajan.compiled.nodes.CompoundNode.runChild(CompoundNode.java:87)
>     at
> org.globus.cog.karajan.compiled.nodes.InternalFunction.run(InternalFunction.java:147)
>     at
> org.globus.cog.karajan.compiled.nodes.CompoundNode.runChild(CompoundNode.java:87)
>     at
> org.globus.cog.karajan.compiled.nodes.Sequential.run(Sequential.java:22)
>     at
> org.globus.cog.karajan.compiled.nodes.CompoundNode.runChild(CompoundNode.java:87)
>     at org.globus.cog.karajan.compiled.nodes.UParallel
> $1.run(UParallel.java:68)
>     at k.thr.LWThread.run(LWThread.java:228)
>     at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>     at java.util.concurrent.ThreadPoolExecutor
> $Worker.run(ThreadPoolExecutor.java:615)
>     at java.lang.Thread.run(Thread.java:722)
> 
> 
> -Yadu
> 
> 
> 
> 
> 
> On Wed, Sep 18, 2013 at 3:11 PM, Mihael Hategan <hategan at mcs.anl.gov>
> wrote:
>         Ok, the error is due to the optional value missing. There's
>         shouldn't be
>         an error to begin with, but a temporary workaround is:
>         
>         string FOO = arg("foo", "defaultValue")
>         
>         On Wed, 2013-09-18 at 14:44 -0500, Yadu Nand wrote:
>         
>         > Ketan reported a script failing for him on trunk alone and
>         this is the
>         > condensed
>         > form of his script that fails consistently on trunk:
>         >
>         > func() {
>         >     string FOO=arg("foo");
>         >     string BAR="hello";
>         >     tracef("FOO : %s  | BAR : %s\n", FOO, BAR);
>         > }
>         > func();
>         >
>         > This script does pass on 0.94RC3, but not on Trunk. Could
>         someone confirm
>         > if this
>         > is valid syntax ?
>         >
>         > Reversing the order of the assignments to the following,
>         gets the test to
>         > pass:
>         >
>         > func() {
>         >     string BAR="hello";
>         >     string FOO=arg("foo");
>         >     tracef("FOO : %s  | BAR : %s\n", FOO, BAR);
>         > }
>         > func();
>         >
>         >
>         > ​Thanks,​
>         >
>         > Yadu
>         
>         > Ketan reported a script failing for him on trunk alone and
>         this is the
>         > condensed
>         >
>         > form of his script that fails consistently on trunk:
>         >
>         > func() {
>         >     string FOO=arg("foo");
>         >     string BAR="hello";
>         >     tracef("FOO : %s  | BAR : %s\n", FOO, BAR);
>         > }
>         > func();
>         >
>         >
>         > This script does pass on 0.94RC3, but not on Trunk. Could
>         someone
>         > confirm if this
>         >
>         > is valid syntax ?
>         >
>         >
>         > Reversing the order of the assignments to the following,
>         gets the test
>         > to pass:
>         >
>         > func() {
>         >     string BAR="hello";
>         >     string FOO=arg("foo");
>         >     tracef("FOO : %s  | BAR : %s\n", FOO, BAR);
>         > }
>         > func();
>         >
>         >
>         >
>         >
>         > ​Thanks,​
>         >
>         > Yadu
>         > _______________________________________________
>         > Swift-devel mailing list
>         > Swift-devel at ci.uchicago.edu
>         >
>         https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel
>         
>         
>         
> 
> 
> 
> -- 
> Yadu Nand B
> 
> 





More information about the Swift-devel mailing list