Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
nexedi
cython
Commits
425863ba
Commit
425863ba
authored
Jul 15, 2016
by
Stefan Behnel
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '0.24.x'
Conflicts: CHANGES.rst docs/src/reference/compilation.rst
parents
272a299f
320f67b5
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
31 additions
and
10 deletions
+31
-10
CHANGES.rst
CHANGES.rst
+25
-10
Cython/Compiler/ModuleNode.py
Cython/Compiler/ModuleNode.py
+6
-0
No files found.
CHANGES.rst
View file @
425863ba
...
@@ -11,15 +11,10 @@ Features added
...
@@ -11,15 +11,10 @@ Features added
* Dynamic Python attributes are allowed on cdef classes if an attribute
* Dynamic Python attributes are allowed on cdef classes if an attribute
``cdef dict __dict__`` is declared in the class. Patch by empyrical.
``cdef dict __dict__`` is declared in the class. Patch by empyrical.
* IPython cell magic supports "-3" argument as in "%%cython -3".
* for-loop iteration over "std::string".
* for-loop iteration over "std::string".
* Cython implemented C++ classes can make direct calls to base class methods.
* Cython implemented C++ classes can make direct calls to base class methods.
* Macros defined in the ``distutils`` compiler option do not require values
anymore. Patch by Ian Henriksen.
* New directive ``cython.no_gc`` to fully disable GC for a cdef class.
* New directive ``cython.no_gc`` to fully disable GC for a cdef class.
* Buffer variables are no longer excluded from ``locals()``.
* Buffer variables are no longer excluded from ``locals()``.
...
@@ -31,17 +26,37 @@ Bugs fixed
...
@@ -31,17 +26,37 @@ Bugs fixed
* Division of complex numbers avoids overflow by using Smith's method.
* Division of complex numbers avoids overflow by using Smith's method.
* Namespaced C++ types could not be used as memory view types due to lack of
Other changes
name mangling. Patch by Ivan Smirnov.
-------------
* Usage of ``Cython.Distutils.build_ext`` is now discouraged.
0.24.1 (2016-07-15)
===================
* IPython cell magic was lacking a good way to enable Python 3 code semantics.
It can now be used as "%%cython -3".
* Follow a recent change in `PEP 492 <https://www.python.org/dev/peps/pep-0498/>`_
* Follow a recent change in `PEP 492 <https://www.python.org/dev/peps/pep-0498/>`_
and CPython 3.5.1 that now requires the ``__aiter__()`` method of asynchronous
and CPython 3.5.1 that now requires the ``__aiter__()`` method of asynchronous
iterators to be a simple ``def`` method instead of an ``async def`` method.
iterators to be a simple ``def`` method instead of an ``async def`` method.
Other changes
* Coroutines and generators were lacking the ``__module__`` special attribute.
-------------
* Usage of ``Cython.Distutils.build_ext`` is now discouraged.
* Namespaced C++ types could not be used as memory view types due to lack of
name mangling. Patch by Ivan Smirnov.
* Assignments between the identical C++ types that were declared with differently
typedefed template types could fail.
* Rebuilds could fail to evaluate dependency timestamps in C++ mode.
Path by Ian Henriksen.
* Macros defined in the ``distutils`` compiler option do not require values
anymore. Patch by Ian Henriksen.
* Minor fixes for MSVC, Cygwin and PyPy.
0.24 (2016-04-04)
0.24 (2016-04-04)
...
...
Cython/Compiler/ModuleNode.py
View file @
425863ba
...
@@ -2056,8 +2056,14 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
...
@@ -2056,8 +2056,14 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
old_error_label
=
code
.
new_error_label
()
old_error_label
=
code
.
new_error_label
()
code
.
putln
(
"if (0);"
)
# so the first one can be "else if"
code
.
putln
(
"if (0);"
)
# so the first one can be "else if"
msvc_count
=
0
for
name
,
entry
in
sorted
(
env
.
entries
.
items
()):
for
name
,
entry
in
sorted
(
env
.
entries
.
items
()):
if
entry
.
is_cglobal
and
entry
.
used
:
if
entry
.
is_cglobal
and
entry
.
used
:
msvc_count
+=
1
if
msvc_count
%
100
==
0
:
code
.
putln
(
"#ifdef _MSC_VER"
)
code
.
putln
(
"if (0); /* Workaround for MSVC C1061. */"
)
code
.
putln
(
"#endif"
)
code
.
putln
(
'else if (__Pyx_StrEq(name, "%s")) {'
%
name
)
code
.
putln
(
'else if (__Pyx_StrEq(name, "%s")) {'
%
name
)
if
entry
.
type
.
is_pyobject
:
if
entry
.
type
.
is_pyobject
:
if
entry
.
type
.
is_extension_type
or
entry
.
type
.
is_builtin_type
:
if
entry
.
type
.
is_extension_type
or
entry
.
type
.
is_builtin_type
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment