Release status

Raphael Collet raph at info.ucl.ac.be
Tue Apr 6 15:52:17 CEST 2004


Andreas Rossberg wrote:
> 
> Raphael Collet wrote:
> >
> > AFAIK there remains a register allocation bug.  Those bugs are extremely
> > obscure, and sometimes disappear when you add a Show or a Wait.  Have
> > you considered putting the Waits *after* the '==' for instance?  It is
> > stupid.  But if this makes the blocking problem disappear, you might be
> > facing such a register allocation bug...

Okay, forget about register allocation.  There is indeed a bug, but it
seems to appear with read-onlys only.  You can produce it easily by
running the code below.

   local X Y in
      {Show {Map [X Y] IsNeeded}}
      thread {Show !!X==!!Y} end
      {Delay 1000}
      {Show {Map [X Y] IsNeeded}}
   end

The '==' at the third line compares two read-onlys (!!X and !!Y).  Both
become needed, and they should make their origins (X and Y) needed.  So
the last statement should show [true true].  But it shows [true false]
instead :P

This explains your observations.  You can adapt the example above to
compare two ByNeedFuture's.  Both become needed, but only one of them is
triggered.

I will try to fix this.


Cheers,

raph



More information about the mozart-hackers mailing list