[Oberon] V4, 64 bit version
Charles Perkins
chuck at kuracali.com
Sat Jan 16 00:29:27 CET 2021
I was not aware of the Patchouli 64-bit compiler, thanks for the pointer!
That timeline makes a strong argument that INTEGER and REAL should be
64-bits on 64-bit machines, for maximum simplicity, which is a core feature
of Oberon. That also appeals to me, especially as backwards compatibility
with previous editions of Oberon has already been left behind.
I could be convinced.
Chuck
On Fri, Jan 15, 2021 at 3:20 PM Chris Burrows <chris at cfbsoftware.com> wrote:
> >
> > On Fri, Jan 15, 2021 at 1:08 PM Charles Perkins <chuck at kuracali.com>
> > wrote:
> > I like the idea.
> >
> > The sizes of datatypes in the RISC5 compiler are defined in ORB.Mod.
> > Currently we have:
> > byteType := type(Byte, Int, 1); (*symbol: BYTE *)
> > boolType := type(Bool, Bool, 1); (*symbol: BOOLEAN *)
> > charType := type(Char, Char,1); (*symbol: CHAR *)
> > intType := type(Int, Int, 4); (*symbols: INTEGER, LONGINT *)
> > realType := type(Real, Real, 4); (*symbol: REAL *)
> > setType := type(Set, Set,4); (*symbol: SET *)
> > nilType := type(NilTyp, NilTyp, 4);(*symbol: NIL *)
> >
> > In a 64-bit compiler derived from the RISC5 compiler I imagine we
> > would also have 8 byte REALs and SETs and NIL values:
> > byteType := type(Byte, Int, 1); (*symbol: BYTE *)
> > boolType := type(Bool, Bool, 1); (*symbol: BOOLEAN *)
> > charType := type(Char, Char,1); (*symbol: CHAR *)
> > intType := type(Int, Int, 4); (*symbol: INTEGER *)
> > longType := type(Long, Long, 8); (*symbol: LONGINT *)
> > realType := type(Real, Real, 8); (*symbol: REAL *)
> > setType := type(Set, Set,8); (*symbol: SET *)
> > nilType := type(NilTyp, NilTyp, 8); (*symbol: NIL *)
> >
> > Chuck
> >
>
> Are you aware of the existing Intel 64 Oberon-07 compiler?
>
> https://github.com/congdm/Patchouli-Compiler/tree/v0.8
>
> The data types are specified here:
>
> https://github.com/congdm/Patchouli-Compiler/wiki/Detailed-Documentation
>
> Note that all the 32-bit data type dependencies have now been removed from
> the Oberon Language:
>
> The data type definitions pre-2011 were:
>
> --------------------------------------------------
> BOOLEAN the truth values TRUE and FALSE.
> CHAR the characters of the Latin-1 set.
> INTEGER the integers between -2^31 and +2^31-1.
> REAL real numbers (IEEE Standard, 32 bits).
> LONGREAL long real numbers (IEEE Standard, 64 bits).
> SET the sets of integers between 0 and 31.
> --------------------------------------------------
>
> In Sep 2011 they were:
>
> --------------------------------------------------
> BOOLEAN the truth values TRUE and FALSE
> CHAR the characters of a standard character set
> INTEGER the integers
> REAL real numbers
> LONGREAL real numbers
> SET the sets of integers between 0 and 31
>
> The type LONGREAL is intended to represent real numbers
> with a higher number of digits than REAL. However, the
> two types may be identical.
> --------------------------------------------------
>
> In Oct 2013, they were further generalised to:
>
> --------------------------------------------------
> BOOLEAN the truth values TRUE and FALSE
> CHAR the characters of a standard character set
> INTEGER the integers
> REAL real numbers
> BYTE the integers between 0 and 255
> SET the sets of integers between 0 and an
> implementation-dependent limit
>
> The type BYTE is compatible with the type INTEGER, and vice-versa.
> --------------------------------------------------
>
> i.e. CHAR could be any standard character set (not necessarily 8-bits),
> INTEGER and REAL can be any size, LONGREAL has been removed from the
> language and SET is no longer constrained to be 32 bits. Note that the
> Patchouli compiler handles the platform-dependent usefulness of additional
> data types while still conforming with the language specification by
> including their definitions in SYSTEM.
>
> Regards,
> Chris Burrows
> CFB Software
> https://www.astrobe.com
>
>
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20210115/63c4e712/attachment.html>
More information about the Oberon
mailing list