Project

General

Profile

News

Renaming of Numeric Types

Added by Florian Negele 2 months ago

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.
    (1-2/2)

    Also available in: Atom