<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Aug 6, 2013 at 12:59 AM, Nick Coghlan <span dir="ltr"><<a href="mailto:ncoghlan@gmail.com" target="_blank">ncoghlan@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 6 August 2013 09:53, Larry Hastings <<a href="mailto:larry@hastings.org">larry@hastings.org</a>> wrote:<br>


> On 08/05/2013 02:55 AM, Nick Coghlan wrote:<br>
> On 5 August 2013 18:48, Larry Hastings <<a href="mailto:larry@hastings.org">larry@hastings.org</a>> wrote:<br>
><br>
> Question 0: How should we integrate Clinic into the build process?<br>
><br>
> Isn't solving the bootstrapping problem the reason for checking in the<br>
> clinic-generated output? If there's no Python available, we build what<br>
> we have (without the clinic step), then we build it again *with* the<br>
> clinic step.<br>
><br>
> It solves the bootstrapping problem, but that's not the only problem Clinic<br>
> presents to the development workflow.<br>
><br>
> If you modify some Clinic DSL in a C file in the CPython tree, then run<br>
> "make", should the Makefile re-run Clinic over that file?  If you say "no",<br>
> then there's no problem.  If you say "yes", then we have the problem I<br>
> described.<br>
<br>
</div>Ah, I think I see the problem you mean. What is defined in the<br>
makefile as the way to regenerate an object file from the C file. If<br>
it is run clinic and then run the compiler, then you will get a<br>
dependency loop. If it doesn't implicitly run clinic, then we risk<br>
checking in inconsistent clinic metadata.<br>
<br>
I think the simplest answer may be to have "make clinic" as an<br>
explicit command, along with a commit hook that checks for clinic<br>
metadata consistency. Then "make" doesn't have to change and there's<br>
no nasty bootstrapping problem.</blockquote><div><br></div><div>Can't we just do what we already do for the generated AST code or what we used to do for importlib's frozen code; we have the touch extension for hg integration for this kind of issue.</div>

</div></div></div>