Commit 79ddab58 authored by Stefan Behnel's avatar Stefan Behnel

merge of 0.9.6.10.1

parents f669e94f 3e249550
...@@ -2599,7 +2599,7 @@ class TypecastNode(ExprNode): ...@@ -2599,7 +2599,7 @@ class TypecastNode(ExprNode):
error(self.pos, "Casting temporary Python object to non-Python type") error(self.pos, "Casting temporary Python object to non-Python type")
if to_py and not from_py: if to_py and not from_py:
self.result_ctype = py_object_type self.result_ctype = py_object_type
self.is_temp = 1 self.is_temp = 1
def check_const(self): def check_const(self):
self.operand.check_const() self.operand.check_const()
...@@ -2846,7 +2846,7 @@ class NumBinopNode(BinopNode): ...@@ -2846,7 +2846,7 @@ class NumBinopNode(BinopNode):
"/": "PyNumber_Divide", "/": "PyNumber_Divide",
"//": "PyNumber_FloorDivide", "//": "PyNumber_FloorDivide",
"%": "PyNumber_Remainder", "%": "PyNumber_Remainder",
"**": "PyNumber_Power" "**": "PyNumber_Power"
} }
......
...@@ -2532,8 +2532,12 @@ class ForFromStatNode(StatNode): ...@@ -2532,8 +2532,12 @@ class ForFromStatNode(StatNode):
self.target.analyse_target_types(env) self.target.analyse_target_types(env)
self.bound1.analyse_types(env) self.bound1.analyse_types(env)
self.bound2.analyse_types(env) self.bound2.analyse_types(env)
self.bound1 = self.bound1.coerce_to(self.target.type, env) if self.target.type.is_numeric:
self.bound2 = self.bound2.coerce_to(self.target.type, env) self.bound1 = self.bound1.coerce_to(self.target.type, env)
self.bound2 = self.bound2.coerce_to(self.target.type, env)
else:
self.bound1 = self.bound1.coerce_to_integer(env)
self.bound2 = self.bound2.coerce_to_integer(env)
if self.step is not None: if self.step is not None:
if isinstance(self.step, ExprNodes.UnaryMinusNode): if isinstance(self.step, ExprNodes.UnaryMinusNode):
warning(self.step.pos, "Probable infinite loop in for-from-by statment. Consider switching the directions of the relations.", 2) warning(self.step.pos, "Probable infinite loop in for-from-by statment. Consider switching the directions of the relations.", 2)
...@@ -2542,14 +2546,14 @@ class ForFromStatNode(StatNode): ...@@ -2542,14 +2546,14 @@ class ForFromStatNode(StatNode):
if not (self.bound2.is_name or self.bound2.is_literal): if not (self.bound2.is_name or self.bound2.is_literal):
self.bound2 = self.bound2.coerce_to_temp(env) self.bound2 = self.bound2.coerce_to_temp(env)
target_type = self.target.type target_type = self.target.type
if not (target_type.is_pyobject or target_type.is_int): if not (target_type.is_pyobject or target_type.is_numeric):
error(self.target.pos, error(self.target.pos,
"Integer for-loop variable must be of type int or Python object") "Integer for-loop variable must be of type int or Python object")
#if not (target_type.is_pyobject #if not (target_type.is_pyobject
# or target_type.assignable_from(PyrexTypes.c_int_type)): # or target_type.assignable_from(PyrexTypes.c_int_type)):
# error(self.target.pos, # error(self.target.pos,
# "Cannot assign integer to variable of type '%s'" % target_type) # "Cannot assign integer to variable of type '%s'" % target_type)
if target_type.is_int: if target_type.is_numeric:
self.is_py_target = 0 self.is_py_target = 0
self.loopvar_name = self.target.entry.cname self.loopvar_name = self.target.entry.cname
self.py_loopvar_node = None self.py_loopvar_node = None
......
version = '0.9.6.10' version = '0.9.6.10b'
...@@ -18,7 +18,18 @@ py_include_dirs = [ ...@@ -18,7 +18,18 @@ py_include_dirs = [
"/Library/Frameworks/Python.framework/Versions/%s/Headers" % version_string "/Library/Frameworks/Python.framework/Versions/%s/Headers" % version_string
] ]
os.environ["MACOSX_DEPLOYMENT_TARGET"] = "10.3" # MACOSX_DEPLOYMENT_TARGET can be set to 10.3 in most cases.
# But for the built-in Python 2.5.1 on Leopard, it needs to be set for 10.5.
# This looks like a bug that will be fixed in 2.5.2. If Apple updates their
# Python to 2.5.2, this fix should be OK.
import distutils.sysconfig as sc
python_prefix = sc.get_config_var('prefix')
leopard_python_prefix = '/System/Library/Frameworks/Python.framework/Versions/2.5'
full_version = "%s.%s.%s" % sys.version_info[:3]
if python_prefix == leopard_python_prefix and full_version == '2.5.1':
os.environ["MACOSX_DEPLOYMENT_TARGET"] = "10.5"
else:
os.environ["MACOSX_DEPLOYMENT_TARGET"] = "10.3"
compilers = ["gcc", "g++"] compilers = ["gcc", "g++"]
compiler_options = \ compiler_options = \
......
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