Skip to content

Commit 3a661f2

Browse files
committed
[GR-67172] Fixes for Cython, part 1
PullRequest: graalpython/3894
2 parents 9ec4e12 + 3b71d03 commit 3a661f2

File tree

23 files changed

+543
-144
lines changed

23 files changed

+543
-144
lines changed

.github/workflows/downstream-tests.yml

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,36 +12,40 @@ jobs:
1212
name:
1313
- pybind11
1414
- virtualenv
15-
# Currently fails
16-
# - pyo3
15+
- pyo3
1716
os:
1817
- id: ubuntu-latest
19-
graalpy_platform: linux-amd64
18+
platform: linux
19+
arch: amd64
2020
- id: macos-latest
21-
graalpy_platform: darwin-aarch64
21+
platform: darwin
22+
arch: aarch64
2223

2324
runs-on: ${{ matrix.os.id }}
2425

2526
steps:
26-
- name: Install CMake
27-
if: ${{ matrix.name == 'pybind11' }}
28-
uses: lukka/get-cmake@latest
29-
with:
30-
cmakeVersion: 3.30.8
31-
ninjaVersion: 1.12.1
27+
- name: Install CMake (Linux)
28+
if: ${{ matrix.os.platform == 'linux' && matrix.name == 'pybind11' }}
29+
run: |
30+
sudo apt-get update
31+
sudo apt-get install -y cmake
32+
33+
- name: Install CMake (Darwin)
34+
if: ${{ matrix.os.platform == 'darwin' && matrix.name == 'pybind11' }}
35+
run: brew install cmake
3236

3337
- name: Install Rust toolchain
3438
if: ${{ matrix.name == 'pyo3' }}
35-
uses: actions-rs/toolchain@v1
36-
with:
37-
toolchain: stable
39+
run: |
40+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
41+
echo "${HOME}/.cargo/bin" >> $GITHUB_PATH
3842
3943
- name: Checkout main repository
4044
uses: actions/checkout@v4
4145

4246
- name: Get GraalPy EA build
4347
run: |
44-
tarball="$(curl -sfL https://raw.githubusercontent.com/graalvm/graal-languages-ea-builds/refs/heads/main/graalpy/versions/latest-native-${{ matrix.os.graalpy_platform }}.url)"
48+
tarball="$(curl -sfL https://raw.githubusercontent.com/graalvm/graal-languages-ea-builds/refs/heads/main/graalpy/versions/latest-native-${{ matrix.os.platform }}-${{ matrix.os.arch}}.url)"
4549
curl -sfL "$tarball" | tar xz
4650
4751
- name: Run downstream tests for ${{ matrix.name }}

.pre-commit-config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@ repos:
3434
language: python
3535
types: [text]
3636
files: '\.(java|py|md|c|h|sh)$'
37+
exclude: '^graalpython/lib-python/.*'

graalpython/com.oracle.graal.python.cext/CAPIFunctions.txt

