Robert Bradshaw [Sat, 28 Dec 2013 00:16:58 +0000 (16:16 -0800)]
whitespace
Stefan Behnel [Fri, 27 Dec 2013 16:22:24 +0000 (17:22 +0100)]
merge
Stefan Behnel [Fri, 27 Dec 2013 16:12:09 +0000 (17:12 +0100)]
handle Py2 compatibility case bytearray.append(pychar)
--HG--
extra : amend_source :
f3b7f004f905c791e6ced2a5b27fffa21f9ceb08
Robert Bradshaw [Fri, 27 Dec 2013 07:29:26 +0000 (23:29 -0800)]
More template parameter deduction.
Robert Bradshaw [Fri, 27 Dec 2013 07:00:31 +0000 (23:00 -0800)]
simple template deduction
Robert Bradshaw [Fri, 27 Dec 2013 01:09:45 +0000 (17:09 -0800)]
Fix declaration error test.
Robert Bradshaw [Thu, 26 Dec 2013 23:59:06 +0000 (15:59 -0800)]
Add function template tests.
Robert Bradshaw [Thu, 26 Dec 2013 23:40:58 +0000 (15:40 -0800)]
Add support for external C++ template functions.
The syntax follows that of template classes, namely
cdef T foo[T](T, ...)
Robert Bradshaw [Thu, 26 Dec 2013 22:41:17 +0000 (14:41 -0800)]
Fix C++ complex for clang.
Robert Bradshaw [Thu, 26 Dec 2013 21:03:45 +0000 (13:03 -0800)]
Complex int division not well defined.
It's sensitive to compiler implementation.
Robert Bradshaw [Thu, 26 Dec 2013 20:47:51 +0000 (12:47 -0800)]
Accept tuple for cythonized extension list.
Stefan Behnel [Wed, 25 Dec 2013 16:03:03 +0000 (17:03 +0100)]
move C declaration before code
Stefan Behnel [Wed, 25 Dec 2013 13:28:44 +0000 (14:28 +0100)]
fix doctest in Py3
Stefan Behnel [Tue, 24 Dec 2013 16:06:04 +0000 (17:06 +0100)]
add integer fast-path to __Pyx_PyIndex_AsSsize_t()
Stefan Behnel [Tue, 24 Dec 2013 15:29:36 +0000 (16:29 +0100)]
inline bytearray.append()
Stefan Behnel [Tue, 24 Dec 2013 13:56:16 +0000 (14:56 +0100)]
disable exception check for special C return type (always assume that it's an exception when -1 is returned)
--HG--
extra : amend_source :
88f30462a27faf52fcee83af0d1dce714e4f7e69
Stefan Behnel [Tue, 24 Dec 2013 13:54:09 +0000 (14:54 +0100)]
optimise object.append() only when return value is not used and adapt signature accordingly
Stefan Behnel [Tue, 24 Dec 2013 12:50:18 +0000 (13:50 +0100)]
fix constant folding of PrimaryCmpNode operands
Stefan Behnel [Tue, 24 Dec 2013 07:16:43 +0000 (08:16 +0100)]
fix crash when looking up closure names in OptimizeBuiltinCalls transform (after running CreateClosureClasses transform)
Stefan Behnel [Sun, 22 Dec 2013 17:21:18 +0000 (18:21 +0100)]
avoid redundant NULL inits for extension type fields in tp_new()
Stefan Behnel [Sun, 22 Dec 2013 07:44:17 +0000 (08:44 +0100)]
merge 0.19.x branch into master
Stefan Behnel [Sat, 21 Dec 2013 21:11:42 +0000 (22:11 +0100)]
fix C compiler warning about unused expression result
Stefan Behnel [Sat, 21 Dec 2013 21:11:42 +0000 (22:11 +0100)]
fix C compiler warning about unused expression result
--HG--
extra : transplant_source : q%D5F8/%0B6%E2%B7R%F3%C9%E1%98%1B%E0X%A0%F1I
Stefan Behnel [Thu, 19 Dec 2013 22:31:51 +0000 (23:31 +0100)]
disable return value saving in finally clauses that only change the GIL status
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