<ulclass="crumbs"><li><ahref="../webs.html">★</a></li><li><ahref="index.html">core</a></li><li><ahref="index.html#1">Chapter 1: Configuration and Control</a></li><li><b>Progress Percentages</b></li></ul><pclass="purpose">This tiny section, the Lichtenstein of Inform, prints percentage of completion estimates onto |stderr| so that the host application can intercept them and update its graphical progress bar.</p>
<pclass="inwebparagraph"><aid="SP1"></a><b>§1. </b>Clearly we can only estimate how far Inform has progressed. While we could in
principle measure the number of CPU-seconds it has run for, we don't know
how many more it will need. Instead, we rely on experience to suggest that
its run can be broken down into the following five stages, which a given
percentage of time spent in each stage: thus, for instance, semantic
analysis takes up about ten percent of every run in which problems do
not cause an early halt. Within each stage, we have a reasonable measure
of how far we have got: what proportion of the phrases have been compiled,
for instance, tells us how far "generating code" has got. The result is
that (if the relevant command line setting has been set, so that
<codeclass="display"><spanclass="extract">show_progress_indicator</span></code> is true) Inform prints about thirty lines like this
one to <codeclass="display"><spanclass="extract">stderr</span></code>:
<pclass="endnote">The function ProgressBar::update_progress_bar is used in 1/mr (<ahref="1-mr.html#SP4_8">§4.8</a>, <ahref="1-mr.html#SP4_9">§4.9</a>, <ahref="1-mr.html#SP4_10">§4.10</a>, <ahref="1-mr.html#SP4_13">§4.13</a>, <ahref="1-mr.html#SP4_14">§4.14</a>), 22/cs (<ahref="22-cs.html#SP4">§4</a>), 22/ph (<ahref="22-ph.html#SP12_1">§12.1</a>).</p>
<pclass="endnote">The function ProgressBar::final_state_of_progress_bar is used in 2/up (<ahref="2-up.html#SP2_3">§2.3</a>).</p>
<pclass="inwebparagraph"><aid="SP2"></a><b>§2. </b>Finally, the following sends a pithy summary back to the app to use as
<pclass="endnote">The function ProgressBar::begin_outcome is used in 2/up (<ahref="2-up.html#SP2_2">§2.2</a>, <ahref="2-up.html#SP2_3">§2.3</a>).</p>
<pclass="endnote">The function ProgressBar::end_outcome is used in 2/up (<ahref="2-up.html#SP2_2">§2.2</a>, <ahref="2-up.html#SP2_3">§2.3</a>).</p>
<hrclass="tocbar">
<ulclass="toc"><li><ahref="1-cm.html">Back to 'Core Module'</a></li><li><ahref="1-wel.html">Continue with 'Where Everything Lives'</a></li></ul><hrclass="tocbar">