On Dec 3, 2009, at 10:06 PM, Stefan Behnel wrote: > > Robert Bradshaw, 03.12.2009 18:15: >> On Dec 3, 2009, at 12:56 AM, Stefan Behnel wrote: >>> So my proposal is to enable type inference by default (after fixing >>> the remaining bugs), but only for Python types (including extension >>> types). >> >> Sounds like it would be safe (and very useful) to me. The only thing >> that can happen on assignment between object types is a type check, >> and the type inference engine infers based on the set of assignments, >> so I don't see how it could go wrong. > > Implemented in > > http://hg.cython.org/cython-devel/rev/c0e5e7195070
Excellent. > I noticed that type inference wasn't available for type > constructors. It is > now: > > http://hg.cython.org/cython-devel/rev/ba5ae565b3d2 > > Robert, I didn't quite understand the comment in > NameNode.infer_types(). Is > there a reason why this wasn't enabled in the first place? The problem is when I write x = list The type of x is not list, it's type. This should be changed back. > Enabling the 'safe' mode breaks one (1!) test file in the test suite, > typedfieldbug_T303. It was actually depending on the fact that > MyType() > returns a generic object, not something that is known to be an > instance of > MyType (with known readonly fields that are accessible at C level). > > This is really unlikely to break code IMHO, but we'll have to check > our own > test suite to make sure we didn't accidentally send some tests into > void > space by enabling some unexpected optimisations for them. > > Still, I left the default setting for the infer_types option as 'none' > until we can be sure it works for all nodes. SliceIndexNode is still > pending (which makes me wonder why this didn't show up in the test > suite...). Once that's fixed, I'd vote for setting the option to > 'safe' by > default. Would that go in for 0.12.1 or should we wait for 0.13? > (Maybe we > should give Sage a build before answering that ...) Sounds sensible, I like it. I don't have any strong opinions on what version it should go into, but I'd lean towards 0.13 (which should not be as long as a wait as 0.12 was). I'd like to get at least some of the C++ code into 0.13 as well. - Robert _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
