<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">On 09/09/2014 08:35 PM, Reid Kleckner
wrote:<br>
</div>
<blockquote
cite="mid:CACs=tyKheBGu75bmx4R_cgf0x+B6qdkw4y_X1ZA2p66rrgaNvQ@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Tue, Sep 9, 2014 at 8:22 PM,
Philip Reames <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:listmail@philipreames.com" target="_blank">listmail@philipreames.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">To
address the size question asked in a followup, I'll
respond somewhat glibly. We already have metadata on a
Value, how is having Attributes in their place any
different? (This is assuming we completely merge metadata
and attributes. No one has seriously proposed doing that
yet. Alternatively, we could merge the storage and
preserve the interface separation if we thought that was
useful.)</blockquote>
<div><br>
</div>
<div>Attributes and metadata aren't completely
interchangeable. Metadata is semantically unimportant and
can always be dropped (TBAA, debug info, stuff).
Attributes can control semantically important things like
how to pass a parameter, and can't necessarily be dropped.</div>
</div>
</div>
</div>
</blockquote>
I agree that the semantic separation between "stuff that can be
dropped" and "stuff that can't" needs to be preserved. I would
argue that this distinction is not tied to the *implementation* of
metadata and attributes today. As someone else pointed out in this
thread, there are some attributes (nonnull for instance) which can
be safely dropped without effecting correctness. <br>
<br>
Utter side note: Has anyone written a utility pass to drop "safe to
drop" metadata and attributes? Running the test suite with and
without such a pass in the pass ordering might be a good way to
identify places where such attributes have accidentally picked up
functionality relevant semantics. :)<br>
<br>
Philip<br>
<br>
</body>
</html>