Lines changed: 62 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,9 @@ PyDescr_NewMember;PyObject*;PyTypeObject*|PyMemberDef*
120120
PyDescr_NewMethod;PyObject*;PyTypeObject*|PyMethodDef*
121121
PyDescr_NewWrapper;PyObject*;PyTypeObject*|struct wrapperbase*|void*
122122
PyDictProxy_New;PyObject*;PyObject*
123+
PyDict_AddWatcher;int;PyDict_WatchCallback
123124
PyDict_Clear;void;PyObject*
125+
PyDict_ClearWatcher;int;int
124126
PyDict_Contains;int;PyObject*|PyObject*
125127
PyDict_Copy;PyObject*;PyObject*
126128
PyDict_DelItem;int;PyObject*|PyObject*
@@ -138,19 +140,23 @@ PyDict_SetDefault;PyObject*;PyObject*|PyObject*|PyObject*
138140
PyDict_SetItem;int;PyObject*|PyObject*|PyObject*
139141
PyDict_SetItemString;int;PyObject*|const char*|PyObject*
140142
PyDict_Size;Py_ssize_t;PyObject*
143+
PyDict_Unwatch;int;int|PyObject*
141144
PyDict_Update;int;PyObject*|PyObject*
142145
PyDict_Values;PyObject*;PyObject*
146+
PyDict_Watch;int;int|PyObject*
143147
PyErr_BadArgument;int;void
144148
PyErr_BadInternalCall;void;void
145149
PyErr_CheckSignals;int;void
146150
PyErr_Clear;void;void
147151
PyErr_Display;void;PyObject*|PyObject*|PyObject*
152+
PyErr_DisplayException;void;PyObject*
148153
PyErr_ExceptionMatches;int;PyObject*
149154
PyErr_Fetch;void;PyObject**|PyObject**|PyObject**
150155
PyErr_Format;PyObject*;PyObject*|const char*|...
151156
PyErr_FormatV;PyObject*;PyObject*|const char*|va_list
152157
PyErr_GetExcInfo;void;PyObject**|PyObject**|PyObject**
153158
PyErr_GetHandledException;PyObject*;void
159+
PyErr_GetRaisedException;PyObject*;void
154160
PyErr_GivenExceptionMatches;int;PyObject*|PyObject*
155161
PyErr_NewException;PyObject*;const char*|PyObject*|PyObject*
156162
PyErr_NewExceptionWithDoc;PyObject*;const char*|const char*|PyObject*|PyObject*
@@ -176,6 +182,7 @@ PyErr_SetInterrupt;void;void
176182
PyErr_SetInterruptEx;int;int
177183
PyErr_SetNone;void;PyObject*
178184
PyErr_SetObject;void;PyObject*|PyObject*
185+
PyErr_SetRaisedException;void;PyObject*
179186
PyErr_SetString;void;PyObject*|const char*
180187
PyErr_SyntaxLocation;void;const char*|int
181188
PyErr_SyntaxLocationEx;void;const char*|int|int
@@ -208,12 +215,16 @@ PyEval_ReleaseThread;void;PyThreadState*
208215
PyEval_RestoreThread;void;PyThreadState*
209216
PyEval_SaveThread;PyThreadState*;void
210217
PyEval_SetProfile;void;Py_tracefunc|PyObject*
218+
PyEval_SetProfileAllThreads;void;Py_tracefunc|PyObject*
211219
PyEval_SetTrace;void;Py_tracefunc|PyObject*
220+
PyEval_SetTraceAllThreads;void;Py_tracefunc|PyObject*
212221
PyEval_ThreadsInitialized;int;void
213222
PyExceptionClass_Name;const char*;PyObject*
223+
PyException_GetArgs;PyObject*;PyObject*
214224
PyException_GetCause;PyObject*;PyObject*
215225
PyException_GetContext;PyObject*;PyObject*
216226
PyException_GetTraceback;PyObject*;PyObject*
227+
PyException_SetArgs;void;PyObject*|PyObject*
217228
PyException_SetCause;void;PyObject*|PyObject*
218229
PyException_SetContext;void;PyObject*|PyObject*
219230
PyException_SetTraceback;int;PyObject*|PyObject*
@@ -247,9 +258,13 @@ PyFrame_GetGlobals;PyObject*;PyFrameObject*
247258
PyFrame_GetLasti;int;PyFrameObject*
248259
PyFrame_GetLineNumber;int;PyFrameObject*
249260
PyFrame_GetLocals;PyObject*;PyFrameObject*
261+
PyFrame_GetVar;PyObject*;PyFrameObject*|PyObject*
262+
PyFrame_GetVarString;PyObject*;PyFrameObject*|const char*
250263
PyFrame_LocalsToFast;void;PyFrameObject*|int
251264
PyFrame_New;PyFrameObject*;PyThreadState*|PyCodeObject*|PyObject*|PyObject*
252265
PyFrozenSet_New;PyObject*;PyObject*
266+
PyFunction_AddWatcher;int;PyFunction_WatchCallback
267+
PyFunction_ClearWatcher;int;int
253268
PyFunction_GetAnnotations;PyObject*;PyObject*
254269
PyFunction_GetClosure;PyObject*;PyObject*
255270
PyFunction_GetCode;PyObject*;PyObject*
@@ -272,6 +287,7 @@ PyGILState_Check;int;void
272287
PyGILState_Ensure;PyGILState_STATE;void
273288
PyGILState_GetThisThreadState;PyThreadState*;void
274289
PyGILState_Release;void;PyGILState_STATE
290+
PyGen_GetCode;PyCodeObject*;PyGenObject*
275291
PyGen_New;PyObject*;PyFrameObject*
276292
PyGen_NewWithQualName;PyObject*;PyFrameObject*|PyObject*|PyObject*
277293
PyHash_GetFuncDef;PyHash_FuncDef*;void
@@ -504,7 +520,9 @@ PyObject_GetAttr;PyObject*;PyObject*|PyObject*
504520
PyObject_GetAttrString;PyObject*;PyObject*|const char*
505521
PyObject_GetBuffer;int;PyObject*|Py_buffer*|int
506522
PyObject_GetItem;PyObject*;PyObject*|PyObject*
523+
PyObject_GetItemData;void*;PyObject*
507524
PyObject_GetIter;PyObject*;PyObject*
525+
PyObject_GetTypeData;void*;PyObject*|PyTypeObject*
508526
PyObject_HasAttr;int;PyObject*|PyObject*
509527
PyObject_HasAttrString;int;PyObject*|const char*
510528
PyObject_Hash;Py_hash_t;PyObject*
@@ -588,7 +606,6 @@ PySet_Discard;int;PyObject*|PyObject*
588606
PySet_New;PyObject*;PyObject*
589607
PySet_Pop;PyObject*;PyObject*
590608
PySet_Size;Py_ssize_t;PyObject*
591-
PySignal_SetWakeupFd;int;int
592609
PySlice_AdjustIndices;Py_ssize_t;Py_ssize_t|Py_ssize_t*|Py_ssize_t*|Py_ssize_t
593610
PySlice_GetIndices;int;PyObject*|Py_ssize_t|Py_ssize_t*|Py_ssize_t*|Py_ssize_t*
594611
PySlice_GetIndicesEx;int;PyObject*|Py_ssize_t|Py_ssize_t*|Py_ssize_t*|Py_ssize_t*|Py_ssize_t*
@@ -678,23 +695,30 @@ PyTuple_New;PyObject*;Py_ssize_t
678695
PyTuple_Pack;PyObject*;Py_ssize_t|...
679696
PyTuple_SetItem;int;PyObject*|Py_ssize_t|PyObject*
680697
PyTuple_Size;Py_ssize_t;PyObject*
698+
PyType_AddWatcher;int;PyType_WatchCallback
681699
PyType_ClearCache;unsigned int;void
700+
PyType_ClearWatcher;int;int
701+
PyType_FromMetaclass;PyObject*;PyTypeObject*|PyObject*|PyType_Spec*|PyObject*
682702
PyType_FromModuleAndSpec;PyObject*;PyObject*|PyType_Spec*|PyObject*
683703
PyType_FromSpec;PyObject*;PyType_Spec*
684704
PyType_FromSpecWithBases;PyObject*;PyType_Spec*|PyObject*
685705
PyType_GenericAlloc;PyObject*;PyTypeObject*|Py_ssize_t
686706
PyType_GenericNew;PyObject*;PyTypeObject*|PyObject*|PyObject*
707+
PyType_GetDict;PyObject*;PyTypeObject*
687708
PyType_GetFlags;unsigned long;PyTypeObject*
688709
PyType_GetModule;PyObject*;PyTypeObject*
689710
PyType_GetModuleByDef;PyObject*;PyTypeObject*|PyModuleDef*
690711
PyType_GetModuleState;void*;PyTypeObject*
691712
PyType_GetName;PyObject*;PyTypeObject*
692713
PyType_GetQualName;PyObject*;PyTypeObject*
693714
PyType_GetSlot;void*;PyTypeObject*|int
715+
PyType_GetTypeDataSize;Py_ssize_t;PyTypeObject*
694716
PyType_IsSubtype;int;PyTypeObject*|PyTypeObject*
695717
PyType_Modified;void;PyTypeObject*
696718
PyType_Ready;int;PyTypeObject*
697719
PyType_SUPPORTS_WEAKREFS;int;PyTypeObject*
720+
PyType_Unwatch;int;int|PyObject*
721+
PyType_Watch;int;int|PyObject*
698722
PyUnicodeDecodeError_Create;PyObject*;const char*|const char*|Py_ssize_t|Py_ssize_t|Py_ssize_t|const char*
699723
PyUnicodeDecodeError_GetEncoding;PyObject*;PyObject*
700724
PyUnicodeDecodeError_GetEnd;int;PyObject*|Py_ssize_t*
@@ -806,8 +830,22 @@ PyUnstable_Code_GetExtra;int;PyObject*|Py_ssize_t|void**
806830
PyUnstable_Code_New;PyCodeObject*;int|int|int|int|int|PyObject*|PyObject*|PyObject*|PyObject*|PyObject*|PyObject*|PyObject*|PyObject*|PyObject*|int|PyObject*|PyObject*
807831
PyUnstable_Code_NewWithPosOnlyArgs;PyCodeObject*;int|int|int|int|int|int|PyObject*|PyObject*|PyObject*|PyObject*|PyObject*|PyObject*|PyObject*|PyObject*|PyObject*|int|PyObject*|PyObject*
808832
PyUnstable_Code_SetExtra;int;PyObject*|Py_ssize_t|void*
833+
PyUnstable_Eval_RequestCodeExtraIndex;Py_ssize_t;freefunc
834+
PyUnstable_Exc_PrepReraiseStar;PyObject*;PyObject*|PyObject*
835+
PyUnstable_GC_VisitObjects;void;gcvisitobjects_t|void*
836+
PyUnstable_InterpreterFrame_GetCode;PyObject*;struct _PyInterpreterFrame*
837+
PyUnstable_InterpreterFrame_GetLasti;int;struct _PyInterpreterFrame*
838+
PyUnstable_InterpreterFrame_GetLine;int;struct _PyInterpreterFrame*
839+
PyUnstable_Long_CompactValue;Py_ssize_t;const PyLongObject*
840+
PyUnstable_Long_IsCompact;int;const PyLongObject*
841+
PyUnstable_Object_GC_NewWithExtraData;PyObject*;PyTypeObject*|size_t
842+
PyUnstable_PerfMapState_Fini;void;void
843+
PyUnstable_PerfMapState_Init;int;void
844+
PyUnstable_Type_AssignVersionTag;int;PyTypeObject*
845+
PyUnstable_WritePerfMapEntry;int;const void*|unsigned int|const char*
809846
PyVectorcall_Call;PyObject*;PyObject*|PyObject*|PyObject*
810847
PyVectorcall_Function;vectorcallfunc;PyObject*
848+
PyVectorcall_NARGS;Py_ssize_t;size_t
811849
PyWeakref_GetObject;PyObject*;PyObject*
812850
PyWeakref_NewProxy;PyObject*;PyObject*|PyObject*
813851
PyWeakref_NewRef;PyObject*;PyObject*|PyObject*
@@ -861,6 +899,7 @@ Py_LeaveRecursiveCall;void;void
861899
Py_Main;int;int|wchar_t**
862900
Py_MakePendingCalls;int;void
863901
Py_NewInterpreter;PyThreadState*;void
902+
Py_NewInterpreterFromConfig;PyStatus;PyThreadState**|const PyInterpreterConfig*
864903
Py_NewRef;PyObject*;PyObject*
865904
Py_PreInitialize;PyStatus;const PyPreConfig*
866905
Py_PreInitializeFromArgs;PyStatus;const PyPreConfig*|Py_ssize_t|wchar_t**
@@ -942,27 +981,29 @@ _PyDict_SetItemId;int;PyObject*|_Py_Identifier*|PyObject*
942981
_PyDict_SetItem_KnownHash;int;PyObject*|PyObject*|PyObject*|Py_hash_t
943982
_PyDict_SizeOf;Py_ssize_t;PyDictObject*
944983
_PyErr_BadInternalCall;void;const char*|int
945-
_PyErr_ChainExceptions;void;PyObject*|PyObject*|PyObject*
946984
_PyErr_ChainExceptions1;void;PyObject*
985+
_PyErr_ChainExceptions;void;PyObject*|PyObject*|PyObject*
947986
_PyErr_CheckSignals;int;void
948987
_PyErr_FormatFromCause;PyObject*;PyObject*|const char*|...
949988
_PyErr_GetExcInfo;void;PyThreadState*|PyObject**|PyObject**|PyObject**
950989
_PyErr_GetHandledException;PyObject*;PyThreadState*
951990
_PyErr_GetTopmostException;_PyErr_StackItem*;PyThreadState*
952991
_PyErr_ProgramDecodedTextObject;PyObject*;PyObject*|int|const char*
992+
_PyErr_SetFromPyStatus;PyObject*;PyStatus
953993
_PyErr_SetHandledException;void;PyThreadState*|PyObject*
954994
_PyErr_SetKeyError;void;PyObject*
955995
_PyErr_WriteUnraisableMsg;void;const char*|PyObject*
956996
_PyEval_EvalFrameDefault;PyObject*;PyThreadState*|struct _PyInterpreterFrame*|int
957997
_PyEval_GetBuiltin;PyObject*;PyObject*
958998
_PyEval_GetBuiltinId;PyObject*;_Py_Identifier*
959999
_PyEval_GetSwitchInterval;unsigned long;void
1000+
_PyEval_MakePendingCalls;int;PyThreadState*
9601001
_PyEval_SetProfile;int;PyThreadState*|Py_tracefunc|PyObject*
9611002
_PyEval_SetSwitchInterval;void;unsigned long
9621003
_PyEval_SetTrace;int;PyThreadState*|Py_tracefunc|PyObject*
9631004
_PyEval_SliceIndex;int;PyObject*|Py_ssize_t*
9641005
_PyEval_SliceIndexNotNone;int;PyObject*|Py_ssize_t*
965-
PyUnstable_Eval_RequestCodeExtraIndex;Py_ssize_t;freefunc
1006+
_PyException_AddNote;int;PyObject*|PyObject*
9661007
_PyFrame_IsEntryFrame;int;PyFrameObject*
9671008
_PyFunction_Vectorcall;PyObject*;PyObject*|PyObject*const*|size_t|PyObject*
9681009
_PyGILState_GetInterpreterStateUnsafe;PyInterpreterState*;void
@@ -1000,6 +1041,7 @@ _PyLong_Format;PyObject*;PyObject*|int
10001041
_PyLong_Frexp;double;PyLongObject*|Py_ssize_t*
10011042
_PyLong_FromByteArray;PyObject*;const unsigned char*|size_t|int|int
10021043
_PyLong_FromBytes;PyObject*;const char*|Py_ssize_t|int
1044+
_PyLong_FromDigits;PyLongObject*;int|Py_ssize_t|digit*
10031045
_PyLong_FromTime_t;PyObject*;time_t
10041046
_PyLong_GCD;PyObject*;PyObject*|PyObject*
10051047
_PyLong_Lshift;PyObject*;PyObject*|size_t
@@ -1034,6 +1076,7 @@ _PyObject_CallMethodId_SizeT;PyObject*;PyObject*|_Py_Identifier*|const char*|...
10341076
_PyObject_CallMethod_SizeT;PyObject*;PyObject*|const char*|const char*|...
10351077
_PyObject_CheckConsistency;int;PyObject*|int
10361078
_PyObject_CheckCrossInterpreterData;int;PyObject*
1079+
_PyObject_ClearManagedDict;void;PyObject*
10371080
_PyObject_DebugTypeStats;void;FILE*
10381081
_PyObject_Dump;void;PyObject*
10391082
_PyObject_FastCall;PyObject*;PyObject*|PyObject*const*|Py_ssize_t
@@ -1061,6 +1104,7 @@ _PyObject_NextNotImplemented;PyObject*;PyObject*
10611104
_PyObject_RealIsInstance;int;PyObject*|PyObject*
10621105
_PyObject_RealIsSubclass;int;PyObject*|PyObject*
10631106
_PyObject_SetAttrId;int;PyObject*|_Py_Identifier*|PyObject*
1107+
_PyObject_VisitManagedDict;int;PyObject*|visitproc|void*
10641108
_PyRun_AnyFileObject;int;FILE*|PyObject*|int|PyCompilerFlags*
10651109
_PyRun_InteractiveLoopObject;int;FILE*|PyObject*|PyCompilerFlags*
10661110
_PyRun_SimpleFileObject;int;FILE*|PyObject*|int|PyCompilerFlags*
@@ -1090,6 +1134,7 @@ _PyTime_AsTimespec_clamp;void;_PyTime_t|struct timespec*
10901134
_PyTime_AsTimeval;int;_PyTime_t|struct timeval*|_PyTime_round_t
10911135
_PyTime_AsTimevalTime_t;int;_PyTime_t|time_t*|int*|_PyTime_round_t
10921136
_PyTime_AsTimeval_clamp;void;_PyTime_t|struct timeval*|_PyTime_round_t
1137+
_PyTime_FromMicrosecondsClamp;_PyTime_t;_PyTime_t
10931138
_PyTime_FromMillisecondsObject;int;_PyTime_t*|PyObject*|_PyTime_round_t
10941139
_PyTime_FromNanoseconds;_PyTime_t;_PyTime_t
10951140
_PyTime_FromNanosecondsObject;int;_PyTime_t*|PyObject*
@@ -1109,7 +1154,18 @@ _PyTime_ObjectToTimespec;int;PyObject*|time_t*|long*|_PyTime_round_t
11091154
_PyTime_ObjectToTimeval;int;PyObject*|time_t*|long*|_PyTime_round_t
11101155
_PyTime_gmtime;int;time_t|struct tm*
11111156
_PyTime_localtime;int;time_t|struct tm*
1157+
_PyTraceMalloc_ClearTraces;void;void
1158+
_PyTraceMalloc_GetMemory;size_t;void
1159+
_PyTraceMalloc_GetObjectTraceback;PyObject*;PyObject*
11121160
_PyTraceMalloc_GetTraceback;PyObject*;unsigned int|uintptr_t
1161+
_PyTraceMalloc_GetTracebackLimit;int;void
1162+
_PyTraceMalloc_GetTracedMemory;PyObject*;void
1163+
_PyTraceMalloc_GetTraces;PyObject*;void
1164+
_PyTraceMalloc_Init;int;void
1165+
_PyTraceMalloc_IsTracing;int;void
1166+
_PyTraceMalloc_ResetPeak;void;void
1167+
_PyTraceMalloc_Start;int;int
1168+
_PyTraceMalloc_Stop;void;void
11131169
_PyTraceback_Add;void;const char*|const char*|int
11141170
_PyTrash_begin;int;PyThreadState*|PyObject*
11151171
_PyTrash_cond;int;PyObject*|destructor
@@ -1190,6 +1246,7 @@ _PyUnicode_WideCharString_Opt_Converter;int;PyObject*|void*
11901246
_PyUnicode_XStrip;PyObject*;PyObject*|int|PyObject*
11911247
_PyWeakref_ClearRef;void;PyWeakReference*
11921248
_PyWeakref_GetWeakrefCount;Py_ssize_t;PyWeakReference*
1249+
_Py_AtExit;int;PyInterpreterState*|atexit_datacallbackfunc|void*
11931250
_Py_BreakPoint;void;void
11941251
_Py_BuildValue_SizeT;PyObject*;const char*|...
11951252
_Py_CheckFunctionResult;PyObject*;PyThreadState*|PyObject*|PyObject*|const char*
@@ -1210,8 +1267,10 @@ _Py_IncRef;void;PyObject*
12101267
_Py_InitializeMain;PyStatus;void
12111268
_Py_IsCoreInitialized;int;void
12121269
_Py_IsFinalizing;int;void
1270+
_Py_IsInterpreterFinalizing;int;PyInterpreterState*
12131271
_Py_LegacyLocaleDetected;int;int
12141272
_Py_NewReference;void;PyObject*
1273+
_Py_NewReferenceNoTotal;void;PyObject*
12151274
_Py_RestoreSignals;void;void
12161275
_Py_SetLocaleFromEnv;char*;int
12171276
_Py_SetProgramFullPath;void;const wchar_t*

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* Copyright (c) 2024, Oracle and/or its affiliates.
1+
/* Copyright (c) 2024, 2025, Oracle and/or its affiliates.
22
* Copyright (C) 1996-2024 Python Software Foundation
33
*
44
* Licensed under the PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
@@ -5555,10 +5555,12 @@ _PyObject_IsInstanceDictEmpty(PyObject *obj)
55555555
}
55565556
return ((PyDictObject *)dict)->ma_used == 0;
55575557
}
5558+
#endif // GraalPy change
55585559

55595560
void
55605561
_PyObject_FreeInstanceAttributes(PyObject *self)
55615562
{
5563+
#if 0 // GraalPy change
55625564
PyTypeObject *tp = Py_TYPE(self);
55635565
assert(Py_TYPE(self)->tp_flags & Py_TPFLAGS_MANAGED_DICT);
55645566
PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(self);
@@ -5571,11 +5573,13 @@ _PyObject_FreeInstanceAttributes(PyObject *self)
55715573
Py_XDECREF(values->values[i]);
55725574
}
55735575
free_values(values);
5576+
#endif // GraalPy change
55745577
}
55755578

55765579
int
55775580
_PyObject_VisitManagedDict(PyObject *obj, visitproc visit, void *arg)
55785581
{
5582+
#if 0 // GraalPy change
55795583
PyTypeObject *tp = Py_TYPE(obj);
55805584
if((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0) {
55815585
return 0;
@@ -5593,12 +5597,14 @@ _PyObject_VisitManagedDict(PyObject *obj, visitproc visit, void *arg)
55935597
PyObject *dict = _PyDictOrValues_GetDict(dorv);
55945598
Py_VISIT(dict);
55955599
}
5600+
#endif // GraalPy change
55965601
return 0;
55975602
}
55985603

55995604
void
56005605
_PyObject_ClearManagedDict(PyObject *obj)
56015606
{
5607+
#if 0 // GraalPy change
56025608
PyTypeObject *tp = Py_TYPE(obj);
56035609
if((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0) {
56045610
return;
@@ -5620,8 +5626,8 @@ _PyObject_ClearManagedDict(PyObject *obj)
56205626
Py_DECREF(dict);
56215627
}
56225628
}
5623-
}
56245629
#endif // GraalPy change
5630+
}
56255631

56265632
PyObject *
56275633
PyObject_GenericGetDict(PyObject *obj, void *context)

0 commit comments

Comments
 (0)