Hi Konstantina,

I assume you defined your mySumReducer as "struct mySumReducer implements
Reducible[Double] { /*omitted*/ }". If my assumption is correct, the name
of your type is mySumReducer. The compile error occurred since there is no
type named Reducible.mySumReducer.

Regarding to the runtime error, if it occurs with native X10, there may be
a bug in the implementation of managed x10. Can you try the same program
with native x10 and see what happens?

Regards,
-- Mikio



2013/7/6 Konstantina Panagiotopoulou <kwno...@hotmail.com>

> Sorry !
>
> My full msg is here:
>
>
>
> Thank you MIkio, but still there is a problem.
> I renamed it, and it compiles but only with : finish(mySumReducer())
>
> (the Reducible.mySumReducer() gives the following error:
>
> x10:95: No valid method call found for call in given type.
>        Call: mySumReducer()
>        Type: x10.lang.Reducible
> .x10:95: The reducer must be of type Reducible[T], for some type T.
>        Reducer: x10.lang.Reducible.mySumReducer()
>        Reducer type: <unknown>
> .x10:263: Cannot find enclosing collecting finish for offer statement.
>        Offer: offer energyThisPlace;
> 3 errors.
> )
>
> Now, the one that compiles gives a runtime exception:
>
> java.lang.ClassCastException:
> x10.lang.FinishState.CollectingFinish[x10.lang.Double]
>  at x10.rtt.Types.cast(Types.java:802)
> at x10.lang.Runtime.makeOffer__0x10$lang$Runtime$$T(Runtime.java:3681)
> at uniComm$$Closure$7.$apply(uniComm.java:2718)
>  at x10.lang.Activity.run(Activity.java:726)
> at x10.lang.Runtime$Worker.loop$O(Runtime.java:1460)
> at x10.lang.Runtime$Worker.$apply(Runtime.java:1407)
>  at x10.core.Thread$2.run(Thread.java:62)
> java.lang.ClassCastException:
> x10.lang.FinishState.CollectingFinish[x10.lang.Double]
> at x10.rtt.Types.cast(Types.java:802)
>  at x10.lang.Runtime.makeOffer__0x10$lang$Runtime$$T(Runtime.java:3681)
> at uniComm$$Closure$7.$apply(uniComm.java:2718)
>  at x10.lang.Activity.run(Activity.java:726)
> at x10.lang.Runtime$Worker.loop$O(Runtime.java:1460)
> at x10.lang.Runtime$Worker.$apply(Runtime.java:1407)
>  at x10.lang.Runtime$Pool.$apply(Runtime.java:1835)
> at x10.lang.Runtime.start(Runtime.java:2265)
> at x10.runtime.impl.java.Runtime.$apply(Runtime.java:159)
>  at x10.core.Thread$2.run(Thread.java:60)
>
> Although, I can see  that it calculates the energyThisPlace when I print
> it.After the last place, the exception is thrown.
>
>
> The code is still:
>
> public def Advance(dt:double) {
> val directEnergy =  finish(mySumReducer()){
> finish ateach(pl in bodies) {
>
> .......
>
> offer energyThisPlace;
>  }//ateach
>  };
>  return  directEnergy;
>     }//advance
>
> Regards,
> Konstantina
>
>
> 2013/7/5 Konstantina Panagiotopoulou <kwno...@hotmail.com>
>
>> Thank you MIkio, but still there is a problem.
>> I renamed it, and it compiles but only with : finish(mySumReducer())
>>
>> (the Reducible.mySumReducer() gives the following error:
>>
>> x10:95: No valid method call found for call in given type.
>>       Call: mySumReducer()
>>       Type: x10.lang.Reducible
>> .x10:95: The reducer must be of type Reducible[T], for some type T.
>>       Reducer: x10.lang.Reducible.mySumReducer()
>>       Reducer type: <unknown>
>> .x10:263: Cannot find enclosing collecting finish for offer statement.
>>       Offer: offer energyThisPlace;
>> 3 errors.
>> )
>>
>> Now, the one that compiles gives a runtime exception:
>>
>> java.lang.ClassCastException:
>> x10.lang.FinishState.CollectingFinish[x10.lang.Double]
>>  at x10.rtt.Types.cast(Types.java:802)
>> at x10.lang.Runtime.makeOffer__0x10$lang$Runtime$$T(Runtime.java:3681)
>>  at uniComm$$Closure$7.$apply(uniComm.java:2718)
>> at x10.lang.Activity.run(Activity.java:726)
>> at x10.lang.Runtime$Worker.loop$O(Runtime.java:1460)
>>  at x10.lang.Runtime$Worker.$apply(Runtime.java:1407)
>> at x10.core.Thread$2.run(Thread.java:62)
>> java.lang.ClassCastException:
>> x10.lang.FinishState.CollectingFinish[x10.lang.Double]
>>  at x10.rtt.Types.cast(Types.java:802)
>> at x10.lang.Runtime.makeOffer__0x10$lang$Runtime$$T(Runtime.java:3681)
>>  at uniComm$$Closure$7.$apply(uniComm.java:2718)
>> at x10.lang.Activity.run(Activity.java:726)
>> at x10.lang.Runtime$Worker.loop$O(Runtime.java:1460)
>>  at x10.lang.Runtime$Worker.$apply(Runtime.java:1407)
>> at x10.lang.Runtime$Pool.$apply(Runtime.java:1835)
>>  at x10.lang.Runtime.start(Runtime.java:2265)
>> at x10.runtime.impl.java.Runtime.$apply(Runtime.java:159)
>> at x10.core.Thread$2.run(Thread.java:60)
>>
>> Although, I can see that it calculates the energyThisPlace.
>>
>> The code is still:
>>
>> public def Advance(dt:double) {
>>
>>
>>
>>
>> 2013/7/2 Mikio Takeuchi <mikio.takeu...@gmail.com>
>>
>>> Hi Konstantina,
>>>
>>> Because the reason of this problem is name clash, a simple solution is
>>> to rename your SumReducer to some other name such as MySumReducer.
>>> I confirmed it works.
>>> Sorry for inconvenience.
>>>
>>> -- Mikio
>>>
>>>
>>> 2013/7/2 Konstantina Panagiotopoulou <kwno...@hotmail.com>
>>>
>>>> Hello,
>>>>
>>>> I tried the workaround you suggested. Again, I 'm getting the same
>>>> error... :(
>>>>
>>>> x10c: ----------
>>>>      1. ERROR in /u1/msc/kp167/Desktop/x10/uniComm.java (at line 435)
>>>>
>>>>       SumReducer $_obj = new SumReducer((java.lang.System[]) null);
>>>>       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>      The constructor Reducible.SumReducer(System[]) is undefined
>>>>      ----------
>>>>      2. ERROR in /u1/msc/kp167/Desktop/x10/uniComm.java (at line 437)
>>>>
>>>>       return $_deserialize_body($_obj, $deserializer);
>>>>       ^^^^^^^^^^^^^^^^^^
>>>>      The method $_deserialize_body(uniComm.SumReducer,
>>>> X10JavaDeserializer) in the type uniComm.SumReducer is not applicable for
>>>> the arguments (Reducible.SumReducer, X10JavaDeserializer)
>>>>      ----------
>>>>      2 problems (2 errors)
>>>> x10c: Non-zero return code: 255
>>>> 2 errors.
>>>>
>>>> Regards,
>>>> Konstantina
>>>>
>>>>
>>>> 2013/7/2 Mikio Takeuchi <mikio.takeu...@gmail.com>
>>>>
>>>>> Hi,
>>>>>
>>>>> It was a problem of Java codegen that caused name clash between your
>>>>> SumReducer with Reducible.SumReducer.
>>>>> I fixed it in r25712 (trunk) and r25713 (2.3.1.2 branch).
>>>>> As Yuki suggested, you can rename SumReducer or just use
>>>>> Reducible.SumReducer as workaround.
>>>>>
>>>>> Thanks for reporting the problem.
>>>>> -- Mikio
>>>>>
>>>>>
>>>>> 2013/7/2 Yuki Makino <mak...@jp.ibm.com>
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> It seems that something happens in the compiler, and it is caused
>>>>>> by a collision between your SumReducer and
>>>>>> x10.lang.Reducible.SumReducer
>>>>>> [T].
>>>>>>
>>>>>> The following is reduced code to reproduce the symptom:
>>>>>> public class A {
>>>>>> def m() {
>>>>>>         val a = finish(SumReducer()) {
>>>>>>                 offer 1.0;
>>>>>>         };
>>>>>> }
>>>>>> static struct SumReducer implements Reducible[Double] {
>>>>>>         public def zero() = 0.0;
>>>>>>         public operator this(a:Double, b:Double) = (a + b);
>>>>>> }
>>>>>> }
>>>>>>
>>>>>> As a workaround, please try utilizing
>>>>>> x10.lang.Reducible.SumReducer[T] (or
>>>>>> renaming your struct) as the following:
>>>>>> public class A {
>>>>>>
>>>>>> def m() {
>>>>>>         val a = finish(Reducible.SumReducer[Double]()) {
>>>>>>                 offer 1.0;
>>>>>>         };
>>>>>> }
>>>>>>
>>>>>> //static struct SumReducer implements Reducible[Double] {
>>>>>> //      public def zero() = 0.0;
>>>>>> //      public operator this(a:Double, b:Double) = (a + b);
>>>>>> //}
>>>>>> }
>>>>>>
>>>>>> Regards,
>>>>>> Yuki MAKINO
>>>>>>
>>>>>>
>>>>>>
>>>>>> From:   Konstantina Panagiotopoulou <kwno...@hotmail.com>
>>>>>> To:     Mailing list for users of the X10 programming language
>>>>>>             <x10-users@lists.sourceforge.net>
>>>>>> Date:   2013/07/01 20:47
>>>>>> Subject:        Re: [X10-users] Performance tuning for the N Body
>>>>>> problem
>>>>>>
>>>>>>
>>>>>>
>>>>>> So this is the code...I have ommitted some parts to make it more
>>>>>> clear...
>>>>>>
>>>>>> the error I get is the following
>>>>>>
>>>>>> x10c: ----------
>>>>>>      1. ERROR in /home/kwnouli/Desktop/x10/uniComm.java (at line 421)
>>>>>>       SumReducer $_obj = new SumReducer((java.lang.System[]) null);
>>>>>>       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>      The constructor Reducible.SumReducer(System[]) is undefined
>>>>>>      ----------
>>>>>>      2. ERROR in /home/kwnouli/Desktop/x10/uniComm.java (at line 423)
>>>>>>       return $_deserialize_body($_obj, $deserializer);
>>>>>>       ^^^^^^^^^^^^^^^^^^
>>>>>>      The method $_deserialize_body(uniComm.SumReducer,
>>>>>> X10JavaDeserializer)
>>>>>> in the type uniComm.SumReducer is not applicable for the arguments
>>>>>> (Reducible.SumReducer, X10JavaDeserializer)
>>>>>>      ----------
>>>>>>      2 problems (2 errors)
>>>>>> x10c: Non-zero return code: 255
>>>>>> 2 errors.
>>>>>>
>>>>>>
>>>>>> And I cannot understand why it tries to deserialize the body object
>>>>>> since I
>>>>>> only need the e: Double value...
>>>>>>
>>>>>> Am I missing something?
>>>>>> Thanks again Josh
>>>>>>
>>>>>> Regards,
>>>>>> Konstantina
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2013/7/1 Konstantina Panagiotopoulou <kwno...@hotmail.com>
>>>>>>   Hey Josh,
>>>>>>
>>>>>>   I used the code you provided above.
>>>>>>
>>>>>>
>>>>>>   public def Advance(dt:double) {
>>>>>>   val directEnergy = finish(SumReducer()) {
>>>>>>
>>>>>>
>>>>>>                   finish ateach(pl in bodies) {
>>>>>>
>>>>>>   var e:Double = 0.0;
>>>>>>
>>>>>>
>>>>>>                   val myBodies : Rail[Body] =bodies(pl);
>>>>>>                       val toSent = new Rail[Body](myBodies.size as
>>>>>> Int,
>>>>>>   (i:Int)=>new Body(myBodies(i).mass,myBodies(i).posx,
>>>>>> myBodies(i).posy,
>>>>>>   myBodies(i).posz, myBodies(i).velx, myBodies(i).vely,
>>>>>> myBodies(i).velz));
>>>>>>                     val nextPlace = here.next();
>>>>>>                       if (nextPlace != here) {
>>>>>>                         @Uncounted at(nextPlace) async {
>>>>>>                           atomic {
>>>>>>                                  otherBodies(nextPlace.id)(pl) =
>>>>>> toSent;
>>>>>>                               }
>>>>>>                           }
>>>>>>                       }
>>>>>>                     for (i in 0..(myBodies.size-1)) {
>>>>>>     val bodyI = myBodies(i);
>>>>>>
>>>>>>   e+= 0.5 * bodyI.mass * (bodyI.velx*bodyI.velx +
>>>>>> bodyI.vely*bodyI.vely +
>>>>>>   bodyI.velz*bodyI.velz);
>>>>>>                         for (j in 0..(i-1)) {
>>>>>>
>>>>>>          val bodyJ = myBodies(j);
>>>>>>
>>>>>>   //code to update my bodies' velocity ...
>>>>>>   val dx: double = bodyI.posx - bodyJ.posx;
>>>>>>   val dy: double = bodyI.posy - bodyJ.posy;
>>>>>>   val dz: double = bodyI.posz - bodyJ.posz;
>>>>>>                               var d2: double  = dx*dx + dy*dy + dz*dz;
>>>>>>   e-= (bodyI.mass*bodyJ.mass) / Math.sqrt(d2);
>>>>>>   }
>>>>>>   }
>>>>>>   offer e;
>>>>>>   }
>>>>>>
>>>>>>   var target : Place = nextPlace.next();
>>>>>>                       var source : Place = here.prev();
>>>>>>                       while (source != here) {
>>>>>>                           if (target != here) {
>>>>>>                               // send myBodies (toSent) to the next
>>>>>> target
>>>>>>   place
>>>>>>                               val targetPlace = target;
>>>>>>                               @Uncounted at(targetPlace) async {
>>>>>>                                   atomic {
>>>>>>                                       otherBodies(targetPlace.id)(pl)
>>>>>> =
>>>>>>   toSent;
>>>>>>                                   }
>>>>>>                               }
>>>>>>                           }
>>>>>>
>>>>>>   when(otherBodies(here.id)(source.id) != null);
>>>>>>   //all interactions with otherBodies at other place
>>>>>>   val other = otherBodies(here.id)(source.id);
>>>>>>   for (j in 0..(other.size-1)) {
>>>>>>
>>>>>>   val bodyJ= other(j);
>>>>>>
>>>>>>   for (i in 0..(myBodies.size-1)) {
>>>>>>
>>>>>>   val bodyI = myBodies(i);
>>>>>>   e+= 0.5 * bodyI.mass * (bodyI.velx*bodyI.velx +
>>>>>> bodyI.vely*bodyI.vely +
>>>>>>   bodyI.velz*bodyI.velz);
>>>>>>
>>>>>>   val dx: double = bodyI.posx - bodyJ.posx;
>>>>>>   val dy: double = bodyI.posy - bodyJ.posx;
>>>>>>   val dz: double = bodyI.posz - bodyJ.posx;
>>>>>>
>>>>>>   var d2: double  = dx*dx + dy*dy + dz*dz;
>>>>>>   //computation to update my bodies' velocity
>>>>>>   e-= (bodyI.mass*bodyJ.mass) / Math.sqrt(d2);
>>>>>>
>>>>>>   }
>>>>>>   offer e;
>>>>>>   }
>>>>>>   target = target.next();
>>>>>>   source = source.prev();
>>>>>>   }
>>>>>>   }
>>>>>>   };
>>>>>>   return  directEnergy;
>>>>>>      }
>>>>>>
>>>>>>
>>>>>>
>>>>>>   static struct SumReducer implements Reducible[Double] {
>>>>>>           public def zero() = 0.0;
>>>>>>           public operator this(a:Double, b:Double) = (a + b);
>>>>>>       }
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>   2013/7/1 Josh Milthorpe <josh.miltho...@anu.edu.au>
>>>>>>    Hi Konstantina,
>>>>>>
>>>>>>    a more general version of collecting finish / offers is proposed,
>>>>>> called
>>>>>>    'accumulator variables', but this is not yet fully implemented.
>>>>>>    Collecting finish should work fine in X10 2.3.
>>>>>>
>>>>>>    The Reducible interface is in x10.lang.  It includes a generic
>>>>>>    SumReducer struct type that you could use instead of the
>>>>>> Double-specific
>>>>>>    one I posted.
>>>>>>
>>>>>>    Can you post the code that is causing the error, along with the
>>>>>> compile
>>>>>>    error that you receive?
>>>>>>
>>>>>>
>>>>>>    Cheers,
>>>>>>
>>>>>>    Josh
>>>>>>    ------------------------------------------
>>>>>>    Josh Milthorpe
>>>>>>
>>>>>>    Postdoctoral Fellow, Research School of Computer Science
>>>>>>    Australian National University, Building 108
>>>>>>    Canberra, ACT 0200
>>>>>>    Australia
>>>>>>    Phone:  + 61 (0)2 61254478
>>>>>>    Mobile: + 61 (0)407 940743
>>>>>>    E-mail: josh.miltho...@anu.edu.au
>>>>>>    Web:    http://cs.anu.edu.au/~Josh.Milthorpe/
>>>>>>    On 29/06/13 01:31, Konstantina Panagiotopoulou wrote:
>>>>>>          Hello again,
>>>>>>
>>>>>>          I tried to restructure my code according to the example..
>>>>>>          The problem is that I get errors with the SumReducer struct
>>>>>>  (the
>>>>>>          errors point to the java generated code, and can't really
>>>>>> make
>>>>>>          sense)
>>>>>>          I checked the specification for v2.3. and found this:
>>>>>>
>>>>>>          offers. The offers concept was experimental in 2.1, but was
>>>>>>          determined inadequate. It has not been removed from the
>>>>>> compiler
>>>>>>          yet, but it will be soon. In
>>>>>>          the meantime, traces of it are still visible in the grammar.
>>>>>> They
>>>>>>          should not be
>>>>>>          used and can safely be ignored
>>>>>>
>>>>>>          Also I cannot track the Reducible interface in the API.
>>>>>>
>>>>>>          Is there any other more explicit way to reduce values from
>>>>>>          different places?
>>>>>>
>>>>>>          Thanks again,
>>>>>>          Konstantina
>>>>>>
>>>>>>
>>>>>>          2013/6/27 Konstantina Panagiotopoulou <kwno...@hotmail.com>
>>>>>>            Hello again,
>>>>>>
>>>>>>            I tried to restructure my code according to the example..
>>>>>>            The problem is that I get errors with the SumReducer struct
>>>>>>            (the errors point to the java generated code, and can't
>>>>>> really
>>>>>>            make sense)
>>>>>>            I checked the specification for v2.3. and found this:
>>>>>>
>>>>>>            offers. The offers concept was experimental in 2.1, but was
>>>>>>            determined inadequate. It has not been removed from the
>>>>>> compiler
>>>>>>            yet, but it will be soon. In
>>>>>>            the meantime, traces of it are still visible in the
>>>>>> grammar.
>>>>>>            They should not be
>>>>>>            used and can safely be ignored
>>>>>>
>>>>>>            Also I cannot track the Reducible interface in the API.
>>>>>>
>>>>>>            Is there any other more explicit way to reduce values from
>>>>>>            different places?
>>>>>>
>>>>>>            Thanks again,
>>>>>>            Konstantina
>>>>>>
>>>>>>
>>>>>>            2013/6/22 Vijay Saraswat <vi...@saraswat.org>
>>>>>>             On 6/21/13 9:21 PM, Konstantina Panagiotopoulou wrote:
>>>>>>               Thanks a lot for the useful feedback.
>>>>>>               Although, I did not expect I would need such low level
>>>>>>               tuning. Looks a lot like MPI.
>>>>>>
>>>>>>             X10 is a procedural programming language for distributed
>>>>>>             programming where the notions of concurrency and
>>>>>> distribution
>>>>>>             are made explicit.
>>>>>>
>>>>>>             It is closer to MPI than, say, a more limited, declarative
>>>>>>             language with implicit concurrency, in which the compiler
>>>>>>             determines run-time concurrency and distribution (e.g.
>>>>>> ZPL).
>>>>>>
>>>>>>             We are very interested in such (declarative) languages as
>>>>>> well,
>>>>>>             and building them on top of X10, in the long term.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  
>>>>>> ------------------------------------------------------------------------------
>>>>>>
>>>>>>          This SF.net email is sponsored by Windows:
>>>>>>
>>>>>>          Build for Windows Store.
>>>>>>
>>>>>>          http://p.sf.net/sfu/windows-dev2dev
>>>>>>
>>>>>>
>>>>>>          _______________________________________________
>>>>>>          X10-users mailing list
>>>>>>          X10-users@lists.sourceforge.net
>>>>>>          https://lists.sourceforge.net/lists/listinfo/x10-users
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  
>>>>>> ------------------------------------------------------------------------------
>>>>>>
>>>>>>    This SF.net email is sponsored by Windows:
>>>>>>
>>>>>>    Build for Windows Store.
>>>>>>
>>>>>>    http://p.sf.net/sfu/windows-dev2dev
>>>>>>    _______________________________________________
>>>>>>    X10-users mailing list
>>>>>>    X10-users@lists.sourceforge.net
>>>>>>    https://lists.sourceforge.net/lists/listinfo/x10-users
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>>
>>>>>> This SF.net email is sponsored by Windows:
>>>>>>
>>>>>> Build for Windows Store.
>>>>>>
>>>>>> http://p.sf.net/sfu/windows-dev2dev
>>>>>> _______________________________________________
>>>>>> X10-users mailing list
>>>>>> X10-users@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/x10-users
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> This SF.net email is sponsored by Windows:
>>>>>>
>>>>>> Build for Windows Store.
>>>>>>
>>>>>> http://p.sf.net/sfu/windows-dev2dev
>>>>>> _______________________________________________
>>>>>> X10-users mailing list
>>>>>> X10-users@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/x10-users
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> This SF.net email is sponsored by Windows:
>>>>>
>>>>> Build for Windows Store.
>>>>>
>>>>> http://p.sf.net/sfu/windows-dev2dev
>>>>> _______________________________________________
>>>>> X10-users mailing list
>>>>> X10-users@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/x10-users
>>>>>
>>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> This SF.net email is sponsored by Windows:
>>>>
>>>> Build for Windows Store.
>>>>
>>>> http://p.sf.net/sfu/windows-dev2dev
>>>> _______________________________________________
>>>> X10-users mailing list
>>>> X10-users@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/x10-users
>>>>
>>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> This SF.net email is sponsored by Windows:
>>>
>>> Build for Windows Store.
>>>
>>> http://p.sf.net/sfu/windows-dev2dev
>>> _______________________________________________
>>> X10-users mailing list
>>> X10-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/x10-users
>>>
>>>
>>
>
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by Windows:
>
> Build for Windows Store.
>
> http://p.sf.net/sfu/windows-dev2dev
> _______________________________________________
> X10-users mailing list
> X10-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/x10-users
>
>
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to