Renaming of Numeric Types
As of revision r9475 all numeric types in the repository have been renamed according to the following scheme. The goal was to simplify and modernise the type system while improving portability and interoperability with C interfaces. A posix-compatible shell script for textual replacement is provided below to help automate the transition for user code. If you need assistance or encounter problems please feel free to contact us.
Platform-Independent Types¶
All numeric types with fixed type size have a name indicating their binary representation and should ideally only occur in type definitions:
Type | Previous Name |
---|---|
SIGNED8 |
SHORTINT |
SIGNED16 |
INTEGER |
SIGNED32 |
LONGINT |
SIGNED64 |
HUGEINT |
UNSIGNED8 |
|
UNSIGNED16 |
|
UNSIGNED32 |
|
UNSIGNED64 |
|
FLOAT32 |
REAL |
FLOAT64 |
LONGREAL |
COMPLEX32 |
COMPLEX |
COMPLEX64 |
LONGCOMPLEX |
SET8 |
|
SET16 |
|
SET32 |
|
SET64 |
Platform-Dependent Types¶
Platform-dependent types have abstract names indicating their intent and are portable type definitions for particular types from above:
Type | Previous Name | Intent |
---|---|---|
INTEGER |
WORD |
Standard signed integer type which replaces WORD and the ubiquitous LONGINT in most instances. Corresponds to int in C. |
REAL |
Standard real type which replaces LONGREAL in most instances. Corresponds to double in C. |
|
COMPLEX |
Standard complex type which consists of two REAL members. |
|
ADDRESS |
Unsigned integer type for representing virtual or physical memory addresses. | |
SIZE |
Signed integer type for representing the difference of two addresses or anything else that is memory-bound. LEN returns this type. |
|
SET |
Set type to represent set elements. Its size coincides with the ADDRESS size. |
Comments