[M3devel] how is this possible?
mika at async.caltech.edu
mika at async.caltech.edu
Sun Jan 19 04:40:06 CET 2014
Any hypothesis is welcome...
(311)truffles:~/t/btc/hparse/src>../AMD64_LINUX/hparse and.scm
***
*** runtime error:
*** An explicit or implicit NARROW() operation failed.
*** file "../AMD64_LINUX/BDDSchemeStubs.m3", line 619
***
Abort
(312)truffles:~/t/btc/hparse/src>
613 PROCEDURE ToModula_BDD_T(x : SchemeObject.T) : (BDD.T) RAISES { Scheme.E } =
614 BEGIN
615 IF x # NIL AND ISTYPE(x, REF BDD.T) THEN RETURN NARROW(x,REF BDD.T)^ END;
616 IF NOT ISTYPE(x,BDD.T) THEN
617 RAISE Scheme.E("Not of type BDD.T : " & SchemeUtils.Stringify(x))
618 END;
619 RETURN x
620 END ToModula_BDD_T;
The object is of type BDD.Root (I checked the TYPECODE), which is
declared thus:
TYPE
Root = T BRANDED Brand & " Root" OBJECT
mu : MUTEX; (* as yet unused *)
id : CARDINAL;
tab : BDDTripleHash.T;
cache : ARRAY Op OF BDDTripleHash.T;
END;
SchemeObject.T is the same as REFANY
I'm not even sure where to start debugging this. The code "should work"...
Indeed:
> (rttype-typecode a)
144
> (RTBrand.GetByTC 144)
"BDD 0.1 Root"
> (RTBrand.GetByTC 143)
"BDD 0.1"
> (RTType.Supertype 143)
4
(4 is REFANY)
> (BDD.And a a)
EXCEPTION! RuntimeError! An explicit or implicit NARROW() operation failed.
> a-and-a
<Modula-3 object : BDDImpl.Root, BRANDED BDD 0.1 Root>
> (rttype-typecode a-and-a)
144
Mika
More information about the M3devel
mailing list