[M3devel] Open CM3 regression tests

Tony Hosking hosking at cs.purdue.edu
Sun Jan 27 16:36:04 CET 2008


The set operations are coded in cm3/m3-libs/m3core/src/Csupport/ 
Common/hand.c.

I notice Jay has made a number of changes here since September -- I  
wonder if they have broken something.

On Jan 27, 2008, at 9:03 AM, Olaf Wagner wrote:

> Quoting Tony Hosking <hosking at cs.purdue.edu>:
>> The set operations are all coded as external C functions -- should be
>> easy enough to fix those.  Or are there type issues too?
>
> Sorry for the long delay. I'm afraid I don't really understand how
> set operations are implemented after a quick look. I thought it was
> all done in the Word modules, but these seem to be only self-referring
> M3 definitions. I'm sure you can point me to the correct location for
> the >= operation faster than I'll need to find it; I'll have a look at
> it then.
>
> Thanks in advance,
>
> Olaf
>
>>> --- p155 --- operations on small sets
>>> --- p1/p155/stderr.pgm	2008-01-20 00:48:16.000000000 +0100
>>> +++ ../src/p1/p155/stderr.pgm	2008-01-13 00:55:56.000000000 +0100
>>> @@ -2,7 +2,6 @@
>>> check set q = {}
>>> check set r = {a, b}
>>> check set x = {a, b, e}
>>> -************************ ERROR: check (NOT (p >= x)) failed
>>>
>>>> This concerns the >= operation on sets. The language definition
>>>> says:
>>>>
>>>>     infix    <=, >=  (x,y: Ordinal) : BOOLEAN
>>>>                      (x,y: Float)   : BOOLEAN
>>>>                      (x,y: ADDRESS) : BOOLEAN
>>>>                      (x,y: Set)     : BOOLEAN
>>>>
>>>> In the first three cases, <= returns TRUE if x is at most as  
>>>> large as
>>>> y. In the last case, <= returns TRUE if every element of x is an
>>>> element of y. In all cases, it is a static error if the type of  
>>>> x is
>>>> not assignable to the type of y, or vice versa. The expression x  
>>>> >= y
>>>> is equivalent to y <= x.
>>>>
>>>> So the implementation seems to be plainly wrong. I think the test
>>>> for the previous operation  <= only succeeds accidentally.
>
> -- 
> Olaf Wagner -- elego Software Solutions GmbH
>                Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin,  
> Germany
> phone: +49 30 23 45 86 96  mobile: +49 177 2345 869  fax: +49 30 23  
> 45 86 95
>    http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz:  
> Berlin
> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr:  
> DE163214194
>




More information about the M3devel mailing list