]> thyrsus.com Git - mad.git/commitdiff
More notes on unimplemented features.
authorEric S. Raymond <esr@thyrsus,com>
Thu, 24 Jun 2004 18:15:18 +0000 (18:15 +0000)
committerEric S. Raymond <esr@thyrsus,com>
Thu, 24 Jun 2004 18:15:18 +0000 (18:15 +0000)
doc/mad-manual.xml

index 0beccf54f9bd5b48b896e17a41a07eed639a2188..f3c675b64cfde67a35e9bdd0c0091cf45533017b 100644 (file)
@@ -266,9 +266,7 @@ not supported.</para>
 
 <para>The 704 had 36-bit words; MAD floats are translated to C
 doubles, which on modern machines have 32 or 64 bits.  Precision and
-overflow of numeric results may therefore differ.  The original MAD
-limit of 6 characters on variable names, labels, and string constants
-is not enforced.</para>
+overflow of numeric results may therefore differ.</para>
 
 <para>Character READ FORMATs into arrays cause their equivalents in the
 generated C code to be declared with a base char type as would
@@ -286,9 +284,15 @@ difficult to imagine code that would.</para>
 computed-transfer statement are not implemented (mainly because the
 manual did not include programs with which they could be tested).
 Neither are multiple ENTRY points, EQUIVALENCE, ERASABLE, COMMON,
-TAPE, or DRUM statements. More seriously, though array references
-and assignments are implemented, array I/O is not (except for the
-special case of character arrays which are handled as strings).</para>
+TAPE, or DRUM statements.</para>
+
+<para>More seriously, though array references and assignments are
+implemented, array I/O is not (except for the special case of
+character arrays which are handled as strings).  The fact that the
+size of arrays is dynamic appears to make this feature impossible
+to compile; I conjecture that in the original MAD format strings
+were actually interpreted at runtime by a service routine compiled
+into the code.</para>
 
 <para>Only the no-argument case of ERROR RETURN is supported.  The
 language describing the more general case of this feature is deeply
@@ -1815,7 +1819,7 @@ WHENEVER A .LE. D(I, J), TRANSFER TO ST1
 K = I
 L = J
     ST1 CONTINUE
-       .
+   .
    .
    .
 </programlisting>
@@ -3994,6 +3998,10 @@ function.</para>
 argument in a function <emphasis>definition</emphasis> program.  The
 function would be <emphasis>called</emphasis> with a statement of the
 form EXECUTE TRANS.(A, N).</para>
+
+<note><para>The Retrocomputing Museum implementation cannot yet
+compile this example.  The problem is the array I/O.</para></note>
+
 </sect2>
 <!-- beginpage III.16 -->
 <sect2><title>Example 6<emphasis role='note'>: Matrix multiplication</emphasis></title>
@@ -4041,6 +4049,9 @@ there is no general way to implement this in generated C.</para></note>
           7.           8.           9.          10.         11.         12.
          13.          14.          15.
 </programlisting>
+
+<note><para>The Retrocomputing Museum implementation cannot yet
+compile this example.  The problem is the array I/O.</para></note>
 </sect2>
 <!-- beginpage III.19 -->
 <sect2><title>Example 7<emphasis role='note'>: Solve simultaneous linear equations</emphasis></title>
@@ -4139,6 +4150,9 @@ only as an example problem.</para>
           0.          -1.          -1.          -2.         -9.        -32.
 </programlisting>
 
+<note><para>The Retrocomputing Museum implementation cannot yet
+compile this example.  The problem is the array I/O.</para></note>
+
 </sect2>
 </sect1>
 <!-- beginpage III.24 -->
@@ -4396,6 +4410,9 @@ again.</para>
 &payrolltape;
 </programlisting>
 
+<note><para>The Retrocomputing Museum implementation cannot yet
+compile this example.  The problem is the TAPE statement.</para></note>
+
 </sect2>
 <!-- beginpage III.37 -->
 <sect2><title>Example 3<emphasis role='note'>: Mortgage Payment Processing</emphasis></title>
@@ -4569,6 +4586,9 @@ round-off, but they should differ by very little.</para>
 <!-- beginpage III.46 after "M(OMEGA) = C(OMEGA)" in listing --> 
 <!-- beginpage III.47 after line labeled GAMMA in listing --> 
 
+<note><para>The Retrocomputing Museum implementation cannot yet
+compile this example.  The problem is the array I/O.</para></note>
+
 </sect2>
 </sect1>
 <!-- beginpage III.48 -->