Hi,
There will be a breaking API change for JIT related API in LLVM
12. Mostly about making control over various aspects easier, and then
building on top of that providing new features (like JIT compiling in
the background and making it easier to share JIT compiled output between
processes).
I've worked with Lang Hames to ensure that the new C API has feature
parity...
The postgres changes are fairly localized, all in llvmjit.c - it's just
a few #ifdefs to support both LLVM 12 and before.
The two questions I have are:
1) Which versions do we want to add LLVM 12 support? It'd be fairly
easy to backport all the way. But it's not quite a bugfix... OTOH,
it'd probably painful for packagers to have dependencies on different
versions of LLVM for different versions of postgres.
2) When do we want to add LLVM 12 support? PG will soon stop compiling
against LLVM 12, which will be released in about 6 months. I worked
with Lang to make most of the breaking changes in a branch (to be
merged in the next few days), but it's possible that there will be a
few smaller changes.
I'd be inclined to add support for LLVM 12 to master soon, and then
backpatch that support around LLVM 12's release.
Comments?
Greetings,
Andres Freund