[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Still more :)
From: |
Dragiša Durić |
Subject: |
Re: Still more :) |
Date: |
Fri, 08 May 2020 13:56:46 +0200 |
I have a really ancient PrintF like library... It's formatting is based
on this StrIO down under (which was a fix for GPM2 when I moved to it
in 90's), and to invoke it I would do:
a := 10;
TermIO.PrintF("Ej #d\n", TermIO.Arr1{ADR(a)});
But compiling this is no go...
test.mod:16:46: error: the only functions permissible in a constant expression
are: CAP, CHR, CMPLX, FLOAT, HIGH, IM, LENGTH, MAX, MIN, ODD, ORD, RE, SIZE,
TSIZE, TRUNC, VAL and gcc builtins
16 | TermIO.PrintF("Ej #d\n", TermIO.Arr1{ADR(a)});
| ^
Is there a way to bypass this without full rewrite of my formatting
libraries to C?
Thanks,
dd
On Fri, 2020-05-08 at 13:45 +0200, Dragiša Durić wrote:
> Hi Gaius,
>
> /opt/local/lib/gcc/x86_64-pc-linux-
> gnu/11.0.0/m2/m2iso/Storage.def:58:1: error: the 2nd element does not
> exist in the array declaration used by the compound literal
>
> My DEFINITION MODULE is like:
>
> DEFINITION MODULE mStrIO;
>
> FROM
> SYSTEM
> IMPORT
> ADDRESS;
>
> TYPE
> Arr1 = ARRAY [0..0] OF ADDRESS;
> Arr2 = ARRAY [0..1] OF ADDRESS;
> Arr3 = ARRAY [0..2] OF ADDRESS;
> Arr4 = ARRAY [0..3] OF ADDRESS;
> Arr5 = ARRAY [0..4] OF ADDRESS;
> Arr6 = ARRAY [0..5] OF ADDRESS;
> Arr7 = ARRAY [0..6] OF ADDRESS;
> Arr8 = ARRAY [0..7] OF ADDRESS;
> Arr9 = ARRAY [0..8] OF ADDRESS;
> Arr10 = ARRAY [0..9] OF ADDRESS;
> Arr11 = ARRAY [0..10] OF ADDRESS;
> Arr12 = ARRAY [0..11] OF ADDRESS;
> Arr13 = ARRAY [0..12] OF ADDRESS;
> Arr14 = ARRAY [0..13] OF ADDRESS;
> Arr15 = ARRAY [0..14] OF ADDRESS;
> Arr16 = ARRAY [0..15] OF ADDRESS;
> Arr17 = ARRAY [0..16] OF ADDRESS;
> Arr18 = ARRAY [0..17] OF ADDRESS;
> Arr19 = ARRAY [0..18] OF ADDRESS;
> Arr20 = ARRAY [0..19] OF ADDRESS;
> Arr21 = ARRAY [0..20] OF ADDRESS;
> Arr22 = ARRAY [0..21] OF ADDRESS;
>
> ArrMax = Arr22;
>
> CONST
> Arr0 = Arr1 { NIL };
> ...
>
>
> And when this DEF is included in my compile... above error. Out of
> place.
>
> Another one out of places was:
>
> /opt/local/lib/gcc/x86_64-pc-linux-
> gnu/11.0.0/m2/m2iso/Storage.def:58:1: error: not all variant record
> alternatives in the CASE clause are specified, hint you either need
> to specify each value of ‘CARDINAL’ or use an ELSE clause
>
> Easy to fix now I am in shape :), but probably something You would
> like
> to fix.
>
> BTW, did You receive another archive I sent to You?
>
> Regards,
> Dragiša
>
>