On Mon, Oct 10, 2011 at 3:28 AM, David Gibson <span dir="ltr"><<a href="mailto:david@gibson.dropbear.id.au">david@gibson.dropbear.id.au</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Mon, Oct 10, 2011 at 02:26:51AM -0400, Joey Adams wrote:<br>
><br>
> Running out of memory does not mean the application cannot return to a<br>
> sane state.  Maybe the user was trying to load a 500MB file.  In this<br>
> case, the error handling code will free a lot of memory.<br>
<br>
</div>In theory, yes.  In practice, no-one will bother since running out of<br>
memory is vanishingly rare on a modern VM system, except in situations<br>
where you have bigger problems than your XML app dying.<br></blockquote><div><br>Not all systems where ccan would be useful have VM.  Embedded systems, for example.<br><br>Joey, I'm not sure of how you wanted TTXML to "feel" as an API but if you're shooting for single-pass parsing (presumably for reasons of simplicity or efficiency?) it might be better to skip the intermediate parsing/tree-building step and instead support something like an XPath expression + a function that will operate on the matching node(s).  It could make your code significantly more complex, especially if you try to support all of the XPath syntax, but for the cases where single-pass is required (streaming the object through memory, for example) it might make more sense for the end-user.  And it would make it easier to predict and constrain the memory usage of the algorithm.<br>
<br>BG<br></div></div>