<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>