Skip to content

Commit 2b46d8f

Browse files
committed
[GR-9846] Refactoring for gmpy
PullRequest: graalpython-open/40
2 parents 730b4c1 + ff2373a commit 2b46d8f

File tree

24 files changed

+463
-651
lines changed

24 files changed

+463
-651
lines changed

graalpython/com.oracle.graal.python.cext/include/Python.h

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -103,17 +103,6 @@
103103
#include "pydebug.h"
104104
#include "code.h"
105105

106-
// our impls
107-
#ifdef Py_True
108-
#undef Py_True
109-
#define Py_True truffle_invoke(PY_TRUFFLE_CEXT, "Py_True")
110-
#endif
111-
112-
#ifdef Py_False
113-
#undef Py_False
114-
#define Py_False truffle_invoke(PY_TRUFFLE_CEXT, "Py_False")
115-
#endif
116-
117106
#undef Py_NoValue
118107
#define Py_NoValue truffle_invoke(PY_TRUFFLE_CEXT, "Py_NoValue")
119108

graalpython/com.oracle.graal.python.cext/src/_warnings.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ static int warn_unicode(PyObject *category, PyObject *message, Py_ssize_t stack_
4646
category = PyExc_RuntimeWarning;
4747
}
4848

49-
PyObject *result = truffle_invoke(PY_TRUFFLE_CEXT, "_PyErr_Warn", to_java(message), to_java(category), stack_level, to_java(source), ERROR_MARKER);
49+
PyObject *result = truffle_invoke(PY_TRUFFLE_CEXT, "_PyErr_Warn", to_java(message), to_java(category), stack_level, to_java(source));
5050
if(result == ERROR_MARKER) {
5151
return -1;
5252
}

graalpython/com.oracle.graal.python.cext/src/abstract.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,23 +54,23 @@ static PyObject* null_error(void) {
5454
}
5555

5656
int PyNumber_Check(PyObject *o) {
57-
PyObject *result = truffle_invoke(PY_TRUFFLE_CEXT, "PyNumber_Check", to_java(o));
57+
PyObject *result = to_sulong(truffle_invoke(PY_TRUFFLE_CEXT, "PyNumber_Check", to_java(o)));
5858
if(result == Py_True) {
5959
return 1;
6060
}
6161
return 0;
6262
}
6363

6464
static PyObject * do_unaryop(PyObject *v, UnaryOp unaryop, char *unaryop_name) {
65-
PyObject *result = truffle_invoke(PY_TRUFFLE_CEXT, "PyNumber_UnaryOp", to_java(v), unaryop, truffle_read_string(unaryop_name), ERROR_MARKER);
65+
PyObject *result = truffle_invoke(PY_TRUFFLE_CEXT, "PyNumber_UnaryOp", to_java(v), unaryop, truffle_read_string(unaryop_name));
6666
if (result == ERROR_MARKER) {
6767
return NULL;
6868
}
6969
return to_sulong(result);
7070
}
7171

