Type Descriptions

The intermediate language uses its own representation of type information. This representation is much simpler than the type information available in Storm in general, and contains the minimal amount of information required to follow the calling convention on the system where Storm runs. The type information in the intermediate language therefore only contains information of the memory layout of types, and whether any copy-constructors need to be called to copy types. It completely lacks information about the names of members, if the type contains any functions, etc.

Due to the simplicity of the representation, this representation is called type descriptions. A type description is represented by an instance of the actor core.asm.TypeDesc. It is possible to acquire a TypeDesc from a regular type in Storm (core.lang.Type) by calling the typeDesc member.

There are three subclasses of the TypeDesc class that corresponds to three categories of types that the system needs to be aware of: