From 34b97942b2b5234a3cb4751bd34ee729defe02ad Mon Sep 17 00:00:00 2001 From: Piotr Sawicki Date: Fri, 12 Dec 2025 16:54:59 +0100 Subject: [PATCH 1/2] [mypyc] Fix compilation of byteswriter_extra_ops --- mypyc/lib-rt/byteswriter_extra_ops.c | 4 ++++ mypyc/lib-rt/byteswriter_extra_ops.h | 7 +++++++ mypyc/lib-rt/function_wrapper.c | 1 - mypyc/lib-rt/getargs.c | 1 - mypyc/lib-rt/librt_base64.h | 2 ++ mypyc/lib-rt/librt_internal.h | 2 ++ mypyc/lib-rt/librt_strings.h | 2 ++ 7 files changed, 17 insertions(+), 2 deletions(-) diff --git a/mypyc/lib-rt/byteswriter_extra_ops.c b/mypyc/lib-rt/byteswriter_extra_ops.c index 03827bf54fea..2a5b13c0d7c9 100644 --- a/mypyc/lib-rt/byteswriter_extra_ops.c +++ b/mypyc/lib-rt/byteswriter_extra_ops.c @@ -3,6 +3,8 @@ #include "byteswriter_extra_ops.h" +#ifdef MYPYC_EXPERIMENTAL + char CPyBytesWriter_Write(PyObject *obj, PyObject *value) { BytesWriterObject *self = (BytesWriterObject *)obj; const char *data; @@ -29,3 +31,5 @@ char CPyBytesWriter_Write(PyObject *obj, PyObject *value) { self->len += size; return CPY_NONE; } + +#endif // MYPYC_EXPERIMENTAL diff --git a/mypyc/lib-rt/byteswriter_extra_ops.h b/mypyc/lib-rt/byteswriter_extra_ops.h index 09cd018d4e5f..885dfe082624 100644 --- a/mypyc/lib-rt/byteswriter_extra_ops.h +++ b/mypyc/lib-rt/byteswriter_extra_ops.h @@ -1,6 +1,11 @@ #ifndef BYTESWRITER_EXTRA_OPS_H #define BYTESWRITER_EXTRA_OPS_H +#ifdef MYPYC_EXPERIMENTAL + +#include +#include + #include "librt_strings.h" static inline CPyTagged @@ -31,4 +36,6 @@ CPyBytesWriter_Append(PyObject *obj, uint8_t value) { char CPyBytesWriter_Write(PyObject *obj, PyObject *value); +#endif // MYPYC_EXPERIMENTAL + #endif diff --git a/mypyc/lib-rt/function_wrapper.c b/mypyc/lib-rt/function_wrapper.c index 8348168776c2..f195d10359e5 100644 --- a/mypyc/lib-rt/function_wrapper.c +++ b/mypyc/lib-rt/function_wrapper.c @@ -33,7 +33,6 @@ static PyObject* CPyFunction_repr(CPyFunction *op) { } static PyObject* CPyFunction_call(PyObject *func, PyObject *args, PyObject *kw) { - PyObject *result; CPyFunction *f = (CPyFunction *)func; vectorcallfunc vc = CPyFunction_func_vectorcall(f); assert(vc); diff --git a/mypyc/lib-rt/getargs.c b/mypyc/lib-rt/getargs.c index 163b9ac2b163..2f71947c9648 100644 --- a/mypyc/lib-rt/getargs.c +++ b/mypyc/lib-rt/getargs.c @@ -437,7 +437,6 @@ static void skipitem(const char **p_format, va_list *p_va) { const char *format = *p_format; - char c = *format++; if (p_va != NULL) { (void) va_arg(*p_va, PyObject **); diff --git a/mypyc/lib-rt/librt_base64.h b/mypyc/lib-rt/librt_base64.h index fedfefd9a38a..122e4d6a3bc3 100644 --- a/mypyc/lib-rt/librt_base64.h +++ b/mypyc/lib-rt/librt_base64.h @@ -12,6 +12,8 @@ import_librt_base64(void) #else // MYPYC_EXPERIMENTAL +#include + #define LIBRT_BASE64_ABI_VERSION 1 #define LIBRT_BASE64_API_VERSION 2 #define LIBRT_BASE64_API_LEN 4 diff --git a/mypyc/lib-rt/librt_internal.h b/mypyc/lib-rt/librt_internal.h index 501162a27980..1b325b20d95b 100644 --- a/mypyc/lib-rt/librt_internal.h +++ b/mypyc/lib-rt/librt_internal.h @@ -1,6 +1,8 @@ #ifndef LIBRT_INTERNAL_H #define LIBRT_INTERNAL_H +#include + // ABI version -- only an exact match is compatible. This will only be changed in // very exceptional cases (likely never) due to strict backward compatibility // requirements. diff --git a/mypyc/lib-rt/librt_strings.h b/mypyc/lib-rt/librt_strings.h index e619435f5292..4069b70ceb43 100644 --- a/mypyc/lib-rt/librt_strings.h +++ b/mypyc/lib-rt/librt_strings.h @@ -12,6 +12,8 @@ import_librt_strings(void) #else // MYPYC_EXPERIMENTAL +#include + // ABI version -- only an exact match is compatible. This will only be changed in // very exceptional cases (likely never) due to strict backward compatibility // requirements. From 7d36140852abcf07e7069d26d48615f7767bdf4e Mon Sep 17 00:00:00 2001 From: Piotr Sawicki Date: Fri, 12 Dec 2025 17:09:59 +0100 Subject: [PATCH 2/2] Increment format --- mypyc/lib-rt/getargs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mypyc/lib-rt/getargs.c b/mypyc/lib-rt/getargs.c index 2f71947c9648..6eb4f750804a 100644 --- a/mypyc/lib-rt/getargs.c +++ b/mypyc/lib-rt/getargs.c @@ -437,6 +437,7 @@ static void skipitem(const char **p_format, va_list *p_va) { const char *format = *p_format; + format++; if (p_va != NULL) { (void) va_arg(*p_va, PyObject **);