Re: ABI Compliance Checker GSoC Project

2025-09-21 Thread David E. Wheeler
On Sep 12, 2025, at 13:53, Tom Lane wrote: > That seems substantially more complicated than just moving which > commit is considered the baseline. It might be less reliable too: > if the exclusions are written sloppily, they might hide problems > we'd rather find out about. (I do not regard val

Re: ABI Compliance Checker GSoC Project

2025-09-17 Thread David E. Wheeler
On Sep 12, 2025, at 10:37, Peter Eisentraut wrote: > This was a change that was intentionally backpatched in a different way in > order to preserve ABI compatibility. Compare commits 344662848ac on > REL_18_STABLE and 0b934d3994f on REL_17_STABLE. So everything is in order. :) Excellent! But

Re: ABI Compliance Checker GSoC Project

2025-09-17 Thread Álvaro Herrera
On 2025-Sep-12, Tom Lane wrote: > My concern is that when we get a report, we might decide to apply > some fix to remove the ABI delta, or we might decide it's intentional > and/or harmless and leave the code as-is. In the latter case, the > ABI-checking BF animal(s) will be red until the next re

Re: ABI Compliance Checker GSoC Project

2025-09-12 Thread Tom Lane
=?utf-8?Q?=C3=81lvaro?= Herrera writes: > On 2025-Sep-12, Tom Lane wrote: >> My concern is that when we get a report, we might decide to apply >> some fix to remove the ABI delta, or we might decide it's intentional >> and/or harmless and leave the code as-is. > The solution I propose for this (w

Re: ABI Compliance Checker GSoC Project

2025-09-12 Thread Tom Lane
Peter Eisentraut writes: > On 12.09.25 16:52, David E. Wheeler wrote: >> Excellent! But an example like this presumably helps make Tom’s case that >> each branch could have a file that suggests which commit to use as the base >> for comparison, so that in this example it could be set to 34466284

Re: ABI Compliance Checker GSoC Project

2025-09-12 Thread Peter Eisentraut
On 08.09.25 17:17, David E. Wheeler wrote: The RC1 change surprised me a little; here’s the log: Leaf changes summary: 1 artifact changed Changed leaf types summary: 0 leaf type changed Removed/Changed/Added functions summary: 0 Removed, 1 Changed, 0 Added function Removed/Changed/Added variabl

Re: ABI Compliance Checker GSoC Project

2025-09-12 Thread David E. Wheeler
On Sep 12, 2025, at 11:37, Peter Eisentraut wrote: > I don't think we need any ABI checking until there is a dot-0 release, so I > don't agree that a facility like that is needed. Hrm. I wonder how best to filter out a branch without a dot-0 tag. > Just compare against the previous release tag

Re: ABI Compliance Checker GSoC Project

2025-09-12 Thread Peter Eisentraut
On 12.09.25 16:52, David E. Wheeler wrote: On Sep 12, 2025, at 10:37, Peter Eisentraut wrote: This was a change that was intentionally backpatched in a different way in order to preserve ABI compatibility. Compare commits 344662848ac on REL_18_STABLE and 0b934d3994f on REL_17_STABLE. So ev

Re: ABI Compliance Checker GSoC Project

2025-09-08 Thread David E. Wheeler
On Sep 1, 2025, at 09:12, David E. Wheeler wrote: >> Also, I think we can also have a configuration option for animal owners to >> toggle ABI change status on or off, thoughts? > > Mabye? Might be worth waiting to see how much of an issue it is. If there is > a failure a then a fix, it should

Re: ABI Compliance Checker GSoC Project

2025-09-01 Thread David E. Wheeler
On Aug 31, 2025, at 10:17, Mankirat Singh wrote: > I have updated the module to report a failure status whenever any ABI change > is detected without specific conditions. For example, the image attached from > my local server gave a failure status on the ABICompCheck step when comparing > REL_

Re: ABI Compliance Checker GSoC Project

2025-08-31 Thread Mankirat Singh
On Wed, 27 Aug 2025 at 22:44, David E. Wheeler wrote: > > I plan to work on false positives by adding abidiff suppression files per branch (possibly managed in a community repo). I’d love to hear ideas on this. > Also, what rules should be put in place to make a build “fail” based on what has chan

Re: ABI Compliance Checker GSoC Project

2025-08-27 Thread David E. Wheeler
On Aug 26, 2025, at 17:43, Mankirat Singh wrote: > If ABI differences are found, you’ll see "log files for step > abi-compliance-check:"; if not, you’ll see "no abi diffs found in this run" > (example [3]). I’m quite happy to have a working build farm animal making these reports. Yesterday I

Re: ABI Compliance Checker GSoC Project

2025-08-26 Thread Mankirat Singh
Hello Hackers Again! It's been a long time since we last had a talk and I have a good update on this project. If someone is new to this thread so for your context, initially I worked on checking ABI breakages in PostgreSQL by comparing every two commits on the stable branches using BuildFarm. But

