<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