Re: Use Python "Limited API" in PL/Python

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: Jakob Egger <jakob@eggerapps.at>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-01-15T22:20:58Z
Lists: pgsql-hackers

Attachments

On 15.01.25 12:28, Jakob Egger wrote:
> On 14.01.2025, at 16:51, Jakob Egger <jakob@eggerapps.at> wrote:
>> I've tried to create a patch with this change. I'm attaching it to 
>> this message so that cfbot picks it up. (I was unable to reproduce the 
>> issue locally)
> 
> Apologies, please disregard my last patch. It does not work.
> 
> It looks like meson just can't build libraries that link with Python 
> that use the limited API.
> 
> My understanding of Meson is limited, so I am unsure how to best work 
> around this limitation.
> 
> I've spent two days trying to figure it out; I'm at the end of my wits.

Thanks for checking.  I've also been poking at this, without success.

What we could do is just not activate the limited API on Windows 
(actually MSVC, since it works on MinGW).  If someone later finds a way 
to make it work on Windows/MSVC, then it's easy to change.

So here is an updated patch set with that change.  It should pass cfbot 
like this.

Commits

  1. Enable Python Limited API for PL/Python on MSVC

  2. Activate Python "Limited API" in PL/Python

  3. Prepare for Python "Limited API" in PL/Python

  4. Remove obsolete Python version check