[Cython] Specializing str methods?
John Ehresman
jpe at wingware.com
Thu May 19 22:42:47 CEST 2011
On 5/19/11 3:35 PM, Stefan Behnel wrote:
> This is already optimised in Cython/Compiler/Optimize.py ("tailmatch"),
> basically because it allows different numbers of arguments that need to
> be dealt with. It may be worth going the same route for "str". The
> decision usually depends on how complex the code transformation is. The
> method table in Builtins is clearly limited.
I'll look at doing this in Optimize.py. The hunk of my patch below
fixes a generic bug, though. Without it a utility function for a method
is used, but the definition of it is never injected into the C file.
Thanks,
John
diff --git a/Cython/Compiler/ExprNodes.py b/Cython/Compiler/ExprNodes.py
index 6ab8be0..ac7ca67 100755
--- a/Cython/Compiler/ExprNodes.py
+++ b/Cython/Compiler/ExprNodes.py
@@ -3746,6 +3746,8 @@ class AttributeNode(ExprNode):
if entry.is_variable or entry.is_cmethod:
self.type = entry.type
self.member = entry.cname
+ if entry.utility_code:
+ env.use_utility_code(entry.utility_code)
return
else:
# If it's not a variable or C method, it must be a
Python
More information about the cython-devel
mailing list