Steve,

Yes, this is work in progress.  If you have specific error messages
that are the most confusing in your opinion, please help us by
opening JIRAs for each one.  Some of them should probably be
blockers, too.
        Igor

Stephen Fink/Watson/i...@ibmus wrote on 07/19/2010 05:19:04 PM:

> Yoav,
> 
> Would it be possible to get a more informative error message for this 
> case?
> 
> I find the compiler's error message confusing for two reasons:
>         1)  the error message complains about "given matcher", but the 
> word "matcher" does not appear anywhere in the language spec, and so I 
> don't know what a "matcher" is exactly.
>         2)  the error message lists a problem involving "ValRail", but 
> ValRail does not appear anywhere in the user's code.
> 
> SJF
> ------------------------------------------------------------------------
> Stephen Fink
> IBM T.J. Watson Research Center
> sjf...@us.ibm.com
> (914)784-7776
> 
> 
> 
> 
> From:
> Yoav Zibin <yoav.zi...@gmail.com>
> To:
> Mailing list for users of the X10 programming language 
> <x10-users@lists.sourceforge.net>
> Date:
> 07/19/2010 05:12 PM
> Subject:
> Re: [X10-users] Hopefully quick bug with array
> 
> 
> 
> Hi,
> You need to specify the rank/dimension of  a_prefix_sum here :
> 
> val a_prefix_sum = new Array[Int](a.region, (Point)=>0);
> ... a_prefix_sum([i-1]);  ...
> 
> So you need to write that:
> public static def computeSum(a:Array[Int]*(1)*)
> 
> 
> 
> On Mon, Jul 19, 2010 at 5:03 PM, Dave Hudak <dhu...@osc.edu> wrote:
> 
> > Hi All,
> >
> > I hope I am doing something easy to correct.  I am trying to move some 

> code
> > to compute the prefix sum of an integer array into its own method. I'm
> > using 2.0.4.
> >
> > I get the following error:
> >
> > dhu...@oscnet166 24%> x10c++ -x10rt mpi -o PrefixSum PrefixSum.x10
> > /Users/dhudak/osc/research/x10/tutorial/examples/PrefixSum.x10:34: 
> Method
> > or static constructor not found for given matcher.
> >         Matcher: a_prefix_sum(x10.lang.ValRail[x10.lang.Int
> > ]{self.length==1})
> > 1 error.
> >
> > ...which corresponds to the statement in the else clause of the 
> computeSum
> > method
> > >                       a_prefix_sum(p) = a(p) + a_prefix_sum([i-1]);
> >
> > Below is the entire code for reference.
> >
> > Thanks,
> > Dave
> >
> > /*
> >  * PrefixSum
> >  * Sequential implementation
> >  * Dave Hudak
> >  * Ohio Supercomputer Center
> >  */
> >
> > public class PrefixSum {
> >    public static def str[T](a:Array[T]):String
> >    {
> >        var s : String = "";
> >            //var is mutable
> >                var first : Boolean = true;
> >                     //var declaration must include type
> >                for (point in a) {
> >                        if (first) {
> >                                first = false;
> >                        }
> >                        else {
> >                                s += ", ";
> >                        }
> >                        s += a(point).toString();
> >                     //works because toString is global
> >                }
> >                return s;
> >    }
> >
> >    public static def computeSum(a:Array[Int]):Array[Int]{self.region 
==
> > a.region}
> >    {
> >          val a_prefix_sum = new Array[Int](a.region, (Point)=>0);
> >          for (p in a_prefix_sum) {
> >                val (i) = p;
> >                if (i == 1) {
> >                        a_prefix_sum(p) = a(p);
> >                }
> >                else {
> >                        a_prefix_sum(p) = a(p) + a_prefix_sum([i-1]);
> >                }
> >          }
> >          return a_prefix_sum;
> >     }
> >
> >    public static def main(args: Rail[String]!): Void {
> >          val ARRAY_SIZE = 10;
> >                    //values are like constants (immutable)
> >          val r1 = [1..ARRAY_SIZE];
> >                     //define a range
> >          val a1 = new Array[Int](r1, (Point)=>0);
> >    //create an array of all zeroes
> >          Console.OUT.println("a1(1) = " + a1([1]));
> >  //index arrays using parens around points
> >          for (p in a1) {
> >                val (i) = p;
> >                            //fetch the subscript of the point
> >                a1(p) = i;
> >                                    //assign it to the array value
> >          }
> >          val a1_string = str(a1);
> >          Console.OUT.println(a1_string);
> >          val a1_prefix_sum = computeSum(a1);
> >          val a1_prefix_sum_string = str(a1_prefix_sum);
> >          Console.OUT.println(a1_prefix_sum_string);
> >    }
> > }
-- 
Igor Peshansky  (note the spelling change!)
IBM T.J. Watson Research Center
X10: Parallel Productivity and Performance (http://x10-lang.org/)
XJ: No More Pain for XML's Gain (http://www.research.ibm.com/xj/)
"I hear and I forget.  I see and I remember.  I do and I understand" -- 
Confucius


------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to