<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif;" dir="ltr">
<p>Trying to get back into things..not sure I sent this from a while ago..</p>
<p><br>
</p>
<p><br>
</p>
<p></p>
<div>This is both a question and an explanation<br>
of hopefully an uncoming chnage, if I figure it out.<br>
<br>
<br>
Most platforms are almost the same.<br>
<br>
For example I386_FREEBSD and I386_NETBSD.<br>
<br>
You want their IR to generally be the same, along<br>
as they aren't printing their actual target name.<br>
<br>
And they mostly are.<br>
<br>
Here is a difference for example:<br>
<br>
jair:libm3 jay$ diff -du I386_NETBSD/NullRd.mc.txt I386_FREEBSD/NullRd.mc.txt <br>
--- I386_NETBSD/NullRd.mc.txt    2016-06-30 19:13:11.000000000 -0700<br>
+++ I386_FREEBSD/NullRd.mc.txt    2016-06-30 19:13:23.000000000 -0700<br>
@@ -44,7 +44,6 @@<br>
     declare_procedure     NullRd__Length 1 Int.32 0 0 F * p.7<br>
     declare_param     rd 4 4 Addr 34129018 F F 50 v.10<br>
     declare_local     _result 4 4 Int.32 425470580 F F 50 v.11<br>
-    reveal_opaque     34129018 -885236436<br>
     declare_opaque     483796623 -1651526519<br>
     declare_proctype     -2116580915 2 -915982019 2 0<br>
     declare_formal     n -1746782238<br>
@@ -85,6 +84,7 @@<br>
     declare_field     closed 416 8 509158269<br>
     declare_field     seekable 424 8 509158269<br>
     declare_field     intermittent 432 8 509158269<br>
+    reveal_opaque     34129018 -885236436<br>
     # Init<br>
                     -----LINE 22  -----<br>
     begin_procedure     p.5<br>
<br>
<br>
One line of the IR is moved.<br>
The meaning is the same (the IR is somewhat order-independent, e.g. for type declarations).<br>
<br>
What causes this?<br>
<br>
Do we output sometimes in hash order?<br>
And target affects that?<br>
<br>
Or when buffers fill up, and target length can affect that?<br>
<br>
I'd like to remove these differences.<br>
If it is a buffer length matter, I might just expand the buffers,<br>
as systems have far far more memory than when this was all written.<br>
<br>
<br>
If it is hash ordering matter -- one should avoid outputting data<br>
in hash order.<br>
<br>
so:<br>
1. if anyone knows the difference, please tell me, before I debug it?<br>
2. Ok if I make changes to converge the IR, i.e. I386_LINUX/Darwin/Solaris/FreeBSD/NetBSD/OpenBSD/Interix should all<br>
be the same, AMD64/ditto, SPARC32/ditto, SPARC64/ditto. Only variation should be endian and word size,<br>
and maybe NT vs. Posix but probably not.<br>
<br>
 - Jay</div>
<br>
<p></p>
<div id="Signature"><br>
</div>
</div>
</body>
</html>