Stefan Behnel [Thu, 19 Dec 2013 21:43:12 +0000 (22:43 +0100)]
fix refnanny error output in Py3
Stefan Behnel [Thu, 19 Dec 2013 19:51:04 +0000 (20:51 +0100)]
simplify code
Robert Bradshaw [Thu, 24 Oct 2013 07:23:44 +0000 (00:23 -0700)]
fix memoryview warnings
Stefan Behnel [Wed, 18 Dec 2013 19:50:54 +0000 (20:50 +0100)]
fix try-finally-return in functions returning void
Stefan Behnel [Wed, 18 Dec 2013 18:36:04 +0000 (19:36 +0100)]
fix build
Stefan Behnel [Wed, 18 Dec 2013 18:05:38 +0000 (19:05 +0100)]
merge
Stefan Behnel [Wed, 18 Dec 2013 18:02:09 +0000 (19:02 +0100)]
implement 'yield' inside of 'finally' clause
Robert Bradshaw [Wed, 18 Dec 2013 09:21:36 +0000 (01:21 -0800)]
Don't warn on un-assigned error types.
Robert Bradshaw [Wed, 18 Dec 2013 09:18:09 +0000 (01:18 -0800)]
Error for Python objects as C++ class template parameters.
Stefan Behnel [Tue, 17 Dec 2013 16:48:27 +0000 (17:48 +0100)]
create yield labels purely during code generation instead of counting them upfront
Stefan Behnel [Mon, 16 Dec 2013 22:39:29 +0000 (23:39 +0100)]
make intermediate goto-labels more readable by postfixing them with their purpose
Stefan Behnel [Mon, 16 Dec 2013 22:25:50 +0000 (23:25 +0100)]
remove unnecessary code from normal exit case of with-statement
Stefan Behnel [Mon, 16 Dec 2013 22:16:27 +0000 (23:16 +0100)]
streamline exit code of with-statement
Stefan Behnel [Mon, 16 Dec 2013 21:38:34 +0000 (22:38 +0100)]
reduce lifetime of exception tuple in with-statement exception exit case by making the WithExitCallNode own it instead of the exception clause
Stefan Behnel [Mon, 16 Dec 2013 21:06:52 +0000 (22:06 +0100)]
reduce code overhead of with-statement a bit by using PyTuple_Pack() for __exit__() arguments
Stefan Behnel [Mon, 16 Dec 2013 20:54:06 +0000 (21:54 +0100)]
implement Python corner case of passing a tuple as assert message
Stefan Behnel [Mon, 16 Dec 2013 19:46:36 +0000 (20:46 +0100)]
improve annotation for else-clause in while-loop
Stefan Behnel [Mon, 16 Dec 2013 19:38:34 +0000 (20:38 +0100)]
drop some redundant C labels in if-blocks
--HG--
extra : amend_source :
affe6e89d8c2c49654f376fbbda3b1ad29190895
Stefan Behnel [Mon, 16 Dec 2013 19:16:46 +0000 (20:16 +0100)]
optimise list.pop() a little more by splitting it off the generic anyobj.pop() implementation
Stefan Behnel [Mon, 16 Dec 2013 18:34:39 +0000 (19:34 +0100)]
add and improve some more may_be_none() methods
Stefan Behnel [Mon, 16 Dec 2013 18:09:54 +0000 (19:09 +0100)]
fix typo
Stefan Behnel [Mon, 16 Dec 2013 18:08:53 +0000 (19:08 +0100)]
make CallNode a little smarter about when the return value can be None
Stefan Behnel [Mon, 16 Dec 2013 17:55:54 +0000 (18:55 +0100)]
let SliceNode know it returns a slice instance
Stefan Behnel [Mon, 16 Dec 2013 17:39:53 +0000 (18:39 +0100)]
be a bit smarter about when slicing or item access return None
--HG--
extra : amend_source :
51a4e6ec35c70af746630fcada3982c2decde872
Stefan Behnel [Sun, 15 Dec 2013 09:20:58 +0000 (10:20 +0100)]
fix compiler crash
Stefan Behnel [Sat, 14 Dec 2013 20:15:45 +0000 (21:15 +0100)]
make sure the optimised try-finally always generates code for the original finally block subtree (just in case it references something external)
Stefan Behnel [Sat, 14 Dec 2013 19:57:01 +0000 (20:57 +0100)]
fix typo
Stefan Behnel [Sat, 14 Dec 2013 19:39:37 +0000 (20:39 +0100)]
discard else clause from try-except statements that do not terminate normally
Stefan Behnel [Sat, 14 Dec 2013 19:25:21 +0000 (20:25 +0100)]
fix C compiler warning about unused variable
Stefan Behnel [Sat, 14 Dec 2013 19:11:46 +0000 (20:11 +0100)]
extend test
Stefan Behnel [Sat, 14 Dec 2013 19:11:38 +0000 (20:11 +0100)]
changelog
Stefan Behnel [Sat, 14 Dec 2013 19:11:02 +0000 (20:11 +0100)]
generate separate C code branches for each exit case of a try-finally statement
Stefan Behnel [Sat, 14 Dec 2013 16:29:37 +0000 (17:29 +0100)]
minor code cleanup
--HG--
extra : amend_source :
c948151354a77be026c92d57abc151e51fb271c6
Stefan Behnel [Sat, 14 Dec 2013 15:58:10 +0000 (16:58 +0100)]
mark node position in C file when starting to generate the node's code, not that of the subexpressions
--HG--
extra : amend_source :
566ce3ed6bd0efbb075126a6c5823b773c72d2ea
Stefan Behnel [Sat, 14 Dec 2013 13:26:12 +0000 (14:26 +0100)]
set constant_result of empty containers created in ConstantFolding transform
Stefan Behnel [Sat, 14 Dec 2013 11:05:36 +0000 (12:05 +0100)]
fix constant folding with false partial result
Stefan Behnel [Sat, 14 Dec 2013 10:59:47 +0000 (11:59 +0100)]
undo the Python-optimisationism of assigning bound/unbound methods to local variables when Cython can call a builtin C function instead
--HG--
extra : amend_source :
121eadd540f25f9e43f6e6b60853eeab18d11620
Stefan Behnel [Fri, 13 Dec 2013 20:37:08 +0000 (21:37 +0100)]
remove redundant code
Stefan Behnel [Fri, 13 Dec 2013 20:31:26 +0000 (21:31 +0100)]
simplify constant folded comparison code a little and extend the test for it
Stefan Behnel [Fri, 13 Dec 2013 19:34:17 +0000 (20:34 +0100)]
undo accidental commit
Stefan Behnel [Fri, 13 Dec 2013 19:31:29 +0000 (20:31 +0100)]
fix tracing again
Stefan Behnel [Fri, 13 Dec 2013 13:41:00 +0000 (14:41 +0100)]
fix tracing in recent Py3.4
Stefan Behnel [Thu, 12 Dec 2013 18:38:04 +0000 (19:38 +0100)]
let RemoveUnreachableCode discard any PassStatNodes (e.g. added by analysing declaration-only ExprStatNode)
Stefan Behnel [Thu, 12 Dec 2013 17:17:33 +0000 (18:17 +0100)]
fix C compiler warning about unused utility code
--HG--
extra : rebase_source :
2e86ee2423754e0cfa6e79b33b9570a25a019c01
Robert Bradshaw [Thu, 12 Dec 2013 05:40:09 +0000 (21:40 -0800)]
Use makedirs rather than mkdir for cache location.
Robert Bradshaw [Thu, 12 Dec 2013 05:33:04 +0000 (21:33 -0800)]
Use default location ~/.cycache when cython cache is set to True.
Stefan Behnel [Wed, 11 Dec 2013 21:39:48 +0000 (22:39 +0100)]
minor code cleanup
Stefan Behnel [Wed, 11 Dec 2013 21:35:24 +0000 (22:35 +0100)]
clean up IntNode() instantiation
Stefan Behnel [Wed, 11 Dec 2013 21:12:55 +0000 (22:12 +0100)]
minor portability tweak: mark non-tiny integer literals as C longs with "L" suffix when passing them into PyInt_FromLong()
Stefan Behnel [Wed, 11 Dec 2013 21:00:54 +0000 (22:00 +0100)]
tweak order of constant generation a bit
Stefan Behnel [Wed, 11 Dec 2013 20:56:03 +0000 (21:56 +0100)]
remove some code redundancy
Stefan Behnel [Wed, 11 Dec 2013 20:45:11 +0000 (21:45 +0100)]
remove some unused code
Stefan Behnel [Wed, 11 Dec 2013 20:41:10 +0000 (21:41 +0100)]
avoid accidental duplication of cached Python integer constants when using numbers in different notations
Stefan Behnel [Wed, 11 Dec 2013 18:38:49 +0000 (19:38 +0100)]
fix syntax copy&pastos
Stefan Behnel [Wed, 11 Dec 2013 18:16:20 +0000 (19:16 +0100)]
fix C compiler warnings about unused variables in tests
Stefan Behnel [Wed, 11 Dec 2013 18:02:23 +0000 (19:02 +0100)]
try fixing test failures in int_literals.pyx by removing dependency on Py2/3 specific 'L' postfix of long objects
Stefan Behnel [Wed, 11 Dec 2013 07:20:09 +0000 (08:20 +0100)]
remove unnecessary complication from test
Stefan Behnel [Tue, 10 Dec 2013 20:00:10 +0000 (21:00 +0100)]
use normal constant calculation for special case to avoid inconsistencies
Stefan Behnel [Tue, 10 Dec 2013 19:52:02 +0000 (20:52 +0100)]
rewrite constant folding for PrimaryCmpNode to properly support (and fix) cascaded comparisons
Stefan Behnel [Mon, 9 Dec 2013 07:38:53 +0000 (08:38 +0100)]
remove outdated comment
Stefan Behnel [Sun, 8 Dec 2013 14:16:49 +0000 (15:16 +0100)]
fix test after making constant folding remove unused constants
Stefan Behnel [Sun, 8 Dec 2013 14:12:55 +0000 (15:12 +0100)]
fix compiler crash
Stefan Behnel [Sun, 8 Dec 2013 13:51:43 +0000 (14:51 +0100)]
discard lots of useless code and overhead from try-finally statements that don't need to handle Python exceptions (including C-only with-blocks)
Stefan Behnel [Sun, 8 Dec 2013 11:49:46 +0000 (12:49 +0100)]
add test for empty try-finally
Stefan Behnel [Sun, 8 Dec 2013 11:25:50 +0000 (12:25 +0100)]
fix Py2.4 C compilation problem
Stefan Behnel [Sun, 8 Dec 2013 11:22:44 +0000 (12:22 +0100)]
fix problematic constant folding condition in cascaded comparisons (even though it likely doesn't work anyway)
Stefan Behnel [Sun, 8 Dec 2013 11:13:35 +0000 (12:13 +0100)]
prevent compile time constant folding of non-portable string comparisons (e.g. between bytes and str)
Stefan Behnel [Sun, 8 Dec 2013 10:17:00 +0000 (11:17 +0100)]
remove unused code
Stefan Behnel [Sun, 8 Dec 2013 10:15:59 +0000 (11:15 +0100)]
discard ExprStatNodes with constant expressions
Stefan Behnel [Sun, 8 Dec 2013 08:12:44 +0000 (09:12 +0100)]
add some safety checks to the shared common types import
Stefan Behnel [Sun, 8 Dec 2013 07:56:27 +0000 (08:56 +0100)]
avoid risk of stale pointers by looking up Cython types module on each request (shouldn't hurt much to do it a couple of times during module initialisation)
Stefan Behnel [Sun, 8 Dec 2013 07:34:37 +0000 (08:34 +0100)]
simplify common type sharing code and fix ref-count inconsistency
Stefan Behnel [Sat, 7 Dec 2013 20:47:57 +0000 (21:47 +0100)]
disable docstring check in pylint
Stefan Behnel [Sat, 7 Dec 2013 14:52:10 +0000 (15:52 +0100)]
fix crash during C++ class type inference
Stefan Behnel [Sat, 7 Dec 2013 14:44:15 +0000 (15:44 +0100)]
fix bytes.join() in Py<=2.5
Stefan Behnel [Sat, 7 Dec 2013 13:15:13 +0000 (14:15 +0100)]
fix return type of repr(): CPython guarantees to return str
Stefan Behnel [Sat, 7 Dec 2013 13:08:03 +0000 (14:08 +0100)]
also optimise basestring.join() since we now infer this type in a couple of places
Stefan Behnel [Sat, 7 Dec 2013 12:30:03 +0000 (13:30 +0100)]
optimise str/bytes.join() and infer the result type; improve type inference for called builtins
Stefan Behnel [Sat, 7 Dec 2013 09:31:57 +0000 (10:31 +0100)]
refactor duplicated code
Stefan Behnel [Sat, 7 Dec 2013 07:24:56 +0000 (08:24 +0100)]
discard useless (PyObject*) casts from values of builtin types which are PyObject* internally anyway (saves lots of C code)
Stefan Behnel [Sat, 7 Dec 2013 07:04:15 +0000 (08:04 +0100)]
set another string length field in exception message format
Stefan Behnel [Sat, 7 Dec 2013 07:01:35 +0000 (08:01 +0100)]
set another string length field in exception message format
Stefan Behnel [Sat, 7 Dec 2013 06:54:17 +0000 (07:54 +0100)]
avoid useless signedness checks in overflow handling when we know the type is signed
Stefan Behnel [Sat, 7 Dec 2013 06:17:58 +0000 (07:17 +0100)]
undo condition change in struct conversion - was required in case of utility code creation
Robert Bradshaw [Sat, 7 Dec 2013 05:37:09 +0000 (21:37 -0800)]
Fix compiler crash in isinstance optimization.
Stefan Behnel [Fri, 6 Dec 2013 22:44:08 +0000 (23:44 +0100)]
reformat some code
Stefan Behnel [Fri, 6 Dec 2013 22:35:05 +0000 (23:35 +0100)]
fix condition to make struct conversion generate struct field conversion helpers at need
--HG--
extra : amend_source :
240f49031159777036e1e6a139b6d736f59de337
Stefan Behnel [Fri, 6 Dec 2013 22:15:59 +0000 (23:15 +0100)]
clean up lots of places where exceptions are being raised to reduce the message building overhead
Stefan Behnel [Fri, 6 Dec 2013 21:25:19 +0000 (22:25 +0100)]
fix C compiler warning when checking int overflow for division by enum values on 32 bit systems (in case anyone cares...)
Stefan Behnel [Fri, 6 Dec 2013 20:57:32 +0000 (21:57 +0100)]
minor improvements in __Pyx_ArgTypeTest() and prevent it from raising C compiler warnings by inlining it
Stefan Behnel [Fri, 6 Dec 2013 18:07:18 +0000 (19:07 +0100)]
fix for-in loop variable inference after enabling list/tuple item type inference
Stefan Behnel [Fri, 6 Dec 2013 17:58:01 +0000 (18:58 +0100)]
extend test
Stefan Behnel [Fri, 6 Dec 2013 17:18:37 +0000 (18:18 +0100)]
infer type of items in tuple/list constants on indexing (especially where all items have the same type)
--HG--
extra : amend_source :
1e8bf2d512c244f48654f43e37283d800e5d961a
Stefan Behnel [Fri, 6 Dec 2013 14:22:52 +0000 (15:22 +0100)]
improve type inference for string %/+/* operations and use more direct C-API calls for these unicode operations
Stefan Behnel [Thu, 5 Dec 2013 18:46:52 +0000 (19:46 +0100)]
minor fix
Stefan Behnel [Sun, 1 Dec 2013 19:02:47 +0000 (20:02 +0100)]
constant fold in-tests against empty containers
--HG--
extra : amend_source :
6fe9294d38a26b208899453b4a12739dcc496c16
Stefan Behnel [Sun, 1 Dec 2013 18:43:44 +0000 (19:43 +0100)]
minor code cleanups
Stefan Behnel [Sun, 1 Dec 2013 17:09:04 +0000 (18:09 +0100)]
allow visitor dispatch methods in pylint
Stefan Behnel [Sun, 1 Dec 2013 17:04:46 +0000 (18:04 +0100)]
simplify some code
Stefan Behnel [Sun, 1 Dec 2013 16:58:58 +0000 (17:58 +0100)]
strip multiplication factor when recursively folding empty sequences