<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
David Ungar wrote:
<blockquote TYPE=CITE>Just a quick note: Self already allows arbitrary
objects as object annotations.
<br>(& slot annotations, too).
<br>The environment uses this feature to implement the transporter,
<br>and it should extensible to other uses, as well.</blockquote>
Please correct me, if I'm wrong:
<br>The object system itself would allow arbitrary objects as annotations,
<br>the parser does not, and the transporter relies on the convention that
<br>the annotation string contains a list of 'playload' strings which are
<br>separated with character '\177'. The parser contains explicit checks
<br>for annotation objects being strings.
<p>F.e., look at files 'vm/parser/expr.c' and 'vm/parser/parser.c':
<br>There is a member called 'extend_annotation' (expr.c:270) that builds
<br>this list of strings inside a single annotation string, and there are
things
<br>like:
<blockquote TYPE=CITE>
<pre> if (t->type != STRING) {
   expecting(t, "a string containing an annotation");
   return 0;
 }</pre>
</blockquote>

<p><br>(parser.c:295), and (parser.c:600).
<p>Gordon.
<br> 

</body></html>