Re: ABI Compliance Checker GSoC Project

2025-07-14 Thread Mankirat Singh
On Mon, 14 Jul 2025 at 00:32, Tom Lane wrote: > Another idea could be an in-tree file, different in each branch, > that records the hash of the commit we presently want to compare to. > This would require a small amount of additional manual effort to > maintain, but maybe it's the most flexible wa

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread Tom Lane
"David E. Wheeler" writes: > How bout we keep it a simple as possible to start with: make it either the > last tag in the branch or else the first commit in the branch (the branch > commit). Except for master, in which case perhaps since the last time a > branch was created? I do not think we

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread David E. Wheeler
On Jul 13, 2025, at 15:43, Tom Lane wrote: > I'm still liking the in-tree-file idea better. For one thing, > it's not clear how expensive it'd be to search the git metadata > for this other stuff. How bout we keep it a simple as possible to start with: make it either the last tag in the branch

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread Tom Lane
"David E. Wheeler" writes: > On Jul 13, 2025, at 15:02, Tom Lane wrote: >> Alternatively, does git have any kind of metadata that isn't >> a tag but acts sort of like one? > Notes? > https://git-scm.com/docs/git-notes Hmm, maybe. I recall discussion about starting to use notes to amend commi

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread David E. Wheeler
On Jul 13, 2025, at 15:02, Tom Lane wrote: > On reflection, assuming that this is being run by one or more > buildfarm animals, there are not likely to be so many commits > between runs that it'll be hard to assign blame after a breakage. > So I'm not convinced that we need to build the logic you

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread Tom Lane
Mankirat Singh writes: > Here, I had a proposal: In case an ABI break is found, then loop > through the commits after the last run to find the offending commit. > We can also give the animal owner the option to decide whether they > want to use their own machine to perform this search or not. Let

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread Mankirat Singh
On Mon, 14 Jul 2025 at 00:07, David E. Wheeler wrote: > Presumably you could work your way backwards until the ABI break disappears. > That should minimize the number of commits you have to compile and test. Makes sense. Thanks for the suggestion! Regards, Mankirat

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread David E. Wheeler
On Jul 13, 2025, at 14:34, Mankirat Singh wrote: > Here, I had a proposal: In case an ABI break is found, then loop > through the commits after the last run to find the offending commit. > We can also give the animal owner the option to decide whether they > want to use their own machine to perfo

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread Mankirat Singh
On Sun, 13 Jul 2025 at 05:42, Tom Lane wrote: > Nitpick: I think something is backwards about the labeling. AFAICS > the described ABI change was made by 53cd0b71e not its predecessor > 9dcc76414. It does look like a useful bit of information once > correctly attributed, though. Thanks for point

Re: ABI Compliance Checker GSoC Project

2025-07-12 Thread Tom Lane
"David E. Wheeler" writes: > For those who didn’t click through, that post has a screenshot of an > ABI diff report in the build farm server that I think is worth > seeing: Nitpick: I think something is backwards about the labeling. AFAICS the described ABI change was made by 53cd0b71e not its p

Re: ABI Compliance Checker GSoC Project

2025-07-12 Thread Mankirat Singh
Hello Hackers, I have been working on this project with David since last month. I've written some blogs about the progress, the most recent one is here [1] Here's the draft pull request for anyone interested in reviewing the code: [2] On Wed, 9 Jul 2025 at 17:57, Álvaro Herrera wrote: > Were you

Re: ABI Compliance Checker GSoC Project

2025-07-09 Thread David E. Wheeler
On Jul 9, 2025, at 11:33, Andres Freund wrote: > It'd be nice if we could get there, but it'd require annotating *all* > intentionally exported functions in the backend with PGDLLIMPORT (rather than > just doing that for variables). Then we could make some symbols > *intentionally* not exported,

Re: ABI Compliance Checker GSoC Project

2025-07-09 Thread Andres Freund
Hi, On 2025-06-05 19:05:28 +0200, Álvaro Herrera wrote: > On 2025-Jun-04, Mankirat Singh wrote: > > > Here's the workflow I tried to compile > > $ ./configure CFLAGS="-Og -g -fvisibility=hidden" > > --prefix=/home/mankirat/install/REL_17_4 > > $ make -j$(nproc) > > > > /usr/bin/ld: /home/

Re: ABI Compliance Checker GSoC Project

2025-07-09 Thread Álvaro Herrera
Hello Mankirat, Were you able to make any progress on this? Thanks, -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/ "Porque francamente, si para saber manejarse a uno mismo hubiera que rendir examen... ¿Quién es el machito que tendría carnet?" (Mafalda)

Re: ABI Compliance Checker GSoC Project

2025-06-05 Thread Álvaro Herrera
On 2025-Jun-04, Mankirat Singh wrote: > Here's the workflow I tried to compile > $ ./configure CFLAGS="-Og -g -fvisibility=hidden" > --prefix=/home/mankirat/install/REL_17_4 > $ make -j$(nproc) > > /usr/bin/ld: /home/mankirat/postgres/src/fe_utils/string_utils.c:1154: > undefined referenc

