Wow that got incredibly mangled somehow. it was meant to say:<div><br></div><div><span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">"Thank you Jakob for patiently </span><span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">walking me through my first non-trivial patch set! I'll see what I can do </span><span style="background-color:rgb(255,255,255);font-family:arial,sans-serif;font-size:13px">to ensure deterministic iteration order.</span><span style="background-color:rgb(255,255,255);font-family:arial,sans-serif;font-size:13px">"</span></div>
<div><span style="background-color:rgb(255,255,255);font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="background-color:rgb(255,255,255);font-family:arial,sans-serif;font-size:13px">I'm still looking for a way to ensure deterministic iteration order without making a mess of the code, such as just blindly adding a special comparator to each of containers keyed on pointers; that would just make the code more muddled (even in cases where the container isn't being iterated over). There are also a couple hash tables that are keyed on Record*'s, which I think can be changed but I'm not familiar enough with the hash traits that they use. </span><span style="background-color:rgb(255,255,255);font-family:arial,sans-serif;font-size:13px">Any ideas for a good way to migrate to stable iteration interfaces? Thankfully, each Record has a field `unsigned ID;` which uniquely identifies it, so redirecting any hash/compare to that should be safe.</span></div>
<div><span style="background-color:rgb(255,255,255);font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="background-color:rgb(255,255,255);font-family:arial,sans-serif;font-size:13px">--Sean Silva</span></div>
<div><br><div class="gmail_quote">On Tue, Jun 12, 2012 at 11:38 PM, Sean Silva <span dir="ltr"><<a href="mailto:silvas@purdue.edu" target="_blank">silvas@purdue.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thank you Jakob for patiently ill see what I can do to ensure deterministic iteration order. I also havewalking me through my first non-trivial patch set!<div class="HOEnZb"><div class="h5"><br><br><div class="gmail_quote">
On Tue, Jun 12, 2012 at 10:17 PM, Jakob Stoklund Olesen <span dir="ltr"><<a href="mailto:stoklund@2pi.dk" target="_blank">stoklund@2pi.dk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><br>
On Jun 12, 2012, at 7:55 PM, Sean Silva wrote:<br>
<br>
> Here is a new patch updating the Clang API. It is just the minimal changes to move over to the new API. The .inc files are bit-identical. For now, I'll postpone 2 and 3 for a more general TableGen "cleanup" patch-set at some unspecified time in the future unless you strongly feel otherwise.<br>


><br>
> After this patch, you should be able to apply 3-llvm.patch from the previous email and fully remove the old API.<br>
<br>
</div>Committed r158388 + r158389.<br>
<div><br>
> I will see what I can do to ensure deterministic iteration order. I also have some major TableGen docs updates in the works.<br>
<br>
</div>Thanks!<br>
<span><font color="#888888"><br>
/jakob<br>
<br>
</font></span></blockquote></div><br>
</div></div></blockquote></div><br></div>