[M3devel] TextLiteral.MaxBytes -- use LONGINT or Target.Intmore?

Dirk Muysers dmuysers at hotmail.com
Thu Sep 5 16:56:34 CEST 2013


> The whole TextLiteral thing is a low-level implementation thing to allow the
> compiler to construct it statically, yet avoid having to always copy it into
> the traced heap the first thing at runtime.  I haven't looked, but I would bet
> PM3 always copies a text literal into a heap object before creating a traced
> reference value pointing to it.

For a TextExpr, ie a literal, pm3 generates


PROCEDURE Compile (p: P) =
  VAR uid := SetUID (p);
  BEGIN
    CG.Load_addr_of (global_data, literals[uid] + Target.Address.pack,
                     Target.Address.align);
  END Compile;

So it is, in fact, an UNTRACED REF, the GC will know, I guess.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20130905/ce5f54ae/attachment-0002.html>


More information about the M3devel mailing list