<div style='font-family:arial; font-size:13px;'><div>If you build OBNC on a 64 bit system with --c-int-type=long you can use integers between 0-63 in sets. I confirmed this using the code provided on the FAQ page at the OBNC site (slightly modified because I removed the procedure):</div><div><br></div><div><br></div><div>MODULE setSize;<br>IMPORT Out;<br>VAR<br>  x : INTEGER;<br>  s : SET;<br>BEGIN<br>  x := -1;<br>  s :=-{};<br>  REPEAT<br>    INC(x);<br>    EXCL(s,x)<br>  UNTIL s = {};<br>  Out.Int(x,4);<br>  Out.Ln<br>END setSize.</div><div><br></div><div>The output is 63.<br></div><div><br></div><div>However, the following code should produce the output : 31  32. <br></div><div><br></div><div>MODULE testsets;<br>IMPORT Out;<br>VAR<br>  i  : INTEGER;<br>  x,y,z : SET;<br>BEGIN<br>  x := {31,32,33};<br>  y := {33,34,35};<br>  z := x - y;  <br>  FOR i := 31 TO 35 DO<br>    IF i IN z THEN <br>      Out.Int(i,4) <br>    END<br>  END;   <br>  Out.Ln<br>END testsets.</div><div><br></div><div>But it doesn't. The output is 31. Other set operations also produce output limited to a maximum set size of 31. <br></div></div>

-- 
Sent with https://mailfence.com  
Secure and private email