Commit 43a9402d authored by Stefan Behnel's avatar Stefan Behnel

Move future division #defines out of ModuleNode.py.

parent a3842d42
...@@ -626,6 +626,8 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -626,6 +626,8 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
from .. import __version__ from .. import __version__
code.putln('#define CYTHON_ABI "%s"' % __version__.replace('.', '_')) code.putln('#define CYTHON_ABI "%s"' % __version__.replace('.', '_'))
code.putln("#define CYTHON_FUTURE_DIVISION %d" % (
Future.division in env.context.future_directives))
self._put_setup_code(code, "CModulePreamble") self._put_setup_code(code, "CModulePreamble")
if env.context.options.cplus: if env.context.options.cplus:
...@@ -645,20 +647,6 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -645,20 +647,6 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
} }
""" % (Naming.filename_cname, Naming.filetable_cname, Naming.lineno_cname, cinfo)) """ % (Naming.filename_cname, Naming.filetable_cname, Naming.lineno_cname, cinfo))
code.put("""
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
#define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
#else
""")
if Future.division in env.context.future_directives:
code.putln(" #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)")
code.putln(" #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)")
else:
code.putln(" #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)")
code.putln(" #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y)")
code.putln("#endif")
code.putln("") code.putln("")
self.generate_extern_c_macro_definition(code) self.generate_extern_c_macro_definition(code)
code.putln("") code.putln("")
......
...@@ -244,6 +244,14 @@ ...@@ -244,6 +244,14 @@
#define __Pyx_PyThreadState_Current _PyThreadState_Current #define __Pyx_PyThreadState_Current _PyThreadState_Current
#endif #endif
#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
#define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
#define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
#else
#define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)
#define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y)
#endif
/* new Py3.3 unicode type (PEP 393) */ /* new Py3.3 unicode type (PEP 393) */
#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
#define CYTHON_PEP393_ENABLED 1 #define CYTHON_PEP393_ENABLED 1
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment