Sorry... I responded to Dave's email before seeing this one!

The main method must remain static or the X10 compiler won't recognise it as the program main method.

However to call an instance method on Test, you need an instance of the class. Therefore:

   public static def main(args: Array[String](1)) {
       val test = new Test();
       finish for(var k: Int =0; k< 5; k++) {
         val kk = k;
         async test.funcWorker(kk );
       }
       Console.OUT.println("I am done  " );
   }

It is certainly more difficult to learn X10 without a background in Java, but it's not impossible. The Programmer's Guide is a good start (http://x10-lang.org/documentation/practical-x10-programming/programmers-guide.html). Wherever possible you should learn from good examples that are available, like the sample codes that come with the distribution (~/x10-trunk/x10.dist/samples) and http://x10-lang.org/documentation/code-examples/small-examples.html . I also distribute a number of small samples with ANUChem (https://sourceforge.net/projects/anuchem/) - see the samples subdirectory.

Cheers,

Josh


On 14/02/13 09:19, Sparsh Mittal wrote:
Thanks for your reply. However, even after making it a var, I get complaint:

/Cannot access a non-static field field Test.currentWorkCounter: x10.lang.Int <http://x10.lang.Int> from a static context
/
And to avoid it, I will have to make other two functions as non-static, but then the whole program does not run properly and it complains:

/x10c++: No main method found
1 error.
/
Please help me, since I am not from Java background hence I am getting such errors. Thanks.


Thanks and Regards
Sparsh Mittal



On Wed, Feb 13, 2013 at 4:07 PM, David P Grove <gro...@us.ibm.com <mailto:gro...@us.ibm.com>> wrote:

    Hi,

"val" roughly corresponds to "final" in Java (or const in C++) To declare an instance field you want to be able to modify you
    need to use "var"

    var currentWorkCounter: Int =-1 ;

    --dave


    Sparsh Mittal <sparsh0mit...@gmail.com
    <mailto:sparsh0mit...@gmail.com>> wrote on 02/13/2013 12:11:46 PM:


    >
    > Hello
    > Here is the minimum working example of what I am trying to do. I
    > want to make currentWorkCounter a non-static member, which multiple
    > functions in the class can use and modify. However, compiler does
    > not allow. Can you please tell how to accomplish.
    >
    > //Does not compile due to non-static member.
    > import x10.io.Console;
    > import x10.lang.Int <http://x10.lang.Int>;
    >
    > public class Test {
    >
    > val currentWorkCounter: Int =-1 ;
    >
    > public  static def funcWorker (myNumber: Int) {
    >   val answer:Int;
    >
    >   atomic {
    >     currentWorkCounter =  currentWorkCounter +1;
    >     answer =currentWorkCounter;
    >   }
    >
    >   Console.OUT.println(myNumber+" did "+ answer);
    >
    > }
    >
    >   public static def main(args: Array[String](1)) {
    >
    >
    >       finish for(var k: Int =0; k< 5; k++) {
    >         val kk = k;
    >
    >         async funcWorker(kk );
    >          }
    >
    >          Console.OUT.println("I am done  " );
    >
    >
    >   }
    > }
    >

    > Thanks and Regards
    > Sparsh Mittal
    >
    
------------------------------------------------------------------------------
    > Free Next-Gen Firewall Hardware Offer
    > Buy your Sophos next-gen firewall before the end March 2013
    > and get the hardware for free! Learn more.
    > http://p.sf.net/sfu/sophos-d2d-feb
    > _______________________________________________
    > X10-users mailing list
    > X10-users@lists.sourceforge.net
    <mailto:X10-users@lists.sourceforge.net>
    > https://lists.sourceforge.net/lists/listinfo/x10-users

    
------------------------------------------------------------------------------
    Free Next-Gen Firewall Hardware Offer
    Buy your Sophos next-gen firewall before the end March 2013
    and get the hardware for free! Learn more.
    http://p.sf.net/sfu/sophos-d2d-feb
    _______________________________________________
    X10-users mailing list
    X10-users@lists.sourceforge.net
    <mailto:X10-users@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/x10-users




------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb


_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to