<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">If the largest set element is 31, the set size is 32 {0..31}<div>Jörg<br><div dir="ltr"><br><blockquote type="cite">Am 20.03.2022 um 10:37 schrieb Joe Turner <medianjoe@mailfence.com>:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><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
<span>--</span><br><span>Oberon@lists.inf.ethz.ch mailing list for ETH Oberon and related systems</span><br><span>https://lists.inf.ethz.ch/mailman/listinfo/oberon</span><br></div></blockquote></div></body></html>