Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r50264:30e84d345b46 Date: 2011-12-07 15:36 +0100 http://bitbucket.org/pypy/pypy/changeset/30e84d345b46/
Log: Fix the multiple calls to build_types() by passing complete_now=False diff --git a/pypy/objspace/fake/objspace.py b/pypy/objspace/fake/objspace.py --- a/pypy/objspace/fake/objspace.py +++ b/pypy/objspace/fake/objspace.py @@ -131,6 +131,10 @@ expected_length = 3 return [W_Root()] * expected_length + def allocate_instance(self, cls, w_subtype): + "NOT_RPYTHON" + xxx + # ---------- def translates(self, func=None, argtypes=None): @@ -138,19 +142,28 @@ if argtypes is None: nb_args = func.func_code.co_argcount argtypes = [W_Root] * nb_args + else: + func = lambda: None + argtypes = [] # t = TranslationContext() self.t = t # for debugging ann = t.buildannotator() - if func is not None: - ann.build_types(func, argtypes) - # annotate all _seen_extras, knowing that annotating some may - # grow the list - i = 0 - while i < len(self._seen_extras): - print self._seen_extras - ann.build_types(self._seen_extras[i], []) - i += 1 + # + done = 0 + while True: + # annotate all _seen_extras, knowing that annotating some may + # grow the list + while done < len(self._seen_extras): + print self._seen_extras + ann.build_types(self._seen_extras[done], [], + complete_now=False) + done += 1 + # when the list stops growing, really complete + ann.build_types(func, argtypes, complete_now=True) + # if the list did not grow because of completion, we are done + if done == len(self._seen_extras): + break #t.viewcg() t.buildrtyper().specialize() t.checkgraphs() _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit