<html>#2512: Enable detection of `attribute(pure)`
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Erik Schnetter</td></tr>
<tr><td style='text-align:right'>   Status:</td><td>new</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td></td></tr>
<tr><td style='text-align:right'>  Version:</td><td>development version</td></tr>
<tr><td style='text-align:right'>     Type:</td><td>proposal</td></tr>
<tr><td style='text-align:right'> Priority:</td><td>minor</td></tr>
<tr><td style='text-align:right'>Component:</td><td>Cactus</td></tr>
</table>

<p>Comment (by Erik Schnetter):</p>
<p><code>enter_local_mode</code> is generally called from the scheduler, in <code>CallFunction</code>, when the driver knows which scheduled function is going to be called.</p>
<p><code>enter_global_mode</code> is usually called further outwards when a scheduled function is not known. We could change that, so that it is only called for particular scheduled functions. This would be straightforward in CarpetX, probably less so in Carpet.</p>
<p>I would worry about <code>Driver_RequireValidData</code> at the moment, as this is probably a function that is very rarely called. If we can set up a special case that speeds up thorns that don’t call this function I’d be very happy already. For example, such thorns could call <code>CCTK_VarDataPtr</code> instead of looking into the <code>cGH</code> structure.</p>
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2512/enable-detection-of-attribute-pure'>https://bitbucket.org/einsteintoolkit/tickets/issues/2512/enable-detection-of-attribute-pure</a></p>
</html>