[M3devel] [M3commit] CVS Update: cm3

Mika Nystrom mika at async.caltech.edu
Thu Jun 7 22:35:37 CEST 2012


Sorry, "static" was (slightly) the wrong word.

I believe they are malloced as an array during program startup.  There is
something significant about the ordering of this array, which is why you
can't just add types to the PM3 environment during runtime.  CM3 uses
more indirection, so it's much easier to add things while running,
but it also makes TYPECASE, ISTYPE, etc., slower.  Possibly NARROW
(explicit as well as implicit) as well...

     Mika

=?utf-8?Q?Dragi=C5=A1a_Duri=C4=87?= writes:
>
>--Apple-Mail=_D8C54D3B-50C9-47D3-AD4D-116B678A55EC
>Content-Transfer-Encoding: quoted-printable
>Content-Type: text/plain;
>	charset=windows-1252
>
>Are you sure about this?
>
>Both pm3 and cm3 load type structures from object files on =
>initialization. Type data is in UNTRACED REF ARRAY=85 structures, for =
>both of them.
>
>Difference is in algorithm being incremental, "multi-pass" in cm3 and =
>single-pass in pm3/SRC. Also, for garbage collection, there is a check =
>to see if number of modules (meaning more globals areas) has grown, and =
>rebuilding of globals list in case it is.
>=20
>There is nothing static in type structure of Modula-3.
>
>On Jun 7, 2012, at 6:36 PM, Mika Nystrom wrote:
>
>> Because of the restrictions of SRC and P M3, types are statically
>> allocated at compile time and all their subtyping relationships are =
>known
>> at that time.  There is simply a static array of the types.
>
>
>--Apple-Mail=_D8C54D3B-50C9-47D3-AD4D-116B678A55EC
>Content-Transfer-Encoding: quoted-printable
>Content-Type: text/html;
>	charset=windows-1252
>
><html><head></head><body style=3D"word-wrap: break-word; =
>-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Are =
>you sure about this?<div><br></div><div>Both pm3 and cm3 load type =
>structures from object files on initialization. Type data is in UNTRACED =
>REF ARRAY=85 structures, for both of =
>them.</div><div><br></div><div>Difference is in algorithm being =
>incremental, "multi-pass" in cm3 and single-pass in pm3/SRC. Also, for =
>garbage collection, there is a check to see if number of modules =
>(meaning more globals areas) has grown, and rebuilding of globals list =
>in case it is.</div><div> </div><div>There is nothing static in =
>type structure of Modula-3.</div><div><br><div><div>On Jun 7, 2012, at =
>6:36 PM, Mika Nystrom wrote:</div><br =
>class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><span =
>class=3D"Apple-style-span" style=3D"border-collapse: separate; =
>font-family: Helvetica; font-style: normal; font-variant: normal; =
>font-weight: normal; letter-spacing: normal; line-height: normal; =
>orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: =
>none; white-space: normal; widows: 2; word-spacing: 0px; =
>-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: =
>0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
>auto; -webkit-text-stroke-width: 0px; font-size: medium; ">Because of =
>the restrictions of SRC and P M3, types are statically<br>allocated at =
>compile time and all their subtyping relationships are known<br>at that =
>time.  There is simply a static array of the =
>types.</span></blockquote></div><br></div></body></html>=
>
>--Apple-Mail=_D8C54D3B-50C9-47D3-AD4D-116B678A55EC--



More information about the M3devel mailing list