Skip to content

Commit 39072dc

Browse files
committed
Functions should not have __reduce__
1 parent cb69fc7 commit 39072dc

File tree

2 files changed

+21
-19
lines changed

2 files changed

+21
-19
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/function/AbstractFunctionBuiltins.java

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2017, 2022, Oracle and/or its affiliates.
2+
* Copyright (c) 2017, 2023, Oracle and/or its affiliates.
33
* Copyright (c) 2014, Regents of the University of California
44
*
55
* All rights reserved.
@@ -26,7 +26,6 @@
2626

2727
package com.oracle.graal.python.builtins.objects.function;
2828

29-
import static com.oracle.graal.python.nodes.BuiltinNames.T_GETATTR;
3029
import static com.oracle.graal.python.nodes.SpecialAttributeNames.J___ANNOTATIONS__;
3130
import static com.oracle.graal.python.nodes.SpecialAttributeNames.J___CLOSURE__;
3231
import static com.oracle.graal.python.nodes.SpecialAttributeNames.J___DICT__;
@@ -38,7 +37,6 @@
3837
import static com.oracle.graal.python.nodes.SpecialAttributeNames.T___NAME__;
3938
import static com.oracle.graal.python.nodes.SpecialAttributeNames.T___TEXT_SIGNATURE__;
4039
import static com.oracle.graal.python.nodes.SpecialMethodNames.J___CALL__;
41-
import static com.oracle.graal.python.nodes.SpecialMethodNames.J___REDUCE__;
4240
import static com.oracle.graal.python.nodes.StringLiterals.T_COMMA_SPACE;
4341
import static com.oracle.graal.python.nodes.StringLiterals.T_EQ;
4442
import static com.oracle.graal.python.nodes.StringLiterals.T_LPAREN;
@@ -60,8 +58,6 @@
6058
import com.oracle.graal.python.builtins.objects.dict.PDict;
6159
import com.oracle.graal.python.builtins.objects.module.PythonModule;
6260
import com.oracle.graal.python.builtins.objects.object.PythonObject;
63-
import com.oracle.graal.python.builtins.objects.tuple.PTuple;
64-
import com.oracle.graal.python.lib.PyObjectGetAttr;
6561
import com.oracle.graal.python.lib.PyObjectGetItem;
6662
import com.oracle.graal.python.nodes.ErrorMessages;
6763
import com.oracle.graal.python.nodes.argument.CreateArgumentsNode;
@@ -359,17 +355,4 @@ public static TextSignatureNode create() {
359355
return AbstractFunctionBuiltinsFactory.TextSignatureNodeFactory.create();
360356
}
361357
}
362-
363-
@Builtin(name = J___REDUCE__, minNumOfPositionalArgs = 1, maxNumOfPositionalArgs = 2)
364-
@GenerateNodeFactory
365-
public abstract static class ReduceNode extends PythonBuiltinNode {
366-
@Specialization
367-
Object doBuiltinFunc(VirtualFrame frame, PBuiltinFunction func, @SuppressWarnings("unused") Object obj,
368-
@Cached PyObjectGetAttr getAttr) {
369-
PythonModule builtins = getCore().getBuiltins();
370-
Object getattr = getAttr.execute(frame, builtins, T_GETATTR);
371-
PTuple args = factory().createTuple(new Object[]{func.getEnclosingType(), func.getName()});
372-
return factory().createTuple(new Object[]{getattr, args});
373-
}
374-
}
375358
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/function/BuiltinFunctionBuiltins.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2017, 2022, Oracle and/or its affiliates.
2+
* Copyright (c) 2017, 2023, Oracle and/or its affiliates.
33
* Copyright (c) 2014, Regents of the University of California
44
*
55
* All rights reserved.
@@ -26,9 +26,11 @@
2626

2727
package com.oracle.graal.python.builtins.objects.function;
2828

29+
import static com.oracle.graal.python.nodes.BuiltinNames.T_GETATTR;
2930
import static com.oracle.graal.python.nodes.SpecialAttributeNames.J___NAME__;
3031
import static com.oracle.graal.python.nodes.SpecialAttributeNames.J___QUALNAME__;
3132
import static com.oracle.graal.python.nodes.SpecialMethodNames.J___OBJCLASS__;
33+
import static com.oracle.graal.python.nodes.SpecialMethodNames.J___REDUCE__;
3234

3335
import java.util.List;
3436

@@ -37,6 +39,9 @@
3739
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
3840
import com.oracle.graal.python.builtins.PythonBuiltins;
3941
import com.oracle.graal.python.builtins.objects.PNone;
42+
import com.oracle.graal.python.builtins.objects.module.PythonModule;
43+
import com.oracle.graal.python.builtins.objects.tuple.PTuple;
44+
import com.oracle.graal.python.lib.PyObjectGetAttr;
4045
import com.oracle.graal.python.nodes.ErrorMessages;
4146
import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
4247
import com.oracle.graal.python.nodes.function.builtins.PythonBinaryBuiltinNode;
@@ -49,6 +54,7 @@
4954
import com.oracle.truffle.api.dsl.NodeFactory;
5055
import com.oracle.truffle.api.dsl.Specialization;
5156
import com.oracle.truffle.api.dsl.TypeSystemReference;
57+
import com.oracle.truffle.api.frame.VirtualFrame;
5258
import com.oracle.truffle.api.profiles.ConditionProfile;
5359
import com.oracle.truffle.api.strings.TruffleString;
5460

@@ -104,4 +110,17 @@ Object objclass(PBuiltinFunction self,
104110
return getPythonClass(self.getEnclosingType(), profile);
105111
}
106112
}
113+
114+
@Builtin(name = J___REDUCE__, minNumOfPositionalArgs = 1)
115+
@GenerateNodeFactory
116+
public abstract static class ReduceNode extends PythonUnaryBuiltinNode {
117+
@Specialization
118+
Object doBuiltinFunc(VirtualFrame frame, PBuiltinFunction func,
119+
@Cached PyObjectGetAttr getAttr) {
120+
PythonModule builtins = getCore().getBuiltins();
121+
Object getattr = getAttr.execute(frame, builtins, T_GETATTR);
122+
PTuple args = factory().createTuple(new Object[]{func.getEnclosingType(), func.getName()});
123+
return factory().createTuple(new Object[]{getattr, args});
124+
}
125+
}
107126
}

0 commit comments

Comments
 (0)