<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=text/html;charset=utf-8 http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.23515"></HEAD>
<BODY style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 15px" 
id=MailContainerBody leftMargin=0 topMargin=0 CanvasTabStop="true" 
name="Compose message area">
<DIV><FONT face=Arial><FONT face="Times New Roman">> The whole TextLiteral 
thing is a low-level implementation thing to allow the<BR>> compiler to 
construct it statically, yet avoid having to always copy it into<BR>> the 
traced heap the first thing at runtime.  I haven't looked, but I would 
bet<BR>> PM3 always copies a text literal into a heap object before creating 
a traced<BR>> reference value pointing to it.</FONT><BR></FONT></DIV>
<DIV><FONT face=Arial>For a TextExpr, ie a literal, pm3 generates</FONT></DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><FONT face=Arial><BR>PROCEDURE Compile (p: P) =<BR>  VAR uid := SetUID 
(p);<BR>  BEGIN<BR>    CG.Load_addr_of (global_data, 
literals[uid] + 
Target.Address.pack,<BR>                     
Target.Address.align);<BR>  END Compile;<BR></DIV>
<DIV>So it is, in fact, an UNTRACED REF, the GC will know, I 
guess.<BR></DIV></FONT></BODY></HTML>