<div dir="ltr"><div><br></div><div><div>I've got more on the partial revelation side of things. Maybe we should use the "issues" section of the GIthub repository to manage these and allow others to work on them, should they be inclined.</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Mar 24, 2018 at 7:18 PM, Rodney M. Bates <span dir="ltr"><<a href="mailto:rodney_bates@lcwb.coop" target="_blank">rodney_bates@lcwb.coop</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-"><br>
<br>
On 03/24/2018 11:41 AM, Darko Volaric wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
While we're on the subject, there's a compiler bug in there somewhere:<br>
<br>
CONST A = ARRAY OF ARRAY OF INTEGER{ARRAY OF INTEGER{1}};<br>
<br>
compiles but<br>
<br>
CONST A = ARRAY OF ARRAY OF INTEGER{ARRAY OF INTEGER{}};<br>
<br>
results in<br>
<br>
***<br>
*** runtime error:<br>
***    <*ASSERT*> failed.<br>
***    file "../src/exprs/ArrayExpr.m3", line 653<br>
***<br>
<br>
This may be the same or a related bug:<br>
<br>
TYPE  R = RECORD a := 1 END;<br>
CONST B = ARRAY OF R{R{}};<br>
CONST C = B[0].a;  (* error: value is not constant *)<br>
<br>
but<br>
<br>
TYPE  R = RECORD a := 1 END;<br>
CONST B = ARRAY OF R{R{1}};<br>
CONST C = B[0].a;  (* no error *)<br>
<br>
<br>
</blockquote>
<br></span>
I'll add these to my list.  I've been working on this area for some time, trying to get<br>
rid of CG crashes, etc.<span class="gmail-"><br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Back on topic, although I can understand you not liking the construct, given that it's unlikely to make someone to write incorrect code (dereferencing is the only possible operation and is required), is it worth breaking existing code? Not knowing of its use anywhere isn't definitive.<br>
<br>
</blockquote>
<br></span>
Sigh.  OK.  But i's sure C++-ish in harassing a maintainer by making something look significantly<br>
different from what it really is.<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="gmail-h5">
<br>
On Sat, Mar 24, 2018 at 4:53 PM, Rodney M. Bates <<a href="mailto:rodney_bates@lcwb.coop" target="_blank">rodney_bates@lcwb.coop</a> <mailto:<a href="mailto:rodney_bates@lcwb.coop" target="_blank">rodney_bates@lcwb.coop</a><wbr>>> wrote:<br>
<br>
<br>
<br>
<br>
    On 03/21/2018 02:57 PM, Henning Thielemann wrote:<br>
<br>
<br>
        On Wed, 21 Mar 2018, Rodney M. Bates wrote:<br>
<br>
            Modula3, 2.6.3 (Designators), concerning subscripting says:<br>
<br>
            An expression of the form a[i_1, ..., i_n] is shorthand for a[i_1]...[i_n].<br>
<br>
<br>
        I think I wrote earlier about this shorthand ...<br>
<br>
        I found the following problem:<br>
<br>
        ARRAY OF ARRAY OF Something<br>
<br>
        is syntactically not quite a 2D-array since as it is written it suggests that the sub-arrays may have different sizes.<br>
<br>
<br>
    It never occurred to me that this syntax could suggest it could be a ragged array, probably because<br>
    I was already familiar with the (fixed) array-of-array concept being truly 2D in Pascal and Modula2.<br>
<br>
    I do see in 2.2.3, in the first paragraph: "The elements all have the same size and the same type,<br>
    called the _element type_ of the array", this sentence applying to both fixed and open arrays.<br>
    This probably should be clarified, since "size" seems not very precise here.  Maybe "element count",<br>
    which would be harmlessly redundant in the case of a fixed array.<br>
<br>
    Two paragraphs later, the definition of array _shape_ seems also to imply the array is not ragged,<br>
    but this is perhaps too subtle not to be made explicit somewhere.<br>
<br>
        This has practical consequences. It would be no problem to have a 0-by-n array. But Modula-3 fails<br>
        to determine the size of the second dimension of a 0-by-n array, because LAST(a[0]) is a range<br>
        violation in the first dimension.<br>
<br>
<br>
    But a[0] doesn't exist, so what would be a meaningful definition of its size or bounds?  Even if you<br>
    could somehow define and discover it, you can't do anything else with a[0] either.<br>
<br>
    The only way I can think of create such a thing would be a zero-length SUBARRAY of an mxn array.<br>
    Neither the language nor the compiler disallow a a zero-length SUBARRAY.  a could alias the<br>
    original mxn array, but only an empty portion of it.  Other than copying and passing a around<br>
    by reference, there is no meaningful definition of any operation on a.<br>
<br>
        ______________________________<wbr>_________________<br>
        M3devel mailing list<br></div></div>
        <a href="mailto:M3devel@elegosoft.com" target="_blank">M3devel@elegosoft.com</a> <mailto:<a href="mailto:M3devel@elegosoft.com" target="_blank">M3devel@elegosoft.com</a>><br>
        <a href="https://m3lists.elegosoft.com/mailman/listinfo/m3devel" rel="noreferrer" target="_blank">https://m3lists.elegosoft.com/<wbr>mailman/listinfo/m3devel</a> <<a href="https://m3lists.elegosoft.com/mailman/listinfo/m3devel" rel="noreferrer" target="_blank">https://m3lists.elegosoft.com<wbr>/mailman/listinfo/m3devel</a>><br>
<br>
<br>
    --<br>
    Rodney Bates<br>
    <a href="mailto:rodney.m.bates@acm.org" target="_blank">rodney.m.bates@acm.org</a> <mailto:<a href="mailto:rodney.m.bates@acm.org" target="_blank">rodney.m.bates@acm.org</a><wbr>><br>
<br>
    ______________________________<wbr>_________________<br>
    M3devel mailing list<br>
    <a href="mailto:M3devel@elegosoft.com" target="_blank">M3devel@elegosoft.com</a> <mailto:<a href="mailto:M3devel@elegosoft.com" target="_blank">M3devel@elegosoft.com</a>><br>
    <a href="https://m3lists.elegosoft.com/mailman/listinfo/m3devel" rel="noreferrer" target="_blank">https://m3lists.elegosoft.com/<wbr>mailman/listinfo/m3devel</a> <<a href="https://m3lists.elegosoft.com/mailman/listinfo/m3devel" rel="noreferrer" target="_blank">https://m3lists.elegosoft.com<wbr>/mailman/listinfo/m3devel</a>><br>
<br>
<br><span class="gmail-HOEnZb"><font color="#888888">
</font></span></blockquote><span class="gmail-HOEnZb"><font color="#888888">
<br>
-- <br>
Rodney Bates<br>
<a href="mailto:rodney.m.bates@acm.org" target="_blank">rodney.m.bates@acm.org</a><br>
</font></span></blockquote></div><br></div></div>