7272
static PyObject * do_binop(PyObject *v, PyObject *w, BinOp binop, char *binop_name) {
73-
PyObject *result = truffle_invoke(PY_TRUFFLE_CEXT, "PyNumber_BinOp", to_java(v), to_java(w), binop, truffle_read_string(binop_name), ERROR_MARKER);
73+
PyObject *result = truffle_invoke(PY_TRUFFLE_CEXT, "PyNumber_BinOp", to_java(v), to_java(w), binop, truffle_read_string(binop_name));
7474
if (result == ERROR_MARKER) {
7575
return NULL;
7676
}
@@ -133,7 +133,7 @@ PyObject * PyNumber_Index(PyObject *o) {
133133
if (o == NULL) {
134134
return null_error();
135135
}
136-
PyObject *result = truffle_invoke(PY_TRUFFLE_CEXT, "PyNumber_Index", to_java(o), ERROR_MARKER);
136+
PyObject *result = truffle_invoke(PY_TRUFFLE_CEXT, "PyNumber_Index", to_java(o));
137137
if (result == ERROR_MARKER) {
138138
return NULL;
139139
}
@@ -185,23 +185,23 @@ Py_ssize_t PyNumber_AsSsize_t(PyObject *item, PyObject *err) {
185185
}
186186

187187
PyObject * PyNumber_Long(PyObject *o) {
188-
PyObject *result = truffle_invoke(PY_TRUFFLE_CEXT, "PyNumber_Long", to_java(o), ERROR_MARKER);
188+
PyObject *result = truffle_invoke(PY_TRUFFLE_CEXT, "PyNumber_Long", to_java(o));
189189
if (result == ERROR_MARKER) {
190190
return NULL;
191191
}
192192
return to_sulong(result);
193193
}
194194

195195
PyObject * PyNumber_Float(PyObject *o) {
196-
PyObject *result = truffle_invoke(PY_TRUFFLE_CEXT, "PyNumber_Float", to_java(o), ERROR_MARKER);
196+
PyObject *result = truffle_invoke(PY_TRUFFLE_CEXT, "PyNumber_Float", to_java(o));
197197
if (result == ERROR_MARKER) {
198198
return NULL;
199199
}
200200
return to_sulong(result);
201201
}
202202

203203
PyObject * PyIter_Next(PyObject *iter) {
204-
void* result = polyglot_invoke(PY_TRUFFLE_CEXT, "PyIter_Next", to_java(iter), ERROR_MARKER);
204+
void* result = polyglot_invoke(PY_TRUFFLE_CEXT, "PyIter_Next", to_java(iter));
205205
if (result == ERROR_MARKER && PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) {
206206
PyErr_Clear();
207207
return NULL;
@@ -228,7 +228,7 @@ Py_ssize_t PySequence_Length(PyObject *s) {
228228
#define PySequence_Length PySequence_Size
229229

230230
PyObject* PySequence_GetItem(PyObject *s, Py_ssize_t i) {
231-
void* result = polyglot_invoke(PY_TRUFFLE_CEXT, "PySequence_GetItem", to_java(s), i, ERROR_MARKER);
231+
void* result = polyglot_invoke(PY_TRUFFLE_CEXT, "PySequence_GetItem", to_java(s), i);
232232
if(result == ERROR_MARKER) {
233233
return NULL;
234234
}
@@ -240,23 +240,23 @@ int PySequence_SetItem(PyObject *s, Py_ssize_t i, PyObject *o) {
240240
}
241241

242242
PyObject* PySequence_Tuple(PyObject *v) {
243-
void* result = polyglot_invoke(PY_TRUFFLE_CEXT, "PySequence_Tuple", to_java(v), ERROR_MARKER);
243+
void* result = polyglot_invoke(PY_TRUFFLE_CEXT, "PySequence_Tuple", to_java(v));
244244
if(result == ERROR_MARKER) {
245245
return NULL;
246246
}
247247
return to_sulong(result);
248248
}
249249

250250
PyObject * PySequence_Fast(PyObject *v, const char *m) {
251-
void* result = polyglot_invoke(PY_TRUFFLE_CEXT, "PySequence_Fast", to_java(v), polyglot_from_string(m, "ascii"), ERROR_MARKER);
251+
void* result = polyglot_invoke(PY_TRUFFLE_CEXT, "PySequence_Fast", to_java(v), polyglot_from_string(m, "ascii"));
252252
if(result == ERROR_MARKER) {
253253
return NULL;
254254
}
255255
return to_sulong(result);
256256
}
257257

258258
PyObject * PyMapping_GetItemString(PyObject *o, const char *key) {
259-
void* result = polyglot_invoke(PY_TRUFFLE_CEXT, "PyObject_GetItem", to_java(o), polyglot_from_string(key, "utf-8"), ERROR_MARKER);
259+
void* result = polyglot_invoke(PY_TRUFFLE_CEXT, "PyObject_GetItem", to_java(o), polyglot_from_string(key, "utf-8"));
260260
if(result == ERROR_MARKER) {
261261
return NULL;
262262
}

graalpython/com.oracle.graal.python.cext/src/capi.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ static void initialize_globals() {
6060
truffle_assign_managed(&_Py_TrueStruct, polyglot_as__longobject(to_sulong(jtrue)));
6161
void *jfalse = polyglot_invoke(PY_TRUFFLE_CEXT, "Py_False");
6262
truffle_assign_managed(&_Py_FalseStruct, polyglot_as__longobject(to_sulong(jfalse)));
63+
64+
// error marker
65+
void *jerrormarker = polyglot_as__object(polyglot_get_member(PY_TRUFFLE_CEXT, "error_handler"));
66+
truffle_assign_managed(&marker_struct, jerrormarker);
6367
}
6468

6569
__attribute__((constructor))
@@ -358,7 +362,7 @@ void WritePySSizeT(PyObject* object, int offset, Py_ssize_t value) {
358362

359363
PyObject marker_struct = {
360364
_PyObject_EXTRA_INIT
361-
1, &_PyNone_Type
365+
1, &PyBaseObject_Type
362366
};
363367

364368
#undef WriteMember

graalpython/com.oracle.graal.python.cext/src/capsule.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@ PyObject* PyCapsule_New(void *pointer, const char *name, PyCapsule_Destructor de
4545
}
4646

4747
void * PyCapsule_GetContext(PyObject *o) {
48-
void *result = polyglot_invoke(PY_TRUFFLE_CEXT, "PyCapsule_GetContext", to_java(o), ERROR_MARKER);
48+
void *result = polyglot_invoke(PY_TRUFFLE_CEXT, "PyCapsule_GetContext", to_java(o));
4949
if (result == ERROR_MARKER) {
5050
return NULL;
5151
}
5252
return (void *)as_long(result);
5353
}
5454

5555
void * PyCapsule_GetPointer(PyObject *o, const char *name) {
56-
void *result = polyglot_invoke(PY_TRUFFLE_CEXT, "PyCapsule_GetPointer", to_java(o), polyglot_from_string(name, "ascii"), ERROR_MARKER);
56+
void *result = polyglot_invoke(PY_TRUFFLE_CEXT, "PyCapsule_GetPointer", to_java(o), polyglot_from_string(name, "ascii"));
5757
if (result == ERROR_MARKER) {
5858
return NULL;
5959
}

graalpython/com.oracle.graal.python.cext/src/dictobject.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ int PyDict_SetItem(PyObject* d, PyObject* k, PyObject* v) {
5151
}
5252

5353
PyObject* PyDict_GetItem(PyObject* d, PyObject* k) {
54-
void* result = truffle_invoke(PY_TRUFFLE_CEXT, "PyDict_GetItem", to_java(d), to_java(k), ERROR_MARKER);
54+
void* result = truffle_invoke(PY_TRUFFLE_CEXT, "PyDict_GetItem", to_java(d), to_java(k));
5555
if (result == ERROR_MARKER) {
5656
return NULL;
5757
} else {
@@ -65,7 +65,7 @@ int PyDict_DelItem(PyObject *d, PyObject *key) {
6565

6666

6767
int PyDict_Next(PyObject *d, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue) {
68-
void *tresult = truffle_invoke(PY_TRUFFLE_CEXT, "PyDict_Next", to_java(d), *ppos, ERROR_MARKER);
68+
void *tresult = truffle_invoke(PY_TRUFFLE_CEXT, "PyDict_Next", to_java(d), *ppos);
6969
if (tresult == ERROR_MARKER) {
7070
if(pkey != NULL) {
7171
*pkey = NULL;

graalpython/com.oracle.graal.python.cext/src/errors.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ void PyErr_SetNone(PyObject *exception) {
9999
}
100100

101101
static void _PyErr_GetOrFetchExcInfo(int consume, PyObject **p_type, PyObject **p_value, PyObject **p_traceback) {
102-
PyObject* result = truffle_invoke(PY_TRUFFLE_CEXT, "PyErr_Fetch", (consume ? Py_True : Py_False), ERROR_MARKER);
102+
PyObject* result = truffle_invoke(PY_TRUFFLE_CEXT, "PyErr_Fetch", (consume ? Py_True : Py_False));
103103
if(result == ERROR_MARKER) {
104104
*p_type = NULL;
105105
*p_value = NULL;

graalpython/com.oracle.graal.python.cext/src/floatobject.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ double PyFloat_AsDouble(PyObject *op) {
5151
}
5252

5353
PyObject* PyFloat_FromDouble(double fval) {
54-
PyObject *result = truffle_invoke(PY_TRUFFLE_CEXT, "PyFloat_FromDouble", fval, ERROR_MARKER);
54+
PyObject *result = truffle_invoke(PY_TRUFFLE_CEXT, "PyFloat_FromDouble", fval);
5555
if (result == ERROR_MARKER) {
5656
return NULL;
5757
}

graalpython/com.oracle.graal.python.cext/src/import.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
#include "capi.h"
4040

4141
PyObject* PyImport_ImportModule(const char *name) {
42-
PyObject* result = truffle_invoke(PY_TRUFFLE_CEXT, "PyImport_ImportModule", truffle_read_string(name), ERROR_MARKER);
42+
PyObject* result = truffle_invoke(PY_TRUFFLE_CEXT, "PyImport_ImportModule", truffle_read_string(name));
4343
if (result == ERROR_MARKER) {
4444
return NULL;
4545
} else {

graalpython/com.oracle.graal.python.cext/src/listobject.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
PyTypeObject PyList_Type = PY_TRUFFLE_TYPE("list", &PyType_Type, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_LIST_SUBCLASS);
4343

4444
PyObject* PyList_New(Py_ssize_t size) {
45-
PyObject* result = truffle_invoke(PY_TRUFFLE_CEXT, "PyList_New", size, ERROR_MARKER);
45+
PyObject* result = truffle_invoke(PY_TRUFFLE_CEXT, "PyList_New", size);
4646
if (result == ERROR_MARKER) {
4747
return NULL;
4848
} else {
@@ -51,7 +51,7 @@ PyObject* PyList_New(Py_ssize_t size) {
5151
}
5252

5353
PyObject* PyList_GetItem(PyObject *op, Py_ssize_t i) {
54-
PyObject* result = truffle_invoke(PY_TRUFFLE_CEXT, "PyList_GetItem", to_java(op), i, ERROR_MARKER);
54+
PyObject* result = truffle_invoke(PY_TRUFFLE_CEXT, "PyList_GetItem", to_java(op), i);
5555
if (result == ERROR_MARKER) {
5656
return NULL;
5757
} else {
@@ -76,7 +76,7 @@ PyObject* PyList_AsTuple(PyObject *v) {
7676
PyErr_BadInternalCall();
7777
return NULL;
7878
}
79-
PyObject* result = truffle_invoke(PY_TRUFFLE_CEXT, "PyList_AsTuple", to_java(v), ERROR_MARKER);
79+
PyObject* result = truffle_invoke(PY_TRUFFLE_CEXT, "PyList_AsTuple", to_java(v));
8080
if (result == ERROR_MARKER) {
8181
return NULL;
8282
} else {
@@ -85,7 +85,7 @@ PyObject* PyList_AsTuple(PyObject *v) {
8585
}
8686

8787
PyObject* PyList_GetSlice(PyObject *a, Py_ssize_t ilow, Py_ssize_t ihigh) {
88-
PyObject* result = truffle_invoke(PY_TRUFFLE_CEXT, "PyList_GetSlice", to_java(a), ilow, ihigh, ERROR_MARKER);
88+
PyObject* result = truffle_invoke(PY_TRUFFLE_CEXT, "PyList_GetSlice", to_java(a), ilow, ihigh);
8989
if (result == ERROR_MARKER) {
9090
return NULL;
9191
} else {

0 commit comments

Comments
 (0)