From: Phillip Wood Date: Tue, 09 Apr 2024 09:40:17 GMT Subject: Re: [RFD] Libification proposal: separate internal and external interfaces Message-ID: <5663500c-ea40-45a6-bb7d-c906aee4350c@gmail.com> In-Reply-To: On 08/04/2024 22:29, Junio C Hamano wrote: > "brian m. carlson" writes: > >> As mentioned in the original proposal, we don't have to support all >> platforms in the libified code. The main Git binaries will continue to >> function and be supported, but the new libified code will rely on newer >> features. You will still be able to have all the Git binaries and >> functionality, but if you want the new shared library to compile >> against, you'll have to furnish a newer compiler. > > I thought one of the yardstick to gauge the success of this > "libification" effort, if not the purpose of this effort, is to > allow Git to be its first client. Indeed, the last set of patches allow git to be built with the same library that external programs can use which I thought was very welcome. This proposal seems to be backing away from that. We could have a single version of the library with a set of external headers that export a limited set of functions in a gitlib_ namespace and are wrapped internally with definitions like static inline int foo(int x) { return libgit_foo(x); } but that still leaves the problem of symbol visibility for the symbols that are consumed internally but not exposed in the external headers. Best Wishes Phillip