Skip to content

Commit ee859f5

Browse files
committed
[GR-52628] Update torch to 2.2.1
PullRequest: graalpython/3244
2 parents a1b2033 + 5233fc2 commit ee859f5

File tree

27 files changed

+683
-828
lines changed

27 files changed

+683
-828
lines changed

docs/user/Python-Runtime.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ It has the following known issues:
129129
- _pip.exe_ cannot be used directly
130130
- `pip` has trouble with cache file loading, use `--no-cache-dir`
131131
- Only pure Python binary wheels can be installed, no native extensions or source builds
132-
- To install a package, use `myvenv/Scripts/python.cmd -m pip --no-cache-dir install <pkg>`
132+
- To install a package, use `myvenv/Scripts/python.exe -m pip --no-cache-dir install <pkg>`
133133
- Running from PowerShell works better than running from CMD, various scripts will fail on the latter
134134
135135
## Installing Packages

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

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -869,6 +869,7 @@ void initialize_hashes();
869869
void _PyFloat_InitState(PyInterpreterState* state);
870870

871871
Py_LOCAL_SYMBOL TruffleContext* TRUFFLE_CONTEXT;
872+
Py_LOCAL_SYMBOL int graalpy_finalizing;
872873

873874
PyAPI_FUNC(void) initialize_graal_capi(TruffleEnv* env, void* (*getBuiltin)(int id)) {
874875
clock_t t = clock();
@@ -931,25 +932,22 @@ void nop_GraalPyTruffle_BulkNotifyRefCount(void* ptrs, int count) {
931932
* ATTENTION: the array is expected to be NULL-terminated !
932933
*
933934
*/
934-
static int64_t reset_func_ptrs[] = {
935-
&GraalPy_get_PyObject_ob_refcnt,
936-
nop_GraalPy_get_PyObject_ob_refcnt,
937-
&GraalPy_set_PyObject_ob_refcnt,
938-
nop_GraalPy_set_PyObject_ob_refcnt,
939-
&GraalPyTruffle_NotifyRefCount,
940-
nop_GraalPyTruffle_NotifyRefCount,
941-
&GraalPyTruffle_BulkNotifyRefCount,
942-
nop_GraalPyTruffle_NotifyRefCount,
935+
static int64_t reset_ptrs[] = {
936+
&graalpy_finalizing, 1,
937+
&GraalPy_get_PyObject_ob_refcnt, nop_GraalPy_get_PyObject_ob_refcnt,
938+
&GraalPy_set_PyObject_ob_refcnt, nop_GraalPy_set_PyObject_ob_refcnt,
939+
&GraalPyTruffle_NotifyRefCount, nop_GraalPyTruffle_NotifyRefCount,
940+
&GraalPyTruffle_BulkNotifyRefCount, nop_GraalPyTruffle_NotifyRefCount,
943941
/* sentinel (required) */
944942
NULL
945943
};
946944

947945
/*
948946
* This function is called from Java during C API initialization to get the
949-
* pointer to array 'reset_func_pts'.
947+
* pointer to array 'reset_pts'.
950948
*/
951949
PyAPI_FUNC(int64_t *) GraalPy_get_finalize_capi_pointer_array() {
952-
return reset_func_ptrs;
950+
return reset_ptrs;
953951
}
954952

955953
#if ((__linux__ && __GNU_LIBRARY__) || __APPLE__)

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,8 @@ PyAPI_DATA(uint32_t) Py_Truffle_Options;
147147
extern THREAD_LOCAL Py_LOCAL_SYMBOL PyThreadState *tstate_current;
148148
#endif /* GRAALVM_PYTHON_LLVM_MANAGED */
149149

150+
extern Py_LOCAL_SYMBOL int graalpy_finalizing;
151+
150152
/* Flags definitions representing global (debug) options. */
151153
static MUST_INLINE int PyTruffle_Trace_Memory() {
152154
return Py_Truffle_Options & PY_TRUFFLE_TRACE_MEM;

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2019, 2024, 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
@@ -41,7 +41,7 @@
4141
#include "capi.h"
4242

4343
int Py_IsInitialized(void) {
44-
return 1;
44+
return !graalpy_finalizing;
4545
}
4646

4747
void _Py_NO_RETURN _Py_FatalErrorFunc(const char *func, const char *msg) {

graalpython/com.oracle.graal.python.pegparser/src/com/oracle/graal/python/pegparser/tokenizer/Tokenizer.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -391,9 +391,6 @@ private static int[] charsToCodePoints(char[] chars) {
391391
* spec comment are ignored,
392392
*/
393393
public static Tokenizer fromString(ErrorCallback errorCallback, String code, EnumSet<Flag> flags, SourceRange inputSourceRange) {
394-
if (code.length() > 0 && code.charAt(0) == '\\') {
395-
System.out.println("Creating tokenizer for *" + code + "*");
396-
}
397394
return new Tokenizer(errorCallback, charsToCodePoints(code.toCharArray()), flags, inputSourceRange);
398395
}
399396

graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_peepholer.txt

Lines changed: 0 additions & 11 deletions
This file was deleted.

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextAbstractBuiltins.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@
134134
import com.oracle.graal.python.nodes.object.BuiltinClassProfiles.IsBuiltinObjectProfile;
135135
import com.oracle.graal.python.nodes.object.GetClassNode;
136136
import com.oracle.graal.python.nodes.truffle.PythonTypes;
137+
import com.oracle.graal.python.runtime.PythonContext;
137138
import com.oracle.graal.python.runtime.exception.PException;
138139
import com.oracle.truffle.api.CompilerDirectives;
139140
import com.oracle.truffle.api.dsl.Bind;
@@ -962,40 +963,46 @@ Object get(Object obj,
962963
@CApiBuiltin(ret = Int, args = {PyObject, ConstCharPtrAsTruffleString}, call = Direct)
963964
abstract static class PyObject_SetDoc extends CApiBinaryBuiltinNode {
964965
@Specialization
965-
static int set(PBuiltinFunction obj, TruffleString value,
966+
static int set(PBuiltinFunction obj, Object value,
966967
@Shared("write") @Cached WriteAttributeToPythonObjectNode write) {
967968
write.execute(obj, T___DOC__, value);
968969
return 1;
969970
}
970971

971972
@Specialization
972-
static int set(PBuiltinMethod obj, TruffleString value,
973+
static int set(PBuiltinMethod obj, Object value,
973974
@Shared("write") @Cached WriteAttributeToPythonObjectNode write) {
974975
set(obj.getBuiltinFunction(), value, write);
975976
return 1;
976977
}
977978

978979
@Specialization
979-
static int set(GetSetDescriptor obj, TruffleString value,
980+
static int set(GetSetDescriptor obj, Object value,
980981
@Shared("write") @Cached WriteAttributeToPythonObjectNode write) {
981982
write.execute(obj, T___DOC__, value);
982983
return 1;
983984
}
984985

985986
@Specialization(guards = "isType.execute(inliningTarget, type)", limit = "1")
986-
static int set(PythonAbstractNativeObject type, TruffleString value,
987-
@SuppressWarnings("unused") @Bind("this") Node inliningTarget,
987+
static int set(PythonAbstractNativeObject type, Object value,
988+
@Bind("this") Node inliningTarget,
988989
@SuppressWarnings("unused") @Cached IsTypeNode isType,
989990
@Cached CStructAccess.WritePointerNode writePointerNode) {
990-
writePointerNode.write(type.getPtr(), PyTypeObject__tp_doc, new CStringWrapper(value));
991+
Object cValue;
992+
if (value instanceof TruffleString stringValue) {
993+
cValue = new CStringWrapper(stringValue);
994+
} else {
995+
cValue = PythonContext.get(inliningTarget).getNativeNull();
996+
}
997+
writePointerNode.write(type.getPtr(), PyTypeObject__tp_doc, cValue);
991998
return 1;
992999
}
9931000

9941001
@Fallback
9951002
@SuppressWarnings("unused")
9961003
static int set(Object obj, Object value) {
997-
CompilerDirectives.transferToInterpreterAndInvalidate();
998-
throw CompilerDirectives.shouldNotReachHere("Don't know how to set doc for " + obj.getClass());
1004+
// The callers don't expect errors, so just do nothing
1005+
return 1;
9991006
}
10001007
}
10011008
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextCapsuleBuiltins.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@
5252
import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer;
5353
import static com.oracle.graal.python.nodes.ErrorMessages.CALLED_WITH_INVALID_PY_CAPSULE_OBJECT;
5454
import static com.oracle.graal.python.nodes.ErrorMessages.PY_CAPSULE_IMPORT_S_IS_NOT_VALID;
55-
import static com.oracle.graal.python.nodes.statement.AbstractImportNode.T_IMPORT_ALL;
5655
import static com.oracle.graal.python.util.PythonUtils.TS_ENCODING;
5756

5857
import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBinaryBuiltinNode;
@@ -364,7 +363,7 @@ static Object doGeneric(TruffleString name, @SuppressWarnings("unused") int noBl
364363
}
365364
if (object == null) {
366365
// noBlock has no effect anymore since 3.3
367-
object = AbstractImportNode.importModule(trace, T_IMPORT_ALL);
366+
object = AbstractImportNode.importModule(trace);
368367
} else {
369368
object = getAttrNode.execute(object, trace);
370369
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextImportBuiltins.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2021, 2024, 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
@@ -52,7 +52,6 @@
5252
import static com.oracle.graal.python.nodes.BuiltinNames.T_GLOBALS;
5353
import static com.oracle.graal.python.nodes.BuiltinNames.T_LOCALS;
5454
import static com.oracle.graal.python.nodes.BuiltinNames.T___IMPORT__;
55-
import static com.oracle.graal.python.nodes.statement.AbstractImportNode.T_IMPORT_ALL;
5655

5756
import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApi5BuiltinNode;
5857
import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin;
@@ -76,7 +75,7 @@ public final class PythonCextImportBuiltins {
7675
abstract static class PyImport_ImportModule extends CApiUnaryBuiltinNode {
7776
@Specialization
7877
static Object imp(TruffleString name) {
79-
return AbstractImportNode.importModule(name, T_IMPORT_ALL);
78+
return AbstractImportNode.importModule(name);
8079
}
8180
}
8281

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/pickle/PPickler.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import static com.oracle.graal.python.nodes.SpecialMethodNames.T___REDUCE__;
5151
import static com.oracle.graal.python.nodes.StringLiterals.T_NEWLINE;
5252
import static com.oracle.graal.python.nodes.StringLiterals.T_UTF8;
53+
import static com.oracle.graal.python.nodes.statement.AbstractImportNode.importModule;
5354
import static com.oracle.graal.python.runtime.exception.PythonErrorType.KeyError;
5455
import static com.oracle.graal.python.runtime.exception.PythonErrorType.OverflowError;
5556
import static com.oracle.graal.python.runtime.exception.PythonErrorType.PicklingError;
@@ -1831,7 +1832,7 @@ private void saveGlobal(VirtualFrame frame, PythonContext ctx, PPickler pickler,
18311832

18321833
Object module;
18331834
try {
1834-
module = PickleUtils.importDottedModule(moduleName);
1835+
module = importModule(moduleName);
18351836
} catch (PException e) {
18361837
throw raise(PicklingError, ErrorMessages.CANT_PICKLE_P_IMPORT_OF_MODULE_S_FAILED, obj, moduleName);
18371838
}

0 commit comments

Comments
 (0)