I see that Cygwin only supports Python 3.9.16 (or 3.9.18 as a test
version), which is a couple of years old.

I'm sure there's work to support newer versions, but I don't know
the details.

I've succesfully built 3.13.3 and 3.14.0a7 from source, with the
patch at the bottom of this email.

There are still some issues, including lack of support for asyncio
due to the missing epoll API.  (And I'm curious why clockid_t is
defined as unsigned long; it seems like overkill.)

Hope this is helpful.

commit c1e99d313386789d201a38c68f6d962f60324ace (v3.13.3_cygwin)
Author: Keith Thompson <keith.s.thomp...@gmail.com>
Date:   2025-04-26 16:16:27 -0700

    clockid_t is unsigned long on Cygwin

diff --git Modules/timemodule.c Modules/timemodule.c
index 49626d32fd3..a08fbfb57cc 100644
--- Modules/timemodule.c
+++ Modules/timemodule.c
@@ -189,6 +189,8 @@ time_clockid_converter(PyObject *obj, clockid_t *p)
     long long clk_id = PyLong_AsLongLong(obj);
 #elif defined(__DragonFly__)
     long clk_id = PyLong_AsLong(obj);
+#elif defined(__CYGWIN__)
+    unsigned long clk_id = PyLong_AsUnsignedLong(obj);
 #else
     int clk_id = PyLong_AsInt(obj);
 #endif

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to