[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Tales of mc
From: |
Gaius Mulley |
Subject: |
Re: Tales of mc |
Date: |
Mon, 12 Sep 2022 10:27:09 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Benjamin Kowarsch <trijezdci@gmail.com> writes:
> On Sun, 11 Sept 2022 at 11:02, john o goyo <jog37@riddermarkfarm.ca> wrote:
>
> I know that mc is a boot-strapping tool that does not translate all of
> Modula-2.
>
> How much does it understand?
>
> [...] I found that SHIFT() is not known to it.
>
> You could use my portable bit operations library.
>
> It has no dependencies, is portable across PIM and ISO dialects, and all
> Modula-2 compilers.
>
> It provides arithmetic and logical shifting as well as left shifting through
> carry.
>
> CARDINAL bit operations
>
> https://github.com/m2sf/m2bsk/blob/master/src/lib/CardBitOps.def
> https://github.com/m2sf/m2bsk/blob/master/src/lib/imp/CardBitOps.mod
>
> INTEGER bit operations
>
> https://github.com/m2sf/m2bsk/blob/master/src/lib/IntBitOps.def
> https://github.com/m2sf/m2bsk/blob/master/src/lib/imp/IntBitOps.mod
>
> LONGINT bit operations
>
> https://github.com/m2sf/m2bsk/blob/master/src/lib/LongIntBitOps.def
> https://github.com/m2sf/m2bsk/blob/master/src/lib/imp/LongIntBitOps.mod
>
> I have also implemented a portable 64-bit cardinal type along with bit
> operations on it.
>
> https://github.com/m2sf/m2bsk/tree/master/src/lib/CARD64
>
> The CARD64 library works with the following memory models:
>
> (a) 16-bit cardinal/32-bit integer
> (b) 32-bit cardinal/32-bit integer
> (c) 32-bit cardinal/64-bit integer
>
> regards
> benjamin
looks like a really clean implementation!
regards,
Gaius
- Tales of mc, john o goyo, 2022/09/02
- Message not available