enable attribute access of cdef functions
authorRobert Bradshaw <robertwb@math.washington.edu>
Mon, 10 Sep 2007 17:35:20 +0000 (10:35 -0700)
committerRobert Bradshaw <robertwb@math.washington.edu>
Mon, 10 Sep 2007 17:35:20 +0000 (10:35 -0700)
Cython/Compiler/CmdLine.py
Cython/Compiler/ExprNodes.py
Cython/Compiler/ModuleNode.py
Cython/Compiler/Version.py

index 84f9e2beab2aaab701deb5156d4f919069e6cd1c..aefa24fb5db57792018bbf451660c7eb66c78b3f 100644 (file)
@@ -22,7 +22,7 @@ Options:
   -z, --pre-import <module>      If specified, assume undeclared names in this 
                                  module. Emulates the behavior of putting 
                                  "from <module> import *" at the top of the file. 
-  --incref_local_binop           Force local an extra incref on local variables before
+  --incref-local-binop           Force local an extra incref on local variables before
                                  performing any binary operations. 
 """  
 #The following experimental options are supported only on MacOSX:
@@ -78,7 +78,7 @@ def parse_command_line(args):
                 Options.embed_pos_in_docstring = 1
             elif option in ("-z", "--pre-import"):
                 Options.pre_import = pop_arg()
-            elif option == "--incref_local_binop":
+            elif option == "--incref-local-binop":
                 Options.incref_local_binop = 1
             else:
                 bad_usage()
index f4e59964851aaeda7da8f7d6f2c79b07206daef3..8e506cfd15aebe1c674791720879db259d5de563 100644 (file)
@@ -1626,7 +1626,8 @@ class AttributeNode(ExprNode):
         self.obj.analyse_types(env)
         self.analyse_attribute(env)
         if self.entry and self.entry.is_cmethod and not self.is_called:
-            error(self.pos, "C method can only be called")
+#            error(self.pos, "C method can only be called")
+            pass
         ## Reference to C array turns into pointer to first element.
         #while self.type.is_array:
         #      self.type = self.type.element_ptr_type()
@@ -2837,7 +2838,7 @@ class CmpNode:
                 and op not in ('is', 'is_not')):
             return 1
         else:
-            return 0
+            return type1.is_cfunction and type1.is_cfunction and type1 == type2
 
     def generate_operation_code(self, code, result_code, 
             operand1, op , operand2):
index 390860cf896ef3c9b33c9421c8f290cb1af73be2..c52bede43ec2de68efcda72f64c62c9d756b3be1 100644 (file)
@@ -158,7 +158,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
             module_list.append(env)
         
     def generate_module_preamble(self, env, cimported_modules, code):
-        code.putln('/* Generated by Pyrex %s on %s */' % (
+        code.putln('/* Generated by Cython %s on %s */' % (
             Version.version, time.asctime()))
         code.putln('')
         code.putln('#define PY_SSIZE_T_CLEAN')
index 8e4c1ebe71381de8f71088e052a34e8db39736c1..a167c422f4f63131cbed21786a3691c6a24d14b0 100644 (file)
@@ -1 +1 @@
-version = '0.9.6.5'
+version = '0.9.6.6'