Lisandro Dalcin wrote: > On Tue, Feb 10, 2009 at 12:22 PM, Dag Sverre Seljebotn > <[email protected]> wrote: > >> Ah. Yes, I noticed, but after commenting on the ticket. So apparently it >> is NOT a C++-only issue, but something much more strange going on ... >> >> > > Indeed. It seems Cython 'memoizes' counters for a module context, then > if you compile twice, the counters are not reinitialized. Or somethig > like that.... > > You know, module or class level globals could be rally evil :-) ... > > $ cd Cython/Compiler/ > $ find . -type f -print0 | xargs -0 -e grep -nH -e > TemplateTransform.temp_name_counter > ./ParseTreeTransforms.py:549: TemplateTransform.temp_name_counter += 1 > ./ParseTreeTransforms.py:550: handle = "__tmpvar_%d" % > TemplateTransform.temp_name_counter > ./TreeFragment.py:122: TemplateTransform.temp_name_counter += 1 > ./TreeFragment.py:123: handle = "__tmpvar_%d" % > TemplateTransform.temp_name_counter > > Is the .temp_name_counter counter ever decremented? Could be this the > root of the problem? > I tried binding temp_name_counter to Main.Context (which is available as self.context in WithTransform), and initializing it to 0. It made no difference (and I haven't got around to commiting that).
Dag Sverre _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
