cpython/Python
Łukasz Langa 591019e1f2
[3.14] gh-124621: Emscripten: Support pyrepl in browser (GH-136931) (GH-136988)
Basic support for pyrepl in Emscripten. Limitations:
* requires JSPI
* no signal handling implemented

As followup work, it would be nice to implement a webworker variant
for when JSPI is not available and proper signal handling.

Because it requires JSPI, it doesn't work in Safari. Firefox requires
setting an experimental flag. All the Chromiums have full support since
May. Until we make it work without JSPI, let's keep the original web_example
around.
(cherry picked from commit c933a6bb32)

Co-authored-by: Hood Chatham <roberthoodchatham@gmail.com>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Éric <merwok@netwok.org>
2025-07-22 15:04:11 +02:00
..
clinic GH-133231: Add JIT utilities in sys._jit (GH-133233) 2025-05-05 15:25:22 -07:00
frozen_modules gh-97669: Create Tools/build/ directory (#97963) 2022-10-17 12:01:00 +02:00
_contextvars.c gh-128384: Use a context variable for warnings.catch_warnings (gh-130010) 2025-04-09 16:18:54 -07:00
_warnings.c gh-131927: Prevent emitting optimizer warnings twice in the REPL (#131993) 2025-04-12 11:34:36 +01:00
asdl.c bpo-43244: Remove ast.h, asdl.h, Python-ast.h headers (GH-24933) 2021-03-23 20:47:40 +01:00
asm_trampoline.S [3.14] gh-136541: Fix several problems of perf trampolines in x86_64 and aarch64 (GH-136500) (#136544) 2025-07-11 14:06:19 +00:00
assemble.c gh-87859: Track Code Object Local Kinds For Arguments (gh-132980) 2025-04-29 02:21:47 +00:00
ast.c gh-132661: Implement PEP 750 (#132662) 2025-04-30 11:46:41 +02:00
ast_preprocess.c gh-126835: Rename ast_opt.c to ast_preprocess.c and related stuff after moving const folding to the peephole optimizier (#131830) 2025-05-04 21:07:35 +03:00
ast_unparse.c [3.14] gh-132661: Disallow Template/str concatenation after PEP 750 spec update (#135996) (#136901) 2025-07-21 17:34:54 +02:00
bltinmodule.c [3.14] gh-135443: Sometimes Fall Back to __main__.__dict__ For Globals (gh-135593) 2025-06-16 23:59:30 +00:00
bootstrap_hash.c GH-131238: Core header refactor (GH-131250) 2025-03-17 09:19:04 +00:00
brc.c Fix typos in documentation and comments (#119763) 2024-06-04 10:22:22 +00:00
bytecodes.c [3.14] GH-135171: Fix generator expressions one last time (hopefully) (GH-135225) 2025-06-09 11:04:23 +01:00
ceval.c [3.14] gh-130396: Move PYOS_LOG2_STACK_MARGIN to internal headers (GH-135928) (#136173) 2025-07-01 13:44:32 +00:00
ceval_gil.c [3.14] GH-133136: Revise QSBR to reduce excess memory held (gh-135473) (#135912) 2025-07-08 10:58:01 -07:00
ceval_macros.h GH-133231: Changes to executor management to support proposed sys._jit module (GH-133287) 2025-05-04 10:05:35 +01:00
codecs.c gh-133036: Deprecate codecs.open (#133038) 2025-04-30 10:11:09 +09:00
codegen.c [3.14] gh-132661: Disallow Template/str concatenation after PEP 750 spec update (#135996) (#136901) 2025-07-21 17:34:54 +02:00
compile.c gh-126835: Rename ast_opt.c to ast_preprocess.c and related stuff after moving const folding to the peephole optimizier (#131830) 2025-05-04 21:07:35 +03:00
condvar.h gh-104530: Enable native Win32 condition variables by default (GH-104531) 2024-02-02 13:50:51 +00:00
config_common.h gh-76785: Add PyInterpreterConfig Helpers (gh-117170) 2024-04-02 20:35:52 +00:00
context.c [3.14] gh-133968: Add PyUnicodeWriter_WriteASCII() function (#133973) (#134974) 2025-06-09 14:37:26 +02:00
critical_section.c [3.14] gh-133296: Publicly expose critical section API that accepts PyMutex (gh-135899) (#136969) 2025-07-22 12:44:59 +03:00
crossinterp.c [3.14] gh-135855: Raise TypeError When Passing Non-dict Object to _interpreters.set___main___attrs (gh-135900) 2025-06-24 19:19:31 +00:00
crossinterp_data_lookup.h [3.14] gh-135443: Sometimes Fall Back to __main__.__dict__ For Globals (gh-135593) 2025-06-16 23:59:30 +00:00
crossinterp_exceptions.h [3.14] gh-132775: Clean Up Cross-Interpreter Error Handling (gh-135492) 2025-06-14 02:08:25 +00:00
dtoa.c gh-131238: Add explicit includes to pycore headers (#131257) 2025-03-17 12:32:43 +01:00
dup2.c gh-108765: Python.h no longer includes <unistd.h> (#108783) 2023-09-02 16:50:18 +02:00
dynamic_annotations.c bpo-32241: Add the const qualifire to declarations of umodifiable strings. (#4748) 2017-12-12 13:55:04 +02:00
dynload_hpux.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
dynload_shlib.c gh-131238: Remove more includes from pycore_interp.h (#131480) 2025-03-19 23:01:32 +01:00
dynload_stub.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
dynload_win.c gh-131238: Remove pycore_runtime.h from pycore_pystate.h (#131356) 2025-03-19 17:33:24 +01:00
emscripten_signal.c GH-108614: Unbreak emscripten build (GH-109132) 2023-09-08 17:54:45 +01:00
emscripten_syscalls.c [3.14] gh-124621: Emscripten: Support pyrepl in browser (GH-136931) (GH-136988) 2025-07-22 15:04:11 +02:00
emscripten_trampoline.c [3.14] gh-128627: Emscripten: Add missing semicolon in ios detection code (GH-135590) (#135592) 2025-06-16 23:41:46 +00:00
errors.c gh-132781: Cleanup Code Related to NotShareableError (gh-132782) 2025-04-25 14:43:38 -06:00
executor_cases.c.h [3.14] GH-135171: Fix generator expressions one last time (hopefully) (GH-135225) 2025-06-09 11:04:23 +01:00
fileutils.c gh-124476: Fix decoding from the locale encoding in the C.UTF-8 locale (GH-132477) 2025-04-14 21:32:41 +03:00
flowgraph.c [3.14] gh-134280: Disable constant folding for ~ with a boolean argument (GH-134982) (GH-136185) 2025-07-02 11:28:09 +03:00
formatter_unicode.c GH-131238: Core header refactor (GH-131250) 2025-03-17 09:19:04 +00:00
frame.c gh-131173: Improve exception handling during take_ownership processing (#132620) 2025-04-17 13:38:34 -07:00
frozen.c GH-89435: os.path should not be a frozen module (#126924) 2024-11-22 18:50:30 +00:00
frozenmain.c gh-105716: Fix _PyInterpreterState_IsRunningMain() For Embedders (gh-117140) 2024-03-21 18:20:20 -06:00
future.c gh-126139: Improve error message location for future statement with unknown feature (#126140) 2024-10-29 23:57:59 +00:00
gc.c [3.14] gh-136517: Print uncollectable objects if DEBUG_UNCOLLECTABLE mode was set (GH-136518) (#136522) 2025-07-11 15:20:05 +01:00
gc_free_threading.c [3.14] gh-132917: fix data race on last_mem in free-threading gc (GH-134692) (#134802) 2025-05-27 18:00:19 +00:00
gc_gil.c gh-100240: Use a consistent implementation for freelists (#121934) 2024-07-22 12:08:27 -04:00
generated_cases.c.h [3.14] GH-135171: Fix generator expressions one last time (hopefully) (GH-135225) 2025-06-09 11:04:23 +01:00
getargs.c gh-132987: Support __index__() for "k" and "K" formats in PyArg_Parse (GH-132988) 2025-04-26 17:14:18 +03:00
getcompiler.c closes bpo-43278: remove unnecessary leading '\n' from COMPILER when build with GCC/Clang (GH-24606) 2021-02-25 20:24:21 -08:00
getcopyright.c gh-126133: Only use start year in PSF copyright, remove end years (#126236) 2024-11-12 15:59:19 +02:00
getopt.c GH-133336: Remove reserved `-J` flag for Jython (#133444) 2025-05-05 15:09:19 +00:00
getplatform.c bpo-32150: Expand tabs to spaces in C files. (#4583) 2017-11-28 17:56:10 +02:00
getversion.c [3.14] gh-119132: Remove "experimental" tag from the CPython free-threading. (gh-135550) (gh-135565) 2025-06-16 14:58:14 +00:00
hamt.c [3.14] gh-133968: Add PyUnicodeWriter_WriteASCII() function (#133973) (#134974) 2025-06-09 14:37:26 +02:00
hashtable.c gh-111545: Add Py_HashPointer() function (#112096) 2023-12-06 15:09:22 +01:00
import.c [3.14] gh-135443: Sometimes Fall Back to __main__.__dict__ For Globals (gh-135593) 2025-06-16 23:59:30 +00:00
importdl.c Remove duplicate includes: Python/importdl.c (#132623) 2025-04-18 02:49:19 +01:00
index_pool.c [3.14] gh-91048: Refactor and optimize remote debugging module (#134652) (#134673) 2025-05-25 22:10:20 +00:00
initconfig.c [3.14] gh-102567: Add missing newline to --help-all (GH-136391) (GH-136403) 2025-07-08 06:24:08 +00:00
instruction_sequence.c GH-124715: Move trashcan mechanism into Py_Dealloc (GH-132280) 2025-04-30 11:37:53 +01:00
instrumentation.c [3.14] gh-134411: assert PyLong_FromLong(x) != NULL when x is known to be small (GH-134415) (#136910) 2025-07-21 09:23:33 +00:00
interpconfig.c GH-131238: Core header refactor (GH-131250) 2025-03-17 09:19:04 +00:00
intrinsics.c Get rid of ERROR_IF's "label" parameter (GH-132654) 2025-04-29 17:21:53 -07:00
jit.c gh-132661: Implement PEP 750 (#132662) 2025-04-30 11:46:41 +02:00
legacy_tracing.c gh-111178: fix UBSan failures for Python/legacy_tracing.c (#131611) 2025-03-24 11:00:32 +01:00
lock.c [3.14] gh-134009: Expose PyMutex_IsLocked in the public C API (gh-134365) (#136971) 2025-07-22 12:48:08 +03:00
marshal.c [3.14] gh-136053: Check error for TYPE_SLICE in marshal.c (GH-136054) (GH-136092) 2025-06-29 07:36:04 +00:00
modsupport.c gh-132909: handle overflow for 'K' format in do_mkvalue (#132911) 2025-04-25 11:02:57 +00:00
mysnprintf.c Add a warning message about PyOS_snprintf (#95993) 2022-10-07 11:49:53 -07:00
mystrtoul.c gh-108765: Python.h no longer includes <ctype.h> (#108831) 2023-09-03 18:54:27 +02:00
object_stack.c gh-100240: Use a consistent implementation for freelists (#121934) 2024-07-22 12:08:27 -04:00
opcode_targets.h gh-100239: specialize BINARY_OP/SUBSCR for list-slice (#132626) 2025-05-01 10:28:52 +00:00
optimizer.c GH-133231: Changes to executor management to support proposed sys._jit module (GH-133287) 2025-05-04 10:05:35 +01:00
optimizer_analysis.c [3.14] gh-135608: Add a null check for attribute promotion to fix a JIT crash (GH-135613) (#135739) 2025-06-20 15:24:25 +08:00
optimizer_bytecodes.c [3.14] gh-135608: Add a null check for attribute promotion to fix a JIT crash (GH-135613) (#135739) 2025-06-20 15:24:25 +08:00
optimizer_cases.c.h [3.14] gh-135608: Add a null check for attribute promotion to fix a JIT crash (GH-135613) (#135739) 2025-06-20 15:24:25 +08:00
optimizer_symbols.c GH-131331: Rename "not" to "invert" (GH-131334) 2025-03-20 16:59:41 -07:00
parking_lot.c [3.14] gh-135099: Only wait on _PyOS_SigintEvent() in main thread (GH-135100) (GH-135116) 2025-06-04 08:44:35 -04:00
pathconfig.c gh-111924: Fix data races when swapping allocators (gh-130287) 2025-02-20 11:31:15 -05:00
perf_jit_trampoline.c [3.14] gh-136541: Fix several problems of perf trampolines in x86_64 and aarch64 (GH-136500) (#136544) 2025-07-11 14:06:19 +00:00
perf_trampoline.c [3.14] gh-136541: Fix several problems of perf trampolines in x86_64 and aarch64 (GH-136500) (#136544) 2025-07-11 14:06:19 +00:00
preconfig.c gh-106320: Remove private pylifecycle.h functions (#106400) 2023-07-04 09:41:43 +00:00
pyarena.c Chore: Fix typo in pyarena.c (#126527) 2024-11-07 16:37:41 +01:00
pyctype.c
pyfpe.c bpo-46315: Add ifdef HAVE_ feature checks for WASI compatibility (GH-30507) 2022-01-13 09:46:04 +01:00
pyhash.c gh-122854: Add Py_HashBuffer() function (#122855) 2024-08-30 15:42:27 +00:00
pylifecycle.c [3.14] gh-136421: Load _datetime static types during interpreter initialization (GH-136583) (GH-136943) 2025-07-21 19:23:05 -04:00
pymath.c bpo-45440: Remove pymath.c fallbacks (GH-28977) 2021-10-15 19:45:34 +02:00
pystate.c [3.14] gh-136870: fix data race in PyThreadState_Clear on sys_tracing_threads (GH-136951) (#136953) 2025-07-21 21:01:14 +00:00
pystrcmp.c gh-108767: Replace ctype.h functions with pyctype.h functions (#108772) 2023-09-01 18:36:53 +02:00
pystrhex.c gh-108765: pystrhex: Replace stdlib.h abs() with Py_ABS() (#108830) 2023-09-02 23:15:54 +02:00
pystrtod.c gh-120026: soft deprecate Py_HUGE_VAL macro (#120027) 2024-11-01 22:04:31 +00:00
Python-ast.c [3.14] gh-133968: Add PyUnicodeWriter_WriteASCII() function (#133973) (#134974) 2025-06-09 14:37:26 +02:00
Python-tokenize.c gh-111178: Fix function signatures for test_types (#131455) 2025-03-19 13:46:17 +00:00
pythonrun.c [3.14] gh-132775: Add _PyCode_GetScriptXIData() (gh-133676) 2025-05-08 10:05:34 -06:00
pytime.c gh-131238: Remove pycore_runtime.h from pycore_pystate.h (#131356) 2025-03-19 17:33:24 +01:00
qsbr.c [3.14] GH-133136: Revise QSBR to reduce excess memory held (gh-135473) (#135912) 2025-07-08 10:58:01 -07:00
README
remote_debug.h [3.14] gh-91048: Revert the memory cache removal for remote debugging (GH-136440) (#136443) 2025-07-09 02:21:56 +01:00
remote_debugging.c [3.14] gh-134876: Add fallback for when process_vm_readv fails with ENOSYS (GH-134878) (#135240) 2025-06-07 18:56:38 +00:00
specialize.c [3.14] gh-132815: Add support for JUMP_BACKWARD in specialization stats (GH-135606) (#135612) 2025-06-17 12:38:22 +00:00
stackrefs.c [3.14] gh-133590: ensure that TableEntry.linenumber_borrow is initialized (GH-133681) (#133872) 2025-05-11 08:44:22 +00:00
stdlib_module_names.h GH-91048: Minor fixes for `_remotedebugging & rename to _remote_debugging` (#133398) 2025-05-05 02:30:14 +02:00
structmember.c gh-132685: fix thread safety of PyMember_GetOne with _Py_T_OBJECT (#132690) 2025-04-18 21:03:42 +05:30
suggestions.c GH-131238: Core header refactor (GH-131250) 2025-03-17 09:19:04 +00:00
symtable.c gh-132661: Implement PEP 750 (#132662) 2025-04-30 11:46:41 +02:00
sysmodule.c [3.14] gh-135645: Added supports_isolated_interpreters to sys.implementation (GH-135667) (#135786) 2025-06-21 08:21:50 +00:00
thread.c gh-131238: Add explicit includes to pycore headers (#131257) 2025-03-17 12:32:43 +01:00
thread_nt.h GH-131296: Add missing UNREACHABLE mark in thread_nt.h (GH-131589) 2025-03-31 20:28:35 +01:00
thread_pthread.h gh-130115: fix thread identifiers for 32-bit musl (#130391) 2025-04-04 16:31:37 +02:00
thread_pthread_stubs.h gh-125161: return non zero value in pthread_self on wasi (#125303) 2024-10-13 20:59:41 +05:30
tier2_engine.md Docs: fix spelling of the word 'transferring' (#116641) 2024-03-13 23:53:32 +01:00
traceback.c GH-124715: Move trashcan mechanism into Py_Dealloc (GH-132280) 2025-04-30 11:37:53 +01:00
tracemalloc.c gh-131296: fix clang-cl warning in tracemalloc.c (#131514) 2025-03-22 10:38:47 +01:00
uniqueid.c gh-128923: Use zero to indicate unassigned unique id (#128925) 2025-01-17 16:42:27 +01:00
vm-state.md gh-133079: Remove Py_C_RECURSION_LIMIT & PyThreadState.c_recursion_remaining (GH-133080) 2025-04-29 12:56:20 +02:00

Miscellaneous source files for the main Python shared library