Re: ABI Compliance Checker GSoC Project

2025-06-04 Thread David E. Wheeler
On Jun 4, 2025, at 12:10, Andres Freund wrote: > No. It just makes the *name* of the struct visible. The type's definition is > in the .c file and therefore not visible outside of read_stream.c. Right, got it, thanks. David signature.asc Description: Message signed with OpenPGP

Re: ABI Compliance Checker GSoC Project

2025-06-04 Thread Andres Freund
Hi, On 2025-06-04 11:15:10 -0400, David E. Wheeler wrote: > On Jun 4, 2025, at 09:43, Álvaro Herrera wrote: > > > You mentioned ReadStream, but that's not exported. > > I this not an export at line 67? > > ``` > ❯ rg ReadStream src/include/storage/read_stream.h > > 50: * the ReadStreamBlockNu

Re: ABI Compliance Checker GSoC Project

2025-06-04 Thread Mankirat Singh
On Wed, 4 Jun 2025 at 19:13, Álvaro Herrera wrote: > > On Tue, 3 Jun 2025 at 23:50, David E. Wheeler wrote: > > > What’s the error? Maybe we can fix it. > > > > As per my knowledge Postgres internal code lacks visibility annotations on > > its symbols, which causes compilation errors when fvisibi

Re: ABI Compliance Checker GSoC Project

2025-06-04 Thread David E. Wheeler
On Jun 4, 2025, at 09:43, Álvaro Herrera wrote: > You mentioned ReadStream, but that's not exported. I this not an export at line 67? ``` ❯ rg ReadStream src/include/storage/read_stream.h 50: * the ReadStreamBlockNumberCB callback to abide by the restrictions of AIO 66:struct ReadStream; 67:ty

Re: ABI Compliance Checker GSoC Project

2025-06-04 Thread Álvaro Herrera
On 2025-Jun-04, Mankirat Singh wrote: > On Tue, 3 Jun 2025 at 23:50, David E. Wheeler wrote: > > >> Ummm, are you saying that it complains about changes to unexported > > >> symbols also? > > > > This is a good question. > No, it doesn’t complain about unexported symbols. You mentioned ReadStrea

Re: ABI Compliance Checker GSoC Project

2025-06-04 Thread Mankirat Singh
On Tue, 3 Jun 2025 at 23:50, David E. Wheeler wrote: > >> Ummm, are you saying that it complains about changes to unexported > >> symbols also? > > This is a good question. No, it doesn’t complain about unexported symbols. But it does complain about some exported symbols that, in my understanding,

Re: ABI Compliance Checker GSoC Project

2025-06-03 Thread David E. Wheeler
On Jun 3, 2025, at 13:23, Mankirat Singh wrote: >> I don't think it's the >> job of the tool to determine that this ABI difference is okay. >> Ultimately that's for a human to determine, > > Yes, but it would be better if we could automate that thing to some > extent, along with the development

Re: ABI Compliance Checker GSoC Project

2025-06-03 Thread Álvaro Herrera
On 2025-Jun-03, Mankirat Singh wrote: > On Tue, 3 Jun 2025 at 20:49, Álvaro Herrera wrote: > > Please elaborate. Can you not write a suppression file that says > > "ignore offset changes for ios_in_progress in ReadStream", for example? > > I can do that, and that's what's causing the problem.

Re: ABI Compliance Checker GSoC Project

2025-06-03 Thread Mankirat Singh
On Tue, 3 Jun 2025 at 20:49, Álvaro Herrera wrote: > > I don't think it's the > job of the tool to determine that this ABI difference is okay. > Ultimately that's for a human to determine, Yes, but it would be better if we could automate that thing to some extent, along with the development of t

Re: ABI Compliance Checker GSoC Project

2025-06-03 Thread Álvaro Herrera
On 2025-Jun-03, Mankirat Singh wrote: > 'struct ReadStream at read_stream.c:109:1' changed: > type size hasn't changed > 1 data member insertion: > 'int16 io_combine_limit', at offset 2 (in bytes) at read_stream.c:112:1 > there are data member changes: > 'int16 ios_in_progress' offse

Re: ABI Compliance Checker GSoC Project

2025-06-03 Thread Mankirat Singh
Thanks for the introduction :D On Tue, 3 Jun 2025 at 00:36, David E. Wheeler wrote: > Since the work naturally gets into what’s considered a public API and > what’s not, we feel that hackers is the best place to ask questions about > bits to include and exclude, as well as other questions relate

ABI Compliance Checker GSoC Project

2025-06-02 Thread David E. Wheeler
Hackers, I’d like to introduce Mankirat Singh, a Google Summer of Code student that Pavlo Golub and I are mentoring this year. He’s started work on his project, an ABI Compliance Checker. The plan is to work out the patterns, integrate it into the Build Farm, and get it sending regular reports