Please read carefully what I wrote:
... it must be *initialized *and declared final.

You cannot just insert "at (here)" anywhere you want - the compiler doesn't
treat "here" as a constant - so it assumes there might be a place shift as
if you had written "at (...)".

On Fri, May 6, 2011 at 2:08 PM, Jeeva Paudel <je...@ualberta.ca> wrote:

> But, f1 and f2 are already declared as val. So, there should not be problem
> in accessing them.
>
> Further, both the async statements just make it explicit what is already
> implicit.
>
> async { f1 = fib(n-1); } implicitly means that async activity is created
> here, where the root activity resides, and the enclosed statement is also
> executed here.
>
>  The statements at (here) async { f1 = fib(n-1); } and async at (here) {fi
> = fib(n-1); } must also start new activity here and execute the enclosed
> statement in the current place, i.e., here.
>
> So, shouldn't all these three forms be correct?
>
> Jeeva P.
> Re: [X10-users] async at (here) and at (here) async
> Yoav Zibin
> Fri, 06 May 2011 10:22:37 -0700
>
>
> This is a bug.
>
> In the upcoming 2.2 release both attempts will fail with the error:
>
> Local variable is accessed at a different place, and therefore it must be
> initialized and declared final.
>
>
> So you cannot access a local variable in a different place unless it is
> initialized and "val".
>
>
> In 2.3 there will be a new construct called "athome" that will allow you to
> initialize a local at a remote place by going back to the original place.
>
>
>
> On Thu, May 5, 2011 at 11:45 PM, Jeeva Paudel <je...@ualberta.ca> wrote:
>
> > Hi all,
> >
> >     This is in reference to the Fibonacci example available at
> > http://dist.codehaus.org/x10/applications/samples/Fib.x10
> >
> >    Although async at != at async always, but shouldn't the following two
> > versions of async produce similar effect?
> >
> >        at (here) async { f1 = fib(n-1); } must start a new activity
> located
> > here and executing S
> >
> >        async at (here) {fi = fib(n-1); } must also start a new activity
> > here and execute S here as well.
> >
> >   Aren't both the same and should compile correctly when the program
> > compiles correctly with async { f1 = fib(n-1)} ? However, the compiler
> > reports this error : "f1" may not have been initialized
> >
> >
> >  Thanks,
> >     Jeeva P.
>
>
> ------------------------------------------------------------------------------
> WhatsUp Gold - Download Free Network Management Software
> The most intuitive, comprehensive, and cost-effective network
> management toolset available today.  Delivers lowest initial
> acquisition cost and overall TCO of any competing solution.
> http://p.sf.net/sfu/whatsupgold-sd
> _______________________________________________
> X10-users mailing list
> X10-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/x10-users
>
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network 
management toolset available today.  Delivers lowest initial 
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to