[m-dev.] discussion about the implementation of compact type representations
Julien Fischer
jfischer at opturion.com
Tue Oct 31 11:31:40 AEDT 2017
On Mon, 30 Oct 2017, Peter Wang wrote:
>> principle 1:
>> If a module m1 defines and abtract-exports a type t1, whose
>> representation, though semantically hidden, could affect decisions
>> about the representations of other types (t2, t3 etc) defined
>> *either* in m1 or in other modules, then a description of its
>> representation SHOULD be included in module m1's interface files.
>> (I am not sure yet about *which* interface files exactly.)
>>
>> The abstract-exported type definitions affected this way are
>>
>> - type constructors whose definitions show that they are dummy
>> types (if their arity is nonzero, this means all their instances
>> are also dummy types)
>>
>> - type constructors whose definitions show that they are notag types
>>
>> - type constructors whose definitions show that they fit in a given
>> number of bits that is less than a word in size
>>
>> - type constructors that are defined to be equivalent to another type t4
>> that either
>>
>> - *are* in one of these four categories (if t4 is defined in m1), or
>> - *may be* in one of these four categories (if t4 is defined outside m1).
>
> I think we require one further condition for types defined to be
> equivalent to an atomic type with a 2-word representation:
> currently only float but may soon include int64 and uint64.
It will definitely include int64 and uint64 ;-)
Julien.
More information about the developers
mailing list