bug in FS.reified.include

Jorge Marques Pelizzoni jpeliz at icmc.usp.br
Fri Jul 20 01:15:43 CEST 2007


Hi, all!

Strictly speaking, this may not be a real bug, but is indeed very strange,
misleading behaviour. It seems that in an expression like:

{FS.reified.include D M B}

if D and M are determined, but D > 63 and M contains only elements <= 63,
then B will not get determined (!) after {Space.waitStable}. I must
concede, however, that failure ensues if B is bound (e.g. by distribution)
to an invalid value (i.e. 1).

Here is code that demonstrates this oddity:

----------------
declare
proc {Test Sol}
   I = {Space.choose 1024}
   J = {Space.choose 1024}
   S = {FS.value.make [1#J]}
   R = {FS.reified.include I S}
in
   Sol = I#J#R
   {Space.waitStable}
   if {IsDet R} then fail end
   choice
      R = 0
   [] R = 1
   end
end
Strange = {Search.all Test 0 _}
----------------

Cheers, Jorge.




More information about the mozart-users mailing list