"TAJCHMAN Marc" <marc.tajch...@cea.fr> wrote on 10/27/2009 06:10:18 PM:

> Hi,
> 
> The following code compiles and runs with x10 1.7.6 :
> 
> // laplacian.x10
> import params;
> 
> public class laplacian {
> 
>     var p:params = new params();
> 
>     def this(args : Rail[String]) {
>         p.parse(args);
>     }
> 
>     public static def main(args : Rail[String]) {
>         var l:laplacian = new laplacian(args);
>     }
> }
> 
> // params.x10
> public class params {
> 
>     var n:Rail[int] = Rail.makeVar[int](3);
> 
>     def parse(args : Rail[String])
>     {
>         n(0) = int.parseInt(args(0));
>         n(1) = int.parseInt(args(1));
>         n(2) = int.parseInt(args(2));
>     }
> };
> 
> When I try to compile it using svn r11743 (to test the x10mpi 
> runtime), there are 2 kinds of error messages :
> 
> > laplacian.x10:8: Cannot read fields of the proto value proto 
laplacian.this
> > params.x10:7: Place type error: method target args cannot be 
> determined to be at x10.lang.Place.x10.lang.Place#FIRST_PLACE{}
> 
> The second one can be removed by adding a "!" near the end of line 5 
> in params.x10. 
> But I cannot find a solution to the other error.
> 
> What is the meaning of these messages ? 

Hi, Marc,

The first message says that you cannot read fields of an object that is 
not
fully initialized (i.e., whose constructor has not completed, a.k.a. proto
object).  The way to fix it in your code is to change the constructor of
laplacian as follows:

    def this(args : Rail[String]) {
        val p_ = new params();
        p_.parse(args);
        this.p = p_;
    }

The second message means that you're trying to invoke a non-global method
(namely, apply()) on an object that is not statically known to be local to
the place where you're invoking the method.  You have to assert that it 
is,
by adding "!" after the type.

Hope this helps,
        Igor
-- 
Igor Peshansky  (note the spelling change!)
IBM T.J. Watson Research Center
XJ: No More Pain for XML's Gain (http://www.research.ibm.com/xj/)
X10: Parallel Productivity and Performance (http://x10.sf.net/)


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to