On 3/23/2016 1:18 PM, Michal Kubecek wrote: > On Wed, Mar 23, 2016 at 10:59:20AM -0400, Jim Starkey wrote: >> Defining your own macro layer gives you cheap portability and a zero >> overhead implementation. > That's one side of it. The other is that for occasional contributors or > distribution support guys, it brings a lot of confusion. Like when you > find out that ULONG is in fact not unsigned long as one would expect > from the name but rather what standard calls uint32_t). Or when you > learn that instead of a standard library function you are supposed to > use this compatibility wrapper. Regular contributors have learned these > and got used to it; for newcomers, it can be tough at times.
Frankly, the idea of an occasional contributed messing around with non-interlocked data structures is remarkably scary. Anyone who is troubled by COMPARE_AND_SWAP or COMPARE_EXCHANGE should be anywhere near them. Now that Microsoft accepts the standard artificial integer types, it's probably time to do a couple of global replaces and replace things like ULONG with standard artificial types. I created ULONG a couple of decades before stdint.h existed and even longer before Visual Studio could handle both stdint.h and Microsoft includes. This is just normal project maintenance. > > The portability you mention is nice but it's paid for by readability and > maintainability of the code. Most of the stuff is historical and it > would be unwise to rush into weeding it out. But we should think twice > before adding more. > > With a code base so rife with casts as Firebird, it's hard to make a legitimate argument for readability. If anyone cared about readability, the code would reworked to be type safe. ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel