"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