Skip to content

Commit 421c711

Browse files
committed
Add missing methods to PyNumberMethodsWrapper
1 parent 5952c32 commit 421c711

File tree

2 files changed

+132
-22
lines changed

2 files changed

+132
-22
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/NativeMemberNames.java

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* The Universal Permissive License (UPL), Version 1.0
@@ -105,17 +105,39 @@ public final class NativeMemberNames {
105105
public static final String MD_DICT = "md_dict";
106106
public static final String BUF_DELEGATE = "buf_delegate";
107107
public static final String BUF_READONLY = "readonly";
108+
public static final String NB_ABSOLUTE = "nb_absolute";
108109
public static final String NB_ADD = "nb_add";
109-
public static final String NB_SUBTRACT = "nb_subtract";
110-
public static final String NB_REMAINDER = "nb_remainder";
111110
public static final String NB_AND = "nb_and";
112-
public static final String NB_INDEX = "nb_index";
113-
public static final String NB_POW = "nb_power";
114-
public static final String NB_TRUE_DIVIDE = "nb_true_divide";
111+
public static final String NB_BOOL = "nb_bool";
112+
public static final String NB_DIVMOD = "nb_divmod";
113+
public static final String NB_FLOAT = "nb_float";
115114
public static final String NB_FLOOR_DIVIDE = "nb_floor_divide";
116-
public static final String NB_MULTIPLY = "nb_multiply";
115+
public static final String NB_INDEX = "nb_index";
117116
public static final String NB_INPLACE_ADD = "nb_inplace_add";
117+
public static final String NB_INPLACE_AND = "nb_inplace_and";
118+
public static final String NB_INPLACE_FLOOR_DIVIDE = "nb_inplace_floor_divide";
119+
public static final String NB_INPLACE_LSHIFT = "nb_inplace_lshift";
118120
public static final String NB_INPLACE_MULTIPLY = "nb_inplace_multiply";
121+
public static final String NB_INPLACE_OR = "nb_inplace_or";
122+
public static final String NB_INPLACE_POWER = "nb_inplace_power";
123+
public static final String NB_INPLACE_REMAINDER = "nb_inplace_remainder";
124+
public static final String NB_INPLACE_RSHIFT = "nb_inplace_rshift";
125+
public static final String NB_INPLACE_SUBTRACT = "nb_inplace_subtract";
126+
public static final String NB_INPLACE_TRUE_DIVIDE = "nb_inplace_true_divide";
127+
public static final String NB_INPLACE_XOR = "nb_inplace_xor";
128+
public static final String NB_INT = "nb_int";
129+
public static final String NB_INVERT = "nb_invert";
130+
public static final String NB_LSHIFT = "nb_lshift";
131+
public static final String NB_MULTIPLY = "nb_multiply";
132+
public static final String NB_NEGATIVE = "nb_negative";
133+
public static final String NB_OR = "nb_or";
134+
public static final String NB_POSITIVE = "nb_positive";
135+
public static final String NB_POWER = "nb_power";
136+
public static final String NB_REMAINDER = "nb_remainder";
137+
public static final String NB_RSHIFT = "nb_rshift";
138+
public static final String NB_SUBTRACT = "nb_subtract";
139+
public static final String NB_TRUE_DIVIDE = "nb_true_divide";
140+
public static final String NB_XOR = "nb_xor";
119141
public static final String MP_LENGTH = "mp_length";
120142
public static final String MP_SUBSCRIPT = "mp_subscript";
121143
public static final String MP_ASS_SUBSCRIPT = "mp_ass_subscript";

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/PyNumberMethodsWrapper.java

Lines changed: 103 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* The Universal Permissive License (UPL), Version 1.0
@@ -40,28 +40,72 @@
4040
*/
4141
package com.oracle.graal.python.builtins.objects.cext;
4242

43+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_ABSOLUTE;
4344
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_ADD;
4445
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_AND;
46+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_BOOL;
47+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_DIVMOD;
48+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_FLOAT;
4549
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_FLOOR_DIVIDE;
4650
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INDEX;
4751
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INPLACE_ADD;
52+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INPLACE_AND;
53+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INPLACE_FLOOR_DIVIDE;
54+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INPLACE_LSHIFT;
4855
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INPLACE_MULTIPLY;
56+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INPLACE_OR;
57+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INPLACE_POWER;
58+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INPLACE_REMAINDER;
59+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INPLACE_RSHIFT;
60+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INPLACE_SUBTRACT;
61+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INPLACE_TRUE_DIVIDE;
62+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INPLACE_XOR;
63+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INT;
64+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INVERT;
65+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_LSHIFT;
4966
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_MULTIPLY;
50-
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_POW;
67+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_NEGATIVE;
68+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_OR;
69+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_POSITIVE;
70+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_POWER;
5171
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_REMAINDER;
72+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_RSHIFT;
5273
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_SUBTRACT;
5374
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_TRUE_DIVIDE;
75+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_XOR;
76+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__ABS__;
5477
import static com.oracle.graal.python.nodes.SpecialMethodNames.__ADD__;
5578
import static com.oracle.graal.python.nodes.SpecialMethodNames.__AND__;
79+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__BOOL__;
80+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__DIVMOD__;
81+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__FLOAT__;
5682
import static com.oracle.graal.python.nodes.SpecialMethodNames.__FLOORDIV__;
5783
import static com.oracle.graal.python.nodes.SpecialMethodNames.__IADD__;
84+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__IAND__;
85+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__IFLOORDIV__;
86+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__ILSHIFT__;
87+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__IMOD__;
5888
import static com.oracle.graal.python.nodes.SpecialMethodNames.__IMUL__;
5989
import static com.oracle.graal.python.nodes.SpecialMethodNames.__INDEX__;
90+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__INT__;
91+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__INVERT__;
92+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__IOR__;
93+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__IPOW__;
94+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__IRSHIFT__;
95+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__ISUB__;
96+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__ITRUEDIV__;
97+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__IXOR__;
98+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__LSHIFT__;
6099
import static com.oracle.graal.python.nodes.SpecialMethodNames.__MOD__;
61100
import static com.oracle.graal.python.nodes.SpecialMethodNames.__MUL__;
101+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__NEG__;
102+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__OR__;
103+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__POS__;
62104
import static com.oracle.graal.python.nodes.SpecialMethodNames.__POW__;
105+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__RSHIFT__;
63106
import static com.oracle.graal.python.nodes.SpecialMethodNames.__SUB__;
64107
import static com.oracle.graal.python.nodes.SpecialMethodNames.__TRUEDIV__;
108+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__XOR__;
65109

66110
import com.oracle.graal.python.builtins.objects.type.PythonManagedClass;
67111
import com.oracle.graal.python.nodes.SpecialMethodNames;
@@ -92,31 +136,75 @@
92136
public class PyNumberMethodsWrapper extends PythonNativeWrapper {
93137

94138
@CompilationFinal(dimensions = 1) private static final String[] NUMBER_METHODS = new String[]{
139+
NB_ABSOLUTE,
95140
NB_ADD,
96-
NB_SUBTRACT,
97-
NB_REMAINDER,
98141
NB_AND,
99-
NB_INDEX,
100-
NB_POW,
101-
NB_TRUE_DIVIDE,
142+
NB_BOOL,
143+
NB_DIVMOD,
144+
NB_FLOAT,
102145
NB_FLOOR_DIVIDE,
103-
NB_MULTIPLY,
146+
NB_INDEX,
104147
NB_INPLACE_ADD,
105-
NB_INPLACE_MULTIPLY
148+
NB_INPLACE_AND,
149+
NB_INPLACE_FLOOR_DIVIDE,
150+
NB_INPLACE_LSHIFT,
151+
NB_INPLACE_MULTIPLY,
152+
NB_INPLACE_OR,
153+
NB_INPLACE_POWER,
154+
NB_INPLACE_REMAINDER,
155+
NB_INPLACE_RSHIFT,
156+
NB_INPLACE_SUBTRACT,
157+
NB_INPLACE_TRUE_DIVIDE,
158+
NB_INPLACE_XOR,
159+
NB_INT,
160+
NB_INVERT,
161+
NB_LSHIFT,
162+
NB_MULTIPLY,
163+
NB_NEGATIVE,
164+
NB_OR,
165+
NB_POSITIVE,
166+
NB_POWER,
167+
NB_REMAINDER,
168+
NB_RSHIFT,
169+
NB_SUBTRACT,
170+
NB_TRUE_DIVIDE,
171+
NB_XOR,
106172
};
107173

108174
@CompilationFinal(dimensions = 1) private static final String[] NUMBER_METHODS_MAPPING = new String[]{
175+
__ABS__,
109176
__ADD__,
110-
__SUB__,
111-
__MOD__,
112177
__AND__,
178+
__BOOL__,
179+
__DIVMOD__,
180+
__FLOAT__,
181+
__FLOORDIV__,
113182
__INDEX__,
183+
__IADD__,
184+
__IAND__,
185+
__IFLOORDIV__,
186+
__ILSHIFT__,
187+
__IMUL__,
188+
__IOR__,
189+
__IPOW__,
190+
__IMOD__,
191+
__IRSHIFT__,
192+
__ISUB__,
193+
__ITRUEDIV__,
194+
__IXOR__,
195+
__INT__,
196+
__INVERT__,
197+
__LSHIFT__,
198+
__MUL__,
199+
__NEG__,
200+
__OR__,
201+
__POS__,
114202
__POW__,
203+
__MOD__,
204+
__RSHIFT__,
205+
__SUB__,
115206
__TRUEDIV__,
116-
__FLOORDIV__,
117-
__MUL__,
118-
__IADD__,
119-
__IMUL__
207+
__XOR__
120208
};
121209

122210
public PyNumberMethodsWrapper(PythonManagedClass delegate) {

0 commit comments

Comments
 (0)