<HTML>
<div>Hi everyone,</div><div><br>
</div><div>So there's a few limitations with the XML dump.  Firstly it does its work before the second pass, so things like inlined functions are not yet expanded.  There are still some minor bugs to work out, like if a string literal contains < and >, for example, it can cause the XML file to become malformed, so I'll have to make a global string-sanitising function that addresses these characters.<br>
<br>
I did try putting it after the second pass in my own copy of FPC, but some problems occurred when it came to the assembly language that's inserted to make up the function prologue.  I'll work this out a bit later, since I need to rest now!<br>
<br>
In the meantime, the patches in the bug report are ready for testing, although they might not be ready for including in the trunk due to the aforementioned problems.  Still, it's up to you.<br>
<br>
Gareth aka. Kit<br>
</div><br>
 <br>
<br>
<span style="font-weight: bold;">On Tue 05/02/19 17:53 , "J. Gareth Moreton" gareth@moreton-family.com sent:<br>
</span><blockquote style="BORDER-LEFT: #F5F5F5 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT:0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px"> 
Hi everyone,<br>
 
<br>
 
As has been discussed a little bit on here in the past, I've done a bit more work on my XML node dumping feature.  If the compiler is built with the "DEBUG_NODE_DUMP" define, all source files compiled with it will have their intermediate nodes dumped to an XML file (they have .ppx extensions).  The patch and details can be found here: https://bugs.freepascal.org/view.php?id=35017<br>
 
<br>
 
<div>It's a feature I intend to use for improving some of the mathematical functions like "floor".  Given that the nodes form trees, this is one of the few cases where XML files are perfect for representing them, especially as, with an appropriate editor, you can collapse trees that you're not interested in viewing (for something like the System unit, which produces a 9 MiB .ppx file, this is almost essential).</div><div><br>
 
</div><div>I'm aware that a feature that dumps the nodes to the console already exists, but for large units, like the aforementioned System unit, this is grossly impractical because of the sheer volume of data that's printed.<br>
 
</div><br>
 
<div>Note that currently only procedures and functions are dumped to the .ppx file - things like class declarations and global variables aren't dumped, although being a debug-only feature, it's not overly critical.  Similarly, if it comes across an assembler block node, the assembly code is only dumped on x86 families at present.  If anyone feels like adding extra features to it, feel free.</div><div><br>
 
</div><div>I hope it proves useful for future compiler debugging and development.<br>
 
</div><br>
 
Gareth aka. Kit<br>
 
  

_______________________________________________<br>

fpc-devel maillist  -  <a href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a><br>

<a target="_blank" href="<a href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel</a>"><span style="color: red;">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel</span></a><br>

<br>

</blockquote></HTML>